/* ── TOKENS ── */
:root {
  --red:      #9B0E1C;
  --red-dark: #6E0A14;
  --red-pale: #F9F1F2;
  --black:    #2A2826;
  --ink:      #1E1C1C;
  --mid:      #5C5858;
  --light:    #9C9898;
  --rule:     #ECEAE7;
  --bg:       #FBFAF7;
  --bgwarm:   #FBFAF7;
  --white:    #FFFFFF;
  --serif:    'Noto Sans JP', sans-serif;
  --sans:     'Noto Sans JP', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;scroll-padding-top:72px;}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.8;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ── UTILITIES ── */
.container{max-width:1160px;margin:0 auto;padding:0 48px;}
.label{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--red);text-transform:uppercase;display:flex;align-items:center;gap:10px;}
.label::before{content:'';display:block;width:20px;height:1px;background:var(--red);}
.section-title{font-family:var(--serif);font-size:clamp(26px,3vw,40px);font-weight:700;letter-spacing:.04em;line-height:1.5;margin-top:12px;}
.section-sub{font-size:14px;color:var(--mid);line-height:2.1;margin-top:12px;max-width:540px;}
.btn-red{background:var(--red);color:#fff;padding:13px 30px;font-size:13px;font-weight:500;letter-spacing:.12em;border:none;cursor:pointer;transition:background .2s,transform .15s;display:inline-block;}
.btn-red:hover{background:var(--red-dark);} /* transform は ENHANCEMENT LAYER (translateY(-2px)) に統一 */
.btn-outline{border:1px solid var(--rule);color:var(--ink);padding:12px 26px;font-size:13px;font-weight:500;letter-spacing:.08em;cursor:pointer;transition:border-color .2s,color .2s;display:inline-block;}
.btn-outline:hover{border-color:var(--red);color:var(--red);}

/* fade-in */
.fi{transition:opacity .65s ease,transform .65s ease;}
html.js-anim .fi{opacity:0;transform:translateY(22px);}
html.js-anim .fi.v{opacity:1;transform:none;}

/* ── NAV：ロゴ左上 + 中央ピル型フローティング ── */

/* ロゴ（左上固定） */
.site-logo{
  position:fixed;top:14px;left:20px;z-index:300;
  display:flex;align-items:center;gap:8px;
  font-family:var(--serif);font-size:13px;font-weight:700;
  color:var(--red);letter-spacing:.04em;text-decoration:none;
  /* nav pill と同じ Liquid Glass */
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  padding:8px 14px 8px 8px;
  isolation:isolate;
  overflow:hidden; /* border-radius でクリッピング */
  box-shadow:
    0 8px 32px rgba(0,0,0,.10),
    0 2px 8px  rgba(0,0,0,.07),
    inset 0 1px 0 rgba(255,255,255,.40),
    inset 0 -1px 0 rgba(0,0,0,.05);
}
/* ロゴのglaze（SVG歪み+backdrop-filter） */
.site-logo .glaze{
  position:absolute;inset:0;border-radius:inherit;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  filter:url(#glass-distortion-soft);
  overflow:hidden;isolation:isolate;
  z-index:0;pointer-events:none;
}
.site-logo img,.site-logo .logo-text{position:relative;z-index:1;}
.site-logo img{height:26px;width:26px;object-fit:cover;border-radius:50%;flex-shrink:0;}

/* ── ピル型ナビ：Liquid Glass ── */
.pill-nav{
  position:fixed;top:14px;left:50%;transform:translateX(-50%);
  z-index:200;
  display:flex;align-items:center;gap:2px;
  padding:5px 7px;
  border-radius:999px;
  isolation:isolate;
  overflow:hidden; /* border-radius でクリッピング */

  /* ガラス本体 */
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);

  /* エッジ */
  border:1px solid rgba(255,255,255,.48);

  /* 多層シャドウ */
  box-shadow:
    /* 外側：拡散シャドウ */
    0 8px 32px rgba(0,0,0,.10),
    0 2px 8px  rgba(0,0,0,.07),
    /* 内側：上エッジハイライト */
    inset 0 1px 0 rgba(255,255,255,.40),
    /* 内側：下エッジ微影 */
    inset 0 -1px 0 rgba(0,0,0,.05);
}

/* 上半分のスペキュラー（ロゴ pill + nav pill 共通） */
.site-logo::before,
.pill-nav::before{
  content:'';
  position:absolute;inset:0;
  border-radius:999px;
  background:linear-gradient(
    to bottom,
    rgba(255,255,255,.20) 0%,
    rgba(255,255,255,.04) 55%,
    transparent 100%
  );
  pointer-events:none;
  z-index:0;
}

.nav-item{
  position:relative;z-index:1;
  font-size:12px;font-weight:500;color:var(--ink);
  padding:7px 14px;border-radius:999px;white-space:nowrap;
  text-decoration:none;
  transition:background .22s,color .22s,box-shadow .22s;
}
.nav-item:hover{
  background:rgba(255,255,255,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.nav-item.active{
  background:rgba(155,14,28,.88);
  color:#fff;
  box-shadow:
    0 2px 10px rgba(155,14,28,.32),
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.12);
}

/* 旧 #nav・nav-links は非表示（HTMLは残す） */
#nav{display:none;}
#scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--red);width:0;z-index:600;pointer-events:none;transition:width .08s linear;}

/* ハンバーガー不使用 */
.nav-burger{display:none!important;}

/* ── PAGE TRANSITION (View Transitions API + フォールバック) ── */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:pt-fade-out .4s cubic-bezier(.4,0,.2,1) forwards;}
::view-transition-new(root){animation:pt-fade-in .55s cubic-bezier(.2,.9,.3,1) forwards;}
@keyframes pt-fade-out{to{opacity:0;transform:translateY(-8px) scale(.995);filter:blur(4px);}}
@keyframes pt-fade-in{from{opacity:0;transform:translateY(10px) scale(1.005);filter:blur(6px);}to{opacity:1;transform:none;filter:none;}}
/* JSフォールバック用：bodyフェード */
body{transition:opacity .4s cubic-bezier(.4,0,.2,1),filter .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);}
body.page-leaving{opacity:0;filter:blur(4px);transform:translateY(-6px);}

/* ── HERO ── */
#hero{min-height:100vh;padding-top:100px;position:relative;display:grid;grid-template-columns:1fr 420px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero-bg-overlay{position:absolute;inset:0;background:rgba(250,250,248,.84);}
.hero-l{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:72px 56px 140px 80px;}
.hero-eyebrow{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--red);margin-bottom:22px;display:flex;align-items:center;gap:10px;}
.hero-eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--red);}
.hero-h1{font-family:var(--serif);font-size:clamp(30px,3.4vw,50px);font-weight:700;line-height:1.55;letter-spacing:.04em;color:var(--black);}
.hero-h1 em{color:var(--red);font-style:normal;position:relative;display:inline-block;}
.hero-bar{width:44px;height:2.5px;background:var(--red);margin:16px 0;}
.hero-p{font-size:14.5px;color:var(--mid);line-height:2.1;max-width:400px;margin-bottom:24px;}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;}
.hero-r{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:72px 48px 140px 0;gap:6px;}
.hero-card{background:rgba(255,255,255,.92);border:1px solid var(--rule);padding:22px 24px;backdrop-filter:blur(6px);}
.hero-card-label{font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--red);margin-bottom:6px;}
.hero-card-num{font-family:var(--serif);font-size:38px;font-weight:700;color:var(--black);line-height:1;margin-bottom:2px;}
.hero-card-desc{font-size:12px;color:var(--mid);letter-spacing:.04em;}
.hero-card.wide{display:flex;flex-direction:column;gap:10px;}
.hero-card-news{display:flex;flex-direction:column;gap:8px;}
.hero-news-item{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--ink);line-height:1.7;}
.hero-news-item::before{content:'';width:4px;height:4px;background:var(--red);border-radius:50%;flex-shrink:0;margin-top:7px;}
.hero-news-date{font-size:10.5px;color:var(--light);white-space:nowrap;flex-shrink:0;}

/* ── TICKER ── */
#ticker{background:var(--red);padding:0;overflow:hidden;height:40px;display:flex;align-items:center;}
.ticker-label{background:var(--red-dark);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.18em;padding:0 18px;height:100%;display:flex;align-items:center;flex-shrink:0;white-space:nowrap;}
.ticker-track{display:flex;align-items:center;overflow:hidden;flex:1;min-width:0;height:100%;}
.ticker-inner{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:64px;width:max-content;animation:ticker 28s linear infinite;animation-play-state:running!important;white-space:nowrap;padding-left:40px;will-change:transform;}
.ticker-inner:hover{animation-play-state:paused;}
.ticker-item{font-size:12px;color:rgba(255,255,255,.9);letter-spacing:.06em;display:inline-flex;align-items:center;gap:14px;cursor:pointer;flex-shrink:0;white-space:nowrap;}
.ticker-date{opacity:.65;font-size:11px;}
@keyframes ticker{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* ── MESSAGE ── */
#message{padding:96px 0;background:var(--bgwarm);}
.message-grid{display:grid;grid-template-columns:340px 1fr;gap:72px;align-items:center;}
.message-img{position:relative;}
.message-photo{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--rule);}
.message-photo-placeholder{width:100%;aspect-ratio:3/4;background:linear-gradient(135deg,#e8e4e0,#d4d0cc);display:flex;align-items:flex-end;justify-content:center;padding:20px;font-size:12px;color:var(--light);letter-spacing:.1em;}
.message-frame{position:absolute;bottom:-16px;right:-16px;width:56%;height:56%;border:1px solid var(--red);pointer-events:none;}
.message-content{}
.quote-mark{font-family:var(--serif);font-size:80px;line-height:.7;color:var(--red);opacity:.18;margin-bottom:-12px;}
.quote-body{font-family:var(--serif);font-size:clamp(16px,1.8vw,21px);font-weight:400;line-height:1.95;letter-spacing:.04em;color:var(--ink);margin-bottom:24px;}
.quote-body strong{color:var(--red);font-weight:700;}
.message-sig{font-size:13px;color:var(--mid);letter-spacing:.08em;}
.message-sig span{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--ink);display:block;margin-top:4px;}

/* ── ABOUT ── */
#about{padding:96px 0;}
.about-top{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-bottom:64px;}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.pillar{background:var(--white);padding:36px 28px;position:relative;transition:background .2s;}
.pillar::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .3s;transform-origin:left;}
.pillar:hover{background:var(--red-pale);}
.pillar:hover::before{transform:scaleX(1);}
.pillar-n{font-family:var(--serif);font-size:44px;font-weight:700;color:var(--rule);line-height:1;margin-bottom:16px;}
.pillar-title{font-family:var(--serif);font-size:16px;font-weight:700;letter-spacing:.04em;margin-bottom:10px;}
.pillar-desc{font-size:12.5px;color:var(--mid);line-height:2;}

