/*
Theme Name: Honda Sho v29.59.0
Theme URI: https://honda-sho.com
Description: 本多勝 岡崎市議会議員 公式サイト カスタムテーマ（v29.59.0：読みやすさの直し＝数字の太さ・番号つき箇条書き・文節の折り返し・表・題の左揃え・記事の頭を短く。戻す時は v29.58.0 のzipで置き換える）
Author: Honda Sho
Version:           29.59.1
Text Domain: honda-sho
*/

/* ═══════════════════════════════════════
   DESIGN TOKENS
═══════════════════════════════════════ */
:root {
  --red:      #C0272D;
  --red-deep: #8B1A1E;
  --red-pale: #FDF0F0;
  --gold:     #C09030;
  --gold-lt:  #D4A843;
  --white:    #FFFFFF;
  --off:      #F8F7F5;
  --light:    #F0EDE8;
  --gray1:    #E5E2DC;
  --gray2:    #3E3830;
  --gray3:    #242018;
  --dark:     #1C1916;
  --text:     #1C1916;
  --sans: 'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --dm:   'DM Sans',sans-serif;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{background:var(--white);color:var(--text);font-family:var(--sans);font-weight:500;overflow-x:hidden;cursor:none;}
p,li,td,th,span,label,dd,dt{font-weight:500;}
img{max-width:100%;height:auto;}
a{text-decoration:none;color:inherit;}

/* ═══════════════════════════════════════
   CURSOR
═══════════════════════════════════════ */
.cur{width:9px;height:9px;background:var(--red);border-radius:50%;position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .15s;}
.cur-ring{width:34px;height:34px;border:1.5px solid var(--red);border-radius:50%;position:fixed;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);opacity:.4;transition:width .3s,height .3s;}

/* ═══════════════════════════════════════
   SAKURA
═══════════════════════════════════════ */
#globalSakura{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden;}
.sp{position:absolute;top:-40px;opacity:0;animation:spFall linear infinite;}
@keyframes spFall{
  0%  {opacity:.9; transform:translateY(0)      rotate(0deg)   translateX(0px);}
  20% {opacity:.80;transform:translateY(18vh)   rotate(80deg)  translateX(22px);}
  40% {opacity:.70;transform:translateY(38vh)   rotate(170deg) translateX(-8px);}
  60% {opacity:.55;transform:translateY(60vh)   rotate(270deg) translateX(16px);}
  80% {opacity:.30;transform:translateY(85vh)   rotate(360deg) translateX(-18px);}
  100%{opacity:0;  transform:translateY(112vh)  rotate(450deg) translateX(6px);}
}

/* ═══════════════════════════════════════
   NAV
═══════════════════════════════════════ */
/* ─── フローティングピル型ヘッダー ─── */
nav#nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:500;width:calc(100% - 48px);max-width:1100px;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px 0 32px;background:rgba(255,255,255,.93);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(192,39,45,.10);border-radius:100px;box-shadow:0 4px 28px rgba(0,0,0,.07);transition:box-shadow .3s,background .3s;}
nav#nav.up{box-shadow:0 6px 40px rgba(0,0,0,.12);background:rgba(255,255,255,.97);}
/* ハンバーガー（PC非表示） */
.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:6px;border:none;background:transparent;cursor:pointer;}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--dark);border-radius:2px;transition:all .3s;}
.n-logo{display:flex;flex-direction:column;gap:1px;color:var(--dark);text-decoration:none;line-height:1.2;}
.n-logo-sub{font-size:9px;font-weight:500;letter-spacing:.1em;color:var(--gray2);}
.n-logo-main{font-size:18px;font-weight:900;letter-spacing:.04em;}
.n-logo em{color:var(--red);font-style:normal;}
.n-links{display:flex;align-items:center;gap:20px;list-style:none;}
.n-links li{display:flex;align-items:center;}
.n-links a{font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--gray3);text-decoration:none;transition:color .25s;position:relative;line-height:1;}
.n-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1.5px;background:var(--red);transition:width .3s;}
.n-links a:hover,.n-links a.active{color:var(--red);}
.n-links a:hover::after,.n-links a.active::after{width:100%;}
.n-btn{padding:8px 20px;background:var(--red);color:#fff;font-size:12px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:background .25s;white-space:nowrap;border-radius:100px;}
.n-btn:hover{background:var(--red-deep);}
/* SNSアイコン（ヘッダー内） */
.n-social{display:flex;align-items:center;gap:10px;margin:0 8px;}
.ns-link{display:flex;align-items:center;transition:transform .22s,opacity .2s;}
.ns-link:hover{transform:scale(1.18);opacity:.82;}
.ns-link img{width:22px;height:22px;object-fit:contain;display:block;border-radius:4px;}
/* SNSアイコン（フッター） */
.f-social{display:flex;align-items:center;gap:14px;margin-top:18px;}
.fs-link{width:44px;height:44px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 14px rgba(0,0,0,.28);transition:transform .22s,box-shadow .22s;overflow:hidden;}
.fs-link:hover{transform:scale(1.14);box-shadow:0 5px 18px rgba(0,0,0,.35);}
.fs-link img{width:26px;height:26px;object-fit:contain;display:block;}
/* キャッチコピー PC/SP 切り替え */
.ln-sp{display:none !important;}.ln-pc{display:block !important;}

/* ═══════════════════════════════════════
   桜ラジアルメニュー（スマホ/タブレット）
═══════════════════════════════════════ */
.sakura-menu{display:none;position:fixed;bottom:28px;right:24px;z-index:900;}
.sakura-menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,0);pointer-events:none;transition:background .4s;z-index:-1;}
.sakura-menu.open .sakura-menu-overlay{background:rgba(20,10,10,.52);pointer-events:all;}
/* トグルボタン */
.sakura-toggle{width:64px;height:64px;border-radius:50%;background:var(--red);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;z-index:10;box-shadow:0 6px 28px rgba(192,39,45,.5);transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .3s;}
.sakura-toggle:active{transform:scale(.92);}
.sakura-menu.open .sakura-toggle{background:var(--dark);}
.st-petal{width:32px;height:32px;display:block;position:absolute;transition:opacity .25s,transform .3s;}
.st-close{position:absolute;color:#fff;font-size:22px;opacity:0;transition:opacity .25s,transform .3s;transform:rotate(-90deg);}
.sakura-menu.open .st-petal{opacity:0;transform:rotate(90deg) scale(.6);}
.sakura-menu.open .st-close{opacity:1;transform:rotate(0deg);}
/* ━━━ フルスクリーンオーバーレイ型ナビ ━━━ */
.sakura-menu-items{position:fixed;inset:0;background:rgba(18,12,13,.96);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:24px 0 96px;opacity:0;pointer-events:none;transition:opacity .35s;z-index:5;width:auto;height:auto;overflow-y:auto;}
.sakura-menu.open .sakura-menu-items{opacity:1;pointer-events:all;}
/* メニュー内ロゴ */
.sm-header{text-align:center;margin-bottom:28px;opacity:0;transform:translateY(-12px);transition:opacity .35s .05s,transform .35s .05s;}
.sakura-menu.open .sm-header{opacity:1;transform:translateY(0);}
.smh-logo{font-size:20px;font-weight:900;color:#fff;letter-spacing:.02em;}
.smh-logo em{color:var(--red);}
.smh-sub{display:block;font-size:10px;font-weight:700;letter-spacing:.18em;color:rgba(255,255,255,.65);text-transform:uppercase;margin-top:3px;}
/* ナビアイテム */
.sm-item{display:flex;align-items:center;gap:18px;padding:14px 36px;text-decoration:none;color:rgba(255,255,255,.82);font-size:20px;font-weight:900;width:100%;max-width:320px;border-radius:14px;transform:translateX(28px);opacity:0;pointer-events:none;transition:transform .42s cubic-bezier(.34,1.56,.64,1),opacity .3s,background .2s,color .2s;position:static;}
.sm-item:active,.sm-item:hover{background:rgba(192,39,45,.18);color:#fff;}
.sakura-menu.open .sm-item{transform:translateX(0);opacity:1;pointer-events:all;}
.sakura-menu.open .sm-item:nth-child(1){transition-delay:.07s;}
.sakura-menu.open .sm-item:nth-child(2){transition-delay:.11s;}
.sakura-menu.open .sm-item:nth-child(3){transition-delay:.15s;}
.sakura-menu.open .sm-item:nth-child(4){transition-delay:.19s;}
.sakura-menu.open .sm-item:nth-child(5){transition-delay:.23s;}
.sm-emoji{font-size:24px;width:32px;text-align:center;flex-shrink:0;}
.sm-text{font-size:19px;letter-spacing:.02em;}
/* SNS行：画面左下に固定（トグルボタン右下と分離して重ならない） */
.sm-sns-row{position:fixed;bottom:28px;left:24px;display:flex;flex-direction:row;gap:10px;align-items:center;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s .1s,transform .35s .1s;z-index:901;}
.sakura-menu.open .sm-sns-row{opacity:1;pointer-events:all;transform:translateY(0);}
.sm-sns-link{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 14px rgba(0,0,0,.28);transition:transform .22s,box-shadow .22s;overflow:hidden;}
.sm-sns-link:hover{transform:scale(1.14);box-shadow:0 5px 18px rgba(0,0,0,.35);}
.sm-sns-link img{width:24px;height:24px;object-fit:contain;display:block;}

/* ═══════════════════════════════════════
   COMMON SECTION UTILITIES
═══════════════════════════════════════ */
.sw{max-width:1380px;margin:0 auto;padding:0 56px;position:relative;z-index:10;}
.sl{display:flex;align-items:center;gap:11px;font-family:var(--dm);font-size:10px;font-weight:700;letter-spacing:.42em;text-transform:uppercase;color:var(--red);margin-bottom:16px;}
.sl::before{content:'';width:20px;height:1.5px;background:var(--red);}

/* Seigaiha pattern */
.seig-bg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.052;}

/* REVEAL */
.rv{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1);}
.rv.on{opacity:1;transform:none;}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@keyframes slideUp{from{opacity:0;transform:translateY(104%);}to{opacity:1;transform:none;}}
@keyframes breath{0%,100%{transform:scale(1);}50%{transform:scale(1.04);}}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.2;}}
@keyframes rotateSlow{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@keyframes btn-shine{0%{left:-100%;}45%,100%{left:160%;}}

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
footer{background:var(--dark);padding:48px 0 26px;border-top:1px solid rgba(192,39,45,.12);}
.f-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:40px;}
.f-logo{font-size:20px;font-weight:900;letter-spacing:.06em;color:#fff;}
.f-logo em{color:var(--red);font-style:normal;}
.f-tagline{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.2em;color:rgba(255,255,255,.55);margin-top:4px;}
.f-nav{display:flex;gap:28px;list-style:none;flex-wrap:wrap;}
.f-nav a{font-size:12px;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.72);text-decoration:none;transition:color .22s;}
.f-nav a:hover{color:var(--gold-lt);}
.f-bot{display:flex;justify-content:space-between;align-items:center;padding-top:22px;border-top:1px solid rgba(255,255,255,.06);}
.f-copy{font-family:var(--dm);font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.42);}
.f-sns{display:flex;gap:16px;}
.f-sns a{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.65);text-decoration:none;transition:color .22s;}
.f-sns a:hover{color:var(--red);}

/* ═══════════════════════════════════════
   PAGE HERO (内ページ共通)
═══════════════════════════════════════ */
.page-hero{padding-top:80px;background:var(--white);position:relative;overflow:hidden;display:flex;align-items:flex-end;}
.page-hero-seig,.ph-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.052;pointer-events:none;}
.page-hero-glow,.ph-glow{position:absolute;right:0;bottom:0;width:500px;height:300px;background:radial-gradient(ellipse 80% 80% at 80% 80%,rgba(192,39,45,.06) 0%,transparent 70%);pointer-events:none;}
.page-hero-line,.ph-line{height:3px;background:linear-gradient(to right,var(--red),var(--gold-lt),transparent);}
.breadcrumb{display:flex;align-items:center;gap:8px;font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--gray2);margin-bottom:6px;}
.breadcrumb a{color:var(--gray2);text-decoration:none;transition:color .22s;}
.breadcrumb a:hover{color:var(--red);}
.breadcrumb span{color:var(--red);}
.page-title{font-size:clamp(22px,3vw,44px);font-weight:900;letter-spacing:-.02em;line-height:1.1;}
.page-title em{color:var(--red);font-style:normal;}
.page-title-en{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.32em;color:var(--gray2);margin-top:3px;}

/* ═══════════════════════════════════════
   FRONT PAGE — HERO
═══════════════════════════════════════ */
.hero{height:100vh;padding-top:80px;position:relative;overflow:hidden;background:var(--white);display:flex;align-items:stretch;}
.hero-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.052;pointer-events:none;}
.hero-glow{position:absolute;top:0;right:0;width:52%;height:100%;background:radial-gradient(ellipse 70% 70% at 70% 50%,rgba(192,39,45,.05) 0%,transparent 70%);pointer-events:none;}
.hero-vline{display:none !important;}
.hero-inner{position:relative;z-index:10;width:100%;max-width:1380px;margin:0 auto;padding:0 56px;display:grid;grid-template-columns:46% 54%;align-items:center;height:calc(100vh - 80px);}
.hero-txt{padding-right:40px;padding-top:0;display:flex;flex-direction:column;justify-content:flex-start;}
.h-tag{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.32em;color:var(--red);margin-bottom:12px;opacity:0;animation:fadeUp .9s ease forwards .3s;}
.h-copy{font-size:clamp(28px,4vw,58px);font-weight:900;line-height:1.1;letter-spacing:-.025em;margin-bottom:20px;}
.h-copy--lg{font-size:clamp(24px,3.2vw,56px);}
.ln{display:block;overflow:hidden;white-space:nowrap;}
.ln span{display:inline-block;opacity:0;animation:slideUp .9s cubic-bezier(.16,1,.3,1) forwards;}
.ln:nth-child(1) span{animation-delay:.45s;}
.ln:nth-child(2) span{animation-delay:.6s;}
.ln:nth-child(3) span{animation-delay:.75s;}
.h-name-block{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin-bottom:18px;opacity:0;animation:fadeUp .9s ease forwards .95s;}
.h-name-ja{font-size:22px;font-weight:900;letter-spacing:.06em;}
.h-name-en{font-family:var(--dm);font-size:13px;font-weight:500;letter-spacing:.28em;color:var(--gray2);}
.h-name-role{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--red);}
.youngest-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--red),var(--red-deep));color:#fff;padding:6px 14px;font-size:10px;font-weight:700;letter-spacing:.1em;margin-bottom:20px;opacity:0;animation:fadeUp .9s ease forwards 1.1s;}
.h-sub-wrap{margin-bottom:12px;opacity:0;animation:fadeUp .9s ease forwards 1.2s;}
.h-question{font-size:15px;line-height:1.9;color:var(--gray3);margin-bottom:10px;}
.h-pillars-mini{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--gray2);margin-bottom:10px;}
.h-x{color:var(--red);font-weight:700;}
.h-sub-copy{font-size:15px;color:var(--gray3);}
.h-sub-copy strong{color:var(--dark);}
.h-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;opacity:0;animation:fadeUp .9s ease forwards 1.3s;}
.hb{font-size:11px;font-weight:700;letter-spacing:.04em;padding:6px 12px;border:1.5px solid var(--gray1);color:var(--gray3);}
.h-btns{display:flex;flex-wrap:wrap;gap:12px;opacity:0;animation:fadeUp .9s ease forwards 1.4s;}
.btn-r{display:inline-flex;align-items:center;padding:14px 28px;background:var(--red);color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em;text-decoration:none;transition:background .25s;cursor:none;}
.btn-r:hover{background:var(--red-deep);}
.btn-r span{display:flex;align-items:center;gap:6px;}
/* アウトラインボタン（すべて見る等）元のスタイルに戻す */
.btn-o{display:inline-flex;align-items:center;padding:13px 24px;border:1.5px solid var(--gray1);color:var(--gray3);font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:all .25s;cursor:none;}
.btn-o:hover{border-color:var(--red);color:var(--red);}
/* サポーター登録専用：緑色シマーボタン */
.btn-green{display:inline-flex;align-items:center;padding:13px 24px;background:linear-gradient(135deg,#22c55e 0%,#16a34a 55%,#15803d 100%);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:all .28s;cursor:none;box-shadow:0 4px 18px rgba(34,197,94,.38);position:relative;overflow:hidden;border:none;}
.btn-green::after{content:'';position:absolute;top:0;left:-100%;width:55%;height:100%;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.42) 50%,transparent 100%);transform:skewX(-22deg);animation:btn-shine 3.2s ease-in-out infinite 1.8s;pointer-events:none;}
.btn-green:hover{background:linear-gradient(135deg,#16a34a 0%,#15803d 100%);box-shadow:0 6px 26px rgba(34,197,94,.52);transform:translateY(-1px);}
.hero-photo-col{position:relative;height:calc(100vh - 80px);margin-top:0;display:flex;align-items:flex-start;justify-content:center;overflow:visible;}
.photo-wrap{position:relative;width:min(660px,54vw);height:100%;display:flex;align-items:flex-start;justify-content:center;}
/* 赤い円背景 */
.photo-wrap::before{
  content:'';position:absolute;
  width:88%;aspect-ratio:1 / 1;
  border-radius:50%;
  background:linear-gradient(145deg,var(--red) 0%,var(--red-deep) 100%);
  top:2%;left:50%;transform:translateX(-50%);
  z-index:1;
  opacity:0;animation:fadeUp 1s ease forwards .4s;
  box-shadow:0 20px 60px rgba(192,39,45,.25);
}
.pc{position:absolute;border-radius:50%;}
.pc1{width:96%;aspect-ratio:1;bottom:-10px;left:50%;transform:translateX(-50%);border:1.5px solid rgba(192,39,45,.18);animation:breath 6s ease-in-out infinite;}
.pc2{width:106%;aspect-ratio:1;bottom:-10px;left:50%;transform:translateX(-50%);border:1px solid rgba(192,39,45,.08);animation:breath 8s ease-in-out infinite .5s;}
.pc3{display:none;}
.fb{position:absolute;display:flex;align-items:center;gap:7px;padding:9px 14px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border:1px solid var(--gray1);z-index:10;opacity:0;animation:fadeUp .9s ease forwards 1.5s;}
.fb1{bottom:30%;left:-30px;animation-delay:1.6s!important;}
.fb2{top:15%;right:-15px;animation-delay:1.7s!important;}
.fb3{bottom:14%;right:-20px;animation-delay:1.8s!important;}
.fb4{top:32%;left:-35px;animation-delay:1.9s!important;}
.fb-icon{font-size:18px;}
.fb-label{font-size:11px;font-weight:700;color:var(--dark);}
.hero-img{width:100%;height:100%;object-fit:contain;object-position:top center;filter:drop-shadow(0 8px 24px rgba(0,0,0,.18));position:relative;z-index:5;opacity:0;animation:fadeUp 1s ease forwards .6s;}
.p-badge{position:absolute;bottom:12%;left:-10px;z-index:10;background:var(--dark);color:#fff;padding:16px 22px;min-width:220px;opacity:0;animation:fadeUp .9s ease forwards 1.2s;}
.pb-dot{width:6px;height:6px;border-radius:50%;background:var(--red);margin-bottom:8px;}
.pb-role{font-family:var(--dm);font-size:9px;font-weight:500;letter-spacing:.2em;color:rgba(255,255,255,.45);margin-bottom:3px;}
.pb-youngest{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--gold-lt);margin-bottom:3px;}
.pb-name{font-size:24px;font-weight:900;letter-spacing:.06em;margin-bottom:2px;}
.pb-vote{font-family:var(--dm);font-size:9px;font-weight:400;letter-spacing:.1em;color:rgba(255,255,255,.45);margin-top:4px;}
.fw-deco{position:absolute;top:15%;right:3%;width:110px;opacity:.12;pointer-events:none;animation:rotateSlow 22s linear infinite;}
/* 大きな背景桜モチーフ（常時回転） */
.hero-sakura-bg{position:absolute;right:-120px;bottom:-140px;width:700px;height:700px;opacity:.035;pointer-events:none;animation:rotateSlow 80s linear infinite;}
.scroll-hint{position:absolute;bottom:32px;left:56px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:10;}
.sh-txt{font-family:var(--dm);font-size:9px;font-weight:600;letter-spacing:.32em;color:var(--gray2);}
.sh-bar{width:1px;height:48px;background:linear-gradient(to bottom,var(--gray2),transparent);animation:slideUp 2s ease-in-out infinite;}

/* ヒーロー PC専用 地物デコレーション */
.h-deco-row{display:none !important;}
.h-deco-icon{width:68px;height:68px;flex-shrink:0;}

/* ═══════════════════════════════════════
   MARQUEE
═══════════════════════════════════════ */
.mq{overflow:hidden;background:var(--dark);border-top:1px solid rgba(192,39,45,.12);border-bottom:1px solid rgba(192,39,45,.12);}
.mq-track{display:flex;gap:0;white-space:nowrap;animation:marqueeScroll 24s linear infinite;}
@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.mq-item{display:inline-flex;align-items:center;gap:10px;padding:13px 24px;font-size:12px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.78);}
.mq-ico{font-size:16px;}
.mq-sep{color:var(--red);opacity:.4;margin-left:14px;}

/* ═══════════════════════════════════════
   FRONT PAGE — ACTIVITY SECTION
═══════════════════════════════════════ */
.activity{padding:100px 0;background:var(--white);}
.act-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;}
.act-title{font-size:clamp(28px,4vw,44px);font-weight:900;letter-spacing:-.01em;margin-top:8px;}
.act-featured{display:grid;grid-template-columns:420px 1fr;border-radius:16px;overflow:hidden;border:1px solid var(--gray1);margin-bottom:28px;text-decoration:none;color:inherit;cursor:none;transition:box-shadow .35s,border-color .35s;}
.act-featured:hover{box-shadow:0 14px 40px rgba(0,0,0,.09);border-color:rgba(192,39,45,.15);}
.act-feat-thumb{position:relative;overflow:hidden;min-height:280px;}
.act-feat-thumb .act-thumb-inner{height:100%;}
.act-feat-body{padding:36px 40px;display:flex;flex-direction:column;justify-content:center;background:var(--white);}
.act-feat-ttl{font-size:21px;font-weight:800;line-height:1.4;color:var(--dark);margin:8px 0 14px;}
.act-card-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px;}
.act-thumb--grid{height:170px;}
.act-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--gray1);overflow:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;cursor:none;}
.act-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.09);border-color:rgba(192,39,45,.15);}
.act-thumb{position:relative;overflow:hidden;}
.act-thumb--main{height:280px;}
.act-thumb-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.act-card:hover .act-thumb-inner,.act-featured:hover .act-thumb-inner{transform:scale(1.05);}
.act-thumb-ico{font-size:56px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.2));}
.act-cat{position:absolute;top:14px;left:14px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--red);color:#fff;padding:4px 10px;}
.act-body{padding:20px 22px 22px;}
.act-date{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.12em;color:var(--gold);display:block;margin-bottom:8px;}
.act-ttl{font-size:16px;font-weight:700;line-height:1.45;color:var(--dark);margin-bottom:8px;}
.act-excerpt{font-size:12px;line-height:1.9;color:var(--gray2);margin-bottom:10px;}
.act-more{font-family:var(--dm);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--gray2);transition:color .22s;}
.act-card:hover .act-more,.act-featured:hover .act-more{color:var(--red);}
.act-more--red{color:var(--red);}
.act-mini-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.act-mini{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;padding:14px;border:1px solid var(--gray1);transition:all .22s;cursor:none;}
.act-mini:hover{border-color:rgba(192,39,45,.2);background:var(--red-pale);}
.act-mini-thumb{width:44px;height:44px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.act-mini-ttl{font-size:12px;font-weight:700;line-height:1.4;color:var(--dark);margin-top:3px;}

/* ═══════════════════════════════════════
   FRONT PAGE — VISION
═══════════════════════════════════════ */
.vision{padding:72px 0 60px;background:var(--off);position:relative;overflow:hidden;}
.v-sakura-deco{position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:320px;opacity:.04;pointer-events:none;}
.v-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:96px;align-items:start;}
.v-big{font-size:clamp(28px,4vw,56px);font-weight:900;letter-spacing:-.025em;line-height:1.1;margin-bottom:0;}
.v-big em{color:var(--red);font-style:normal;}
.sub-en{display:block;font-family:var(--dm);font-size:13px;font-weight:500;letter-spacing:.24em;color:var(--gray2);margin-top:16px;}
.v-body{font-size:15px;line-height:2.35;color:var(--gray3);margin-bottom:36px;}
.v-body strong{color:var(--dark);}
.pillars{display:flex;flex-direction:column;gap:16px;}
.pillar{display:flex;gap:16px;}
.p-num{font-family:var(--dm);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--red);flex-shrink:0;padding-top:3px;}
.pillar h3{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:6px;}
.pillar p{font-size:13px;line-height:1.95;color:var(--gray2);}

/* ═══════════════════════════════════════
   FRONT PAGE — PROFILE SECTION
═══════════════════════════════════════ */
.profile{padding:60px 0 100px;background:var(--white);}
.prof-layout{display:grid;grid-template-columns:380px 1fr;gap:80px;align-items:start;}
.prof-img-col{position:relative;margin-top:-20px;}
.prof-frame{position:relative;z-index:2;overflow:hidden;}
/* 赤い円背景（プロフィール） */
.prof-frame::before{content:'';position:absolute;width:88%;aspect-ratio:1/1;border-radius:50%;background:linear-gradient(145deg,var(--red) 0%,var(--red-deep) 100%);bottom:0;left:50%;transform:translateX(-50%);z-index:1;box-shadow:0 20px 60px rgba(192,39,45,.22);}
.prof-frame img{display:block;width:100%;object-fit:contain;object-position:top center;filter:drop-shadow(0 8px 28px rgba(192,39,45,.1));position:relative;z-index:2;margin-top:0;}
.prof-border{position:absolute;top:16px;left:-16px;right:16px;bottom:-16px;border:2px solid rgba(192,39,45,.12);z-index:1;}
.prof-stat{position:absolute;bottom:-24px;right:-24px;z-index:5;background:var(--red);color:#fff;padding:18px 22px;text-align:center;}
.ps-n{font-family:var(--dm);font-size:36px;font-weight:700;line-height:1;}
.ps-l{font-size:10px;font-weight:700;letter-spacing:.12em;margin-top:4px;opacity:.8;}
.prof-name{font-size:36px;font-weight:900;letter-spacing:.04em;margin-bottom:6px;}
.prof-name-en{font-family:var(--dm);font-size:13px;font-weight:500;letter-spacing:.28em;color:var(--gray2);display:block;margin-bottom:20px;}
.prof-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px;}
.pt{font-size:11px;font-weight:700;letter-spacing:.05em;padding:5px 12px;border:1.5px solid var(--gray1);color:var(--gray3);}
.prof-motto{font-size:15px;font-weight:700;letter-spacing:.1em;color:var(--dark);border-left:3px solid var(--red);padding-left:14px;margin-bottom:20px;}
.prof-bio{font-size:14px;line-height:2.2;color:var(--gray3);margin-bottom:28px;}
.career{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;}
.ci{display:grid;grid-template-columns:120px 1fr;gap:12px;font-size:13px;padding:10px 0;border-bottom:1px solid var(--gray1);}
.ci-y{font-family:var(--dm);font-weight:700;letter-spacing:.08em;color:var(--red);}
.ci-d{color:var(--gray3);}
.hobbies{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.hb-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--off);}
.hb-ico{font-size:24px;}
.hb-txt h4{font-size:13px;font-weight:700;margin-bottom:3px;}
.hb-txt p{font-size:11px;color:var(--gray2);line-height:1.6;}

/* ═══════════════════════════════════════
   FRONT PAGE — POLICY
═══════════════════════════════════════ */
.policy{padding:100px 0;background:var(--off);position:relative;overflow:hidden;}
.pol-header{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:48px;}
.pol-title{font-size:clamp(28px,4vw,44px);font-weight:900;letter-spacing:-.01em;}
.pol-title em{color:var(--red);font-style:normal;}
.pol-intro{font-size:15px;line-height:2;color:var(--gray2);max-width:680px;margin:0;}
.pol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.pol-card{background:var(--white);padding:32px 24px;border-bottom:3px solid transparent;transition:all .35s;position:relative;overflow:hidden;}
.pol-card:hover{border-bottom-color:var(--red);transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.07);}
.pol-n{font-family:var(--dm);font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--gray2);margin-bottom:12px;}
.pol-ico{font-size:32px;display:block;margin-bottom:12px;}
.pol-kw{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--red);margin-bottom:10px;}
.pol-card h3{font-size:16px;font-weight:700;color:var(--dark);margin-bottom:10px;line-height:1.3;}
.pol-card p{font-size:13px;line-height:1.95;color:var(--gray2);}

/* ═══════════════════════════════════════
   FRONT PAGE — DIGITAL
═══════════════════════════════════════ */
.digital{padding:100px 0;background:var(--white);}
.dig-header{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:48px;}
.dig-title{font-size:clamp(28px,4vw,44px);font-weight:900;letter-spacing:-.01em;line-height:1.2;}
.dig-title em{color:var(--red);font-style:normal;}
.dig-sub{font-size:14px;line-height:2.2;color:var(--gray3);}
.dig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.dig-card{background:var(--white);border:1px solid var(--gray1);padding:28px 22px;transition:all .32s;position:relative;overflow:hidden;}
.dig-card:hover{border-color:rgba(192,39,45,.18);transform:translateY(-4px);box-shadow:0 10px 32px rgba(0,0,0,.07);}
.dig-ico{font-size:28px;display:block;margin-bottom:13px;}
.dig-card h3{font-size:14px;font-weight:700;margin-bottom:7px;}
.dig-card p{font-size:12px;color:var(--gray2);line-height:1.9;}
.dig-tag{display:inline-block;margin-top:12px;font-size:10px;font-weight:700;letter-spacing:.1em;padding:3px 9px;background:var(--red-pale);color:var(--red);}

