  /* ===== カラーテーマ =====
     既定：青（シンボルカラー・連絡所看板と統一） */
  :root{
    --b-900:#0B2447;
    --b-800:#123A6B;
    --b-700:#1A4F92;
    --b-600:#2366B8;
    --b-500:#3A82D6;
    --b-glow:#5FA3EE;
    --mist:#EAF1FB;
    --mist-2:#DCE8F7;
    --sand:#F7F9FC;
    --sand-2:#EEF2F8;
    --ink:#161A22;
    --muted:#5C6473;
    --line:#DDE3EC;
    --accent:#E8734A;
    --accent-deep:#B8532F;
    --white:#FFFFFF;
    --shadow:0 20px 50px -20px rgba(11,36,71,.35);
    --radius:18px;
    --header-h:88px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:clip;width:100%;}
  body{margin:0;font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;color:var(--ink);background:var(--sand);line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:clip;}
  img{max-width:100%;display:block;}
  a{text-decoration:none;color:inherit;}
  h1,h2,h3,h4,p{margin:0;}
  .serif{font-family:"Shippori Mincho",serif;}
  .container{width:100%;max-width:1180px;margin:0 auto;padding:0 24px;}

  /* ---------- Header ---------- */
  header{position:sticky;top:0;z-index:100;background:rgba(247,249,252,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
  .nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:1180px;margin:0 auto;}
  .brand{display:flex;flex-direction:column;gap:1px;min-width:0;}
  .brand-name{font-size:clamp(24px,3.2vw,32px);font-weight:900;color:var(--b-900);white-space:nowrap;letter-spacing:.03em;line-height:1.25;}
  .brand-role{font-size:clamp(12px,1.4vw,14.5px);color:#4A5160;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  nav.links{display:flex;align-items:center;gap:clamp(16px,2.6vw,30px);}
  nav.links a{font-size:14px;color:var(--ink);white-space:nowrap;position:relative;padding:4px 0;}
  nav.links a:not(.nav-join)::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--b-700);transition:width .25s ease;}
  nav.links a:not(.nav-join):hover::after{width:100%;}
  /* 右上の後援会タブは控えめ（枠線のみ） */
  nav.links a.nav-join{border:1.5px solid var(--b-700);color:var(--b-700);padding:7px 18px;border-radius:999px;font-weight:700;font-size:13px;transition:background .2s ease,color .2s ease;}
  nav.links a.nav-join:hover{background:var(--b-700);color:var(--white);}
  .menu-toggle{display:none;width:40px;height:40px;border:none;background:none;cursor:pointer;padding:0;position:relative;flex-shrink:0;}
  .menu-toggle span{position:absolute;left:8px;right:8px;height:2px;background:var(--b-900);transition:all .3s ease;}
  .menu-toggle span:nth-child(1){top:14px;}.menu-toggle span:nth-child(2){top:20px;}.menu-toggle span:nth-child(3){top:26px;}
  .menu-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .menu-toggle.open span:nth-child(2){opacity:0;}
  .menu-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

  /* ---------- Hero ---------- */
  .hero{position:relative;display:grid;grid-template-columns:1.05fr .95fr;background:var(--b-700);overflow:hidden;isolation:isolate;}
  .hero-left{position:relative;overflow:hidden;}
  .hero-left .hero-bgart{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
  .blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.45;z-index:1;pointer-events:none;}
  .blob-1{width:340px;height:340px;background:var(--b-glow);top:-100px;left:-80px;animation:floatA 13s ease-in-out infinite;}
  .blob-2{width:260px;height:260px;background:var(--accent);bottom:-80px;left:20%;opacity:.25;animation:floatB 15s ease-in-out infinite;}
  @keyframes floatA{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(40px,30px) scale(1.12);}}
  @keyframes floatB{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-30px,-25px) scale(1.08);}}
  .hero-left-content{position:relative;z-index:2;padding:clamp(48px,7vw,88px) clamp(24px,6vw,72px);display:flex;flex-direction:column;justify-content:center;color:var(--white);min-height:100%;}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;letter-spacing:.04em;color:rgba(255,255,255,.95);margin-bottom:20px;opacity:0;animation:fadeUp .8s cubic-bezier(.19,1,.22,1) .1s forwards;}
  .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulseDot 2.2s ease-out infinite;}
  @keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(232,115,74,.55);}70%{box-shadow:0 0 0 10px rgba(232,115,74,0);}100%{box-shadow:0 0 0 0 rgba(232,115,74,0);}}
  .hero h1{font-size:clamp(32px,4.6vw,56px);line-height:1.45;font-weight:900;color:var(--white);margin:0 0 22px 0;opacity:0;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .22s forwards;}
  .hero h1 mark{background:linear-gradient(100deg,var(--accent-deep),#9E4626);color:var(--white);padding:2px 12px;border-radius:6px;display:inline-block;box-shadow:0 6px 18px -8px rgba(184,83,47,.7);}
  .hero p.lead{font-size:clamp(14.5px,1.45vw,16.5px);line-height:1.95;color:rgba(255,255,255,.93);max-width:480px;margin:0 0 34px 0;opacity:0;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .36s forwards;}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap;opacity:0;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .5s forwards;}
  .btn{padding:15px 30px;border-radius:999px;font-size:14px;font-weight:700;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;display:inline-flex;align-items:center;gap:8px;}
  .btn-primary{background:var(--white);color:var(--b-700);}
  .btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 26px -12px rgba(0,0,0,.35);}
  .btn-outline{border:1.5px solid rgba(255,255,255,.65);color:var(--white);}
  .btn-outline:hover{background:rgba(255,255,255,.14);transform:translateY(-3px);}
  @keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
  .stat-chip{display:flex;gap:26px;flex-wrap:wrap;margin-top:40px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18);opacity:0;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .64s forwards;}
  .stat-chip div{display:flex;flex-direction:column;}
  .stat-chip strong{font-size:24px;color:var(--white);font-weight:900;line-height:1.3;}
  .stat-chip strong small{font-size:13px;font-weight:700;margin-left:2px;}
  .stat-chip span{font-size:11.5px;color:rgba(255,255,255,.78);letter-spacing:.04em;}

  .hero-media{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--b-900),var(--b-800) 55%,var(--b-700));}
  .hm-wave{animation:waveMove 10s ease-in-out infinite;}
  .hm-wave.slow{animation-duration:16s;opacity:.55;}
  @keyframes waveMove{0%,100%{transform:translateX(0) translateY(0);}50%{transform:translateX(-3%) translateY(6px);}}
  .hm-particle{animation:twinkle 4s ease-in-out infinite;}
  @keyframes twinkle{0%,100%{opacity:.15;}50%{opacity:.85;}}
  .hero-photo-box{position:absolute;inset:0;overflow:hidden;}
  .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;animation:kenBurns 20s ease-in-out infinite alternate;}
  @keyframes kenBurns{0%{transform:scale(1);}100%{transform:scale(1.09);}}
  .hero-media-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(11,36,71,.05) 0%,rgba(11,36,71,.18) 45%,rgba(8,24,48,.7) 100%);}
  .hero-card{position:absolute;right:clamp(20px,4vw,48px);top:50%;transform:translateY(-50%);background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(14px);border-radius:16px;padding:22px 26px;color:var(--white);width:min(260px,72%);display:flex;flex-direction:column;opacity:0;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .8s forwards,cardFloat 6s ease-in-out .9s infinite;box-shadow:0 20px 50px -20px rgba(0,0,0,.5);}
  @keyframes cardFloat{0%,100%{transform:translateY(-50%);}50%{transform:translateY(calc(-50% - 10px));}}
  .hero-card-stat .num{font-size:38px;font-weight:900;line-height:1;}
  .hero-card-stat .num small{font-size:16px;font-weight:700;}
  .hero-card-stat .label{font-size:12.5px;color:rgba(255,255,255,.9);margin-top:8px;line-height:1.6;}
  .hero-card-divider{height:1px;background:rgba(255,255,255,.25);margin:16px 0;}
  .hero-card-info .place{font-size:13px;color:rgba(255,255,255,.95);font-weight:700;}
  .hero-card-info span{display:block;font-size:11.5px;color:rgba(255,255,255,.75);margin-top:2px;}
  .scroll-cue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.8);font-size:10px;letter-spacing:.14em;}
  .scroll-cue .arrow{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);animation:bounce 1.8s ease-in-out infinite;}
  @keyframes bounce{0%,100%{transform:rotate(45deg) translate(0,0);}50%{transform:rotate(45deg) translate(4px,4px);}}
  @media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}}

  /* ---------- Section basics ---------- */
  section{padding:clamp(56px,8vw,96px) 0;}
  .section-head{max-width:720px;margin:0 auto 44px auto;text-align:center;}
  .kicker{display:inline-block;font-size:12px;letter-spacing:.14em;color:var(--b-700);font-weight:700;margin-bottom:12px;}
  .section-title{font-size:clamp(24px,3.2vw,34px);font-weight:900;color:var(--b-900);line-height:1.5;}
  .section-sub{margin-top:14px;color:var(--muted);font-size:15px;}
  .reveal{opacity:1;transform:none;}
  .js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
  .js .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- 16年 band ---------- */
  .years{background:var(--b-900);color:var(--white);padding:clamp(44px,6vw,72px) 0;}
  .years-grid{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,64px);align-items:center;}
  .years-big{font-family:"Shippori Mincho",serif;font-weight:800;font-size:clamp(84px,12vw,150px);line-height:1;color:var(--white);letter-spacing:-.02em;}
  .years-big small{font-size:.3em;font-family:"Noto Sans JP",sans-serif;font-weight:900;margin-left:6px;}
  .years-text h2{font-size:clamp(20px,2.6vw,28px);font-weight:900;margin-bottom:12px;line-height:1.55;}
  .years-text p{font-size:15px;color:rgba(255,255,255,.85);line-height:2;}
  .years-text p strong{color:var(--white);background:linear-gradient(transparent 62%,rgba(232,115,74,.55) 62%);}
  .timeline{display:flex;margin-top:28px;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;gap:0;flex-wrap:wrap;}
  .timeline div{flex:1 1 120px;padding:6px 14px 6px 0;}
  .timeline b{display:block;font-size:13px;color:var(--b-glow);}
  .timeline span{font-size:13px;color:rgba(255,255,255,.85);}

  /* ---------- Profile / greeting ---------- */
  .profile{background:var(--white);}
  .profile-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:start;}
  .greeting-badge{display:inline-flex;align-items:center;gap:10px;background:var(--mist);color:var(--b-800);font-size:12px;font-weight:700;padding:8px 16px;border-radius:999px;margin-bottom:18px;}
  .greeting h2{font-size:clamp(20px,2.4vw,25px);color:var(--b-900);margin-bottom:18px;font-weight:700;}
  .greeting p{color:#2E3440;font-size:15.5px;line-height:2.05;}
  .profile-card{background:var(--sand-2);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;}
  .profile-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:12px 16px;font-size:14px;}
  .profile-card dt{color:var(--muted);white-space:nowrap;}
  .profile-card dd{margin:0;color:var(--ink);font-weight:500;}
  .profile-card .name-line{grid-column:1/-1;padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid var(--line);}
  .profile-card .name-line .kanji{font-size:22px;font-weight:900;color:var(--b-900);}
  .profile-card .name-line .kana{font-size:12px;color:var(--muted);margin-left:8px;}
  .career{margin-top:40px;}
  .career h3{font-size:18px;color:var(--b-900);font-weight:900;margin-bottom:16px;display:flex;align-items:center;gap:10px;}
  .career h3::before{content:"";width:4px;height:20px;background:var(--b-700);border-radius:2px;}
  .career ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--mist-2);}
  .career li{position:relative;padding:0 0 16px 22px;font-size:14.5px;}
  .career li::before{content:"";position:absolute;left:-7px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--white);border:3px solid var(--b-600);}
  .career li b{display:inline-block;min-width:9.5em;color:var(--b-800);font-weight:700;}
  .todo{background:#FFF7E8;border:1px dashed #E0A64A;color:#7A5210;border-radius:10px;padding:10px 14px;font-size:13px;margin-top:6px;}

  /* ---------- 命をつなぐ四日市（政策の根幹） ---------- */
  .roots{background:var(--sand);}
  .tree{position:relative;max-width:1060px;margin:0 auto;}
  .tree-root{position:relative;z-index:2;margin:0 auto;width:min(520px,100%);background:linear-gradient(135deg,var(--b-800),var(--b-600));color:var(--white);text-align:center;border-radius:22px;padding:30px 26px;box-shadow:var(--shadow);}
  .tree-root .small{font-size:12.5px;letter-spacing:.14em;opacity:.85;}
  .tree-root .big{font-family:"Shippori Mincho",serif;font-weight:800;font-size:clamp(30px,4.4vw,44px);line-height:1.35;margin:6px 0 8px;}
  .tree-root p{font-size:14px;opacity:.92;}
  .tree-trunk{width:3px;height:40px;background:var(--b-600);margin:0 auto;}
  .tree-branches{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding-top:26px;}
  .tree-branches::before{content:"";position:absolute;top:0;left:8%;right:8%;height:3px;background:var(--b-600);border-radius:2px;}
  .leaf{position:relative;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px 16px 14px;display:flex;gap:12px;align-items:flex-start;}
  .leaf:nth-child(n+4)::before{display:none;}
  .leaf::before{content:"";position:absolute;top:-26px;left:50%;width:2px;height:26px;background:var(--mist-2);}
  .leaf .ic{flex:0 0 36px;height:36px;border-radius:50%;background:var(--mist);display:flex;align-items:center;justify-content:center;color:var(--b-700);font-weight:900;font-size:15px;}
  .leaf h4{font-size:15.5px;color:var(--b-900);font-weight:700;line-height:1.5;}
  .leaf p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:2px;}
  .roots-message{margin:36px auto 0;max-width:820px;text-align:center;font-size:clamp(16px,1.9vw,19px);line-height:2;color:var(--b-900);font-weight:700;}
  .roots-message em{font-style:normal;background:linear-gradient(transparent 60%,var(--mist-2) 60%);}

  /* ---------- Policies (5本柱) ---------- */
  .policy{background:var(--white);}
  .policy-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px;}
  .policy-card{grid-column:span 2;background:var(--sand);border:1px solid var(--line);border-radius:var(--radius);padding:32px 26px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;display:flex;flex-direction:column;}
  .policy-card:nth-child(4){grid-column:2 / span 2;}
  .policy-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent;background:var(--white);}
  .policy-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
  .policy-icon{flex:0 0 58px;height:58px;border-radius:50%;background:var(--mist);display:flex;align-items:center;justify-content:center;transition:transform .3s ease;}
  .policy-card:hover .policy-icon{transform:scale(1.08) rotate(-4deg);}
  .policy-icon svg{width:26px;height:26px;stroke:var(--b-700);}
  .policy-num{font-size:12px;color:var(--b-600);font-weight:700;letter-spacing:.1em;}
  .policy-card h3{font-size:clamp(18px,1.8vw,20px);font-weight:900;color:var(--b-900);line-height:1.5;}
  .policy-card p{font-size:15.5px;color:#3A4150;line-height:1.95;}
  .policy-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
  .policy-tags span{font-size:12.5px;background:var(--mist);color:var(--b-800);padding:4px 10px;border-radius:999px;font-weight:500;}
  .policy-card.new{border:2px solid var(--b-600);}
  .policy-card.new .policy-num::after{content:"NEW";margin-left:8px;background:var(--accent);color:#fff;font-size:10px;padding:2px 7px;border-radius:999px;letter-spacing:.06em;}

  /* ---------- Activity 16年 ---------- */
  .activity{background:var(--sand);}
  .act-summary{display:flex;justify-content:center;gap:clamp(18px,4vw,48px);flex-wrap:wrap;margin-bottom:28px;}
  .act-summary div{text-align:center;}
  .act-summary strong{display:block;font-size:clamp(30px,4vw,42px);font-weight:900;color:var(--b-700);line-height:1.1;}
  .act-summary span{font-size:12.5px;color:var(--muted);}
  .filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:26px;}
  .filters button{font:inherit;font-size:13.5px;border:1.5px solid var(--line);background:var(--white);color:var(--ink);padding:7px 16px;border-radius:999px;cursor:pointer;transition:all .2s ease;}
  .filters button:hover{border-color:var(--b-600);}
  .filters button.on{background:var(--b-700);border-color:var(--b-700);color:var(--white);}
  .year-group{background:var(--white);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden;}
  .year-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:16px 22px;font-weight:900;color:var(--b-900);font-size:17px;}
  .year-group summary::-webkit-details-marker{display:none;}
  .year-group summary .era{font-size:13px;color:var(--muted);font-weight:500;}
  .year-group summary .cnt{margin-left:auto;font-size:12.5px;color:var(--b-700);background:var(--mist);padding:3px 12px;border-radius:999px;font-weight:700;}
  .year-group summary .chev{width:9px;height:9px;border-right:2px solid var(--b-700);border-bottom:2px solid var(--b-700);transform:rotate(45deg);transition:transform .2s ease;margin-left:6px;}
  .year-group[open] summary .chev{transform:rotate(-135deg);}
  .q{border-top:1px solid var(--line);padding:18px 22px 20px;display:grid;grid-template-columns:150px 1fr;gap:6px 22px;}
  .q-date{font-size:13px;color:var(--b-700);font-weight:700;line-height:1.6;}
  .q-date span{display:block;color:var(--muted);font-weight:400;font-size:12px;}
  .q h4{font-size:16px;color:var(--ink);font-weight:700;line-height:1.6;margin-top:2px;}
  .q h4 + h4{margin-top:10px;}
  .q ul{margin:6px 0 0;padding:0 0 0 1.2em;}
  .q li{font-size:14px;color:#3A4150;line-height:1.75;}
  .q-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
  .q-tags span{font-size:11.5px;padding:2px 9px;border-radius:999px;background:var(--mist);color:var(--b-800);}
  .q-tags span.root{background:var(--b-700);color:#fff;}
  .q.hide{display:none;}
  .year-group.hide{display:none;}
  .act-note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:20px;}

  /* ---------- Contact (控えめ) ---------- */
  .contact{padding:clamp(40px,6vw,64px) 0;background:var(--white);}
  .contact-box{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border:1px solid var(--line);border-radius:20px;padding:30px clamp(24px,5vw,48px);}
  .contact-box h3{font-size:clamp(17px,2vw,20px);color:var(--b-900);font-weight:700;margin-bottom:4px;}
  .contact-box p{font-size:13.5px;color:var(--muted);}
  .contact-links{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
  .contact-links a{font-size:13.5px;font-weight:700;color:var(--b-700);border-bottom:1px solid currentColor;padding-bottom:1px;}

  footer{background:var(--b-900);color:rgba(255,255,255,.82);padding:56px 0 28px 0;}
  .footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;margin-bottom:36px;}
  .footer-brand strong{color:var(--white);font-size:18px;display:block;margin-bottom:8px;}
  .footer-brand p{font-size:13px;line-height:1.9;color:rgba(255,255,255,.65);}
  footer h4{color:var(--white);font-size:13px;margin-bottom:14px;letter-spacing:.06em;}
  footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
  footer ul li{font-size:13px;color:rgba(255,255,255,.75);}
  footer ul li a:hover{color:var(--white);}
  .footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:rgba(255,255,255,.55);}

  /* ---------- 確認用：カラー比較スイッチ（公開時は削除） ---------- */

  /* ---------- Responsive ---------- */
  @media (max-width:980px){
    .profile-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .policy-grid{grid-template-columns:1fr 1fr;}
    .policy-card,.policy-card:nth-child(4){grid-column:auto;}
    .policy-card:nth-child(5){grid-column:1 / -1;}
    .tree-branches{grid-template-columns:repeat(2,1fr);}
    .tree-branches::before,.leaf::before{display:none;}
  }
  @media (max-width:860px){
    nav.links{position:fixed;top:var(--header-h);left:0;right:0;height:calc(100vh - var(--header-h));height:calc(100dvh - var(--header-h));background:var(--sand);flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:28px;gap:22px;transform:translateX(100%);transition:transform .3s ease,visibility 0s linear .3s;overflow-y:auto;visibility:hidden;}
    nav.links.open{transform:translateX(0);visibility:visible;transition:transform .3s ease,visibility 0s linear 0s;}
    nav.links a{font-size:17px;width:100%;}
    nav.links a.nav-join{width:auto;margin-top:8px;}
    .menu-toggle{display:block;}
    .hero{grid-template-columns:1fr;}
    .hero-left-content{padding-top:56px;padding-bottom:40px;}
    .hero-media{height:auto;overflow:visible;background:none;}
    .hero-photo-box{position:relative;inset:auto;aspect-ratio:1/1;overflow:hidden;}
    .hero-photo{object-position:center 24%;}
    .hero-card{position:static;transform:none;width:auto;margin:-32px 20px 0;flex-direction:row;align-items:center;gap:16px;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .3s forwards;}
    .hero-card-divider{width:1px;height:48px;margin:0;flex-shrink:0;}
    .hero-card-info{flex:1;min-width:0;}
    .scroll-cue{display:none;}
    .years-grid{grid-template-columns:1fr;text-align:left;}
    .q{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .policy-grid{grid-template-columns:1fr;}
    .policy-card:nth-child(5){grid-column:auto;}
    .tree-branches{grid-template-columns:1fr;}
    .tree-branches::before{display:none;}
    .leaf::before{display:none;}
    .footer-grid{grid-template-columns:1fr;gap:28px;}
    .hero-actions{width:100%;}
    .btn{flex:1 1 auto;justify-content:center;}
    .career li b{display:block;}
    .q{padding:16px 18px;}
    .year-group summary{padding:14px 18px;font-size:16px;}
  }
  @media (max-width:420px){.container{padding:0 16px;}}

  /* =====================================================
     複数ページ化に伴う追加スタイル
     ===================================================== */
  a.brand{color:inherit;}
  nav.links a.current{color:var(--b-700);font-weight:700;}
  nav.links a.current:not(.nav-join)::after{width:100%;}
  .nav-sub{display:none;}
  body.nav-open{overflow:hidden;}

  /* ページ見出し帯 */
  .page-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--b-900),var(--b-700));color:var(--white);padding:clamp(44px,7vw,80px) 0 clamp(40px,6vw,64px);}
  .page-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;background:var(--b-glow);opacity:.18;filter:blur(20px);}
  .page-hero .container{position:relative;z-index:1;}
  .crumb{font-size:12.5px;color:rgba(255,255,255,.75);margin-bottom:14px;}
  .crumb a{color:rgba(255,255,255,.9);border-bottom:1px solid rgba(255,255,255,.4);}
  .page-hero .en{display:block;font-size:12px;letter-spacing:.18em;color:rgba(255,255,255,.75);font-weight:700;margin-bottom:6px;}
  .page-hero h1{font-size:clamp(28px,4.4vw,44px);font-weight:900;line-height:1.35;}
  .page-hero p{margin-top:14px;max-width:720px;font-size:clamp(14.5px,1.5vw,16px);color:rgba(255,255,255,.9);line-height:1.95;}

  /* ページ内ナビ（前後ページ） */
  .page-next{background:var(--white);padding:clamp(36px,5vw,56px) 0;border-top:1px solid var(--line);}
  .page-next-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .page-next a{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:16px;padding:20px 24px;transition:border-color .2s ease,transform .2s ease;}
  .page-next a:hover{border-color:var(--b-600);transform:translateY(-3px);}
  .page-next small{font-size:12px;color:var(--muted);}
  .page-next strong{font-size:17px;color:var(--b-900);}
  .page-next a.to-right{text-align:right;}

  /* トップ：3つの入口 */
  .gates{background:var(--white);}
  .gate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .gate{position:relative;display:flex;flex-direction:column;background:var(--sand);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px 26px;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;}
  .gate:hover{transform:translateY(-6px);box-shadow:var(--shadow);background:var(--white);}
  .gate .num{font-family:"Shippori Mincho",serif;font-weight:800;font-size:40px;line-height:1;color:var(--b-600);opacity:.35;}
  .gate .en{font-size:11.5px;letter-spacing:.16em;color:var(--b-700);font-weight:700;margin-top:10px;}
  .gate h3{font-size:22px;color:var(--b-900);font-weight:900;margin:4px 0 10px;}
  .gate p{font-size:14.5px;color:#3A4150;line-height:1.9;flex:1;}
  .gate .go{margin-top:18px;font-size:13.5px;font-weight:700;color:var(--b-700);display:flex;align-items:center;gap:8px;}
  .gate .go::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease;}
  .gate:hover .go::after{transform:translateX(4px) rotate(45deg);}

  /* 議事録でたどる前進（トップ・活動ページ共通） */
  .progress-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  .pg{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px 22px 20px;display:flex;flex-direction:column;gap:10px;}
  .pg .pg-tag{align-self:flex-start;font-size:11.5px;font-weight:700;color:var(--b-800);background:var(--mist);padding:3px 10px;border-radius:999px;}
  .pg h4{font-size:16.5px;color:var(--b-900);font-weight:900;line-height:1.5;}
  .pg .flow{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:13.5px;line-height:1.7;color:#3A4150;}
  .pg .flow b{font-size:12px;color:var(--b-700);white-space:nowrap;padding-top:1px;}
  .pg .flow b.after{color:var(--accent-deep);}
  .pg-note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:18px;}

  /* プロフィール */
  .creed{background:var(--sand);}
  .creed-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .creed-item{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px 26px 22px;position:relative;}
  .creed-item::before{content:"“";position:absolute;left:18px;top:4px;font-family:"Shippori Mincho",serif;font-size:64px;line-height:1;color:var(--mist-2);}
  .creed-item blockquote{margin:0;position:relative;font-family:"Shippori Mincho",serif;font-weight:800;font-size:clamp(17px,1.9vw,20px);color:var(--b-900);line-height:1.75;padding-top:14px;}
  .creed-item cite{display:block;font-style:normal;font-size:12.5px;color:var(--muted);margin-top:12px;}
  .creed-item p{font-size:14px;color:#3A4150;margin-top:8px;line-height:1.85;}
  .career li small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;}

  /* 政策ページ：柱の中の実績 */
  .policy-record{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);}
  .policy-record h5{margin:0 0 8px;font-size:12.5px;color:var(--b-700);letter-spacing:.06em;}
  .policy-record ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
  .policy-record li{font-size:13.5px;color:#3A4150;line-height:1.65;display:grid;grid-template-columns:5.6em 1fr;gap:8px;}
  .policy-record li b{color:var(--b-800);font-weight:700;font-size:12.5px;}
  .policy-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13.5px;font-weight:700;color:var(--b-700);border-bottom:1px solid currentColor;align-self:flex-start;}

  /* 議会活動：議事録カード */
  .act-tools{position:sticky;top:var(--header-h);z-index:50;background:rgba(247,249,252,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:12px 0;}
  .act-tools .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .act-tools label{font-size:12px;color:var(--muted);white-space:nowrap;}
  .act-tools select{font:inherit;font-size:14px;padding:8px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);}
  .chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;flex:1;min-width:0;}
  .chips::-webkit-scrollbar{display:none;}
  .chips button{flex:0 0 auto;font:inherit;font-size:13px;border:1.5px solid var(--line);background:var(--white);color:var(--ink);padding:6px 14px;border-radius:999px;cursor:pointer;transition:all .2s ease;}
  .chips button.on{background:var(--b-700);border-color:var(--b-700);color:var(--white);}
  .act-count{font-size:12.5px;color:var(--muted);white-space:nowrap;}
  .year-block{padding-top:10px;}
  .year-head{display:flex;align-items:baseline;gap:12px;margin:34px 0 14px;padding-bottom:10px;border-bottom:2px solid var(--b-700);scroll-margin-top:calc(var(--header-h) + 70px);}
  .year-head h2{font-size:clamp(22px,2.8vw,28px);font-weight:900;color:var(--b-900);}
  .year-head span{font-size:13px;color:var(--muted);}
  .year-head em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--b-700);background:var(--mist);padding:3px 12px;border-radius:999px;}
  .mcard{background:var(--white);border:1px solid var(--line);border-radius:16px;margin-bottom:14px;overflow:hidden;}
  .mcard-head{display:grid;grid-template-columns:130px 1fr;gap:6px 20px;padding:20px 22px 16px;}
  .mcard-date{font-size:14px;font-weight:900;color:var(--b-700);line-height:1.5;}
  .mcard-date span{display:block;font-size:11.5px;font-weight:500;color:var(--muted);}
  .mcard-date i{display:inline-block;margin-top:6px;font-style:normal;font-size:11px;font-weight:700;color:var(--b-800);border:1px solid var(--mist-2);border-radius:6px;padding:1px 7px;}
  .mcard h3{font-size:17px;font-weight:900;color:var(--ink);line-height:1.6;}
  .mcard h3 + h3{margin-top:6px;}
  .mcard .subs{margin:6px 0 0;padding:0 0 0 1.1em;}
  .mcard .subs li{font-size:13.5px;color:#4A5160;line-height:1.7;}
  .mcard .q-tags{margin-top:12px;}
  .mcard-body{border-top:1px solid var(--line);background:linear-gradient(180deg,var(--sand),var(--white) 70%);}
  .mcard-body summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 22px;font-size:13.5px;font-weight:700;color:var(--b-700);}
  .mcard-body summary::-webkit-details-marker{display:none;}

  .mcard-body summary .chev{margin-left:auto;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s ease;}
  .mcard-body[open] summary .chev{transform:rotate(-135deg);}
  .minutes{padding:4px 22px 22px;display:grid;grid-template-columns:130px 1fr;gap:14px 20px;}
  .minutes dt{font-size:12px;font-weight:700;color:var(--b-700);padding-top:3px;}
  .minutes dd{margin:0;font-size:14.5px;color:#2E3440;line-height:1.95;}
  .minutes dd.quote{font-family:"Shippori Mincho",serif;font-weight:600;font-size:15.5px;color:var(--b-900);border-left:3px solid var(--b-600);padding:2px 0 2px 14px;}
  .minutes dd.after{color:var(--accent-deep);font-weight:500;}
  .minutes .src{grid-column:1/-1;font-size:11.5px;color:var(--muted);}
  .mcard.nominutes .mcard-body{background:var(--sand-2);}
  .nominutes-note{padding:12px 22px;font-size:13px;color:var(--muted);}
  .mcard.hide,.year-block.hide{display:none;}
  .no-hit{display:none;text-align:center;color:var(--muted);padding:40px 0;}

  @media (max-width:980px){
    .gate-grid{grid-template-columns:1fr;}
    .progress-list{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:860px){
    /* スマホ：ハンバーガーメニュー */
    nav.links{padding:12px 20px 32px;gap:0;background:var(--white);}
    nav.links a{display:flex;flex-direction:column;align-items:flex-start;font-size:18px;font-weight:700;color:var(--b-900);padding:18px 4px;border-bottom:1px solid var(--line);}
    nav.links a:not(.nav-join)::after{display:none;}
    nav.links a .nav-sub{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:2px;}
    nav.links a.current{color:var(--b-700);}
    nav.links a.current::before{content:"";position:absolute;left:-20px;top:16px;bottom:16px;width:4px;border-radius:0 3px 3px 0;background:var(--b-700);}
    nav.links a.nav-join{margin-top:24px;width:100%;align-items:center;border:1.5px solid var(--b-700);border-radius:999px;padding:14px;font-size:15px;}
    .creed-grid{grid-template-columns:1fr;}
    .mcard-head,.minutes{grid-template-columns:1fr;}
    .minutes{gap:4px;}
    .minutes dd{margin-bottom:10px;}
    .page-next-grid{grid-template-columns:1fr;}
    .page-next a.to-right{text-align:left;}
    .act-tools .row{gap:8px;}
    .act-tools .chips{flex:1 1 100%;margin:0 -16px;padding:0 16px 2px;}
    .act-tools select{flex:1;}
  }
  @media (max-width:640px){
    .progress-list{grid-template-columns:1fr;}
    .mcard-head{padding:18px 16px 14px;}
    .mcard-body summary{padding:13px 16px;}
    .minutes{padding:4px 16px 18px;}
    .act-tools select{font-size:13.5px;padding:7px 10px;}
    .policy-record li{grid-template-columns:1fr;gap:0;}
  }

  /* プロフィール：スマホだけ小さな顔写真（見出しと左右に並べる） */
  .page-hero-photo{display:none;}
  @media (max-width:860px){
    .ph-row{display:flex;align-items:center;gap:16px;}
    .page-hero-photo{display:block;flex-shrink:0;width:84px;height:84px;border-radius:50%;object-fit:cover;object-position:center 15%;background:#fff;border:3px solid rgba(255,255,255,.9);box-shadow:0 4px 14px rgba(0,0,0,.2);}
  }
  /* トップ：16年間カードを顔にかからないよう左下へ（パソコン） */
  @media (min-width:861px){
    .hero-card{right:auto;left:clamp(20px,3vw,40px);top:auto;bottom:clamp(24px,6vh,56px);transform:none;animation:fadeUp .9s cubic-bezier(.19,1,.22,1) .8s forwards,cardFloat2 6s ease-in-out .9s infinite;}
    @keyframes cardFloat2{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
  }
  /* 議会活動：分野タブは折り返して全部見えるように、年は範囲で選ぶ */
  .act-tools .chips{flex-wrap:wrap;overflow:visible;flex:1 1 100%;margin:0;padding:0;}
  .yr-range{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
  .yr-range span{font-size:13px;color:var(--muted);}
  .act-tools .yr-range select{flex:0 0 auto;padding:6px 10px;}
  #yearAll{font:inherit;font-size:13px;border:1.5px solid var(--b-700);color:var(--b-700);background:var(--white);border-radius:999px;padding:6px 14px;cursor:pointer;}
  #yearAll.on{background:var(--b-700);color:var(--white);}
  @media (max-width:860px){
    .act-tools{position:static;}
    .act-tools .chips{gap:6px;}
    .act-tools .chips button{font-size:12.5px;padding:5px 11px;}
    /* フッターを短く */
    footer{padding:28px 0 18px;}
    .footer-grid{grid-template-columns:1fr;gap:16px;margin-bottom:18px;}
    .footer-brand p{line-height:1.7;}
    footer h4{margin-bottom:6px;}
    footer ul{flex-direction:row;flex-wrap:wrap;gap:4px 16px;}
    .footer-bottom{padding-top:12px;font-size:11px;}
  }

/* ===== お知らせ（news） ===== */
.news-top{padding:clamp(44px,6vw,72px) 0;background:var(--white);}
.news-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;}
.news-head .section-title{margin-top:6px;}
.news-more{font-size:14px;font-weight:700;color:var(--b-700);border-bottom:1px solid currentColor;white-space:nowrap;}
.news-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
.news-list li{display:grid;grid-template-columns:auto auto 1fr;gap:6px 16px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);}
.news-list time,.news-meta time{font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;}
.news-cat{display:inline-block;justify-self:start;font-size:11.5px;font-weight:700;color:var(--b-700);background:#EAF1FB;border-radius:999px;padding:2px 10px;white-space:nowrap;}
.news-list a{color:var(--ink);font-weight:500;}
.news-list a:hover{color:var(--b-700);text-decoration:underline;}
.news-page{padding:clamp(36px,5vw,64px) 0;}
.news-wrap{max-width:820px;}
.news-post{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:clamp(20px,3.5vw,32px);margin-bottom:18px;scroll-margin-top:calc(var(--header-h,64px) + 16px);}
.news-meta{display:flex;gap:12px;align-items:center;margin-bottom:8px;}
.news-post h2{font-size:clamp(18px,2.4vw,22px);line-height:1.5;margin:0 0 12px;}
.news-body p{margin:0 0 .9em;overflow-wrap:anywhere;}
.news-body p:last-child{margin-bottom:0;}
.news-body figure{margin:16px 0;}
.news-body img{display:block;width:100%;height:auto;border-radius:10px;}
.news-body figcaption{font-size:12.5px;color:var(--muted);margin-top:6px;}
.news-body .news-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0;}
.news-body .news-photos figure{margin:0;}
@media (max-width:640px){
  .news-list li{grid-template-columns:auto 1fr;}
  .news-list li a{grid-column:1/-1;}
  .news-head{flex-direction:column;align-items:flex-start;}
}
