/*
Theme Name: Honda Sho
Theme URI: https://honda-sho.com
Description: 本多勝 岡崎市議会議員 公式サイト カスタムテーマ
Author: Honda Sho
Version:           29.54.0
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;}
}
