@charset "UTF-8";

/* 余白は8px刻み。波を含む余白は装飾の高さを加味する。
   通常セクション PC64 / SP48、KV・パンくず直後 PC32 / SP24。
   波付きセクション PC80 / SP64、波 PC32×周期720 / SP24×周期480。
   KV画像・文字サイズ・カード内部・フォーム内部の指定には触れない。 */
:root {
  --space-unit: 8px;
  --space-section: 64px;
  --space-section-wave: 80px;
  --space-compact: 32px;
  --space-heading: 24px;
  --section-wave-height: 32px;
  --section-wave-period: 720px;
}
@media (max-width: 959px) {
  :root {
    --space-section: 48px;
    --space-section-wave: 64px;
    --space-compact: 24px;
    --space-heading: 16px;
    --section-wave-height: 24px;
    --section-wave-period: 480px;
  }
}

/* TOP：KV直後は小区切り、本文は通常のセクション間隔。 */
.policy-categories__inner { padding-block: var(--space-compact); }
.story { background: #fff; }
.story::before { border-radius: 0; }
.story__inner { padding-block: var(--space-section); }
.story__content { padding-top: 0; padding-bottom: 0; }
.story__body { margin-top: var(--space-heading); }
.about { background: var(--color-cream); }
.about__inner,
.profile-page .about__inner { padding-block: var(--space-section-wave); }
.about__heading-row,
.profile-section__heading,
.policy-block__heading { margin-bottom: var(--space-heading); }

/* 背景色が切り替わる境界の波を共通化。KVの大きな曲線は別用途として維持。 */
.about::before,
.profile-page .about::before,
.profile-origin::before,
.profile-origin::after,
.policy-block:nth-child(even)::before,
.policy-block:nth-child(even)::after,
.policy-overview::after,
.news::before,
.site-footer::before {
  height: var(--section-wave-height);
  -webkit-mask: var(--wave-mask) repeat-x 0 0 / var(--section-wave-period) 100%;
  mask: var(--wave-mask) repeat-x 0 0 / var(--section-wave-period) 100%;
}

/* TOPのお知らせも同じ波で紹介エリアからつなぐ。 */
.news { background: #fff; }
.news__backdrop { display: none; }
.news::before {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  background: var(--color-cream);
  pointer-events: none;
  content: "";
}
.news__inner { padding-block: var(--space-section-wave) var(--space-section); }
.news__content { padding-top: 0; }
.news__heading-row { margin-bottom: var(--space-heading); }

/* プロフィールの本文セクション。 */
.profile-message__inner { padding-block: var(--space-compact) var(--space-section); }
.profile-origin__inner { padding-block: var(--space-section-wave); }
.profile-bio { padding-block: var(--space-section); }

/* 政策・一覧・記事・お問い合わせの主要な区切り。 */
.policy-overview { padding-top: var(--space-compact); padding-bottom: calc(var(--space-compact) + var(--section-wave-height)); }
.policy-block { padding-block: var(--space-section); }
.policy-block:nth-child(even) { padding-block: var(--space-section-wave); }
.listing { padding-block: var(--space-compact) var(--space-section); }
.detail-container { margin-top: var(--space-compact); padding-bottom: var(--space-section); }
.contact-section { padding-block: var(--space-compact) var(--space-section); }
.listing-filters { margin-bottom: var(--space-compact); }

/* フッター前の帯をなくし、ひとつの波と共通の内側余白へ揃える。 */
.site-footer { border-top: 0; }
.site-footer__inner { padding-block: var(--space-section-wave) var(--space-section); }
.home-page .site-footer { --footer-wave-color: #fff; background: var(--color-cream); }
.home-page .site-footer__brand img { mix-blend-mode: multiply; }
