.reserve { border-top: 1px solid var(--line); }
.reserve__grid { display: grid; grid-template-columns: 29.4% repeat(3, minmax(0, 1fr)); }
.reserve__lead { padding: 7.5rem 2.5rem 4.5rem 5vw; }
.reserve__lead .title { font-size: var(--pow6); white-space: nowrap; }
.reserve__lead .text { line-height: 2; }
.reserve__attention { margin-top: 1.5rem; font-family: var(--go); font-size: 12px; letter-spacing: .04em; line-height: 1.8; color: var(--ink-sub); }
.reserve__attention li { padding-left: 1em; text-indent: -1em; }
.reserve__attention li::before { content: "※"; }
.reserve__attention.is-sp { display: none; }
.reserve__list { display: contents; }
.reserve__list li { border-left: 1px solid var(--line); }
.reserve__list a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2rem; height: 100%; min-height: 34rem; transition: background-color .4s var(--ease); }
.reserve__list a:hover { background: var(--surface); }
.reserve__icon { display: flex; align-items: center; justify-content: center; height: 68px; }
.reserve__icon svg { width: 60px; height: 60px; stroke-width: 1.4; transition: transform .4s var(--ease); }
.reserve__list a:hover .reserve__icon svg { transform: translateY(-4px); }
.reserve__btn { display: inline-flex; align-items: center; gap: .6em; padding: 0 1.4em; border: 1px solid var(--accent); border-radius: 2em; font-size: 13px; letter-spacing: .06em; line-height: 26px; background: var(--bg); }
.reserve__btn svg { width: 12px; height: 12px; }
@media (min-width: 1423px) { .reserve__lead { padding-left: calc((100vw - 1280px) / 2); } }
@media (max-width: 1000px) {
  .reserve__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 4.5rem 0 5rem; }
  .reserve__lead { grid-column: 1 / -1; padding: 0 5vw 2rem; text-align: center; }
  .reserve__lead .title { font-size: calc(var(--pow6) + 2px); }
  .reserve__lead .text { text-align: center; }
  .reserve__attention.is-pc { display: none; }
  .reserve__attention.is-sp { display: block; grid-column: 1 / -1; padding: 0 5vw; margin-top: 2rem; font-size: 11px; }
  .reserve__list li { border-left: 0; position: relative; }
  .reserve__list li + li::before { content: ""; position: absolute; left: 0; bottom: 1.5rem; width: 1px; height: 2rem; background: var(--line); }
  .reserve__list a { min-height: 0; gap: 1.4rem; padding: 1.5rem 0; }
  .reserve__icon { height: 52px; }
  .reserve__icon svg { width: 48px; height: 48px; }
  .reserve__btn { font-size: 10px; line-height: 20px; padding: 0 1.2em; }
  .reserve__btn svg { width: 9px; height: 9px; }
}