/* ═══════════════════════════════════════
   FRONT PAGE — SUPPORTERS
═══════════════════════════════════════ */
.supporters{padding:100px 0;background:var(--red);position:relative;}
.sup-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.06;pointer-events:none;}
.sup-inner{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:center;}
.sup-txt .sl{color:rgba(255,255,255,.7);}
.sup-txt .sl::before{background:rgba(255,255,255,.7);}
.sup-h{font-size:clamp(26px,3.6vw,44px);font-weight:900;color:#fff;line-height:1.25;margin-bottom:20px;}
.sup-body{font-size:14px;line-height:2.2;color:rgba(255,255,255,.72);}
.sup-right{display:flex;flex-direction:column;gap:16px;}
.line-btn{display:flex;align-items:center;gap:14px;padding:18px 26px;background:#06C755;color:#fff;font-size:14px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:background .22s;cursor:none;}
.line-btn:hover{background:#05A847;}
.line-ico{font-size:22px;}
.sup-form{background:rgba(255,255,255,.1);padding:24px;display:flex;flex-direction:column;gap:12px;}
.sf-label{font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.65);}
.sf-input{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);color:#fff;padding:11px 15px;font-family:var(--sans);font-size:13px;outline:none;transition:border-color .22s;width:100%;}
.sf-input::placeholder{color:rgba(255,255,255,.32);}
.sf-input:focus{border-color:rgba(255,255,255,.55);}
.sf-btn{padding:13px;background:#fff;color:var(--red);font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.1em;border:none;cursor:none;transition:background .22s;}
.sf-btn:hover{background:var(--red-pale);}

/* ═══════════════════════════════════════
   ACTIVITY LIST (archive.php)
═══════════════════════════════════════ */
.page-hero-inner{position:relative;z-index:10;max-width:1380px;margin:0 auto;padding:2px 56px 4px;}
.filter-wrap{padding:52px 0 40px;}
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.f-tab{padding:9px 20px;font-size:12px;font-weight:700;letter-spacing:.08em;border:1.5px solid var(--gray1);color:var(--gray3);background:var(--white);cursor:none;transition:all .22s;font-family:var(--sans);}
.f-tab:hover,.f-tab.active{background:var(--red);color:#fff;border-color:var(--red);}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-bottom:80px;}
.post-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--gray1);overflow:hidden;border-radius:12px;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s;cursor:none;}
.post-card:hover{transform:translateY(-5px);box-shadow:0 16px 48px rgba(0,0,0,.1);border-color:rgba(192,39,45,.15);}
.post-card--feature{grid-column:span 2;}
.pc-thumb{aspect-ratio:16/9;position:relative;overflow:hidden;border-radius:10px 10px 0 0;}
.pc-thumb-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.post-card:hover .pc-thumb-inner{transform:scale(1.05);}
.pc-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.pc-thumb-ico{font-size:56px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.2));}
.post-card--feature .pc-thumb-ico{font-size:80px;}
.pc-cat{position:absolute;top:12px;left:12px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--red);color:#fff;padding:4px 10px;border-radius:4px;}
.pc-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.pc-meta{display:flex;align-items:center;gap:12px;}
.pc-date{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.12em;color:var(--gold);}
.pc-tag{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--gray2);}
.pc-title{font-size:16px;font-weight:900 !important;line-height:1.5;color:var(--dark);}
.post-card--feature .pc-title{font-size:20px;}
.pc-excerpt{font-size:12px;line-height:1.95;color:var(--gray2);flex:1;}
.pc-more{font-family:var(--dm);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--gray2);transition:color .22s;margin-top:4px;}
.post-card:hover .pc-more{color:var(--red);}
.pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:48px 0 80px;}
.pg-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-family:var(--dm);font-size:13px;font-weight:600;border:1.5px solid var(--gray1);color:var(--gray3);text-decoration:none;transition:all .22s;}
.pg-btn:hover,.pg-btn.current{background:var(--red);border-color:var(--red);color:#fff;}
.pg-dots{font-family:var(--dm);font-size:13px;color:var(--gray2);padding:0 4px;}

/* ═══════════════════════════════════════
   SINGLE POST (single.php)
═══════════════════════════════════════ */
/* ─── note/NewsPicks風 記事ページ ─── */
.single-wrap{padding:40px 0 100px;}
.detail-back{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--gray2);text-decoration:none;padding-bottom:28px;transition:color .22s;}
.detail-back:hover{color:var(--red);}
.detail-layout{display:grid;grid-template-columns:1fr 300px;gap:56px;align-items:start;}
/* アイキャッチ：16:9 + 丸み */
.detail-hero-thumb{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;margin-bottom:28px;border-radius:12px;}
.detail-hero-thumb-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.detail-hero-ico{font-size:96px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.2));}
.detail-hero-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.detail-cat{position:absolute;top:16px;left:16px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--red);color:#fff;padding:4px 10px;border-radius:4px;}
.detail-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.detail-date{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.12em;color:var(--gold);}
.detail-tags{display:flex;gap:7px;flex-wrap:wrap;}
.d-tag{font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 10px;border:1.5px solid rgba(192,39,45,.2);color:var(--red);border-radius:100px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* タイトル：大きく引き付ける */
.detail-title{font-size:clamp(22px,3vw,34px);font-weight:900;line-height:1.42;letter-spacing:-.015em;margin-bottom:28px;color:var(--dark);}
/* 本文：読みやすさ最優先 */
.detail-body{font-size:17px;line-height:2;color:#3A3530;}
.detail-body p{margin-bottom:28px;}
.detail-body h2{font-size:21px;font-weight:700;color:var(--dark);margin:48px 0 18px;padding-left:16px;border-left:3px solid var(--red);}
.detail-body h3{font-size:18px;font-weight:700;color:var(--dark);margin:36px 0 14px;}
.detail-body strong{color:var(--dark);font-weight:700;}
.detail-body ul{margin:0 0 28px 22px;display:flex;flex-direction:column;gap:10px;}
.detail-body li{font-size:17px;line-height:1.95;color:#3A3530;}
.detail-body blockquote{background:var(--off);border-left:4px solid var(--red);padding:22px 26px;margin:28px 0;font-size:16px;color:var(--gray3);line-height:2;border-radius:0 8px 8px 0;}
.detail-body img{width:100%;height:auto;border-radius:8px;margin:8px 0 24px;}
.cost-table-wrap{margin:28px 0;border-radius:10px;overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.08);}
.cost-table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.6;}
.cost-table thead tr{background:#1a1a2e;color:#fff;}
.cost-table thead th{padding:12px 14px;font-weight:700;text-align:left;}
.cost-table thead th:nth-child(3){text-align:center;}
.cost-table thead th:nth-child(4){text-align:right;}
.cost-table tbody tr:nth-child(odd){background:#f8fafd;}
.cost-table tbody tr:nth-child(even){background:#fff;}
.cost-table tbody td{padding:11px 14px;border-bottom:1px solid #edf0f5;color:#333;vertical-align:top;}
.cost-table tbody td:first-child{font-size:12px;color:#2563ab;font-weight:700;white-space:nowrap;}
.cost-table tbody td:nth-child(2){font-weight:600;}
.cost-table tbody td:nth-child(3){text-align:center;font-weight:600;white-space:nowrap;}
.cost-table tbody td:nth-child(4){text-align:right;white-space:nowrap;}
.cost-table tfoot tr{background:#1a1a2e;color:#fff;}
.cost-table tfoot td{padding:13px 14px;font-weight:700;font-size:16px;}
.cost-table tfoot td:nth-child(2){text-align:center;}
.cost-table tfoot td:nth-child(3){text-align:right;color:#ffd700;}
.cost-total-box{background:#fff8f0;border:2px solid #C0272D;border-radius:8px;padding:16px 22px;margin:16px 0 32px;text-align:center;font-size:18px;font-weight:700;color:#C0272D;}
.detail-share{display:flex;align-items:center;gap:12px;padding:32px 0;border-top:1px solid var(--gray1);border-bottom:1px solid var(--gray1);margin:48px 0;}
.share-label{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--gray3);}
.share-btn{display:flex;align-items:center;gap:7px;padding:9px 18px;font-size:12px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:all .22s;}
.share-x{background:#000;color:#fff;}
.share-x:hover{background:#333;}
.share-line{background:#06C755;color:#fff;}
.share-line:hover{background:#05A847;}
.share-fb{background:#1877F2;color:#fff;}
.share-fb:hover{background:#1565c0;}
.share-threads{background:#000;color:#fff;border:1.5px solid #444;}
.share-threads:hover{background:#222;}
/* LINE登録CTA */
.line-cta-box{background:linear-gradient(135deg,#05A847 0%,#06C755 100%);border-radius:12px;padding:24px;margin:0 0 48px;}
.lcb-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.lcb-icon{font-size:32px;flex-shrink:0;}
.lcb-text{flex:1;min-width:180px;}
.lcb-title{font-size:15px;font-weight:900;color:#fff;margin-bottom:4px;}
.lcb-desc{font-size:12px;color:rgba(255,255,255,0.85);line-height:1.6;}
.lcb-btn{flex-shrink:0;display:inline-block;background:#fff;color:#06C755;font-size:13px;font-weight:900;padding:12px 22px;border-radius:6px;text-decoration:none;white-space:nowrap;transition:all .2s;}
.lcb-btn:hover{background:#f0fff4;transform:translateY(-1px);}
@media(max-width:640px){.lcb-inner{flex-direction:column;text-align:center;}.lcb-btn{width:100%;text-align:center;}}
.detail-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px;}
.dn-btn{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border:1.5px solid var(--gray1);text-decoration:none;transition:all .22s;}
.dn-btn:hover{border-color:rgba(192,39,45,.25);background:var(--red-pale);}
.dn-label{font-family:var(--dm);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gray2);}
.dn-title{font-size:13px;font-weight:700;color:var(--dark);}
.dn-btn--next{text-align:right;}
.detail-sidebar{}
.sidebar-block{margin-bottom:40px;}
.sb-title{font-size:13px;font-weight:700;letter-spacing:.08em;padding-bottom:12px;border-bottom:1.5px solid var(--red);margin-bottom:20px;color:var(--dark);}
.sb-profile{display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 20px;background:var(--off);}
.sb-prof-img{width:100px;height:100px;border-radius:50%;overflow:hidden;margin-bottom:16px;border:3px solid var(--red);}
.sb-prof-img img{width:100%;height:100%;object-fit:cover;object-position:center 8%;}
.sb-prof-name{font-size:20px;font-weight:900;margin-bottom:4px;}
.sb-prof-role{font-size:11px;font-weight:500;letter-spacing:.12em;color:var(--gray2);margin-bottom:14px;}
.sb-prof-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-bottom:16px;}
.sb-prof-tag{font-size:10px;font-weight:700;padding:3px 9px;background:var(--red-pale);color:var(--red);}
.sb-prof-link{display:block;padding:10px;background:var(--red);color:#fff;font-size:12px;font-weight:700;letter-spacing:.1em;text-decoration:none;text-align:center;transition:background .22s;width:100%;}
.sb-prof-link:hover{background:var(--red-deep);}
.sb-article{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--gray1);text-decoration:none;color:inherit;transition:opacity .22s;}
.sb-article:hover{opacity:.7;}
.sb-art-thumb{width:60px;height:60px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:22px;}
.sb-art-date{font-family:var(--dm);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold);display:block;margin-bottom:3px;}
.sb-art-title{font-size:12px;font-weight:700;color:var(--dark);line-height:1.5;}
.sb-cats{display:flex;flex-direction:column;gap:0;}
.sb-cat{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--gray1);font-size:13px;font-weight:500;color:var(--gray3);text-decoration:none;transition:color .22s;}
.sb-cat:hover{color:var(--red);}
.sb-cat-count{font-family:var(--dm);font-size:11px;color:var(--gray2);}

/* ───────────────────────────────────────
   記事構成要素（リード・ポイント・目次・まとめ）
─────────────────────────────────────── */

/* 活動情報バッジ */
.detail-meta{flex-wrap:wrap;row-gap:8px;}
.ai-badges{display:flex;flex-wrap:wrap;gap:6px;}
.ai-badge{font-size:11px;font-weight:600;padding:3px 10px;background:var(--off);border:1px solid var(--gray1);border-radius:20px;color:var(--gray3);white-space:nowrap;}
/* リード文ボックス */
.post-lead-box{display:flex;gap:0;background:#fdf7f7;border:1px solid rgba(192,39,45,.14);border-radius:6px;margin:0 0 28px;overflow:hidden;}
.plb-bar{flex-shrink:0;width:5px;background:var(--red);}
.plb-text{font-size:15px;line-height:2;color:var(--gray3);margin:0;font-weight:500;padding:18px 22px;}

/* ポイントボックス */
.post-points-box{border:2px solid var(--red);border-radius:8px;margin:0 0 28px;overflow:hidden;}
.ppb-head{display:flex;align-items:center;gap:8px;background:var(--red);padding:10px 18px;}
.ppb-ico{font-size:17px;}
.ppb-title{font-size:13px;font-weight:700;letter-spacing:.06em;color:#fff;}
.ppb-list{margin:0;padding:14px 18px 14px 36px;background:#fff;}
.ppb-list li{font-size:14px;line-height:1.9;color:var(--dark);padding:2px 0;}
.ppb-list li::marker{color:var(--red);font-size:12px;}

/* 目次 */
.toc-box{background:#f9f9f9;border:1px solid var(--gray1);border-radius:6px;margin:0 0 28px;padding:0;}
.toc-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:16px 22px;font-size:13px;font-weight:700;color:var(--dark);cursor:pointer;border-radius:6px;text-align:left;}
.toc-toggle:hover{background:rgba(0,0,0,0.04);}
.toc-toggle-icon{font-size:11px;color:var(--gray2);margin-left:8px;flex-shrink:0;}
.toc-list{list-style:none;margin:0;padding:0 22px 16px;}
.toc-list li{padding:3px 0;line-height:1.6;}
.toc-list li.toc-h3{padding-left:18px;}
.toc-list li.toc-h2::before{content:'─ ';font-size:10px;color:var(--red);}
.toc-list li.toc-h3::before{content:'└ ';font-size:10px;color:var(--gray2);}
.toc-list li a{font-size:13px;color:var(--red);text-decoration:none;word-break:break-word;overflow-wrap:break-word;}
.toc-list li a:hover{text-decoration:underline;}

/* まとめボックス */
.post-conclusion-box{background:var(--dark);color:#fff;border-radius:8px;padding:28px 30px;margin:36px 0;}
.pcb-head{font-size:13px;font-weight:700;letter-spacing:.1em;margin-bottom:12px;color:var(--gold-lt);}
.pcb-text{font-size:14px;line-height:2.1;margin:0;color:rgba(255,255,255,.88);}

/* ─── 想定読者バッジ ─── */
.reader-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--gray2);background:var(--off);border:1px solid var(--gray1);border-radius:100px;padding:3px 10px;}

/* ─── FAQ ─── */
.post-faq-box{border:1px solid var(--gray1);border-radius:10px;margin:36px 0;overflow:hidden;}
.pfb-head{display:flex;align-items:center;gap:10px;padding:16px 20px;background:var(--off);border-bottom:1px solid var(--gray1);}
.pfb-ico{font-size:18px;}
.pfb-title{font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--dark);}
.pfb-list{padding:0;}
.pfb-item{border-bottom:1px solid var(--gray1);}
.pfb-item:last-child{border-bottom:none;}
.pfb-q{width:100%;display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border:none;cursor:pointer;text-align:left;transition:background .2s;}
.pfb-q:hover{background:var(--red-pale);}
.pfb-q-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--red);color:#fff;border-radius:50%;font-size:11px;font-weight:700;}
.pfb-q-text{flex:1;font-size:14px;font-weight:600;color:var(--dark);line-height:1.6;}
.pfb-q-arrow{font-size:10px;color:var(--gray2);flex-shrink:0;transition:transform .2s;}
.pfb-a{display:none;align-items:flex-start;gap:12px;padding:14px 20px 18px;background:#fdf7f7;}
.pfb-a-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#fff;border-radius:50%;font-size:11px;font-weight:700;}
.pfb-a p{flex:1;font-size:14px;line-height:2;color:var(--gray3);margin:0;}

/* ─── 関連記事 ─── */
.post-related-box{margin:36px 0 48px;}
.prb-head{margin-bottom:18px;}
.prb-head .prb-title{font-size:15px;font-weight:700;letter-spacing:.06em;color:var(--dark);}
.prb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.prb-card{display:flex;flex-direction:column;border:1px solid var(--gray1);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .22s,transform .22s;}
.prb-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.1);transform:translateY(-2px);}
.prb-thumb{width:100%;aspect-ratio:16/9;overflow:hidden;}
.prb-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.prb-thumb--ico{display:flex;align-items:center;justify-content:center;font-size:32px;}
.prb-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;}
.prb-cat{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--red);color:#fff;padding:2px 8px;border-radius:3px;align-self:flex-start;}
.prb-title-text{font-size:13px;font-weight:700;line-height:1.55;color:var(--dark);}
.prb-date{font-family:var(--dm);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold);}
@media(max-width:768px){
  .prb-grid{grid-template-columns:1fr;}
  .prb-card{flex-direction:row;}
  .prb-thumb{width:90px;height:90px;aspect-ratio:1/1;flex-shrink:0;}
  .prb-thumb--ico{width:90px;height:90px;flex-shrink:0;}
  .pfb-q-text{font-size:13px;}
  .pfb-a p{font-size:13px;}
}

/* ═══════════════════════════════════════
   PROFILE PAGE
═══════════════════════════════════════ */
.page-template-page-profile .page-hero{min-height:480px;}
.hc{position:absolute;border-radius:50%;}
.hc1{width:500px;height:500px;right:-60px;bottom:-100px;background:radial-gradient(circle,rgba(192,39,45,.06) 0%,transparent 70%);}
.hc2{width:340px;height:340px;right:80px;bottom:-40px;border:1px solid rgba(192,39,45,.08);animation:breath 6s ease-in-out infinite;}
.hc3{width:200px;height:200px;right:160px;bottom:20px;border:1px dashed rgba(192,39,45,.06);animation:breath 8s ease-in-out infinite .5s;}
.hero-layout{position:relative;z-index:10;width:100%;max-width:1380px;margin:0 auto;padding:0 56px;display:grid;grid-template-columns:1fr 440px;align-items:flex-end;gap:0;min-height:calc(480px - 80px);}
.hero-txt-col{padding-bottom:56px;}
.hero-name{font-size:clamp(52px,7vw,88px);font-weight:900;line-height:1;letter-spacing:-.02em;margin-bottom:6px;opacity:0;animation:fadeUp .9s ease forwards .4s;}
.hero-name em{color:var(--red);font-style:normal;}
.hero-name-en{font-family:var(--dm);font-size:14px;font-weight:500;letter-spacing:.34em;color:var(--gray2);margin-bottom:20px;opacity:0;animation:fadeUp .9s ease forwards .6s;}
.youngest{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--red),var(--red-deep));color:#fff;padding:7px 16px;font-size:11px;font-weight:700;letter-spacing:.1em;box-shadow:0 4px 16px rgba(192,39,45,.25);margin-bottom:24px;opacity:0;animation:fadeUp .9s ease forwards .75s;}
.hero-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:28px;opacity:0;animation:fadeUp .9s ease forwards .9s;}
.ht{font-size:11px;font-weight:700;letter-spacing:.05em;padding:5px 12px;border:1.5px solid var(--gray1);color:var(--gray3);}
.hero-motto{font-size:18px;font-weight:700;letter-spacing:.1em;color:var(--dark);border-left:3px solid var(--red);padding-left:16px;opacity:0;animation:fadeUp .9s ease forwards 1.05s;}
.hero-motto-en{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.22em;color:var(--gray2);margin-top:4px;padding-left:19px;}
.hero-photo-col-p{position:relative;height:calc(480px - 80px);display:flex;align-items:flex-end;justify-content:center;}
.hero-photo{width:100%;max-height:100%;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 12px 40px rgba(192,39,45,.12));opacity:0;animation:fadeUp 1.2s cubic-bezier(.16,1,.3,1) forwards .5s;position:relative;z-index:5;}
.about-section{padding:100px 0;background:var(--white);}
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center;}
.about-lead{font-size:clamp(22px,3vw,32px);font-weight:900;line-height:1.4;letter-spacing:-.01em;margin-bottom:32px;}
.about-lead em{color:var(--red);font-style:normal;}
.about-body{font-size:15px;line-height:2.35;color:var(--gray3);}
.about-body p{margin-bottom:20px;}
.about-body strong{color:var(--dark);font-weight:700;}
.expertise-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ex-card{background:var(--off);padding:24px;border-top:3px solid var(--red);transition:transform .3s,box-shadow .3s;}
.ex-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.07);}
.ex-ico{font-size:28px;display:block;margin-bottom:12px;}
.ex-title{font-size:14px;font-weight:700;margin-bottom:8px;color:var(--dark);}
.ex-body{font-size:12px;line-height:1.9;color:var(--gray2);}
/* ── BASIC INFO ── */
.basicinfo-section{padding:72px 0;background:var(--off);border-top:1px solid var(--gray1);}
.basicinfo-title{font-size:clamp(22px,3vw,32px);font-weight:900;letter-spacing:-.01em;margin-bottom:40px;}
.basicinfo-layout{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start;}
.basicinfo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.basicinfo-card{background:var(--white);padding:24px;border-top:3px solid var(--red);}
.bi-label{font-size:11px;font-weight:700;color:var(--red);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.bi-value{font-size:15px;font-weight:700;color:var(--dark);}
.basicinfo-gakureki{background:var(--white);padding:24px 28px;border-top:3px solid var(--red);}
.bi-gakureki-list{list-style:none;margin:8px 0 0;padding:0;}
.bi-gakureki-list li{font-size:14px;color:var(--dark);padding:7px 0;border-bottom:1px solid var(--gray1);line-height:1.6;}
.bi-gakureki-list li:last-child{border-bottom:none;}
.bi-gakureki-list li::before{content:"■ ";color:var(--red);font-size:10px;}
@media(max-width:960px){.basicinfo-layout{grid-template-columns:1fr;}}
@media(max-width:600px){.basicinfo-grid{grid-template-columns:1fr 1fr;}}

/* ── WHY POLITICS ── */
.why-section{padding:100px 0;background:var(--white);}
.why-title{font-size:clamp(22px,3vw,32px);font-weight:900;letter-spacing:-.01em;margin-bottom:48px;}
.why-body{max-width:760px;}
.why-body p{font-size:15px;line-height:2.35;color:var(--gray3);margin-bottom:24px;}
.why-commitment{background:var(--off);border-left:4px solid var(--red);padding:32px 36px;margin:40px 0;}
.wc-title{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:16px;}
.wc-list{list-style:none;padding:0;margin:0;}
.wc-list li{font-size:14px;color:var(--gray3);line-height:1.9;padding:4px 0 4px 20px;position:relative;}
.wc-list li::before{content:"→";position:absolute;left:0;color:var(--red);font-weight:700;}
.why-closing{font-size:16px;font-weight:700;color:var(--dark);margin-top:32px;}

.career-section{padding:100px 0;background:var(--off);position:relative;overflow:hidden;}
.career-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23C0272D' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.052;pointer-events:none;}
.career-layout{display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start;}
.career-left-title{font-size:clamp(28px,3.5vw,44px);font-weight:900;letter-spacing:-.01em;margin-bottom:24px;}
.career-left-title em{color:var(--red);font-style:normal;}
.career-lead{font-size:14px;line-height:2.2;color:var(--gray3);}
.timeline{position:relative;padding-left:28px;}
.timeline::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,var(--red),rgba(192,39,45,.1));}
.tl-item{position:relative;padding-bottom:40px;}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{position:absolute;left:-34px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--white);border:2.5px solid var(--red);transition:background .25s;}
.tl-item:hover .tl-dot{background:var(--red);}
.tl-year{font-family:var(--dm);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--red);margin-bottom:6px;}
.tl-title{font-size:16px;font-weight:700;color:var(--dark);margin-bottom:8px;line-height:1.35;}
.tl-body{font-size:13px;line-height:1.95;color:var(--gray2);}
.tl-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
.tl-tag{font-size:10px;font-weight:700;letter-spacing:.07em;padding:3px 9px;background:var(--red-pale);color:var(--red);}
.tl-photo{margin-top:14px;border-radius:6px;overflow:hidden;max-width:220px;border:2px solid rgba(192,39,45,.15);}
.tl-photo img{width:100%;height:auto;display:block;object-fit:cover;}
.tl-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;}
.tl-photos .tl-photo{margin-top:0;}
.qual-section{padding:100px 0;background:var(--white);}
.qual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
.qual-card{background:var(--off);padding:36px 28px;text-align:center;border-bottom:3px solid transparent;transition:all .35s;}
.qual-card:hover{border-bottom-color:var(--red);transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.08);}
.qual-ico{font-size:44px;display:block;margin-bottom:16px;line-height:1;}
.qual-name{font-size:18px;font-weight:700;margin-bottom:8px;color:var(--dark);}
.qual-type{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--red);margin-bottom:10px;display:block;}
.qual-desc{font-size:12px;line-height:1.9;color:var(--gray2);}
.persona-section{padding:100px 0;background:var(--dark);position:relative;overflow:hidden;}
.persona-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.052;pointer-events:none;}
.persona-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(192,39,45,.1) 0%,transparent 70%);pointer-events:none;}
.persona-head{text-align:center;margin-bottom:64px;}
.persona-head .sl{justify-content:center;color:rgba(220,100,100,.8);}
.persona-head .sl::before{background:rgba(220,100,100,.8);}
.persona-title{font-size:clamp(28px,3.5vw,44px);font-weight:900;color:#fff;margin-top:12px;}
.persona-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.persona-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);padding:32px 24px;transition:background .3s,border-color .3s;text-align:center;}
.persona-card:hover{background:rgba(192,39,45,.09);border-color:rgba(192,39,45,.22);}
.persona-ico{font-size:40px;display:block;margin-bottom:16px;}
.persona-name{font-size:15px;font-weight:700;color:#fff;margin-bottom:10px;}
.persona-desc{font-size:12px;line-height:1.95;color:rgba(255,255,255,.48);}
.affil-section{padding:80px 0;background:var(--off);}
.affil-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.affil-card{background:var(--white);padding:22px 20px;border-radius:8px;border-bottom:3px solid transparent;transition:border-color .25s;}
.affil-card:hover{border-bottom-color:var(--red);}
.affil-ico{font-size:24px;display:block;margin-bottom:10px;}
.affil-name{font-size:14px;font-weight:700;color:var(--dark);line-height:1.4;margin-bottom:4px;}
.affil-sub{font-size:12px;color:var(--gray2);}

.philo-section{padding:100px 0;background:var(--white);}
.philo-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.philo-big{font-size:clamp(36px,5vw,64px);font-weight:900;line-height:1.15;letter-spacing:-.02em;margin-bottom:32px;}
.philo-big em{color:var(--red);font-style:normal;}
.philo-motto-block{background:var(--dark);color:#fff;padding:36px 40px;margin-bottom:32px;}
.pm-ja{font-size:28px;font-weight:700;letter-spacing:.2em;margin-bottom:10px;}
.pm-en{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.22em;color:rgba(255,255,255,.45);}
.pm-desc{font-size:14px;line-height:2.2;color:rgba(255,255,255,.65);margin-top:16px;}
.philo-body{font-size:15px;line-height:2.3;color:var(--gray3);}
.philo-body strong{color:var(--dark);font-weight:700;}
.philo-body p{margin-bottom:20px;}
.philo-3cols{display:flex;flex-direction:column;gap:16px;}
.p3c{border-left:3px solid var(--red);padding:20px 20px 20px 22px;background:var(--off);}
.p3c h3{font-size:15px;font-weight:700;color:var(--dark);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.p3c h3 span{font-size:18px;}
.p3c p{font-size:13px;line-height:1.9;color:var(--gray2);}
.contact-section{padding:100px 0;background:var(--red);position:relative;overflow:hidden;}
.cont-seig{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='14' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3Cellipse cx='42' cy='10' rx='28' ry='22' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E");background-size:56px 32px;opacity:.06;pointer-events:none;}
.cont-inner{text-align:center;max-width:680px;margin:0 auto;}
.cont-inner .sl{justify-content:center;color:rgba(255,255,255,.7);}
.cont-inner .sl::before{background:rgba(255,255,255,.7);}
.cont-title{font-size:clamp(28px,4vw,48px);font-weight:900;color:#fff;line-height:1.25;margin:12px 0 20px;}
.cont-body{font-size:15px;line-height:2.2;color:rgba(255,255,255,.75);margin-bottom:44px;}
.cont-btns{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}
.cb-line{display:flex;align-items:center;gap:12px;padding:16px 28px;background:#06C755;color:#fff;font-size:14px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:background .22s;}
.cb-line:hover{background:#05A847;}
.cb-support{display:flex;align-items:center;gap:10px;padding:16px 28px;background:#fff;color:var(--red);font-size:14px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:all .22s;}
.cb-support:hover{background:var(--red-pale);}

/* ═══════════════════════════════════════
   ACHIEVEMENTS PAGE
═══════════════════════════════════════ */
.ph-inner{position:relative;z-index:10;max-width:1380px;margin:0 auto;padding:4px 56px 6px;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;}
.ph-title{font-size:clamp(22px,3vw,44px);font-weight:900;letter-spacing:-.025em;line-height:1.08;opacity:0;animation:fadeUp .9s ease forwards .3s;}
.ph-title em{color:var(--red);font-style:normal;}
.ph-en{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.3em;color:var(--gray2);margin-top:3px;opacity:0;animation:fadeUp .9s ease forwards .5s;}
.toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 56px 14px;gap:12px;flex-wrap:wrap;position:sticky;top:80px;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--gray1);}
.f-tabs{display:flex;gap:6px;flex-wrap:wrap;}
.result-count{font-family:var(--dm);font-size:12px;font-weight:500;letter-spacing:.1em;color:var(--gray2);white-space:nowrap;flex-shrink:0;}
.result-count em{color:var(--red);font-style:normal;font-weight:700;}
.grid-wrap{max-width:1380px;margin:0 auto;padding:24px 56px 80px;}
.ach-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ach-card{background:var(--white);border:1px solid var(--gray1);overflow:hidden;transition:border-color .25s,box-shadow .25s;cursor:none;}
.ach-card:hover{border-color:rgba(192,39,45,.2);box-shadow:0 5px 22px rgba(0,0,0,.07);}
.ac-head{display:grid;grid-template-columns:88px 1fr;align-items:stretch;}
.ac-thumb{min-height:84px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;position:relative;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1);}
.ach-card:hover .ac-thumb{transform:scale(1.06);}
.ac-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.ac-meta{padding:12px 14px 10px;border-left:1px solid var(--gray1);display:flex;flex-direction:column;gap:4px;}
.ac-top{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;}
.ac-cat{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--red);color:#fff;padding:3px 8px;}
.ac-date{font-family:var(--dm);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--gold);}
.ac-title{font-size:13px;font-weight:700;line-height:1.45;color:var(--dark);}
.ac-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:1px;}
.ac-tag{font-size:9px;font-weight:600;letter-spacing:.05em;padding:2px 6px;border:1px solid rgba(192,39,45,.15);color:var(--red);}
.ac-foot{padding:10px 14px;border-top:1px solid var(--gray1);display:flex;align-items:center;gap:10px;}
.ac-summary{font-size:11px;color:var(--gray2);line-height:1.6;flex:1;}
.ac-status{display:inline-flex;align-items:center;gap:4px;font-family:var(--dm);font-size:9px;font-weight:700;letter-spacing:.1em;padding:4px 8px;white-space:nowrap;flex-shrink:0;}
.s-done{background:#E8F5E9;color:#2E7D32;}
.s-done::before{content:'●';color:#4CAF50;font-size:6px;}
.s-progress{background:#FFF3E0;color:#E65100;}
.s-progress::before{content:'●';color:#FF9800;font-size:6px;animation:blink 1.5s ease-in-out infinite;}
.s-pending{background:var(--off);color:var(--gray2);}
.s-pending::before{content:'●';color:var(--gray2);font-size:6px;}
.ac-btn{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.07em;color:var(--red);background:none;border:none;cursor:none;padding:0;white-space:nowrap;flex-shrink:0;transition:opacity .2s;font-family:var(--sans);}
.ac-btn:hover{opacity:.65;}
.ac-btn-ico{transition:transform .3s;font-style:normal;font-size:9px;display:inline-block;}
.ac-btn.open .ac-btn-ico{transform:rotate(180deg);}
.ac-detail{max-height:0;overflow:hidden;transition:max-height .42s cubic-bezier(.16,1,.3,1);}
/* max-height はJSでscrollHeightを動的にセット → 内容が何行でも切れない */
.ac-detail-inner{padding:16px 14px 16px;border-top:1px solid var(--gray1);background:var(--off);}
.ac-detail-body{font-size:12px;line-height:2.1;color:var(--gray3);margin-bottom:12px;}
.ac-detail-body strong{color:var(--dark);font-weight:700;}
.ac-detail-body em{color:var(--red);font-style:normal;}
.ac-results{display:flex;flex-wrap:wrap;gap:6px;}
.ac-result{display:flex;align-items:center;gap:4px;background:var(--white);border:1px solid rgba(192,39,45,.14);padding:4px 10px;font-size:11px;font-weight:700;color:var(--red);}
.ac-result::before{content:'✓';font-size:10px;}

/* ═══════════════════════════════════════
   ARCHIVES PAGE
═══════════════════════════════════════ */
.page-ttl{font-size:clamp(32px,5vw,60px);font-weight:900;letter-spacing:-.02em;color:#fff;opacity:0;animation:fadeUp .9s ease forwards .4s;}
.archives-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.archive-card{display:flex;flex-direction:column;background:var(--off);border:1px solid var(--gray1);transition:all .3s;text-decoration:none;color:inherit;}
.archive-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.08);border-color:var(--red);}
.archive-card-thumb{width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--light);}
.archive-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.archive-card:hover .archive-card-thumb img{transform:scale(1.04);}
.archive-card-ico{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px;}
.archive-card-body{padding:20px;flex:1;display:flex;flex-direction:column;gap:8px;}
.archive-card-ttl{font-size:16px;font-weight:900;letter-spacing:-.01em;line-height:1.4;}
.archive-card-desc{font-size:13px;line-height:1.7;color:var(--gray3);flex:1;}
.archive-card-more{font-size:12px;font-weight:700;color:var(--red);letter-spacing:.06em;margin-top:auto;}
/* 空状態 */
.archives-empty{text-align:center;padding:80px 20px;}
.ae-icon{font-size:64px;margin-bottom:24px;}
.archives-empty h2{font-size:24px;font-weight:900;margin-bottom:12px;}
.archives-empty p{color:var(--gray3);font-size:14px;line-height:1.8;margin-bottom:32px;}
.ae-steps{display:inline-flex;flex-direction:column;gap:12px;text-align:left;}
.ae-step{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--gray3);}
.ae-n{width:24px;height:24px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;}
/* 活動一覧リスト */
.archive-post-list{display:flex;flex-direction:column;gap:0;}
.apl-item{display:flex;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--gray1);text-decoration:none;color:inherit;transition:background .2s;}
.apl-item:hover .apl-ttl{color:var(--red);}
.apl-cat{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.apl-body{flex:1;}
.apl-date{font-size:11px;color:var(--gray2);font-family:var(--dm);margin-right:10px;}
.apl-label{font-size:10px;font-weight:700;color:var(--red);padding:2px 8px;border:1px solid rgba(192,39,45,.3);margin-right:8px;}
.apl-ttl{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-top:4px;transition:color .2s;}
.apl-arrow{font-size:16px;color:var(--gray2);flex-shrink:0;transition:color .2s;}
.apl-item:hover .apl-arrow{color:var(--red);}

/* ═══════════════════════════════════════
   RESPONSIVE — TABLET 961px〜1200px
   iPad Pro 11" / 12.9" 縦向き専用
═══════════════════════════════════════ */
@media(min-width:961px) and (max-width:1200px){
  /* ─── ナビ：コンパクト化 ─── */
  nav#nav{padding:0 16px 0 20px;height:58px;}
  .n-links{gap:10px;}
  .n-links a{font-size:11px;letter-spacing:.01em;}
  .n-social{display:none;}
  .n-btn{padding:7px 12px;font-size:11px;letter-spacing:.02em;}
  .n-logo-main{font-size:15px;}
  .n-logo-sub{font-size:8px;}

  /* ─── レイアウト余白 ─── */
  .sw{padding:0 32px;}
  /* ヒーロー：写真列をvw固定にしてテキストを縦中央揃え */
  .hero{padding-top:72px;height:auto;}
  .hero-inner{padding:0 36px;grid-template-columns:44% 56%;height:auto;align-items:center;}
  .hero-photo-col{height:55vw;max-height:calc(100vh - 90px);}
  .photo-wrap{height:100%;}
  .hero-txt{padding-right:20px;}

  /* ─── キャッチコピー ─── */
  .h-copy{font-size:clamp(22px,3vw,40px);}
  .h-copy--lg{font-size:clamp(20px,2.8vw,38px);}

  /* ─── 活動報告：2カラム維持 ─── */
  .act-featured{grid-template-columns:320px 1fr;}
  .act-card-row{grid-template-columns:repeat(3,1fr);}

  /* ─── セクション全般 ─── */
  .v-grid{grid-template-columns:1fr 1.3fr;gap:60px;}
  .pol-grid{grid-template-columns:repeat(3,1fr);}
  .dig-grid{grid-template-columns:repeat(3,1fr);}
  .expertise-grid{grid-template-columns:repeat(3,1fr);}
  .qual-grid{grid-template-columns:repeat(3,1fr);}
  .f-top{grid-template-columns:1fr 1fr 1fr;gap:32px;}
}

/* ═══════════════════════════════════════
   RESPONSIVE — 960px
═══════════════════════════════════════ */
@media(max-width:960px){
  /* ─── タッチデバイス：カスタムカーソル無効化 ─── */
  body{cursor:auto !important;}
  .cur,.cur-ring{display:none !important;}
  /* スマホの btn-green も ::after shimmer 幅調整 */
  .btn-green::after{width:45%;}

  /* ─── ナビ：960px以下でモバイル型 ─── */
  nav#nav{top:0;left:0;right:0;transform:none;width:100%;max-width:100%;border-radius:0;height:60px;padding:0 20px;border-left:none;border-right:none;border-top:none;border-bottom:1px solid rgba(192,39,45,.08);}
  .n-links,.n-btn{display:none;}
  .nav-hamburger{display:flex;}
  /* 桜ラジアルメニューを表示 */
  .sakura-menu{display:block;}
  /* ヒーローのpadding-top調整（nav:60px） */
  .hero{padding-top:60px;}
  /* ヘッダーSNSアイコン非表示 */
  .n-social{display:none;}
  /* キャッチコピー3行 */
  .ln-pc{display:none !important;}
  .ln-sp{display:block !important;}
  .sw{padding:0 20px;}
  /* ━━━━━━━━━━━━━━━━━━━━━━━━━━
     HERO — スマホ専用デザイン
     キャッチコピーのみ写真と横並び
     ピラー・バッジ・CTAは全幅
  ━━━━━━━━━━━━━━━━━━━━━━━━━━ */
  /* ━━━ HERO スマホ専用レイアウト ━━━ */
  /* display:blockでflexの影響を完全に切り、高さをコンテンツで決定 */
  .hero{display:block !important;height:auto !important;min-height:0 !important;padding-top:60px;overflow:hidden;}
  /* padding:0 → 写真(absolute)は動かない。hero-txtの高さがそのままheroの高さになる */
  .hero-inner{display:block !important;position:relative;padding:0 16px 0;height:auto !important;min-height:0 !important;}
  .scroll-hint{display:none !important;}

  /* 写真を右に絶対配置：top:6vwで少し下げ、height:72vwで下余白を縮小 */
  .hero-photo-col{position:absolute;right:0;top:6vw;width:52vw;height:72vw;z-index:5;overflow:hidden;}
  .photo-wrap{width:100%;height:100%;overflow:hidden;}
  .photo-wrap::before{width:90%;top:4%;}

  /* テキスト通常フロー：flex で子要素の order 制御可能に
     padding-top:0、.h-tag に margin-top:auto → キャッチ+バッジ+ボタンをひとかたまりとして下部に押し出す */
  .hero-txt{position:relative;z-index:10;padding-top:0;padding-right:0;
    display:flex;flex-direction:column;min-height:96vw;}

  /* キャッチコピーだけ右の写真スペースを空ける */
  /* margin-top:auto → h-tag より上の空きスペースを全て吸収 → グループ全体が下に押し出される */
  .h-tag{font-size:9px;letter-spacing:.1em;margin-bottom:8px;padding-right:48vw;order:1;margin-top:auto;}
  .h-copy{font-size:clamp(18px,5.5vw,28px);margin-bottom:16px;padding-right:48vw;line-height:1.38;order:2;}
  /* キャッチコピーは写真に被ってOK → padding-right:0、overflow:visible */
  .h-copy--lg{font-size:clamp(18px,5.5vw,28px);padding-right:0;}
  .ln{white-space:normal;line-height:1.35;}
  /* 各行が途中で折り返さないよう nowrap + visible overflow */
  .h-copy--lg .ln{white-space:nowrap !important;overflow:visible !important;text-shadow:none;}

  /* ピラー（健康×つながり×岡崎ファースト）はスマホで非表示 */
  .h-sub-wrap{padding-right:0;margin-bottom:8px;order:3;}
  .h-pillars-mini{display:none !important;}
  .h-sub-copy{font-size:12px;margin-top:6px;}

  /* バッジ：キャッチコピーのすぐ下に配置（auto余白なし）、個別に白塗り */
  .h-badges{
    order:4;
    margin-top:10px;
    padding:0 !important;
    gap:6px;
    flex-wrap:wrap;
    background:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    border-radius:0;
    margin-bottom:0;
  }
  .hb{
    font-size:9.5px;
    padding:5px 10px;
    background:#fff !important;
    color:#333 !important;
    border:1.5px solid rgba(0,0,0,.10);
    border-radius:6px;
  }

  /* ボタン：バッジのすぐ下 */
  .h-btns{padding-right:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;margin-bottom:16px;order:5;}
  .btn-r,.btn-o{font-size:12px;padding:14px 10px;text-align:center;justify-content:center;}
  /* スマホでは::after shimmerの幅・位置を調整 */
  .btn-o::after{width:45%;}

  /* 黒いプロフィールカード → スマホでは完全非表示 */
  .p-badge{display:none !important;}
  /* sections */
  .v-grid,.philo-layout,.about-layout,.career-layout{grid-template-columns:1fr;gap:48px;}
  .prof-layout{grid-template-columns:1fr;}
  .dig-header{grid-template-columns:1fr;}
  .sup-inner{grid-template-columns:1fr;gap:44px;}
  .f-top{grid-template-columns:1fr;gap:44px;}
  .activity,.vision,.profile,.policy,.digital,.supporters{padding:72px 0;}
  .act-featured{grid-template-columns:1fr;}
  .act-feat-thumb{min-height:200px;}
  .act-feat-body{padding:24px 22px;}
  .act-feat-ttl{font-size:17px;}
  .act-card-row{grid-template-columns:1fr;gap:14px;}
  .act-mini-row{grid-template-columns:repeat(2,1fr);}
  .pol-grid{grid-template-columns:repeat(2,1fr);}
  .dig-grid{grid-template-columns:repeat(2,1fr);}
  .expertise-grid{grid-template-columns:1fr 1fr;}
  .qual-grid{grid-template-columns:1fr 1fr;}
  .persona-grid{grid-template-columns:1fr 1fr;}
  .hobbies{grid-template-columns:1fr;}
  /* page heroes */
  .hero-layout{grid-template-columns:1fr;min-height:auto;}
  .hero-photo-col-p{height:70vw;}
  .page-hero-inner{padding:4px 20px 6px;}
  .ph-inner{padding:6px 20px 8px;flex-direction:column;align-items:flex-start;}
  /* activity */
  .cards-grid{grid-template-columns:1fr;gap:16px;}
  .post-card--feature{grid-column:span 1;}
  .detail-nav{grid-template-columns:1fr;}
  /* achievements */
  .ach-grid{grid-template-columns:1fr;}
  .toolbar{padding:12px 20px;top:56px;}
  .grid-wrap{padding:16px 20px 60px;}
    .affil-grid{grid-template-columns:1fr;}
  /* footer */
  .f-top{flex-direction:column;gap:28px;}
  .f-nav{gap:16px;}
  footer .sw,.fi{padding:0 20px;}
  /* 記事ページ（single.php） — 左右対称余白 */
  .single-wrap .sw{padding:0 20px;}
  .detail-layout{display:block;}
  .detail-main{width:100%;min-width:0;}
  .detail-sidebar{display:none;}
  .detail-body{font-size:16px;line-height:1.95;}
  .detail-title{font-size:clamp(20px,5.5vw,28px);}
  /* コストテーブル：スマホ時カード表示 */
  .cost-table thead{display:none;}
  .cost-table,.cost-table tbody,.cost-table tfoot,.cost-table tr,.cost-table td{display:block;width:100%;}
  .cost-table tbody tr{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:10px;overflow:hidden;}
  .cost-table tbody tr:nth-child(odd),.cost-table tbody tr:nth-child(even){background:#fff;}
  .cost-table tbody td{border-bottom:1px solid #f0f0f0;padding:9px 14px;font-size:14px;text-align:left !important;white-space:normal;}
  .cost-table tbody td:first-child{background:#1a1a2e;color:#7eb3ff;font-size:11px;padding:6px 14px;}
  .cost-table tbody td:nth-child(3)::before{content:'工数：';font-size:11px;color:#999;}
  .cost-table tbody td:nth-child(4)::before{content:'金額：';font-size:11px;color:#999;font-weight:400;}
  .cost-table tbody td:nth-child(4){font-weight:700;color:#C0272D;}
  .cost-table tfoot tr{display:flex;flex-wrap:wrap;border-radius:8px;overflow:hidden;}
  .cost-table tfoot td{flex:1;text-align:center !important;padding:12px 8px;font-size:14px;}
  .cost-total-box{font-size:15px;padding:14px 16px;}
  /* フロントページ：セクション間スペース縮小 */
  .activity{padding:56px 0;}
  .challenge{padding:52px 0;}
  .top-dash{padding:52px 0 44px;}
  .shiseihokoku-banner{padding:36px 0;}
  /* ダッシュボード：セクションラベル読みやすく */
  .dash-section-label{font-size:12px;letter-spacing:.1em;margin:36px 0 14px;}
}


/* ═══════════════════════════════════════
   INNER HERO（共通：各ページのヘッダー）
═══════════════════════════════════════ */
.inner-hero{background:var(--dark);padding:100px 0 52px;text-align:center;position:relative;overflow:hidden;}
.inner-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(192,39,45,.18),transparent);}
.ih-title{font-size:clamp(28px,5vw,52px);font-weight:900;color:#fff;margin-bottom:12px;line-height:1.15;}
.ih-lead{font-size:clamp(13px,1.8vw,16px);color:rgba(255,255,255,.82);max-width:540px;margin:0 auto;}

/* ═══════════════════════════════════════
   PRIVACY POLICY
═══════════════════════════════════════ */
.pp-body{max-width:760px;margin:64px auto 96px;padding:0 24px;}
.pp-intro{font-size:16px;line-height:1.85;color:var(--gray3);margin-bottom:40px;border-left:3px solid var(--red);padding-left:16px;}
.pp-section{margin-bottom:40px;}
.pp-section h2{font-size:18px;font-weight:800;color:var(--dark);display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.pp-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:900;flex-shrink:0;}
.pp-section p,.pp-section li{font-size:15px;line-height:1.9;color:#444;}
.pp-list{margin:8px 0 0 16px;display:flex;flex-direction:column;gap:6px;}
.pp-list li::marker{color:var(--red);}
.pp-section a{color:var(--red);text-decoration:underline;}
.pp-footer{margin-top:56px;padding-top:24px;border-top:1px solid #eee;font-size:13px;color:#888;line-height:1.8;}

/* ═══════════════════════════════════════
   SITE MAP
═══════════════════════════════════════ */
.stm-wrap{padding:64px 0 96px;}
.stm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.stm-block{background:#fff;border-radius:16px;padding:28px;border:1.5px solid rgba(0,0,0,.07);box-shadow:0 2px 14px rgba(0,0,0,.05);transition:box-shadow .2s;}
.stm-block:hover{box-shadow:0 6px 28px rgba(0,0,0,.1);}
.stm-block-head{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1.5px solid rgba(0,0,0,.07);}
.stm-icon{font-size:22px;}
.stm-block-head h2{font-size:15px;font-weight:800;color:var(--dark);}
.stm-list{list-style:none;display:flex;flex-direction:column;gap:8px;}
.stm-list a{font-size:14px;color:#555;text-decoration:none;display:flex;align-items:center;gap:6px;padding:4px 0;transition:color .2s;border-bottom:1px solid transparent;}
.stm-list a::before{content:'→';font-size:11px;color:var(--red);flex-shrink:0;}
.stm-list a:hover{color:var(--red);}
.stm-child a{padding-left:10px;font-size:13px;color:#888;}

/* ═══════════════════════════════════════
   CONTACT
═══════════════════════════════════════ */
.ct-wrap{max-width:780px;margin:60px auto 96px;padding:0 24px;}
.ct-sent{display:flex;align-items:center;gap:16px;background:#f0fdf4;border:1.5px solid #86efac;border-radius:12px;padding:20px 24px;margin-bottom:32px;}
.ct-sent-icon{width:40px;height:40px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.ct-sent-title{font-weight:800;font-size:16px;color:#16a34a;margin-bottom:4px;}
.ct-error-msg{background:#fef2f2;border:1.5px solid #fca5a5;border-radius:12px;padding:16px 20px;color:#dc2626;font-size:14px;margin-bottom:24px;}
.ct-error-msg span{font-weight:700;}
/* 種別ボタン */
.ct-types{margin-bottom:36px;}
.ct-types-label{font-size:13px;font-weight:700;color:#888;letter-spacing:.08em;margin-bottom:12px;}
.ct-type-row{display:flex;flex-wrap:wrap;gap:10px;}
.ct-type-btn{cursor:pointer;background:#f5f5f5;border:1.5px solid #e5e5e5;border-radius:100px;padding:8px 18px;font-size:13px;font-weight:600;color:#555;transition:all .2s;}
.ct-type-btn:hover,.ct-type-btn.active{background:var(--dark);border-color:var(--dark);color:#fff;}
.ct-type-btn input{display:none;}
/* フォーム */
.ct-form{display:flex;flex-direction:column;gap:20px;}
.ct-row-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.ct-field{display:flex;flex-direction:column;gap:6px;}
.ct-field label{font-size:13px;font-weight:700;color:var(--dark);}
.ct-req{color:var(--red);}
.ct-field input,.ct-field textarea{border:1.5px solid #ddd;border-radius:10px;padding:12px 16px;font-size:15px;font-family:inherit;color:var(--dark);transition:border-color .2s,box-shadow .2s;outline:none;resize:vertical;}
.ct-field input:focus,.ct-field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(192,39,45,.12);}
.ct-privacy-check{font-size:13px;color:#666;}
.ct-privacy-check a{color:var(--red);}
.ct-submit{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;border:none;border-radius:100px;padding:16px 42px;font-size:16px;font-weight:800;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 6px 24px rgba(192,39,45,.35);}
.ct-submit:hover{background:#a01e23;transform:translateY(-2px);box-shadow:0 10px 32px rgba(192,39,45,.45);}
/* 補足情報 */
.ct-info-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px;}
.ct-info-card{background:#fafafa;border:1.5px solid #f0f0f0;border-radius:12px;padding:20px;text-align:center;}
.ct-info-icon{font-size:24px;margin-bottom:8px;}
.ct-info-title{font-size:13px;font-weight:800;color:var(--dark);margin-bottom:6px;}
.ct-info-card p{font-size:12px;color:#666;line-height:1.7;}

/* ═══════════════════════════════════════
   MEDIA
═══════════════════════════════════════ */
.media-wrap{padding:56px 0 96px;}
.media-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px;}
.mf-btn{background:#f5f5f5;border:1.5px solid #e5e5e5;border-radius:100px;padding:8px 22px;font-size:13px;font-weight:700;color:#666;cursor:pointer;transition:all .2s;}
.mf-btn.active,.mf-btn:hover{background:var(--dark);color:#fff;border-color:var(--dark);}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:56px;}
.media-card{background:#fff;border-radius:14px;padding:24px;border:1.5px solid rgba(0,0,0,.07);box-shadow:0 2px 12px rgba(0,0,0,.05);transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column;gap:10px;}
.media-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.1);transform:translateY(-3px);}
.mc-top{display:flex;align-items:center;gap:10px;}
.mc-label{font-size:11px;font-weight:800;color:#fff;padding:3px 10px;border-radius:100px;letter-spacing:.04em;}
.mc-date{font-size:12px;color:#888;}
.mc-outlet{font-size:13px;font-weight:800;color:#555;}
.mc-title{font-size:14px;font-weight:600;color:var(--dark);line-height:1.7;flex:1;}
.mc-link{display:inline-flex;align-items:center;font-size:12px;color:var(--red);font-weight:700;text-decoration:none;margin-top:auto;}
.mc-link:hover{text-decoration:underline;}
.mc-nolink{font-size:12px;color:#bbb;margin-top:auto;}
/* 取材依頼CTA */
.media-cta{background:var(--dark);border-radius:20px;padding:40px;text-align:center;}
.media-cta-inner{max-width:560px;margin:0 auto;}
.media-cta-title{font-size:20px;font-weight:900;color:#fff;margin-bottom:12px;}
.media-cta-inner p{color:rgba(255,255,255,.7);font-size:14px;margin-bottom:24px;}

/* ═══════════════════════════════════════
   FAQ
═══════════════════════════════════════ */
.faq-hero{position:relative;}
.faq-floats{position:absolute;inset:0;pointer-events:none;}
.faq-floats span{position:absolute;animation:floatBob 3s ease-in-out infinite;}
@keyframes floatBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.faq-wrap{padding:56px 0 96px;}
/* カテゴリーボタン */
.faq-cats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px;}
.fc-btn{cursor:pointer;background:#fff;border:2px solid #e5e5e5;border-radius:100px;padding:10px 22px;font-size:13px;font-weight:800;color:#555;transition:all .22s;display:flex;align-items:center;gap:6px;}
.fc-icon{font-size:15px;}
.fc-btn:hover,.fc-btn.active{background:var(--fc,var(--red));border-color:var(--fc,var(--red));color:#fff;}
/* アコーディオンアイテム */
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq-item{border-radius:16px;overflow:hidden;border:2px solid rgba(0,0,0,.07);background:#fff;border-left:5px solid var(--fq-color,#C0272D);transition:box-shadow .2s;}
.faq-item.open{box-shadow:0 6px 24px rgba(0,0,0,.1);}
.fi-q{width:100%;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:20px 22px;text-align:left;font-size:15px;font-weight:700;color:var(--dark);line-height:1.5;}
.fi-emoji{font-size:20px;flex-shrink:0;}
.fi-qtext{flex:1;}
.fi-arrow{flex-shrink:0;color:var(--fq-color,#C0272D);font-size:12px;transition:transform .3s;}
.faq-item.open .fi-arrow{transform:rotate(180deg);}
.fi-a{padding:0 22px 20px 56px;font-size:14px;line-height:1.9;color:#555;background:rgba(0,0,0,.015);}
/* FAQ CTA */
.faq-cta{margin-top:56px;background:linear-gradient(135deg,#fef2f2,#fff5f5);border:2px solid rgba(192,39,45,.15);border-radius:20px;padding:40px;text-align:center;}
.faq-cta-title{font-size:18px;font-weight:900;color:var(--dark);margin-bottom:10px;}
.faq-cta p{font-size:14px;color:#666;margin-bottom:24px;}

/* ═══════════════════════════════════════
   DASHBOARD
═══════════════════════════════════════ */
.dash-hero{background:linear-gradient(160deg,#0f0a0a,#1c191a);}
.dash-updated{font-size:12px;color:rgba(255,255,255,.45);margin-top:14px;}
.dash-updated a{color:rgba(192,39,45,.8);text-decoration:underline;}
.dash-wrap{padding:56px 0 96px;}
/* ステータスカード */
.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:48px;}
.ds-card{background:#fff;border-radius:16px;padding:24px 20px;border:1.5px solid rgba(0,0,0,.07);box-shadow:0 2px 12px rgba(0,0,0,.05);text-align:center;transition:box-shadow .2s,transform .2s;}
.ds-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.1);transform:translateY(-3px);}
.ds-icon{font-size:28px;margin-bottom:8px;}
.ds-label{font-size:11px;font-weight:700;letter-spacing:.06em;color:#999;text-transform:uppercase;margin-bottom:6px;}
.ds-value{font-size:clamp(24px,3vw,36px);font-weight:900;color:var(--dark);line-height:1.1;}
.ds-value span{font-size:14px;font-weight:700;color:#888;margin-left:3px;}
.ds-sub{font-size:11px;color:#aaa;margin-top:5px;}
.ds-card--pop{border-top:3px solid #C0272D;}
.ds-card--elder{border-top:3px solid #d97706;}
.ds-card--budget{border-top:3px solid #16a34a;}
.ds-card--council{border-top:3px solid #2563eb;}
.ds-card--turnout{border-top:3px solid #7c3aed;}
/* チャート */
.dash-charts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:40px;}
.dash-chart-block{background:#fff;border-radius:16px;padding:28px;border:1.5px solid rgba(0,0,0,.07);box-shadow:0 2px 12px rgba(0,0,0,.05);}
.dash-chart-title{font-size:16px;font-weight:800;color:var(--dark);margin-bottom:6px;}
.dash-chart-note{font-size:12px;color:#888;margin-bottom:18px;line-height:1.6;}
.dash-chart-donut{max-width:380px;margin:0 auto;}
/* 予算バー */
.dash-budget-block{background:#fff;border-radius:16px;padding:28px;border:1.5px solid rgba(0,0,0,.07);box-shadow:0 2px 12px rgba(0,0,0,.05);margin-bottom:40px;}
.dash-budget-bars{display:flex;flex-direction:column;gap:14px;margin-top:16px;}
.dbb-row{display:grid;grid-template-columns:200px 1fr 40px;align-items:center;gap:12px;}
.dbb-label{font-size:13px;color:#555;font-weight:600;}
.dbb-bar-wrap{background:#f3f4f6;border-radius:100px;height:10px;overflow:hidden;}
.dbb-bar{height:100%;border-radius:100px;transition:width .8s ease;}
.dbb-pct{font-size:13px;font-weight:700;color:var(--dark);}
/* API セットアップ */
.dash-api-setup{background:linear-gradient(135deg,#f8fafc,#f0f4ff);border:2px solid #c7d2fe;border-radius:20px;padding:40px;margin-bottom:32px;}
.das-inner{max-width:680px;margin:0 auto;}
.das-badge{display:inline-flex;align-items:center;gap:6px;background:#e0e7ff;color:#4338ca;font-size:12px;font-weight:800;padding:5px 14px;border-radius:100px;margin-bottom:16px;}
.dash-api-setup h2{font-size:20px;font-weight:900;color:var(--dark);margin-bottom:10px;}
.dash-api-setup p{font-size:14px;line-height:1.8;color:#555;margin-bottom:16px;}
.das-steps{list-style:none;display:flex;flex-direction:column;gap:18px;margin-bottom:24px;}
.das-steps li{display:flex;align-items:flex-start;gap:14px;font-size:14px;color:#444;line-height:1.7;}
.das-step-num{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--dark);color:#fff;font-size:12px;font-weight:900;flex-shrink:0;}
.das-steps a{color:var(--red);text-decoration:underline;}
.das-api-info{background:#1e1b4b;border-radius:12px;padding:18px 22px;margin-bottom:20px;}
.das-api-info p{color:rgba(255,255,255,.7);font-size:13px;margin-bottom:8px;}
.das-api-info code{display:block;font-family:'Courier New',monospace;font-size:12px;color:#a5b4fc;line-height:1.8;word-break:break-all;}
.das-key-form{display:flex;flex-direction:column;gap:10px;}
.dash-disclaimer{font-size:12px;color:#aaa;text-align:center;line-height:1.8;}

/* ═══════════════════════════════════════
   SHARED: btn-red
═══════════════════════════════════════ */
.btn-red{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;text-decoration:none;padding:12px 32px;border-radius:100px;font-size:14px;font-weight:800;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 18px rgba(192,39,45,.35);}
.btn-red:hover{background:#a01e23;transform:translateY(-2px);box-shadow:0 8px 28px rgba(192,39,45,.45);}

/* ═══════════════════════════════════════
   RESPONSIVE: 新規ページ用
═══════════════════════════════════════ */
@media(max-width:960px){
  .stm-grid{grid-template-columns:repeat(2,1fr);}
  .media-grid{grid-template-columns:repeat(2,1fr);}
  .dash-stats{grid-template-columns:repeat(2,1fr);}
  .dash-charts{grid-template-columns:1fr;}
  .ct-row-2{grid-template-columns:1fr;}
  .ct-info-row{grid-template-columns:1fr;}
  .dbb-row{grid-template-columns:120px 1fr 36px;}
  .dbb-label{font-size:11px;}
}
@media(max-width:600px){
  .stm-grid{grid-template-columns:1fr;}
  .media-grid{grid-template-columns:1fr;}
  .dash-stats{grid-template-columns:repeat(2,1fr);}
  .faq-cats{gap:8px;}
  .fc-btn{padding:8px 14px;font-size:12px;}
  .fi-q{font-size:14px;padding:16px 16px;}
  .fi-a{padding:0 16px 16px 46px;}
}


/* ═══════════════════════════════════════
   ページトップへ戻るボタン
═══════════════════════════════════════ */
.pagetop{
  position:fixed;
  bottom:40px;
  right:40px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:#fff;
  border:1.5px solid rgba(0,0,0,.1);
  box-shadow:0 4px 18px rgba(0,0,0,.15);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--dark);
  cursor:pointer;
  z-index:800;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:opacity .3s,transform .3s,background .2s,box-shadow .2s;
}
.pagetop.visible{opacity:1;transform:translateY(0);pointer-events:all;}
.pagetop:hover{background:var(--red);color:#fff;box-shadow:0 6px 24px rgba(192,39,45,.4);transform:translateY(-2px);}
.pagetop:active{transform:scale(.92);}

/* スマホ：桜メニュー（right:24px, bottom:28px, height:64px）の直上に配置 */
@media(max-width:960px){
  .pagetop{
    bottom:104px;   /* 28px + 64px + 12px gap */
    right:28px;
    width:44px;
    height:44px;
    box-shadow:0 3px 14px rgba(0,0,0,.22);
  }
}

/* ═══════════════════════════════════════
   PC NAV ドロップダウン
═══════════════════════════════════════ */
.n-dropdown{position:relative;list-style:none;display:flex;align-items:center;}
/* ボタンを <a> と完全同一スタイルに統一 */
.n-drop-btn{background:none;border:none;cursor:pointer;font-size:13px;font-weight:500;letter-spacing:.06em;color:var(--gray3);padding:0;display:flex;align-items:center;gap:5px;transition:color .25s;line-height:1;position:relative;font-family:inherit;}
.n-drop-btn::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1.5px;background:var(--red);transition:width .3s;}
.n-drop-btn:hover::after,.n-dropdown.open .n-drop-btn::after{width:100%;}
.n-drop-btn:hover,.n-dropdown.open .n-drop-btn{color:var(--red);}
.n-drop-arr{font-size:9px;transition:transform .22s;margin-top:1px;}
.n-dropdown.open .n-drop-arr,.n-dropdown:hover .n-drop-arr{transform:rotate(180deg);}
.n-drop-list{position:absolute;top:calc(100% + 14px);right:-8px;background:#fff;border-radius:14px;box-shadow:0 8px 36px rgba(0,0,0,.13),0 2px 8px rgba(0,0,0,.06);list-style:none;padding:8px 6px;min-width:176px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .22s,transform .22s;z-index:200;}
.n-dropdown:hover .n-drop-list,.n-dropdown.open .n-drop-list{opacity:1;pointer-events:all;transform:translateY(0);}
.n-drop-list li a{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;color:var(--dark);text-decoration:none;border-radius:9px;transition:background .18s,color .18s;}
.n-drop-list li a:hover{background:rgba(192,39,45,.08);color:var(--red);}
.n-drop-list li a .nd-ico{font-size:15px;width:20px;text-align:center;flex-shrink:0;}

/* ═══════════════════════════════════════
   スマホメニュー アイテム数増加対応
═══════════════════════════════════════ */
.sakura-menu.open .sm-item:nth-child(6){transition-delay:.27s;}
.sakura-menu.open .sm-item:nth-child(7){transition-delay:.31s;}
.sakura-menu.open .sm-item:nth-child(8){transition-delay:.35s;}
.sakura-menu.open .sm-item:nth-child(9){transition-delay:.39s;}
.sakura-menu.open .sm-item:nth-child(10){transition-delay:.43s;}
@media(max-width:960px){
  .sakura-menu-items{gap:1px;padding-bottom:72px;}
  .sm-item{padding:10px 28px;font-size:17px;max-width:300px;}
  .sm-emoji{font-size:20px;width:26px;}
  .sm-text{font-size:16px;}
}

/* ═══════════════════════════════════════
   フッター ナビ 2カラム
═══════════════════════════════════════ */
.f-nav-wrap{display:flex;gap:48px;align-items:flex-start;flex-wrap:wrap;}
.f-nav-group{}
.f-nav-group h4{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.48);margin-bottom:12px;}
.f-nav-group ul{list-style:none;display:flex;flex-direction:column;gap:8px;}
.f-nav-group ul li a{font-size:12px;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.72);text-decoration:none;transition:color .22s;}
.f-nav-group ul li a:hover{color:var(--gold-lt);}
@media(max-width:640px){
  .f-nav-wrap{gap:28px;}
  .f-top{flex-direction:column;gap:28px;}
}

/* ═══════════════════════════════════════
   TOP PAGE — ゲームコーナー プレビューセクション
═══════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=DotGothic16&display=swap');
.top-games{background:linear-gradient(135deg,#0d1117 0%,#1a2a0d 50%,#0d2137 100%);padding:80px 0;border-top:4px solid #FFD700;border-bottom:4px solid #FFD700;}
.top-games .sl{color:#4CAF50;font-family:'DotGothic16',monospace;}
.top-games h2{font-size:clamp(24px,3.5vw,36px);font-weight:900;color:#fff;letter-spacing:-.01em;}
.top-games h2 em{color:#FFD700;font-style:normal;}
.tg-lead{font-size:13px;color:rgba(255,255,255,.6);margin-top:6px;}
.tg-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px;flex-wrap:wrap;gap:16px;}
.tg-more{font-size:13px;font-weight:700;letter-spacing:.06em;color:#FFD700;text-decoration:none;font-family:'DotGothic16',monospace;border:2px solid rgba(255,215,0,.5);padding:8px 18px;transition:background .2s;}
.tg-more:hover{background:rgba(255,215,0,.1);color:#FFD700;}
.tg-cards{display:grid;grid-template-columns:1fr;gap:20px;align-items:start;}
.tg-cards.tg-two{grid-template-columns:1fr 1fr;}
.tg-cards.tg-three{grid-template-columns:1fr 1fr 1fr;}
/* Featured card */
.tg-card.featured{display:flex;gap:24px;background:#1a1a2e;border:3px solid #FFD700;box-shadow:6px 6px 0 #000;padding:28px 28px 28px 24px;}
.tg-card-left{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:80px;}
.tg-pixel-badge{font-family:'DotGothic16',monospace;font-size:8px;background:#4CAF50;color:#fff;border:2px solid #2E7D32;padding:4px 8px;animation:tgblink 1.5s step-end infinite;white-space:nowrap;}
@keyframes tgblink{0%,100%{opacity:1}50%{opacity:0}}
.tg-ico{font-size:56px;filter:drop-shadow(2px 4px 0 rgba(0,0,0,.5));}
.tg-tag{font-family:'DotGothic16',monospace;font-size:9px;color:#FFD700;letter-spacing:2px;margin-bottom:4px;}
.tg-name{font-family:'DotGothic16',monospace;font-size:16px;color:#fff;margin-bottom:2px;}
.tg-subname{font-family:'DotGothic16',monospace;font-size:10px;color:#888;margin-bottom:10px;}
.tg-desc{font-size:12px;color:#aaa;line-height:1.9;margin-bottom:12px;}
.tg-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.tg-chip{font-family:'DotGothic16',monospace;font-size:9px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:#ccc;padding:3px 8px;}
.tg-play-btn{display:inline-block;background:#4CAF50;color:#fff;border:3px solid #2E7D32;box-shadow:4px 4px 0 #1B5E20;font-family:'DotGothic16',monospace;font-size:13px;padding:10px 24px;text-decoration:none;transition:transform .1s,box-shadow .1s;}
.tg-play-btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 #1B5E20;color:#fff;}
/* Coming soon cards */
.tg-card.soon-wrap{display:flex;flex-direction:column;gap:16px;}
.tg-soon-inner{background:#1a1a2e;border:3px solid #333;box-shadow:4px 4px 0 #000;padding:20px;text-align:center;opacity:.6;}
.tg-soon-ico{font-size:40px;filter:grayscale(1);margin-bottom:8px;}
.tg-soon-name{font-family:'DotGothic16',monospace;font-size:11px;color:#aaa;line-height:1.8;margin-bottom:8px;}
.tg-soon-label{font-family:'DotGothic16',monospace;font-size:9px;color:#555;background:#222;border:2px solid #333;padding:4px 10px;display:inline-block;}
@media(max-width:1100px){.tg-cards.tg-three{grid-template-columns:1fr 1fr;}}
@media(max-width:900px){.tg-cards.tg-two,.tg-cards.tg-three{grid-template-columns:1fr;}}
@media(max-width:768px){
  .tg-card.featured{flex-direction:column;align-items:center;text-align:center;}
  .tg-card-left{flex-direction:row;min-width:auto;}
}

/* ═══════════════════════════════════════
   TOP PAGE — Q&A プレビューセクション
═══════════════════════════════════════ */
.top-faq{background:#fff;padding:96px 0 80px;}
.tf-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px;flex-wrap:wrap;gap:16px;}
.tf-header h2{font-size:clamp(26px,4vw,38px);font-weight:900;letter-spacing:-.02em;color:var(--dark);}
.tf-header h2 em{color:var(--red);font-style:normal;}
.tf-more{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--red);text-decoration:none;display:flex;align-items:center;gap:4px;transition:gap .2s;}
.tf-more:hover{gap:8px;}
.tf-list{display:flex;flex-direction:column;gap:16px;margin-bottom:40px;}
.tf-item{border:1.5px solid rgba(0,0,0,.07);border-radius:16px;overflow:hidden;transition:border-color .2s,box-shadow .2s;}
.tf-item:hover{border-color:rgba(192,39,45,.18);box-shadow:0 4px 20px rgba(0,0,0,.07);}
.tf-q-btn{width:100%;display:flex;align-items:center;gap:16px;padding:20px 24px;background:#fff;border:none;cursor:pointer;text-align:left;}
.tf-q-ico{width:32px;height:32px;border-radius:50%;background:var(--red);color:#fff;font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tf-q-txt{font-size:15px;font-weight:700;color:var(--dark);flex:1;line-height:1.5;}
.tf-q-arr{font-size:12px;color:var(--gray2);transition:transform .25s;flex-shrink:0;}
.tf-item.open .tf-q-arr{transform:rotate(180deg);}
.tf-a-wrap{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);}
.tf-item.open .tf-a-wrap{max-height:200px;}
.tf-a-inner{padding:0 24px 20px 72px;font-size:14px;color:var(--gray3);line-height:1.75;}
.tf-a-inner::before{content:'A. ';font-weight:700;color:var(--gold);}
.tf-cta{text-align:center;}
.tf-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border:2px solid var(--red);border-radius:40px;color:var(--red);font-size:14px;font-weight:700;text-decoration:none;transition:background .22s,color .22s,transform .2s;}
.tf-cta-btn:hover{background:var(--red);color:#fff;transform:translateY(-2px);}

/* ═══════════════════════════════════════
   TOP PAGE — 岡崎ダッシュボード インフォグラフィック
═══════════════════════════════════════ */
.top-dash{background:var(--dark);padding:96px 0 80px;position:relative;overflow:hidden;}
.top-dash::before{content:'';position:absolute;top:-60px;right:-80px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(192,39,45,.12) 0%,transparent 70%);pointer-events:none;}
.td-header{margin-bottom:52px;}
.td-header .sl{color:var(--gold);}
.td-header h2{font-size:clamp(26px,4vw,40px);font-weight:900;color:#fff;letter-spacing:-.02em;margin-bottom:12px;}
.td-header h2 em{color:var(--red);font-style:normal;}
.td-header p{font-size:14px;color:rgba(255,255,255,.5);max-width:560px;line-height:1.7;}
.td-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px;}
.td-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:24px 24px 20px;position:relative;overflow:hidden;transition:background .25s,border-color .25s;}
.td-card:hover{background:rgba(255,255,255,.07);border-color:rgba(192,39,45,.3);}
.td-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 60%);pointer-events:none;}
.td-card-ico{font-size:24px;margin-bottom:10px;}
.td-card-label{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:4px;}
.td-card-num{font-size:clamp(28px,5vw,40px);font-weight:900;color:#fff;letter-spacing:-.03em;line-height:1;}
.td-card-num span{font-size:.44em;font-weight:500;color:rgba(255,255,255,.55);margin-left:2px;}
.td-card-sub{font-size:11px;color:rgba(255,255,255,.32);margin-top:6px;}
.td-card-bar{margin-top:14px;height:4px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;}
.td-card-bar-fill{height:100%;border-radius:2px;transition:width 1.2s cubic-bezier(.16,1,.3,1);}
.td-card-trend{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;margin-top:8px;padding:3px 8px;border-radius:20px;}
.td-card-trend.up{background:rgba(0,200,80,.12);color:#3cca6e;}
.td-card-trend.down{background:rgba(192,39,45,.12);color:#e0606a;}
.td-card-trend.flat{background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);}
/* 人口推移ミニグラフ */
.td-pop-chart{margin-top:14px;}
.td-pop-chart svg{width:100%;height:40px;}
/* 年齢分布バー */
.td-age-bars{margin-top:14px;display:flex;flex-direction:column;gap:5px;}
.td-age-row{display:flex;align-items:center;gap:8px;}
.td-age-lbl{font-size:10px;color:rgba(255,255,255,.4);width:32px;flex-shrink:0;}
.td-age-bar-wrap{flex:1;height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden;}
.td-age-bar{height:100%;border-radius:3px;}
.td-age-val{font-size:10px;color:rgba(255,255,255,.4);width:32px;text-align:right;flex-shrink:0;}
/* データ出典 */
.td-source{font-size:11px;color:rgba(255,255,255,.25);line-height:1.6;margin-bottom:32px;padding:12px 16px;border-left:2px solid rgba(255,255,255,.1);background:rgba(255,255,255,.02);border-radius:0 8px 8px 0;}
.td-source a{color:rgba(255,255,255,.4);text-decoration:underline;}
.td-cta{text-align:center;}
.td-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 36px;background:var(--red);border-radius:40px;color:#fff;font-size:14px;font-weight:700;text-decoration:none;letter-spacing:.04em;transition:background .22s,transform .2s,box-shadow .2s;}
.td-cta-btn:hover{background:#a01e23;transform:translateY(-2px);box-shadow:0 6px 24px rgba(192,39,45,.4);}
@media(max-width:640px){
  .td-stats{grid-template-columns:1fr 1fr;}
  .td-card-num{font-size:24px;}
}

/* ═══════════════════════════════════════
   岡崎ダッシュボード ページ インフォグラフィック
═══════════════════════════════════════ */
.dash-hero{background:var(--dark);color:#fff;}
.dash-hero .ih-title{color:#fff;}
.dash-hero .ih-lead{color:rgba(255,255,255,.82);}
.dash-updated{font-size:12px;color:rgba(255,255,255,.38);margin-top:8px;}
.dash-updated a{color:rgba(255,255,255,.5);}

/* セクションラベル */
.dash-section-label{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin:56px 0 20px;padding-bottom:8px;border-bottom:1.5px solid rgba(192,39,45,.15);}

/* KPI カードグリッド */
.dash-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:8px;}
.dkpi-card{background:#fff;border:1.5px solid rgba(0,0,0,.06);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.dkpi-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.1);transform:translateY(-2px);}
.dkpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));}
.dkpi-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.dkpi-body{flex:1;}
.dkpi-label{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--gray2);margin-bottom:3px;}
.dkpi-val{font-size:clamp(26px,4vw,36px);font-weight:900;color:var(--dark);letter-spacing:-.03em;line-height:1;}
.dkpi-val span{font-size:.4em;font-weight:500;color:var(--gray2);margin-left:2px;}
.dkpi-rank{font-size:11px;color:var(--gray2);margin-top:4px;}
.dkpi-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;margin-top:4px;width:fit-content;}
.dkpi-spark{margin-top:2px;}
.dkpi-spark svg{width:100%;height:28px;}
.dkpi-gauge-wrap svg{width:80px;height:44px;}

/* チャートブロック */
.dash-chart-row{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:stretch;}
.dash-chart-block{background:#fff;border:1.5px solid rgba(0,0,0,.06);border-radius:18px;padding:24px;margin-bottom:8px;}
.dash-chart-block--wide{width:100%;}
.dash-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.dash-chart-title{font-size:16px;font-weight:800;color:var(--dark);margin-bottom:6px;}
.dash-chart-note{font-size:13px;color:var(--gray3);line-height:1.6;max-width:520px;}
.dash-chart-canvas{position:relative;}
.dash-chart-donut{width:100%;max-width:260px;margin:0 auto;height:260px;}
.dash-chart-legend{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--gray2);white-space:nowrap;}
.dcl-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;}

/* 年齢グラフ凡例 */
.dash-age-legend{margin-top:16px;display:flex;flex-direction:column;gap:6px;}
.dal-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gray3);}
.dal-item strong{margin-left:auto;font-weight:700;color:var(--dark);}
.dal-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}

/* 予算インフォグラフィック */
.dash-budget-infographic{background:#fff;border:1.5px solid rgba(0,0,0,.06);border-radius:18px;padding:24px;margin-bottom:8px;}
.dbi-total{font-size:13px;font-weight:700;color:var(--gray2);text-align:right;white-space:nowrap;}
.dbi-total span{font-size:.85em;font-weight:500;}
.dbi-bars{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.dbi-row{display:flex;align-items:center;gap:10px;}
.dbi-ico{font-size:16px;width:22px;text-align:center;flex-shrink:0;}
.dbi-label{font-size:12px;font-weight:600;color:var(--dark);width:160px;flex-shrink:0;}
.dbi-bar-wrap{flex:1;height:10px;background:rgba(0,0,0,.05);border-radius:5px;overflow:hidden;}
.dbi-bar{height:100%;border-radius:5px;transition:width 1s cubic-bezier(.16,1,.3,1);}
.dbi-pct{font-size:12px;font-weight:700;width:36px;text-align:right;flex-shrink:0;}
.dbi-amt{font-size:11px;color:var(--gray2);width:56px;text-align:right;flex-shrink:0;}

/* 政策優先グリッド */
.dash-policy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:8px;}
.dpg-card{background:#fff;border:1.5px solid rgba(0,0,0,.06);border-radius:18px;padding:22px;position:relative;}
.dpg-num{position:absolute;top:16px;right:16px;font-size:11px;font-weight:700;color:rgba(0,0,0,.12);letter-spacing:.06em;}
.dpg-ico{font-size:28px;margin-bottom:10px;}
.dpg-card h3{font-size:15px;font-weight:800;color:var(--dark);margin-bottom:8px;}
.dpg-card p{font-size:12px;color:var(--gray3);line-height:1.65;margin-bottom:14px;}
.dpg-bar{height:6px;background:rgba(0,0,0,.06);border-radius:3px;overflow:hidden;margin-bottom:8px;}
.dpg-bar div{height:100%;border-radius:3px;}
.dpg-urgency{font-size:11px;font-weight:700;color:var(--red);}

/* API セットアップ・免責 */
.dash-api-setup{background:linear-gradient(135deg,rgba(192,39,45,.04),rgba(192,144,48,.04));border:1.5px solid rgba(192,39,45,.12);border-radius:18px;padding:32px;margin:24px 0 12px;}
.das-inner h2{font-size:20px;font-weight:800;color:var(--dark);margin:12px 0 10px;}
.das-inner p{font-size:14px;color:var(--gray3);line-height:1.7;margin-bottom:16px;}
.das-badge{display:inline-flex;align-items:center;padding:5px 12px;background:var(--red);color:#fff;border-radius:20px;font-size:12px;font-weight:700;letter-spacing:.04em;}
.das-steps{margin:16px 0;display:flex;flex-direction:column;gap:14px;padding:0;}
.das-steps li{display:flex;gap:14px;align-items:flex-start;list-style:none;font-size:14px;color:var(--gray3);line-height:1.65;}
.das-step-num{width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.das-api-info{background:rgba(0,0,0,.04);border-radius:12px;padding:16px;margin:16px 0;}
.das-api-info p{font-size:13px;font-weight:600;color:var(--dark);margin-bottom:8px;}
.das-api-info code{display:block;font-size:12px;color:var(--red);line-height:1.65;word-break:break-all;}
.das-key-form{margin-top:16px;display:flex;flex-direction:column;gap:8px;max-width:480px;}
.das-key-form label{font-size:13px;font-weight:700;color:var(--dark);}
.das-admin-btn{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:12px 24px;background:var(--red);color:#fff;font-size:14px;font-weight:700;border-radius:40px;text-decoration:none;transition:background .2s,transform .2s;}
.das-admin-btn:hover{background:#a01e23;transform:translateY(-1px);}
.dash-disclaimer{font-size:12px;color:var(--gray2);margin-top:24px;padding:12px 16px;border-left:2px solid rgba(0,0,0,.1);line-height:1.65;padding-bottom:48px;}
.dash-disclaimer a{color:var(--red);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━
   DASHBOARD — 市民税シミュレータ
━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.dash-tax-sim{background:#fff;border:1px solid var(--gray1);border-radius:16px;padding:32px;margin-top:32px;}
.dash-tax-sim h3{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:6px;color:var(--dark);}
.dash-tax-sim .das-lead{font-size:13px;color:var(--gray2);margin-bottom:24px;}
.tax-sim-wrap{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;}
.tax-input-side label,.tax-label{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--gray3);display:block;margin-bottom:8px;}
/* 年収表示 */
.tax-income-display,.tax-salary-display{font-size:32px;font-weight:900;color:var(--dark);letter-spacing:-.02em;line-height:1;margin-bottom:16px;}
.tax-income-display small,.tax-salary-display span{font-size:14px;font-weight:500;color:var(--gray2);margin-left:4px;}
.tax-slider-row{margin-bottom:12px;}
.tax-slider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(to right,var(--red) 0%,var(--red) var(--pct,28.6%),var(--gray1) var(--pct,28.6%),var(--gray1) 100%);outline:none;cursor:pointer;}
.tax-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--red);box-shadow:0 2px 8px rgba(192,39,45,.22);cursor:pointer;transition:transform .15s;}
.tax-slider::-webkit-slider-thumb:hover{transform:scale(1.15);}
.tax-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--red);box-shadow:0 2px 8px rgba(192,39,45,.22);cursor:pointer;}
.tax-range-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--gray2);margin-top:6px;}
/* 結果カード */
.tax-result-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:16px;}
.tax-result-card{background:var(--off);border-radius:10px;padding:14px 16px;text-align:center;}
.tax-result-label,.tax-result-card .trc-label{font-size:11px;color:var(--gray2);margin-bottom:4px;}
.tax-result-val,.tax-result-card .trc-val{font-size:22px;font-weight:900;color:var(--dark);letter-spacing:-.02em;line-height:1;}
.tax-result-sub,.tax-result-card .trc-sub{font-size:10px;color:var(--gray2);margin-top:2px;}
/* 1日あたり表示 */
.tax-per-day{font-size:12px;color:var(--gray2);margin-bottom:16px;padding:10px 12px;background:var(--off);border-radius:8px;text-align:center;}
/* 使われ方バー */
.tax-usage-bars{margin-top:12px;}
.tax-chart-title,.tax-uso-title{font-size:14px;font-weight:700;color:var(--dark);margin-bottom:16px;}
.tax-placeholder{font-size:13px;color:var(--gray2);font-style:italic;}
.tax-uso-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.tax-uso-ico{font-size:14px;width:20px;text-align:center;flex-shrink:0;}
.tax-uso-lbl{font-size:11px;color:var(--gray3);width:120px;flex-shrink:0;}
.tax-uso-bar-wrap{flex:1;background:var(--gray1);border-radius:3px;height:8px;overflow:hidden;}
.tax-uso-bar{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.34,1.56,.64,1);}
.tax-uso-amt{font-size:11px;font-weight:600;width:60px;text-align:right;flex-shrink:0;}
.tax-note{font-size:11px;color:var(--gray2);line-height:1.65;margin-top:16px;padding-top:12px;border-top:1px solid var(--gray1);}
.tax-note a{color:var(--red);text-decoration:none;}
.tax-note a:hover{text-decoration:underline;}

@media(max-width:900px){
  .tax-sim-wrap{grid-template-columns:1fr;}
  .tax-result-grid{grid-template-columns:1fr 1fr 1fr;}
}
@media(max-width:640px){
  .dash-tax-sim{padding:20px 16px;}
  .tax-income-display,.tax-salary-display{font-size:26px;}
  .tax-result-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;}
  .tax-result-card{padding:10px 8px;}
  .tax-result-val,.tax-result-card .trc-val{font-size:17px;}
  .tax-uso-lbl{width:80px;font-size:10px;}
  .tax-uso-amt{font-size:10px;width:44px;}
}

@media(max-width:900px){
  .dash-chart-row{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .dash-kpi-grid{grid-template-columns:1fr 1fr;}
  .dkpi-card{padding:14px;}
  .dkpi-val{font-size:20px;}
  .dkpi-label{font-size:11px;}
  .dbi-label{width:100px;}
  .dbi-amt{display:none;}
  .dash-policy-grid{grid-template-columns:1fr 1fr;}
  .dash-wrap{padding:32px 0 64px;}
  .dash-chart-donut{max-width:100%;height:220px;}
}

/* ═══════════════════════════════════════
   証拠数字ストリップ（HERO直下）
═══════════════════════════════════════ */
.proof-strip{background:var(--dark);border-bottom:1px solid rgba(255,255,255,.07);padding:14px 0;overflow:hidden;}
.ps-grid{display:flex;flex-wrap:nowrap;}
.ps-item{flex:1;min-width:130px;padding:12px 16px;text-align:center;border-right:1px solid rgba(255,255,255,.08);position:relative;}
.ps-item:last-child{border-right:none;}
.ps-item--hi .ps-num{color:var(--gold);}
.ps-num{font-size:clamp(16px,2.2vw,26px);font-weight:900;color:#fff;letter-spacing:-.02em;line-height:1;margin-bottom:4px;}
.ps-num span{font-size:.55em;font-weight:500;color:rgba(255,255,255,.55);margin-left:2px;}
.ps-num-sm{font-size:.55em;font-weight:500;color:rgba(255,255,255,.55);margin-left:2px;}
.ps-lab{font-size:9.5px;color:rgba(255,255,255,.38);letter-spacing:.04em;line-height:1.4;}
@media(max-width:640px){
  .ps-grid{overflow-x:auto;scrollbar-width:none;}
  .ps-grid::-webkit-scrollbar{display:none;}
  .ps-item{min-width:110px;padding:10px 12px;}
  .ps-num{font-size:14px;}
  .ps-lab{font-size:9px;}
}

/* ═══════════════════════════════════════
   課題解決セクション（一般質問→予算化実績）
═══════════════════════════════════════ */
.challenge{background:#fff;padding:80px 0;}
.ch-title{font-size:clamp(24px,4vw,40px);font-weight:900;color:var(--dark);margin-bottom:16px;letter-spacing:-.02em;}
.ch-title em{color:var(--red);font-style:normal;}
.ch-intro{font-size:15px;color:var(--gray3);max-width:640px;line-height:1.7;margin-bottom:48px;}
.ch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px;}
.ch-card{background:var(--off);border-radius:20px;padding:28px 24px;border:1px solid rgba(0,0,0,.05);position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.ch-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.10);transform:translateY(-3px);}
.ch-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));}
.ch-month{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--red);margin-bottom:14px;}
.ch-ico{font-size:32px;margin-bottom:12px;}
.ch-card h3{font-size:16px;font-weight:800;color:var(--dark);margin-bottom:10px;line-height:1.4;}
.ch-card p{font-size:13px;color:var(--gray3);line-height:1.7;margin-bottom:20px;}
.ch-result{background:linear-gradient(135deg,rgba(192,39,45,.06),rgba(192,144,48,.06));border:1px solid rgba(192,39,45,.14);border-radius:12px;padding:14px 16px;}
.ch-result-arrow{font-size:10px;font-weight:700;color:var(--red);letter-spacing:.06em;margin-bottom:4px;}
.ch-result-num{font-size:20px;font-weight:900;color:var(--dark);letter-spacing:-.02em;line-height:1;margin-bottom:3px;}
.ch-result-sub{font-size:10px;color:var(--gray2);}
.ch-total{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--dark);border-radius:20px;padding:28px 32px;}
.ch-total-inner{}
.ch-total-label{font-size:11px;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.4);margin-bottom:8px;}
.ch-total-num{font-size:clamp(24px,4vw,40px);font-weight:900;color:#fff;letter-spacing:-.03em;line-height:1;margin-bottom:6px;}
.ch-total-sub{font-size:12px;color:rgba(255,255,255,.4);}
.ch-report-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:var(--gold);color:var(--dark);font-size:13px;font-weight:800;border-radius:40px;text-decoration:none;letter-spacing:.04em;white-space:nowrap;transition:background .2s,transform .2s;}
.ch-report-btn:hover{background:#d4a340;transform:translateY(-2px);}
@media(max-width:900px){
  .ch-grid{grid-template-columns:1fr;}
  .ch-total{flex-direction:column;text-align:center;}
}

/* ═══════════════════════════════════════
   市政報告バナー（ダッシュボード後）
═══════════════════════════════════════ */
.shiseihokoku-banner{background:linear-gradient(135deg,#1a1513 0%,#251d19 100%);padding:60px 0;overflow:hidden;position:relative;}
.shiseihokoku-banner::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 20% 50%,rgba(192,39,45,.08) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(192,144,48,.06) 0%,transparent 50%);pointer-events:none;}
.shb-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.shb-left{flex:1;min-width:260px;}
.shb-label{display:inline-flex;align-items:center;gap:6px;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:.12em;padding:5px 14px;border-radius:20px;margin-bottom:18px;}
.shb-title{font-size:clamp(20px,3vw,32px);font-weight:900;color:#fff;letter-spacing:-.02em;margin-bottom:12px;line-height:1.3;}
.shb-title em{color:var(--gold);font-style:normal;}
.shb-sub{font-size:13px;color:rgba(255,255,255,.5);line-height:1.7;max-width:480px;margin-bottom:0;}
.shb-btn{display:inline-flex;align-items:center;gap:8px;margin-top:24px;padding:13px 32px;background:var(--gold);color:var(--dark);font-size:13px;font-weight:800;border-radius:40px;text-decoration:none;letter-spacing:.04em;transition:background .2s,transform .2s,box-shadow .2s;}
.shb-btn:hover{background:#d4a340;transform:translateY(-2px);box-shadow:0 6px 24px rgba(192,144,48,.35);}
.shb-nums{display:flex;gap:16px;flex-wrap:wrap;flex-shrink:0;}
.shb-num-item{text-align:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px 20px;min-width:100px;}
.shb-num-val{font-size:clamp(18px,2.5vw,26px);font-weight:900;color:#fff;letter-spacing:-.02em;line-height:1;}
.shb-num-val span{font-size:.48em;font-weight:500;color:rgba(255,255,255,.5);}
.shb-num-lab{font-size:9px;color:rgba(255,255,255,.35);margin-top:6px;line-height:1.5;}
@media(max-width:900px){
  .shb-inner{flex-direction:column;}
  .shb-nums{justify-content:center;}
}
@media(max-width:640px){
  .shb-nums{flex-wrap:nowrap;gap:8px;width:100%;}
  .shb-num-item{flex:1;min-width:0;padding:12px 6px;}
  .shb-num-val{font-size:clamp(14px,4.5vw,22px);}
  .shb-num-lab{font-size:7.5px;line-height:1.4;}
}

/* ═══════════════════════════════════════
   中間LINE CTA
═══════════════════════════════════════ */
.mid-line-cta{background:linear-gradient(135deg,#06C755 0%,#00a842 100%);padding:64px 0;text-align:center;position:relative;overflow:hidden;}
.mid-line-cta::before{content:'';position:absolute;top:-40px;left:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none;}
.mid-line-cta::after{content:'';position:absolute;bottom:-60px;right:-60px;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.04);pointer-events:none;}
.mlc-inner{max-width:620px;margin:0 auto;position:relative;z-index:1;}
.mlc-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.75);margin-bottom:12px;}
.mlc-title{font-size:clamp(22px,4vw,36px);font-weight:900;color:#fff;margin-bottom:14px;letter-spacing:-.02em;line-height:1.3;}
.mlc-sub{font-size:14px;color:rgba(255,255,255,.85);line-height:1.7;margin-bottom:28px;}
.mlc-social-proof{display:flex;justify-content:center;gap:12px;margin-bottom:28px;flex-wrap:wrap;}
.mlc-sp-item{background:rgba(255,255,255,.16);border-radius:8px;padding:8px 16px;font-size:12px;font-weight:700;color:#fff;}
.mlc-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 48px;background:#fff;color:#06C755;font-size:15px;font-weight:900;border-radius:40px;text-decoration:none;letter-spacing:.03em;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px rgba(0,0,0,.15);}
.mlc-btn:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.2);}
.mlc-btn-ico{font-size:20px;}
.mlc-note{font-size:11px;color:rgba(255,255,255,.6);margin-top:16px;}

/* ═══════════════════════════════════════
   フローティングLINE CTA（固定ボタン）
═══════════════════════════════════════ */
.float-line-btn{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;align-items:center;gap:8px;background:#06C755;color:#fff;padding:12px 20px 12px 16px;border-radius:40px;text-decoration:none;font-size:13px;font-weight:800;letter-spacing:.02em;box-shadow:0 4px 20px rgba(6,199,85,.42);transition:transform .2s,box-shadow .2s;animation:float-pulse 3s ease-in-out infinite;}
.float-line-btn:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 8px 32px rgba(6,199,85,.55);}
.float-line-ico{font-size:18px;}
.float-line-txt{white-space:nowrap;}
@keyframes float-pulse{0%,100%{box-shadow:0 4px 20px rgba(6,199,85,.42);}50%{box-shadow:0 6px 28px rgba(6,199,85,.65);}}
@media(max-width:640px){
  .float-line-btn{bottom:16px;right:auto;left:16px;padding:10px 14px 10px 12px;font-size:12px;}
  .float-line-ico{font-size:16px;}
}

/* ═══════════════════════════════════════
   市政報告LP（page-shiseihokoku.php）
═══════════════════════════════════════ */

/* ヒーロー */
.shp-hero{background:var(--dark);color:#fff;padding:0;position:relative;overflow:hidden;}
.shp-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 50%,rgba(192,39,45,.18) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(192,144,48,.10) 0%,transparent 50%);pointer-events:none;}
.shp-hero-pattern{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.025'%3E%3Cpath d='M0 38.59l2.83-2.83 1.41 1.41L1.41 40H0v-1.41zM0 1.4l2.83 2.83 1.41-1.41L1.41 0H0v1.41zM38.59 40l-2.83-2.83 1.41-1.41L40 38.59V40h-1.41zM40 1.41l-2.83 2.83-1.41-1.41L38.59 0H40v1.41z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none;}
/* ── ヒーロー スプリット 2カラムレイアウト ── */
.shp-hero-split-wrap{
  display:flex;
  align-items:stretch;
  min-height:480px;
  position:relative;
  z-index:1;
}
.shp-hero-sw{
  flex:1 1 55%;
  display:flex;
  align-items:center;
}
.shp-hero-photo{
  flex:0 0 45%;
  position:relative;
  overflow:hidden;
  min-height:380px;
}
.shp-hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.shp-hero-photo-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to right, var(--dark) 0%, rgba(26,21,19,.4) 35%, transparent 70%);
  pointer-events:none;
}
/* ── ヒーロー テキスト内 ── */
.shp-hero-inner{position:relative;z-index:1;padding:80px 0 48px;}
.shp-hero-badge{display:inline-flex;align-items:center;gap:6px;background:var(--red);color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;padding:6px 16px;border-radius:20px;margin-bottom:24px;}
.shp-hero-title{font-size:clamp(28px,5vw,56px);font-weight:900;color:#fff;letter-spacing:-.03em;line-height:1.15;margin-bottom:16px;}
.shp-hero-title em{color:var(--gold);font-style:normal;}
.shp-hero-sub-title{font-size:clamp(18px,3vw,32px);display:block;font-weight:700;margin-top:8px;}
.shp-hero-copy{font-size:15px;color:rgba(255,255,255,.88);line-height:1.8;max-width:600px;margin-bottom:20px;}
.shp-hero-meta{display:flex;gap:16px;flex-wrap:wrap;}
.shp-hero-meta span{font-size:12px;color:rgba(255,255,255,.68);font-weight:600;}

/* KPIストリップ */
.shp-kpi-strip{background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.08);margin-top:0;padding:24px 0;}
.shp-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.shp-kpi-item{padding:20px 24px;border-right:1px solid rgba(255,255,255,.07);text-align:center;}
.shp-kpi-item:last-child{border-right:none;}
.shp-kpi-item--main .shp-kpi-num{color:#fff;}
.shp-kpi-item--gold .shp-kpi-num{color:var(--gold);}
.shp-kpi-label{font-size:11px;font-weight:800;letter-spacing:.08em;color:#fff;margin-bottom:6px;text-shadow:0 1px 3px rgba(0,0,0,.35);}
.shp-kpi-num{font-size:clamp(22px,3.5vw,36px);font-weight:900;color:#fff;letter-spacing:-.03em;line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.3);}
.shp-kpi-num span{font-size:.45em;font-weight:700;color:rgba(255,255,255,.9);margin-left:2px;}
.shp-kpi-change{font-size:11px;font-weight:700;margin-top:6px;}
.shp-kpi-change.up{color:#3cca6e;}
.shp-kpi-change.down{color:#e0606a;}
@media(max-width:640px){
  /* KPI 2×2グリッド */
  .shp-kpi-grid{grid-template-columns:repeat(2,1fr);}
  .shp-kpi-item{padding:14px 8px;border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);}
  .shp-kpi-item:nth-child(2),.shp-kpi-item:last-child{border-right:none;}
  .shp-kpi-item:nth-child(3),.shp-kpi-item:last-child{border-bottom:none;}
  .shp-kpi-num{font-size:clamp(13px,4.2vw,20px);}
  .shp-kpi-label{font-size:clamp(7px,2.2vw,10px);letter-spacing:-.01em;white-space:nowrap;}
  .shp-kpi-change{font-size:10px;}
}
/* メニューオープン中はLINEフローティングボタンを非表示 */
body.menu-open .float-line-btn{display:none !important;}
/* スマホ専用改行 */
.sp-br{display:none;}
@media(max-width:640px){.sp-br{display:block;}}

/* セクション共通 */
.shp-section{padding:80px 0;}
.shp-section--light{background:#fff;}
.shp-section--dark{background:var(--dark);}
.shp-section--gray{background:var(--off);}
.shp-section--red{background:linear-gradient(135deg,#C0272D 0%,#a01e23 100%);}
.shp-section-header{text-align:center;margin-bottom:56px;}
.shp-section-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--red);margin-bottom:12px;}
.shp-section-title{font-size:clamp(24px,4vw,44px);font-weight:900;color:var(--dark);letter-spacing:-.03em;margin-bottom:16px;line-height:1.2;}
.shp-section-title em{color:var(--red);font-style:normal;}
.shp-section-lead{font-size:15px;color:var(--gray3);line-height:1.75;max-width:640px;margin:0 auto;}
.shp-chart-title{font-size:15px;font-weight:800;color:var(--dark);margin-bottom:16px;}

/* 一般質問→予算化 実績 */
.shp-jisseki-grid{display:flex;flex-direction:column;gap:32px;margin-bottom:40px;}
.shp-j-card{background:var(--off);border-radius:20px;padding:28px;border:1px solid rgba(0,0,0,.05);position:relative;overflow:hidden;}
.shp-j-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--red),var(--gold));}
.shp-j-step{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.shp-j-step-num{width:36px;height:36px;border-radius:50%;background:var(--red);color:#fff;font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.shp-j-step-date{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--red);}
.shp-j-arrow-flow{display:grid;grid-template-columns:1fr auto minmax(160px,220px);gap:16px;align-items:center;}
.shp-j-box{background:#fff;border-radius:14px;padding:20px 22px;border:1px solid rgba(0,0,0,.07);}
.shp-j-box--q{border-color:rgba(0,0,0,.07);}
.shp-j-box--r{background:linear-gradient(135deg,rgba(192,39,45,.04),rgba(192,144,48,.04));border-color:rgba(192,39,45,.18);}
.shp-j-box-label{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--red);margin-bottom:10px;}
.shp-j-box h3{font-size:15px;font-weight:800;color:var(--dark);margin-bottom:8px;}
.shp-j-box p{font-size:12px;color:var(--gray3);line-height:1.65;margin:0;}
.shp-j-arrow{font-size:28px;color:var(--red);font-weight:900;text-align:center;}
.shp-j-amount{font-size:clamp(22px,3vw,32px);font-weight:900;color:var(--dark);letter-spacing:-.03em;line-height:1;margin-bottom:4px;}
.shp-j-amount-name{font-size:11px;color:var(--gray2);line-height:1.5;}
.shp-j-chukei{display:inline-flex;align-items:center;gap:12px;margin-top:16px;text-decoration:none;background:rgba(0,0,0,.04);border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:6px 14px 6px 6px;transition:background .2s,transform .2s,border-color .2s;}
.shp-j-chukei:hover{background:rgba(192,39,45,.06);border-color:rgba(192,39,45,.3);transform:translateY(-1px);}
.shp-j-chukei img{width:110px;height:62px;object-fit:cover;border-radius:6px;flex-shrink:0;display:block;}
.shp-j-chukei-label{font-size:12px;font-weight:700;color:var(--red);letter-spacing:.04em;line-height:1.4;}
.shp-j-total{background:var(--dark);border-radius:20px;padding:28px 36px;text-align:center;}
.shp-j-total-inner{}
.shp-j-total-label{font-size:11px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.65);margin-bottom:10px;}
.shp-j-total-amount{font-size:clamp(28px,5vw,52px);font-weight:900;color:#fff;letter-spacing:-.04em;line-height:1;margin-bottom:8px;}
.shp-j-total-sub{font-size:13px;font-weight:500;color:rgba(255,255,255,.9);}
@media(max-width:640px){
  .shp-j-arrow-flow{grid-template-columns:1fr;gap:10px;}
  .shp-j-arrow{transform:rotate(90deg);}
  .shp-j-chukei{width:100%;}
  .shp-j-chukei img{width:90px;height:51px;}
}

/* 歳出バー */
.shp-saishutsu-layout{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start;margin-bottom:48px;}
.shp-donut-wrap{position:relative;max-width:260px;margin:0 auto 20px;}
.shp-donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;}
.shp-donut-total{font-size:28px;font-weight:900;color:#fff;letter-spacing:-.03em;}
.shp-donut-unit{font-size:12px;color:rgba(255,255,255,.68);}
.shp-chart-legend{display:flex;flex-direction:column;gap:6px;margin-top:12px;}
.shp-chart-legend--light .shp-legend-item{color:var(--gray3);}
.shp-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.82);}
.shp-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.shp-expenditure-bars{display:flex;flex-direction:column;gap:14px;}
.shp-exp-row{}
.shp-exp-info{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.shp-exp-ico{font-size:16px;width:22px;text-align:center;}
.shp-exp-label{font-size:13px;font-weight:700;color:rgba(255,255,255,.8);flex:1;}
.shp-exp-change{font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;}
.shp-change-up{background:rgba(0,200,80,.15);color:#3cca6e;}
.shp-change-down{background:rgba(192,39,45,.15);color:#e0606a;}
.shp-change-flat{background:rgba(255,255,255,.08);color:rgba(255,255,255,.4);}
.shp-exp-bar-wrap{height:26px;background:rgba(255,255,255,.07);border-radius:6px;overflow:hidden;}
.shp-exp-bar{height:100%;border-radius:6px;display:flex;align-items:center;padding-left:10px;transition:width 1s cubic-bezier(.16,1,.3,1);min-width:60px;}
.shp-exp-bar span{font-size:11px;font-weight:700;color:rgba(0,0,0,.7);white-space:nowrap;}

/* 前年比カード */
.shp-yoy-section{margin-top:48px;}
.shp-yoy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.shp-yoy-card{border-radius:16px;padding:20px;text-align:center;}
.shp-yoy-up{background:rgba(0,200,80,.1);border:1px solid rgba(0,200,80,.2);}
.shp-yoy-down{background:rgba(192,39,45,.1);border:1px solid rgba(192,39,45,.2);}
.shp-yoy-icon{font-size:28px;margin-bottom:8px;}
.shp-yoy-label{font-size:12px;font-weight:700;color:rgba(255,255,255,.82);margin-bottom:6px;}
.shp-yoy-num{font-size:26px;font-weight:900;letter-spacing:-.02em;margin-bottom:6px;}
.shp-yoy-up .shp-yoy-num{color:#3cca6e;}
.shp-yoy-down .shp-yoy-num{color:#e0606a;}
.shp-yoy-note{font-size:11px;color:rgba(255,255,255,.65);}
@media(max-width:900px){
  .shp-saishutsu-layout{grid-template-columns:1fr;}
  .shp-yoy-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .shp-yoy-grid{grid-template-columns:1fr 1fr;}
}

/* 歳入 */
.shp-sainyuu-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start;}
.shp-zeikin-title{font-size:18px;font-weight:800;color:var(--dark);margin-bottom:10px;}
.shp-zeikin-note{font-size:13px;color:var(--gray3);line-height:1.65;margin-bottom:24px;}
.shp-zeikin-bars{display:flex;flex-direction:column;gap:14px;margin-bottom:28px;}
.shp-z-row{}
.shp-z-info{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.shp-z-label{font-size:13px;font-weight:700;color:var(--dark);flex:1;}
.shp-z-bar-wrap{height:26px;background:var(--gray1);border-radius:6px;overflow:hidden;}
.shp-z-bar{height:100%;border-radius:6px;display:flex;align-items:center;padding-left:10px;transition:width 1s cubic-bezier(.16,1,.3,1);}
.shp-z-bar span{font-size:11px;font-weight:700;color:rgba(255,255,255,.9);white-space:nowrap;}
.shp-shisai-box{background:rgba(192,39,45,.05);border:1px solid rgba(192,39,45,.15);border-radius:12px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;}
.shp-shisai-icon{font-size:20px;flex-shrink:0;}
.shp-shisai-title{font-size:13px;font-weight:800;color:var(--dark);margin-bottom:6px;}
.shp-shisai-text{font-size:12px;color:var(--gray3);line-height:1.65;margin:0;}
@media(max-width:900px){
  .shp-sainyuu-layout{grid-template-columns:1fr;}
}

/* 3会計比較 */
.shp-sankaikei-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px;}
.shp-sk-card{background:#fff;border-radius:20px;padding:28px 24px;border:1px solid rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s;}
.shp-sk-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.08);transform:translateY(-2px);}
.shp-sk-card--main{border-color:rgba(192,39,45,.2);background:linear-gradient(135deg,rgba(192,39,45,.03),rgba(255,255,255,1));}
.shp-sk-label{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--gray2);margin-bottom:8px;}
.shp-sk-amount{font-size:clamp(24px,4vw,38px);font-weight:900;color:var(--dark);letter-spacing:-.03em;margin-bottom:12px;}
.shp-sk-bar{height:8px;background:var(--gray1);border-radius:4px;overflow:hidden;margin-bottom:10px;}
.shp-sk-bar-fill{height:100%;border-radius:4px;transition:width 1.2s cubic-bezier(.16,1,.3,1);}
.shp-sk-change{font-size:12px;font-weight:700;color:#3cca6e;margin-bottom:10px;}
.shp-sk-desc{font-size:12px;color:var(--gray3);line-height:1.65;}
.shp-sankaikei-total{background:var(--dark);border-radius:20px;padding:28px 36px;text-align:center;}
.shp-skt-label{font-size:11px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.65);margin-bottom:10px;}
.shp-skt-amount{font-size:clamp(28px,5vw,52px);font-weight:900;color:#fff;letter-spacing:-.04em;margin-bottom:6px;}
.shp-skt-change{font-size:13px;font-weight:700;color:#3cca6e;}
@media(max-width:900px){
  .shp-sankaikei-grid{grid-template-columns:1fr;}
}

/* トレンドチャート */
.shp-trend-chart-wrap{background:#fff;border-radius:20px;padding:28px;border:1px solid rgba(0,0,0,.06);margin-bottom:16px;}
.shp-trend-note{font-size:11px;color:var(--gray2);line-height:1.6;padding:10px 14px;border-left:2px solid var(--gray1);background:var(--off);border-radius:0 8px 8px 0;}
.shp-trend-note a{color:var(--red);}

/* 市民1人あたり */
.shp-hitoriata-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.shp-ha-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:24px;text-align:center;}
.shp-ha-icon{font-size:32px;margin-bottom:12px;}
.shp-ha-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.5);margin-bottom:8px;line-height:1.4;}
.shp-ha-num{font-size:clamp(20px,3vw,30px);font-weight:900;color:#fff;letter-spacing:-.03em;margin-bottom:6px;}
.shp-ha-num span{font-size:1.1em;color:var(--gold);}
.shp-ha-note{font-size:11px;color:rgba(255,255,255,.4);}
@media(max-width:900px){
  .shp-hitoriata-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:640px){
  .shp-hitoriata-grid{grid-template-columns:1fr 1fr;}
}

/* メッセージ */
.shp-message-inner{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start;}
.shp-message-photo-wrap{border-radius:20px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.12);}
.shp-message-photo{width:100%;height:auto;display:block;}
.shp-message-name{font-size:20px;font-weight:900;color:var(--dark);margin-top:14px;margin-bottom:2px;}
.shp-message-role{font-size:12px;color:var(--gray2);margin-bottom:6px;}
.shp-message-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(192,39,45,.08);color:var(--red);font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;}
.shp-message-quote-mark{font-size:80px;line-height:.8;color:rgba(192,39,45,.15);font-family:serif;margin-bottom:8px;}
.shp-message-title{font-size:clamp(22px,3.5vw,36px);font-weight:900;color:var(--dark);letter-spacing:-.02em;margin-bottom:20px;line-height:1.25;}
.shp-message-body{font-size:14px;color:var(--gray3);line-height:1.85;margin-bottom:16px;}
.shp-message-sig{font-size:22px;font-weight:900;color:var(--dark);font-style:italic;margin-top:24px;padding-top:20px;border-top:2px solid var(--gray1);}
@media(max-width:900px){
  .shp-message-inner{grid-template-columns:1fr;gap:32px;}
  .shp-message-photo-wrap{max-width:180px;}
}

/* LINE CTA */
.shp-line-cta{background:linear-gradient(135deg,#06C755,#00a842);padding:60px 0;}
.shp-lc-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.shp-lc-text{flex:1;}
.shp-lc-title{font-size:clamp(20px,3vw,32px);font-weight:900;color:#fff;letter-spacing:-.02em;margin-bottom:10px;}
.shp-lc-sub{font-size:14px;color:rgba(255,255,255,.8);line-height:1.65;}
.shp-lc-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 36px;background:#fff;color:#06C755;font-size:14px;font-weight:900;border-radius:40px;text-decoration:none;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.15);transition:transform .2s,box-shadow .2s;}
.shp-lc-btn:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.2);}
@media(max-width:640px){
  .shp-lc-inner{flex-direction:column;text-align:center;}
}

/* データ出典 */
.shp-source-box{background:var(--off);border-radius:16px;padding:28px 32px;}
.shp-source-title{font-size:14px;font-weight:800;color:var(--dark);margin-bottom:14px;}
.shp-source-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:8px;}
.shp-source-list li{font-size:12px;color:var(--gray3);line-height:1.65;padding-left:16px;position:relative;}
.shp-source-list li::before{content:'•';position:absolute;left:0;color:var(--red);}
.shp-source-list a{color:var(--red);}
.shp-source-note{font-size:11px;color:var(--gray2);line-height:1.6;padding-top:12px;border-top:1px solid var(--gray1);}

/* 市政報告LP レスポンシブ */
@media(max-width:900px){
  .shp-hero-split-wrap{flex-direction:column;}
  .shp-hero-sw{flex:none;width:100%;}
  .shp-hero-photo{
    flex:none;
    width:100%;
    height:220px;
    min-height:0;
    order:-1; /* スマホでは画像が上 */
  }
  .shp-hero-photo-overlay{
    background:linear-gradient(to bottom, transparent 40%, var(--dark) 100%);
  }
  .shp-hero-inner{padding:32px 0 40px;}
}
@media(max-width:640px){
  .shp-section{padding:56px 0;}
  .shp-section-header{margin-bottom:36px;}
  .shp-hero-title{font-size:28px;}
  .shp-hero-photo{height:180px;}
}

/* ═══════════════════════════════════════
   課題解決セクション 追加要素
═══════════════════════════════════════ */
.ch-line-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:#06C755;color:#fff;font-size:13px;font-weight:800;border-radius:40px;text-decoration:none;white-space:nowrap;transition:background .2s,transform .2s;}
.ch-line-btn:hover{background:#00a842;transform:translateY(-2px);}
.ch-report-wrap{text-align:center;margin-top:16px;}

/* ═══════════════════════════════════════
   写真プレースホルダー（共通）
═══════════════════════════════════════ */
.shp-jigyo-photo-frame,
.shp-gian-photo-frame{width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,rgba(0,0,0,.04),rgba(0,0,0,.08));border:2px dashed rgba(0,0,0,.15);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-bottom:16px;cursor:default;}
.shp-photo-placeholder-ico{font-size:28px;opacity:.35;}
.shp-photo-placeholder-txt{font-size:11px;color:rgba(0,0,0,.3);letter-spacing:.06em;}

/* ═══════════════════════════════════════
   主要事業セクション
═══════════════════════════════════════ */
.shp-jigyo-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:20px;}
.shp-jigyo-card{background:#fff;border-radius:20px;padding:24px;border:1px solid rgba(0,0,0,.06);transition:box-shadow .2s,transform .2s;overflow:hidden;position:relative;}
.shp-jigyo-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.09);transform:translateY(-2px);}
.shp-jigyo-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));}
.shp-jigyo-cat{font-size:11px;font-weight:700;color:var(--red);letter-spacing:.1em;margin-bottom:8px;}
.shp-jigyo-title{font-size:16px;font-weight:800;color:var(--dark);margin-bottom:8px;line-height:1.4;}
.shp-jigyo-amount{font-size:18px;font-weight:900;color:var(--dark);letter-spacing:-.02em;margin-bottom:12px;}
.shp-jigyo-desc{font-size:13px;color:var(--gray3);line-height:1.7;margin-bottom:14px;}
.shp-jigyo-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:20px;background:rgba(0,0,0,.05);color:var(--gray2);}
.shp-jigyo-tag--red{background:rgba(192,39,45,.1);color:var(--red);}
.shp-jigyo-note{font-size:11px;color:var(--gray2);line-height:1.6;padding:10px 14px;border-left:2px solid var(--gray1);background:var(--off);border-radius:0 8px 8px 0;}
@media(max-width:900px){.shp-jigyo-grid{grid-template-columns:1fr;}}

/* ═══════════════════════════════════════
   気になる議案セクション
═══════════════════════════════════════ */
.shp-gian-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:36px;}
.shp-gian-card{background:#fff;border-radius:20px;padding:24px;border:1px solid rgba(0,0,0,.06);position:relative;overflow:hidden;transition:box-shadow .2s,transform .2s;}
.shp-gian-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.09);transform:translateY(-2px);}
.shp-gian-type{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.1em;padding:4px 12px;border-radius:20px;margin-bottom:14px;}
.shp-gian-type--haishi{background:rgba(239,68,68,.1);color:#dc2626;}
.shp-gian-type--seitei{background:rgba(34,197,94,.1);color:#16a34a;}
.shp-gian-title{font-size:16px;font-weight:800;color:var(--dark);margin-bottom:16px;line-height:1.4;}
.shp-gian-what{background:var(--off);border-radius:10px;padding:14px 16px;margin-bottom:14px;}
.shp-gian-what-label{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--gray2);margin-bottom:6px;}
.shp-gian-what p{font-size:13px;color:var(--gray3);line-height:1.65;margin:0;}
.shp-gian-point{border-left:3px solid var(--red);padding-left:14px;}
.shp-gian-point-label{font-size:11px;font-weight:700;color:var(--red);margin-bottom:6px;}
.shp-gian-point p{font-size:13px;color:var(--gray3);line-height:1.65;margin:0;}
.shp-gian-line{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;background:var(--dark);border-radius:16px;padding:20px 28px;text-align:center;}
.shp-gian-line-text{font-size:13px;color:rgba(255,255,255,.6);}
.shp-gian-line-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:#06C755;color:#fff;font-size:13px;font-weight:800;border-radius:40px;text-decoration:none;transition:background .2s,transform .2s;}
.shp-gian-line-btn:hover{background:#00a842;transform:translateY(-2px);}
@media(max-width:900px){.shp-gian-grid{grid-template-columns:1fr;}}

/* ═══════════════════════════════════════
   閉会日討論レポート
═══════════════════════════════════════ */
.shp-toron-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:48px;}
.shp-toron-card{background:#fff;border-radius:16px;padding:24px;border:1px solid rgba(0,0,0,.07);display:flex;gap:16px;align-items:flex-start;transition:box-shadow .2s,transform .2s;}
.shp-toron-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.08);transform:translateY(-2px);}
.shp-toron-num{flex-shrink:0;width:40px;height:40px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;letter-spacing:-.5px;}
.shp-toron-body{flex:1;}
.shp-toron-title{font-size:15px;font-weight:900;color:var(--black);margin-bottom:8px;line-height:1.5;}
.shp-toron-text{font-size:13px;color:#555;line-height:1.75;margin-bottom:10px;}
.shp-toron-tag{display:inline-block;font-size:11px;font-weight:700;color:var(--red);background:rgba(192,39,45,.07);border-radius:4px;padding:2px 8px;}
@media(max-width:840px){.shp-toron-grid{grid-template-columns:1fr;}}

/* 説明責任ボックス */
.shp-sekinin-box{background:#fff;border-radius:20px;border:2px solid rgba(0,0,0,.08);overflow:hidden;margin-bottom:0;}
.shp-sekinin-header{display:flex;align-items:center;gap:12px;padding:20px 28px;background:linear-gradient(135deg,#1a1a2e 0%,#2d2d4e 100%);border-bottom:1px solid rgba(255,255,255,.08);}
.shp-sekinin-icon{font-size:24px;}
.shp-sekinin-title{font-size:17px;font-weight:900;color:#fff;margin:0;}
/* エッセイパート */
.shp-sekinin-essay{padding:32px 36px;border-bottom:2px solid rgba(0,0,0,.06);background:#fafafa;}
.shp-sekinin-essay-lead{font-size:16px;font-weight:700;color:#1a1a2e;line-height:1.9;margin-bottom:24px;padding:16px 20px;background:#fff;border-left:5px solid #1a1a2e;border-radius:0 8px 8px 0;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.shp-sekinin-essay-body{font-size:14px;color:#3a3a3a;line-height:2;margin-bottom:18px;}
.shp-sekinin-essay-body:last-child{margin-bottom:0;}
.shp-sekinin-essay-body strong{color:#1a1a2e;font-weight:800;}
.shp-sekinin-compare-label{font-size:11px;font-weight:800;letter-spacing:.12em;color:#999;text-align:center;padding:20px 0 4px;text-transform:uppercase;}
@media(max-width:720px){.shp-sekinin-essay{padding:24px 20px;}.shp-sekinin-essay-lead{font-size:14px;}}
/* 比較グリッド */
.shp-sekinin-body{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:start;}
.shp-sekinin-col{padding:28px;}
.shp-sekinin-col--against{border-right:1px solid rgba(0,0,0,.07);}
.shp-sekinin-arrow{display:flex;align-items:center;justify-content:center;padding:40px 20px;font-size:28px;color:#bbb;font-weight:900;}
.shp-sekinin-year{font-size:12px;font-weight:700;color:#888;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em;}
.shp-sekinin-vote{display:inline-block;font-size:13px;font-weight:900;border-radius:6px;padding:5px 16px;margin-bottom:16px;}
.shp-sekinin-vote--no{background:rgba(192,39,45,.1);color:#C0272D;border:1.5px solid rgba(192,39,45,.3);}
.shp-sekinin-vote--yes{background:rgba(6,199,85,.1);color:#059142;border:1.5px solid rgba(6,199,85,.3);}
.shp-sekinin-reasons{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:8px;}
.shp-sekinin-reasons li{font-size:13px;color:#444;line-height:1.6;padding-left:16px;position:relative;}
.shp-sekinin-reasons li::before{content:'・';position:absolute;left:0;color:var(--red);}
.shp-sekinin-col--for .shp-sekinin-reasons li::before{color:#059142;}
.shp-sekinin-link{display:inline-block;font-size:12px;font-weight:700;color:var(--red);text-decoration:underline;transition:opacity .2s;}
.shp-sekinin-link:hover{opacity:.7;}
.shp-sekinin-note{font-size:12px;color:#666;font-style:italic;line-height:1.7;border-left:3px solid #059142;padding-left:12px;margin:0;}
@media(max-width:720px){
  .shp-sekinin-body{grid-template-columns:1fr;}
  .shp-sekinin-col--against{border-right:none;border-bottom:1px solid rgba(0,0,0,.07);}
  .shp-sekinin-arrow{padding:12px 28px;transform:rotate(90deg);}
}

/* ═══════════════════════════════════════
   実績 LINE ボタン
═══════════════════════════════════════ */
.shp-j-line-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:#06C755;color:#fff;font-size:13px;font-weight:800;border-radius:40px;text-decoration:none;margin-top:20px;flex-shrink:0;transition:background .2s,transform .2s;}
.shp-j-line-btn:hover{background:#00a842;transform:translateY(-2px);}
.shp-j-total{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}

/* ═══════════════════════════════════════
   v29.2.0 追加CSS
═══════════════════════════════════════ */

/* ── ch-card 画像フレーム（課題解決カード TOP / 市政報告ページ共用） ── */
.ch-img-frame{
  width:100%;
  aspect-ratio:16/7;
  max-height:120px;
  background:var(--off);
  border:2px dashed rgba(0,0,0,.15);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
  overflow:hidden;
}
.ch-img-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:8px;
}
.ch-img-ph{
  font-size:28px;
  opacity:.35;
}

/* ── 主要事業・気になる議案 photo-frame 実画像対応 ── */
.shp-jigyo-photo-frame img,
.shp-gian-photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:10px;
}

/* ── ch-disclaimer（課題解決セクション注釈） ── */
.ch-disclaimer{
  font-size:13px;
  font-weight:700;
  color:#1A1200;
  line-height:1.85;
  background:#FFF8D6;
  border-left:4px solid #D4A010;
  border-radius:0 10px 10px 0;
  padding:14px 18px;
  margin:0 0 24px;
}

/* ── shp-disclaimer（市政報告ページ 実績セクション注釈） ── */
.shp-disclaimer{
  font-size:13px;
  font-weight:700;
  color:#1A1200;
  line-height:1.85;
  background:#FFF8D6;
  border-left:4px solid #D4A010;
  border-radius:0 10px 10px 0;
  padding:14px 18px;
  margin:0 0 32px;
}

/* ── ツールチップ（費目ラベル・歳入凡例 ホバー解説） ── */
.shp-tooltip{
  position:relative;
  cursor:help;
  border-bottom:1px dotted rgba(0,0,0,.3);
}
.shp-tooltip::after{
  content:attr(data-tooltip);
  position:absolute;
  bottom:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap;
  max-width:260px;
  white-space:normal;
  background:rgba(26,21,19,.92);
  color:#fff;
  font-size:11px;
  line-height:1.5;
  padding:7px 11px;
  border-radius:8px;
  pointer-events:none;
  opacity:0;
  transition:opacity .18s ease;
  z-index:200;
  text-align:center;
  box-shadow:0 4px 16px rgba(0,0,0,.25);
}
.shp-tooltip:hover::after{
  opacity:1;
}
/* 暗背景内のツールチップ（歳出バー等）は文字色を反転 */
.shp-section--dark .shp-tooltip{
  border-bottom-color:rgba(255,255,255,.35);
}
/* 凡例内のツールチップ（テキストノード付きのspan）は白文字ドット */
.shp-chart-legend .shp-tooltip{
  border-bottom:1px dotted rgba(26,21,19,.4);
}
@media(max-width:640px){
  .shp-tooltip::after{
    max-width:200px;
    font-size:10.5px;
    left:0;
    transform:none;
  }
}

/* ═══════════════════════════════════════
   RENEWAL v29.51 — 読み時間・冒頭強化・LINE CTA・一覧改善
═══════════════════════════════════════ */

/* ─── 記事メタ行（読み時間・更新日） ─── */
.article-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.read-time-badge,.update-badge{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--gray2);background:var(--off);border:1px solid var(--gray1);border-radius:100px;padding:3px 10px;}
.read-time-badge{color:var(--red);border-color:rgba(192,39,45,.25);background:var(--red-pale);}

/* ─── 冒頭ポイントボックス（本文前表示） ─── */
.post-points-box--top{background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border:1.5px solid #86efac;margin-bottom:24px;}
.post-points-box--top .ppb-head{background:none;padding-bottom:8px;}
.post-points-box--top .ppb-ico{font-size:18px;}
.post-points-box--top .ppb-title{color:#166534;font-size:14px;font-weight:800;}
.post-points-box--top .ppb-list li{color:#166534;}
.post-points-box--top .ppb-list li::before{background:#22c55e;}

/* ─── 記事カード：読み時間バッジ ─── */
.pc-read-time{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--red);background:var(--red-pale);border:1px solid rgba(192,39,45,.2);border-radius:100px;padding:2px 8px;}

/* ─── LINE CTA フル版（記事末尾） ─── */
.line-cta-box--full{background:linear-gradient(135deg,#00b900 0%,#009900 100%);border-radius:16px;padding:28px 28px 24px;margin:36px 0 28px;color:#fff;}
.lcb-full-top{margin-bottom:20px;}
.lcb-full-label{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.25);border-radius:100px;padding:3px 12px;margin-bottom:10px;}
.lcb-full-title{font-size:18px;font-weight:900;line-height:1.5;margin-bottom:12px;}
.lcb-full-desc{font-size:13px;line-height:2;opacity:.92;}
.lcb-btn--big{display:block;width:100%;background:#fff;color:#00b900;font-size:16px;font-weight:900;letter-spacing:.04em;text-align:center;padding:16px 20px;border-radius:12px;transition:transform .2s,box-shadow .2s;text-decoration:none;}
.lcb-btn--big:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2);}
.lcb-full-bottom{display:flex;flex-direction:column;gap:10px;align-items:center;}
.lcb-full-note{font-size:11px;opacity:.75;text-align:center;}

/* ─── トップページ LINE CTA セクション ─── */
.top-line-cta{background:linear-gradient(135deg,#004a00 0%,#00b900 60%,#009900 100%);padding:56px 0;}
.tlc-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.tlc-left{display:flex;align-items:flex-start;gap:20px;flex:1;min-width:280px;}
.tlc-icon{font-size:48px;flex-shrink:0;line-height:1;}
.tlc-text{color:#fff;}
.tlc-label{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.12em;background:rgba(255,255,255,.2);border-radius:100px;padding:3px 12px;margin-bottom:10px;}
.tlc-title{font-size:clamp(18px,2.8vw,26px);font-weight:900;line-height:1.5;margin-bottom:12px;color:#fff;}
.tlc-list{list-style:none;display:flex;flex-direction:column;gap:6px;}
.tlc-list li{font-size:13px;color:rgba(255,255,255,.92);line-height:1.7;}
.tlc-right{display:flex;flex-direction:column;align-items:center;gap:10px;flex-shrink:0;}
.tlc-btn{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#00b900;font-size:16px;font-weight:900;letter-spacing:.04em;padding:18px 32px;border-radius:100px;transition:transform .2s,box-shadow .2s;text-decoration:none;white-space:nowrap;}
.tlc-btn:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.25);}
.tlc-sub{font-size:12px;color:rgba(255,255,255,.8);text-align:center;}
.tlc-sub strong{color:#fff;}

@media(max-width:900px){
  .top-line-cta{padding:40px 0;}
  .tlc-inner{flex-direction:column;gap:24px;}
  .tlc-right{width:100%;}
  .tlc-btn{width:100%;justify-content:center;font-size:15px;}
}
@media(max-width:640px){
  .tlc-left{flex-direction:column;gap:12px;}
  .tlc-icon{font-size:36px;}
  .line-cta-box--full{padding:22px 18px 20px;}
  .lcb-full-title{font-size:16px;}
  .lcb-btn--big{font-size:15px;padding:14px 16px;}
}

/* =============================================
   v29.52.0 — 追加スタイル
   ============================================= */

/* ── フッター LINE バー ── */
.footer-line-bar{background:#00b900;padding:14px 0;}
.flb-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.flb-text{color:#fff;font-size:14px;font-weight:700;letter-spacing:.02em;}
.flb-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#00b900;font-size:13px;font-weight:900;padding:10px 22px;border-radius:100px;text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s;}
.flb-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.18);}
@media(max-width:640px){
  .flb-inner{flex-direction:column;align-items:flex-start;gap:10px;}
  .flb-btn{width:100%;justify-content:center;}
}

/* ── コンタクトページ LINE CTA ── */
.contact-line-cta{display:flex;align-items:center;gap:24px;background:linear-gradient(135deg,#00b900 0%,#00d900 100%);border-radius:16px;padding:28px 32px;margin-bottom:8px;}
.clc-icon{font-size:44px;flex-shrink:0;}
.clc-text{flex:1;}
.clc-label{font-size:12px;font-weight:700;color:rgba(255,255,255,.85);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;}
.clc-title{font-size:18px;font-weight:900;color:#fff;margin-bottom:6px;}
.clc-desc{font-size:13px;color:rgba(255,255,255,.9);line-height:1.6;}
.clc-btn{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#00b900;font-size:15px;font-weight:900;padding:16px 28px;border-radius:100px;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:transform .2s,box-shadow .2s;}
.clc-btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.2);}
@media(max-width:760px){
  .contact-line-cta{flex-direction:column;align-items:flex-start;gap:16px;padding:24px 20px;}
  .clc-btn{width:100%;justify-content:center;}
}

/* ── 各ページ共通 LINE CTA セクション（page-line-cta） ── */
.page-line-cta{background:linear-gradient(135deg,#00b900 0%,#009a00 100%);padding:56px 0;}
.plc-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.plc-text{flex:1;}
.plc-label{font-size:12px;font-weight:700;color:rgba(255,255,255,.8);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.plc-title{font-size:26px;font-weight:900;color:#fff;line-height:1.45;margin-bottom:12px;}
.plc-desc{font-size:14px;color:rgba(255,255,255,.9);line-height:1.7;max-width:480px;}
.plc-btn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#00b900;font-size:16px;font-weight:900;padding:20px 36px;border-radius:100px;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:transform .2s,box-shadow .2s;}
.plc-btn:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.25);}
@media(max-width:860px){
  .page-line-cta{padding:40px 0;}
  .plc-inner{flex-direction:column;align-items:flex-start;gap:20px;}
  .plc-title{font-size:22px;}
  .plc-btn{width:100%;justify-content:center;font-size:15px;padding:18px 24px;}
}

/* ── プロフィールページ 最新記事グリッド ── */
.profile-recent-posts{padding:64px 0 72px;background:#f8f8f6;}
.prp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.prp-card{background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;}
.prp-card:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(0,0,0,.1);}
.prp-thumb{position:relative;padding-top:56%;overflow:hidden;}
.prp-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.prp-thumb-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:48px;}
.prp-cat-badge{position:absolute;top:10px;left:10px;background:var(--red,#c0392b);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;}
.prp-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px;}
.prp-date{font-size:12px;color:#999;}
.prp-title{font-size:15px;font-weight:700;color:#1a1a1a;line-height:1.55;}
.prp-more{margin-top:20px;text-align:center;}
.btn-outline-red{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--red,#c0392b);color:var(--red,#c0392b);font-size:14px;font-weight:700;padding:12px 28px;border-radius:100px;text-decoration:none;transition:background .2s,color .2s;}
.btn-outline-red:hover{background:var(--red,#c0392b);color:#fff;}
@media(max-width:760px){
  .prp-grid{grid-template-columns:1fr;gap:16px;}
  .profile-recent-posts{padding:48px 0 56px;}
}

/* =============================================
   v29.53.0 — 議会活動アーカイブ スタイル
   ============================================= */

/* ── 議会活動ヒーロー ── */
.council-archive-hero{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);padding:64px 0 56px;}
.council-archive-hero .ih-title{color:#fff;}
.council-archive-hero .ih-lead{color:rgba(255,255,255,.85);}
.council-stats{display:flex;gap:32px;margin-top:32px;flex-wrap:wrap;}
.cst-item{text-align:center;}
.cst-num{display:block;font-size:36px;font-weight:900;color:var(--gold,#c9a84c);line-height:1.2;}
.cst-label{font-size:12px;color:rgba(255,255,255,.75);letter-spacing:.06em;}

/* ── フィルタ ── */
.council-filter{padding:24px 0 8px;border-bottom:1px solid #eee;margin-bottom:32px;}
.cf-group{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.cf-label{font-size:12px;font-weight:700;color:#999;letter-spacing:.06em;padding-top:6px;white-space:nowrap;min-width:72px;}
.cf-tags{display:flex;flex-wrap:wrap;gap:8px;}
.cf-tag{font-size:12px;font-weight:700;padding:5px 14px;border-radius:100px;border:1.5px solid #ddd;color:#666;text-decoration:none;transition:all .15s;}
.cf-tag:hover,.cf-tag.active{background:var(--red,#c0392b);border-color:var(--red,#c0392b);color:#fff;}

/* ── 議会活動 一覧グリッド ── */
.council-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:40px;}
.council-card{background:#fff;border-radius:16px;border:1.5px solid #eee;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.council-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.1);}
.council-card-inner{display:flex;flex-direction:column;height:100%;padding:24px;text-decoration:none;color:inherit;}
.cc-header{margin-bottom:16px;}
.cc-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.cc-type{font-size:11px;font-weight:700;background:#1a1a2e;color:#fff;padding:3px 10px;border-radius:100px;}
.cc-date{font-size:12px;color:#999;font-weight:700;}
.cc-video-badge{font-size:11px;color:#e74c3c;font-weight:700;}
.cc-title{font-size:16px;font-weight:900;color:#1a1a1a;line-height:1.5;margin-bottom:8px;}
.cc-question{font-size:13px;color:#555;line-height:1.6;background:#f0f7ff;border-left:3px solid #3498db;padding:8px 12px;border-radius:0 8px 8px 0;}
.cc-result{background:linear-gradient(135deg,#f0fff4,#e8f5e9);border-radius:10px;padding:14px 16px;margin-bottom:14px;}
.cc-result-label{font-size:11px;font-weight:700;color:#27ae60;display:block;margin-bottom:4px;}
.cc-result-text{font-size:13px;color:#2d6a4f;line-height:1.6;}
.cc-themes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.cc-theme-tag{font-size:11px;padding:3px 10px;border-radius:100px;background:#f5f5f5;color:#666;border:1px solid #e0e0e0;}
.cc-more{font-size:13px;font-weight:700;color:var(--red,#c0392b);margin-top:auto;}

/* ── 議会活動 個別ページ ── */
.council-hero{background:linear-gradient(135deg,#1a1a2e 0%,#0f3460 100%);padding:56px 0 48px;}
.council-breadcrumb{font-size:12px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:6px;margin-bottom:20px;flex-wrap:wrap;}
.council-breadcrumb a{color:rgba(255,255,255,.75);text-decoration:none;}
.council-breadcrumb a:hover{color:#fff;}
.council-hero-meta{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.council-type-badge{font-size:12px;font-weight:700;background:var(--gold,#c9a84c);color:#1a1a2e;padding:4px 12px;border-radius:100px;}
.council-session-date{font-size:13px;font-weight:700;color:rgba(255,255,255,.85);}
.council-title{font-size:28px;font-weight:900;color:#fff;line-height:1.45;margin-bottom:20px;}
.council-question-box{background:rgba(255,255,255,.12);border-left:4px solid var(--gold,#c9a84c);border-radius:0 12px 12px 0;padding:16px 20px;margin-bottom:16px;}
.cqb-label{font-size:11px;font-weight:700;color:var(--gold,#c9a84c);display:block;margin-bottom:6px;}
.cqb-text{font-size:16px;font-weight:700;color:#fff;line-height:1.6;}
.council-themes{display:flex;flex-wrap:wrap;gap:8px;}
.council-theme-tag{font-size:12px;padding:4px 12px;border-radius:100px;background:rgba(255,255,255,.15);color:rgba(255,255,255,.9);text-decoration:none;transition:background .15s;}
.council-theme-tag:hover{background:rgba(255,255,255,.3);}

/* ── 個別ページ レイアウト ── */
.council-layout{display:grid;grid-template-columns:1fr 300px;gap:48px;padding:48px 0 72px;align-items:start;}
.council-info-row{display:flex;gap:24px;background:#f8f8f6;border-radius:12px;padding:20px 24px;margin-bottom:32px;flex-wrap:wrap;}
.cir-item{display:flex;flex-direction:column;gap:4px;}
.cir-label{font-size:11px;font-weight:700;color:#999;letter-spacing:.06em;}
.cir-val{font-size:14px;font-weight:700;color:#1a1a1a;}

/* 成果ボックス */
.council-result-box{background:linear-gradient(135deg,#f0fff4,#e8f5e9);border:2px solid #27ae60;border-radius:16px;padding:24px 28px;margin-bottom:32px;}
.crb-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.crb-ico{font-size:24px;}
.crb-title{font-size:16px;font-weight:900;color:#27ae60;}
.crb-text{font-size:15px;color:#1a4a30;line-height:1.75;}

/* 本文 */
.council-body{font-size:16px;line-height:1.9;color:#333;margin-bottom:40px;}
.council-body h2{font-size:20px;font-weight:900;color:#1a1a2e;border-left:4px solid var(--gold,#c9a84c);padding-left:16px;margin:32px 0 16px;}
.council-body h3{font-size:17px;font-weight:800;color:#333;margin:24px 0 12px;}
.council-section-title{font-size:18px;font-weight:900;color:#1a1a2e;margin-bottom:16px;}

/* 動画 */
.council-video{margin-bottom:32px;}
.council-video-wrap{position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;}
.council-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;}
.council-video-link{display:inline-flex;align-items:center;gap:8px;background:#1a1a2e;color:#fff;font-weight:700;padding:14px 24px;border-radius:100px;text-decoration:none;}

/* 議事録リンク */
.council-minutes{margin-bottom:32px;}
.council-minutes-link{display:inline-flex;align-items:center;gap:8px;border:2px solid #1a1a2e;color:#1a1a2e;font-weight:700;font-size:14px;padding:12px 24px;border-radius:100px;text-decoration:none;transition:all .2s;}
.council-minutes-link:hover{background:#1a1a2e;color:#fff;}

/* 前後ナビ */
.council-post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px;padding-top:32px;border-top:1px solid #eee;}
.cpn-link{display:flex;flex-direction:column;gap:6px;padding:16px 20px;background:#f8f8f6;border-radius:12px;text-decoration:none;transition:background .2s;}
.cpn-link:hover{background:#efefef;}
.cpn-next{text-align:right;}
.cpn-dir{font-size:12px;color:#999;font-weight:700;}
.cpn-title{font-size:14px;font-weight:700;color:#1a1a1a;line-height:1.5;}

/* サイドバー */
.council-sidebar{display:flex;flex-direction:column;gap:24px;}
.cs-widget{background:#fff;border-radius:16px;border:1.5px solid #eee;padding:24px;}
.cs-widget-title{font-size:14px;font-weight:900;color:#1a1a2e;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--gold,#c9a84c);padding-bottom:10px;margin-bottom:16px;}
.cs-term-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.cs-term-list a{font-size:13px;color:#555;text-decoration:none;display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f0f0;}
.cs-term-list a:hover{color:var(--red,#c0392b);}
.cs-term-list span{color:#aaa;font-size:12px;}
.cs-post-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:10px;}
.cs-post-list a{font-size:13px;color:#555;text-decoration:none;display:flex;flex-direction:column;gap:3px;padding-bottom:10px;border-bottom:1px solid #f0f0f0;}
.cs-post-list a:hover{color:var(--red,#c0392b);}
.cs-post-date{font-size:11px;font-weight:700;color:#aaa;}
.cs-all-link{font-size:13px;font-weight:700;color:var(--red,#c0392b);text-decoration:none;}
.cs-profile-card{text-align:center;}
.cs-profile-img{width:80px;height:80px;border-radius:50%;object-fit:cover;margin-bottom:12px;}
.cs-profile-name{font-size:16px;font-weight:900;color:#1a1a1a;margin-bottom:2px;}
.cs-profile-role{font-size:12px;color:#999;margin-bottom:8px;}
.cs-profile-desc{font-size:12px;color:#666;line-height:1.65;margin-bottom:14px;}
.cs-profile-link{font-size:13px;font-weight:700;color:var(--red,#c0392b);text-decoration:none;}

/* ── レスポンシブ ── */
@media(max-width:960px){
  .council-grid{grid-template-columns:1fr;}
  .council-layout{grid-template-columns:1fr;}
  .council-sidebar{display:none;}/* スマホではサイドバー非表示 */
  .council-post-nav{grid-template-columns:1fr;}
  .council-title{font-size:22px;}
}
@media(max-width:640px){
  .council-info-row{flex-direction:column;gap:16px;}
  .council-stats{gap:20px;}
  .cst-num{font-size:28px;}
}

/* =============================================
   v29.54.0 — デジタル実績・O2Oセクション
   ============================================= */

/* ── デジタル実績ショーケース ── */
.digital-showcase{padding:72px 0;background:#0f0f1a;}
.digital-showcase .sl{color:rgba(255,255,255,.4);}
.ds-title{font-size:32px;font-weight:900;color:#fff;line-height:1.45;margin-bottom:16px;}
.ds-lead{font-size:16px;color:rgba(255,255,255,.8);line-height:1.8;max-width:640px;margin-bottom:48px;}
.ds-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:40px;}
.ds-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:28px 22px;display:flex;flex-direction:column;gap:12px;transition:background .2s,transform .2s;}
.ds-card:hover{background:rgba(255,255,255,.1);transform:translateY(-4px);}
.ds-ico{font-size:32px;}
.ds-card-title{font-size:15px;font-weight:900;color:#fff;line-height:1.5;}
.ds-card-desc{font-size:13px;color:rgba(255,255,255,.7);line-height:1.7;flex:1;}
.ds-link{font-size:13px;font-weight:700;color:var(--gold,#c9a84c);text-decoration:none;margin-top:auto;}
.ds-link:hover{color:#fff;}
.ds-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;}
.ds-note{font-size:13px;color:rgba(255,255,255,.5);line-height:1.7;}
.ds-note a{color:rgba(255,255,255,.75);text-decoration:underline;}
@media(max-width:960px){
  .ds-grid{grid-template-columns:repeat(2,1fr);}
  .ds-title{font-size:24px;}
}
@media(max-width:560px){
  .ds-grid{grid-template-columns:1fr;}
  .digital-showcase{padding:48px 0;}
}

/* ── プロフィール O2Oリアル拠点 ── */
.profile-locations{padding:48px 0;background:#fff;border-top:1px solid #f0f0f0;}
.prl-title{font-size:20px;font-weight:900;color:#1a1a1a;text-align:center;margin-bottom:28px;}
.prl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.prl-card{display:flex;align-items:flex-start;gap:16px;background:#f8f8f6;border-radius:14px;padding:22px 20px;}
.prl-card--line{background:linear-gradient(135deg,#e8ffe8,#f0fff0);border:1.5px solid #00b900;}
.prl-ico{font-size:32px;flex-shrink:0;}
.prl-name{font-size:15px;font-weight:900;color:#1a1a1a;margin-bottom:6px;}
.prl-desc{font-size:13px;color:#555;line-height:1.65;margin-bottom:10px;}
.prl-btn{display:inline-flex;align-items:center;gap:6px;background:#00b900;color:#fff;font-size:13px;font-weight:700;padding:8px 16px;border-radius:100px;text-decoration:none;transition:background .15s;}
.prl-btn:hover{background:#009900;}
@media(max-width:760px){
  .prl-grid{grid-template-columns:1fr;}
  .profile-locations{padding:36px 0;}
}


/* =============================================
   v29.55.0 — AI勉強カフェ会 イベントページ
   ============================================= */

/* ── ヒーロー ── */
.aice-hero{position:relative;padding:72px 0 64px;overflow:hidden;}
.aice-hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 40%,#f97316 100%);opacity:.95;}
.aice-hero-inner{position:relative;display:grid;grid-template-columns:1fr 400px;gap:48px;align-items:center;}
.aice-event-label{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:12px;}
.aice-hero-title{font-size:44px;font-weight:900;color:#fff;line-height:1.25;margin-bottom:14px;}
.aice-hero-title em{color:#fbbf24;font-style:normal;}
/* 先着バッジ */
.aice-capacity-badge{display:inline-flex;align-items:center;gap:6px;background:#ef4444;color:#fff;font-size:13px;font-weight:900;padding:6px 16px;border-radius:100px;margin-bottom:14px;animation:aice-pulse 2s infinite;}
@keyframes aice-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5);}50%{box-shadow:0 0 0 8px rgba(239,68,68,0);}}
/* 講師肩書き */
.aice-host-tag{font-size:14px;font-weight:700;color:rgba(255,255,255,.9);line-height:1.65;margin-bottom:18px;background:rgba(255,255,255,.1);border-left:3px solid #fbbf24;padding:10px 14px;border-radius:0 8px 8px 0;}
/* サブテキスト：改行なしで自然に折り返す */
.aice-hero-sub{font-size:15px;color:rgba(255,255,255,.85);line-height:1.8;margin-bottom:28px;word-break:keep-all;overflow-wrap:break-word;}
.sp-only{display:none;}
.aice-hero-meta{display:flex;flex-direction:column;gap:14px;margin-bottom:32px;}
.aice-meta-item{display:flex;align-items:center;gap:14px;}
.aice-meta-ico{font-size:22px;flex-shrink:0;}
.aice-meta-label{font-size:11px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.6);display:block;}
.aice-meta-val{font-size:16px;font-weight:700;color:#fff;}
.aice-meta-val--red{color:#fca5a5;}
/* CTAボタン：スマホで横幅フル */
.aice-cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#f97316;color:#fff;font-size:16px;font-weight:900;padding:18px 36px;border-radius:100px;text-decoration:none;transition:transform .2s,box-shadow .2s;}
.aice-cta-btn:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(249,115,22,.5);}
@media(max-width:640px){
  .aice-cta-btn{width:100%;padding:18px 24px;}
  .aice-hero-title{font-size:28px;}
  .aice-meta-val{font-size:14px;}
  .aice-host-tag{font-size:13px;}
  .aice-hero-sub{font-size:14px;}
  .sp-only{display:inline;}
}

/* ヒーロー右カード */
.aice-event-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px);border-radius:20px;padding:28px;}
.aice-card-head{font-size:14px;font-weight:900;color:#fbbf24;margin-bottom:16px;}
.aice-card-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.aice-card-list li{font-size:14px;color:rgba(255,255,255,.9);display:flex;align-items:center;gap:10px;}
.aice-check{flex-shrink:0;}

/* ── About セクション ── */
.aice-about{padding:72px 0;background:#fff;}
.aice-section-title{font-size:28px;font-weight:900;color:#1a1a1a;margin-bottom:40px;}
.aice-about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px;}
.aice-about-card{background:#f8f8f6;border-radius:16px;padding:28px 24px;}
.aice-about-ico{font-size:36px;display:block;margin-bottom:14px;}
.aice-about-card h3{font-size:16px;font-weight:900;color:#1a1a1a;margin-bottom:14px;}
.aice-about-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.aice-about-card li{font-size:13px;color:#555;line-height:1.65;padding-left:16px;position:relative;}
.aice-about-card li::before{content:"→";position:absolute;left:0;color:#f97316;}
.aice-about-card p{font-size:13px;color:#555;line-height:1.7;}

/* スケジュール */
.aice-schedule{display:flex;flex-direction:column;gap:10px;}
.aice-sch-item{display:flex;align-items:baseline;gap:12px;padding-bottom:10px;border-bottom:1px solid #e8e8e8;}
.aice-sch-time{font-size:13px;font-weight:900;color:#f97316;white-space:nowrap;min-width:42px;}
.aice-sch-content{font-size:13px;color:#444;line-height:1.5;}

/* ポイント */
.aice-points{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.aice-point{text-align:center;padding:24px 16px;background:linear-gradient(135deg,#fff7ed,#fef3c7);border-radius:14px;border:1.5px solid #fde68a;}
.aice-point-num{font-size:36px;font-weight:900;color:#f97316;display:block;margin-bottom:10px;opacity:.4;}
.aice-point-text{font-size:13px;color:#555;line-height:1.65;}

/* ── フォームセクション ── */
.aice-form-section{padding:72px 0;background:#f4f4f2;}
.aice-form-lead{font-size:15px;color:#666;line-height:1.7;margin-bottom:36px;}
.aice-sent{display:flex;align-items:flex-start;gap:20px;background:#f0fff4;border:2px solid #27ae60;border-radius:16px;padding:28px 32px;margin-bottom:32px;}
.aice-sent-ico{font-size:40px;}
.aice-sent-title{font-size:18px;font-weight:900;color:#27ae60;margin-bottom:8px;}
.aice-error{background:#fff5f5;border:2px solid #e74c3c;border-radius:12px;padding:16px 20px;color:#e74c3c;font-weight:700;margin-bottom:24px;}
.aice-error span{font-weight:900;}
.aice-line-link{color:#00b900;font-weight:700;text-decoration:none;}

.aice-form{background:#fff;border-radius:20px;padding:40px 40px 36px;box-shadow:0 4px 24px rgba(0,0,0,.06);}
.aice-form-row{margin-bottom:20px;}
.aice-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.aice-form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.aice-form-field label{font-size:13px;font-weight:700;color:#333;}
.aice-req{color:#e74c3c;}
.aice-form-field input[type="text"],
.aice-form-field input[type="email"],
.aice-form-field select,
.aice-form-field textarea{width:100%;padding:12px 16px;border:1.5px solid #ddd;border-radius:10px;font-size:15px;font-family:inherit;transition:border-color .2s;background:#fff;}
.aice-form-field input:focus,.aice-form-field select:focus,.aice-form-field textarea:focus{outline:none;border-color:#f97316;}
.aice-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.aice-check-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#444;cursor:pointer;background:#f8f8f6;border:1.5px solid #e8e8e8;border-radius:10px;padding:10px 14px;transition:all .15s;}
.aice-check-label:hover{border-color:#f97316;background:#fff7ed;}
.aice-check-label input{accent-color:#f97316;width:16px;height:16px;flex-shrink:0;}
.aice-privacy-check{display:flex;align-items:center;gap:10px;font-size:13px;color:#555;cursor:pointer;}
.aice-privacy-check a{color:#f97316;}
.aice-submit-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;font-size:16px;font-weight:900;padding:18px 24px;border-radius:100px;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:8px;}
.aice-submit-btn:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(249,115,22,.4);}
.aice-form-note{font-size:12px;color:#999;line-height:1.7;margin-top:20px;}
/* ── 会場セクション ── */
.aice-venue{padding:72px 0;background:#fff;}
.aice-venue-inner{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:8px;}
.aice-venue-info{display:flex;flex-direction:column;gap:20px;}
.aice-venue-detail{display:flex;align-items:flex-start;gap:14px;}
.aice-venue-ico{font-size:24px;flex-shrink:0;margin-top:2px;}
.aice-venue-name{font-size:18px;font-weight:900;color:#1a1a1a;margin-bottom:4px;}
.aice-venue-addr{font-size:14px;color:#555;line-height:1.65;}
.aice-venue-access{font-size:14px;font-weight:700;color:#1a1a1a;margin-bottom:4px;}
.aice-venue-access-note{font-size:12px;color:#999;}
.aice-map-link{display:inline-flex;align-items:center;gap:6px;background:#1a1a2e;color:#fff;font-size:14px;font-weight:700;padding:12px 22px;border-radius:100px;text-decoration:none;transition:background .2s;}
.aice-map-link:hover{background:#333;}
.aice-venue-map{border-radius:16px;overflow:hidden;aspect-ratio:4/3;}
.aice-venue-map iframe{width:100%;height:100%;display:block;}
@media(max-width:960px){
  .aice-hero-inner{grid-template-columns:1fr;}
  .aice-hero-right{display:none;}
  .aice-hero-title{font-size:32px;}
  .aice-about-grid{grid-template-columns:1fr;}
  .aice-points{grid-template-columns:repeat(2,1fr);}
  .aice-venue-inner{grid-template-columns:1fr;}
  .aice-form-row-2{grid-template-columns:1fr;gap:0;}
  .aice-check-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .aice-hero{padding:48px 0 40px;}
  .aice-hero-title{font-size:26px;}
  .aice-form{padding:24px 20px;}
  .aice-points{grid-template-columns:1fr;}
  .aice-check-grid{grid-template-columns:1fr;}
  .aice-venue,.aice-about,.aice-form-section{padding:48px 0;}
}

/* ═══════════════════════════════════════════════════════════════════
   ACCESSIBILITY — prefers-reduced-motion（WCAG 2.3.3 / Animation from Interactions）
   モーション減衰を希望するユーザーに対し、桜・カーソル・スクロール・
   トランジション・アニメーションを最小化／無効化する。
   コンテンツ・レイアウト・色は変更しない（情報量は維持）。
═══════════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  /* 桜アニメーション（全画面降下）を停止＋非表示 */
  #globalSakura,
  .sp,
  .sakura-toggle .st-petal { animation: none !important; }
  #globalSakura { display: none !important; }

  /* カスタムカーソル（追従＋拡縮）を非表示にし、システム標準カーソルに戻す */
  body { cursor: auto !important; }
  .cur, .cur-ring { display: none !important; }

  /* スクロールスムースを瞬時化（前庭症のユーザー配慮） */
  html { scroll-behavior: auto !important; }

  /* グローバルにアニメ・トランジションを最小化（必要時間1msで実質即時化） */
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0ms !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }

  /* スクロール連動Reveal（.rv → .on）でも初期透明状態のまま不可視にならないよう、
     即座に表示状態へ */
  .rv { opacity: 1 !important; transform: none !important; }

  /* 動画の自動再生は止める（autoplay属性の上書きはJS側だが、IntersectionObserverによる
     可視時開始のフックがある場合のヒント） */
  video[autoplay] { /* 必要に応じてJS側で paused = true をチェック */ }
}

/* ═══════════════════════════════════════════════════════════════════
   ACCESSIBILITY — focus visibility（キーボード操作時のフォーカス強調）
   既存デザインを変えず、:focus-visible のみ強調する。
═══════════════════════════════════════════════════════════════════ */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
  border-radius: 3px;
}

/* スクリーンリーダー専用ラベル用ユーティリティ（既存テンプレで使用可） */
.sr-only,
.visually-hidden {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important;
  overflow: hidden !important; clip: rect(0,0,0,0) !important;
  white-space: nowrap !important; border: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   ACCESSIBILITY — Skip to main content link（WCAG 2.4.1）
   通常時は完全に非表示、Tabキーでフォーカスされた時のみ画面左上に表示。
   既存ナビ階層をスキップして本文（#main-content）へジャンプする。
═══════════════════════════════════════════════════════════════════ */
.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  z-index: 99999;
  padding: 12px 20px;
  background: var(--red);
  color: #fff !important;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  border-radius: 0 0 8px 0;
  transition: top 0.18s ease;
}
.skip-link:focus,
.skip-link:focus-visible {
  top: 0;
  outline: 3px solid var(--gold);
  outline-offset: 2px;
}
/* main-contentコンテナにスクロールマージン（fixedヘッダーで本文が隠れないように） */
#main-content {
  scroll-margin-top: 90px;
}

/* ═══════════════════════════════════════════════════════════════════
   COOKIE同意バナー（改正APPI / Consent Mode v2 連携）
   - 既存トンマナ準拠（赤×ゴールド・Zen Kaku Gothic / DM Sans）
   - 画面下部固定・最小限デザイン・Tab操作可能
   - 既決定 or アクセシビリティ理由でreduced-motionの場合は透過
═══════════════════════════════════════════════════════════════════ */
.hs-cookie-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 99990;
  background: rgba(28, 25, 22, 0.97);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: #fff;
  border-top: 3px solid var(--gold);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.25);
  transform: translateY(110%);
  opacity: 0;
  transition: transform 0.35s cubic-bezier(.2,.85,.4,1), opacity 0.3s ease;
  pointer-events: none;
}
.hs-cookie-banner.is-visible {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.hsc-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 18px 24px 18px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.hsc-text { flex: 1 1 380px; min-width: 0; }
.hsc-title {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff !important;
  margin-bottom: 4px;
}
.hsc-desc {
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.86) !important;
}
.hsc-link {
  color: var(--gold) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hsc-link:hover { color: #fff !important; }
.hsc-btns {
  display: flex;
  gap: 10px;
  flex: 0 0 auto;
  align-items: center;
}
.hsc-btn {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 10px 18px;
  border-radius: 100px;
  border: 1px solid rgba(255,255,255,0.25);
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
  white-space: nowrap;
  line-height: 1;
}
.hsc-btn--decline { color: rgba(255,255,255,0.75); }
.hsc-btn--decline:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}
.hsc-btn--analytics {
  background: transparent;
  border-color: var(--gold);
  color: var(--gold);
}
.hsc-btn--analytics:hover {
  background: var(--gold);
  color: #fff;
}
.hsc-btn--accept {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.hsc-btn--accept:hover {
  background: var(--red-deep);
  border-color: var(--red-deep);
}
.hsc-btn:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* モバイル表示 */
@media (max-width: 720px) {
  .hsc-inner {
    padding: 14px 16px 16px;
    gap: 12px;
  }
  .hsc-title { font-size: 13.5px; }
  .hsc-desc { font-size: 12px; }
  .hsc-btns { width: 100%; justify-content: stretch; }
  .hsc-btn { flex: 1; padding: 11px 12px; font-size: 12px; }
}
@media (max-width: 420px) {
  .hsc-btn { font-size: 11px; padding: 11px 8px; }
  .hsc-btn--decline { display: none; } /* 拒否ボタンはモバイル極小画面では省略 */
}

/* reduced-motion 適合: 表示時のtransitionを高速化 */
@media (prefers-reduced-motion: reduce) {
  .hs-cookie-banner { transition: opacity 0.001ms !important; transform: none !important; }
  .hs-cookie-banner.is-visible { opacity: 1 !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   FLOATING LINE CTA（モバイル専用・画面下固定）
   - GA4課題「フォーム到達率0.26%」を直撃する常時可視CTA
   - 既存 .footer-line-bar とは別物。スクロール途中に出現
═══════════════════════════════════════════════════════════════════ */
.float-line-cta {
  display: none; /* デフォルト非表示。モバイル時のメディアクエリでのみ display:flex */
}

@media (max-width: 768px) {
  .float-line-cta {
    display: flex;
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 9990;
    align-items: center;
    gap: 12px;
    padding: 12px 14px 12px 16px;
    /* LINE色寄りのグリーン×レッドのグラデーション。アクセント許容方針に基づく */
    background: linear-gradient(135deg, #06C755 0%, #00B945 50%, #009933 100%);
    color: #ffffff;
    border-radius: 14px;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22), 0 0 0 1px rgba(255,255,255,0.06);
    transform: translateY(140%);
    opacity: 0;
    transition: transform 0.42s cubic-bezier(.2,.85,.4,1), opacity 0.3s ease;
    pointer-events: none;
    /* iOS safe-area */
    padding-bottom: calc(12px + env(safe-area-inset-bottom));
  }
  .float-line-cta.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .flc-close {
    position: absolute;
    top: 4px;
    right: 6px;
    width: 26px;
    height: 26px;
    border: none;
    background: rgba(255, 255, 255, 0.22);
    color: #ffffff;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.15s;
  }
  .flc-close:hover { background: rgba(255, 255, 255, 0.35); }
  .flc-close:active { transform: scale(0.92); }
  .flc-icon {
    font-size: 26px;
    line-height: 1;
    flex: 0 0 auto;
  }
  .flc-text {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.35;
  }
  .flc-title {
    font-size: 13.5px;
    font-weight: 800;
    color: #ffffff !important;
    margin: 0 0 2px;
    letter-spacing: 0.02em;
  }
  .flc-sub {
    font-size: 10.5px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.92) !important;
    margin: 0;
  }
  .flc-btn {
    flex: 0 0 auto;
    background: #ffffff;
    color: #06C755 !important;
    font-weight: 800;
    font-size: 13px;
    padding: 11px 16px;
    border-radius: 100px;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
    transition: transform 0.15s, box-shadow 0.2s;
    /* タップ領域確保 (WCAG AA: 44x44px) */
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .flc-btn:active { transform: scale(0.96); }
  .flc-btn:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  }
  /* 極小画面（〜380px）はサブテキストを省略してスペース確保 */
  @media (max-width: 380px) {
    .flc-sub { display: none; }
    .flc-btn { padding: 10px 12px; font-size: 12px; }
  }
}

/* reduced-motion: アニメーションを瞬時化 */
@media (prefers-reduced-motion: reduce) {
  .float-line-cta { transition: opacity 0.001ms !important; transform: none !important; }
  .float-line-cta.is-visible { opacity: 1 !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   READING PROGRESS BAR（記事ページ・画面最上部）
   - GA4課題「平均滞在13秒」を直撃。スクロール促進。
   - 高さ3px・var(--red) ベース・グラデーションで視認性UP
═══════════════════════════════════════════════════════════════════ */
.reading-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(192, 39, 45, 0.06);
  z-index: 9999;
  pointer-events: none;
}
.rp-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--red) 0%, var(--gold) 100%);
  box-shadow: 0 0 8px rgba(192, 39, 45, 0.45);
  transition: width 0.18s cubic-bezier(.4,0,.2,1);
  border-radius: 0 2px 2px 0;
}

/* nav要素が画面最上部にあるためz-indexを調整。プログレスバーはnavより上 */
nav#nav { z-index: 500; } /* 既存のz-index保持 */

/* reduced-motion: 瞬時更新 */
@media (prefers-reduced-motion: reduce) {
  .rp-fill { transition: none !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   「3秒で分かる結論」ボックス（v29.55.7・記事冒頭の最重要価値提示）
   - GA4課題「平均滞在13秒」直撃の構造化サマリー
   - 既存 .post-points-box の上位互換として機能
═══════════════════════════════════════════════════════════════════ */
.post-summary-box {
  position: relative;
  margin: 24px 0 32px;
  padding: 22px 24px 24px;
  background: linear-gradient(135deg, #FFF8F0 0%, #FFFAF7 100%);
  border-left: 5px solid var(--red);
  border-radius: 0 14px 14px 0;
  box-shadow: 0 2px 16px rgba(192, 39, 45, 0.08);
}
.post-summary-box--top {
  /* 記事の最重要箇所として中身が分かるよう、上下マージンを広めに */
  margin-top: 28px;
}
.psb-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.psb-ico {
  font-size: 22px;
  line-height: 1;
  display: inline-block;
  filter: drop-shadow(0 1px 2px rgba(192, 39, 45, 0.2));
}
.psb-title {
  font-size: 15px !important;
  font-weight: 800 !important;
  color: var(--red) !important;
  letter-spacing: 0.04em;
  margin: 0 !important;
  line-height: 1.3;
}
.psb-conclusion {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.75;
  color: var(--text) !important;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px dashed rgba(192, 39, 45, 0.18);
  letter-spacing: 0.01em;
}
.psb-target {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.5;
}
.psb-target-label {
  font-weight: 700;
  color: var(--gray2) !important;
  font-size: 11.5px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.psb-target-value {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: var(--gold);
  color: #ffffff !important;
  font-weight: 700;
  font-size: 13px;
  padding: 5px 12px;
  border-radius: 100px;
  line-height: 1.3;
}
.psb-points {
  margin: 0;
}
.psb-points-label {
  font-size: 11.5px;
  font-weight: 800;
  color: var(--red) !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.psb-points-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.psb-points-list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--gray3) !important;
}
.psb-points-list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 1px;
  width: 16px;
  height: 16px;
  background: var(--red);
  color: #ffffff;
  font-size: 10px;
  font-weight: 800;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* モバイル調整 */
@media (max-width: 640px) {
  .post-summary-box {
    padding: 18px 18px 20px;
    margin: 20px 0 24px;
    border-left-width: 4px;
  }
  .psb-conclusion {
    font-size: 15.5px;
    line-height: 1.7;
  }
  .psb-title { font-size: 14px !important; }
}

/* 旧 .post-points-box は互換のため残すが、新規記事では .post-summary-box が使われる */


/* ═══════════════════════════════════════════════════════════════════
   MOBILE FIRST-VIEW OPTIMIZATION（v29.55.7）
   - 97%のモバイル流入対策。ファーストビューにタイトル+カテゴリ+
     読了時間+結論サマリーが収まるようにスペース調整
   - SNS流入即時離脱（13秒）対策の核心
═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* 記事ページ全体のpadding-topを締める（fixed nav分は確保） */
  .single-wrap {
    padding-top: 80px !important; /* 元: 90px */
  }
  /* アイキャッチ高さを抑制（縦長を回避） */
  .detail-hero-thumb {
    margin-bottom: 14px;
  }
  .detail-hero-thumb-inner {
    aspect-ratio: 16 / 9; /* 元のフリー高から固定比率に */
    max-height: 220px;
    overflow: hidden;
    border-radius: 10px;
  }
  .detail-hero-thumb-inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .detail-hero-ico {
    font-size: 64px !important;
  }
  .detail-cat {
    font-size: 11px;
    padding: 4px 10px;
  }
  /* メタ情報の改行調整 */
  .detail-meta {
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 8px 0 6px;
    font-size: 12px;
  }
  .detail-date {
    font-size: 12px;
  }
  /* タイトルを大きく・締めて表示 */
  .detail-title {
    font-size: 22px !important;
    line-height: 1.45 !important;
    letter-spacing: 0.005em;
    margin: 10px 0 12px !important;
    font-weight: 900 !important;
  }
  /* 読了時間・更新日バッジを小さく */
  .article-meta-row {
    margin: 0 0 14px;
    gap: 6px;
    flex-wrap: wrap;
  }
  .read-time-badge,
  .update-badge {
    font-size: 11px;
    padding: 3px 8px;
  }
  /* 「3秒で分かる結論」ボックスをモバイルで早期表示 */
  .post-summary-box--top {
    margin-top: 14px;
    margin-bottom: 22px;
  }
  /* 既存の post-points-box との互換性を保ちつつ */
  .post-points-box--top {
    margin-top: 14px;
  }
}

/* 極小画面（〜380px、iPhone SE等） */
@media (max-width: 380px) {
  .single-wrap {
    padding-top: 76px !important;
  }
  .detail-title {
    font-size: 19.5px !important;
  }
  .detail-hero-thumb-inner {
    max-height: 180px;
  }
  .psb-conclusion {
    font-size: 15px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   ARCHIVE CARD CONCLUSION PREVIEW（v29.55.7）
   - GA4課題「リピート率3.75%」直撃。中身が予想できるカードで関連記事クリック誘発
═══════════════════════════════════════════════════════════════════ */
.pc-conclusion-preview {
  margin: 8px 0 6px !important;
  padding: 8px 12px;
  background: linear-gradient(135deg, #FFF8F0 0%, #FFFAF7 100%);
  border-left: 3px solid var(--red);
  border-radius: 0 6px 6px 0;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.55;
  color: var(--gray3) !important;
  letter-spacing: 0.01em;
}
/* feature card（最初の1件）はもう少し目立たせる */
.post-card--feature .pc-conclusion-preview {
  font-size: 13.5px;
  padding: 10px 14px;
}
/* モバイル */
@media (max-width: 640px) {
  .pc-conclusion-preview {
    font-size: 12px;
    padding: 7px 10px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   POLICY CARD LINK ENHANCEMENT（v29.55.7）
   - 政策カードをリンク化し、ホバー時に「関連実績を見る →」を強調
   - 既存 .pol-card のスタイルは維持しつつ、a要素に対応
═══════════════════════════════════════════════════════════════════ */
a.pol-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: transform 0.25s cubic-bezier(.2,.85,.4,1), box-shadow 0.25s;
}
a.pol-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(192, 39, 45, 0.18);
}
a.pol-card:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}
.pol-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--red) !important;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.25s, transform 0.25s;
}
.pol-more span {
  font-size: 14px;
  font-weight: 800;
  transition: transform 0.25s;
}
a.pol-card:hover .pol-more,
a.pol-card:focus-visible .pol-more {
  opacity: 1;
  transform: translateY(0);
}
a.pol-card:hover .pol-more span {
  transform: translateX(4px);
}
/* モバイルではホバーがないので最初から表示 */
@media (hover: none), (max-width: 768px) {
  .pol-more {
    opacity: 1;
    transform: none;
    color: var(--red) !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   ACHIEVEMENTS PAGE ENHANCEMENTS（v29.55.7）
   - URL hash アンカー（不可視ターゲット）
   - ビュー切替（カード ⇄ 年表）
   - 年表ビューの年見出し
═══════════════════════════════════════════════════════════════════ */
.ach-anchor {
  position: relative;
  height: 1px;
  width: 100%;
  margin: 0;
  padding: 0;
  pointer-events: none;
  scroll-margin-top: 100px; /* fixed nav分のオフセット */
}

.toolbar-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.view-toggle {
  display: inline-flex;
  background: var(--off);
  border: 1px solid var(--gray1);
  border-radius: 100px;
  padding: 3px;
  gap: 2px;
}
.vt-btn {
  border: none;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  color: var(--gray2);
  padding: 7px 14px;
  border-radius: 100px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  letter-spacing: 0.04em;
  /* タップ領域 (WCAG AA) */
  min-height: 36px;
  display: inline-flex;
  align-items: center;
}
.vt-btn:hover { color: var(--red); }
.vt-btn.active {
  background: var(--red);
  color: #ffffff;
}
.vt-btn:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* 年表ビュー */
.ach-grid.view-timeline {
  display: block !important;
  position: relative;
  padding-left: 28px;
}
.ach-grid.view-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--red) 0%, var(--gold) 100%);
  border-radius: 2px;
}
.ach-grid.view-timeline .timeline-year-label {
  display: block;
  margin: 24px 0 14px -28px;
  padding: 6px 16px;
  background: var(--red);
  color: #ffffff;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.06em;
  border-radius: 100px;
  width: fit-content;
  position: relative;
  z-index: 2;
}
.ach-grid.view-timeline .timeline-year-label:first-child { margin-top: 0; }
.ach-grid.view-timeline .ach-card {
  position: relative;
  margin: 12px 0;
}
.ach-grid.view-timeline .ach-card::before {
  content: '';
  position: absolute;
  left: -25px;
  top: 28px;
  width: 12px;
  height: 12px;
  background: var(--red);
  border: 3px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--red);
}
@media (max-width: 640px) {
  .toolbar-right { flex-wrap: wrap; gap: 10px; }
  .vt-btn { padding: 6px 10px; font-size: 11px; }
  .ach-grid.view-timeline { padding-left: 24px; }
  .ach-grid.view-timeline .timeline-year-label {
    margin-left: -24px;
    font-size: 12.5px;
    padding: 5px 12px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   MEDIA PAGE TABLE VIEW（v29.55.7）
   - カード ⇄ 表 のビュー切替
═══════════════════════════════════════════════════════════════════ */
.media-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 28px;
}
.media-table-wrap {
  margin-top: 20px;
  overflow-x: auto;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  background: #ffffff;
}
.media-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  line-height: 1.55;
  min-width: 720px;
}
.media-table thead {
  background: var(--off);
  border-bottom: 2px solid var(--red);
}
.media-table th {
  padding: 14px 12px;
  text-align: left;
  font-weight: 800;
  color: var(--gray3) !important;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.media-table td {
  padding: 14px 12px;
  vertical-align: top;
  border-bottom: 1px solid var(--gray1);
}
.media-table tbody tr {
  transition: background 0.18s;
}
.media-table tbody tr:hover {
  background: rgba(192, 39, 45, 0.03);
}
.mt-date {
  white-space: nowrap;
  color: var(--gray2) !important;
  font-weight: 600;
  font-size: 12px;
  width: 110px;
}
.mt-tag {
  display: inline-block;
  color: #ffffff;
  font-size: 10.5px;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 4px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.mt-outlet {
  font-weight: 700;
  color: var(--text) !important;
  width: 200px;
  font-size: 13px;
}
.mt-title {
  color: var(--gray3) !important;
  font-size: 13px;
  line-height: 1.65;
}
.mt-link {
  text-align: center;
  width: 80px;
  white-space: nowrap;
}
.mt-link a {
  color: var(--red) !important;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
  /* タップ領域 */
  display: inline-block;
  padding: 6px 8px;
  min-height: 36px;
  line-height: 24px;
}
.mt-link a:hover { text-decoration: underline; }
.mt-nolink {
  color: var(--gray2);
  font-size: 16px;
}
.media-table-note {
  margin: 12px 16px;
  font-size: 11.5px;
  color: var(--gray2);
}

@media (max-width: 768px) {
  .media-controls { flex-direction: column; align-items: stretch; }
  .media-table { font-size: 12px; }
  .media-table th, .media-table td { padding: 10px 8px; }
}


/* ═══════════════════════════════════════════════════════════════════
   POST MINI CONTACT FORM（v29.55.7・記事末尾の簡易問い合わせ）
   - GA4課題「フォーム到達率0.26%」直撃
   - 主要フィールド3つ + 同意 のみ。1分で送信完了する設計
═══════════════════════════════════════════════════════════════════ */
.post-mini-contact {
  margin: 36px 0 28px;
  padding: 26px 28px 28px;
  background: linear-gradient(135deg, #FDFCFA 0%, #FFF6F0 100%);
  border: 1px solid rgba(192, 39, 45, 0.12);
  border-left: 5px solid var(--red);
  border-radius: 0 14px 14px 0;
  box-shadow: 0 4px 20px rgba(192, 39, 45, 0.06);
}
.pmc-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.pmc-ico {
  font-size: 22px;
  line-height: 1;
}
.pmc-title {
  font-size: 17px !important;
  font-weight: 800 !important;
  color: var(--red) !important;
  margin: 0 !important;
  letter-spacing: 0.02em;
}
.pmc-lead {
  font-size: 13.5px;
  color: var(--gray3) !important;
  line-height: 1.7;
  margin: 0 0 18px;
}
.pmc-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pmc-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.pmc-form input[type="text"],
.pmc-form input[type="email"],
.pmc-form textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  font-family: var(--sans);
  font-weight: 500;
  color: var(--text);
  background: #ffffff;
  border: 1.5px solid var(--gray1);
  border-radius: 8px;
  transition: border-color 0.18s, box-shadow 0.18s;
  /* タップ領域 (WCAG AA) */
  min-height: 44px;
}
.pmc-form input[type="text"]:focus,
.pmc-form input[type="email"]:focus,
.pmc-form textarea:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(192, 39, 45, 0.12);
}
.pmc-form textarea {
  resize: vertical;
  min-height: 90px;
  line-height: 1.7;
}
.pmc-agree {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12.5px;
  color: var(--gray3);
  line-height: 1.6;
  cursor: pointer;
  padding: 4px 0;
}
.pmc-agree input[type="checkbox"] {
  margin-top: 3px;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: var(--red);
}
.pmc-agree a {
  color: var(--red) !important;
  text-decoration: underline;
}
.pmc-submit {
  align-self: flex-end;
  background: var(--red);
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 12px 28px;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 12px rgba(192, 39, 45, 0.25);
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
  /* タップ領域 (WCAG AA: 44x44px以上) */
  min-height: 44px;
  min-width: 140px;
  justify-content: center;
}
.pmc-submit:hover {
  background: var(--red-deep);
  box-shadow: 0 6px 18px rgba(192, 39, 45, 0.35);
}
.pmc-submit:active { transform: scale(0.97); }
.pmc-submit:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.pmc-submit span {
  font-size: 16px;
  font-weight: 800;
  transition: transform 0.2s;
}
.pmc-submit:hover span { transform: translateX(3px); }

.pmc-note {
  margin: 14px 0 0;
  font-size: 12px;
  color: var(--gray2);
  text-align: center;
  line-height: 1.6;
}
.pmc-note a {
  color: var(--red) !important;
  text-decoration: underline;
}

/* モバイル最適化 */
@media (max-width: 640px) {
  .post-mini-contact {
    padding: 20px 18px 22px;
    margin: 28px 0 22px;
  }
  .pmc-row {
    grid-template-columns: 1fr;
  }
  .pmc-title {
    font-size: 15.5px !important;
  }
  .pmc-submit {
    align-self: stretch;
    width: 100%;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   WCAG AA COMPLIANCE（v29.55.7）
   - コントラスト比 4.5:1 確保（薄いグレー文字を調整）
   - タップ領域 最低 44×44px 確保
   - キーボードフォーカスの可視性強化
═══════════════════════════════════════════════════════════════════ */

/* ── コントラスト比修正（既存 var(--gray2) #3E3830 は OK だが、
   一部の小さい文字や背景の薄いカラー上では危ういため上書き） ── */
.pc-meta,
.detail-meta,
.sb-art-date,
.dn-label,
.flb-text {
  color: var(--gray3) !important; /* #242018 は背景白でコントラスト 13.6:1 - AAA合格 */
}

/* グレー背景上の薄いテキストを濃く */
.dash-src,
.dash-src a {
  color: #4A4640 !important; /* 元の #9CA3AF はコントラスト 2.8:1 で AA未達 → 4.5:1+へ */
}

/* リンクのアンダーライン（AAアクセシビリティ推奨） */
.detail-body a:not(.share-btn):not(.lcb-btn):not(.dn-btn):not(.btn-red):not(.flc-btn):not(.pmc-submit) {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(192, 39, 45, 0.45);
  transition: text-decoration-color 0.2s, color 0.2s;
}
.detail-body a:not(.share-btn):not(.lcb-btn):not(.dn-btn):not(.btn-red):not(.flc-btn):not(.pmc-submit):hover {
  color: var(--red);
  text-decoration-color: var(--red);
}

/* ── タップ領域の確保（最低44×44px、WCAG AAA Target Size 推奨） ── */
nav#nav .n-links a,
nav#nav .n-btn,
nav#nav .n-drop-btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.nav-hamburger {
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 11px !important;
  align-items: center !important;
  justify-content: center !important;
}
.f-tab,
.mf-btn {
  min-height: 38px;
  padding: 8px 16px;
  display: inline-flex;
  align-items: center;
}
.share-btn {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
}
.dn-btn {
  min-height: 56px; /* 既に大きいが念のため */
}
.pagetop {
  min-width: 44px !important;
  min-height: 44px !important;
}

/* ── focus-visible 強化（既存ルールの強化版） ── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--gold) !important;
  outline-offset: 2px !important;
  border-radius: 4px;
  box-shadow: 0 0 0 4px rgba(192, 144, 48, 0.25);
}

/* aria-current や active 状態の視覚強化 */
[aria-current="page"],
.n-links a.active {
  font-weight: 800 !important;
}

/* ── スクリーンリーダー専用の補足情報 ── */
.aria-extra {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* hover でフォーカスリングが消えるのを防ぐ（既存 .n-links a の hover 上書き対策） */
.n-links a:focus-visible::after {
  width: 100% !important;
}

/* skip-link をモバイルでも見やすく */
@media (max-width: 768px) {
  .skip-link {
    font-size: 13px;
    padding: 10px 16px;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   POST INFOGRAPHIC（v29.55.8・滞在時間UP施策の本命）
   - 縦長9:16の「1枚で分かる」画像を記事冒頭に配置
   - タップで拡大（lightbox）・GA4イベント連携
   - スマホで読了率を稼ぐ最重要視覚資産
═══════════════════════════════════════════════════════════════════ */
.post-infographic {
  margin: 28px auto 32px;
  max-width: 540px;
  text-align: center;
  position: relative;
}
.post-infographic-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: zoom-in;
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
  transition: transform 0.25s cubic-bezier(.2,.85,.4,1), box-shadow 0.25s;
  /* タップ領域 */
  -webkit-tap-highlight-color: transparent;
}
.post-infographic-trigger:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.2);
}
.post-infographic-trigger:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 4px;
}
.post-infographic-trigger img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}
.post-infographic-zoom {
  position: absolute;
  bottom: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(28, 25, 22, 0.78);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #ffffff;
  padding: 7px 12px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 700;
  pointer-events: none;
  letter-spacing: 0.04em;
}
.pi-zoom-icon {
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
}
.post-infographic-caption {
  margin: 12px 0 0;
  font-size: 13px;
  color: var(--gray2);
  line-height: 1.65;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* モバイル：画像をフル幅に */
@media (max-width: 720px) {
  .post-infographic {
    max-width: 100%;
    margin: 22px -8px 28px;
  }
  .post-infographic-trigger {
    border-radius: 12px;
  }
  .post-infographic-trigger img {
    border-radius: 12px;
  }
  .post-infographic-zoom {
    bottom: 10px;
    right: 10px;
    padding: 6px 10px;
    font-size: 11px;
  }
  .post-infographic-caption {
    font-size: 12.5px;
    padding: 0 8px;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   LIGHTBOX（インフォグラフィック拡大表示）
═══════════════════════════════════════════════════════════════════ */
.pi-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  transition: opacity 0.25s;
  cursor: zoom-out;
}
.pi-lightbox.is-open {
  display: flex;
  opacity: 1;
}
.pi-lightbox-inner {
  position: relative;
  max-width: min(90vw, 720px);
  max-height: 92vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pi-lightbox-img {
  max-width: 100%;
  max-height: 92vh;
  width: auto;
  height: auto;
  display: block;
  border-radius: 8px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6);
}
.pi-lightbox-close {
  position: fixed;
  top: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  border: none;
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
  font-size: 22px;
  font-weight: 600;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.15s;
  /* タップ領域確保 */
  z-index: 100001;
}
.pi-lightbox-close:hover {
  background: rgba(255, 255, 255, 0.28);
}
.pi-lightbox-close:active {
  transform: scale(0.94);
}
.pi-lightbox-close:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* メニュー開閉時のbody overflow制御は既存パターン踏襲 */

/* reduced-motion 対応 */
@media (prefers-reduced-motion: reduce) {
  .pi-lightbox { transition: none !important; }
  .post-infographic-trigger { transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   旧 .post-lead-box は v29.55.8 で非推奨（既存記事の互換のみ表示）
═══════════════════════════════════════════════════════════════════ */
.post-lead-box {
  /* v29.55.8 で旧データのみ表示。新規記事では使われない */
  margin: 16px 0 24px;
  padding: 16px 20px;
  background: var(--off);
  border-left: 4px solid var(--gold);
  border-radius: 0 10px 10px 0;
}
.plb-bar { display: none; } /* 旧バーは非表示化 */
.plb-text {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--gray3) !important;
  margin: 0;
  font-weight: 500;
}


/* ═══════════════════════════════════════════════════════════════════
   FAQ ROBUST PARSER FALLBACK（v29.55.9）
   - パースに失敗してもrawを表示してデバッグしやすく
   - multi-line answerの<br>表示対応
═══════════════════════════════════════════════════════════════════ */
.post-faq-box--fallback .pfb-fallback {
  padding: 18px 20px;
  background: #fff;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 13px;
  line-height: 1.85;
  color: var(--gray3);
}
.post-faq-box--fallback::before {
  content: "⚠️ FAQ自動構造化に失敗：raw表示中（『Q：質問』『A：回答』形式で再入力すると整形されます）";
  display: block;
  padding: 8px 20px;
  background: #fff8d6;
  border-bottom: 1px solid #f0e0a0;
  font-size: 11px;
  color: #6e5a14;
  font-weight: 600;
}

/* nl2br で改行された複数行回答の見栄え */
.pfb-a p br {
  line-height: 2;
}


/* ═══════════════════════════════════════════════════════════════════
   EMPHASIS SHORTCODES（v29.55.10）
   8種類の強調表現。トンマナ統一・モバイル可読性重視。
   使い方:
     [hi]text[/hi] / <mark>text</mark> / ==text==  → 黄マーカー
     [pink]text[/pink]                             → 淡ピンク太字
     [pinkband]text[/pinkband]                     → 淡ピンク背景帯
     [redband]text[/redband]                       → 赤背景・白文字
     [gold]text[/gold]                             → ゴールド下線
     [key]text[/key]                               → キーワード（赤下線+太字）
     [num]123[/num]                                → 数字強調（大きめ赤太字）
     [note]text[/note]                             → 補足注記（淡グレー小文字）
═══════════════════════════════════════════════════════════════════ */

/* ① 黄色マーカー（HTML5 <mark> も同じスタイル） */
.detail-body mark,
.detail-body .hl-mark {
  background: linear-gradient(transparent 60%, #FFEB99 60%);
  color: inherit;
  padding: 0 2px;
  font-weight: 700;
  border-radius: 2px;
}

/* ② 淡いピンク太字 */
.detail-body .hl-pink {
  color: #E5478A;
  font-weight: 700;
}

/* ③ 淡ピンク背景帯 */
.detail-body .hl-pinkband {
  background: linear-gradient(135deg, #FFE4EC 0%, #FFD6E0 100%);
  color: #8B1F4D;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* ④ 赤背景・白文字（最強強調） */
.detail-body .hl-redband {
  background: linear-gradient(135deg, var(--red) 0%, var(--red-deep) 100%);
  color: #ffffff !important;
  padding: 3px 10px;
  border-radius: 4px;
  font-weight: 800;
  letter-spacing: 0.04em;
  box-shadow: 0 2px 6px rgba(192, 39, 45, 0.25);
}

/* ⑤ ゴールドの太い下線（伝統的・引き締まる） */
.detail-body .hl-gold {
  background: linear-gradient(transparent 75%, var(--gold) 75%, var(--gold) 92%, transparent 92%);
  color: inherit;
  padding: 0 2px;
  font-weight: 700;
}

/* ⑥ キーワード（赤下線+太字） */
.detail-body .hl-key {
  color: var(--red);
  font-weight: 800;
  border-bottom: 2px solid var(--red);
  padding-bottom: 1px;
}

/* ⑦ 数字強調（大きめ赤太字・等幅で揃える） */
.detail-body .hl-num {
  font-family: var(--dm), var(--sans);
  font-size: 1.18em;
  font-weight: 900;
  color: var(--red);
  letter-spacing: 0.01em;
  padding: 0 2px;
}

/* ⑧ 補足注記（淡グレー小文字・控えめ） */
.detail-body .hl-note {
  color: var(--gray2);
  font-size: 0.88em;
  font-weight: 500;
  background: var(--off);
  padding: 1px 6px;
  border-radius: 3px;
  border: 1px solid var(--gray1);
}

/* モバイル微調整 */
@media (max-width: 640px) {
  .detail-body .hl-redband {
    padding: 2px 8px;
    font-size: 0.96em;
  }
  .detail-body .hl-num {
    font-size: 1.14em;
  }
}

/* prefers-reduced-motion: 装飾を控えめに */
@media (prefers-reduced-motion: reduce) {
  .detail-body .hl-redband { box-shadow: none; }
}

/* 印刷時はシンプルに（黒背景で印刷を避ける） */
@media print {
  .detail-body mark,
  .detail-body .hl-mark { background: none; text-decoration: underline; }
  .detail-body .hl-redband { background: none; color: #000 !important; border: 1px solid #000; }
  .detail-body .hl-pinkband { background: none; color: #000; border: 1px solid #888; }
}


/* ═══════════════════════════════════════
   v29.55.13 NEW — メール登録フォーム メッセージ
═══════════════════════════════════════ */
.sf-msg{font-size:13px;border-radius:8px;padding:8px 10px;margin:6px 0;line-height:1.5;}
.sf-msg--ok{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7;}
.sf-msg--err{background:#fdecea;color:#b71c1c;border:1px solid #f5c6cb;}


/* ─────────────────────────────────────
   v29.55.15: ガイド（ピラーページ）テンプレート用
───────────────────────────────────── */
.guide-updated{font-size:13px;color:var(--gray2);margin-top:10px;}
.guide-body{padding:60px 0 40px;}
.guide-children{padding:20px 0 90px;}
.guide-children-title{font-size:22px;font-weight:800;color:var(--dark);margin:0 0 24px;padding-left:14px;border-left:4px solid var(--red);}
.guide-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.guide-card{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--gray1);border-radius:10px;background:var(--white);text-decoration:none;transition:box-shadow .25s ease,transform .25s ease;}
.guide-card:hover{box-shadow:0 8px 24px rgba(192,39,45,.12);transform:translateY(-2px);}
.gc-date{font-family:var(--dm);font-size:12px;color:var(--gray2);}
.gc-title{font-size:15px;font-weight:700;color:var(--dark);line-height:1.5;}
.gc-conclusion{font-size:13px;color:var(--gray3);line-height:1.6;}
.gc-more{font-size:13px;font-weight:700;color:var(--red);margin-top:auto;}
@media (prefers-reduced-motion: reduce){.guide-card{transition:none;}.guide-card:hover{transform:none;}}

/* ═══════════════════════════════════════
   v29.55.16 — GA4診断対応（LINE CTA 3箇所・著者ミニプロフィール・軽量フォーム）
═══════════════════════════════════════ */
/* コンパクトLINE CTA（結論直後／本文中盤） */
.line-cta-box--compact{margin:28px 0 32px;padding:18px 20px;border-radius:14px;box-shadow:0 6px 20px rgba(6,199,85,.18);}
.line-cta-box--compact .lcb-inner{gap:14px;}
.line-cta-box--compact .lcb-icon{font-size:28px;}
.line-cta-box--compact .lcb-title{font-size:15px;line-height:1.5;margin:0 0 4px;}
.line-cta-box--compact .lcb-desc{font-size:12.5px;line-height:1.7;margin:0;}
.line-cta-box--compact .lcb-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;font-size:14px;}
.line-cta-box--compact .lcb-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
.line-cta-box--after_summary{margin-top:8px;}
.detail-body .line-cta-box--mid_body{margin:36px 0 40px;}
.detail-body .line-cta-box--compact p{margin-bottom:0;}
@media(max-width:640px){
  .line-cta-box--compact{padding:16px 16px 18px;}
  .line-cta-box--compact .lcb-inner{flex-direction:row;flex-wrap:wrap;text-align:left;}
  .line-cta-box--compact .lcb-icon{display:none;}
  .line-cta-box--compact .lcb-text{min-width:0;flex:1 1 100%;}
  .line-cta-box--compact .lcb-btn{width:100%;}
}

/* 著者ミニプロフィール */
.post-author-box{margin:36px 0 28px;padding:22px 24px 22px;background:var(--off);border:1px solid var(--gray1);border-radius:16px;}
.pab-head{margin-bottom:14px;}
.pab-label{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--red);background:var(--red-pale);border-radius:100px;padding:4px 12px;}
.pab-body{display:flex;gap:18px;align-items:flex-start;}
.pab-photo{flex:0 0 88px;width:88px;height:88px;border-radius:50%;overflow:hidden;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.10);background:#fff;}
.pab-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;margin:0;border-radius:0;}
.pab-main{flex:1;min-width:0;}
.pab-name{font-size:19px;font-weight:900;color:var(--dark);line-height:1.3;margin:0 0 4px;padding:0;border:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.pab-kana{font-family:var(--dm);font-size:11px;font-weight:600;color:var(--gray2);letter-spacing:.06em;}
.pab-role{font-size:13px;font-weight:700;color:var(--red);margin:0 0 10px;}
.pab-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.pab-lines li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.7;color:var(--gray3);}
.pab-lines li::before{content:"✓";position:absolute;left:0;top:0;color:var(--gold);font-weight:900;}
.pab-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.pab-line{flex:1 1 220px;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:10px;background:linear-gradient(135deg,#05A847 0%,#06C755 100%);color:#fff;font-size:14px;font-weight:900;text-decoration:none;box-shadow:0 4px 14px rgba(6,199,85,.25);transition:transform .2s,box-shadow .2s;}
.pab-line:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(6,199,85,.32);color:#fff;}
.pab-profile{flex:1 1 180px;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:10px;border:1.5px solid var(--red);color:var(--red);font-size:14px;font-weight:800;text-decoration:none;background:#fff;transition:background .2s,color .2s;}
.pab-profile:hover{background:var(--red);color:#fff;}
.pab-line:focus-visible,.pab-profile:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
@media(max-width:640px){
  .post-author-box{padding:18px 16px 18px;}
  .pab-body{gap:14px;}
  .pab-photo{flex-basis:68px;width:68px;height:68px;}
  .pab-name{font-size:17px;}
  .pab-lines li{font-size:13px;}
  .pab-actions{flex-direction:column;}
}

/* 軽量フォーム（v29.55.16） */
.pmc-row--single{grid-template-columns:1fr;}
.pmc-optional{font-size:12.5px;color:var(--gray3);}
.pmc-optional summary{cursor:pointer;padding:6px 0;min-height:32px;display:flex;align-items:center;color:var(--gray2);font-weight:600;}
.pmc-optional summary:hover{color:var(--red);}
.pmc-optional[open] summary{margin-bottom:8px;}
.pmc-notice{margin:0 0 14px;padding:12px 14px;border-radius:8px;font-size:13.5px;font-weight:700;line-height:1.6;}
.pmc-notice--ok{background:#EEF9F1;color:#1B7A3B;border:1px solid #BFE5CA;}
.pmc-notice--ng{background:var(--red-pale);color:var(--red-deep);border:1px solid rgba(192,39,45,.25);}
@media (prefers-reduced-motion: reduce){
  .line-cta-box--compact .lcb-btn,.pab-line,.pab-profile{transition:none;}
  .pab-line:hover{transform:none;}
}





/* ═══════════════════════════════════════
   v29.55.18 — 細部修正（ユーザー指摘 2026/09/12）
═══════════════════════════════════════ */
/* トップ：読了時間ピルが横いっぱいに伸びる（flex縦並びのstretch）→ 内容幅に */
.act-feat-body .pc-read-time,.act-body .pc-read-time{align-self:flex-start;display:inline-block;width:max-content;margin-bottom:6px;}
/* トップ：3列カードのサムネが上下切れる → 16:9 の比率で全体表示 */
.act-thumb--grid{height:auto;aspect-ratio:16/9;}
.act-thumb--grid .act-thumb-inner img{width:100%;height:100%;object-fit:cover;display:block;}
.act-feat-thumb .act-thumb-inner img{width:100%;height:100%;object-fit:cover;display:block;}
/* 記事：引用ボックス内の段落下マージンで上下の余白が不均等 → 中央に */
.detail-body blockquote>*:last-child{margin-bottom:0;}
.detail-body blockquote>*:first-child{margin-top:0;}

/* ═══════════════════════════════════════════════════════════════════
   v29.55.19 — 本文の読みやすさ改修（強調の減量・本文400）
   ショートコード8種はすべて維持。見え方だけ変更するので既存記事は無修正で反映。
   - 本文：Zen Kaku Gothic New 400 / line-height 1.95 / letter-spacing .015em
   - [num]：大きな赤字 → 本文と同サイズの黒太字（等幅数字）
   - [key]：赤字＋赤下線 → 黒太字＋細い赤下線
   - [hi]／[gold]：太字なし・マーカーを細く
   - [pink]／[pinkband]：彩度を落とす
   - [redband]：影なし・太さ700
   - [note]：独立した補足ブロック（左罫線）
═══════════════════════════════════════════════════════════════════ */
.detail-body{font-weight:400;line-height:1.95;letter-spacing:.015em;color:#2B2723;}
.detail-body li{font-weight:400;color:#2B2723;}
.detail-body strong{color:#1C1916;font-weight:700;}
.detail-body mark,
.detail-body .hl-mark{background:linear-gradient(transparent 68%,#FFF0B3 68%);padding:0 1px;font-weight:inherit;border-radius:0;}
.detail-body .hl-pink{color:#9E3A63;font-weight:700;}
.detail-body .hl-pinkband{background:#FCEBF0;color:#7A2547;padding:1px 6px;border-radius:3px;font-weight:600;letter-spacing:0;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.detail-body .hl-redband{background:var(--red);color:#fff !important;padding:2px 9px;border-radius:3px;font-weight:700;letter-spacing:.02em;box-shadow:none;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.detail-body .hl-gold{background:linear-gradient(transparent 80%,#D9B76A 80%,#D9B76A 92%,transparent 92%);padding:0 1px;font-weight:inherit;}
.detail-body .hl-key{color:#1C1916;font-weight:700;border-bottom:2px solid rgba(192,39,45,.55);padding-bottom:1px;}
.detail-body .hl-num{font-family:inherit;font-size:1em;font-weight:700;color:#1C1916;font-variant-numeric:tabular-nums;letter-spacing:0;padding:0;}
.detail-body .hl-note{display:block;color:#6B635A;font-size:.86em;line-height:1.8;font-weight:400;background:none;border:0;border-left:2px solid var(--gray1);border-radius:0;padding:2px 0 2px 12px;margin-top:-10px;}
.detail-body p > .hl-note:only-child{margin-top:0;}
@media (max-width:640px){
  .detail-body .hl-num{font-size:1em;}
  .detail-body .hl-redband{padding:2px 8px;font-size:1em;}
}

/* v29.55.20 — 本文内に残る h1 は h2 相当で表示（記事側の二重H1対策の保険） */
.detail-body h1{font-size:21px;font-weight:700;color:var(--dark);margin:48px 0 18px;padding-left:16px;border-left:3px solid var(--red);line-height:1.5;}

/* v29.55.22 — 実績ページ：提言／賛成議案のグループ見出し */
.ach-divider{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:18px 4px 6px;border-bottom:2px solid var(--gray1);margin-top:8px;}
.ach-divider:first-child{margin-top:0;}
.ach-divider-ttl{font-size:16px;font-weight:900;color:var(--dark);letter-spacing:.02em;}
.ach-divider-sub{font-size:12px;color:var(--gray2);line-height:1.7;}
.ach-divider--prop .ach-divider-ttl{color:var(--red);}
.ach-grid.view-timeline .ach-divider{display:none;}
.ac-badge-prop{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;color:#fff;background:var(--red);border-radius:3px;padding:2px 7px;margin-right:8px;vertical-align:middle;}

/* v29.55.22 — アーカイブ／検索／404 */
a.f-tab{display:inline-block;text-decoration:none;line-height:1.4;}
.arc-desc{font-size:13px;color:var(--gray2);line-height:1.9;margin-top:10px;max-width:640px;}
.site-search{display:flex;gap:8px;max-width:560px;margin-top:18px;}
.site-search input{flex:1;min-width:0;border:1.5px solid var(--gray1);border-radius:8px;padding:12px 14px;font-size:15px;font-family:inherit;background:#fff;color:var(--dark);outline:none;transition:border-color .2s;}
.site-search input:focus{border-color:var(--red);}
.site-search button{flex-shrink:0;padding:12px 20px;background:var(--red);color:#fff;border:0;border-radius:8px;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;}
.search-empty{padding:40px 0 20px;color:var(--gray3);line-height:1.9;grid-column:1/-1;}
.search-empty p{font-size:16px;font-weight:700;color:var(--dark);}
.search-empty-sub{font-size:14px !important;font-weight:400 !important;color:var(--gray2) !important;margin-top:8px;}
.search-empty a{color:var(--red);}
.search-empty-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.search-empty-links a{display:inline-block;padding:7px 14px;border:1.5px solid var(--gray1);border-radius:100px;font-size:13px;font-weight:700;color:var(--gray3);text-decoration:none;background:#fff;transition:all .2s;}
.search-empty-links a:hover{border-color:var(--red);color:var(--red);}
.nf-wrap{padding-block:48px 80px;}
.nf-lead p{font-size:15px;line-height:2;color:var(--gray3);}
.nf-lead a{color:var(--red);}
.nf-latest{margin-top:56px;}
@media (max-width:640px){.site-search{flex-direction:column;}.site-search button{width:100%;}}

/* v29.55.22 — 記事の読了プログレスバー */
.read-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--red);transform-origin:0 50%;transform:scaleX(0);z-index:10001;pointer-events:none;transition:transform .12s linear;}
@media (prefers-reduced-motion: reduce){.read-progress{transition:none;}}


/* ═══ v29.55.23 — トップ「ピックアップ」枠・記事末LINE案内の約束文 ═══ */
.act-pick{margin:0 0 40px;padding:24px 24px 4px;border:1px solid var(--gray1);border-top:3px solid var(--gold);border-radius:10px;background:#FFFCF6;}
.act-pick-label{display:flex;align-items:baseline;gap:12px;margin:0 0 16px;font-size:15px;font-weight:900;color:var(--dark);letter-spacing:.04em;}
.act-pick-label span{font-size:12px;font-weight:500;color:var(--gray3);letter-spacing:0;}
.act-card-row--pick{margin-bottom:20px;}
.lcb-full-promise{margin-top:8px;font-size:12px;opacity:.85;}
@media(max-width:640px){.act-pick{padding:18px 14px 2px;}}


/* ═══════════════════════════════════════════════════════════════
   v29.56.0（2026-10-11）トップ刷新＋全ページ共通の整理
   - 絵文字 → SVGアイコン（.ico / images/icons.svg）
   - 自作カーソル廃止・桜はヒーローだけ
   - LINEは公式の緑 #06C755＋公式アイコンに統一
   - 余白の規則：コンテンツ幅 1200px／左右 --gutter／セクション上下 --sec-y
═══════════════════════════════════════════════════════════════ */
:root{
  --ink:#1C1916;
  --kinari:#F0EDE8;
  --line-green:#06C755;
  --mincho:'Shippori Mincho B1','Hiragino Mincho ProN','Yu Mincho',serif;
  --cw:1200px;
  --gutter:clamp(20px,5vw,64px);
  --sec-y:clamp(72px,9vw,120px);
}

/* ── 共通：カーソルを通常に戻す ── */
html body,html body *{cursor:auto !important;}
html body a[href],html body button,html body summary,html body label,html body select,html body [role="button"],html body .tf-q-btn{cursor:pointer !important;}
.cur,.cur-ring,#globalSakura{display:none !important;}

/* ── 共通：アイコン ── */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;fill:currentColor;flex-shrink:0;overflow:visible;--ico-face:var(--red);--ico-op:.2;}
.ico-arrow{width:.95em;height:.95em;margin-left:.45em;transition:transform .25s cubic-bezier(.16,1,.3,1);--ico-op:0;}
a:hover .ico-arrow,button:hover .ico-arrow{transform:translateX(3px);}
.ico-line{--ico-op:0;}

/* ── 共通：LINEボタン（公式の緑） ── */
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;background:var(--line-green);color:#fff !important;font-size:13px;font-weight:700;letter-spacing:.05em;text-decoration:none;line-height:1.3;transition:background .2s,transform .2s;border:0;}
.btn-line:hover{background:#05B34C;transform:translateY(-1px);}
.btn-line .ico-line{width:22px;height:22px;}
.btn-line--lg{padding:18px 30px;font-size:15px;}
.btn-line--lg .ico-line{width:26px;height:26px;}

/* ── ヘッダー ── */
.n-drop-arr .ico{width:10px;height:10px;vertical-align:1px;}
.nd-ico{display:inline-flex;align-items:center;}
.nd-ico .ico{width:16px;height:16px;color:var(--ink);}
.sm-emoji{display:inline-flex;align-items:center;justify-content:center;}
.sm-emoji .ico{width:22px;height:22px;color:var(--ink);}
.st-close .ico{width:20px;height:20px;}

/* ── フッター・記事のLINE案内 ── */
.f-tagline .ico{width:13px;height:13px;margin-right:2px;--ico-op:0;}
.flb-text{display:inline-flex;align-items:center;gap:8px;}
.flb-text .ico-line{width:20px;height:20px;color:var(--line-green);}
.flc-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--line-green);color:#fff;font-size:22px;}
.flc-icon .ico{--ico-op:0;}
.flc-close .ico{width:14px;height:14px;}
.lcb-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--line-green);color:#fff;font-size:24px !important;flex-shrink:0;}
.lcb-icon .ico{--ico-op:0;}
.lcb-btn{background:var(--line-green) !important;}

/* ── カテゴリの代替サムネ（全ページ） ── */
.act-thumb-ico .ico,.pc-thumb-ico .ico,.detail-hero-ico .ico,.ico-cat{color:#fff;--ico-face:#fff;--ico-op:.22;}
.act-thumb-ico,.pc-thumb-ico{filter:none !important;}
.act-mini-thumb .ico,.sb-art-thumb .ico{width:22px;height:22px;}

/* ════════════ トップページ ════════════ */
body.home .sw{max-width:calc(var(--cw) + var(--gutter) * 2);padding-left:var(--gutter);padding-right:var(--gutter);}
body.home .challenge,body.home .activity,body.home .top-dash,body.home .top-games,body.home .top-faq,
body.home .mid-line-cta,body.home .vision,body.home .profile,body.home .policy,body.home .digital-showcase,
body.home .supporters,body.home .sym{padding-top:var(--sec-y) !important;padding-bottom:var(--sec-y) !important;}
body.home .shiseihokoku-banner{padding-top:calc(var(--sec-y) * .7) !important;padding-bottom:calc(var(--sec-y) * .7) !important;}
body.home .sl .ico{width:14px;height:14px;}

/* ── ヒーロー ── */
.hx{height:auto !important;min-height:min(100svh,940px);padding-top:92px;display:block !important;background:#fff;overflow:hidden;position:relative;}
.hx .hero-seig{opacity:.035;}
.hx-sakura{position:absolute;inset:0;z-index:6;pointer-events:none;overflow:hidden;}
.hx-inner{position:relative;z-index:10;max-width:calc(var(--cw) + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);grid-template-areas:"head visual" "foot visual" ". visual";grid-template-rows:minmax(0,1fr) auto minmax(0,.42fr);
  column-gap:clamp(24px,4vw,72px);min-height:calc(min(100svh,940px) - 92px);}
.hx-head{grid-area:head;align-self:end;padding-bottom:28px;}
.hx .h-tag{padding-right:0 !important;margin-top:0 !important;writing-mode:horizontal-tb;}
/* ファーストビューは最初から表示（LCPのため・ふわっと出すのは下の段だけ） */
.hx .h-tag,.hx .ln span,.hx-pillars,.hx-foot,.hx-badge,.hx-photo{opacity:1 !important;animation:none !important;}
.hx-head .h-copy{margin-bottom:24px;}
.hx-pillars{display:flex;align-items:center;flex-wrap:wrap;gap:.55em;margin:0;font-size:clamp(15px,1.35vw,18px);font-weight:700 !important;letter-spacing:.08em;color:var(--ink);}
.hx-x{color:var(--red);font-size:1.45em;font-weight:400 !important;line-height:1;}
.hx-foot{grid-area:foot;align-self:start;padding-bottom:24px;}
.hx-creds{display:flex;flex-wrap:wrap;align-items:center;row-gap:8px;list-style:none;margin:0 0 30px;padding:18px 0 0;border-top:1px solid rgba(28,25,22,.12);font-size:13px;letter-spacing:.04em;color:#3E3830;}
.hx-creds li{font-weight:700 !important;white-space:nowrap;}
.hx-creds li+li::before{content:'';display:inline-block;width:1px;height:12px;background:#CFC8BF;margin:0 14px;vertical-align:-1px;}
.hx-btns{display:flex;flex-wrap:wrap;gap:12px;}
.hx-btn{padding:14px 26px;}
.hx-visual{grid-area:visual;align-self:end;display:flex;align-items:flex-end;justify-content:center;position:relative;}
.hx-stage{position:relative;width:min(100%,560px);aspect-ratio:1400 / 1643;}
.hx-photo{position:relative;z-index:3;display:block;width:100%;height:100%;object-fit:contain;object-position:bottom center;filter:drop-shadow(0 22px 30px rgba(28,25,22,.14));}
.hx-sun{position:absolute;z-index:1;width:84%;aspect-ratio:1;left:12%;top:3%;border-radius:50%;
  background:radial-gradient(circle at 34% 28%,#D63A40 0%,#C0272D 46%,#A01F24 100%);box-shadow:0 40px 80px -30px rgba(192,39,45,.55);will-change:transform;}
.hx-orbit{position:absolute;z-index:0;width:96%;aspect-ratio:1;left:7%;top:-3%;border-radius:50%;border:1px solid rgba(192,39,45,.26);will-change:transform;}
.hx-orbit::after{content:'';position:absolute;width:10px;height:10px;border-radius:50%;background:var(--gold);top:14.6%;left:85.4%;transform:translate(-50%,-50%);}
.hx-badge{position:absolute;z-index:4;left:-6%;bottom:16%;display:flex;flex-direction:column;gap:3px;padding:12px 18px;background:rgba(255,255,255,.94);border:1px solid var(--gold);box-shadow:0 10px 30px -16px rgba(28,25,22,.35);}
.hx-badge::before{content:'';position:absolute;inset:3px;border:1px solid rgba(192,144,48,.35);pointer-events:none;}
.hx-badge-k{font-size:13px;font-weight:900;letter-spacing:.08em;color:var(--ink);}
.hx-badge-v{font-family:var(--dm);font-size:11px;font-weight:500;letter-spacing:.06em;color:#6B655E;}
.hx-scroll{position:absolute;left:var(--gutter);bottom:22px;z-index:11;display:flex;align-items:center;gap:10px;font-family:var(--dm);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:#8A837A;text-decoration:none;}
.hx-scroll i{display:block;width:40px;height:1px;background:linear-gradient(90deg,var(--red),transparent);}
body.home .scroll-hint{display:none !important;}

/* ── 数字の帯 ── */
.px{background:var(--ink);color:#fff;padding:clamp(36px,5vw,56px) 0;position:relative;z-index:2;}
.px-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.px-item{padding:4px clamp(12px,2vw,28px);text-align:center;}
.px-item+.px-item{border-left:1px solid rgba(255,255,255,.12);}
.px-num{font-family:var(--dm);font-weight:700;font-size:clamp(34px,4.2vw,56px);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#fff;}
.px-num small{font-family:var(--sans);font-size:clamp(12px,1.1vw,15px);font-weight:700;color:var(--gold-lt);margin-left:4px;letter-spacing:.04em;}
.px-lab{margin-top:10px;font-size:12px;font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.66);}

/* ── 本多勝を形づくるもの（3Dリング） ── */
.sym{background:var(--kinari);position:relative;overflow:hidden;}
.sym-head{text-align:center;}
.sym-head .sl{justify-content:center;}
.sym-title{font-size:clamp(22px,3vw,34px);font-weight:900;letter-spacing:.02em;color:var(--ink);margin:0;}
.sym-title em{font-style:normal;color:var(--red);}
.sym-scene{--fw:320px;--fh:200px;--r:calc(var(--fw) * 1.2071);--tilt:-4deg;position:relative;height:calc(var(--fh) + 96px);margin-top:clamp(20px,3vw,36px);perspective:1500px;perspective-origin:50% 40%;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent 100%);}
.sym-tilt{position:absolute;left:50%;top:calc(50% - 22px);width:var(--fw);height:var(--fh);margin:calc(var(--fh) / -2) 0 0 calc(var(--fw) / -2);transform-style:preserve-3d;transform:translateZ(calc(var(--r) * -1)) rotateX(var(--tilt));transition:transform .6s cubic-bezier(.16,1,.3,1);}
.sym-ring{position:absolute;inset:0;margin:0;padding:0;list-style:none;transform-style:preserve-3d;animation:symSpin 60s linear infinite;}
.sym-scene:hover .sym-ring,.sym-scene:focus-within .sym-ring,.sym-scene.is-off .sym-ring{animation-play-state:paused;}
@keyframes symSpin{from{transform:rotateY(0deg);}to{transform:rotateY(-360deg);}}
.sym-face{position:absolute;top:0;bottom:0;left:10px;right:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px 14px;text-align:center;
  background:#fff;border:1px solid rgba(28,25,22,.08);border-top:2px solid var(--red);box-shadow:0 18px 36px -24px rgba(28,25,22,.45);
  transform:rotateY(calc(var(--i) * 360deg / var(--n))) translateZ(var(--r));-webkit-backface-visibility:hidden;backface-visibility:hidden;}
.sym-ico{font-size:44px;line-height:1;color:var(--ink);margin-bottom:6px;}
.sym-ico img{width:56px;height:56px;object-fit:contain;}
.sym-k{font-size:19px;font-weight:900;letter-spacing:.04em;color:var(--ink);}
.sym-s{font-size:12px;font-weight:500;letter-spacing:.04em;color:#6B655E;}

/* ── 直近の採択実績（提起→予算化） ── */
.ach2 .ch-intro{margin-bottom:0;}
.ach2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(32px,4vw,48px);}
.ach2-card{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(28,25,22,.1);border-radius:8px;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;}
.ach2-card:hover{box-shadow:0 24px 44px -28px rgba(28,25,22,.5);}
.ach2-img{aspect-ratio:16 / 9;overflow:hidden;background:var(--kinari);}
.ach2-img img{display:block;width:100%;height:100%;object-fit:cover;}
.ach2-body{display:flex;flex-direction:column;flex:1;padding:24px 24px 26px;}
.ach2-body h3{font-size:18px;font-weight:900;line-height:1.45;color:var(--ink);margin:0 0 16px;}
.ach2-flow{position:relative;list-style:none;margin:0 0 16px;padding:0 0 0 22px;}
.ach2-flow::before{content:'';position:absolute;left:5px;top:9px;bottom:16px;width:2px;background:linear-gradient(var(--gray1),var(--red));}
.ach2-flow li{position:relative;display:flex;flex-direction:column;gap:2px;padding:0 0 12px;}
.ach2-flow li:last-child{padding-bottom:0;}
.ach2-flow li::before{content:'';position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid #BDB5AA;box-sizing:border-box;}
.ach2-flow li.is-done::before{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px rgba(192,39,45,.14);}
.ach2-k{font-size:11px;font-weight:800;letter-spacing:.14em;color:#8A837A;}
.ach2-flow li.is-done .ach2-k{color:var(--red);}
.ach2-v{font-size:13px;font-weight:700;color:var(--ink);}
.ach2-txt{flex:1;margin:0 0 20px !important;font-size:13px;line-height:1.85;color:#3E3830;}
.ach2-amt{display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:1px solid var(--gray1);}
.ach2-num{font-family:var(--dm);font-weight:700;font-size:clamp(30px,3vw,40px);line-height:1;letter-spacing:-.01em;color:var(--red);font-variant-numeric:tabular-nums;}
.ach2-num small{font-family:var(--sans);font-size:14px;font-weight:800;color:var(--ink);margin-left:4px;}
.ach2-name{font-size:11px;color:#6B655E;line-height:1.6;}
.ach2-total{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px 32px;margin-top:clamp(20px,3vw,32px);padding:clamp(24px,3vw,36px) clamp(24px,4vw,48px);background:var(--ink);border-radius:8px;}
.ach2-total p{margin:0;}
.ach2-total-k{font-size:12px;font-weight:700 !important;letter-spacing:.1em;color:rgba(255,255,255,.7) !important;}
.ach2-total-v{font-family:var(--dm);font-weight:700;font-size:clamp(40px,5vw,64px);line-height:1.1;color:#fff !important;font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
.ach2-total-v small{font-family:var(--sans);font-size:18px;font-weight:800;margin-left:6px;color:var(--gold-lt);}
.ach2-total-yen{font-family:var(--dm);font-size:12px;color:rgba(255,255,255,.55) !important;letter-spacing:.06em;}
.ach2-report{display:inline-flex;align-items:center;gap:8px;padding:15px 26px;background:var(--gold);color:var(--ink) !important;font-size:13px;font-weight:800;letter-spacing:.04em;border-radius:40px;text-decoration:none;transition:background .2s;}
.ach2-report:hover{background:var(--gold-lt);}
.ach2-report .ico{width:18px;height:18px;--ico-face:#fff;--ico-op:.5;}
.ach2-note{max-width:880px;margin:16px 0 0 !important;font-size:12px;line-height:1.85;color:#6B655E;}

/* ── 最新の活動 ── */
.pc-read-time .ico{margin-right:3px;width:13px;height:13px;}
.act-more,.btn-o{display:inline-flex;align-items:center;}

/* ── ダッシュボード・市政報告・ゲーム・Q&A ── */
.td-card-ico .ico{width:26px;height:26px;color:#fff;--ico-face:var(--red);--ico-op:.7;}
.td-cta-btn{display:inline-flex !important;align-items:center;gap:8px;}
.td-cta-btn .ico:first-child{width:18px;height:18px;--ico-face:var(--red);--ico-op:.6;}
.shb-label{display:inline-flex !important;align-items:center;gap:10px;}
.shb-new{display:inline-block;padding:3px 9px;background:var(--red);color:#fff;font-family:var(--dm);font-size:10px;font-weight:700;letter-spacing:.14em;border-radius:2px;}
.shb-btn{display:inline-flex !important;align-items:center;}
.tg-ico .ico{width:64px;height:64px;color:#fff;--ico-face:#FFD700;--ico-op:.55;}
.tg-ico img{width:72px;height:72px;object-fit:contain;image-rendering:pixelated;}
.tg-chip{display:inline-flex !important;align-items:center;gap:5px;}
.tg-chip .ico{width:13px;height:13px;--ico-face:#FFD700;--ico-op:.5;}
.tg-pixel-badge,.tg-play-btn{display:inline-flex !important;align-items:center;gap:6px;}
.tg-pixel-badge .ico,.tg-play-btn .ico{width:12px;height:12px;--ico-op:0;}
.tg-more,.tf-more,.tf-cta-btn{display:inline-flex !important;align-items:center;}
.tf-q-arr{display:inline-flex;}
.tf-q-arr .ico{width:16px;height:16px;}

/* ── LINE（トップの常設はここだけ） ── */
body.home .mid-line-cta.mlc2{background:var(--kinari) !important;text-align:left;}
.mlc2-inner{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(28px,4vw,52px) clamp(24px,4vw,56px);background:#fff;border-radius:8px;border:1px solid rgba(28,25,22,.08);position:relative;overflow:hidden;}
.mlc2-inner::after{content:'';position:absolute;right:-90px;top:-90px;width:240px;height:240px;border-radius:50%;background:var(--line-green);opacity:.08;pointer-events:none;}
.mlc2-eyebrow{margin:0 0 10px !important;font-size:12px;font-weight:700 !important;letter-spacing:.16em;color:var(--red) !important;}
.mlc2-title{margin:0 0 14px;font-size:clamp(24px,3vw,34px);font-weight:900;color:var(--ink) !important;letter-spacing:.02em;}
.mlc2-sub{margin:0 0 20px !important;font-size:14px;line-height:1.9;color:#3E3830 !important;}
.mlc2-points{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.mlc2-points li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700 !important;color:var(--ink) !important;}
.mlc2-points .ico{width:20px;height:20px;color:var(--ink);--ico-face:var(--line-green);--ico-op:.35;}
.mlc2-act{display:flex;flex-direction:column;align-items:stretch;gap:12px;position:relative;z-index:1;}
.mlc2-note{margin:0 !important;font-size:11px;line-height:1.7;color:#6B655E !important;text-align:center;}

/* ── ビジョン（明朝体＋赤い丸の視差） ── */
body.home .vision{background:var(--off);}
body.home .activity{background:var(--off);}
body.home .activity .act-featured,body.home .activity .act-card,body.home .activity .act-mini{background:#fff;}
.v-sun{position:absolute;right:-6vw;top:8%;width:min(44vw,560px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#D63A40,#C0272D 50%,#A01F24);opacity:.07;pointer-events:none;z-index:0;will-change:transform;}
.vision .v-big{font-family:var(--mincho);font-weight:800 !important;font-size:clamp(30px,3.6vw,50px);letter-spacing:.03em;line-height:1.5;}
.vision .v-big .sub-en{font-family:var(--dm);}
.v-sakura-deco{display:none !important;}

/* ── プロフィール ── */
.hb-ico .ico{width:28px;height:28px;color:var(--ink);}
.prof-motto .motto-k{display:inline-block;font-family:var(--mincho);font-size:clamp(26px,3vw,34px);font-weight:800 !important;letter-spacing:.32em;line-height:1.2;vertical-align:middle;}
.prof-motto .motto-seal{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-left:6px;vertical-align:middle;background:var(--red);font-family:var(--mincho);font-size:17px;font-weight:800;line-height:1;border-radius:3px;transform:rotate(-4deg);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35);}
.hb-card .ico-arrow{--ico-op:0;}

/* ── 6つの重点政策 ── */
.pol-ico{color:var(--ink);}
.pol-ico .ico{width:44px;height:44px;}
.pol-ico img{width:64px;height:64px;object-fit:contain;}
.pol-card{transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .3s;}
.pol-more{display:inline-flex !important;align-items:center;}

/* ── デジタル ── */
.ds-ico .ico{width:32px;height:32px;color:#fff;--ico-face:var(--red);--ico-op:.6;}
.ds-link{display:inline-flex !important;align-items:center;}

/* ── サポーター登録（メール） ── */
.sf-msg .ico{width:16px;height:16px;margin-right:6px;--ico-op:0;}
.sf-btn{display:inline-flex;align-items:center;justify-content:center;}

/* ── 浮いたLINEボタン ── */
body.home .float-line-btn{animation:none;background:var(--line-green);padding:12px 18px 12px 14px;gap:8px;}
.float-line-btn .ico-line{width:24px;height:24px;}

/* ── レスポンシブ ── */
@media (max-width:1024px){
  .hx-inner{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);}
  .hx-creds{font-size:12px;}
  .hx-creds li+li::before{margin:0 10px;}
  .ach2-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ach2-card:last-child{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .ach2-card:last-child .ach2-img{aspect-ratio:auto;height:100%;}
  body.home .float-line-btn{right:auto;left:16px;bottom:16px;}
}
@media (max-width:1366px){
  .hx-creds{font-size:12px;letter-spacing:.02em;}
  .hx-creds li+li::before{margin:0 10px;}
}
@media (max-width:900px){
  .hx{min-height:0;padding-top:76px;}
  .hx-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "visual" "foot";grid-template-rows:auto;min-height:0;}
  .hx-head{padding:16px 0 4px;}
  .hx-head .h-copy{margin-bottom:14px;}
  .hx-visual{margin-top:8px;}
  .hx-stage{width:min(84vw,440px);}
  /* v29.56.1: スマホ・タブレットでは写真に mask と filter を一緒にかけない（Androidの一部環境で写真ごと描かれない不具合）。
     写真そのものは素のまま描き、下のぼかしは写真の上に重ねた白いグラデーション（別要素）で出す */
  .hx-photo{filter:none !important;-webkit-mask-image:none !important;mask-image:none !important;}
  .hx-stage::after{content:'';position:absolute;z-index:3;left:-6%;right:-6%;bottom:-1px;height:22%;pointer-events:none;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,.85) 70%,#fff 100%);}
  .hx-badge{left:-2%;bottom:20%;padding:9px 12px;}
  .hx-badge-k{font-size:12px;}
  .hx-foot{padding:20px 0 48px;}
  .hx-scroll{display:none;}
}
@media (max-width:767px){
  .hx-creds{margin-bottom:22px;padding-top:14px;}
  .hx-btns{flex-direction:column;}
  .hx-btns .btn-r,.hx-btns .btn-line{width:100%;justify-content:center;}
  .hx-btns .btn-r span{justify-content:center;}
  .hx-scroll{display:none;}
  .px-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px;}
  .px-item:nth-child(3){border-left:0;}
  .sym-scene{--fw:236px;--fh:176px;height:calc(var(--fh) + 80px);perspective:1100px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);}
  .sym-k{font-size:16px;}
  .sym-ico{font-size:36px;}
  .ach2-grid{grid-template-columns:minmax(0,1fr);}
  .ach2-card:last-child{grid-column:auto;display:flex;}
  .ach2-card:last-child .ach2-img{aspect-ratio:16 / 9;height:auto;}
  .ach2-total{flex-direction:column;align-items:flex-start;}
  .ach2-report{width:100%;justify-content:center;}
  .mlc2-inner{grid-template-columns:minmax(0,1fr);}
  .btn-line--lg{padding:16px 18px;font-size:14px;white-space:nowrap;}
  .v-sun{width:80vw;right:-30vw;top:4%;}
  body.home .float-line-btn{bottom:16px;right:auto;left:16px;padding:10px 14px 10px 12px;}
  .h-tag{letter-spacing:.18em;font-size:10px;}
  .hx-creds{gap:6px;border-top:0;padding-top:0;}
  .hx-creds li{font-size:12px;padding:5px 10px;border:1px solid #E0DAD2;background:#fff;}
  .hx-creds li+li::before{display:none;}
  .px-lab{font-size:11px;letter-spacing:.02em;line-height:1.5;}
}

/* ── 動きを減らす設定：すべて止めて平らに表示 ── */
@media (prefers-reduced-motion: reduce){
  .hx-sakura{display:none;}
  .hx-pillars,.hx-foot,.hx-badge{opacity:1;animation:none;}
  .sym-scene{height:auto;perspective:none;overflow:visible;-webkit-mask-image:none;mask-image:none;padding:0 var(--gutter);}
  .sym-tilt{position:static;width:auto;height:auto;margin:0 auto;max-width:var(--cw);transform:none;}
  .sym-ring{position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;animation:none;transform:none;}
  .sym-face{position:static;transform:none;margin:0;min-height:150px;}
  .hx-sun,.hx-orbit,.v-sun{transform:none !important;}
}
@media (prefers-reduced-motion: reduce) and (max-width:767px){
  .sym-ring{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sym-k{font-size:15px;}
  .sym-s{font-size:11px;}
}

/* ═══════════════════════════════════════════════════════════════
   v29.56.1（2026-10-11）
   - トップの座右の銘「至誠通天」と「勝」の印をやめ、「決めたら、すぐ動く。」（明朝）に
   - スマホのヒーロー写真：mask と filter を同じ要素にかけない（上の @media (max-width:900px) を参照）
═══════════════════════════════════════════════════════════════ */
.prof-motto .motto-k{letter-spacing:.06em !important;font-size:clamp(22px,2.6vw,30px) !important;line-height:1.4 !important;}
.prof-motto .motto-sub{display:block;font-size:11px;font-weight:400;letter-spacing:.15em;opacity:.8;margin-top:6px;}
.prof-motto .motto-txt{display:block;font-size:13px;font-weight:500;line-height:1.85;margin-top:10px;}

/* ═══════════════════════════════════════════════════════════════
   v29.56.2（2026-10-11）本人のライブプレビュー確認での直し
   1) 8つのこと：スワイプ／ドラッグで回す（慣性）・小さな矢印・目次・一覧切り替え・高さを詰める
   2) ヒーローの上の余白を詰める（写真の頭がヘッダーのすぐ下）
   3) 改行：見出しは balance＋文節、本文は pretty。1文字・句点だけの行を作らない
   4) トップのプロフィール：写真の下に「これまでの歩み」
═══════════════════════════════════════════════════════════════ */

/* ── 3) 改行の決まり（全ページ） ── */
.wb{display:inline-block;}
.wb-note{display:block;}
h1,h2,h3,h4,h5,h6,.sl,.sym-k,.sym-s,.pt,.btn-r,.btn-line,.ach2-report,.td-cta-btn,.pol-more,.pol-kw,.shb-num-lab,.td-card-trend,.hb-txt h4,.ach2-name,.ach2-k,.ach2-v,.mlc2-points li,.footer-inner a,.ft-link,.nav-links a{
  text-wrap:balance;word-break:auto-phrase;}
p,li,dd,dt,td,th,figcaption,blockquote,.ci-d,.pw-d,.motto-txt,.tf-a-inner,.tf-q{text-wrap:pretty;}
/* 短めの文章は文節で折り返す（単語の途中で切らない） */
.motto-txt,.ch-intro,.td-header p,.mlc2-sub,.hb-txt p,.ach2-txt,.pw-d,.ci-d,.tg-lead,.tg-desc,.ds-card-desc,.pol-card p,.ds-lead,.sup-body,.mlc2-note,.ach2-note{word-break:auto-phrase;}
/* 数字と単位・短いラベルは切らない */
.px-num,.td-card-num,.shb-num-val,.td-age-lbl,.ach2-num,.ach2-total-v,.ps-n,.pw-y,.ci-y{white-space:nowrap;}
.btn-r span,.pol-more,.td-cta-btn,.ach2-report{word-break:auto-phrase;}
/* 記事の抜粋は「…」で切れるので、最後の行の長さは気にしない（pretty だけ） */

/* 直近の採択実績：1文ずつ1行に収まる幅 */
.ach2 .ch-intro{max-width:46em;}

/* ── 2) ヒーロー：上の空白を詰める。写真は上にそろえ、頭がヘッダーのすぐ下に来る ── */
.hx{min-height:0 !important;padding-top:clamp(80px,6.2vw,92px);}
.hx-inner{min-height:0;grid-template-rows:minmax(0,1fr) auto minmax(0,.5fr);}
.hx-visual{align-self:start;}
.hx-head{padding-top:24px;}
@media (min-width:901px){
  .hx-stage{width:min(100%,540px);}
}
/* 肩書き：1行に収まらない幅では「IT・Web ○年」から2行目へ（無所属だけが落ちないように） */
.hx-creds{overflow:hidden;}
.hx-creds.is-2row::after{content:'';flex-basis:100%;height:0;order:1;}
.hx-creds.is-2row li.hx-cr2{order:2;}
.hx-creds.is-2row li:nth-child(4)::before{display:none;}
/* 見出し：広い画面で「。」が切れないよう上限を48pxに */
@media (min-width:901px){ .hx .h-copy--lg{font-size:clamp(24px,3.2vw,48px);} }
@media (max-width:767px){
  /* スマホはチップ型。2行（2つ＋3つ）にそろえる */
  .hx-creds.is-2row::after{display:none;}
  .hx-creds.is-2row li.hx-cr2{order:0;}
}

/* ── 1) 8つのこと：高さを詰め、ひと目で8つが分かる ── */
body.home .sym{padding-top:clamp(48px,6vw,80px) !important;padding-bottom:clamp(44px,5.5vw,72px) !important;}
.sym-title{font-size:clamp(20px,2.4vw,28px);}
.sym-head .sl{margin-bottom:6px;}
.sym-scene{--fw:236px;--fh:148px;height:calc(var(--fh) + 44px);margin-top:clamp(14px,2vw,22px);touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;outline:none;}
.sym-scene.is-drag{cursor:grabbing;}
.sym-scene:focus-visible{box-shadow:inset 0 0 0 2px rgba(192,39,45,.35);}
.sym-tilt{top:calc(50% - 8px);}
.is-motion .sym-ring{animation:none;will-change:transform;}
.sym-face{gap:3px;padding:12px 12px;}
.sym-face .sym-ico{font-size:30px;margin-bottom:4px;}
.sym-ico img{width:40px;height:40px;}
.sym-k{font-size:16px;letter-spacing:.03em;line-height:1.35;}
.sym-s{font-size:11.5px;letter-spacing:.02em;line-height:1.5;}
.sym-face.is-front{border-top-width:3px;}
.sym-arw{position:absolute;top:calc(50% - 8px);z-index:5;width:34px;height:34px;margin-top:-17px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;
  border:1px solid rgba(28,25,22,.14);background:rgba(255,255,255,.92);color:var(--ink);cursor:pointer;box-shadow:0 6px 16px -10px rgba(28,25,22,.5);transition:background .2s,color .2s,border-color .2s;}
.sym-arw svg{width:16px;height:16px;}
.sym-arw:hover,.sym-arw:focus-visible{background:var(--red);border-color:var(--red);color:#fff;}
.sym-arw--prev{left:calc(50% - var(--fw) / 2 - 190px);}
.sym-arw--next{right:calc(50% - var(--fw) / 2 - 190px);}
.sym-nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 14px;max-width:calc(var(--cw) + var(--gutter) * 2);margin:clamp(10px,1.4vw,16px) auto 0;padding:0 var(--gutter);}
.sym-index{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;list-style:none;margin:0;padding:0;counter-reset:none;}
.sym-index li{margin:0;padding:0;}
.sym-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 6px;border:1px solid #DDD5CB;border-radius:999px;background:#fff;font:inherit;font-size:12px;font-weight:700;letter-spacing:.02em;color:#3E3830;line-height:1.3;white-space:nowrap;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.sym-chip b{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#F1ECE6;font-family:var(--dm);font-size:10px;font-weight:700;color:#8A837A;}
.sym-chip:hover{border-color:var(--red);}
.sym-chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff;}
.sym-chip.is-on b{background:var(--red);color:#fff;}
.sym-view{display:inline-flex;align-items:center;gap:6px;padding:5px 4px;border:0;background:none;font:inherit;font-size:12px;font-weight:700;color:var(--red);cursor:pointer;white-space:nowrap;}
.sym-view svg{width:15px;height:15px;fill:currentColor;opacity:.85;}
.sym-view:hover span{text-decoration:underline;text-underline-offset:3px;}
/* 一覧で見る：平らな一覧（4列／スマホ2列） */
.sym.is-grid .sym-scene{height:auto;perspective:none;overflow:visible;-webkit-mask-image:none;mask-image:none;padding:0 var(--gutter);cursor:auto;touch-action:auto;}
.sym.is-grid .sym-tilt{position:static;width:auto;height:auto;margin:0 auto;max-width:var(--cw);transform:none !important;}
.sym.is-grid .sym-ring{position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;animation:none;transform:none !important;}
.sym.is-grid .sym-face{position:static;transform:none;margin:0;min-height:118px;}
.sym.is-grid .sym-arw,.sym.is-grid .sym-index{display:none;}
/* JSが動かない時・動きを減らす設定：操作部品は出さない（一覧はそのまま） */
.sym:not(.is-js) .sym-arw,.sym:not(.is-js) .sym-nav{display:none;}
@media (prefers-reduced-motion: reduce){
  .sym-arw,.sym-nav{display:none !important;}
  .sym-scene{cursor:auto;touch-action:auto;}
  .sym-face{min-height:118px;}
}
@media (max-width:1024px){
  .sym-arw--prev{left:calc(50% - var(--fw) / 2 - 116px);}
  .sym-arw--next{right:calc(50% - var(--fw) / 2 - 116px);}
}
@media (max-width:767px){
  .sym-scene{--fw:196px;--fh:132px;height:calc(var(--fh) + 36px);perspective:1000px;}
  .sym-face .sym-ico{font-size:26px;}
  .sym-k{font-size:14.5px;}
  .sym-s{font-size:11px;}
  .sym-arw{width:30px;height:30px;margin-top:-15px;}
  .sym-arw svg{width:14px;height:14px;}
  .sym-arw--prev{left:6px;}
  .sym-arw--next{right:6px;}
  .sym-nav{gap:8px;}
  .sym-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;}
  .sym-chip{width:100%;justify-content:flex-start;gap:4px;padding:4px 6px 4px 4px;font-size:11px;letter-spacing:0;}
  .sym-chip b{display:none;}
  .sym-chip{justify-content:center;padding:5px 4px;}
  .sym.is-grid .sym-ring{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .sym.is-grid .sym-face{min-height:104px;padding:12px 8px;}
}

/* ── 4) トップのプロフィール：写真の下に「これまでの歩み」 ── */
.prof-photo-box{position:relative;}
.prof-way{margin-top:56px;padding:22px 22px 6px;background:var(--off,#FAF7F3);border:1px solid rgba(28,25,22,.07);border-top:2px solid var(--red);}
.prof-way-k{margin:0 0 12px;font-size:13px;font-weight:900;letter-spacing:.14em;color:var(--ink);}
.prof-way-list{list-style:none;margin:0;padding:0;position:relative;}
.prof-way-list::before{content:'';position:absolute;left:5px;top:8px;bottom:22px;width:1px;background:rgba(192,39,45,.28);}
.prof-way-list li{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;padding:0 0 14px 22px;font-size:13px;line-height:1.7;}
.prof-way-list li::before{content:'';position:absolute;left:1px;top:.55em;width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--red);box-sizing:border-box;}
.prof-way-list li.is-now::before{background:var(--red);}
.pw-y{font-family:var(--dm);font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--red);padding-top:1px;}
.pw-d{color:var(--gray3);}
@media (max-width:1024px){
  .prof-img-col{max-width:520px;}
}
@media (max-width:767px){
  .prof-way{margin-top:48px;padding:18px 16px 4px;}
  .prof-way-list li{grid-template-columns:56px minmax(0,1fr);gap:8px;padding-left:20px;font-size:12.5px;}
}
/* 改行の仕上げ（footer.php の小さなJSが段落の最後の数文字をこれで包む） */
.nobr{white-space:nowrap;}
/* 文字の太さは親のまま（テーマ冒頭の span{font-weight:500} を打ち消す） */
.wb,.nobr,.pw-d,.pw-y{font-weight:inherit;}
.pw-y{font-weight:700;}
.tf-q-txt,.td-card-label,.td-card-sub{text-wrap:balance;word-break:auto-phrase;}
@media (max-width:900px){
  .sym-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;max-width:560px;}
  .sym-chip{width:100%;justify-content:center;}
}
/* 数字で見る岡崎市：補足の札は文章として折り返す（以前は flex で1語ずつ縦に並んでいた） */
.td-card-trend{display:inline-block;line-height:1.6;border-radius:10px;padding:4px 10px;}
@media (max-width:520px){
  .td-stats{grid-template-columns:minmax(0,1fr);}
}
/* 6つの重点政策：スマホは1列（2列だと1行7〜8文字で読みにくい） */
@media (max-width:600px){
  .pol-grid{grid-template-columns:minmax(0,1fr);}
}
/* 最近の活動の小さなカード：スマホは1列（2列だと1行6文字になる） */
@media (max-width:600px){
  .act-mini-row{grid-template-columns:minmax(0,1fr);}
}
/* トップとプロフィールの短い文章は、すべて文節で折り返す（記事本文は対象外） */
body.home p,body.home li,footer p{word-break:auto-phrase;}
/* プロフィールページは物語の長い文章が中心なので、文節で折るのは短い所だけ */
body.page-template-page-profile :is(.pf-sub,.pf-vb,.pf-lead,.pf-cap,.pf-quote,figcaption,.pf-badges span){word-break:auto-phrase;}
.mlc2-points li{text-wrap:balance;}
/* スマホ：長いリード文は自然に流す（文ごとのかたまりにすると短い行が出るため） */
@media (max-width:767px){
  .ch-intro .wb,.v-body span.wb{display:inline;}
}
/* プロフィール欄：左（写真＋歩み）と右の下端をそろえる。歩みの枠が右の高さまで伸び、項目は均等に並ぶ */
@media (min-width:961px){
  .prof-layout{align-items:stretch;}
  .prof-img-col{display:flex;flex-direction:column;}
  .prof-way{flex:1 1 auto;display:flex;flex-direction:column;padding-bottom:18px;}
  .prof-way-list{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-between;}
  .prof-way-list li{padding-bottom:0;}
  .prof-way-list::before{bottom:12px;}
}
/* 長めの本文（カードの説明・経歴文など）は文節で折らない：行の右端がガタガタになるため。1文字行は footer.php の仕上げで防ぐ */
body.home .ach2-txt,body.home .pol-card p,body.home .hb-txt p,body.home .ach2-note,body.home .act-excerpt,body.home .tf-a-inner,body.home .prof-bio,body.home .tg-desc,body.home .ds-card-desc{word-break:normal;}

/* ═══════════════════════════════════════════════════════════════════
   v29.56.3 — スマホの直し（本人のiPhone確認・2026/10/11）
   1) ヒーロー上の空白  2) 「ビジョンを見る」が数字の帯に隠れる
   3) 浮いたボタンの整理  4) 記事のLINEボタンの文字が見えない
═══════════════════════════════════════════════════════════════════ */

/* ── 1)2) ヒーロー：1列（900px以下）では、行の高さを中身どおりにする。
   v29.56.2 で全幅に入れた grid-template-rows:minmax(0,1fr) auto minmax(0,.5fr) が、
   スマホでは「見出しの行が大きく空き（見出しは行の下にそろう）／ボタンの行が足りず .hx の overflow:hidden で切れる」原因だった ── */
@media (max-width:900px){
  .hx{padding-top:60px;}                              /* ヘッダー60px のすぐ下から。告知の帯の分は body の padding が持つ */
  .hx-inner{grid-template-rows:auto auto auto !important;min-height:0 !important;}
  .hx-head{align-self:start;padding-top:18px;padding-bottom:0;}
  .hx-head .h-copy{margin-bottom:12px;}
  .hx-visual{align-self:start;margin-top:12px;}
  .hx-foot{align-self:start;padding:16px 0 40px;}
}
/* 画面の縦が短い時（Instagram・Facebook のアプリ内ブラウザなど）は写真を少し小さくし、肩書きとボタンを近づける */
@media (max-width:900px) and (max-height:760px){
  .hx-stage{width:min(72vw,360px);}
}

/* ── 3) 浮いたボタンの整理（スマホ・タブレット） ── */
@media (max-width:960px){
  /* 桜のボタンはヘッダーの三本線と同じ働き。ふだんは出さず、メニューを開いた時だけ「閉じる」として出す */
  .sakura-toggle{display:none;}
  .sakura-menu.open .sakura-toggle{display:flex;width:52px;height:52px;}
  .sakura-menu{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));}
  /* 上へ戻るは右下の角へ（桜の分だけ上にずらしていたのをやめる） */
  .pagetop{right:16px !important;bottom:calc(16px + env(safe-area-inset-bottom)) !important;width:44px !important;height:44px !important;}
}
/* トップの浮いたLINEボタン：ヒーローのLINEボタンが見えている間と、下のLINEの段・フッターが見えている間は出さない（JSで .is-show） */
body.home .float-line-btn{opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .25s,transform .25s;bottom:calc(16px + env(safe-area-inset-bottom));}
body.home .float-line-btn.is-show{opacity:1;transform:none;pointer-events:auto;}
@media (max-width:640px){
  body.home .float-line-btn{min-height:44px;padding:10px 16px 10px 12px;}
}
/* 下からの案内（Cookie・記事のLINEカード）が出ている間は、ほかの浮いたボタンを隠す（重ならない） */
body:has(.hs-cookie-banner.is-visible) :is(.float-line-btn,.pagetop,.float-line-cta),
body:has(.float-line-cta.is-visible) .pagetop,
body.menu-open .pagetop{opacity:0 !important;pointer-events:none !important;}
/* 本文の最後が浮いたボタンに隠れないよう、フッターの下に余白 */
@media (max-width:960px){
  footer{padding-bottom:calc(72px + env(safe-area-inset-bottom)) !important;}
}

/* ── 告知の帯（岡崎の予算に、あなたの声を。）：スマホでは下へ読み進める間はしまい、上へ戻すと出す ── */
@media (max-width:960px){
  .sho-koe-bar{transition:transform .25s ease,opacity .2s ease;}
  body.koe-tuck .sho-koe-bar{transform:translateY(-100%) !important;opacity:0;pointer-events:none;}
}

/* ── ヘッダーの「サポーター登録」：スマホでは赤い告知の帯とぶつからないよう、白地に赤の枠に ── */
@media (max-width:767px){
  nav#nav .n-btn{background:#fff !important;color:var(--red) !important;border:1.5px solid var(--red);padding:6px 14px;font-size:12px;}
}

/* ── Cookieの案内：スマホでは高さを抑える（最初の画面の3割近くを覆っていた） ── */
@media (max-width:720px){
  .hsc-inner{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px;}
  .hsc-title{font-size:13px;margin-bottom:2px;}
  .hsc-desc{font-size:11.5px;line-height:1.6;}
  .hsc-btn{min-height:44px;}
}

/* ── 4) 記事のLINE案内：緑の箱の中のボタンが緑の地に緑の文字で見えなかった（v29.56.0 の .lcb-btn 緑塗り） ── */
.line-cta-box .lcb-btn{background:#fff !important;color:#06A847 !important;}
.line-cta-box .lcb-btn:hover{background:#f0fff4 !important;}
.line-cta-box .lcb-icon{background:#fff;color:var(--line-green);}
/* 下へ読み進めている間は浮いたボタンを引っ込める（指を止めるか、上へ戻すと出る）。本文や札の上にボタンが居座らない */
@media (max-width:960px){
  body.is-scroll-down :is(.float-line-btn,.pagetop){opacity:0 !important;transform:translateY(16px) !important;pointer-events:none !important;}
  body.is-scroll-down .float-line-cta.is-visible{transform:translateY(140%);opacity:0;pointer-events:none;}
  .pagetop{transition:opacity .25s,transform .25s !important;}
}
/* 記事・一覧のLINEカード（下から出る）：閉じる×が小さく角に重なっていた → 押しやすい大きさに */
@media (max-width:768px){
  .flc-close{top:-10px !important;right:-6px !important;width:32px !important;height:32px !important;background:#1C1916 !important;border:2px solid #fff !important;box-shadow:0 2px 8px rgba(0,0,0,.25);}
  .flc-close .ico{width:12px;height:12px;}
}
/* メニューの項目アイコンが暗い地に暗い色で見えなかった → 白に */
.sm-emoji{color:rgba(255,255,255,.88);}
.sm-emoji .ico{width:24px;height:24px;color:rgba(255,255,255,.88);--ico-face:rgba(255,255,255,.88);--ico-op:.18;}
/* Cookieの案内：スマホでは見出しを省いて、説明とボタンだけに（高さ約176px → 約140px） */
@media (max-width:720px){
  .hsc-title{display:none;}
}
/* ── 改行（スマホで見つけた所） ── */
.detail-share .share-btn{white-space:nowrap;}           /* 「LINE／で送／る」と3行になっていた */
/* ブログ一覧の絞り込み：スマホでは横に1列で流す（3段になり「議会活動」だけが最後の段に1つ残っていた・最初の画面も詰まる） */
@media (max-width:600px){
  .filter-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-20px;padding-right:20px;padding-bottom:4px;}
  .filter-tabs::-webkit-scrollbar{display:none;}
  .filter-tabs>*{flex:0 0 auto;white-space:nowrap;}
}
/* プロフィールの所属団体の札：スマホは2つずつの段に（幅によって3・2・1と並び、最後の段に1つだけ残っていた） */
@media (max-width:767px){
  .pf-stg .pf-orgs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* 記事下の関連記事の題名（20文字＋…で切ってある）：2行目が「大…」のように1文字にならないよう、行の長さをそろえる */
.prb-title-text{display:block;text-wrap:balance;}

/* ═══════════════════════════════════════════════════════════════════
   v29.56.4 — 記事などの本文の折り返しを元の自然な形に（本人のiPhone確認・2026/10/11）
   v29.56.2〜3 の改行対策（text-wrap:pretty／文節の折り返し／最後の5文字をつなぐJS）が
   長い本文の段落にも効き、iPhone（Safari）で行が早めに折り返して右端に1〜4文字分の空きが出ていた。
   本文の段落・引用・リスト：普通の折り返し＋禁則は厳しめ。行末の句読点のぶら下がりは許す。
   見出し・ボタン・短いラベル・カードの題は今までの対策のまま。
═══════════════════════════════════════════════════════════════════ */
:is(.detail-body,.council-body,.pf-body,body.page-template-default:not(.home) .sw) :is(p,li,dd,blockquote,figcaption):not(:is(aside,.line-cta-box,.pfb-q,td,th) *):not(.pf-sub,.pf-vb,.pf-lead,.pf-cap,.pf-quote,.pf-pull){
  text-wrap:wrap;text-wrap-style:auto;word-break:normal;line-break:strict;overflow-wrap:anywhere;hanging-punctuation:allow-end;
}
/* 本文の中の文節のかたまりは、ふつうの文字として流す */
:is(.detail-body,.council-body,.pf-body) .wb{display:inline;}
/* 本文の左右の余白をそろえる（中身の右だけが空かないように、幅は親いっぱい） */
.detail-body,.council-body{max-width:none;margin-left:0;margin-right:0;}
.pfb-fallback{line-break:strict;overflow-wrap:anywhere;hanging-punctuation:allow-end;}

/* v29.57.0 ブログ一覧と回遊 */
/* ─ 一覧 /activity/（home.php）・カテゴリー一覧（archive.php）・トップのブログ欄（front-page.php #activity）・記事の下（single.php）で共通。
     ふわっと出す仕組み（.rv）は使わない。押す所は44px以上。赤はテーマの色に使わない ─ */
.blg-page,.blg-top,.blg-after{--blg-ink:#1A1A1A;--blg-g1:#E8E6E1;--blg-g2:#7A756E;--blg-g3:#4F4A44;--blg-bg2:#F6F5F3;--blg-r:12px;color:var(--blg-ink);}
.blg-page a,.blg-top a,.blg-after a{cursor:pointer;color:inherit;text-decoration:none;}
.blg-page .ico,.blg-top .ico,.blg-after .ico{--ico-face:currentColor;}
.blg-nb{display:inline-block;}
.blg-page .nw,.blg-top .nw,.blg-after .nw{white-space:nowrap;}
.blg-page span,.blg-top span,.blg-after span{font-weight:inherit;}
/* 改行の決まり（v29.56.2）：見出し・題名は balance＋文節、説明は pretty＋文節 */
.blg-h1,.blg-h2,.blg-h3,.blg-t,.blg-top-t,.blg-tn,.blg-sn,.blg-tpick-t,.blg-ln-t,.blg-say-t,.blg-nx-l{text-wrap:balance;word-break:auto-phrase;}
.blg-lead,.blg-s,.blg-ln-d{text-wrap:pretty;word-break:auto-phrase;}

/* ページの枠 */
.blg-page{padding:80px 0 72px;background:#fff;}
.blg-page .sw{max-width:calc(1200px + clamp(16px,5vw,64px) * 2);padding-left:clamp(16px,5vw,64px);padding-right:clamp(16px,5vw,64px);}
.blg-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:16px 0 0;font-size:12px;color:var(--blg-g2);}
.blg-crumb a{display:inline-flex;align-items:center;min-height:32px;}
.blg-crumb a:hover{color:var(--red);}
.blg-crumb .ico{width:11px;height:11px;}
.blg-head{padding:10px 0 20px;}
.blg-head .sl{margin-bottom:6px;}
.blg-h1{font-size:30px;font-weight:900;line-height:1.3;margin:0 0 8px;letter-spacing:.02em;}
.blg-lead{color:var(--blg-g3);font-size:14px;line-height:1.8;}
@media(min-width:900px){.blg-head{padding:24px 0 28px;}.blg-h1{font-size:40px;}.blg-lead{font-size:15px;}}

/* 検索 */
.blg-search{display:flex;align-items:center;gap:8px;max-width:640px;height:56px;padding:0 6px 0 18px;border:1.5px solid var(--blg-ink);border-radius:99px;background:#fff;}
.blg-search>.ico{width:20px;height:20px;color:var(--blg-g3);--ico-op:0;}
.blg-search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font:inherit;font-size:16px;color:var(--blg-ink);}
.blg-search input::-webkit-search-cancel-button{display:none;}
.blg-search:focus-within{box-shadow:0 0 0 3px rgba(26,26,26,.12);}
.blg-search button{height:44px;min-width:72px;padding:0 18px;border:0;border-radius:99px;background:var(--blg-ink);color:#fff;font:inherit;font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer;}
.blg-kw{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:13px;}
.blg-kwl{width:100%;font-size:12px;color:var(--blg-g2);}
.blg-kw a{position:relative;display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;border-radius:99px;background:var(--blg-bg2);}
.blg-kw a::after{content:"";position:absolute;inset:-6px -2px;}
.blg-kw a:hover{background:#ECEAE6;}
@media(min-width:600px){.blg-kwl{width:auto;margin-right:4px;}}

/* 段と見出し */
.blg-blk{margin-top:44px;}
@media(min-width:900px){.blg-blk{margin-top:64px;}}
.blg-blk--first{margin-top:12px;}
.blg-hrow{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;column-gap:12px;row-gap:2px;margin-bottom:16px;}
.blg-hrow .blg-h2{margin-bottom:0;}
.blg-h2{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-size:19px;font-weight:900;line-height:1.4;}
.blg-h2>.ico{width:22px;height:22px;color:var(--red);--ico-face:var(--red);}
.blg-h3{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:15px;font-weight:900;line-height:1.4;}
.blg-h3>.ico{width:18px;height:18px;color:var(--red);--ico-face:var(--red);}
.blg-note{font-size:12px;color:var(--blg-g2);white-space:nowrap;}
@media(min-width:900px){.blg-h2{font-size:22px;margin-bottom:18px;}}

/* 目的別の入口（タイル） */
.blg-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.blg-tile{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-height:64px;padding:12px;border:1px solid var(--blg-g1);border-radius:var(--blg-r);background:#fff;transition:border-color .2s;}
.blg-ti{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--c) 10%,#fff);color:var(--c);}
.blg-ti .ico{width:22px;height:22px;--ico-face:var(--c);}
.blg-tn{font-size:14px;font-weight:700;line-height:1.35;}
.blg-tc{font-size:12px;line-height:1.3;color:var(--blg-g2);}
.blg-tile:hover,.blg-tile.is-on{border-color:var(--c);}
.blg-tile.is-on{box-shadow:inset 0 0 0 1px var(--c);}
@media(min-width:600px){.blg-tiles{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:900px){.blg-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;}.blg-tile{grid-template-columns:1fr;grid-template-rows:auto;justify-items:start;row-gap:6px;padding:16px;}.blg-ti{grid-row:auto;}}

/* カード1枚（基本は横長の行：写真112px＋文字） */
.blg-c{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:start;min-height:96px;padding:12px 0;border-bottom:1px solid var(--blg-g1);}
.blg-th{position:relative;display:block;}
.blg-im{display:block;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--blg-bg2);}
.blg-im img{display:block;width:100%;height:100%;object-fit:cover;}
.blg-im--ico{display:grid;place-items:center;background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c);}
.blg-im--ico .ico{width:40%;height:40%;max-width:56px;max-height:56px;--ico-face:var(--c);}
.blg-b{display:flex;flex-direction:column;gap:4px;min-width:0;}
.blg-m{display:flex;flex-wrap:nowrap;align-items:center;column-gap:8px;overflow:hidden;font-size:11.5px;line-height:1.6;color:var(--blg-g2);}
.blg-lab{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:12px;font-weight:700;color:var(--blg-ink);white-space:nowrap;}
.blg-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:2px;background:var(--c);}
.blg-mi{display:inline-flex;align-items:center;gap:3px;flex:none;white-space:nowrap;font-family:var(--dm),var(--sans);}
.blg-mi .ico{width:13px;height:13px;--ico-op:.15;}
.blg-upd{color:#2F6596;}
.blg-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:14px;font-weight:700;line-height:1.55;}
.blg-s{display:none;}
.blg-c:hover .blg-t{color:var(--red);}
.blg-c:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:8px;}
.blg-rk{position:absolute;left:-6px;top:-6px;z-index:2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blg-ink);color:#fff;box-shadow:0 0 0 2px #fff;font:700 13px/1 var(--dm);}
.blg-rank>.blg-c:first-child .blg-rk,.blg-list--nodate>.blg-c:first-child .blg-rk{background:var(--red);}
.blg-rank .blg-dt,.blg-list--nodate .blg-dt,.blg-rel .blg-dt{display:none;}
.blg-list>.blg-c:first-child,.blg-rank>.blg-c:first-child,.blg-grid>.blg-c:first-child,.blg-rel>.blg-c:first-child{padding-top:0;}

/* よく読まれている（一覧）：スマホは6行、PCは1位を大きく＋2〜6位 */
@media(min-width:900px){
  .blg-rank{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:32px;align-items:start;}
  .blg-rank>.blg-c{grid-template-columns:132px minmax(0,1fr);min-height:0;}
  .blg-rank>.blg-c:nth-child(2){padding-top:0;}
  .blg-rank>.blg-c.is-big{grid-row:1 / span 5;display:flex;flex-direction:column;gap:14px;padding:0;border:0;}
  .blg-rank>.blg-c.is-big .blg-rk{left:-8px;top:-8px;width:36px;height:36px;font-size:16px;box-shadow:0 0 0 3px #fff;}
  .blg-c.is-big .blg-im{border-radius:var(--blg-r);}
  .blg-c.is-big .blg-t{font-size:20px;line-height:1.5;}
  .blg-c.is-big .blg-s{display:-webkit-box;}
  .blg-rank>.blg-c.is-big .blg-dt{display:inline-flex;}
}

/* 新着（一覧）：スマホは横長の行、PCは3列 */
@media(min-width:900px){
  .blg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;}
  .blg-grid>.blg-c{display:flex;flex-direction:column;gap:12px;padding:0;border:0;min-height:0;}
  .blg-grid .blg-im{border-radius:var(--blg-r);}
  .blg-grid .blg-t{font-size:16px;-webkit-line-clamp:4;}
}
.blg-s{-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;line-height:1.75;color:var(--blg-g3);}
@media(min-width:900px){.blg-grid .blg-s{display:-webkit-box;}}

/* 並べ方（PCだけ）とテーマの札 */
.blg-sort{display:none;padding:3px;border-radius:99px;background:var(--blg-bg2);}
.blg-sort a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:99px;font-size:12px;color:var(--blg-g3);white-space:nowrap;}
.blg-sort a.is-on{background:#fff;color:var(--blg-ink);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.08);}
@media(min-width:900px){.blg-sort{display:inline-flex;}}
.blg-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * clamp(16px,5vw,64px)) 18px;padding:0 clamp(16px,5vw,64px) 2px;-webkit-mask-image:linear-gradient(to right,#000 84%,transparent);mask-image:linear-gradient(to right,#000 84%,transparent);}
.blg-chips::-webkit-scrollbar{display:none;}
.blg-chips a{display:inline-flex;align-items:center;gap:6px;flex:none;height:44px;padding:0 14px;border:1px solid var(--blg-g1);border-radius:99px;background:#fff;font-size:13px;white-space:nowrap;}
.blg-chips a>span{font:500 11px/1 var(--dm);color:var(--blg-g2);}
.blg-chips a:hover{border-color:var(--blg-ink);}
.blg-chips a.is-on{background:var(--blg-ink);border-color:var(--blg-ink);color:#fff;}
.blg-chips a.is-on>span{color:#bbb;}
@media(min-width:900px){.blg-chips{flex-wrap:wrap;overflow:visible;margin:0 0 24px;padding:0;-webkit-mask-image:none;mask-image:none;}}

/* もっと見る・ページ送り */
.blg-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:400px;height:52px;margin:28px auto 0;border:1.5px solid var(--blg-ink);border-radius:99px;background:#fff;font-size:14px;font-weight:700;}
.blg-more[hidden]{display:none;}
.blg-more>span{font-size:12px;font-weight:500;color:var(--blg-g2);}
.blg-more .ico{width:16px;height:16px;--ico-op:0;}
.blg-more:hover{background:var(--blg-bg2);}
.blg-more.is-busy{opacity:.55;pointer-events:none;}
.blg-pager[hidden]{display:none;}
.blg-pager .pagination{padding:28px 0 0;flex-wrap:wrap;}
.blg-pager .pg-btn{width:44px;height:44px;}
.blg-empty{padding:40px 0;color:var(--blg-g3);}
.blg-empty a{color:var(--red);text-decoration:underline;}

/* 本多のおすすめ：スマホは横に流す1行のカード、PCは3列 */
.blg-picks{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(-1 * clamp(16px,5vw,64px));padding:0 clamp(16px,5vw,64px);}
.blg-picks{scroll-padding-inline:clamp(16px,5vw,64px);}
.blg-picks::-webkit-scrollbar{display:none;}
.blg-picks>.blg-c{scroll-snap-align:start;overflow:hidden;padding:14px;border:0;border-radius:var(--blg-r);background:var(--red-pale);}
.blg-picks .blg-m{display:none;}
.blg-picks .blg-t{-webkit-line-clamp:4;}
.blg-say{display:flex;align-items:flex-start;gap:8px;margin-top:2px;font-size:13px;line-height:1.6;color:var(--blg-g3);}
.blg-face{flex:none;width:26px;height:26px;border-radius:50%;object-fit:cover;object-position:50% 20%;background:#ddd;}
.blg-say-t{min-width:0;max-width:15em;}
.blg-say{min-width:0;}
@media(min-width:600px){.blg-picks{grid-auto-columns:minmax(300px,46%);}}
@media(min-width:900px){
  .blg-picks{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;overflow:visible;margin:0;padding:0;}
  .blg-picks>.blg-c{display:flex;flex-direction:column;gap:12px;padding:16px;}
  .blg-picks .blg-im{border-radius:10px;}
  .blg-picks .blg-m{display:flex;}
  .blg-picks .blg-t{font-size:16px;}
}

/* 連載・特集 */
.blg-series{display:grid;grid-template-columns:1fr;gap:10px;}
.blg-ser{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:72px;padding:14px;border:1px solid var(--blg-g1);border-radius:var(--blg-r);background:#fff;}
.blg-ser:hover{border-color:var(--blg-ink);}
.blg-si{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--blg-bg2);}
.blg-si .ico{width:22px;height:22px;}
.blg-sb{display:flex;flex-direction:column;min-width:0;}
.blg-sn{font-size:15px;font-weight:700;line-height:1.45;}
.blg-sl{overflow:hidden;font-size:12px;color:var(--blg-g2);white-space:nowrap;text-overflow:ellipsis;}
.blg-sc{display:flex;align-items:center;gap:2px;font-size:12px;color:var(--blg-g3);white-space:nowrap;}
.blg-sc .ico{width:14px;height:14px;--ico-op:0;}
@media(min-width:900px){.blg-series{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}}

/* ─ トップのブログ欄（front-page.php #activity） ─ */
body.home .activity.blg-top{background:var(--blg-bg2);}
.blg-top-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;}
.blg-top-head .sl{margin-bottom:4px;}
.blg-top-t{margin:0;font-size:24px;font-weight:900;line-height:1.4;letter-spacing:.02em;}
@media(min-width:900px){.blg-top-t{font-size:32px;}}
.blg-all{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;white-space:nowrap;}
.blg-all>span{font-size:12px;font-weight:500;color:var(--blg-g2);}
.blg-all .ico{width:16px;height:16px;--ico-op:0;}
.blg-all--pc{display:none;min-height:44px;border-bottom:2px solid var(--blg-ink);}
.blg-all--sp{display:flex;justify-content:center;height:52px;margin-top:24px;border:1.5px solid var(--blg-ink);border-radius:99px;background:#fff;}
@media(min-width:900px){.blg-all--pc{display:inline-flex;}.blg-all--sp{display:none;}}
.blg-top-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:28px;}
.blg-top-chips a{display:flex;align-items:center;justify-content:center;gap:5px;height:44px;padding:0 4px;border:1px solid var(--blg-g1);border-radius:10px;background:#fff;font-size:12.5px;font-weight:700;white-space:nowrap;}
.blg-top-chips a:hover{border-color:var(--c);}
.blg-top-chips .ico{flex:none;width:17px;height:17px;color:var(--c);--ico-face:var(--c);}
@media(min-width:900px){.blg-top-chips{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:36px;}.blg-top-chips a{height:48px;font-size:13.5px;}}
.blg-top-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:36px;}
.blg-top .blg-c{border-color:#E2E0DC;}
.blg-top-rank{display:flex;flex-direction:column;padding:20px 16px;border-radius:var(--blg-r);background:#fff;}
.blg-top-rank .blg-list{margin-bottom:16px;}
.blg-tpick{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:start;margin-top:auto;padding:14px;border-radius:10px;background:var(--red-pale);}
.blg-tpick-im{display:block;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#fff;}
.blg-tpick-im img{display:block;width:100%;height:100%;object-fit:cover;}
.blg-tpick-b{display:flex;flex-direction:column;gap:2px;min-width:0;}
.blg-tpick .blg-say{margin-top:6px;}
.blg-tpick-l{display:flex;align-items:center;gap:5px;margin-bottom:4px;font-size:12px;font-weight:700;color:var(--red);}
.blg-tpick-l .ico{width:14px;height:14px;--ico-face:var(--red);}
.blg-tpick-t{display:block;font-size:14px;font-weight:700;line-height:1.55;}
.blg-tpick:hover .blg-tpick-t{color:var(--red);}
@media(min-width:900px){
  .blg-top-cols{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;}
  .blg-tpick{grid-template-columns:184px minmax(0,1fr);gap:14px;}
  /* 左の大きい1本（16:9）と高さを近づける：順位の写真を少し大きく */
  .blg-top-rank .blg-list>.blg-c{grid-template-columns:150px minmax(0,1fr);padding:16px 0;}
  .blg-top-rank .blg-list>.blg-c:first-child{padding-top:0;}
  .blg-top-rank{padding:24px;}
  /* 新着の1本目は大きく。画像の枠は16:9に固定 */
  .blg-list--top>.blg-c.is-big{display:flex;flex-direction:column;gap:12px;padding:0 0 16px;margin-bottom:12px;}
  .blg-list--top>.blg-c.is-big .blg-im{aspect-ratio:16/9;border-radius:var(--blg-r);}
  .blg-list--top>.blg-c.is-big .blg-im img{object-fit:cover;}
}

/* ─ 記事の下（single.php） ─ */
.blg-after{margin-top:40px;}
.blg-tags{padding-bottom:24px;border-bottom:1px solid var(--blg-g1);}
.blg-tl{display:block;margin-bottom:8px;font-size:12px;color:var(--blg-g2);}
/* スマホは横に流す1行（札の最後の段が1つだけにならない） */
.blg-tags-r{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * clamp(16px,5vw,20px));padding:4px clamp(16px,5vw,20px);}
.blg-tags-r::-webkit-scrollbar{display:none;}
.blg-tags-r a{flex:none;white-space:nowrap;}
@media(min-width:700px){.blg-tags-r{flex-wrap:wrap;overflow:visible;margin:0;padding:0;}}
.blg-tags a{position:relative;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border:1px solid var(--blg-g1);border-radius:99px;font-size:13px;font-weight:700;}
.blg-tags a::after{content:"";position:absolute;inset:-4px -2px;}
.blg-tags a:hover{border-color:var(--c,var(--blg-ink));}
.blg-tags a.blg-tg{font-weight:500;color:var(--blg-g3);}
.blg-nx{margin-top:28px;}
.blg-nx-l{display:grid;grid-template-columns:auto auto minmax(0,1fr);justify-items:start;align-items:center;column-gap:6px;row-gap:6px;margin:0 0 12px;font-size:17px;font-weight:900;line-height:1.5;}
.blg-nx-l>.ico{width:20px;height:20px;color:var(--red);--ico-face:var(--red);}
.blg-nx-why{padding:2px 10px;border-radius:99px;background:var(--blg-bg2);font-size:12px;font-weight:500;color:var(--blg-g3);}
.blg-nx-card{position:relative;}
@media(max-width:699px){.blg-nx-why{grid-column:1 / -1;}}
.blg-nx-card>.blg-c{display:grid;grid-template-columns:1fr;gap:14px;padding:14px;border:1.5px solid var(--blg-ink);border-radius:14px;}
.blg-nx-card .blg-im{border-radius:10px;}
.blg-nx-card .blg-t{font-size:16px;}
.blg-nx-card .blg-s{display:-webkit-box;}
.blg-nx-ar{position:absolute;right:12px;top:12px;z-index:3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--blg-ink);color:#fff;pointer-events:none;}
.blg-nx-ar .ico{width:18px;height:18px;--ico-op:0;}
@media(min-width:700px){.blg-nx-card>.blg-c{grid-template-columns:260px minmax(0,1fr);gap:20px;padding:16px 60px 16px 16px;}}
.blg-rel{display:grid;grid-template-columns:minmax(0,1fr);}
@media(min-width:700px){
  .blg-rel{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
  .blg-rel>.blg-c{display:flex;flex-direction:column;gap:10px;padding:0;border:0;min-height:0;}
  .blg-rel .blg-im{border-radius:10px;}
}
.blg-line{margin-top:44px;padding:22px 18px;border-radius:14px;background:#EAF7EE;text-align:center;}
.blg-ln-t{margin:0;font-size:17px;font-weight:900;line-height:1.5;}
.blg-ln-d{margin:8px 0 14px;font-size:13px;color:var(--blg-g3);}
.blg-after .blg-ln-b{display:flex;align-items:center;justify-content:center;max-width:340px;height:52px;margin:0 auto;border-radius:99px;background:#06C755;color:#fff;font-size:15px;font-weight:700;}
.blg-after .blg-ln-b:hover{background:#05B34C;}
.blg-ln-n{margin-top:8px;font-size:11px;color:var(--blg-g2);}
.blg-exit{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:36px;}
.blg-exit a{display:flex;align-items:center;gap:10px;height:56px;padding:0 16px;border:1px solid var(--blg-g1);border-radius:var(--blg-r);font-size:14px;font-weight:700;}
.blg-exit a:hover{border-color:var(--blg-ink);}
.blg-exit a>.ico:first-child{width:20px;height:20px;color:var(--c,var(--blg-ink));--ico-face:var(--c,var(--blg-ink));}
.blg-exit a>.ico:last-child{width:14px;height:14px;--ico-op:0;}
.blg-ex-t{white-space:nowrap;}
.blg-ex-n{margin-left:auto;font-size:12px;font-weight:500;color:var(--blg-g2);}
@media(min-width:700px){.blg-exit{grid-template-columns:1fr 1fr;}}
/* 記事ページの LINE は記事の下の箱1か所（フッター前の帯は記事ページでは出さない） */
body.single-post .footer-line-bar{display:none;}

/* v29.57.0 デザイン点検（改行・レイアウト）
   - おすすめのカードは 900px 未満で「写真が上・文字が下」に（横並びだと文字の列が細く、題やひとことが1語ずつ折れていた）
   - トップのおすすめ1本も 600px 未満は縦に
   - 本多のひとことは幅の上限を外し、行末をそろえすぎない折り返しに
   - LINEの帯の「（無料・いつでも解除OK）」を途中で切らない */
.blg-say-t{max-width:none;text-wrap:pretty;}
@media(max-width:899px){
  .blg-picks>.blg-c{grid-template-columns:minmax(0,1fr);gap:10px;align-content:start;}
}
@media(max-width:599px){
  .blg-tpick{grid-template-columns:minmax(0,1fr);gap:10px;}
}
.flb-msg{display:block;min-width:0;}
.flb-msg .nw{white-space:nowrap;}

/* ═══════════════════════════════════════════════════════════════════
   v29.57.1 — iPhoneで文章が左に寄り、右に大きな空白を残して折り返す直し（2026/10/11）
   原因：v29.56.2〜3 の改行対策（text-wrap:pretty／word-break:auto-phrase／文節の inline-block .wb／
   最後の5〜16文字を折り返さないかたまりにするJS）が、見出し以外の段落・注記・カード本文・箇条書きにも効いていた。
   iPhoneのSafariは pretty を段落全体に効かせるため、各行が早めに折れて右に空白が残る。
   直し：2行以上になる文章は、サイト全体で普通の折り返しに。見出し・ボタン・短いラベルは今まで通り。
═══════════════════════════════════════════════════════════════════ */
html:root body :is(p,li,dd,dt,figcaption,blockquote,td,th,.ci-d,.pw-d,.motto-txt,.tf-a-inner,.tf-q,.blg-lead,.blg-s,.blg-ln-d,.blg-say-t,.td-card-sub,.td-card-trend,.sup-body,.psb-target-value,.pfb-q-text,.skc-desc,.dsh-caution>span){
  text-wrap:wrap;text-wrap-style:auto;word-break:normal;line-break:strict;overflow-wrap:anywhere;
}
/* 文節のかたまりは作らない（ふつうの文字として流す） */
.wb{display:inline;}
/* ボタン：2行になる時は語の切れ目（空白）で折る。「市政報告」などを途中で割らない */
:is(.ach2-report,.btn-r,.btn-line,.td-cta-btn,.pol-more,.ch-report-btn,.ch-line-btn) .btn-t{display:block;min-width:0;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere;}
.ach2-report,.ch-report-btn{white-space:normal;text-align:center;}
/* スマホ：プロフィールの物語の字間を少し詰める */
@media (max-width:767px){
  body.page-template-page-profile :is(.pf-lead p,.pf-body p,.pf-ch p){letter-spacing:.02em;}
}
/* 文章の中の長い「折り返さないかたまり」は折り返してよい（footer.php が9文字以上の物に付ける） */
.nobr.nobr-off{white-space:normal;}

/* ═══════════════════════════════════════════════════════════════════
   v29.57.2：iPhoneで見た指摘の直し（記事の頭の左右バランス・幅別の改行）
═══════════════════════════════════════════════════════════════════ */
/* 幅別の改行：<br class="br-sp"> はスマホ（767px以下）だけ、<br class="br-xs"> は380px以下だけ改行 */
br.br-sp,br.br-xs{display:none;}
@media (max-width:767px){ br.br-sp{display:inline;} }
@media (max-width:380px){ br.br-xs{display:inline;} }
/* 記事の頭（日付・対象の札・タグ・題・読む時間）：スマホでは中央にそろえ、左右の余白を同じにする。
   題は行の長さをそろえる（balance）ので、左に寄せると右に大きな空白が残っていたため */
@media (max-width:767px){
  body.single .detail-meta,
  body.single .detail-meta .ai-badges,
  body.single .detail-tags,
  body.single .article-meta-row{justify-content:center;}
  body.single .detail-meta{text-align:center;}
  body.single .detail-title{text-align:center;text-wrap:balance;margin-left:auto;margin-right:auto;}
  body.single .detail-tags{display:flex;flex-wrap:wrap;width:100%;}
}
/* 最後の行が「います。」のように短くならないよう、意味のかたまりを折り返さない（短い所だけに使う） */
.nwk{white-space:nowrap;}

/* ═══════════════════════════════════════
   v29.58.0 — お知らせ（アクセス解析）と記事冒頭A/Bの見た目は、functions.php の honda_sho_measure_inline_css() で HTML の中に直接書いている
   （ページのキャッシュで HTML と style.css の版がずれても崩れないように）。ここにはプライバシーポリシーの表だけ。
═══════════════════════════════════════ */
/* プライバシーポリシーの「設定を変える」 */
.pp-consent-btn{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:9px 18px;border:1.5px solid var(--red);border-radius:100px;background:#fff;color:var(--red);font:700 13px/1 var(--sans);cursor:pointer;}
.pp-consent-btn:hover{background:var(--red);color:#fff;}
.pp-table{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:14px;}
.pp-table th,.pp-table td{border:1px solid var(--line, #e6e0d8);padding:10px 12px;text-align:left;vertical-align:top;line-height:1.7;}
.pp-table th{width:8.5em;background:#faf6f1;font-weight:700;white-space:nowrap;}
@media (max-width:520px){
  .pp-table th,.pp-table td{display:block;width:auto;border-top:0;}
  .pp-table tr:first-child th{border-top:1px solid var(--line, #e6e0d8);}
  .pp-table th{padding:8px 12px 4px;}
}
.pp-sub{font-size:15px;font-weight:700;margin:18px 0 6px;}

/* ═══════════════════════════════════════════════════════════════════
   v29.59.0 — 読みやすさの直し（2026-10-12 深夜の本人指示）
   ① 数字を太く大きく ② 番号つき箇条書きの数字の見切れ ③ 箇条書き・表・題の文節での折り返し（footer.php の phrase）
   ④ 段落の余白と行間 ⑤ 表 ⑥ 記事の題を左揃え ⑦ 冒頭の箱を小さくして本文を先に
═══════════════════════════════════════════════════════════════════ */

/* ① 数字：基本の決まり（p,li,td,span… を500）で、太字の中の数字の span まで細くなっていた。数字の入れ物の中は親の太さを受け継ぐ */
.js-count,
:is(.px-num,.ach2-num,.ach2-total-v,.td-card-num,.shb-num-val,.hx-cr2,.ps-n,.pw-y,.ci-y) > span,
:is(strong,b) span:not([class]),
.detail-title :is(.dt-main,.dt-sep,.dt-sub){font-weight:inherit;}
.ach2-num{font-size:clamp(36px,3.6vw,46px);letter-spacing:-.02em;}
.ach2-num small{font-size:15px;font-weight:900;}
.ach2-name{font-size:12px;}
.ach2-yen{display:inline-block;font-family:var(--dm),var(--sans);font-weight:700;font-size:15px;color:var(--dark);letter-spacing:0;font-variant-numeric:tabular-nums;}
/* 記事の中の数字（[num]）：本文より少し大きく、太く */
.detail-body .hl-num{font-size:1.1em;font-weight:900;color:#1C1916;letter-spacing:.01em;}
@media (max-width:640px){ .detail-body .hl-num{font-size:1.08em;} }

/* ② 番号つき箇条書き：数字を本文の内側に置く（スマホの Safari で数字が画面の左端に貼りついて見切れていた）。
   自分で style を書いた箇条書き（スケジュールの表など）は触らない */
.detail-body ol:not([style]){list-style:none;counter-reset:hs-ol;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:10px;}
.detail-body ol:not([style]) > li{counter-increment:hs-ol;position:relative;padding-left:2.1em;list-style:none;}
.detail-body ol:not([style]) > li::before{content:counter(hs-ol);position:absolute;left:0;top:.28em;width:1.5em;height:1.5em;border-radius:50%;background:var(--red);color:#fff;font:700 .8em/1.5em var(--dm),var(--sans);text-align:center;font-variant-numeric:tabular-nums;}
.detail-body ol[start]:not([style]){counter-reset:none;}
/* 点の箇条書き：点と文字の間と、項目どうしの間を整える */
.detail-body ul:not([style]){margin:0 0 28px;padding:0 0 0 1.35em;gap:10px;}
.detail-body ul:not([style]) > li::marker{color:var(--red);font-size:.9em;}
.detail-body :is(ul,ol) :is(ul,ol){margin:10px 0 0;}
.detail-body :is(ul,ol):not([style]) > li{line-height:1.8;}

/* ③ 文節で折り返す要素（footer.php が .jp-ph と <wbr> を付ける）。4行までは行の長さをそろえる */
.jp-ph{word-break:keep-all !important;overflow-wrap:anywhere !important;line-break:strict;}
html:root body .jp-ph.jp-bal{text-wrap:balance !important;} /* 本文の折り返しの決まり（v29.56.4・v29.57.1）は詳細度がとても高いので !important */

/* ④ 段落の間と行間（スマホで1段落が長く見えないように、段落の間を少し広く・行間は少し詰める） */
.detail-body{line-height:1.9;}
.detail-body p{margin-bottom:1.6em;}
.detail-body h2{margin:2.6em 0 1em;line-height:1.5;}
.detail-body h3{margin:2em 0 .8em;line-height:1.5;}
@media (max-width:640px){
  .detail-body{font-size:16.5px;line-height:1.9;}
  .detail-body li{font-size:16.5px;}
  .detail-body p{margin-bottom:1.5em;}
  .detail-body h2{font-size:20px;margin:2.4em 0 .9em;padding-left:12px;}
}

/* ⑤ 表（ブロックの表）：見出しの行に色、角丸、縞、ゆったりした余白。スマホで幅が足りない時は横にスクロール */
.detail-body figure.wp-block-table{margin:24px 0 32px;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #E6DFD5;border-radius:12px;background:#fff;box-shadow:0 2px 14px rgba(28,25,22,.05);}
.detail-body figure.wp-block-table table{width:100%;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.65;font-variant-numeric:tabular-nums;}
.detail-body figure.wp-block-table :is(th,td){border:0;border-bottom:1px solid #EFE9E1;padding:12px 14px;vertical-align:top;text-align:left;font-weight:500;color:#2B2723;}
.detail-body figure.wp-block-table thead{border:0;}
.detail-body figure.wp-block-table thead th{background:#2B2723;color:#fff;font-weight:700;font-size:13.5px;letter-spacing:.04em;line-height:1.5;padding:11px 14px;vertical-align:bottom;border-bottom:0;}
.detail-body figure.wp-block-table tbody tr:nth-child(even) :is(td,th){background:#FAF7F2;}
.detail-body figure.wp-block-table tbody tr:last-child :is(td,th){border-bottom:0;}
.detail-body figure.wp-block-table tbody :is(td,th):first-child{font-weight:700;color:#1C1916;}
.detail-body figure.wp-block-table :is(th,td).is-num,
.detail-body figure.wp-block-table :is(th,td).has-text-align-right{text-align:right;white-space:nowrap;}
.detail-body figure.wp-block-table td.is-num{font-family:var(--dm),var(--sans);font-weight:700;color:#1C1916;font-size:15.5px;}
.detail-body figure.wp-block-table figcaption,.detail-body figure.wp-block-table + .wp-element-caption{font-size:12.5px;color:#6B635A;padding:8px 14px;margin:0;}
.detail-body .hs-tbl-hint{display:none;}
@media (max-width:640px){
  .detail-body figure.wp-block-table{margin:20px 0 28px;border-radius:10px;}
  .detail-body figure.wp-block-table table{font-size:14px;}
  .detail-body figure.wp-block-table :is(th,td){padding:10px 11px;}
  .detail-body figure.wp-block-table thead th{font-size:12.5px;padding:10px 11px;}
  /* 4列以上の表は横にスクロール（文字が1〜2字ずつ縦に並ばないように）。1列目は止めておく */
  .detail-body figure.wp-block-table.is-wide table{min-width:560px;}
  .detail-body figure.wp-block-table.is-wide tbody :is(td,th):first-child,
  .detail-body figure.wp-block-table.is-wide thead th:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 #EFE9E1;}
  .detail-body figure.wp-block-table.is-wide tbody tr:nth-child(odd) :is(td,th):first-child{background:#fff;}
  .detail-body figure.wp-block-table.is-wide thead th:first-child{background:#2B2723;}
  .detail-body .hs-tbl-hint{display:block;margin:-20px 0 24px;font-size:12px;color:#6B635A;text-align:right;}
}

/* ⑥ 記事の題：左揃え。「｜」の前を1つめのかたまりにして、そこで改行（区切り記号は見せない） */
body.single .detail-title{text-align:left !important;margin-left:0 !important;margin-right:0 !important;}
.detail-title .dt-main,.detail-title .dt-sub{display:block;}
.detail-title .dt-sep{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.detail-title .dt-sub{margin-top:.12em;}
@media (max-width:767px){
  body.single .detail-meta,
  body.single .detail-meta .ai-badges,
  body.single .article-meta-row{justify-content:flex-start;}
  body.single .detail-meta{text-align:left;}
}

/* ⑦ 記事の頭を短く：スマホではタグ（押せない飾り）と「〜向け」の札を隠し（札の中身は「要点を見る」の中にある）、余白を詰める。
   冒頭の箱は結論の1文＋［要点を見る］［目次を見る］だけ（開閉の見た目は functions.php の honda_sho_measure_inline_css） */
.post-summary-box--top{padding:18px 22px 18px;}
.post-summary-box--top .psb-head{margin-bottom:8px;}
.post-summary-box--top .psb-title{font-size:13px !important;letter-spacing:.06em;}
.post-summary-box--top .psb-ico{font-size:18px;}
.post-summary-box--top .psb-c1{font-weight:700;}
.post-summary-box--top .psb-crest{font-weight:500;}
.post-summary-box--top .psb-target{margin-top:4px;}
.post-summary-box--top .psb-points{margin-bottom:14px;}
@media (max-width:767px){
  body.single .detail-tags,
  body.single .detail-meta .reader-badge{display:none;}
  body.single .detail-back{padding-bottom:12px;}
  body.single .detail-meta{margin:4px 0 2px;}
  body.single .article-meta-row{margin-bottom:10px;}
  .post-summary-box--top{padding:14px 16px 14px;margin:14px 0 22px;}
  .post-summary-box--top .psb-conclusion{font-size:16px;line-height:1.7;}
}
/* 読む時間・更新日は日付の行の中（single.php） */
body.single .detail-meta .article-meta-row{margin:0;gap:6px;}
body.single .detail-title{margin-top:6px;}
/* 表のマスが細くなりすぎて1〜2字ずつ縦に並ばないように（スマホ） */
@media (max-width:640px){ .detail-body figure.wp-block-table :is(td,th){min-width:5.2em;} .detail-body figure.wp-block-table :is(td,th):last-child{min-width:7em;} }
/* 記事の頭の画像：サムネ（1200×630）と同じ形にして、左右の文字が切れないように。パソコンでは幅を抑え、題と結論を1画面目に */
body.single .detail-hero-thumb,
body.single .detail-hero-thumb-inner{aspect-ratio:40/21;max-height:none;}
@media (min-width:768px){ body.single .detail-hero-thumb{max-width:720px;margin-bottom:20px;} }
/* 記事の頭の画像の左上の分類の札は、サムネの文字（日付など）に重なるので記事ページでは出さない */
body.single .detail-hero-thumb .detail-cat{display:none;}