/* ── VISION BANNER ── */
#vision{background:var(--red);padding:72px 0;position:relative;overflow:hidden;}
#vision::before{content:'';position:absolute;top:-80px;right:-100px;width:480px;height:480px;background:url('../uploads/IMG_0765.PNG') center/cover;opacity:.1;transform:rotate(8deg);}
.vision-in{max-width:860px;margin:0 auto;padding:0 48px;text-align:center;}
.vision-tag{font-size:10.5px;letter-spacing:.3em;color:rgba(255,255,255,.6);margin-bottom:20px;display:block;}
.vision-title{font-family:var(--serif);font-size:clamp(20px,2.8vw,34px);font-weight:700;line-height:1.8;color:#fff;letter-spacing:.05em;margin-bottom:18px;}
.vision-sub{font-family:var(--serif);font-size:clamp(13px,1.6vw,18px);font-weight:300;color:rgba(255,255,255,.8);line-height:2.1;}

/* ── POLICY ── */
#policy{padding:96px 0;background:var(--bgwarm);}
.policy-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:48px;}
.policy-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.pc{background:var(--white);padding:40px 30px;cursor:pointer;transition:background .2s;position:relative;}
.pc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .28s;transform-origin:left;}
.pc:hover::before,.pc.open::before{transform:scaleX(1);}
.pc:hover,.pc.open{background:var(--red-pale);}
.pc-n{font-family:var(--serif);font-size:48px;font-weight:700;color:var(--rule);line-height:1;margin-bottom:20px;transition:color .2s;}
.pc.open .pc-n{color:var(--red);}
.pc-title{font-family:var(--serif);font-size:16.5px;font-weight:700;letter-spacing:.03em;line-height:1.6;margin-bottom:12px;}
.pc-desc{font-size:12.5px;color:var(--mid);line-height:2;}
.pc-toggle{margin-top:20px;font-size:11.5px;font-weight:700;color:var(--red);letter-spacing:.1em;display:flex;align-items:center;gap:6px;transition:letter-spacing .22s;}
.pc.open .pc-toggle{letter-spacing:.14em;}
.policy-detail{max-height:0;opacity:0;overflow:hidden;margin-top:1px;background:var(--white);border:1px solid var(--rule);border-top:2px solid var(--red);padding:0 44px;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s ease .05s,padding .35s ease;}
.policy-detail.open{max-height:1400px;opacity:1;padding:40px 44px;}
.pd-title{font-family:var(--serif);font-size:20px;font-weight:700;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--rule);}
.pd-body{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.pd-item .pd-label{font-size:10.5px;font-weight:700;letter-spacing:.18em;color:var(--red);margin-bottom:8px;}
.pd-item p{font-size:13.5px;color:var(--mid);line-height:2.1;}

/* ── ACTIVITY ── */
#activity{padding:96px 0;}
.activity-head{margin-bottom:52px;}
.events{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-bottom:48px;}
.event{background:var(--white);padding:40px 36px;}
.event-tag{display:inline-block;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:.16em;padding:3px 10px;margin-bottom:20px;}
.event-date{font-size:12px;color:var(--light);letter-spacing:.1em;margin-bottom:10px;}
.event-title{font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.03em;line-height:1.6;margin-bottom:14px;}
.event-desc{font-size:13px;color:var(--mid);line-height:2.1;margin-bottom:18px;}
.event-badge{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.badge{font-size:11px;padding:3px 10px;border:1px solid var(--rule);color:var(--mid);letter-spacing:.06em;}
.badge.media{border-color:var(--red);color:var(--red);}
.event-voice{background:var(--red-pale);border-left:2px solid var(--red);padding:12px 16px;font-size:12.5px;font-style:italic;color:var(--ink);line-height:1.9;}

/* ── MEDIA ── */
.media-section{margin-top:0;}
.media-bar{display:flex;align-items:stretch;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.media-item{flex:1;background:var(--white);padding:24px 24px;text-align:center;}
.media-outlet{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.media-prog{font-size:11.5px;color:var(--mid);letter-spacing:.06em;line-height:1.7;}
.media-date{font-size:11px;color:var(--light);margin-top:6px;}

/* ── PROPOSAL RECORD ── */
.proposal-section{margin-top:60px;}
.proposal-grid{display:grid;grid-template-columns:1fr 2fr;gap:48px;align-items:start;}
.proposal-stat-big{text-align:center;background:var(--red);padding:40px 24px;}
.proposal-stat-big .num{font-family:var(--serif);font-size:72px;font-weight:700;color:#fff;line-height:1;}
.proposal-stat-big .unit{font-size:14px;color:rgba(255,255,255,.8);letter-spacing:.1em;margin-top:6px;}
.proposal-list{border:1px solid var(--rule);}
.pl-head{background:var(--ink);color:#fff;padding:14px 22px;font-size:11.5px;font-weight:700;letter-spacing:.12em;}
.pl-names{display:flex;flex-wrap:wrap;gap:1px;background:var(--rule);}
.pl-name{background:var(--white);padding:9px 14px;font-size:12px;color:var(--mid);letter-spacing:.04em;}
.pl-note{background:var(--bgwarm);padding:14px 22px;font-size:12px;color:var(--mid);line-height:1.9;}

/* ── NEWS ── */
#news{padding:80px 0;background:var(--bgwarm);}
.news-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;}
.news-list{border:1px solid var(--rule);}
.ni{display:flex;align-items:center;gap:20px;padding:18px 26px;background:var(--white);border-bottom:1px solid var(--rule);cursor:pointer;transition:background .2s;}
.ni:last-child{border-bottom:none;}
.ni:hover{background:var(--red-pale);}
.ni-date{font-size:11.5px;color:var(--light);letter-spacing:.1em;width:88px;flex-shrink:0;}
.ni-tag{font-size:10px;font-weight:700;letter-spacing:.1em;padding:2px 9px;background:var(--red);color:#fff;white-space:nowrap;}
.ni-tag.m{background:var(--ink);}
.ni-tag.e{background:#2d6a4f;}
.ni-title{font-size:13.5px;letter-spacing:.03em;flex:1;}
.ni-arr{color:var(--red);opacity:0;transition:opacity .2s;}
.ni:hover .ni-arr{opacity:1;}

/* ── MEMBERS ── */
#members{padding:96px 0;}
.members-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:48px;}
.mc{background:var(--bgwarm);padding:40px 32px;transition:background .2s;text-align:center;}
.mc:hover{background:var(--red-pale);}
.mc-role{font-size:10.5px;font-weight:700;letter-spacing:.2em;color:var(--red);margin-bottom:8px;}
.mc-name{font-family:var(--serif);font-size:22px;font-weight:700;letter-spacing:.05em;margin-bottom:4px;}
.mc-org{font-size:12.5px;color:var(--light);letter-spacing:.06em;margin-bottom:16px;}
.mc-desc{font-size:13px;color:var(--mid);line-height:2.1;margin-bottom:20px;}
.mc-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.mc-tag{font-size:10.5px;padding:2px 9px;border:1px solid var(--rule);color:var(--mid);}

/* ── CONTACT ── */
#contact{padding:96px 0;background:var(--black);color:#fff;position:relative;overflow:hidden;}
#contact::before{content:'';position:absolute;bottom:-100px;left:-100px;width:560px;height:560px;background:url('../uploads/IMG_0765.PNG') center/cover;opacity:.06;transform:rotate(-12deg);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.contact-l .label{color:var(--red);}
.contact-l .label::before{background:var(--red);}
.contact-title{font-family:var(--serif);font-size:clamp(24px,2.6vw,36px);font-weight:700;line-height:1.7;letter-spacing:.04em;margin-top:12px;}
.contact-desc{font-size:13.5px;opacity:.65;line-height:2.1;margin-top:14px;}
.cf{display:flex;flex-direction:column;gap:14px;}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cf-field{display:flex;flex-direction:column;gap:5px;}
.cf-label{font-size:10.5px;font-weight:700;letter-spacing:.16em;opacity:.55;display:inline-block;transform-origin:left;transition:opacity .22s,letter-spacing .22s,color .22s,transform .22s;}
.cf-field:focus-within .cf-label{opacity:1;color:#fff;letter-spacing:.22em;transform:translateX(3px);}
.cf-input{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);color:#fff;padding:11px 14px;font-size:13.5px;font-family:var(--sans);outline:none;transition:border-color .22s,background .22s,box-shadow .28s;}
.cf-input:focus{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.12);box-shadow:inset 0 -2px 0 0 var(--red);}
.cf-input::placeholder{opacity:.35;}
textarea.cf-input{resize:vertical;min-height:100px;}
.cf-submit{background:var(--red);color:#fff;border:none;padding:13px 30px;font-size:13px;font-weight:500;letter-spacing:.12em;font-family:var(--sans);cursor:pointer;transition:background .2s;align-self:flex-start;margin-top:4px;}
.cf-submit:hover{background:var(--red-dark);}
.cf-success{display:none;padding:14px 18px;background:rgba(45,106,79,.25);border:1px solid rgba(45,106,79,.5);color:#5fe0a0;font-size:13px;letter-spacing:.04em;}

/* ── FOOTER ── */
footer{background:#1F1D1B;color:rgba(255,255,255,.45);padding:32px 0;}
.footer-in{max-width:1160px;margin:0 auto;padding:0 48px;display:flex;justify-content:space-between;align-items:center;}
.footer-logo{font-family:var(--serif);font-size:14px;font-weight:700;color:rgba(255,255,255,.8);}
.footer-copy{font-size:11.5px;letter-spacing:.07em;}

/* ── PRESS RELEASE ── */
#press{padding:96px 0;background:var(--bg);}
.press-head{margin-bottom:48px;}
.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.press-card{background:var(--white);border:1px solid var(--rule);transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden;display:flex;flex-direction:column;}
.press-card:hover{border-color:var(--red);box-shadow:0 4px 28px rgba(155,14,28,.09);}
.press-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .28s;transform-origin:left;}
.press-card:hover::before{transform:scaleX(1);}
.press-thumb{width:100%;height:180px;background:#2A2826;position:relative;overflow:hidden;flex-shrink:0;}
.press-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s;}
.press-card:hover .press-thumb img{transform:scale(1.04);}
.press-thumb-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.4) 0%,transparent 55%);}
.press-pdf-badge{position:absolute;top:12px;left:12px;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:.18em;padding:4px 11px;}
.press-thumb-icon{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.35;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}
.press-thumb-icon svg{width:36px;height:36px;fill:#fff;}
.press-thumb-label{font-size:10px;font-weight:700;letter-spacing:.2em;color:#fff;}
.press-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1;}
.press-date{font-size:11px;color:var(--light);letter-spacing:.1em;margin-bottom:8px;}
.press-title{font-family:var(--serif);font-size:15px;font-weight:700;line-height:1.65;letter-spacing:.03em;margin-bottom:10px;}
.press-desc{font-size:12.5px;color:var(--mid);line-height:1.9;margin-bottom:24px;flex:1;}
.press-dl{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.1em;background:var(--red);color:#fff;padding:12px 20px;text-decoration:none;transition:background .2s;margin-top:auto;}
.press-dl:hover{background:var(--red-dark);}
.press-dl svg{width:14px;height:14px;fill:currentColor;flex-shrink:0;}
.press-dl.disabled{background:var(--rule);color:var(--light);pointer-events:none;}

/* ── SNS ── */
.sns-bar{display:flex;gap:16px;margin-top:24px;}
.sns-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.55);letter-spacing:.06em;transition:color .2s;text-decoration:none;}
.sns-link:hover{color:var(--red);}
.sns-link svg{width:16px;height:16px;fill:currentColor;}

/* ── HERO TITLE REVEAL ── */
.h1-line{display:block;overflow:hidden;}
.h1-li{display:block;transform:translateY(108%);animation:h1Up .8s cubic-bezier(.16,1,.3,1) forwards;}
.h1-line:nth-child(1) .h1-li{animation-delay:.2s;}
.h1-line:nth-child(2) .h1-li{animation-delay:.42s;}
.h1-line:nth-child(3) .h1-li{animation-delay:.64s;}
.h1-line:nth-child(4) .h1-li{animation-delay:.86s;}
@keyframes h1Up{to{transform:translateY(0);}}
.hero-h1{font-size:clamp(34px,4vw,56px);}
.hero-eyebrow{opacity:0;animation:hFade .5s ease .05s forwards;}
.hero-bar{transform-origin:left;animation:hBar .45s ease 1.15s both;}
@keyframes hBar{from{transform:scaleX(0);}}
.hero-p{opacity:0;animation:hFade .5s ease 1.3s forwards;}
.hero-btns{opacity:0;animation:hFade .5s ease 1.55s forwards;}
@keyframes hFade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
.hero-h1 em::after{content:'';position:absolute;bottom:2px;left:0;right:0;height:3px;background:var(--red);opacity:.7;transform:scaleX(0);transform-origin:left;animation:hBar .4s ease 1.6s forwards;}

/* ── STAGGER CHILDREN ── */
.sg>*{transition:opacity .52s ease,transform .52s ease;}
html.js-anim .sg>*{opacity:0;transform:translateY(18px);}
html.js-anim .sg.sv>*{opacity:1;transform:none;}
.sg.sv>*:nth-child(1){transition-delay:0s;}
.sg.sv>*:nth-child(2){transition-delay:.12s;}
.sg.sv>*:nth-child(3){transition-delay:.24s;}
.sg.sv>*:nth-child(4){transition-delay:.36s;}
.sg.sv>*:nth-child(5){transition-delay:.48s;}
.sg.sv>*:nth-child(6){transition-delay:.6s;}
.sg.sv>*:nth-child(7){transition-delay:.72s;}

/* ── SCROLL HINT ── */
.scroll-hint{position:absolute;bottom:24px;right:32px;left:auto;z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:hFade .5s ease 2.2s forwards;pointer-events:none;}
.scroll-hint-label{font-size:9.5px;letter-spacing:.25em;color:var(--mid);}
.scroll-hint-line{width:1px;height:38px;background:linear-gradient(var(--red),transparent);animation:scrollBlink 2s ease 2.4s infinite;}
@keyframes scrollBlink{0%,100%{opacity:1;}50%{opacity:.2;}}
@media(max-width:640px){.scroll-hint{display:none;}}

/* ── TICKER HOVER ── */
.ticker-item{transition:opacity .2s;}
.ticker-item:hover{opacity:.75;}

/* ── POLITICIAN GRID ── */
.pol-section-title{font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--mid);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.pol-section-title::after{content:'クリックで詳細を確認';font-size:10px;color:var(--red);opacity:.7;font-weight:400;letter-spacing:.08em;}
.pol-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:var(--white);border:1px solid var(--rule);}
.pol-card{background:var(--white);padding:18px 10px 16px;cursor:pointer;transition:background .18s;display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;position:relative;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.pol-card:nth-child(5n){border-right:none;}
.pol-card:hover{background:var(--red-pale);}
.pol-card::after{content:'提言を見る →';position:absolute;bottom:10px;left:0;right:0;font-size:9.5px;color:var(--red);opacity:0;transition:opacity .18s;letter-spacing:.06em;}
.pol-card:hover::after{opacity:1;}
.pol-card:hover .pol-av{transform:scale(1.08);}
.pol-av{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:20px;font-weight:700;color:#fff;flex-shrink:0;transition:transform .2s;}
.pol-party-b{font-size:9px;font-weight:700;letter-spacing:.08em;color:#fff;padding:2px 7px;}
.pol-name-j{font-family:var(--serif);font-size:13px;font-weight:700;color:var(--black);margin-top:1px;line-height:1.3;}
.pol-kana-j{font-size:9.5px;color:var(--light);letter-spacing:.04em;}
.pol-pos-j{font-size:9.5px;color:var(--mid);letter-spacing:.04em;margin-bottom:14px;}
.proposal-party-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;}
.ppl-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--mid);}
.ppl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}

/* ── POLITICIAN SEARCH / FILTER ── */
.pol-filter{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:14px;}
.pol-filter-search{position:relative;flex:1 1 280px;max-width:360px;}
.pol-filter-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:14px;height:14px;fill:var(--light);pointer-events:none;}
.pol-filter-search input{width:100%;padding:10px 34px;border:1px solid var(--rule);background:var(--white);font-family:inherit;font-size:13px;color:var(--ink);outline:none;transition:border-color .18s;}
.pol-filter-search input:focus{border-color:var(--red);}
.pol-filter-search input::placeholder{color:var(--light);}
.pol-filter-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;background:none;color:var(--light);cursor:pointer;font-size:18px;display:none;line-height:1;padding:0;align-items:center;justify-content:center;}
.pol-filter-clear.show{display:flex;}
.pol-filter-clear:hover{color:var(--red);}
.pol-filter-chips{display:flex;gap:6px;flex-wrap:wrap;}
.pf-chip{border:1px solid var(--rule);background:var(--white);padding:7px 11px;font-family:inherit;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--mid);cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:6px;}
.pf-chip:hover{border-color:var(--ink);color:var(--ink);}
.pf-chip.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.pf-chip .pf-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.pf-chip .pf-count{font-size:10px;opacity:.65;margin-left:2px;}
.pol-filter-result{font-size:11px;color:var(--mid);margin-bottom:10px;letter-spacing:.04em;min-height:14px;}
.pol-empty{grid-column:1/-1;padding:44px 20px;text-align:center;color:var(--light);font-size:13px;background:var(--white);}
@media(max-width:640px){
  .pol-filter{flex-direction:column;align-items:stretch;}
  .pol-filter-search{max-width:none;}
  .pol-filter-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;margin:0 -4px;padding-left:4px;padding-right:4px;}
  .pf-chip{flex-shrink:0;}
}

