/*
Theme Name: ふじい信貴 後援会
Theme URI: https://createrium.co.jp
Author: CREATERIUM
Author URI: https://createrium.co.jp
Description: ふじい信貴 後援会 公式サイト - カスタムテーマ（1ページLP＋活動報告）
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: fujii
*/

:root{
  --bg:#bbb7da;
  --bg-soft:#aeaace;
  --navy:#423b73;
  --navy-deep:#2f2a53;
  --green:#5a4f95;
  --orange:#7b62c9;
  --fv-navy:#1F3A5F;
  --fv-navy-deep:#16293F;
  --fv-orange:#E2853C;
  --text:#2a2733;
  --text-soft:#5b5570;
  --white:#ffffff;
  --line:#cbc6e2;
  --maxw:1080px;
  --radius:16px;
  --shadow:0 8px 30px rgba(66,59,115,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.9;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  word-break:auto-phrase;
  overflow-wrap:anywhere;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
.mincho{font-family:"Shippori Mincho",serif}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* ===== Header ===== */
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,244,238,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:62px}
.brand{font-weight:900;font-size:1.18rem;color:var(--navy);letter-spacing:.04em}
.brand small{display:block;font-size:.62rem;font-weight:500;color:var(--text-soft);letter-spacing:.18em;margin-top:1px}
.nav-cta{
  background:var(--orange);color:#fff;font-weight:700;font-size:.86rem;
  padding:9px 18px;border-radius:999px;white-space:nowrap;
  box-shadow:0 4px 12px rgba(123,98,201,.3);transition:transform .2s,box-shadow .2s;
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(123,98,201,.4)}

/* ===== Hero (poster style) ===== */
.hero{position:relative;color:#fff;overflow:hidden;background:linear-gradient(120deg,var(--fv-navy-deep) 0%,var(--fv-navy) 58%,#2b5179 100%)}
.hero::before{content:"";position:absolute;inset:0;background:url('assets/images/hero/hero-bg.jpg') center 56%/cover no-repeat;opacity:.46;mix-blend-mode:luminosity;z-index:1}
.hero-panel-edge{position:absolute;inset:0;z-index:2;background:#ffffff;clip-path:polygon(0 0,60% 0,48% 100%,0 100%)}
.hero-panel{position:absolute;inset:0;z-index:3;background:linear-gradient(120deg,var(--fv-navy-deep) 0%,var(--fv-navy) 100%);clip-path:polygon(0 0,58.5% 0,46.5% 100%,0 100%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:7px;background:var(--fv-orange);z-index:6}
.hero-poster{position:relative;z-index:5;max-width:var(--maxw);margin:0 auto;padding:0 22px;display:grid;grid-template-columns:1fr .98fr;align-items:stretch;gap:16px;min-height:640px}
.hero-text{padding:40px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px}
.hero-text .kicker{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);font-size:.8rem;letter-spacing:.16em;padding:6px 15px;border-radius:999px}
.hero-vertical{display:flex;flex-direction:row-reverse;align-items:center;gap:26px}
.hero-vertical .vmain{writing-mode:vertical-rl;text-orientation:mixed;font-size:clamp(2.9rem,6.8vw,5rem);font-weight:900;line-height:1.6;letter-spacing:.1em;word-break:keep-all;border-right:5px solid var(--fv-orange);padding-right:22px;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.hero-vertical .vsub{writing-mode:vertical-rl;text-orientation:mixed;font-size:clamp(.95rem,1.5vw,1.12rem);font-weight:500;line-height:2;letter-spacing:.14em;color:#e9eef3;text-shadow:0 1px 10px rgba(0,0,0,.32)}
.hero-figure{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:640px}
.hero-cutout{max-height:560px;width:auto;max-width:100%;object-fit:contain;object-position:bottom;transform:scaleX(-1);filter:drop-shadow(0 12px 26px rgba(0,0,0,.45))}
.hero-figure picture{display:contents}
.hero-nameplate{position:absolute;left:50%;transform:translateX(-50%);bottom:24px;text-align:center;white-space:nowrap}
.hero-nameplate .np-name{display:block;font-size:clamp(2rem,3.4vw,2.7rem);font-weight:900;letter-spacing:.14em;text-shadow:0 2px 14px rgba(0,0,0,.7),0 0 6px rgba(0,0,0,.5)}
.hero-nameplate .np-read{display:block;font-size:.82rem;letter-spacing:.3em;color:#eef3ee;margin-top:5px;text-shadow:0 1px 10px rgba(0,0,0,.75)}
.hero-sns{position:absolute;left:50%;transform:translateX(140px);bottom:74px;z-index:7;display:flex;flex-direction:row;gap:12px}
.hero-sns a{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px rgba(0,0,0,.3)}
.hero-sns a:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(0,0,0,.35)}
.hero-sns svg{width:22px;height:22px;fill:#fff;display:block}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;padding:14px 26px;border-radius:999px;transition:transform .2s,box-shadow .2s;font-size:.98rem}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 6px 18px rgba(123,98,201,.35)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.4)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}

/* ===== Section base ===== */
section{padding:74px 0}
.sec-head{text-align:center;margin-bottom:46px}
.sec-head .label{font-size:.82rem;letter-spacing:.22em;color:var(--green);font-weight:700}
.sec-head h2{font-size:clamp(1.5rem,3.6vw,2rem);font-weight:900;color:var(--navy);margin-top:10px;line-height:1.5}
.lead{font-size:1.05rem;line-height:2.05;color:var(--text)}
.muted{color:var(--text-soft)}

/* ===== Greeting ===== */
.greeting{background:var(--bg)}
.greeting .inner{max-width:760px;margin:0 auto}
.greeting p{margin-bottom:1.2em;line-height:2.1}
.value-card{
  margin-top:34px;background:#fff;border-left:5px solid var(--orange);
  border-radius:14px;padding:28px 30px;box-shadow:var(--shadow)
}
.value-card .vtitle{font-weight:700;color:var(--green);font-size:.95rem;margin-bottom:10px}
.value-card .vmain{font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:14px}

/* ===== Town now ===== */
.townnow{background:var(--bg-soft)}
.issue-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0 34px}
.issue{background:#fff;border-radius:14px;padding:20px 16px;text-align:center;box-shadow:var(--shadow);font-weight:700;color:var(--navy);font-size:.96rem}
.issue .ic{display:block;width:46px;height:46px;margin:0 auto 12px}
.issue .ic svg{width:46px;height:46px;stroke:var(--navy);stroke-width:2.3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.statement{text-align:center;font-size:1.2rem;font-weight:700;color:var(--navy);margin:6px auto 40px;max-width:720px;line-height:1.9}
.statement em{color:var(--orange);font-style:normal}
.voices h3{text-align:center;color:var(--green);font-size:1rem;letter-spacing:.08em;margin-bottom:22px}
.voice-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:820px;margin:0 auto}
.voice{background:#fff;border-radius:14px;padding:16px 20px;box-shadow:var(--shadow);position:relative;font-size:.97rem}
.voice::before{content:"声";position:absolute;top:-10px;left:16px;background:var(--green);color:#fff;font-size:.66rem;padding:3px 9px;border-radius:999px}

/* ===== Three good ===== */
.threegood{position:relative;background:linear-gradient(180deg,rgba(53,47,96,.84) 0%,rgba(110,99,173,.5) 100%),url('assets/images/hero/hero-bg.jpg') center/cover no-repeat;color:#fff}
.threegood .sec-head h2{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.threegood .sec-head .label{color:#d9d0f5}
.threegood .sg-head{color:#fff;line-height:1.25;text-shadow:0 2px 16px rgba(0,0,0,.45);margin-top:8px}
.threegood .sg-head .sg-pre{font-size:clamp(1.1rem,2.4vw,1.7rem);font-weight:700;letter-spacing:.08em;vertical-align:baseline}
.threegood .sg-head .sg-big{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:900;font-size:clamp(2.6rem,7vw,4.6rem);letter-spacing:.05em;vertical-align:baseline}
.threegood .sg-head .sg-big .sg-ex{color:var(--orange)}
.threegood .sg-head .sg-post{display:block;font-size:clamp(1.25rem,2.8vw,1.8rem);font-weight:900;vertical-align:baseline}
@media(min-width:768px){
  .threegood .sg-head{white-space:nowrap}
  .threegood .sg-head .sg-post{display:inline;margin-left:.12em}
}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{position:relative;overflow:hidden;border-radius:var(--radius);background:linear-gradient(135deg,#5b51a0 0%,#36305e 100%);box-shadow:0 16px 40px rgba(0,0,0,.34);padding:30px 28px 28px;min-height:340px;color:#fff}
.pcard::before{content:"";position:absolute;inset:0;background:linear-gradient(116deg,transparent 60%,rgba(255,255,255,.07) 60%);pointer-events:none}
.pcard::after{content:"";position:absolute;top:0;bottom:0;right:40px;width:8px;background:var(--orange);transform:skewX(-14deg);opacity:.9}
.pcard .pnum{position:absolute;top:6px;left:20px;font-size:6.2rem;font-weight:900;font-style:italic;line-height:.8;color:transparent;-webkit-text-stroke:2px rgba(201,189,242,.9);letter-spacing:-.02em}
.pcard .picon{position:absolute;top:22px;right:20px;width:54px;height:54px;stroke:rgba(255,255,255,.6);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pcard .pbody{position:relative;z-index:2;margin-top:76px}
.pcard h3{font-size:1.45rem;font-weight:900;letter-spacing:.04em;color:#fff;line-height:1.4}
.pcard .psub{color:#c9bdf2;font-weight:700;font-size:.92rem;margin:4px 0 16px}
.pcard ul{list-style:none;margin-bottom:14px}
.pcard li{position:relative;padding:7px 0 7px 22px;font-size:.93rem;border-bottom:1px dashed rgba(255,255,255,.18)}
.pcard li:last-child{border-bottom:none}
.pcard li::before{content:"✓";position:absolute;left:0;color:#c9bdf2;font-weight:900}
.pcard .pfoot{font-size:.86rem;color:#d4dce6;line-height:1.8;margin-top:6px}

/* ===== Motivation (cinematic) ===== */
.motivation{position:relative;overflow:hidden;background:#17132e;color:#fff;padding:0}
.moti-figure{position:absolute;right:0;top:0;bottom:0;width:48%;max-width:600px;z-index:1}
.moti-figure picture{display:contents}
.moti-figure img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.05) brightness(.9);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 42%);mask-image:linear-gradient(to right,transparent 0%,#000 42%)}
.moti-content{position:relative;z-index:3;max-width:var(--maxw);margin:0 auto;padding:0 22px}
.moti-inner{max-width:60%;padding:78px 0}
.moti-label{display:inline-block;font-size:.8rem;letter-spacing:.22em;color:#c9bdf2;font-weight:700;margin-bottom:26px}
.moti-vert{display:flex;flex-direction:row;align-items:flex-start;gap:30px}
.moti-vert .mcatch{flex:0 0 auto;writing-mode:vertical-rl;text-orientation:mixed;font-family:"Shippori Mincho",serif;font-size:clamp(2rem,4.2vw,3.2rem);font-weight:700;line-height:1.55;letter-spacing:.14em;border-right:3px solid var(--orange);padding-right:18px;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.moti-vert .mcatch span{color:#c9bdf2}
.moti-vert .mbody{flex:1;font-size:clamp(.86rem,1vw,.95rem);line-height:2.05;color:#cdd6e1}
.moti-vert .mbody p{margin-bottom:1.05em}
.moti-vert .mbody p:last-child{margin-bottom:0;color:#eef2f6}

/* ===== Profile ===== */
.profile{background:var(--bg-soft)}
.profile-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:34px;align-items:start}
.profile-photo-wrap{position:relative;align-self:start}
.profile-photo-wrap::after{content:"";position:absolute;top:-18px;right:-16px;width:58%;height:72%;background:#c8c2e6;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);z-index:0}
.profile-photo{position:relative;z-index:1;width:100%;aspect-ratio:3/4;clip-path:polygon(0 0,100% 0,86% 100%,0 100%);box-shadow:0 16px 36px rgba(66,59,115,.20);background:#d8d2c6}
.profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.profile-media{position:relative}
.profile-sub{width:52%;margin:18px 0 0 auto;border-radius:12px;overflow:hidden;box-shadow:0 12px 28px rgba(66,59,115,.16)}
.profile-sub img{width:100%;display:block}
.pblock{background:#fff;border-radius:14px;padding:24px 26px;box-shadow:var(--shadow);margin-bottom:18px}
.pblock h3{font-size:1rem;color:var(--green);border-bottom:2px solid var(--line);padding-bottom:10px;margin-bottom:14px;letter-spacing:.04em}
.pblock ul{list-style:none}
.pblock.history li{padding:8px 0;border-bottom:1px dashed var(--line);font-size:.95rem;line-height:1.7}
.pblock.history li:last-child{border-bottom:none}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.82rem;color:var(--text-soft)}
.pname{margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--line)}
.pname .pname-name{display:block;font-size:1.7rem;font-weight:900;color:var(--navy);letter-spacing:.08em;line-height:1.3}
.pname .pname-birth{display:block;font-size:.92rem;color:var(--text-soft);margin-top:6px;letter-spacing:.04em}

/* ===== Activity ===== */
.activity{background:var(--bg)}
.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.act{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s}
.act:hover{transform:translateY(-4px)}
.act-thumb{width:100%;aspect-ratio:16/10;object-fit:cover;background:#d8d2c6}
.act-body{padding:18px 20px}
.act-date{font-size:.8rem;color:var(--orange);font-weight:700;letter-spacing:.05em}
.act-body h3{font-size:1.05rem;color:var(--navy);margin:6px 0 8px;line-height:1.6}
.act-body p{font-size:.9rem;color:var(--text-soft);line-height:1.8}
.center{text-align:center;margin-top:36px}
.act-feature{max-width:880px;margin:0 auto;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.act-feature-link{display:grid;grid-template-columns:.95fr 1.05fr;align-items:stretch}
.act-feature-thumb{width:100%;height:100%;min-height:280px;object-fit:cover;object-position:center top;background:#d8d2c6}
.act-feature-body{padding:32px 34px;display:flex;flex-direction:column;justify-content:center}
.act-feature-body .badge{align-self:flex-start;background:var(--green);color:#fff;font-size:.72rem;font-weight:700;padding:4px 11px;border-radius:999px;margin-bottom:12px}
.act-feature-body h3{font-size:1.35rem;color:var(--navy);font-weight:900;margin:2px 0 12px;line-height:1.55}
.act-feature-body p{font-size:.96rem;color:var(--text-soft);line-height:1.95}
.act-feature-body .readmore{margin-top:18px;color:var(--orange);font-weight:700;font-size:.92rem}
.act-note{text-align:center;color:var(--text-soft);margin-top:26px;font-size:.95rem}

/* ===== Activity feed (cards) ===== */
.ac-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 22px}
.ac a{display:block;color:inherit}
.ac-thumb{width:100%;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#d8d2c6}
.ac-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.ac a:hover .ac-thumb img{transform:scale(1.05)}
.ac-date{font-size:.82rem;color:#8a8a8a;margin:13px 0 8px;letter-spacing:.04em}
.ac-cat{display:inline-block;color:#fff;font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:3px;line-height:1.7}
.ac-title{font-size:.95rem;color:var(--navy);font-weight:700;line-height:1.6;margin-top:11px;transition:color .2s}
.ac a:hover .ac-title{color:var(--orange)}

/* ===== Post (single 活動報告) ===== */
.post-body{font-size:1rem;line-height:2.1;color:var(--text)}
.post-body p{margin-bottom:1.4em}
.post-body img{border-radius:12px;margin:1.2em 0}
.post-body h2,.post-body h3{color:var(--navy);margin:1.2em 0 .6em}
.pagination{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.pagination .page-numbers{display:inline-flex;min-width:42px;height:42px;align-items:center;justify-content:center;padding:0 12px;border-radius:10px;background:#fff;box-shadow:var(--shadow);color:var(--navy);font-weight:700}
.pagination .page-numbers.current{background:var(--navy);color:#fff}

/* ===== Support / Contact ===== */
.support{background:linear-gradient(160deg,var(--green) 0%,#322c5c 100%);color:#fff}
.support .sec-head h2{color:#fff}
.support .sec-head .label{color:#ddd2f5}
.support-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
.join{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);padding:28px}
.join h3{font-size:1.2rem;margin-bottom:8px}
.join p{color:#e7f1ea;margin-bottom:18px;font-size:.95rem}
.join ul{list-style:none;display:grid;gap:10px}
.join li{background:rgba(255,255,255,.1);border-radius:10px;padding:12px 14px;font-size:.95rem;display:flex;gap:10px;align-items:center}
.join li::before{content:"\2610";font-size:1.1rem;color:#ddd2f5}
.form-card{background:#fff;color:var(--text);border-radius:var(--radius);padding:28px;box-shadow:0 14px 40px rgba(0,0,0,.2)}
.form-card h3{color:var(--navy);font-size:1.15rem;margin-bottom:16px}
.field{margin-bottom:14px}
.field label{display:block;font-size:.86rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-family:inherit;font-size:.95rem;background:var(--bg)}
.field textarea{min-height:110px;resize:vertical}
.submit{width:100%;background:var(--orange);color:#fff;border:none;font-weight:700;font-size:1rem;padding:14px;border-radius:999px;cursor:pointer;font-family:inherit;box-shadow:0 6px 18px rgba(123,98,201,.35)}
.form-success{background:#eef0fb;color:#2f2a53;border:1px solid #cbc6e2;border-radius:10px;padding:14px 16px;font-size:.92rem;line-height:1.8;margin-bottom:14px}
.form-error{background:#fceaea;color:#a32d2d;border:1px solid #f0c0c0;border-radius:10px;padding:12px 14px;font-size:.88rem;line-height:1.7;margin-bottom:14px}
.office{margin-top:24px;background:rgba(0,0,0,.18);border-radius:14px;padding:22px;font-size:.95rem;line-height:2}
.office strong{display:block;font-size:1.05rem;margin-bottom:8px}
.sns{display:flex;gap:14px;margin-top:16px}
.sns a{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.sns a:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(0,0,0,.3)}
.sns a svg{width:24px;height:24px;fill:#fff;display:block}
.sns-fb{background:#1877F2}
.sns-ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}

/* ===== Footer ===== */
.footer{background:var(--navy-deep);color:#cdd6e1;text-align:center;padding:30px 0;font-size:.82rem}
.footer .brand2{font-weight:900;color:#fff;font-size:1.05rem;margin-bottom:8px}

/* ===== Reveal / Scroll animations （ゆったり上品・.jsがある時だけ隠す＝JS無効でも全表示） ===== */
.reveal,.reveal-left,.reveal-right,.reveal-scale{transition:opacity 1.3s cubic-bezier(.16,.84,.44,1),transform 1.3s cubic-bezier(.16,.84,.44,1);will-change:opacity,transform}
.js .reveal{opacity:0;transform:translateY(44px)}
.js .reveal-left{opacity:0;transform:translateX(-52px)}
.js .reveal-right{opacity:0;transform:translateX(52px)}
.js .reveal-scale{opacity:0;transform:scale(.92)}
.reveal.show,.reveal-left.show,.reveal-right.show,.reveal-scale.show{opacity:1;transform:none}
/* 子要素を順番に表示（スタッガー） */
.reveal-stagger > *{transition:opacity 1.2s cubic-bezier(.16,.84,.44,1),transform 1.2s cubic-bezier(.16,.84,.44,1)}
.js .reveal-stagger > *{opacity:0;transform:translateY(40px)}
.reveal-stagger.show > *{opacity:1;transform:none}
.reveal-stagger.show > *:nth-child(1){transition-delay:.05s}
.reveal-stagger.show > *:nth-child(2){transition-delay:.18s}
.reveal-stagger.show > *:nth-child(3){transition-delay:.31s}
.reveal-stagger.show > *:nth-child(4){transition-delay:.44s}
.reveal-stagger.show > *:nth-child(5){transition-delay:.57s}
.reveal-stagger.show > *:nth-child(6){transition-delay:.70s}
/* 画像カーテンリビール＋ゆっくりズーム（n-akira風） */
.img-reveal{position:relative;overflow:hidden}
.img-reveal img{transition:transform 1.9s cubic-bezier(.16,.84,.44,1)}
.js .img-reveal img{transform:scale(1.16)}
.js .img-reveal.show img{transform:scale(1)}
.img-reveal::before{content:"";position:absolute;inset:0;background:#ddd8f0;z-index:3;transform:translateX(101%);pointer-events:none}
.js .img-reveal::before{transform:translateX(0)}
.js .img-reveal.show::before{transform:translateX(101%);transition:transform 1.1s cubic-bezier(.77,0,.18,1)}
/* ヒーロー登場（JS有効時のみ） */
@keyframes fjHeroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.js .hero-figure{animation:fjHeroIn 1.2s .15s cubic-bezier(.16,.84,.44,1) both}
/* FV テキスト：キッカー→大見出し1文字ずつ→サブ の時間差登場 */
@keyframes fjFadeUpK{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fjFadeInS{from{opacity:0}to{opacity:1}}
.js .hero-text .kicker{opacity:0;animation:fjFadeUpK .8s .15s cubic-bezier(.16,.84,.44,1) forwards}
.js .hero-vertical .vsub{opacity:0;animation:fjFadeInS 1.1s 1s ease forwards}
@keyframes fjCharIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.vmain .fj-char{display:inline-block;opacity:0;animation:fjCharIn .65s cubic-bezier(.16,.84,.44,1) forwards}
/* スクロールでヘッダーに影 */
.header{transition:box-shadow .3s ease,background .3s ease}
.header.scrolled{box-shadow:0 4px 18px rgba(66,59,115,.12)}
/* 動きを減らす設定の尊重 */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-scale,.reveal-stagger>*,.img-reveal img{opacity:1!important;transform:none!important;transition:none!important}
  .img-reveal::before{display:none}
  .js .hero-figure{animation:none!important}
  .js .hero-text .kicker,.js .hero-vertical .vsub{animation:none!important;opacity:1!important}
  .vmain .fj-char{opacity:1!important;transform:none!important;animation:none!important}
  html{scroll-behavior:auto}
}

/* ===== Responsive ===== */
@media(max-width:860px){
  .hero-panel,.hero-panel-edge{display:none}
  .hero::before{opacity:.14}
  .hero-poster{grid-template-columns:1fr;min-height:0;gap:0}
  .hero-text{padding:44px 0 10px;align-items:center}
  .hero-text .kicker{margin-left:auto;margin-right:auto}
  .hero-vertical{justify-content:center}
  .hero-figure{min-height:0;margin-top:8px}
  .hero-cutout{max-height:420px}
  .hero-sns{left:auto;transform:none;right:4px;bottom:28px}
  .issue-grid{grid-template-columns:repeat(2,1fr)}
  .voice-list{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .profile-grid{grid-template-columns:1fr}
  .profile-media{max-width:340px;margin:0 auto}
  .profile-photo-wrap{margin:0 auto 6px}
  .profile-sub{width:62%}
  .act-grid{grid-template-columns:1fr}
  .ac-grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}
  .support-grid{grid-template-columns:1fr}
  .moti-figure{width:100%;opacity:.26}
  .moti-figure img{object-position:center top;-webkit-mask-image:linear-gradient(to bottom,#000 25%,transparent 90%);mask-image:linear-gradient(to bottom,#000 25%,transparent 90%)}
  .moti-content{padding:0 22px}
  .moti-inner{max-width:100%;padding:58px 0;display:flex;flex-direction:column;align-items:center;text-align:center}
  .moti-vert{flex-direction:column;align-items:center;gap:24px}
  .moti-vert .mbody{text-align:left}
}
@media(max-width:420px){
  section{padding:54px 0}
  .issue-grid{grid-template-columns:1fr 1fr}
}
