/**
 * reset.css
 */
*,
*::after,
*::before {
  box-sizing: border-box;
}
:focus-visible {
  outline-offset: 3px;
}
:where(html) {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
:where(html) {
  line-height: 1.5;
}
:where(html) {
  scrollbar-gutter: stable;
}
:where(h1) {
  font-size: 2em;
  margin-block: 0.67em;
}
:where(abbr[title]) {
  cursor: help;
  text-decoration-line: underline;
  text-decoration-style: dotted;
}
@media (forced-colors: active) {
  mark {
    color: HighlightText;
    background-color: Highlight;
  }
}
:where(del, ins, s)::before,
:where(del, ins, s)::after {
  clip-path: inset(100%);
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  width: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  content: "test";
}
:where(s)::before {
  content: "stricken text start ";
}
:where(s)::after {
  content: " stricken text end";
}
:where(del)::before {
  content: "deletion start ";
}
:where(del)::after {
  content: " deletion end";
}
:where(ins)::before {
  content: "insertion start ";
}
:where(ins)::after {
  content: " insertion end";
}
:where(audio, iframe, img, svg, video) {
  max-block-size: 100%;
  max-inline-size: 100%;
}
:where(fieldset) {
  min-inline-size: 0;
}
:where(label):has(+ :where(textarea, input, select)) {
  display: block;
}
:where(textarea:not([rows])) {
  min-block-size: 6em;
}
:where(button, input, select, textarea) {
  font-family: inherit;
  font-size: inherit;
}
:where([type="search"]) {
  -webkit-appearance: textfield;
}
@supports (-webkit-touch-callout: none) {
  :where([type="search"]) {
    border: 1px solid -apple-system-secondary-label;
    background-color: canvas;
  }
}
:where([type="tel"], [type="url"], [type="email"], [type="number"]):not(
    :placeholder-shown
  ) {
  direction: ltr;
}
:where(table) {
  border-collapse: collapse;
  border: 1px solid;
}
:where(th, td) {
  border: 1px solid;
  padding: 0.25em 0.5em;
}
:where(dialog)::backdrop {
  background: oklch(0% 0 0 / 0.3);
}
:where(dialog),
:where(dialog)::backdrop {
  opacity: 0;
  transition: opacity 300ms ease-out, display 300ms allow-discrete,
    overlay 300ms allow-discrete;
}
:where(dialog[open]),
:where(dialog[open])::backdrop {
  opacity: 1;
}
@starting-style {
  :where(dialog[open]),
  :where(dialog[open])::backdrop {
    opacity: 0;
  }
}
[hidden]:not([hidden="until-found"]) {
  display: none !important;
}

body {
  margin: 0;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
}

/* スライダー */

/* スライダー全体 */
.vertical-slider {
  width: 100%;
  height: 100%;
}

/* スライド */
.vertical-slider__slide {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.container {
  position: relative;
  height: calc(100dvh - 58px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  background-color: var(--1bedbb11);
  margin: 0 auto;
}

.content-area {
  height: calc(100dvh - 26dvh);
  overflow: hidden;
}

/* スクロールバーの高さをcontent-areaに合わせる */
.swiper-scrollbar {
  height: calc(
    86dvh - 2 * var(--swiper-scrollbar-top-bottom-offset, 1%) - 58px
  ) !important;
}
.button-area {
  width: 100%;
  height: 14dvh;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin: 0 auto;
  padding-bottom: 1dvh;
}

.cta-button {
  display: block;
}

.cta-button img {
  display: block;
  height: 10dvh;
  object-fit: contain;
  margin: 0 auto;
}

.header {
  position: fixed;
  width: 100%;
  max-width: 580px;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: 10;
  padding: 12px 16px;
}

.swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}

@media (min-width: 580px) {
  .header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    height: 58px;
  }
}