/* ── POLITICIAN MODAL ── */
#pol-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:500;backdrop-filter:blur(4px);opacity:0;transition:opacity .25s;pointer-events:none;}
#pol-overlay.open{opacity:1;pointer-events:auto;}
#pol-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-54%);z-index:501;background:#fff;width:min(560px,calc(100vw - 32px));max-height:82vh;overflow-y:auto;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;}
#pol-modal.open{opacity:1;transform:translate(-50%,-50%);pointer-events:auto;}
.pm-head{display:flex;align-items:center;gap:20px;padding:28px 32px 22px;border-bottom:1px solid var(--rule);position:relative;}
.pm-av{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:25px;font-weight:700;color:#fff;flex-shrink:0;}
.pm-party{font-size:10px;font-weight:700;letter-spacing:.14em;margin-bottom:5px;}
.pm-name{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--black);}
.pm-kana{font-size:11px;color:var(--light);margin-top:3px;}
.pm-body{padding:22px 32px 28px;}
.pm-sec{margin-bottom:20px;}
.pm-sec-label{font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--red);margin-bottom:10px;}
.pm-sec-text{font-size:13.5px;color:var(--mid);line-height:2.1;}
.pm-proposals{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.pm-pi{display:flex;gap:14px;align-items:flex-start;background:var(--bgwarm);padding:14px 16px;border-left:2px solid var(--red);}
.pm-pi-n{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--red);flex-shrink:0;line-height:1;margin-top:1px;}
.pm-pi-t{font-size:12.5px;color:var(--ink);line-height:1.75;}
.pm-dl{display:flex;align-items:center;gap:8px;background:var(--red);color:#fff;padding:13px 22px;font-size:13px;font-weight:700;letter-spacing:.1em;text-decoration:none;margin-top:8px;transition:background .2s;}
.pm-dl:hover{background:var(--red-dark);}
.pm-dl svg{width:14px;height:14px;fill:currentColor;flex-shrink:0;}
.pm-close{position:absolute;top:16px;right:16px;width:30px;height:30px;background:none;border:1px solid var(--rule);cursor:pointer;font-size:15px;color:var(--mid);display:flex;align-items:center;justify-content:center;transition:all .18s;line-height:1;}
.pm-close:hover{background:var(--red);color:#fff;border-color:var(--red);}
@media(max-width:900px){.pol-grid{grid-template-columns:repeat(4,1fr);}.pol-card:nth-child(5n){border-right:1px solid var(--rule);}.pol-card:nth-child(4n){border-right:none;}}
@media(max-width:640px){.pol-grid{grid-template-columns:repeat(3,1fr);}.pol-av{width:44px;height:44px;font-size:17px;}.pm-head{padding:22px 20px 18px;}.pm-body{padding:18px 20px 24px;}.pol-card:nth-child(4n){border-right:1px solid var(--rule);}.pol-card:nth-child(3n){border-right:none;}}

/* ── TWEAKS ── */
#twp{display:none;position:fixed;bottom:24px;right:24px;width:256px;background:var(--white);border:1px solid var(--rule);box-shadow:0 8px 40px rgba(0,0,0,.13);z-index:300;padding:20px;}
#twp h3{font-family:var(--serif);font-size:13.5px;font-weight:700;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--rule);}
.tr{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.tl{font-size:11.5px;color:var(--mid);}
.tt{display:flex;gap:5px;}
.tb{padding:4px 10px;font-size:10.5px;border:1px solid var(--rule);cursor:pointer;background:var(--bg);letter-spacing:.05em;transition:all .18s;font-family:var(--sans);}
.tb.a{background:var(--red);color:#fff;border-color:var(--red);}

/* ── HAMBURGER ── */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;z-index:210;}
.nav-burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:1px;transition:transform .25s,opacity .25s;}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── RESPONSIVE: TABLET ── */
@media(max-width:900px){
  .container,.nav-in,.footer-in,.vision-in{padding:0 24px;}
  .message-grid,.about-top,.policy-head,.events,.contact-grid,.pd-body,.proposal-grid{grid-template-columns:1fr;gap:32px;}
  .policy-cards,.members-grid,.pillars{grid-template-columns:1fr;}
  .media-bar{flex-direction:column;}
  .press-grid{grid-template-columns:1fr 1fr;}
  .hero-l{padding:64px 32px 100px;}
  .hero-r{padding:48px 32px 100px 0;}
}

/* ── RESPONSIVE: MOBILE ── */
@media(max-width:640px){
  /* デスクトップ横帯ナビ本体は非表示。ロゴは小さく左上に残す。バーガー未使用 */
  #nav{height:52px;}
  .nav-in{padding:0 16px;height:52px;}
  .logo{font-size:12px;}
  .logo img{height:28px!important;width:28px!important;}
  .nav-burger{display:none!important;}
  .nav-links{display:none!important;}

  /* Containers */
  .container,.footer-in,.vision-in{padding:0 20px;}

  /* Hero */
  #hero{grid-template-columns:1fr;min-height:auto;}
  .hero-l{padding:88px 20px 40px;}
  .hero-h1{font-size:clamp(26px,7vw,36px);}
  .hero-r{padding:0 20px 56px;gap:0;}
  .hero-r > div{border-radius:0;}

  /* Sections spacing */
  #about,#policy,#activity,#members,#contact,#press{padding:64px 0;}
  #news{padding:56px 0;}
  #message{padding:64px 0;}
  #vision{padding:56px 0;}

  /* About pillars */
  .pillars{grid-template-columns:1fr;}
  .pillar{padding:28px 20px;}

  /* Policy */
  .policy-cards{grid-template-columns:1fr;}
  .pc{padding:28px 20px;}
  .policy-detail{padding:28px 20px;}
  .pd-body{grid-template-columns:1fr;gap:20px;}

  /* Press */
  .press-grid{grid-template-columns:1fr;}

  /* Events */
  .events{grid-template-columns:1fr;}
  .event{padding:28px 20px;}
  .media-bar{flex-direction:column;}

  /* Proposal */
  .proposal-grid{grid-template-columns:1fr;}
  .proposal-stat-big{padding:28px 20px;}
  .proposal-stat-big .num{font-size:56px;}

  /* News */
  .news-head{flex-direction:column;align-items:flex-start;gap:16px;}
  .ni{flex-wrap:wrap;gap:6px;padding:14px 16px;}
  .ni-date{width:auto;font-size:10.5px;}
  .ni-arr{display:none;}

  /* Members */
  .members-grid{grid-template-columns:1fr;}
  .mc{padding:32px 20px;}

  /* Contact */
  .contact-grid{grid-template-columns:1fr;gap:40px;}
  .cf-row{grid-template-columns:1fr;}

  /* Footer */
  .footer-in{flex-direction:column;align-items:flex-start;gap:16px;}
  .sns-bar{flex-wrap:wrap;gap:12px;}

  /* Tweaks */
  #twp{width:calc(100% - 40px);right:20px;bottom:20px;}
}
/* TASK 3: back-to-top button */
#back-to-top{position:fixed;bottom:32px;right:32px;width:44px;height:44px;background:var(--red);border:none;cursor:pointer;z-index:400;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s,background .2s,transform .15s;padding:0;}
#back-to-top.show{opacity:1;pointer-events:auto;}
#back-to-top:hover{background:var(--red-dark);transform:translateY(-2px);}
#back-to-top svg{width:18px;height:18px;fill:#fff;}
@media(max-width:640px){#back-to-top{bottom:20px;right:16px;width:38px;height:38px;}#back-to-top svg{width:15px;height:15px;}}

/* TASK 4: SNS feed section */
#sns-feed{background:var(--bgwarm);padding:72px 0;}
#sns-feed .section-title{margin-bottom:40px;}
.sns-feed-grid{display:flex;justify-content:center;margin-top:32px;}
.sns-feed-col{width:100%;max-width:560px;margin:0 auto;border:1px solid var(--rule);background:var(--white);padding:20px;}
.sns-feed-header{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--mid);text-transform:uppercase;margin-bottom:16px;}
@media(max-width:640px){.sns-feed-col{width:100%;padding:14px;}}

/* ── A11Y: Skip link (WCAG 2.4.1 Bypass Blocks) ── */
.skip-link{position:absolute;top:-48px;left:8px;background:var(--red);color:#fff;padding:10px 18px;z-index:9999;font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:top .15s;}
.skip-link:focus,.skip-link:focus-visible{top:8px;outline:2px solid #fff;outline-offset:2px;}

/* ── A11Y: Focus visible (WCAG 2.4.7 / 2.4.11) ── */
:focus{outline:none;}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:2px;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.cf-input:focus-visible{outline:2px solid #fff;outline-offset:0;}

/* ── 全アニメーション有効化（reduced-motion 抑制は撤去） ── */

/* ── MOTION EXTRAS ── */
/* Ken Burns on hero (very slow zoom+drift, capped on reduced-motion) */
@keyframes kenburns{
  0%{transform:scale(1.02) translate(0,0);}
  100%{transform:scale(1.09) translate(-1.5%,-1%);}
}
.hero-bg img{animation:kenburns 24s ease-out forwards;will-change:transform;}
/* Magnetic CTA — JS sets --mx / --my based on pointer */
.btn-red,.cf-submit,.nav-cta{transition:transform .25s cubic-bezier(.2,.9,.3,1.2),background .2s,letter-spacing .22s;}
.btn-red.magnet,.cf-submit.magnet,.nav-cta.magnet{transform:translate(var(--mx,0),var(--my,0));}
/* Card tilt (3D lift + rotation) — 全カードに適用 */
.pol-card,.press-card,.pillar,.pc,.event,.mc,.expert-card,.audience-card,.ni{
  transform-style:preserve-3d;
  transition:transform .45s cubic-bezier(.2,.9,.3,1.2),background .22s,border-color .22s,box-shadow .45s;
}
/* tilt クラス: perspective + Z リフト（レイアウトに隙間を作らない） */
.pol-card.tilt,.press-card.tilt,.pillar.tilt,.pc.tilt,.event.tilt,.mc.tilt,.expert-card.tilt,.audience-card.tilt{
  transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateZ(14px);
}
.ni.tilt{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateZ(6px) translateX(4px);}
@media(hover:none){.pol-card.tilt,.press-card.tilt,.pillar.tilt,.pc.tilt,.event.tilt,.mc.tilt,.expert-card.tilt,.audience-card.tilt,.ni.tilt{transform:none;}}
/* Word-split reveal on section titles */
.section-title .wrd{display:inline-block;opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.9,.3,1);}
.section-title.revealed .wrd{opacity:1;transform:none;}
.section-title.revealed .wrd:nth-child(1){transition-delay:.02s;}
.section-title.revealed .wrd:nth-child(2){transition-delay:.1s;}
.section-title.revealed .wrd:nth-child(3){transition-delay:.18s;}
.section-title.revealed .wrd:nth-child(4){transition-delay:.26s;}
.section-title.revealed .wrd:nth-child(5){transition-delay:.34s;}
.section-title.revealed .wrd:nth-child(n+6){transition-delay:.4s;}
/* Footer peel-up reveal */
/* footer: 常時表示 + 滑らかな入場（IntersectionObserver で .revealed が付かない場合も常に見える） */
#site-footer{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.9,.3,1);}
#site-footer.revealed{transform:none;opacity:1;}
/* (reduced-motion ガード撤去) */

/* ── FAQ PAGE ── */
.page-hero{padding:80px 0 64px;background:var(--bgwarm);}
.page-hero h1{font-family:var(--serif);font-size:clamp(28px,3.5vw,48px);font-weight:700;line-height:1.5;letter-spacing:.04em;margin-top:12px;color:var(--black);}
.page-hero p.lead{font-size:14px;color:var(--mid);line-height:2.1;margin-top:16px;max-width:560px;}
.page-hero .anchors{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap;}
.faq-section{padding:80px 0;}
.faq-section.warm{background:var(--bgwarm);}
.faq-head{margin-bottom:40px;}
.faq-list{display:flex;flex-direction:column;gap:10px;background:transparent;border:none;}
details.faq-item{background:var(--white);transition:background .2s,box-shadow .25s,transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.05);}
details.faq-item:hover{box-shadow:0 2px 6px rgba(0,0,0,.05),0 12px 28px rgba(0,0,0,.08);transform:translateY(-1px);}
details.faq-item[open]{background:var(--red-pale);box-shadow:0 4px 12px rgba(155,14,28,.10),0 16px 40px rgba(155,14,28,.08);}
details.faq-item > summary{
  list-style:none;cursor:pointer;padding:24px 28px;display:flex;align-items:flex-start;gap:18px;
  font-family:var(--serif);font-size:15.5px;font-weight:700;letter-spacing:.03em;line-height:1.7;color:var(--ink);
  position:relative;transition:color .2s;
}
details.faq-item > summary::-webkit-details-marker{display:none;}
details.faq-item > summary::before{
  content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:var(--red);
  transform:scaleY(0);transform-origin:top;transition:transform .25s;
}
details.faq-item[open] > summary::before{transform:scaleY(1);}
details.faq-item:hover > summary{color:var(--red);}
.q-mark{
  font-family:var(--serif);font-size:18px;font-weight:700;color:var(--red);line-height:1.5;
  flex-shrink:0;width:28px;
}
.q-text{flex:1;}
.q-toggle{
  flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--red);
  display:flex;align-items:center;gap:8px;padding-top:4px;
}
.q-toggle .ico{
  display:inline-block;width:14px;height:14px;position:relative;
}
.q-toggle .ico::before,.q-toggle .ico::after{
  content:'';position:absolute;top:50%;left:0;width:14px;height:2px;background:var(--red);transition:transform .25s;
}
.q-toggle .ico::after{transform:rotate(90deg);}
details.faq-item[open] .q-toggle .ico::after{transform:rotate(0);}
.faq-body{
  padding:0 28px 28px 74px;font-size:13.5px;color:var(--mid);line-height:2.1;letter-spacing:.02em;
}
/* （ターゲット強調機能は撤去） */
#faq-cta{background:var(--red);color:#fff;padding:64px 0;text-align:center;}
#faq-cta h2{font-family:var(--serif);font-size:clamp(20px,2.4vw,30px);font-weight:700;letter-spacing:.05em;line-height:1.6;margin-bottom:14px;}
#faq-cta p{font-size:13.5px;color:rgba(255,255,255,.85);line-height:2;margin-bottom:28px;max-width:560px;margin-left:auto;margin-right:auto;}
#faq-cta .btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
#faq-cta .btn-white{background:#fff;color:var(--red);padding:13px 30px;font-size:13px;font-weight:700;letter-spacing:.12em;display:inline-block;transition:transform .15s,background .2s;}
#faq-cta .btn-white:hover{transform:translateY(-2px);background:#fff8f8;}
#faq-cta .btn-ghost{border:1px solid rgba(255,255,255,.45);color:#fff;padding:12px 28px;font-size:13px;font-weight:500;letter-spacing:.1em;display:inline-block;transition:background .2s;}
#faq-cta .btn-ghost:hover{background:rgba(255,255,255,.1);}
@media(max-width:640px){
  .page-hero{padding:64px 0 48px;}
  .faq-section{padding:56px 0;}
  details.faq-item > summary{padding:18px 18px;font-size:14px;gap:12px;}
  .q-mark{font-size:16px;width:22px;}
  .q-toggle{font-size:0;gap:0;}
  .q-toggle .ico{width:12px;height:12px;}
  .q-toggle .ico::before,.q-toggle .ico::after{width:12px;}
  .faq-body{padding:0 18px 22px 52px;font-size:13px;}
  #faq-cta{padding:48px 0;}
}

/* ── MOBILE FLOATING NAV (≤640px) ── */
.mobile-floating-nav{display:none!important;}
@media(max-width:640px){
  /* デスクトップ用ナビリンクとバーガーをモバイルでは非表示にし、フローティングナビへ統一 */
  .nav-links{display:none!important;}
  .nav-burger{display:none!important;}

  /* 上部ナビ高さを縮める（ロゴだけ残す） */
  #nav .nav-in{padding-right:20px;}

  /* フローティングナビ本体 */
  .mobile-floating-nav{
    display:flex;
    position:fixed;
    left:50%;
    transform:translateX(-50%);
    bottom:max(16px, env(safe-area-inset-bottom));
    z-index:400;
    align-items:center;
    justify-content:space-around;
    gap:2px;
    padding:8px 10px;
    width:min(400px, calc(100vw - 16px));
    background:rgba(255,255,255,.97);
    border-radius:999px;
    box-shadow:0 8px 28px rgba(0,0,0,.14), 0 2px 6px rgba(0,0,0,.06);
    border:1px solid rgba(0,0,0,.04);
  }
  .mfn-item{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-width:38px;
    height:44px;
    color:var(--mid);
    text-decoration:none;
    font-size:9.5px;
    letter-spacing:.02em;
    transition:color .25s;
    position:relative;
  }
  .mfn-item .mfn-icon{
    width:22px;
    height:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:transform .25s, color .25s;
  }
  .mfn-item .mfn-icon svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
  .mfn-item .mfn-label{transition:opacity .25s;}
  .mfn-item:hover{color:var(--red);}

  /* アクティブ：赤い円が浮き上がり、アイコンが白くなる */
  .mfn-item.active{color:var(--red);}
  .mfn-item.active .mfn-icon{
    width:56px;
    height:56px;
    background:var(--red);
    color:#fff;
    border-radius:50%;
    transform:translateY(-18px);
    box-shadow:0 6px 18px rgba(155,14,28,.45);
  }
  .mfn-item.active .mfn-icon svg{width:24px;height:24px;stroke-width:2;}
  .mfn-item.active .mfn-label{
    position:absolute;
    bottom:2px;
    color:var(--red);
    font-weight:700;
  }

  /* back-to-topがフローティングナビと重ならないように */
  #back-to-top{bottom:88px!important;}
}

/* ── 角丸（border-radius）統一 ── */
.press-card{border-radius:24px;overflow:hidden;}
.pol-card{border-radius:0;}
.pol-grid{border-radius:24px;overflow:hidden;}
.mc{border-radius:24px;}
.members-grid{border-radius:28px;overflow:hidden;}
#pol-modal{border-radius:32px;}
.pillars,.policy-cards{border-radius:24px;overflow:hidden;}
.events,.media-bar,.proposal-list,.news-list{border-radius:20px;overflow:hidden;}
details.faq-item{border-radius:18px;}
.btn-red,.cf-submit,.press-dl,.pm-dl,.btn-outline{border-radius:999px;}

/* ── 角丸 追加・拡張 ── */
.hero-card{border-radius:18px;}
.hero-r > div > div{border-radius:18px;overflow:hidden;}
.cf-input{border-radius:14px;}
.event,.media-item,.ni{border-radius:16px;}
.pillar,.pc{border-radius:18px;}
.event-tag,.ni-tag,.press-pdf-badge,.badge,.mc-tag{border-radius:999px;}
.event-voice{border-radius:12px;}
.proposal-stat-big{border-radius:24px;}
.pl-head{border-radius:20px 20px 0 0;}
.pl-name{border-radius:8px;}
.pm-pi{border-radius:14px;}
.message-photo,.message-photo-placeholder{border-radius:18px;}
.press-thumb{border-radius:24px 24px 0 0;}
.proposal-list,.policy-detail,.news-list,.faq-list{overflow:hidden;}
.policy-detail{border-radius:0 0 24px 24px;}
.sns-feed-col{border-radius:20px;}
#twp{border-radius:16px;}
.pol-filter-search input,.pf-chip{border-radius:999px;}
.proposal-list{border-radius:20px;}
.cf-success{border-radius:14px;}
#back-to-top{border-radius:50%;}

/* ── NAV: 中間幅レスポンシブ（タブレット〜狭ラップトップ） ── */
@media(max-width:1100px){
  .nav-in{padding:0 24px;}
  .logo{font-size:13px;}
  .logo img{height:32px!important;width:32px!important;}
  .nav-links{gap:20px;}
  .nav-links a{font-size:12px;}
  .nav-links a.nav-cta{padding:7px 14px;}
}
@media(max-width:900px){
  .nav-in{padding:0 20px;}
  .logo-text{display:none;}
  .logo img{height:30px!important;width:30px!important;}
  .nav-links{gap:16px;}
  .nav-links a{font-size:11.5px;letter-spacing:.04em;}
  .nav-links a.nav-cta{padding:6px 12px;font-size:11.5px;}
  /* テキスト非表示時は均等パディングで正円に */
  .site-logo{padding:8px;}
  /* pill-nav：JSが動的配置するまでのCSSフォールバック */
  .pill-nav{
    left:96px;           /* ロゴ円(~64px) + 32px余白（JSが上書きするので概算で可） */
    right:10px;
    transform:none;
    padding:4px 5px;
    overflow-x:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
    justify-content:flex-start;
  }
  .pill-nav::-webkit-scrollbar{display:none;}
  .nav-item{padding:6px 9px;font-size:11px;letter-spacing:.02em;}
}
@media(max-width:640px){
  .pill-nav{
    left:86px;
    right:6px;
    padding:3px 4px;
  }
  .nav-item{padding:5px 7px;font-size:10.5px;}
}

/* ── EXPERT GRID（専門家・有識者カード） ── */
.expert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--white);border:1px solid var(--rule);border-radius:24px;overflow:hidden;}
.expert-card{background:var(--white);padding:28px 24px 26px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .18s;}
.expert-card:nth-child(3n){border-right:none;}
.expert-card:hover{background:var(--bgwarm);}
.expert-av{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:22px;font-weight:700;color:#fff;flex-shrink:0;}
.expert-field-b{font-size:9.5px;font-weight:700;letter-spacing:.1em;color:#fff;padding:3px 9px;border-radius:999px;}
.expert-name{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--black);margin-top:2px;line-height:1.4;}
.expert-kana{font-size:10px;color:var(--light);letter-spacing:.04em;}
.expert-pos{font-size:11px;color:var(--mid);letter-spacing:.04em;margin-top:2px;}
.expert-org{font-size:11.5px;color:var(--ink);letter-spacing:.02em;margin-top:4px;line-height:1.55;}
@media(max-width:900px){
  .expert-grid{grid-template-columns:repeat(2,1fr);}
  .expert-card:nth-child(3n){border-right:1px solid var(--rule);}
  .expert-card:nth-child(2n){border-right:none;}
}
@media(max-width:560px){
  .expert-grid{grid-template-columns:1fr;}
  .expert-card{border-right:none!important;}
}

/* ============================================================
   ── ENHANCEMENT LAYER (CSS強化・モーション拡張) ──
   既存スタイルの上書き・統一化。末尾に集約して優先度を担保。
   ============================================================ */

/* ── タイポグラフィ：日本語カーニング & 数字等幅 ── */
h1,h2,h3,h4,h5,h6,
.section-title,.hero-h1,.page-hero h1,
.pillar-title,.pc-title,.event-title,.press-title,
.mc-name,.expert-name,.pol-name-j,.pm-name,
.vision-title,.vision-sub,.contact-title,.quote-body,
.message-sig span,.pd-title{
  font-feature-settings:"palt" 1, "kern" 1;
  text-rendering:optimizeLegibility;
}
.section-title{letter-spacing:.05em;}
.hero-card-num,.proposal-stat-big .num,.count-num,
.hero-news-date,.event-date,.press-date,.ni-date,.media-date{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

/* ── イージングトークン ── */
:root{
  --ez-snap:cubic-bezier(.2,.9,.3,1);
  --ez-soft:cubic-bezier(.16,1,.3,1);
  --shadow-sm:0 1px 2px rgba(0,0,0,.04), 0 2px 6px rgba(0,0,0,.04);
  --shadow-md:0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.06), 0 12px 32px rgba(0,0,0,.04);
  --shadow-lg:0 2px 4px rgba(0,0,0,.05), 0 8px 24px rgba(0,0,0,.08), 0 24px 56px rgba(0,0,0,.06);
  --shadow-red:0 4px 14px rgba(155,14,28,.18), 0 12px 32px rgba(155,14,28,.14);
}

/* ── セクションタイトル左の縦バー ── */
.section-title{position:relative;}
.section-title::before{
  content:'';position:absolute;left:-18px;top:.35em;
  width:4px;height:.85em;background:var(--red);border-radius:2px;
  transform:scaleY(0);transform-origin:top;
  transition:transform .55s var(--ez-soft);
}
.section-title.revealed::before{transform:scaleY(1);}
@media(max-width:900px){.section-title::before{display:none;}}

/* ── eyebrow ラベル：ドットを微発光 ── */
.label::before{
  background:var(--red);
  box-shadow:0 0 0 0 rgba(155,14,28,.45);
  animation:lblPulse 2.4s ease-in-out infinite;
}
@keyframes lblPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(155,14,28,.0);}
  50%{box-shadow:0 0 0 4px rgba(155,14,28,.18);}
}

