/*
Theme Name: Iida Kenichi Renewal
Theme URI: https://www.iidakenichi.net/
Author: Codex
Description: Custom WordPress theme for Kenichi Iida official website renewal.
Version: 0.2.0
Text Domain: iida-renewal
*/

:root{
  --green:#00A368;          /* いいねグリーン（ブランド） */
  --green-deep:#0E3D2C;     /* 深緑インク */
  --green-tint:#E5F4EC;     /* 淡いグリーン */
  --paper:#F7FAF8;          /* 背景 */
  --white:#FFFFFF;
  --ink:#22332C;            /* 本文 */
  --line:#D7E5DC;
  --radius:18px;
  --font-display:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  --font-maru:"Zen Maru Gothic","Noto Sans JP",sans-serif;
  --font-body:"Noto Sans JP",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.9;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}
.container{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:1200px;margin:0 auto;padding:0 24px}
.brand{display:flex;align-items:baseline;gap:10px;font-family:var(--font-display)}
.brand .name{font-size:1.3rem;font-weight:900;letter-spacing:.06em;color:var(--green-deep)}
.brand .role{font-size:.72rem;font-weight:700;color:var(--green);letter-spacing:.08em}
.brand .role-short{display:none}
.nav{display:flex;align-items:center;gap:26px}
.nav ul{display:contents;list-style:none}
.nav li{list-style:none;display:contents}
.nav a{font-size:.9rem;font-weight:700;letter-spacing:.06em;color:var(--green-deep);position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--green);transition:width .25s}
.nav a:hover::after{width:100%}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:900;letter-spacing:.08em;border-radius:999px;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer}
.btn-primary{background:var(--green);color:#fff;padding:12px 26px;font-size:.92rem;box-shadow:0 6px 18px rgba(0,163,104,.3)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,163,104,.38)}
.btn-ghost{border:2px solid var(--green-deep);color:var(--green-deep);padding:11px 24px;font-size:.9rem;background:transparent}
.btn-ghost:hover{background:var(--green-deep);color:#fff}
.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--green-deep);cursor:pointer}

/* ---------- hero ---------- */
.hero{position:relative;padding:122px 0 78px;min-height:720px;overflow:hidden;background:
  linear-gradient(90deg,rgba(247,250,248,.98) 0%,rgba(247,250,248,.9) 45%,rgba(225,244,249,.86) 100%),
  radial-gradient(900px 560px at 88% 28%,#DDEFF5 0%,rgba(221,239,245,.7) 44%,transparent 72%),
  var(--paper)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,1.05fr);grid-template-areas:"copy photo" "main photo";column-gap:46px;row-gap:26px;align-items:center;position:relative}
.hero-tate{grid-area:copy;writing-mode:horizontal-tb;font-family:var(--font-display);font-weight:900;font-size:clamp(3rem,5.2vw,5rem);line-height:1.18;letter-spacing:.04em;color:var(--green-deep);word-break:keep-all}
.hero-tate .em{color:var(--green)}
.hero-tate,.hero-main{position:relative;z-index:2}
.hero-main{grid-area:main;max-width:560px;min-width:0}
.hero-main .kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.2em;color:var(--green);border:1.5px solid var(--green);border-radius:999px;padding:6px 18px;margin-bottom:22px}
.hero-main h1{font-family:var(--font-display);font-weight:900;font-size:clamp(1.55rem,2.3vw,2.15rem);letter-spacing:.04em;color:var(--green-deep);line-height:1.55;margin-bottom:18px;word-break:keep-all}
.hero-main p.lead{font-size:1rem;max-width:34em;margin-bottom:26px}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.tag{font-size:.78rem;font-weight:700;color:var(--green-deep);background:var(--white);border:1px solid var(--line);border-radius:999px;padding:6px 14px}
.tag::before{content:"💚";margin-right:6px;font-size:.7rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px}
.hero-photo{grid-area:photo;position:relative;width:min(670px,52vw);justify-self:end;align-self:end;margin-right:-54px;z-index:0}
.hero-photo .frame{overflow:visible;background:transparent;display:flex;align-items:flex-end;justify-content:center}
.hero-photo img{width:100%;height:auto;object-fit:contain;object-position:center bottom;display:block;filter:drop-shadow(0 26px 34px rgba(14,61,44,.18))}
.iine-stamp{position:absolute;left:18%;bottom:7%;background:var(--white);border:2px solid var(--green);border-radius:999px;padding:12px 22px;font-family:var(--font-maru);font-weight:900;font-size:1.05rem;color:var(--green-deep);box-shadow:0 10px 24px rgba(14,61,44,.14);transform:rotate(-4deg)}
.iine-stamp span{color:var(--green)}

