@charset "UTF-8";

:root { --navy:#02193d; --navy-light:#13284d; --gold:#d79d14; --text:#111; --white:#fff; --container:1200px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:80px; }
body { margin:0; color:var(--text); background:#fff; font-family:"Noto Sans JP",sans-serif; line-height:1.9; }
body,button,a { -webkit-font-smoothing:antialiased; }
img { display:block; width:100%; height:auto; }
picture { display:block; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.container { width:min(100% - 40px,var(--container)); margin-inline:auto; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:999; top:8px; left:8px; padding:8px 16px; color:#fff; background:var(--navy); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }

/* Header */
.header { position:fixed; z-index:100; top:0; right:0; left:0; height:80px; color:#fff; background:var(--navy); }
.header + main { padding-top:80px; }
.header__inner { height:100%; display:flex; align-items:center; justify-content:space-between; }
.brand { position:relative; display:grid; grid-template-columns:auto auto; column-gap:10px; align-items:center; padding:6px 0 6px 14px; line-height:1.35; }
.brand::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--gold); }
.brand__name { font-family:"Noto Serif JP",serif; font-size:21px; font-weight:600; letter-spacing:.12em; }
.brand__reading { align-self:center; padding-top:5px; font-size:9px; line-height:1.5; }
.brand__party { grid-column:1/-1; margin-top:5px; font-size:8px; line-height:1.6; letter-spacing:.04em; }
.header__menu { width:44px; height:44px; padding:10px; display:grid; align-content:center; gap:5px; color:#fff; background:transparent; border:1px solid rgba(255,255,255,.35); cursor:pointer; }
.header__menu-line { height:1px; background:currentColor; transition:transform .3s,opacity .3s; }
.header__menu[aria-expanded="true"] .header__menu-line:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.header__menu[aria-expanded="true"] .header__menu-line:nth-child(2) { opacity:0; }
.header__menu[aria-expanded="true"] .header__menu-line:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
.nav { position:absolute; top:80px; left:0; width:100%; max-height:0; overflow:hidden; display:flex; flex-direction:column; background:rgba(2,25,61,.98); transition:max-height .4s ease; }
.nav--open { max-height:420px; }
.nav__link { padding:15px 24px; border-top:1px solid rgba(255,255,255,.14); font-size:14px; transition:color .3s,background .3s; }
.nav__link:hover { color:var(--gold); background:rgba(255,255,255,.05); }

/* Hero */
.hero { position:relative; min-height:620px; overflow:hidden; background:#e8f1f6; }
.hero__background { position:absolute; z-index:0; inset:0; }
.hero__background::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.22) 48%,rgba(255,255,255,0) 100%); }
.hero__background img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero__inner { position:relative; z-index:1; min-height:620px; }
.hero__message { position:relative; z-index:2; padding-top:42px; animation:hero-copy 1s .15s both; }
.hero__title { width:min(82vw,390px); margin:0; }
.hero__lead { margin:24px 0 0; font-size:12px; font-weight:500; line-height:2.1; letter-spacing:.04em; }
.hero__portrait { position:absolute; right:-58px; bottom:0; width:68%; max-width:420px; animation:hero-person 1.1s .2s both; }
.hero__portrait img { height:430px; object-fit:cover; object-position:50% 16%; filter:drop-shadow(0 14px 22px rgba(0,0,0,.14)); }
.hero__scroll { display:none; }
@keyframes hero-copy { from { opacity:0; transform:translateX(-35px); } to { opacity:1; transform:none; } }
@keyframes hero-person { from { opacity:0; transform:translateX(45px); } to { opacity:1; transform:none; } }

/* Shared sections */
.section { padding:72px 0; }
.section-title { margin:0 0 42px; font-family:"Noto Serif JP",serif; font-size:30px; font-weight:500; line-height:1.3; text-align:center; letter-spacing:.1em; }
.section-title::after { content:""; display:block; width:78px; height:3px; margin:18px auto 0; background:linear-gradient(90deg,var(--gold) 0 14%,var(--navy) 14% 86%,var(--gold) 86%); }
.section-lead { margin:-17px auto 36px; font-family:"Noto Serif JP",serif; font-size:13px; line-height:2; text-align:center; }
.reveal { opacity:0; transform:translateY(32px); transition:opacity .8s ease,transform .8s ease; }
.reveal--visible { opacity:1; transform:none; }

/* SNS */
.sns { padding-bottom:60px; }
.sns__gallery { display:block; height:210px; overflow:hidden; box-shadow:0 8px 28px rgba(2,25,61,.12); }
.sns__gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; height:auto; box-shadow:none; }
.sns__gallery-item { overflow:hidden; }
.sns__gallery-item { aspect-ratio:1; }
.sns__gallery-item picture,.sns__gallery-item img { width:100%; height:100%; }
.sns__gallery-item img { object-fit:cover; transition:transform .65s ease; }
.sns__gallery-item:hover img { transform:scale(1.035); }
.sns__links { display:flex; justify-content:center; gap:14px; margin-top:28px; }
.sns__link { width:38px; border-radius:50%; transition:transform .3s,filter .3s; }
.sns__link:hover { transform:translateY(-5px) scale(1.05); filter:drop-shadow(0 6px 7px rgba(0,0,0,.22)); }

/* Greeting */
.greeting { position:relative; overflow:hidden; background:linear-gradient(180deg,#fff 0%,rgba(233,246,253,.7) 55%,#fff 100%); }
.greeting::before { content:""; position:absolute; inset:0; opacity:.17; background:url("../images/greeting-bg.png") center/cover no-repeat; }
.greeting__inner { position:relative; }
.greeting__headline { width:min(100%,570px); height:110px; margin:0 auto 24px; overflow:hidden; }
.greeting__headline img { height:100%; object-fit:cover; object-position:center 25%; }
.greeting__body { display:grid; gap:25px; }
.greeting__text { font-family:"Noto Serif JP",serif; font-size:13px; line-height:2.05; }
.greeting__text p { margin:0 0 1.2em; }
.greeting__portrait { width:230px; height:300px; margin:0 auto; overflow:hidden; }
.greeting__portrait img { height:100%; object-fit:cover; object-position:center 14%; }
.button { width:min(100%,420px); min-height:56px; margin:30px auto 0; padding:14px 48px; display:flex; align-items:center; justify-content:center; gap:24px; border:1px solid var(--navy-light); font-family:"Noto Serif JP",serif; font-size:13px; letter-spacing:.12em; background:rgba(255,255,255,.82); transition:color .3s,background .3s,transform .3s; }
.button:hover { color:#fff; background:var(--navy); transform:translateY(-3px); }
.button span { font-size:22px; color:var(--gold); }
.greeting__button { padding:0; overflow:hidden; }
.greeting__button picture,.greeting__button img { width:100%; height:100%; }
.greeting__button img { object-fit:cover; }

/* Blog */
.blog__grid { display:grid; gap:24px; }
.blog-card { overflow:hidden; border:1px solid #e1e4e8; background:#fff; box-shadow:0 8px 22px rgba(2,25,61,.06); transform:translateY(0) scale(1); transform-origin:center; transition:transform .35s ease,box-shadow .35s ease; }
.blog-card:hover { transform:translateY(-6px) scale(1.012); box-shadow:0 15px 34px rgba(2,25,61,.14); }
.blog-card__link { height:100%; padding:14px 14px 18px; display:flex; flex-direction:column; }
.blog-card__image { height:180px; overflow:hidden; border-radius:5px; }
.blog-card__image img { height:100%; object-fit:cover; transition:transform .55s; }
.blog-card__image--center img { object-position:center 55%; }
.blog-card__image--right img { object-position:75% center; }
.blog-card:hover .blog-card__image img { transform:none; }
.blog-card__date,.blog-card__title,.blog-card__text,.blog-card__more { margin-inline:2px; }
.blog-card__date { margin-top:15px; color:var(--gold); font-size:10px; }
.blog-card__title { margin-top:10px; margin-bottom:20px; color:var(--navy); font-family:"Noto Serif JP",serif; font-size:15px; }
.blog-card__text { margin-top:0; font-size:11px; line-height:1.8; }
.blog-card__more { margin-top:auto; color:var(--navy); font-size:9px; letter-spacing:.13em; }

/* Activities */
.activities { background:#fafafa; }
.activities__visual { width:min(100%,820px); height:650px; margin-inline:auto; overflow:hidden; }
.activities__visual img { height:100%; object-fit:cover; object-position:center 38%; }
.button--navy { color:#fff; background:var(--navy); }
.button--navy:hover { color:var(--navy); background:#fff; }

/* Footer */
.footer { color:#fff; background:var(--navy); }
.footer__inner { padding-top:52px; padding-bottom:48px; display:grid; gap:38px; }
.footer__name { margin:0; font-family:"Noto Serif JP",serif; font-size:32px; letter-spacing:.1em; }
.footer__party { margin:5px 0 24px; font-size:13px; line-height:1.6; }
.footer__address { font-family:"Noto Serif JP",serif; font-size:15px; font-style:normal; line-height:1.9; }
.footer__address a:hover { color:var(--gold); }
.footer__nav { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 20px; align-content:start; font-size:15px; }
.footer__nav a { padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.18); transition:color .3s,border-color .3s; }
.footer__nav a:hover { color:var(--gold); border-color:var(--gold); }
.footer__copyright { margin:0; padding:15px 20px; border-top:1px solid rgba(255,255,255,.25); font-size:11px; text-align:center; }

@media (min-width:768px) {
  .header { height:100px; }
  .brand__name { font-size:30px; }
  .brand__reading { font-size:11px; }
  .brand__party { font-size:10px; }
  .nav { top:100px; }
  .hero,.hero__inner { min-height:700px; }
  .hero__message { padding-top:70px; }
  .hero__title { width:470px; }
  .hero__lead { margin-top:36px; font-size:14px; line-height:2.25; }
  .hero__portrait { right:-20px; width:53%; max-width:540px; }
  .hero__portrait img { height:620px; }
  .section { padding:100px 0; }
  .section-title { font-size:40px; }
  .sns__gallery { height:300px; }
  .greeting__body { grid-template-columns:1fr 300px; align-items:center; max-width:900px; margin:auto; }
  .greeting__portrait { width:300px; height:390px; }
  .blog__grid { grid-template-columns:repeat(3,1fr); }
  .activities__visual { height:850px; }
  .footer__inner { grid-template-columns:1fr 1fr; }
  .footer__nav { grid-template-columns:repeat(3,auto); }
}

@media (min-width:1024px) {
  html { scroll-padding-top:111px; }
  .header { height:111px; }
  .header + main { padding-top:111px; }
  .header__menu { display:none; }
  .nav { position:static; width:auto; max-height:none; overflow:visible; flex-direction:row; background:none; }
  .nav__link { position:relative; padding:8px 18px; border:0; font-size:13px; }
  .nav__link:not(:last-child)::after { content:""; position:absolute; right:0; top:50%; width:1px; height:18px; background:rgba(255,255,255,.45); transform:translateY(-50%); }
  .hero,.hero__inner { min-height:690px; }
  .hero__background::after { background:linear-gradient(90deg,rgba(255,255,255,.65) 0%,rgba(255,255,255,.3) 42%,rgba(255,255,255,0) 70%); }
  .hero__message { padding-top:75px; }
  .hero__title { width:550px; }
  .hero__lead { font-size:15px; }
  .hero__portrait { right:0; width:50%; max-width:640px; }
  .hero__portrait img { height:680px; object-position:center 13%; }
  .hero__scroll { position:absolute; z-index:3; bottom:0; left:50%; width:1px; height:62px; display:block; background:var(--navy); animation:scroll-line 1.8s infinite; }
  .hero__scroll span { position:absolute; bottom:22px; left:8px; color:var(--navy); font-size:8px; letter-spacing:.14em; writing-mode:vertical-rl; }
  @keyframes scroll-line { 0% { transform:scaleY(0); transform-origin:top; } 45% { transform:scaleY(1); transform-origin:top; } 55% { transform:scaleY(1); transform-origin:bottom; } 100% { transform:scaleY(0); transform-origin:bottom; } }
  .section { padding:120px 0; }
  .section-title { font-size:48px; }
  .sns__gallery { height:320px; }
  .greeting__headline { height:150px; }
  .greeting__text { font-size:15px; }
  .blog-card__image { height:230px; }
  .activities__visual { height:980px; }
  .footer__inner { align-items:start; }
  .footer__nav { display:flex; justify-content:flex-end; gap:0; }
  .footer__nav a { padding:5px 18px; border-bottom:0; border-right:1px solid rgba(255,255,255,.35); }
  .footer__nav a:last-child { border:0; }
  .footer__copyright { text-align:right; padding-right:max(20px,calc((100% - 1200px)/2)); }
  .footer__name { font-size:40px; }
  .footer__party { font-size:15px; }
  .footer__address { font-size:16px; }
  .footer__nav { font-size:16px; }
  .footer__copyright { font-size:12px; }
}

/* 添付素材から分割した活動一覧パーツ */
.activity-card__visual { position:absolute; z-index:0; inset:0; width:100%; height:100%; display:block; overflow:hidden; }
.activity-card__visual img { width:100%; height:100%; object-fit:cover; }
.activity-card::after { content:""; position:absolute; z-index:1; top:50%; left:54px; width:190px; height:190px; background:center/contain no-repeat; transform:translateY(-50%); pointer-events:none; }
.activity-card--right::after { right:54px; left:auto; }
.activity-card--01::after { background-image:url("../images/activity-icon-01-transparent.png"); }
.activity-card--02::after { background-image:url("../images/activity-icon-02-transparent.png"); }
.activity-card--03::after { background-image:url("../images/activity-icon-03-transparent.png"); }
.activity-card--04::after { background-image:url("../images/activity-icon-04-transparent.png"); }
.activity-card__arrow { width:58px; height:62px; font-size:0; background:center/contain no-repeat; }
.activity-card--01 .activity-card__arrow { background-image:url("../images/activity-arrow-01-transparent.png"); }
.activity-card--02 .activity-card__arrow { background-image:url("../images/activity-arrow-02-transparent.png"); }
.activity-card--03 .activity-card__arrow { background-image:url("../images/activity-arrow-03-transparent.png"); }
.activity-card--04 .activity-card__arrow { background-image:url("../images/activity-arrow-04-transparent.png"); }

@media (max-width:1023px) {
  .activity-card::after,.activity-card--right::after { top:28px; right:auto; left:14px; width:80px; height:80px; transform:none; }
  .activity-card__visual { opacity:.52; }
}

@media (min-width:1024px) {
  .activity-card__visual,.activity-card--right .activity-card__visual { inset:0; width:100%; height:100%; }
  .activity-card__visual img { position:static; width:100%; height:100%; object-fit:cover; }
  .activity-card__content { margin-left:0; }
}

/* 画像化されていたコンテンツをHTML要素として再構築 */
.blog__button { width:min(100%,342px); min-height:60px; margin:34px auto 0; display:flex; align-items:center; justify-content:center; gap:30px; border:1px solid var(--navy); font-family:"Noto Serif JP",serif; font-size:16px; letter-spacing:.1em; transition:.3s; }
.blog__button span { color:#d00018; font-size:26px; }
.blog__button:hover { color:#fff; background:var(--navy); transform:translateY(-3px); }
.blog-card { position:relative; }
.blog-card__category { position:absolute; z-index:2; top:28px; left:28px; margin:0; padding:4px 16px; color:#fff; background:var(--navy); border-radius:3px; font-family:"Noto Serif JP",serif; font-size:11px; }
.blog-card__image { position:relative; }
.blog-card__image img { position:absolute; max-width:none; height:auto; object-fit:initial; }
.blog-card__image--01 img,.blog-card__image--02 img,.blog-card__image--03 img { width:393.5%; }
.blog-card__image--01 img { left:-34.4%; top:-188%; }
.blog-card__image--02 img { left:-144.8%; top:-188%; }
.blog-card__image--03 img { left:-256.2%; top:-188%; }
.blog-card__image img { position:static; width:100%; height:100%; max-width:100%; object-fit:cover; transform:none; }
.blog-card__more b { margin-left:12px; color:#d00018; font-size:22px; font-weight:400; }

.activities__list { width:min(100%,1024px); margin:24px auto 0; display:grid; gap:10px; }
.activity-card { position:relative; min-height:260px; padding:38px 90px 34px 275px; display:flex; overflow:hidden; background:linear-gradient(100deg,#fff 38%,#f2f3f4); border:1px solid #eef0f2; }
.activity-card--right { padding:38px 275px 34px 90px; background:linear-gradient(100deg,#f1f2f3,#fff 62%); }
.activity-card::before { content:""; position:absolute; inset:0 auto 0 0; width:175px; background:var(--navy); clip-path:polygon(0 0,100% 0,55% 100%,0 100%); }
.activity-card--right::before { inset:0 0 0 auto; transform:scaleX(-1); }
.activity-card__icon { position:absolute; z-index:1; top:43px; left:61px; width:150px; height:150px; display:grid; place-items:center; color:var(--navy); background:#fff; border-radius:50%; box-shadow:0 8px 25px rgba(2,25,61,.12); font-family:"Noto Serif JP",serif; font-size:52px; border:1px solid #eef0f2; }
.activity-card--right .activity-card__icon { right:61px; left:auto; }
.activity-card__content { display:grid; grid-template-columns:auto 1fr; column-gap:22px; align-content:start; }
.activity-card__number { margin:0; color:var(--gold); font-family:"Noto Serif JP",serif; font-size:45px; line-height:1.1; }
.activity-card__title { margin:5px 0 18px; padding-left:22px; border-left:1px solid var(--gold); color:var(--navy); font-family:"Noto Serif JP",serif; font-size:23px; font-weight:500; line-height:1.35; }
.activity-card__text { grid-column:1/-1; margin:0; font-family:"Noto Serif JP",serif; font-size:14px; line-height:2; }
.activity-card__arrow { position:absolute; top:50%; right:54px; color:var(--gold); font-size:45px; line-height:1; transform:translateY(-50%); }
.activity-card--right .activity-card__arrow { right:auto; left:54px; }
.activity-card__link { position:absolute; z-index:3; inset:0; }
.activity-card { transition:transform .35s ease,box-shadow .35s ease; }
.activity-card:hover { z-index:2; transform:translateY(-4px); box-shadow:0 12px 28px rgba(2,25,61,.14); }
.activity-card:hover .activity-card__arrow { transform:translateY(-50%) translateX(5px); }
.activity-card--right:hover .activity-card__arrow { transform:translateY(-50%) translateX(-5px); }
.activity-card__link:focus-visible { outline:3px solid var(--gold); outline-offset:-4px; }

.supporter__title { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }
.supporter__links { width:min(100%,988px); height:169px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; }
.supporter__link { height:110px; padding:20px 36px; display:flex; align-items:center; gap:32px; overflow:hidden; color:#fff; border-radius:8px; font-family:"Noto Serif JP",serif; font-size:28px; letter-spacing:.04em; transition:transform .3s,filter .3s; }
.supporter__link picture { width:62px; flex:0 0 auto; }
.supporter__link b { margin-left:auto; font-size:40px; font-weight:400; }
.supporter__link--facebook { background:linear-gradient(115deg,#082c64,#0052a3); }
.supporter__link--instagram { background:linear-gradient(115deg,#6531a5,#dd2565 56%,#ff7b00); }
.supporter__link:hover { transform:translateY(-5px); filter:brightness(1.08); }

/* 読みやすさとFigmaの装飾画像に合わせた調整 */
.blog-card__date { font-size:13px; }
.blog-card__title { font-size:18px; line-height:1.65; }
.blog-card__text { font-size:14px; line-height:1.9; }
.blog-card__more { font-size:13px; font-family:"Noto Serif JP",serif; }
.blog-card__category { font-size:13px; }
.activity-card__visual { display:none; }
.supporter__link { position:relative; padding:0; display:block; background:none; }
.supporter__link picture { width:100%; height:100%; overflow:hidden; }
.supporter__link img { width:100%; max-width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.supporter__link:hover img { transform:scale(1.015); }

@media (max-width:1023px) {
  /* スマホでは挨拶セクションの画像見出しを表示しない */
  .greeting__headline { display:none; }
  .blog__visual { display:none; }
  .activities__visual { display:none; }
  .activity-card,.activity-card--right { min-height:0; padding:28px 24px 28px 105px; }
  .activity-card::before { width:74px; }
  .activity-card__icon,.activity-card--right .activity-card__icon { top:30px; right:auto; left:18px; width:68px; height:68px; font-size:25px; }
  .activity-card__number { font-size:30px; }
  .activity-card__title { margin-top:2px; padding-left:12px; font-size:17px; }
  .activity-card__text { font-size:12px; }
  .activity-card__arrow { display:none; }
  .supporter__links { height:auto; grid-template-columns:1fr; gap:14px; }
  .supporter__link { width:100%; height:auto; aspect-ratio:576/179; padding:0; }
  .supporter__link picture { width:100%; height:100%; }
  .supporter__link picture img { display:block; }
  .supporter { height:auto; padding-block:36px; }
}

@media (min-width:1024px) {
  .blog__grid { margin-top:30px; grid-template-columns:repeat(3,1fr); gap:28px; }
  .blog-card { height:450px; }
  .blog-card__image { height:190px; }
  .blog-card__date,.blog-card__title,.blog-card__text,.blog-card__more { margin-inline:2px; }
  .blog-card__title { font-size:17px; line-height:1.55; }
  .blog-card__text { font-size:13px; line-height:1.85; }
  .blog__button { min-height:54px; margin-top:12px; }
  .activities__list { height:1129px; grid-template-rows:repeat(4,1fr); }
  .activity-card { min-height:0; }
  .activity-card::before { display:none; }
  .activity-card__visual { position:absolute; z-index:0; top:0; bottom:0; left:0; width:275px; display:block; overflow:hidden; }
  .activity-card--right .activity-card__visual { right:0; left:auto; }
  .activity-card__visual img { position:static; width:100%; max-width:100%; height:100%; object-fit:cover; }
  .activity-card__content,.activity-card__arrow { z-index:1; }
  .activity-card { background:linear-gradient(90deg,#fff 45%,rgba(242,243,244,.8)); }
  .activity-card--right { background:linear-gradient(90deg,rgba(242,243,244,.8),#fff 55%); }
  .supporter__link { height:140px; border-radius:11px; }
  .activities .button { margin-top:46px; }
}

/* 活動一覧：競合を避ける最終レイアウト */
.activities__list .activity-card__visual { position:absolute; z-index:0; inset:0; width:100%; height:100%; display:block; overflow:hidden; opacity:1; }
.activities__list .activity-card__visual img { position:static; width:100%; max-width:100%; height:100%; object-fit:fill; }
.activities__list .activity-card__arrow { z-index:2; width:34px; height:50px; color:transparent; font-size:0!important; line-height:0; background-position:center; background-size:contain; background-repeat:no-repeat; }
.activities__list .activity-card__content { position:relative; z-index:2; }

@media (max-width:1023px) {
  .activities__list .activity-card__visual { opacity:.44; }
  .activities__list .activity-card::after,.activities__list .activity-card--right::after { top:28px; right:auto; left:14px; width:80px; height:80px; transform:none; }
}

@media (min-width:1024px) {
  .activities__list .activity-card { padding:38px 82px 34px 294px; }
  .activities__list .activity-card--right { padding:38px 82px 34px 294px; }
  .activities__list .activity-card::after { top:50%; left:54px; width:205px; height:205px; transform:translateY(-50%); }
  .activities__list .activity-card--right::after { right:54px; left:auto; }
  .activities__list .activity-card__arrow { right:48px; }
  .activities__list .activity-card--right .activity-card__arrow { right:auto; left:48px; }
  .activities__list .activity-card__content { width:470px; max-width:470px; margin:0; }
  .activities__list .activity-card__number { width:58px; font-size:48px; }
  .activities__list .activity-card__title { margin-top:5px; margin-bottom:20px; padding-left:18px; font-size:22px; white-space:nowrap; }
  .activities__list .activity-card__text { font-size:15px; line-height:2; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}

/* Figma実寸に基づく精密レイアウト */
.blog__visual,.supporter__visual { display:block; overflow:hidden; margin-inline:auto; }
.blog__visual img,.supporter__visual img { max-width:none; transition:transform .55s ease; }
.blog__visual { width:100%; aspect-ratio:1280/583; }
.blog__visual img { width:113.69%; height:166.5%; object-fit:fill; transform:translate(-6.51%,-29.3%); }
.blog__visual:hover img { transform:translate(-6.51%,-29.3%) scale(1.012); }
.blog__visual:hover img,.supporter__visual:hover img { transform:scale(1.012); }
.supporter { padding:38px 20px 46px; background:#fff; }
.supporter__visual { width:min(100%,988px); aspect-ratio:988/169; }
.supporter__visual img { width:100%; height:389.94%; object-fit:fill; transform:translateY(-74.36%); }
.supporter__visual:hover img { transform:translateY(-74.36%) scale(1.012); }

@media (min-width:1024px) {
  .container { width:min(calc(100% - 80px),1200px); }
  .header__inner { width:calc(100% - 34px); max-width:none; }
  .brand { margin-left:0; padding-left:19px; }
  .brand::before { width:5px; }
  .brand__name { font-size:40px; line-height:1.35; letter-spacing:.07em; }
  .brand { padding-top:7px; padding-bottom:7px; }
  .brand__name { line-height:1.25; }
  .brand__reading { align-self:center; padding:7px 0 0 1px; font-size:15px; line-height:1.5; letter-spacing:.03em; }
  .brand__party { margin-top:4px; font-size:15px; font-weight:350; line-height:1.55; letter-spacing:.03em; }
  .nav { margin-right:0; }
  .nav__link { padding-inline:24px; font-size:16px; }

  .hero,.hero__inner { height:689px; min-height:689px; }
  .hero__inner { width:100%; max-width:none; }
  .hero__background img { width:103.78%; height:116.97%; margin-left:-1.89%; transform:translateY(-10.62%); object-fit:fill; }
  .hero__background::after { background:linear-gradient(180deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.71) 28.365%,rgba(255,255,255,0) 100%); }
  .hero__message { padding-top:75px; padding-left:90px; }
  .hero__title { width:649px; height:274px; }
  .hero__title img { width:100%; height:100%; }
  .hero__lead { margin:22px 0 0 8px; font-size:20px; line-height:42px; letter-spacing:.05em; }
  .hero__portrait { right:-73px; bottom:0; width:630px; max-width:none; height:676px; overflow:hidden; }
  .hero__portrait img { width:100%; height:139.8%; object-fit:cover; object-position:center; transform:translateY(-13.12%); filter:none; }

  .section-title { margin:0; font-size:48px; line-height:42px; letter-spacing:.05em; }
  .section-title::after { width:104px; height:4px; margin-top:28px; }
  .section-lead { margin:30px auto 0; font-size:16px; line-height:32px; letter-spacing:.05em; }

  .sns { height:590px; padding:103px 0 0; }
  .sns .section-title { margin-bottom:62px; }
  .sns__gallery { width:1300px; max-width:calc(100vw - 140px); height:241px; margin-inline:auto; box-shadow:none; }
  .sns__gallery { grid-template-columns:repeat(7,1fr); gap:4px; height:241px; }
  .sns__gallery-item { aspect-ratio:auto; }
  .sns__gallery-item img { width:100%; height:100%; max-width:100%; object-fit:cover; transform:none; }
  .sns__gallery-item:hover img { transform:scale(1.025); }
  .sns__links { gap:16px; margin-top:53px; }
  .sns__link { width:53px; }

  .greeting { height:1111px; padding:94px 0 0; background:url("../images/greeting-bg.png") center/cover no-repeat; }
  .greeting::before { display:none; }
  .greeting__headline { width:567px; height:168px; margin:42px auto 34px; }
  .greeting__headline img { width:270.9%; height:609.52%; max-width:none; object-fit:fill; transform:translate(-30.4%,-12.2%); }
  .greeting__body { position:relative; display:block; max-width:none; }
  .greeting__text { width:920px; margin:auto; font-size:20px; line-height:40px; letter-spacing:.05em; text-align:center; }
  .greeting__text p { margin:0; }
  .greeting__portrait { position:absolute; right:-88px; top:107px; width:441px; height:564px; margin:0; }
  .greeting__portrait img { width:100%; height:117.27%; object-fit:cover; transform:translateY(-14.7%); }
  .greeting .button { width:620px; max-width:none; height:130px; margin-top:30px; padding:0; overflow:hidden; border:0; background:none; }

  .blog { height:829px; padding:30px 0 0; }
  .blog .section-lead { margin-top:30px; }
  .blog__visual { width:1280px; max-width:calc(100vw - 160px); height:583px; margin-top:12px; }
  .blog__visual img { width:113.69%; height:166.5%; object-fit:fill; transform:translate(-6.51%,-29.3%); }
  .blog__visual:hover img { transform:translate(-6.51%,-29.3%) scale(1.012); }

  .activities { height:1508px; padding:26px 0 0; background:#fff; }
  .activities .section-lead { margin-top:30px; }
  .activities__visual { width:1024px; height:1129px; margin-top:23px; }
  .activities__visual img { width:100%; height:136.05%; max-width:none; object-fit:fill; transform:translateY(-29.67%); }
  .activities .button { width:289px; height:54px; min-height:54px; margin-top:46px; padding:0; font-size:14px; }
  .supporter { height:215px; padding:0 20px 46px; }
  .footer { height:368px; }
  .footer__inner { width:calc(100% - 102px); max-width:none; }
}

/* 活動一覧の最終上書き（既存指定との競合防止） */
.activities__list .activity-card__visual { position:absolute; z-index:0; inset:0; width:100%; height:100%; display:block; overflow:hidden; opacity:1; }
.activities__list .activity-card__visual img { position:static; width:100%; max-width:100%; height:100%; object-fit:cover; }
.activities__list .activity-card__content { position:relative; z-index:2; }
.activities__list .activity-card__arrow { z-index:2; width:34px; height:50px; color:transparent; font-size:0!important; line-height:0; background-position:center; background-size:contain; background-repeat:no-repeat; }

@media (max-width:1023px) {
  .activities__list .activity-card__visual { opacity:.44; }
  .activities__list .activity-card::after,.activities__list .activity-card--right::after { top:28px; right:auto; left:14px; width:80px; height:80px; transform:none; }
}

@media (min-width:1024px) {
  .activities__list .activity-card { padding:38px 82px 34px 294px; }
  /* 偶数カードも奇数カードと同じテキスト開始位置にそろえる */
  .activities__list .activity-card--right { padding:38px 82px 34px 294px; }
  .activities__list .activity-card__visual,.activities__list .activity-card--right .activity-card__visual { inset:0; width:100%; height:100%; }
  .activities__list .activity-card__visual img { position:static; width:100%; height:100%; object-fit:fill; }
  .activities__list .activity-card::after { top:50%; left:54px; width:205px; height:205px; transform:translateY(-50%); }
  .activities__list .activity-card--right::after { right:54px; left:auto; }
  .activities__list .activity-card__arrow { right:48px; }
  .activities__list .activity-card--right .activity-card__arrow { right:auto; left:48px; }
  .activities__list .activity-card__number { font-size:48px; }
  .activities__list .activity-card__title { margin-top:5px; margin-bottom:20px; font-size:24px; }
  .activities__list .activity-card__text { font-size:15px; line-height:2; }
}

/* {改行}: only force a line break on smartphone screens. */
br.ebisu-mobile-break{display:none}
@media(max-width:767px){br.ebisu-mobile-break{display:revert}}