/* ── シャドウ強化：カード／モーダル／フォーム ── */
.press-card{
  border:none;
  box-shadow:0 0 0 1px rgba(0,0,0,.05), var(--shadow-sm);
  transition:transform .35s var(--ez-snap),
             box-shadow .35s var(--ez-snap),
             border-color .25s ease;
}
.press-card:hover{
  /* transform は .press-card.tilt (translateZ) に委ねる */
  box-shadow:0 0 0 1px rgba(155,14,28,.18), var(--shadow-lg);
}
.press-card:hover .press-thumb img{transform:scale(1.06);}

.hero-card{
  border:none;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  box-shadow:0 0 0 1px rgba(0,0,0,.05), var(--shadow-md);
  transition:transform .35s var(--ez-snap), box-shadow .35s var(--ez-snap);
}
.hero-card:hover{
  transform:translateY(-3px);
  box-shadow:0 0 0 1px rgba(155,14,28,.18), var(--shadow-lg);
}

#pol-modal{
  box-shadow:0 0 0 1px rgba(0,0,0,.08),
             0 30px 80px rgba(0,0,0,.28),
             0 8px 24px rgba(0,0,0,.18);
}

.cf-input{
  box-shadow:inset 0 1px 2px rgba(0,0,0,.18);
  transition:border-color .25s var(--ez-snap),
             background .25s var(--ez-snap),
             box-shadow .3s var(--ez-snap),
             transform .25s var(--ez-snap);
}
.cf-input:focus{
  background:rgba(255,255,255,.14);
  box-shadow:inset 0 -2px 0 0 var(--red), 0 0 0 3px rgba(155,14,28,.18);
}