/* ---------- section base ---------- */
.section{padding:96px 0}
.section.alt{background:var(--white)}
.sec-head{margin-bottom:48px}
.sec-head .en{font-family:var(--font-display);font-weight:700;font-size:.8rem;letter-spacing:.3em;color:var(--green);text-transform:uppercase}
.sec-head h2{font-family:var(--font-display);font-weight:900;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:.08em;color:var(--green-deep);margin-top:8px}
.sec-head p{margin-top:12px;max-width:42em}
.keep{display:inline-block;white-space:nowrap}

/* ---------- downloads ---------- */
.download-lead{background:linear-gradient(180deg,#fff 0%,var(--paper) 100%)}
.download-lead-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
.download-stack{display:flex;justify-content:center}
.download-stack img{width:min(360px,100%);filter:drop-shadow(0 24px 34px rgba(14,61,44,.18))}
.download-lead-body .sec-head{margin-bottom:28px}
.download-mini-list{display:grid;gap:10px;margin:0 0 26px}
.download-mini-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:12px 16px;font-weight:700;color:var(--green-deep);transition:transform .2s,border-color .2s}
.download-mini-list a:hover{transform:translateX(4px);border-color:var(--green)}
.download-mini-list small{font-family:var(--font-display);font-size:.7rem;color:#fff;background:var(--green);border-radius:999px;padding:3px 9px;letter-spacing:.08em}
.page-hero{padding:130px 0 70px;background:linear-gradient(180deg,var(--paper) 0%,#fff 100%)}
.page-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center}
.page-hero .en{font-family:var(--font-display);font-weight:700;font-size:.8rem;letter-spacing:.3em;color:var(--green);text-transform:uppercase}
.page-hero h1{font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:.08em;color:var(--green-deep);line-height:1.25;margin-top:8px}
.page-hero p{margin-top:18px;max-width:42em}
.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.download-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 14px 34px rgba(14,61,44,.08);display:flex;flex-direction:column}
.download-thumb{background:#EAF5EF;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.download-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .3s ease}
.download-card:hover .download-thumb img{transform:scale(1.03)}
.download-card-body{padding:22px;display:flex;flex-direction:column;gap:12px;flex:1}
.download-card-body h2{font-family:var(--font-display);font-weight:900;font-size:1.08rem;line-height:1.55;color:var(--green-deep);letter-spacing:.04em}
.download-card-body p{font-size:.88rem;color:#4D6157;line-height:1.8;flex:1}
.download-card-body .btn{align-self:flex-start;padding:10px 20px;font-size:.84rem}

/* ---------- photo report ---------- */
.photo-report{background:linear-gradient(180deg,var(--paper) 0%,#EEF7F2 100%)}
.photo-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-auto-rows:230px;gap:18px}
.photo-card{position:relative;overflow:hidden;border-radius:var(--radius);background:#DCEBE3;box-shadow:0 18px 42px rgba(14,61,44,.12)}
.photo-card-large{grid-row:span 2}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.photo-card.photo-focus-top img{object-position:center top}
.photo-card:hover img{transform:scale(1.04)}
.photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.62) 100%)}
.photo-card figcaption{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;color:#fff;font-family:var(--font-display);font-weight:900;letter-spacing:.04em;text-shadow:0 2px 10px rgba(0,0,0,.35)}

/* ---------- policy ---------- */
.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.policy-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:34px 28px;display:flex;flex-direction:column;gap:18px;transition:transform .25s,box-shadow .25s}
.policy-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(14,61,44,.12)}
.voice{font-family:var(--font-maru);font-weight:700;font-size:.92rem;color:var(--green-deep);background:var(--green-tint);border-radius:16px;padding:14px 18px;position:relative}
.voice::after{content:"";position:absolute;left:26px;bottom:-10px;border:6px solid transparent;border-top-color:var(--green-tint)}
.voice .who{display:block;font-size:.72rem;color:var(--green);font-family:var(--font-body);font-weight:700;margin-bottom:4px;letter-spacing:.1em}
.policy-card h3{font-family:var(--font-display);font-weight:900;font-size:1.2rem;color:var(--green-deep);letter-spacing:.05em}
.policy-card h3 .num{color:var(--green);font-size:.85rem;display:block;letter-spacing:.25em;margin-bottom:6px}
.policy-card ul{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.policy-card li{padding-left:1.5em;position:relative}
.policy-card li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}

/* ---------- activity ---------- */
.embed-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.embed-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:16px}
.embed-card h3{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:var(--green-deep);letter-spacing:.06em;display:flex;align-items:center;gap:10px}
.embed-card h3 .dot{width:10px;height:10px;border-radius:50%;background:var(--green)}
.embed-frame{border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--line)}
.embed-frame iframe{display:block;width:100%;border:0;aspect-ratio:16/9}
.x-timeline-wrap{max-height:560px;overflow-y:auto;border-radius:12px;border:1px solid var(--line);background:#fff}
.embed-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
@media (max-width:980px){.embed-grid{grid-template-columns:1fr}}
.act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.act-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .25s,box-shadow .25s}
.act-card{color:inherit}
.act-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(14,61,44,.12)}
.act-thumb{aspect-ratio:16/10;background:linear-gradient(140deg,#CFE9DC,#A8DCC2);display:flex;align-items:center;justify-content:center;font-size:2.4rem}
.act-body{padding:20px 22px 24px}
.act-body time{font-size:.74rem;font-weight:700;color:var(--green);letter-spacing:.12em}
.act-body h3{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--green-deep);margin:6px 0 8px;line-height:1.6}
.act-body p{font-size:.86rem;color:#4D6157}
.more-wrap{text-align:center;margin-top:40px}

/* ---------- profile ---------- */
.profile-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:56px;align-items:start}
.profile-photo{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;background:linear-gradient(160deg,#CDE9DB,#9FD8BC);box-shadow:0 18px 44px rgba(14,61,44,.14)}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.timeline{list-style:none;border-left:2px solid var(--green);padding-left:28px;display:flex;flex-direction:column;gap:22px;margin-top:8px}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:-35px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-tint)}
.timeline .year{font-family:var(--font-display);font-weight:900;color:var(--green);font-size:.85rem;letter-spacing:.12em}
.timeline .what{font-weight:700;color:var(--green-deep)}
.timeline p{font-size:.88rem;color:#4D6157}

/* ---------- video band ---------- */
.video-band{background:var(--green-deep);color:#fff;padding:80px 0;position:relative;overflow:hidden}
.video-band::before{content:"💚";position:absolute;right:-30px;top:-40px;font-size:14rem;opacity:.08;transform:rotate(12deg)}
.video-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.video-inner h2{font-family:var(--font-display);font-weight:900;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:.08em}
.video-inner p{margin-top:10px;color:#CFE6DA;font-size:.95rem}
.btn-white{background:#fff;color:var(--green-deep);padding:14px 30px;font-size:.95rem}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.25)}

/* ---------- sns ---------- */
.sns-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.sns-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px 16px;text-align:center;transition:transform .2s,border-color .2s}
.sns-card:hover{transform:translateY(-4px);border-color:var(--green)}
.sns-card .icon{font-size:1.8rem;margin-bottom:8px}
.sns-card .label{font-family:var(--font-display);font-weight:700;font-size:.88rem;color:var(--green-deep)}
.sns-card .sub{font-size:.72rem;color:#6B8076}
.line-add-img{display:inline-block;width:auto;height:36px;margin:0 auto 8px}
.support-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ---------- support cta ---------- */
.support{background:linear-gradient(140deg,var(--green) 0%,#00875A 100%);border-radius:28px;color:#fff;padding:64px 48px;text-align:center;box-shadow:0 24px 60px rgba(0,163,104,.3)}
.support h2{font-family:var(--font-maru);font-weight:900;font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:.08em;margin-bottom:14px}
.support p{max-width:36em;margin:0 auto 30px;color:#E4F6ED;font-size:.95rem}
.support .btn-white{font-size:1rem}

/* ---------- footer ---------- */
.footer{background:var(--green-deep);color:#BFD9CC;padding:56px 0 32px;margin-top:96px}
.footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;margin-bottom:40px}
.footer .f-name{font-family:var(--font-display);font-weight:900;font-size:1.3rem;color:#fff;letter-spacing:.08em}
.footer .f-role{font-size:.8rem;margin-top:6px}
.footer nav{display:flex;flex-wrap:wrap;gap:20px;font-size:.85rem;font-weight:700}
.footer nav a:hover{color:#fff}
.copyright{border-top:1px solid rgba(255,255,255,.15);padding-top:24px;font-size:.75rem;text-align:center}

/* ---------- motion ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.on{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .btn,.policy-card,.act-card,.sns-card{transition:none}
}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero{min-height:auto}
  .hero-grid{grid-template-columns:1fr;grid-template-areas:none;gap:36px}
  .hero-tate{writing-mode:horizontal-tb;font-size:clamp(1.8rem,6vw,2.6rem);letter-spacing:.08em;line-height:1.5}
  .hero-tate,.hero-main,.hero-photo{grid-area:auto}
  .hero-photo{width:min(520px,84vw);margin:0 auto;justify-self:center}
  .policy-grid,.act-grid{grid-template-columns:1fr 1fr}
  .download-lead-grid,.page-hero-grid{grid-template-columns:1fr;gap:34px}
  .download-stack{order:-1}
  .download-grid{grid-template-columns:1fr 1fr}
  .profile-grid{grid-template-columns:1fr}
  .profile-photo{max-width:380px}
  .sns-grid{grid-template-columns:repeat(3,1fr)}
  .photo-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px}
  .photo-card-large{grid-column:1/-1;grid-row:auto}
}
@media (max-width:680px){
  .header-inner{height:58px;padding:0 18px}
  .brand{align-items:center;gap:8px;min-width:0;max-width:calc(100% - 44px)}
  .brand .name{flex:0 0 auto;font-size:1.05rem;letter-spacing:.03em;white-space:nowrap;word-break:keep-all}
  .brand .role{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;letter-spacing:.02em}
  .brand .role-full{display:none}
  .brand .role-short{display:inline}
  .hero{padding:76px 0 0;min-height:auto}
  .hero-grid{display:block;min-height:min(92svh,700px)}
  .hero-grid::after{content:"";position:absolute;left:-24px;right:12%;top:30%;bottom:-24px;z-index:1;background:radial-gradient(130% 105% at 0% 100%,rgba(247,250,248,.97) 0%,rgba(247,250,248,.88) 40%,rgba(247,250,248,.5) 64%,transparent 85%);pointer-events:none}
  .hero-tate{position:relative;z-index:2;font-size:clamp(1.85rem,8.2vw,2.35rem);line-height:1.32;letter-spacing:0;max-width:none;white-space:nowrap;text-shadow:0 0 6px rgba(255,255,255,.95),0 0 14px rgba(255,255,255,.85),0 0 24px rgba(255,255,255,.7)}
  .hero-main{position:absolute;left:0;bottom:30px;z-index:2;max-width:62%;margin:0}
  .hero-main .kicker{font-size:.68rem;letter-spacing:.04em;padding:5px 10px;margin-bottom:10px;white-space:nowrap;background:rgba(255,255,255,.88)}
  .hero-main h1{font-size:clamp(1rem,4.6vw,1.3rem);line-height:1.55;margin-bottom:14px;text-shadow:0 0 5px rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.9),0 0 18px rgba(255,255,255,.8)}
  .hero-main p.lead,.hero-tags{display:none}
  .hero-cta{gap:10px}
  .hero-cta .btn{padding:10px 13px;font-size:.74rem;letter-spacing:0;white-space:nowrap}
  .hero-photo{position:absolute;right:-30vw;bottom:0;width:min(102vw,445px);margin:0;z-index:1}
  .hero-photo img{filter:drop-shadow(0 18px 24px rgba(14,61,44,.16))}
  .iine-stamp{left:auto;right:calc(30vw + 16px);bottom:5%;transform:rotate(-3deg);padding:7px 12px;font-size:.78rem;white-space:nowrap}
  .nav{display:none;position:absolute;top:58px;left:0;right:0;background:#fff;flex-direction:column;padding:24px;gap:18px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .policy-grid,.act-grid{grid-template-columns:1fr}
  .download-grid{grid-template-columns:1fr}
  .download-stack img{width:min(260px,78vw)}
  .download-mini-list a{align-items:flex-start;flex-direction:column;gap:8px}
  .page-hero{padding:96px 0 48px}
  .photo-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:10px}
  .photo-card-large{grid-column:1/-1}
  .photo-card figcaption{left:12px;right:12px;bottom:10px;font-size:.82rem}
  .sns-grid{grid-template-columns:repeat(2,1fr)}
  .section{padding:72px 0}
  .sec-head{margin-bottom:34px}
  .sec-head h2{font-size:clamp(1.45rem,8.4vw,2rem);line-height:1.35;letter-spacing:.03em;word-break:keep-all;overflow-wrap:normal}
  .sec-head p{font-size:.92rem;line-height:1.9}
  .video-inner h2{font-size:clamp(1.35rem,7.2vw,1.85rem);line-height:1.45;letter-spacing:.03em}
  .video-inner p{font-size:.92rem}
  .support{padding:48px 24px}
}

/* ---------- LINE CTA band ---------- */
.line-band{background:#06C755;padding:34px 0;position:relative;overflow:hidden}
.line-band::before{content:"💬";position:absolute;right:-14px;top:-26px;font-size:7.5rem;opacity:.14;transform:rotate(10deg)}
.line-band-inner{display:flex;align-items:center;justify-content:space-between;gap:18px 32px;flex-wrap:wrap;position:relative}
.line-badge{display:inline-block;font-family:var(--font-display);font-weight:900;font-size:.72rem;letter-spacing:.18em;color:#06C755;background:#fff;border-radius:999px;padding:4px 14px;margin-bottom:10px}
.line-copy h2{font-family:var(--font-display);font-weight:900;font-size:clamp(1.25rem,2.4vw,1.7rem);letter-spacing:.05em;color:#fff;line-height:1.5}
.line-copy p{margin-top:6px;color:rgba(255,255,255,.92);font-size:.88rem}
.btn-line{background:#fff;color:#059648;padding:16px 36px;font-size:1.02rem;box-shadow:0 10px 26px rgba(0,0,0,.18);white-space:nowrap}
.btn-line:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,0,0,.24)}

/* ---------- voice flow band ---------- */
.voice-flow-band{padding:48px 0;background:var(--green-tint)}
.voice-flow{display:flex;align-items:stretch;justify-content:center;gap:14px;flex-wrap:wrap}
.vf-step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;text-align:center;flex:1;max-width:280px;min-width:200px}
.vf-step .vf-icon{font-size:1.7rem;display:block;margin-bottom:6px}
.vf-step .vf-label{font-family:var(--font-display);font-weight:900;color:var(--green-deep);display:block;letter-spacing:.06em}
.vf-step p{font-size:.78rem;color:#4D6157;margin-top:4px}
.vf-arrow{align-self:center;font-size:1.4rem;font-weight:900;color:var(--green)}

/* ---------- gikai (assembly records) ---------- */
.gikai-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.gf-btn{font-family:var(--font-display);font-weight:700;font-size:.84rem;letter-spacing:.06em;color:var(--green-deep);background:var(--white);border:1.5px solid var(--line);border-radius:999px;padding:9px 20px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.gf-btn:hover{border-color:var(--green)}
.gf-btn.is-active{background:var(--green);border-color:var(--green);color:#fff}
.gikai-grid{display:grid;gap:26px}
.gikai-card{display:grid;grid-template-columns:300px 1fr;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 14px 34px rgba(14,61,44,.08)}
.gikai-thumb{position:relative;min-height:230px;background:#DCEBE3}
.gikai-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.gikai-cat{position:absolute;left:14px;top:14px;font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.1em;color:#fff;border-radius:999px;padding:5px 14px}
.cat-honkaigi{background:var(--green-deep)}
.cat-iinkai{background:var(--green)}
.cat-kessan{background:#1B7F79}
.gikai-body{padding:26px 30px;display:flex;flex-direction:column;gap:12px}
.gikai-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.gikai-meta time{font-size:.78rem;font-weight:700;color:var(--green);letter-spacing:.1em}
.gikai-meeting{font-size:.78rem;color:#6B8076;font-weight:700}
.gikai-body h3{font-family:var(--font-display);font-weight:900;font-size:1.18rem;color:var(--green-deep);letter-spacing:.04em;line-height:1.5}
.gikai-body p{font-size:.92rem;color:#3D5247;line-height:1.85}
.gikai-points{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.gikai-points li{font-size:.76rem;font-weight:700;color:var(--green-deep);background:var(--green-tint);border-radius:999px;padding:5px 13px}
.gikai-points li::before{content:"✓";color:var(--green);margin-right:5px;font-weight:900}
.gikai-link{font-family:var(--font-display);font-weight:900;font-size:.9rem;color:var(--green);letter-spacing:.04em;margin-top:auto;align-self:flex-start;border-bottom:2px solid transparent;transition:border-color .2s}
.gikai-link:hover{border-bottom-color:var(--green)}
.gikai-note{margin-top:30px;font-size:.85rem;color:#4D6157;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px 20px}
.gikai-note a{color:var(--green);font-weight:700;text-decoration:underline}

/* ---------- jisseki (local achievements) ---------- */
.jisseki-list{display:grid;gap:28px}
.jisseki-card{display:grid;grid-template-columns:320px 1fr;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 14px 34px rgba(14,61,44,.08)}
.jisseki-photo{position:relative;min-height:260px;background:#DCEBE3}
.jisseki-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.jisseki-cat{position:absolute;left:14px;top:14px;font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.1em;color:#fff;background:var(--green);border-radius:999px;padding:5px 14px}
.jisseki-body{padding:26px 30px;display:flex;flex-direction:column;gap:12px}
.jisseki-meta{display:flex;align-items:center;gap:12px}
.jisseki-area{font-family:var(--font-display);font-weight:700;font-size:.76rem;color:var(--green-deep);background:var(--green-tint);border-radius:999px;padding:4px 12px}
.jisseki-meta time{font-size:.78rem;font-weight:700;color:var(--green);letter-spacing:.1em}
.jisseki-body h3{font-family:var(--font-display);font-weight:900;font-size:1.2rem;color:var(--green-deep);letter-spacing:.04em;line-height:1.5}
.jisseki-partner{font-size:.84rem;font-weight:700;color:#3D5247}
.jisseki-steps{display:flex;flex-direction:column;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.js-step{display:flex;gap:12px;align-items:flex-start}
.js-tag{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:.8rem;color:#fff}
.js-voice{background:#6B8076}
.js-action{background:var(--green)}
.js-result{background:var(--green-deep)}
.js-step p{font-size:.88rem;color:#3D5247;line-height:1.75;margin-top:3px}

/* ---------- front page bridge cards ---------- */
.bridge-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.bridge-card{position:relative;border-radius:var(--radius);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;box-shadow:0 18px 42px rgba(14,61,44,.14);transition:transform .25s,box-shadow .25s}
.bridge-card:hover{transform:translateY(-5px);box-shadow:0 24px 52px rgba(14,61,44,.2)}
.bridge-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;transition:transform .35s ease}
.bridge-card:hover img{transform:scale(1.04)}
.bridge-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,61,44,0) 30%,rgba(14,61,44,.88) 100%)}
.bridge-body{position:relative;z-index:1;padding:26px 28px;color:#fff;width:100%}
.bridge-body .en{font-family:var(--font-display);font-weight:700;font-size:.74rem;letter-spacing:.3em;color:#9FD8BC;text-transform:uppercase}
.bridge-body h3{font-family:var(--font-display);font-weight:900;font-size:1.3rem;letter-spacing:.05em;margin:6px 0 8px}
.bridge-body p{font-size:.86rem;color:#DDEEE5;line-height:1.75;max-width:30em}
.bridge-arrow{position:absolute;right:24px;bottom:24px;width:40px;height:40px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;font-size:1.1rem}

/* ---------- breadcrumb ---------- */
.breadcrumb{font-size:.78rem;color:#6B8076;margin-bottom:18px}
.breadcrumb a{color:var(--green);font-weight:700}

/* ---------- profile story ---------- */
.story{max-width:760px;margin:0 auto}
.story-chapter{margin-bottom:64px}
.story-chapter .ch-label{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.3em;color:var(--green);text-transform:uppercase}
.story-chapter h3{font-family:var(--font-display);font-weight:900;font-size:1.35rem;color:var(--green-deep);letter-spacing:.06em;margin:8px 0 18px;padding-bottom:12px;border-bottom:2px solid var(--green-tint)}
.story-chapter p{margin-bottom:1em;font-size:.96rem}
.story-photo{border-radius:var(--radius);overflow:hidden;margin:22px 0;box-shadow:0 14px 34px rgba(14,61,44,.12)}
.story-photo img{width:100%;object-fit:cover}
.story-photo figcaption{font-size:.76rem;color:#6B8076;padding:10px 14px;background:var(--white)}
.pull-quote{font-family:var(--font-maru);font-weight:900;font-size:1.25rem;color:var(--green-deep);text-align:center;padding:36px 24px;margin:48px 0;background:var(--green-tint);border-radius:var(--radius);letter-spacing:.06em;line-height:2}
.pull-quote span{color:var(--green)}
.fact-table{width:100%;border-collapse:collapse;font-size:.92rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.fact-table th,.fact-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line)}
.fact-table th{width:32%;font-family:var(--font-display);font-weight:700;color:var(--green-deep);background:var(--green-tint)}
.fact-table tr:last-child th,.fact-table tr:last-child td{border-bottom:none}

/* ---------- vision blocks ---------- */
.vision-block{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:40px 36px;margin-bottom:28px;display:grid;grid-template-columns:1fr;gap:18px}
.vision-block h3{font-family:var(--font-display);font-weight:900;font-size:1.3rem;color:var(--green-deep);letter-spacing:.05em;display:flex;align-items:center;gap:12px}
.vision-block h3 .badge{font-size:.72rem;color:#fff;background:var(--green);border-radius:999px;padding:4px 14px;letter-spacing:.2em;white-space:nowrap}
.vision-block .desc{font-size:.95rem;color:#3D5247}
.check-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;font-size:.92rem}
.check-list li{padding-left:1.6em;position:relative}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}
@media (max-width:980px){
  .gikai-card{grid-template-columns:1fr}
  .gikai-thumb{min-height:0;aspect-ratio:16/8}
  .jisseki-card{grid-template-columns:1fr}
  .jisseki-photo{min-height:0;aspect-ratio:16/8}
  .bridge-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .check-list{grid-template-columns:1fr}
  .vision-block{padding:28px 22px}
  .vision-block h3{flex-direction:column;align-items:flex-start;gap:8px}
  .story-chapter{margin-bottom:48px}
  .fact-table th{width:38%}
  .fact-table th,.fact-table td{padding:12px 12px;font-size:.86rem}
  .pull-quote{font-size:1.05rem;padding:28px 18px}
  .line-band{padding:28px 0}
  .line-band-inner{flex-direction:column;align-items:flex-start;gap:16px}
  .line-copy h2{font-size:1.22rem}
  .line-copy p{font-size:.84rem}
  .btn-line{width:100%;justify-content:center;padding:15px 20px;font-size:.96rem}
  .voice-flow{flex-direction:column;align-items:stretch;gap:8px}
  .vf-step{max-width:none;min-width:0}
  .vf-arrow{transform:rotate(90deg);align-self:center;font-size:1.2rem}
  .gikai-body,.jisseki-body{padding:20px 18px}
  .gikai-body h3,.jisseki-body h3{font-size:1.05rem}
  .gf-btn{font-size:.78rem;padding:8px 14px}
  .jisseki-steps{padding:14px 14px}
  .bridge-card{min-height:240px}
  .bridge-body h3{font-size:1.15rem}
}

.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.admin-bar .header{top:32px}
.wp-post-image{width:100%;height:100%;object-fit:cover}
.post-content{max-width:760px;margin:0 auto}
.post-content p{margin-bottom:1.2em}
.post-content h2,.post-content h3{font-family:var(--font-display);color:var(--green-deep);line-height:1.6;margin:2em 0 .8em}
.post-content ul,.post-content ol{padding-left:1.4em;margin-bottom:1.2em}
.pagination{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:44px;font-weight:700}
.pagination a,.pagination span{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:8px 14px}
.pagination .current{background:var(--green);color:#fff;border-color:var(--green)}
@media (max-width:782px){.admin-bar .header{top:46px}}
