/* ===== Layout primitives (shared across all pages) ===== */
.wrap { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); position: relative; z-index: 2; }
.wrap--narrow { max-width: var(--container-narrow); }
.wrap--wide { max-width: var(--container); }

/* 下層ページ（TOP以外）は本文エリア幅を基本 --container-narrow にする */
body.page-narrow .wrap { max-width: var(--container-narrow); }
body.page-narrow .wrap.wrap--wide { max-width: var(--container); }

.section { position: relative; padding: var(--section-py-top) 0 var(--section-py-bottom); }
.section--white { background: var(--surface-white); }
.section--sand { background: var(--surface-sand); }

.z-10 { z-index: 10; }
.z-11 { z-index: 11; }
.z-12 { z-index: 12; }
.z-13 { z-index: 13; }
.z-14 { z-index: 14; }
.z-15 { z-index: 15; }
.z-16 { z-index: 16; }
.z-17 { z-index: 17; }
.z-18 { z-index: 18; }
.z-19 { z-index: 19; }
.z-40 { z-index: 40; }
.z-80 { z-index: 80; }

.section-head-row { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 44px; gap: 24px; flex-wrap: wrap; }
.section-actions-center { text-align: center; margin-top: 44px; }
.section-actions-center--sm { margin-top: 46px; }