/* ── グラデーション：CTA／hero-bg／アバター ── */
.btn-red,.cf-submit,.press-dl,.pm-dl,.nav-cta{
  background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%);
  position:relative;overflow:hidden;
  box-shadow:var(--shadow-red);
  transition:transform .3s var(--ez-snap),
             box-shadow .3s var(--ez-snap),
             letter-spacing .25s var(--ez-snap);
}
.btn-red::before,.cf-submit::before,.press-dl::before,.pm-dl::before,.nav-cta::before{
  content:'';position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.32), transparent);
  transform:skewX(-20deg);
  transition:left .65s var(--ez-soft);
  pointer-events:none;
}
.btn-red:hover,.cf-submit:hover,.press-dl:hover,.pm-dl:hover,.nav-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(155,14,28,.28), 0 16px 40px rgba(155,14,28,.18);
  letter-spacing:.14em;
}
.btn-red:hover::before,.cf-submit:hover::before,
.press-dl:hover::before,.pm-dl:hover::before,
.nav-cta:hover::before{left:140%;}
.btn-red:active,.cf-submit:active,.press-dl:active,.pm-dl:active,.nav-cta:active{
  transform:translateY(0) scale(.98);
}

/* btn-outline：ホバー脈動 */
.btn-outline{
  transition:border-color .25s var(--ez-snap),
             color .25s var(--ez-snap),
             background .25s var(--ez-snap),
             transform .25s var(--ez-snap),
             box-shadow .3s var(--ez-snap);
}
.btn-outline:hover{
  transform:translateY(-2px);
  background:var(--red-pale);
  box-shadow:0 0 0 1px var(--red), 0 8px 18px rgba(155,14,28,.12);
}

/* hero 背景に淡いグラデオーバーレイ */
.hero-bg-overlay{
  background:linear-gradient(135deg, rgba(250,250,248,.92) 0%, rgba(250,250,248,.78) 60%, rgba(255,245,245,.7) 100%);
}

/* 議員アバター：グラデ + 内側ハイライト */
.pol-av,.pm-av,.expert-av{
  background-image:linear-gradient(135deg, rgba(255,255,255,.18), transparent 60%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),
             0 4px 10px rgba(0,0,0,.12);
  transition:transform .35s var(--ez-snap),
             box-shadow .35s var(--ez-snap),
             filter .35s var(--ez-snap);
}
.pol-card:hover .pol-av{
  transform:scale(1.1) rotate(5deg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),
             0 8px 18px rgba(0,0,0,.18);
  filter:saturate(1.15);
}

/* メンバー画像枠：ホバー時赤 */
.mc{
  transition:background .3s var(--ez-snap),
             transform .35s var(--ez-snap),
             box-shadow .35s var(--ez-snap);
  position:relative;
}
.mc:hover{
  /* transform は tilt クラスに委ねる — translateY(-4px) 廃止 */
  box-shadow:0 0 0 1px rgba(155,14,28,.18), var(--shadow-md);
}

/* expert / pillar / pc / event ホバー統一 — transform は tilt クラスに委ねる */
.expert-card:hover,.pillar:hover,.pc:hover,.event:hover,.audience-card:hover{
  box-shadow:0 20px 44px rgba(0,0,0,.12),0 0 0 1px rgba(155,14,28,.12);
  z-index:2;
}

/* pillar 番号：ホバー時に赤化 */
.pillar:hover .pillar-n,.pc:hover .pc-n{
  color:var(--red);
  transition:color .3s var(--ez-snap);
}

/* news item：矢印スライド */
.ni{
  transition:background .3s var(--ez-snap),
             transform .25s var(--ez-snap),
             box-shadow .3s var(--ez-snap);
}
.ni:hover{
  /* transform は .ni.tilt に委ねる — translateX(-4px) 廃止 */
  box-shadow:inset 3px 0 0 var(--red);
}
.ni-arr{
  transition:opacity .25s var(--ez-snap),
             transform .3s var(--ez-snap);
  display:inline-block;
}
.ni:hover .ni-arr{transform:translateX(4px);}

/* pol-card hover の "提言を見る →" */
.pol-card::after{transition:opacity .25s var(--ez-snap), transform .3s var(--ez-snap); transform:translateX(-4px);}
.pol-card:hover::after{transform:translateX(0);}

/* ── ナビリンク：ホバー時アンダーライン強化（左から滑り出る） ── */
.nav-links a::after{
  height:2px;background:var(--red);
  transition:transform .35s var(--ez-snap);
}

/* ── 入場アニメ強化 ── */
html.js-anim .fi{opacity:0;transform:translateY(28px) scale(.985);}
.fi{transition:opacity .7s var(--ez-soft),
                transform .7s var(--ez-soft);}
html.js-anim .fi.v{opacity:1;transform:none;}

html.js-anim .sg>*{opacity:0;transform:translateY(22px) scale(.99);}
.sg>*{transition:opacity .6s var(--ez-soft),
                  transform .6s var(--ez-soft);}
html.js-anim .sg.sv>*{opacity:1;transform:none;}

/* ── カウントアップ発光 ── */
.count-num{
  transition:text-shadow .35s ease, color .25s ease;
}
.count-num.counting{
  text-shadow:0 0 14px rgba(155,14,28,.35);
}

/* ── FAQ 開閉モーション強化 ── */
details.faq-item{
  transition:background .3s var(--ez-snap),
             box-shadow .3s var(--ez-snap);
}
details.faq-item[open]{
  box-shadow:0 0 0 1px rgba(155,14,28,.18), var(--shadow-sm);
}
.faq-body{
  animation:faqOpen .45s var(--ez-soft);
}
@keyframes faqOpen{
  from{opacity:0;transform:translateY(-6px);}
  to{opacity:1;transform:none;}
}
.q-toggle .ico::before,.q-toggle .ico::after{
  transition:transform .35s var(--ez-snap);
}

/* ── イベントタグ／バッジ：ホバー浮遊 ── */
.event-tag,.ni-tag,.press-pdf-badge{
  transition:transform .25s var(--ez-snap), box-shadow .25s var(--ez-snap);
}
.event:hover .event-tag,.ni:hover .ni-tag,.press-card:hover .press-pdf-badge{
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(155,14,28,.25);
}

/* ── アイコン svg：ボタン内 hover で右に滑る ── */
.press-dl svg,.pm-dl svg{
  transition:transform .3s var(--ez-snap);
}
.press-dl:hover svg,.pm-dl:hover svg{transform:translateX(3px);}

/* ── back-to-top：ふわっと浮遊 ── */
#back-to-top{
  background:linear-gradient(135deg, var(--red), var(--red-dark));
  box-shadow:var(--shadow-red);
  transition:opacity .3s, transform .3s var(--ez-snap), box-shadow .3s var(--ez-snap);
}
#back-to-top:hover{
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 10px 26px rgba(155,14,28,.35), 0 20px 48px rgba(155,14,28,.22);
}
#back-to-top svg{transition:transform .3s var(--ez-snap);}
#back-to-top:hover svg{transform:translateY(-2px);}

/* ── proposal-stat-big：微グラデ ── */
.proposal-stat-big{
  background:linear-gradient(135deg, var(--red), var(--red-dark));
  box-shadow:var(--shadow-red);
  position:relative;overflow:hidden;
}
.proposal-stat-big::before{
  content:'';position:absolute;top:-40%;right:-20%;width:200px;height:200px;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 70%);
  pointer-events:none;
}

/* ── vision バナー：微妙な内グラデ ── */
#vision{
  background:linear-gradient(135deg, var(--red) 0%, var(--red-dark) 100%);
}

/* ── contact 入力欄 placeholder アニメ補助 ── */
.cf-field{position:relative;}

/* ── pol-filter 入力：focus グロー ── */
.pol-filter-search input{
  transition:border-color .25s var(--ez-snap),
             box-shadow .3s var(--ez-snap),
             background .25s var(--ez-snap);
}
.pol-filter-search input:focus{
  box-shadow:0 0 0 3px rgba(155,14,28,.15);
}
.pf-chip{transition:all .25s var(--ez-snap);}
.pf-chip:hover{transform:translateY(-1px);}

/* ── h1 em 装飾アンダーライン強化 ── */
.hero-h1 em::after{
  height:6px;opacity:.32;border-radius:3px;
  background:linear-gradient(90deg, var(--red), var(--red-dark));
}

/* ── モバイルフローティングナビのアクティブ：脈動 ── */
@media(max-width:640px){
  .mfn-item.active .mfn-icon{
    animation:mfnPulse 2.6s ease-in-out infinite;
  }
}
@keyframes mfnPulse{
  0%,100%{box-shadow:0 6px 18px rgba(155,14,28,.45);}
  50%{box-shadow:0 8px 24px rgba(155,14,28,.6), 0 0 0 6px rgba(155,14,28,.08);}
}

/* ── will-change：重要要素のみ ── */
.press-card,.hero-card,.btn-red,.cf-submit,.pm-pi,.pol-card{will-change:transform;}

/* (reduced-motion ガード撤去) */

/* ══════════════════════════════════════════════════════════════
   LIQUID GLASS SYSTEM ― Apple Liquid Glass 完全実装
   feTurbulence SVG distortion + 4-layer structure
   ══════════════════════════════════════════════════════════════ */

/* ── pill-nav: backdropをglaze spanに移譲してSVG歪みを追加 ── */
.pill-nav{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
/* glaze: 歪み付きバックドロップ（テキストの後ろに配置） */
.pill-nav .glaze{
  position:absolute;inset:0;border-radius:inherit;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  filter:url(#glass-distortion-soft);
  overflow:hidden;isolation:isolate;
  z-index:0;pointer-events:none;
}
/* shine は glaze より上、テキストより下 */
.pill-nav::before{z-index:1;}
/* nav-item はすべての下地より上 */
.nav-item{z-index:2;}

/* ────────────────────────────────────
   GLASS BUTTON — 基本構造
   ──────────────────────────────────── */
.glass-btn{
  position:relative;
  display:inline-flex;
  align-items:stretch;
  justify-content:center;
  border-radius:999px;
  overflow:hidden;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--sans);
  font-size:13.5px;
  font-weight:700;
  letter-spacing:.1em;
  border:none;
  isolation:isolate;
  transition:transform .22s cubic-bezier(.2,.9,.3,1.2),
             box-shadow .22s ease;
  -webkit-tap-highlight-color:transparent;
  will-change:transform;
}
.glass-btn:hover {transform:translateY(-2px) scale(1.025);}
.glass-btn:active{transform:scale(.96);}

/* Layer 0: backdrop-filter + SVG distortion (歪みガラス層) */
.glass-btn .lge{
  position:absolute;inset:0;border-radius:inherit;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  filter:url(#glass-distortion);
  overflow:hidden;
  isolation:isolate;
  z-index:0;
}

/* Layer 1: color tint (色味調整層) */
.glass-btn .lgt{
  position:absolute;inset:0;border-radius:inherit;
  z-index:1;
}

/* Layer 2: specular shine（参考コード準拠: inset box-shadow） */
.glass-btn .lgs{
  position:absolute;inset:0;border-radius:inherit;
  box-shadow:
    inset  2px  2px 1px 0 rgba(255,255,255,.55),
    inset -1px -1px 1px 1px rgba(255,255,255,.45);
  z-index:2;
  pointer-events:none;
  overflow:hidden;
}

/* Layer 3: content (テキスト・アイコン層) */
.glass-btn .lgc{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 30px;
  white-space:nowrap;
}

/* ── Red variant (提言ページへ) ── */
.glass-btn--red{
  border:1px solid rgba(255,255,255,.45);
  box-shadow:
    0 6px 12px rgba(0,0,0,.18),
    0 0 20px  rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -1px 0 rgba(0,0,0,.10);
}
.glass-btn--red .lgt{background:rgba(155,14,28,.42);}
.glass-btn--red .lgc{
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.30);
}
.glass-btn--red:hover{
  box-shadow:
    0 8px 18px rgba(0,0,0,.22),
    0 0 28px  rgba(0,0,0,.12),
    inset 0 1px 0 rgba(255,255,255,.60),
    inset 0 -1px 0 rgba(0,0,0,.12);
}

/* ── Ghost variant (詳しく見る) ── */
.glass-btn--ghost{
  border:1px solid rgba(255,255,255,.50);
  box-shadow:
    0 6px 12px rgba(0,0,0,.15),
    0 0 20px  rgba(0,0,0,.08),
    inset 0 1px 0 rgba(255,255,255,.90),
    inset 0 -1px 0 rgba(0,0,0,.05);
}
.glass-btn--ghost .lgt{background:rgba(255,255,255,.25);}
.glass-btn--ghost .lgc{color:var(--ink);}
.glass-btn--ghost:hover{
  box-shadow:
    0 8px 18px rgba(0,0,0,.18),
    0 0 28px  rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -1px 0 rgba(0,0,0,.07);
}

/* ── Back-to-top: Liquid Glass 上書き ── */
#back-to-top{
  background:none !important;
  border:1px solid rgba(255,255,255,.45) !important;
  overflow:hidden !important;
  isolation:isolate !important;
  align-items:stretch !important;
  box-shadow:
    0 6px 12px rgba(0,0,0,.18),
    0 0 20px  rgba(0,0,0,.10),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
  transition:
    opacity .3s ease,
    transform .22s cubic-bezier(.2,.9,.3,1.2),
    box-shadow .22s ease !important;
}
#back-to-top .lge{
  position:absolute;inset:0;border-radius:inherit;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  filter:url(#glass-distortion);
  overflow:hidden;isolation:isolate;z-index:0;
}
#back-to-top .lgt{
  position:absolute;inset:0;border-radius:inherit;
  background:rgba(155,14,28,.42);z-index:1;
}
#back-to-top .lgs{
  position:absolute;inset:0;border-radius:inherit;
  box-shadow:
    inset  2px  2px 1px 0 rgba(255,255,255,.55),
    inset -1px -1px 1px 1px rgba(255,255,255,.45);
  z-index:2;pointer-events:none;overflow:hidden;
}
#back-to-top .lgc{
  position:relative;z-index:3;
  display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;
}
#back-to-top:hover{
  transform:translateY(-3px) scale(1.07) !important;
  box-shadow:
    0 10px 28px rgba(155,14,28,.26),
    0 0 0 1px rgba(255,255,255,.38),
    inset 0 1px 0 rgba(255,255,255,.60) !important;
}
#back-to-top:hover svg{transform:translateY(-1px);}
#back-to-top svg{transition:transform .25s cubic-bezier(.2,.9,.3,1.2);}

/* (reduced-motion ガード撤去) */

/* ════════════════════════════════════════════════════
   CARD HOVER ENHANCED — spotlight + spring lift
   ════════════════════════════════════════════════════ */

/* ── 全カードに overflow:hidden + position:relative（spotlight clipping） ── */
.pillar,.pc,.event,.mc,.expert-card,.audience-card{overflow:hidden;position:relative;}
.ni{position:relative;overflow:hidden;}

/* ── hover: shadow 強化（transform は JS tilt クラスに委ねる → translateY 廃止） ── */
.press-card:hover{
  border-color:rgba(155,14,28,.25) !important;
  box-shadow:0 30px 60px rgba(0,0,0,.14),0 10px 24px rgba(0,0,0,.08) !important;
}
.pol-card:hover{
  box-shadow:0 16px 36px rgba(0,0,0,.14) !important;
}

/* ── spotlight: マウス追従ラジアルグロー（全カード共通） ──
   ::before が赤バーで使用中 → ::after にスポットライト（press-card, pillar, pc, event, mc, expert-card, audience-card, ni）
   pol-card は ::after が"提言を見る"テキスト → ::before にスポットライト           */
.press-card::after,
.pillar::after,
.pc::after,
.event::after,
.mc::after,
.expert-card::after,
.audience-card::after,
.ni::after {
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle 220px at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.24) 0%,transparent 65%);
  opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:4;
}
.press-card:hover::after,
.pillar:hover::after,
.pc:hover::after,
.event:hover::after,
.mc:hover::after,
.expert-card:hover::after,
.audience-card:hover::after,
.ni:hover::after { opacity:1; }

/* pol-card: ::before（::after = "提言を見る" テキスト） */
.pol-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(circle 130px at var(--sx,50%) var(--sy,50%),rgba(255,255,255,.28) 0%,transparent 65%);
  opacity:0;transition:opacity .35s ease;pointer-events:none;z-index:1;
}
.pol-card:hover::before{opacity:1;}

/* (reduced-motion ガード撤去) */

/* ═════════════════════════════════════════════════════════════════
   ENHANCED MOTION LAYER
   - スクロール進捗バー / hero パララックス / ホバー浮き上がり
   - 全ユーザーに対して常時有効化
   ═════════════════════════════════════════════════════════════════ */

/* ── イージング・トークン ── */
:root{
  --ez-soft:   cubic-bezier(.2,.9,.3,1);
  --ez-snap:   cubic-bezier(.4,0,.2,1);
  --ez-back:   cubic-bezier(.34,1.32,.64,1);
}

/* ── 1. スクロール進捗バー（JSで <div id="scroll-progress"> を挿入） ── */
#scroll-progress{
  position:fixed;top:0;left:0;height:2px;
  background:linear-gradient(90deg,var(--red),#C71D2E,var(--red));
  width:0;z-index:600;pointer-events:none;
  transition:width .12s linear;
  box-shadow:0 0 8px rgba(155,14,28,.45);
}

/* ── 2. hero 写真パララックス用ベース（JSで transform を当てる） ── */
.ab-hero-photo,.pl-hero-photo,.pr-hero-photo,.ig-hero-photo,
.mb-hero-photo,.faq-hero-photo,.ct-hero-photo,.hero-bg img{
  transition: transform .8s var(--ez-soft);
  will-change: transform;
}

/* ── 3. 汎用 reveal-on-scroll（JSが .mr → .mr-in を付与） ── */
html.js-anim .mr{
  opacity:0;
  transform: translateY(28px);
  transition: opacity .85s var(--ez-soft), transform .85s var(--ez-soft);
}
html.js-anim .mr.mr-in{
  opacity:1;
  transform:none;
}

/* ── 4. ボタン・カードの浮き上がり（フワッと滑らかに） ── */
.btn-red,.btn-outline,.btn-pdf,.doc-dl,.btn-wh,.btn-wh-out,
button:not(.nav-burger):not([class*="burger"]),
a.btn,a.btn-red,a.btn-outline,a.btn-pdf,a.btn-wh,a.btn-wh-out,
.doc-card,.member-card,.pillar-card,.press-card,
.ni-card,.pc,.event,.expert-card,.hover-card,
.pillar,.audience-card,.mc,.ni{
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.55s cubic-bezier(0.16, 1, 0.3, 1),
              background-color 0.3s ease,
              border-color 0.3s ease,
              color 0.3s ease;
}
.btn-red:hover,.btn-outline:hover,.btn-pdf:hover,.doc-dl:hover,
.btn-wh:hover,.btn-wh-out:hover,
button:not(.nav-burger):not([class*="burger"]):hover,
a.btn:hover,a.btn-red:hover,a.btn-outline:hover,a.btn-pdf:hover,
a.btn-wh:hover,a.btn-wh-out:hover,
.doc-card:hover,.member-card:hover,.pillar-card:hover,.press-card:hover,
.ni-card:hover,.pc:hover,.event:hover,.expert-card:hover,.hover-card:hover,
.pillar:hover,.audience-card:hover,.mc:hover,.ni:hover{
  transform: translateY(-8px);
  box-shadow: 0 18px 36px -10px rgba(0, 0, 0, 0.18),
              0 6px 12px -6px rgba(0, 0, 0, 0.08);
}
/* 赤ボタンだけは影色を赤系に */
.btn-red:hover,.btn-pdf:hover,.doc-dl:hover{
  box-shadow: 0 18px 36px -10px rgba(155, 14, 28, 0.35),
              0 6px 14px -8px rgba(155, 14, 28, 0.22);
}
/* 白ボタン on 赤背景は白っぽい影で発光感 */
.btn-wh:hover,.btn-wh-out:hover{
  box-shadow: 0 18px 36px -10px rgba(255, 255, 255, 0.35),
              0 6px 14px -8px rgba(0, 0, 0, 0.18);
}
/* クリック時はやや沈み込み（柔らかく戻る） */
.btn-red:active,.btn-outline:active,.btn-pdf:active,.doc-dl:active,
.btn-wh:active,.btn-wh-out:active,
button:not(.nav-burger):not([class*="burger"]):active{
  transform: translateY(-2px);
  transition-duration: 0.15s;
}

/* ── 6. リンクのアンダーライン・スライド ── */
a.lnk{position:relative;display:inline-block;}
a.lnk::after{
  content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .35s var(--ez-soft);
}
a.lnk:hover::after{transform:scaleX(1);transform-origin:left;}

/* ── 7. focus-visible: アクセシビリティ重視の柔らかリング ── */
:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
  border-radius:4px;
  transition:outline-offset .15s var(--ez-snap);
}

/* ── 8. 画像 reveal（clip-path で柔らかく開く） ── */
@keyframes imgReveal{
  from{ clip-path: inset(0 100% 0 0); }
  to  { clip-path: inset(0 0 0 0); }
}
html.js-anim .img-reveal{ animation: imgReveal 1.1s var(--ez-soft) both; }

/* ── 9. ページ離脱フェード（JSフォールバック）の改良 ── */
body.page-leaving{
  opacity:0;
  filter:blur(4px);
  transform:translateY(-6px) scale(.998);
  transition: opacity .38s var(--ez-snap),
              filter .38s var(--ez-snap),
              transform .38s var(--ez-snap);
}

/* (reduced-motion ガード撤去：全アニメーションを常時有効化) */
