/* ===== Variables ===== */
:root {
  --color-yellow: #f3ce27;
  --color-yellow-light: #ffe882;
  --color-yellow-deep: #ffb40f;
  --color-orange: #fa7317;
  --color-orange-dark: #ff6600;
  --color-navy: #132b47;
  --color-blue: #048cbe;
  --color-blue-light: #aae1f4;
  --color-sky: #def6ff;
  --color-red: #f21414;
  --color-white: #fff;

  --font-heading: "M PLUS 1", "M PLUS 1p", sans-serif;
  --font-base: "M PLUS 1", "M PLUS 1p", sans-serif;
  --font-latin: "Jost", "Inter", sans-serif;
  --font-body: "Noto Sans JP", "M PLUS 1p", sans-serif;

  --container-width: 1200px;
  --container-padding: 120px;
  --sp-padding: 20px;

  --header-height: 80px;
  --header-height-sp: 65px;
  --half-leading: calc((1lh - 1em) / 2);
}

/* ===================================================
   TOP — ヒーローセクション
   =================================================== */
.p-topHero {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: var(--color-yellow);
  margin: 0 auto;
}

.p-topHero__image {
  width: 100%;
  height: auto;
}

.p-topHero__placeholder {
  margin: 0 auto;
}

/* ===================================================
   TOP — コンバージョンセクション
   =================================================== */
.p-topConversion {
  position: relative;
  background: linear-gradient(to bottom, #f3ce27, #ffb40f);
  padding: 80px 0 calc(120 * (100vw / 1440));
  overflow: hidden;
}

.p-topConversion::after {
  position: absolute;
  width: calc(364 * (100vw / 1440));
  max-width: 364px;
  aspect-ratio: 364 / 634;
  background: url(../img/common/snow02.svg) center / contain no-repeat;
  opacity: 1;
  content: "";
  right: calc(-25 * (100vw / 1440));
  top: 0;
  z-index: 2;
}

.p-topConversion::before {
  position: absolute;
  width: calc(339 * (100vw / 1440));
  max-width: 339px;
  aspect-ratio: 339 / 609;
  background: url(../img/common/snow01.svg) center / contain no-repeat;
  opacity: 1;
  content: "";
  left: calc(-30 * (100vw / 1440));
  top: 0;
  z-index: 2;
}

.p-topConversion__waveBottom {
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: calc(-1 * (100vw / 1440));
  left: 0;
  background: url(../img/common/bg-vector01.svg) no-repeat center top / 100%
    100%;
  z-index: 2;
}

.p-topConversion__inner {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  position: relative;
  z-index: 3;
}

.p-topConversion__btn-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: 904px;
}

/* お申し込みボタン */
.p-topConversion__btn-entry {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 151px;
  background: linear-gradient(to top, #f21414, #ff6600);
  border-radius: 452px;
  text-decoration: none;
  overflow: hidden;
}

.p-topConversion__btn-entry::before {
  content: "";
  background: url(../img/common/btn01-pokemon.png) no-repeat center / cover;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: clamp(20px, 3vw, 35px);
  width: 132px;
  aspect-ratio: 132 / 130;
}

.p-topConversion__btn-entry::after {
  content: "";
  background: url(../img/common/btn01-ball.svg) no-repeat center / cover;
  position: absolute;
  top: -10px;
  right: -35px;
  width: 172px;
  height: 173px;
}

.p-topConversion__btn-entry-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 1;
}

.p-topConversion__btn-entry-price {
  display: flex;
  align-items: flex-end;
  gap: 4px;
}

.p-topConversion__btn-entry-num {
  font-family: "Jost", sans-serif;
  font-weight: 700;
  font-size: clamp(48px, 6.7vw, 80px);
  color: var(--color-yellow-light);
  line-height: 1;
}

.p-topConversion__btn-entry-unit {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 2vw, 24px);
  color: var(--color-white);
  line-height: 2;
  letter-spacing: 0.15em;
}

.p-topConversion__btn-entry-text {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(24px, 3.3vw, 40px);
  color: var(--color-white);
  letter-spacing: 0.1em;
  text-align: center;
}

.p-topConversion__btn-entry-label {
  background-color: var(--color-white);
  color: var(--color-red);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(12px, 1.3vw, 16px);
  letter-spacing: 0.15em;
  padding: 4px 32px;
  border-radius: 452px;
}

.p-topConversion__btn-entry-arrow {
  position: absolute;
  right: clamp(40px, 4.5vw, 75px);
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-topConversion__btn-entry-arrow i {
  display: inline-block;
  width: 19px;
  height: 19px;
  position: relative;
}

.p-topConversion__btn-entry-arrow i::before,
.p-topConversion__btn-entry-arrow i::after {
  content: "";
  width: 20px;
  height: 4px;
  display: inline-block;
  border-radius: 4px;
  background: var(--color-red);
  position: absolute;
  left: 0;
}

.p-topConversion__btn-entry-arrow i::before {
  bottom: calc(50% - 8px);
  transform: rotate(-40deg);
}

.p-topConversion__btn-entry-arrow i::after {
  bottom: calc(50% + 3px);
  transform: rotate(40deg);
}

@media screen and (min-width: 768px) {
  .p-topConversion__btn-entry {
    transition: ease 0.4s;
    transform: scale(1);
  }

  .p-topConversion__btn-entry:hover {
    transform: scale(1.1);
    opacity: 1;
  }

  .p-topConversion__btn-entry::before {
    width: clamp(90px, 11vw, 132px);
  }
}

/* 初めての方ボタン */
.p-topConversion__btn-intro {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 151px;
  background: linear-gradient(to top, #048cbe, #78c8cc);
  border-radius: 452px;
  text-decoration: none;
  overflow: hidden;
}

.p-topConversion__btn-intro::before {
  content: "";
  background: url(../img/common/btn02-ball.svg) no-repeat center / cover;
  position: absolute;
  top: -10px;
  left: -30px;
  width: 171px;
  height: 172px;
}

.p-topConversion__btn-intro::after {
  content: "";
  background: url(../img/common/btn02-pokemon.png) no-repeat center / cover;
  position: absolute;
  top: clamp(18px, 2.5vw, 30px);
  right: clamp(60px, 10vw, 120px);
  width: 85px;
  aspect-ratio: 85 / 90;
}

@media screen and (min-width: 768px) {
  .p-topConversion__btn-intro {
    transition: ease 0.4s;
    transform: scale(1);
  }

  .p-topConversion__btn-intro:hover {
    transform: scale(1.1);
    opacity: 1;
  }

  .p-topConversion__btn-intro::after {
    width: clamp(60px, 7vw, 85px);
  }
}

.p-topConversion__btn-intro-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
  z-index: 1;
}

.p-topConversion__btn-intro-text {
  font-weight: 700;
  font-size: clamp(22px, 3vw, 36px);
  color: var(--color-white);
  letter-spacing: 0.1em;
  text-align: center;
}

.p-topConversion__btn-intro-label {
  background-color: var(--color-white);
  color: var(--color-blue);
  font-weight: 700;
  font-size: clamp(12px, 1.3vw, 16px);
  letter-spacing: 0.15em;
  padding: 4px 32px;
  border-radius: 452px;
}

.p-topConversion__btn-intro-arrow {
  position: absolute;
  right: clamp(40px, 4.5vw, 75px);
  top: 50%;
  transform: translateY(-50%);
  width: 75px;
  height: 75px;
  background-color: var(--color-white);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-topConversion__btn-intro-arrow i {
  display: inline-block;
  width: 19px;
  height: 19px;
  position: relative;
}

.p-topConversion__btn-intro-arrow i::before,
.p-topConversion__btn-intro-arrow i::after {
  content: "";
  width: 20px;
  height: 4px;
  display: inline-block;
  border-radius: 4px;
  background: var(--color-blue);
  position: absolute;
  left: 0;
}

.p-topConversion__btn-intro-arrow i::before {
  bottom: calc(50% - 8px);
  transform: rotate(-40deg);
}

.p-topConversion__btn-intro-arrow i::after {
  bottom: calc(50% + 3px);
  transform: rotate(40deg);
}

/* 申込期間 */
.p-topConversion__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.p-topConversion__date-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}

.p-topConversion__date-badge {
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--color-orange);
  font-weight: 700;
  font-size: 26px;
  letter-spacing: 0.1em;
  padding: 4px 32px;
  border-radius: 8px;
}

.p-topConversion__date-text {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  color: var(--color-white);
}

.p-topConversion__date-num {
  font-family: "Jost", sans-serif;
  font-weight: 700;
  font-size: 48px;
  line-height: 1.2;
  color: var(--color-white);
}

.p-topConversion__date-unit {
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--color-white);
  line-height: 1.8;
}

.p-topConversion__date-wave {
  font-weight: 500;
  font-size: 24px;
  color: var(--color-white);
  padding: 0 8px;
}

.p-topConversion__date-note {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 20px;
  color: var(--color-white);
  text-align: center;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .p-topConversion__btn-intro-text br.sp {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .p-topConversion {
    padding: 40px 0 calc(180 * (100vw / 1440));
  }
  .p-topConversion__inner {
    padding: 0 6px;
  }

  .p-topConversion__btn-entry {
    max-width: 400px;
    height: 100px;
  }

  .p-topConversion__btn-entry-price {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0;
  }

  .p-topConversion__btn-entry-num {
    font-size: 36px;
  }

  .p-topConversion__btn-entry-unit {
    font-size: 12px;
  }

  .p-topConversion__btn-entry-text {
    width: 100%;
    font-size: 18px;
    line-height: 120%;
  }

  .p-topConversion__btn-entry::before {
    width: 63px;
  }

  .p-topConversion__btn-entry-label {
    font-size: 12px;
    border-radius: 20px;
    padding: 1px 12px;
  }

  .p-topConversion__btn-entry::after {
    top: -5px;
    right: -33px;
    width: 101px;
    height: 102px;
  }

  .p-topConversion__btn-entry-arrow {
    width: 30px;
    height: 30px;
    right: 30px;
  }

  .p-topConversion__btn-intro {
    max-width: 400px;
    height: 100px;
  }

  .p-topConversion__btn-intro-text {
    font-size: 18px;
    line-height: 140%;
    margin-bottom: 5px;
  }

  .p-topConversion__btn-intro-text br.sp {
    display: block;
  }

  .p-topConversion__btn-intro-label {
    font-size: 12px;
    border-radius: 20px;
    padding: 1px 12px;
  }

  .p-topConversion__btn-intro::before {
    width: 101px;
    height: 102px;
    top: -5px;
    left: -25px;
  }

  .p-topConversion__btn-intro::after {
    width: 40px;
    height: 41px;
    top: 50%;
    right: 50px;
    transform: translateY(-50%);
  }

  .p-topConversion__btn-intro-arrow {
    width: 30px;
    height: 30px;
    right: 30px;
  }

  .p-topConversion__btn-entry-arrow i,
  .p-topConversion__btn-intro-arrow i {
    width: 7px;
    height: 7px;
  }

  .p-topConversion__btn-intro-arrow i::before,
  .p-topConversion__btn-intro-arrow i::after,
  .p-topConversion__btn-entry-arrow i::before,
  .p-topConversion__btn-entry-arrow i::after {
    width: 7px;
    height: 1.5px;
    border-radius: 1.5px;
  }

  .p-topConversion__btn-intro-arrow i::before,
  .p-topConversion__btn-entry-arrow i::before {
    bottom: calc(50% - 3.5px);
    transform: rotate(-40deg);
  }

  .p-topConversion__btn-intro-arrow i::after,
  .p-topConversion__btn-entry-arrow i::after {
    bottom: calc(50% + 0.5px);
    transform: rotate(40deg);
  }

  .p-topConversion__waveBottom {
    bottom: calc(-1 * (100vw / 375));
  }
}

@media screen and (max-width: 630px) {
  .p-topConversion__date-badge {
    font-size: 14px;
    padding: 4px 12px;
  }

  .p-topConversion__date-text {
    gap: 2px;
    width: 100%;
    justify-content: center;
  }

  .p-topConversion__date-num {
    font-size: 24px;
  }

  .p-topConversion__date-unit {
    font-size: 12px;
  }

  .p-topConversion__date-wave {
    font-size: 12px;
    padding: 0 2px;
  }

  .p-topConversion__date-note {
    font-size: 14px;
  }

  .p-topConversion::before {
    width: calc(98 * (100vw / 375));
    aspect-ratio: 98 / 298;
    background: url(../img/common/snow01_sp.svg) center / contain no-repeat;
    left: calc(-15 * (100vw / 375));
    top: calc(23 * (100vw / 375));
    bottom: auto;
  }

  .p-topConversion::after {
    width: calc(82 * (100vw / 375));
    aspect-ratio: 82 / 329;
    background: url(../img/common/snow02_sp.svg) center / contain no-repeat;
    right: calc(-16 * (100vw / 375));
    bottom: calc(60 * (100vw / 375));
  }
}

/* pickup
----------------------------------------------- */
.p-pickup__section {
  padding-top: 0;
  padding-bottom: 80px;
  background: var(--color-white);
}

.p-pickup__section .section-panel__inner {
  max-width: 1200px;
}

.p-pickup__mainList {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
  margin-bottom: 40px;
  max-width: 1200px;
  margin-inline: auto;
}

.p-pickup__listLink {
  display: block;
  overflow: hidden;
  border-radius: 8px;
}

.p-pickup__listLink img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slick-slide {
  padding-inline: 13px;
}

.p-pickup__section .slick-prev,
.p-pickup__section .slick-next {
  width: 40px;
  height: 40px;
  z-index: 999;
}

.slick-prev {
  left: -5px;
}

.slick-next {
  right: -5px;
}

.slick-prev:before {
  content: "";
  background: url(../img/common/slide-arrow_left.svg) no-repeat center center;
  width: 40px;
  height: 40px;
  opacity: 1;
  display: inline-block;
}

.slick-next:before {
  content: "";
  background: url(../img/common/slide-arrow_right.svg) no-repeat center center;
  width: 40px;
  height: 40px;
  opacity: 1;
  display: inline-block;
}

@media screen and (min-width: 767px) {
  .p-pickup__listLink {
    position: relative;
    height: 100%;
  }
  .p-pickup__listLink::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: 5px var(--color-orange) solid;
    opacity: 1;
    border-radius: 4px;
    opacity: 0;
    transition: ease 0.4s;
  }

  .p-pickup__listLink:hover::before {
    opacity: 1;
  }

  .p-pickup__listLink:hover {
    opacity: 1;
    box-shadow: 0 0 8px rgba(250, 115, 23, 0.9);
  }

  .p-pickup__subList .slick-track {
    padding-block: 8px;
  }
}

@media screen and (max-width: 767px) {
  .p-pickup__section.section-panel {
    padding: 20px 0;
  }

  .p-pickup__section .section-panel__inner {
    padding-inline: 0;
  }

  .p-pickup__mainList {
    padding-inline: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    margin-bottom: 15px;
  }

  .slick-slide {
    padding-inline: 7.5px;
  }

  .p-pickup__section .slick-prev,
  .p-pickup__section .slick-next {
    width: 24px;
    height: 24px;
  }

  .slick-prev::before,
  .slick-next::before {
    width: 24px;
    height: 24px;
    background-size: cover;
  }

  .slick-prev {
    left: 26%;
  }

  .slick-next {
    right: 26%;
  }
}

/* news
----------------------------------------------- */
.p-topNews__section {
  padding-top: calc(40 * (100vw / 1440));
  padding-bottom: calc(282 * (100vw / 1440));
  position: relative;
  background: var(--color-white);
}
.p-topNews__gradation {
  position: absolute;
  bottom: 0;
  left: 0;
  background: linear-gradient(180deg, #eaf9ff 0%, #fbfff2 100%);
  width: 100%;
  height: calc(100% - calc(80 * (100vw / 1440)));
  z-index: 1;
}

.p-topNews__gradation::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
}

.p-topNews__wave {
  background: url(../img/common/bg-vector01.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
}

.p-topNews__pokemon01 {
  position: absolute;
  left: 50%;
  bottom: calc(40 * (100vw / 1400));
  transform: translateX(-50%);
  max-width: 553px;
  width: calc(553 * (100vw / 1400));
  aspect-ratio: 553 / 208;
  z-index: 1;
}

.p-topNews__section::before,
.p-topNews__section::after {
  position: absolute;
  opacity: 1;
  content: "";
  z-index: 2;
}

.p-topNews__section::before {
  left: 0;
  bottom: 0;
  max-width: 620px;
  width: calc(620 * (100vw / 1400));
  aspect-ratio: 620 / 964;
  background: url("../img/common/snow08.svg") center / contain no-repeat;
}

.p-topNews__section::after {
  right: 0;
  bottom: 0;
  max-width: 396px;
  width: calc(396 * (100vw / 1400));
  aspect-ratio: 369 / 752;
  background: url("../img/common/snow09.svg") center / contain no-repeat;
}
.section-panel__inner {
  position: relative;
  z-index: 3;
}

.p-topNews__sectionBody {
  display: grid;
  width: 100%;
  align-items: start;
  max-width: 1200px;
  margin-inline: auto;
}

.new-icon {
  position: absolute;
  z-index: 2;
  width: 64px;
  height: 64px;
  top: -16px;
  left: -16px;
}

.p-topNews__feature {
  position: relative;
  box-shadow: 0 0 8px rgba(54, 145, 180, 0.08);
  border-radius: 8px;
}

.p-topNews__featureImage {
  width: 100%;
  border-radius: 8px 8px 0 0;
}

.p-topNews__featureTextarea {
  background: var(--color-white);
  border-radius: 0 0 8px 8px;
  padding: 16px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.p-topNews__list {
  display: grid;
  gap: 24px 0;
}

.p-topNews__listLink {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 0 42px;
  min-height: 108px;
  align-items: center;
  padding: 16px;
  border-radius: 4px;
  background: var(--color-white);
  box-shadow: 0 0 8px rgba(54, 145, 180, 0.08);
}

.p-topNews__listImage {
  border-radius: 4px;
}

.p-topNews__listTextarea {
  display: flex;
  flex-direction: column;
  gap: 8px 0;
}

.p-topNews__date {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-family: var(--font-latin);
}

.p-topNews__text {
  font-size: 1em;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
}

.p-topNews__section .c-btn__primary {
  margin-top: 24px;
}

@media screen and (min-width: 768px) {
  .p-topNews__sectionBody {
    grid-template-columns: minmax(260px, 32.7%) minmax(0, 1fr);
    gap: clamp(32px, 5.3vw, 64px);
  }

  .p-topNews__listLink,
  .p-topNews__feature {
    position: relative;
    transition: ease 0.4s;
  }

  .p-topNews__listLink:hover,
  .p-topNews__feature:hover {
    opacity: 1;
    box-shadow: 0 0 8px rgba(250, 115, 23, 0.9);
  }

  .p-topNews__listLink::before,
  .p-topNews__feature::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: 5px var(--color-orange) solid;
    opacity: 1;
    border-radius: 4px;
    opacity: 0;
    transition: ease 0.4s;
  }

  .p-topNews__feature::before {
    border-radius: 8px;
  }

  .p-topNews__listLink:hover::before,
  .p-topNews__feature:hover::before {
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .p-topNews__section {
    padding-top: 0;
    padding-bottom: calc(120 * (100vw / 375));
  }

  .p-topNews__sectionBody {
    gap: 30px;
  }

  .new-icon {
    width: 45px;
    height: 45px;
  }

  .p-topNews__list {
    gap: 15px;
  }

  .p-topNews__listLink {
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 16px;
    padding: 15px;
  }

  .p-topNews__gradation {
    height: calc(100% - calc(60 * (100vw / 375)));
  }

  .p-topNews__gradation::before {
    background: url(../img/common/bg-vector02.svg) no-repeat center / 200%;
    height: calc(40 * (100vw / 375));
    top: calc(-20 * (100vw / 375));
  }

  .p-topNews__section::before {
    max-width: 108px;
    width: calc(108 * (100vw / 375));
    aspect-ratio: 108 / 1082;
    background: url(../img/common/snow10.svg) no-repeat center / cover;
  }

  .p-topNews__section::after {
    max-width: 129px;
    width: calc(129 * (100vw / 375));
    aspect-ratio: 129 / 692;
    background: url(../img/common/snow11.svg) no-repeat center / cover;
    bottom: calc(100 * (100vw / 375));
  }

  .p-topNews__pokemon01 {
    bottom: calc(10 * (100vw / 375));
    transform: translateX(-50%);
    max-width: 249px;
    width: calc(249 * (100vw / 375));
  }
}

/* ski resort
----------------------------------------------- */
.p-skiResort__section {
  padding-top: 0;
  padding-bottom: 44px;
  background: var(--color-white);
}

.p-skiResort__section .section-panel__inner {
  max-width: 1440px;
}

.p-skiResort__section__badge {
  position: absolute;
  z-index: 4;
  top: 3.5%;
  left: 3.333%;
  display: inline-flex;
  justify-content: flex-start;
  align-items: flex-end;
  margin: 0;
  padding: 1% 2%;
  border-radius: 5px;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: clamp(14px, 2vw, 25px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.1em;
  gap: 2px;
}

.p-skiResort__section__badge .large {
  font-size: clamp(24px, 3.3vw, 40px);
  font-weight: 600;
}

.p-skiResort__mapArea {
  position: relative;
  max-width: 1200px;
  margin: 7% auto 0 auto;
  padding: 0;
  aspect-ratio: 1200 / 1088;
}

.p-skiResort__map {
  position: relative;
  overflow: hidden;
  margin: 0;
  border-radius: 8px;
}

.p-skiResort__map img {
  width: 100%;
  margin: 0 auto;
}

.p-area__block {
  position: absolute;
  z-index: 4;
  width: clamp(180px, 26vw, 300px);
  padding: clamp(6px, 0.7vw, 8px);
  border-radius: 7px;
  background: var(--area-color);
  color: var(--color-navy);
  font-family: "M PLUS 1", var(--font-base);
  font-style: normal;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.15em;
  box-shadow: 0 0 8px rgba(20, 63, 90, 0.09);
}

.p-area__block::after {
  display: none;
}

.p-area__blockTitle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(100px, 12.5vw, 150px);
  margin: 0 auto 8px;
  border-radius: 999px;
  background: var(--color-white);
  color: var(--area-color);
  font-size: clamp(12px, 1.2vw, 16px);
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.15em;
  padding: 2px;
  position: relative;
  font-family: var(--font-heading);
}

.p-area__blockTitle::before {
  content: "";
  width: 16px;
  height: 16px;
  position: absolute;
  top: 50%;
  left: 5%;
  transform: translateY(-50%);
}

.p-area__block--niigata .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_niigata.svg) no-repeat center / cover;
}

.p-area__block--gifu .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_gifu.svg) no-repeat center / cover;
}

.p-area__block--fukui .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_fukui.svg) no-repeat center / cover;
}

.p-area__block--shiga .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_shiga.svg) no-repeat center / cover;
}

.p-area__block--gunma .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_gunma.svg) no-repeat center / cover;
}

.p-area__block--nagano .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_nagano.svg) no-repeat center / cover;
}

.p-area__block--miyagi .p-area__blockTitle::before {
  background: url(../img/top/ball-icon_miyagi.svg) no-repeat center / cover;
}

.p-area__blockList {
  display: grid;
  gap: 7px;
}

.p-area__blockItem {
  border-radius: 4px;
  background: var(--color-white);
}

.p-area__blockItem a {
  position: relative;
  display: flex;
  align-items: center;
  padding: clamp(6px, 0.5vw, 8px) 42px clamp(6px, 0.5vw, 8px)
    clamp(12px, 1.2vw, 16px);
  color: #132b47;
  font-size: clamp(10px, 1.2vw, 16px);
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.15em;
  transition: ease 0.3s;
}

.p-area__blockItem a::after {
  position: absolute;
  top: 50%;
  right: 14px;
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  display: inline-block;
  border-radius: 50%;
  background: var(--area-color);
  transform: translateY(-50%);
  content: "";
  z-index: 1;
}

.p-area__blockItem a::before {
  position: absolute;
  top: 47%;
  right: 18px;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid var(--color-white);
  border-right: 1.5px solid var(--color-white);
  transform: rotate(45deg) translate(-3px, 3px) translateY(-50%);
  content: "";
  z-index: 2;
}

.p-area__block--niigata {
  --area-color: #ec7aac;
  top: 13%;
  left: 3.333%;
}

.p-area__block--gifu {
  --area-color: #0088b9;
  top: 24%;
  left: 3.333%;
}

.p-area__block--fukui {
  --area-color: #9dbd21;
  top: 40.5%;
  left: 3.333%;
}

.p-area__block--shiga {
  --area-color: #8455a0;
  top: 85%;
  left: 3.333%;
}

.p-area__block--miyagi {
  --area-color: #219a3a;
  top: -5.6%;
  right: 3.22%;
}

.p-area__block--gunma {
  --area-color: #e84653;
  top: 25.5%;
  right: 3.333%;
}

.p-area__block--nagano {
  --area-color: #f39a23;
  top: 58%;
  right: 3.333%;
}

@media screen and (min-width: 768px) {
  .p-area__blockItem a:hover {
    opacity: 1;
    color: var(--area-color);
  }
}

@media screen and (max-width: 1200px) {
  .p-skiResort__mapArea {
    transform: scale(0.98);
    transform-origin: center top;
  }
}
@media screen and (max-width: 800px) {
  .p-area__block--gunma {
    top: 18.5%;
  }
}
@media screen and (max-width: 767px) {
  .p-skiResort__section {
    padding-inline: 0;
    padding-top: 10px;
    padding-bottom: calc(80 * (100vw / 375));
  }

  .p-skiResort__section .section-panel__inner {
    padding-inline: 0;
    padding-bottom: calc(200 * (100vw / 375));
  }

  .p-skiResort__section__badge {
    position: relative;
    top: auto;
    left: auto;
    margin-bottom: calc(20 * (100vw / 375));
    justify-content: center;
    font-size: calc(16 * (100vw / 375));
    padding: calc(6 * (100vw / 375)) calc(12 * (100vw / 375));
  }

  .p-skiResort__section__badge .large {
    font-size: calc(32 * (100vw / 375));
    letter-spacing: 0;
  }

  .p-skiResort__mapArea {
    transform: scale(1);
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .p-skiResort__map {
    position: relative;
    z-index: 1;
    top: calc(77 * (100vw / 375));
    left: 0;
    width: 100%;
  }

  .p-area__blockTitle {
    line-height: 1.4;
    font-size: calc(14 * (100vw / 375));
    margin: 0 auto calc(3 * (100vw / 375));
    padding: calc(2 * (100vw / 375));
    width: calc(100 * (100vw / 375));
  }

  .p-area__blockTitle::before {
    width: 12px;
    height: 12px;
  }

  .p-area__block {
    width: calc(132 * (100vw / 375));
    border-radius: calc(4 * (100vw / 375));
    padding: calc(3.5 * (100vw / 375));
  }

  .p-area__block--niigata {
    top: calc(105 * (100vw / 375));
    left: calc(15 * (100vw / 375));
  }

  .p-area__block--fukui {
    top: calc(175 * (100vw / 375));
    left: calc(15 * (100vw / 375));
  }

  .p-area__block--gifu {
    top: calc(245 * (100vw / 375));
    left: calc(15 * (100vw / 375));
  }

  .p-area__block--miyagi {
    top: calc(85 * (100vw / 375));
    right: calc(15 * (100vw / 375));
  }

  .p-area__block--gunma {
    top: auto;
    bottom: calc(-60 * (100vw / 375));
    right: calc(15 * (100vw / 375));
  }

  .p-area__block--shiga {
    top: auto;
    bottom: calc(-60 * (100vw / 375));
    left: calc(15 * (100vw / 375));
  }

  .p-area__block--nagano {
    width: calc(261 * (100vw / 375));
    top: calc(530 * (100vw / 375));
    left: 50%;
    transform: translateX(-50%);
  }

  .p-area__block--nagano .p-area__blockList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(4 * (100vw / 375));
    width: 100%;
  }

  .p-area__blockList {
    gap: calc(4 * (100vw / 375));
  }

  .p-area__blockItem a {
    min-height: calc(30 * (100vw / 375));
    height: 100%;
    padding: calc(7 * (100vw / 375)) calc(20 * (100vw / 375))
      calc(7 * (100vw / 375)) calc(3 * (100vw / 375));
    border-radius: clamp(4px, 1.06vw, 6px);
    font-size: min(3.2vw, 15px);
    line-height: 1.4;
    letter-spacing: 0.05em;
  }

  .p-area__blockItem a::after {
    right: calc(5 * (100vw / 375));
    width: calc(14 * (100vw / 375));
    height: calc(14 * (100vw / 375));
  }

  .p-area__blockItem a::before {
    top: 48%;
    right: calc(8 * (100vw / 375));
    width: calc(4 * (100vw / 375));
    height: calc(4 * (100vw / 375));
    border-top: calc(1 * (100vw / 375)) solid var(--color-white);
    border-right: calc(1 * (100vw / 375)) solid var(--color-white);
  }
}

/* gallery
----------------------------------------------- */
.p-gallery__section {
  position: relative;
  margin-top: 0;
  padding: 100px 0 150px;
  background: var(--color-white);
}

.p-gallery__section::before {
  position: absolute;
  top: 0;
  left: 0;
  background: url(../img/common/snow06.svg) no-repeat center / cover;
  content: "";
  max-width: 571px;
  width: calc(571 * (100vw / 1400));
  aspect-ratio: 571 / 660;
  z-index: 2;
}

.p-gallery__section::after {
  position: absolute;
  top: 0;
  right: 0;
  background: url(../img/common/snow06.svg) no-repeat center / cover;
  content: "";
  max-width: 571px;
  width: calc(571 * (100vw / 1400));
  aspect-ratio: 571 / 660;
  z-index: 2;
  transform: rotateY(180deg);
}

.p-gallery__gradiation {
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(to bottom, #f1cc23, #ffb40f);
  width: 100%;
  height: calc(629 * (100vw / 1400));
  max-height: 629px;
  z-index: 1;
}

.p-gallery__gradiation::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
}

.p-gallery__gradiation::after {
  content: "";
  background: url(../img/common/bg-vector01.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: calc(-1 * (100vw / 1440));
  left: 0;
}

.c-title__heading.-gallery {
  position: relative;
  z-index: 3;
}

.p-gallery__section__en {
  font-size: clamp(72px, 10vw, 138px);
  font-weight: 700;
  line-height: 0.86;
}

.p-gallery__section__ja {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: -24px;
  padding: 0 28px;
  border-radius: 999px;
  background: var(--color-white);
  color: var(--color-navy);
  font-size: 20px;
  font-weight: 700;
}

.p-gallery__section__inner {
  position: relative;
  z-index: 3;
}

.p-gallery__movieBlock {
  width: min(1200px, 100%);
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 40px;
}

.p-gallery__movieIframe {
  overflow: hidden;
  width: min(808px, 100%);
  margin-inline: auto;
  aspect-ratio: 16 / 9;
}

.p-gallery__movieIframe iframe {
  width: 100%;
  height: 100%;
}

.p-gallery__pokemon01 {
  width: min(150px, 100%);
  position: absolute;
  bottom: 0;
  left: 0;
}

.p-gallery__pokemon02 {
  width: min(205px, 100%);
  position: absolute;
  bottom: 0;
  right: -50px;
}

.p-gallery__slick {
  margin-top: 80px;
}

.slick-initialized .p-gallery__grid.slick-slide {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: repeat(2, 1fr);
  gap: 24px;
  max-width: 1182px;
}

.p-gallery__gridItem {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 24px;
  aspect-ratio: 7/5;
}

.p-gallery__gridItem--large {
  grid-row: 1 / 3;
}

@media screen and (max-width: 1200px) {
  .p-gallery__pokemon01 {
    width: calc(150 * (100vw / 1440));
    bottom: calc(-30 * (100vw / 1440));
    left: calc(10 * (100vw / 1440));
  }

  .p-gallery__pokemon02 {
    width: calc(205 * (100vw / 1440));
    right: calc(10 * (100vw / 1440));
    bottom: calc(-40 * (100vw / 1440));
  }
}

@media screen and (max-width: 767px) {
  .p-gallery__section {
    padding-top: calc(40 * (100vw / 375));
    padding-bottom: calc(46 * (100vw / 375));
    margin-top: 0;
  }

  .p-gallery__section::before {
    max-width: calc(266 * (100vw / 375));
    width: calc(266 * (100vw / 375));
    top: calc(70 * (100vw / 375));
    left: calc(-120 * (100vw / 375));
  }

  .p-gallery__section::after {
    max-width: calc(266 * (100vw / 375));
    width: calc(266 * (100vw / 375));
    top: calc(70 * (100vw / 375));
    right: calc(-120 * (100vw / 375));
  }

  .p-gallery__gradiation {
    height: calc(314 * (100vw / 375));
    max-height: calc(314 * (100vw / 375));
    top: calc(60 * (100vw / 375));
  }

  .p-gallery__gradiation::before {
    background: url(../img/common/bg-vector02.svg) no-repeat top center / 200%;
    height: calc(40 * (100vw / 375));
    top: -1px;
  }

  .p-gallery__pokemon01,
  .p-gallery__pokemon02 {
    display: none;
  }

  .p-gallery__gridItem {
    border-radius: calc(5 * (100vw / 375));
  }

  .p-gallery__grid {
    grid-template-columns: 1fr 0.75fr;
  }

  .slick-initialized .p-gallery__grid.slick-slide {
    gap: calc(8 * (100vw / 375));
    padding-inline: calc(4 * (100vw / 375));
  }

  .p-gallery__slick {
    margin-top: calc(30 * (100vw / 375));
  }

  .p-gallery__movieBlock {
    padding-inline: 15px;
  }
}

/* benefit
----------------------------------------------- */

.p-benefit__section {
  position: relative;
  width: 100%;
  padding-bottom: 130px;
  background: var(--color-white);
  z-index: 2;
  padding-inline: 40px;
}

.p-benefit__gradiation {
  position: absolute;
  top: calc(295 * (100vw / 1440));
  left: 0;
  background: linear-gradient(to bottom, #4fb90c, #fff);
  width: 100%;
  height: calc(100% - calc(240 * (100vw / 1440)));
  z-index: 1;
}

.p-benefit__gradiation::after {
  content: "";
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../img/common/bg-vector01.svg) no-repeat center top / 100%
    100%;
  z-index: 2;
}

.p-benefit__section::before {
  content: "";
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  top: calc(180 * (100vw / 1440));
  left: 0;
  background: url(../img/common/bg-vector04.svg) no-repeat center top / 100%
    100%;
  z-index: 2;
}

.p-benefit__block {
  width: 100%;
  max-width: 1392px;
  margin-inline: auto;
  padding-block: calc(50 * (100vw / 1440));
  position: relative;
  z-index: 2;
  border-radius: calc(48 * (100vw / 1440));
  background: url(../img/top/summer-benefit.png) no-repeat center center/cover;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-benefit__blockBody {
  display: grid;
  align-items: center;
  justify-content: center;
  width: min(549px, 54%);
  aspect-ratio: 1;
  padding: 24px;
  background: url(../img/top/benefit-waku.svg) no-repeat center/cover;
  text-align: center;
}

.p-benefit__blockText {
  padding-block: 24px 55px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.15em;
  color: #000;
}

.p-benefit__section .c-title__heading {
  margin-top: 45px;
}

.p-benefit__pokemon01 {
  width: calc(401 * (100vw / 1440));
  max-width: 401px;
  position: absolute;
  top: calc(-31 * (100vw / 1440));
  left: calc(165 * (100vw / 1440));
  z-index: 3;
}

.p-benefit__pokemon02 {
  width: calc(325 * (100vw / 1440));
  max-width: 325px;
  position: absolute;
  bottom: calc(-34 * (100vw / 1440));
  right: calc(163 * (100vw / 1440));
  z-index: 3;
}

.p-benefit__section .c-btn__primary {
  min-width: 192px;
}

.p-benefit__blockText .sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .p-benefit__section {
    padding-bottom: calc(56 * (100vw / 375));
    padding-inline: 0;
  }

  .p-benefit__block {
    width: calc(100% - 30px);
    border-radius: calc(12 * (100vw / 375));
    padding-block: calc(15 * (100vw / 375));
  }

  .p-benefit__blockBody {
    width: calc(330 * (100vw / 375));
  }

  .p-benefit__blockText {
    padding-top: calc(12 * (100vw / 375));
    padding-bottom: calc(20 * (100vw / 375));
    font-size: calc(14 * (100vw / 375));
  }

  .p-benefit__blockText .sp {
    display: block;
  }

  .p-benefit__section .c-title__heading {
    margin-bottom: calc(20 * (100vw / 375));
  }

  .p-benefit__pokemon02 {
    width: calc(144 * (100vw / 375));
    right: calc(-30 * (100vw / 375));
    bottom: calc(-24 * (100vw / 375));
  }

  .p-benefit__pokemon01 {
    width: calc(180 * (100vw / 375));
    left: calc(-7 * (100vw / 375));
  }

  .p-benefit__gradiation {
    height: calc(340 * (100vw / 375));
    max-height: calc(340 * (100vw / 375));
    top: calc(80 * (100vw / 375));
  }

  .p-benefit__section::before {
    height: calc(29 * (100vw / 375));
    top: calc(51 * (100vw / 375));
  }

  .p-benefit__gradiation::after {
    height: calc(36 * (100vw / 375));
    bottom: 0;
  }
}

/* sns
----------------------------------------------- */
.p-sns__section {
  padding-top: calc(70 * (100vw / 1440));
  padding-bottom: calc(120 * (100vw / 1440));
  position: relative;
  background: var(--color-white);
}

.p-sns__section__inner {
  display: grid;
  justify-items: center;
  position: relative;
  background: var(--color-white);
  z-index: 2;
  max-width: 1400px;
  margin-inline: auto;
}

.p-sns__section__title {
  position: relative;
  font-size: calc(18 * (100vw / 1440));
  font-weight: 600;
  font-family: var(--font-heading);
  height: calc(200 * (100vw / 1440));
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-sns__section__title span {
  position: relative;
  z-index: 2;
}

.p-sns__section__title::before {
  color: #ffeb87;
  font-size: calc(128 * (100vw / 1440));
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
  content: "SNS";
  font-family: var(--font-latin);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.sns-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  justify-content: center;
  gap: 32px;
}

.sns-list__link {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  transition: ease 0.3s;
}

.sns-list__link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-sns__pokemon01 {
  width: calc(360 * (100vw / 1440));
  max-width: 360px;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 3;
  transform: translateY(-50%);
}

.p-sns__pokemon02 {
  width: calc(360 * (100vw / 1440));
  max-width: 360px;
  position: absolute;
  top: 50%;
  right: 0;
  z-index: 3;
  transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
  .p-sns__section {
    padding-top: calc(35 * (100vw / 375));
    padding-bottom: calc(86 * (100vw / 375));
    position: relative;
  }

  .p-sns__section__title::before {
    font-size: calc(80 * (100vw / 375));
  }

  .p-sns__section__title {
    font-size: calc(16 * (100vw / 375));
    height: calc(88 * (100vw / 375));
    min-height: 88px;
    letter-spacing: 0.15em;
  }

  .sns-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-top: 30px;
  }

  .sns-list__link {
    display: grid;
    place-items: center;
    width: 45px;
    height: 45px;
  }

  .p-sns__pokemon01 {
    width: calc(137 * (100vw / 375));
    max-width: calc(137 * (100vw / 375));
    top: 70%;
    left: calc(-28 * (100vw / 375));
  }

  .p-sns__pokemon02 {
    width: calc(139 * (100vw / 375));
    max-width: calc(139 * (100vw / 375));
    top: 70%;
    right: calc(-20 * (100vw / 375));
  }
}

/* ===================================================
   スキー場詳細
   =================================================== */

.p-resortHero__section {
  position: relative;
  overflow: hidden;
  margin-top: 30px;
}

.p-resortHero__imageBlock {
  display: flex;
  justify-content: flex-end;
  flex-direction: row-reverse;
  align-items: flex-start;
  position: relative;
}

.p-resortHero__imageBlock::after {
  content: "";
  background: url(../img/common/bg-vector01.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: calc(-63 * (100vw / 1440));
  left: 0;
  z-index: 2;
}

.p-resortHero__gradation {
  position: absolute;
  bottom: calc(20 * (100vw / 1440));
  background:
    url(../img/ski-resort/main-snow.svg) no-repeat 6% center / contain,
    linear-gradient(180deg, #def6ff 0, #fffde4 100%);
  width: 100%;
  height: calc(567 * (100vw / 1440));
  max-height: 567px;
  z-index: 1;
  transform: rotate(-6deg);
  left: calc(-65 * (100vw / 1440));
}

.p-resortHero__pictureSlide {
  border-radius: 32px 0 0 32px;
  width: calc(1185 * (100vw / 1440));
  max-height: 713px;
  margin-left: auto;
  overflow: hidden;
  position: relative;
  z-index: 3;
}

.p-resortHero__pictureSlide .slick-slide {
  padding: 0;
}

.p-resortHero__placeholder {
  width: 100%;
  height: 100%;
}

.p-resortHero__placeholder img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.p-resortHero__imageBlock::before {
  content: "";
  background: url(../img/ski-resort/main-line.svg) no-repeat center / cover;
  width: 100%;
  height: calc(260 * (100vw / 1440));
  position: absolute;
  bottom: calc(-46 * (100vw / 1440));
  left: 0;
  z-index: 4;
}

.p-resortHero__subjectList {
  margin-top: calc(60 * (100vw / 1440));
  position: absolute;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 16px;
  top: 0;
  left: 0;
}

.p-resortHero__subjectIcon {
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 6px 0;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.15em;
  padding: 20px;
  background: rgba(255, 255, 255, 0.8);
}

.p-resortHero__subjectIcon i {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-orange);
  width: 60px;
  height: 60px;
  border-radius: 50%;
}

.p-resortHero__subjectIcon i img {
  width: 45px;
}

.p-resortHero__textBlock {
  padding-top: calc(220 * (100vw / 1440));
  position: relative;
  top: calc(-220 * (100vw / 1440));
  z-index: 3;
}

.p-resortHero__title {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  padding-top: calc(21 * (100vw / 1440));
  margin-bottom: 54px;
  position: relative;
  z-index: 4;
}

.p-resortHero__title span {
  border-radius: 8px;
  padding: 4px 16px;
  text-align: center;
  font-family: var(--font-heading);
  font-size: 26px;
  line-height: 1.7;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: var(--color-white);
}

.p-resortHero__title .area-tag.-nagano {
  background-color: #f39a23;
}

.p-resortHero__title .area-tag.-gifu {
  background-color: #0088b9;
}

.p-resortHero__title .area-tag.-fukui {
  background-color: #9dbd21;
}

.p-resortHero__title .area-tag.-shiga {
  background-color: #8455a0;
}

.p-resortHero__title .area-tag.-gunma {
  background-color: #e84653;
}

.p-resortHero__title .area-tag.-nigata {
  background-color: #ec7aac;
}

.p-resortHero__title .area-tag.-miyagi {
  background-color: #219a3a;
}

.p-resortHero__title .area-title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(28px, 4.5vw, 52px);
  color: var(--color-navy);
  letter-spacing: 0.01em;
  text-shadow: 0px 3px 0px #ebac00;
  position: relative;
  z-index: 1;
  line-height: 1.4;
}

.p-resortHero__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(64 * (100vw / 1440));
}

.p-resortHero__gridText {
  width: calc(736 * (100vw / 1440));
}

.p-resortHero__copy {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.1em;
  font-size: 26px;
  margin-bottom: 32px;
}

.p-resortHero__read {
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-size: 16px;
}

.p-resortHero__gridMap {
  width: calc(400 * (100vw / 1440));
}

@media screen and (max-width: 1024px) {
  .site-main#ski-resort {
    padding-top: 65px;
  }

  .p-resortHero__section {
    margin-top: 0;
  }
}

@media screen and (max-width: 767px) {
  .p-resortHero__pictureSlide {
    border-radius: 0;
    aspect-ratio: 1;
    width: 100%;
    margin-left: auto;
  }
  .p-resortHero__placeholder {
    width: 100%;
    aspect-ratio: 1;
    width: 100%;
  }

  .p-resortHero__imageBlock::after {
    display: none;
  }

  .p-resortHero__subjectList {
    position: relative;
  }

  .p-resortHero__imageBlock::before {
    background: url(../img/ski-resort/main-line_sp.svg) no-repeat center / cover;
    aspect-ratio: 375 / 107;
    width: 100%;
    height: calc(107 * (100vw / 375));
    bottom: calc(-47 * (100vw / 375));
  }

  .p-resortHero__gradation {
    width: calc(1511 * (100vw / 375));
    height: calc(826 * (100vw / 375));
    max-height: calc(826 * (100vw / 375));
    left: 45%;
    transform: rotate(-6deg) translateX(-50%);
    bottom: calc(-150 * (100vw / 375));
  }

  .p-resortHero__title {
    padding-top: calc(30 * (100vw / 375));
    margin-bottom: calc(30 * (100vw / 375));
    padding-inline: 15px;
  }

  .p-resortHero__title span {
    font-size: calc(16 * (100vw / 375));
  }

  .p-resortHero__subjectList {
    padding-inline: 15px;
    justify-content: center;
    flex-direction: row;
  }

  .p-resortHero__subjectIcon {
    width: calc((100% / 3) - 8px);
    font-size: calc(12 * (100vw / 375));
    line-height: 1.4;
    justify-content: flex-start;
    padding: calc(10 * (100vw / 375));
  }

  .p-resortHero__grid {
    flex-direction: column;
    gap: calc(24 * (100vw / 375));
  }

  .p-resortHero__gridText {
    width: 100%;
  }

  .p-resortHero__gridMap {
    width: 100%;
  }

  .p-resortHero__copy {
    font-size: 20px;
    text-align: center;
    line-height: 1.7;
    letter-spacing: 0.1em;
    margin-bottom: 24px;
  }

  .p-resortHero__read {
    text-align: center;
    font-size: 14px;
  }

  .p-resortHero__textBlock {
    padding-top: calc(16 * (100vw / 375));
    top: 0;
  }
}

/* ===================================================
   スキー場詳細の確認
   =================================================== */

.p-resortLink__section {
  padding-top: 0;
  padding-bottom: 120px;
  margin-top: calc(-93 * (100vw / 1440));
  position: relative;
  z-index: 2;
}

.p-resortLink__section.bottom {
  padding-top: 40px;
  padding-bottom: calc(120 * (100vw / 1440));
}

.c-title__heading.-others {
  margin-bottom: 60px;
}

.p-resortLink__section .section-panel__inner {
  max-width: 960px;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: flex-start;
  gap: 60px;
  padding-top: 116px;
  padding-inline: 0;
}

.p-resortLink__title {
  text-align: center;
  background: var(--color-orange);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: clamp(20px, 3vw, 36px);
  display: flex;
  align-items: center;
  color: var(--color-white);
  padding: calc(16 * (100vw / 1440)) calc(32 * (100vw / 1440));
  line-height: 1.6;
  letter-spacing: 0.1em;
  width: 100%;
  border-radius: calc(16 * (100vw / 1440));
  position: relative;
}

.p-resortLink__title::before {
  content: "";
  background: url(../img/ski-resort/acc-pokemon.png) no-repeat center / cover;
  width: 142px;
  height: 116px;
  position: absolute;
  top: -116px;
  left: 50%;
  transform: translateX(-50%);
}

.p-resortLink__title .c-acc__toggleIcon {
  width: calc(40 * (100vw / 1440));
  height: calc(40 * (100vw / 1440));
  border-radius: 50%;
  position: relative;
  display: inline-block;
  background: var(--color-white);
  margin-left: auto;
}

.p-resortLink__title .c-acc__toggleIcon::before {
  content: "";
  width: calc(16 * (100vw / 1440));
  height: calc(2 * (100vw / 1440));
  background: var(--color-orange);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-resortLink__title .c-acc__toggleIcon::after {
  content: "";
  width: calc(2 * (100vw / 1440));
  height: calc(16 * (100vw / 1440));
  background: var(--color-orange);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-resortLink__title.is-open .c-acc__toggleIcon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-resortLink__list {
  display: flex;
  flex-wrap: wrap;
  gap: 48px 24px;
}

.p-resortLink__item {
  width: calc((100% / 3) - 12px);
  border-radius: 16px;
  padding: 24px 16px 16px;
  position: relative;
}

.p-resortLink__item.-miyagi {
  background: #d4f9da;
  color: #219a3a;
}

.p-resortLink__item.-nigata {
  background: #ffeaf4;
  color: #ec7aac;
}

.p-resortLink__item.-gunma {
  background: #ffd9de;
  color: #e84653;
}

.p-resortLink__item.-nagano {
  background: #ffecd6;
  color: #f39a23;
}

.p-resortLink__item.-gifu {
  background: #e0f8ff;
  color: #0088b9;
}

.p-resortLink__item.-fukui {
  background: #eaf6bb;
  color: #9dbd21;
}

.p-resortLink__item.-shiga {
  background: #f2e4fd;
  color: #8455a0;
}

.p-resortLink__subList {
  display: grid;
  gap: 14px;
}

.p-resortLink__subItem {
  background: var(--color-white);
  border-radius: 8px;
}

.p-resortLink__item.-gunma,
.p-resortLink__item.-nagano {
  width: 100%;
}

.p-resortLink__item h4 {
  font-size: 26px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.1em;
  position: absolute;
  top: -25px;
}

.p-resortLink__item.-gunma .p-resortLink__subList,
.p-resortLink__item.-nagano .p-resortLink__subList {
  grid-template-columns: repeat(3, 1fr);
}

.p-resortLink__subItem a {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 17px;
  padding: 8px 16px;
  font-size: 16px;
  color: var(--color-navy);
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.15em;
}

.p-resortLink__subItem .logo {
  width: 60px;
  aspect-ratio: 60 / 60;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  flex-shrink: 0;
  overflow: hidden;
  background: none;
}

.p-resortLink__subItem .logo img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
/*
.p-resortLink__item.-miyagi .logo {
  background: #219a3a;
}

.p-resortLink__item.-nigata .logo {
  background: #ec7aac;
}

.p-resortLink__item.-gunma .logo {
  background: #e84653;
}

.p-resortLink__item.-nagano .logo {
  background: #f39a23;
}

.p-resortLink__item.-gifu .logo {
  background: #0088b9;
}

.p-resortLink__item.-fukui .logo {
  background: #9dbd21;
}

.p-resortLink__item.-shiga .logo {
  background: #8455a0;
}
  */

@media screen and (max-width: 1200px) {
  .p-resortLink__section {
    padding-bottom: calc(64 * (100vw / 1440));
  }
  .p-resortLink__section .section-panel__inner {
    padding-top: calc(64 * (100vw / 1440));
  }
}

@media screen and (min-width: 768px) {
  .p-resortLink__subItem a {
    transition: ease 0.3s;
  }

  .p-resortLink__subItem a:hover {
    opacity: 1;
  }

  .p-resortLink__item.-miyagi .p-resortLink__subItem a:hover {
    color: #219a3a;
  }

  .p-resortLink__item.-nigata .p-resortLink__subItem a:hover {
    color: #ec7aac;
  }

  .p-resortLink__item.-gunma .p-resortLink__subItem a:hover {
    color: #e84653;
  }

  .p-resortLink__item.-nagano .p-resortLink__subItem a:hover {
    color: #f39a23;
  }

  .p-resortLink__item.-gifu .p-resortLink__subItem a:hover {
    color: #0088b9;
  }

  .p-resortLink__item.-fukui .p-resortLink__subItem a:hover {
    color: #9dbd21;
  }

  .p-resortLink__item.-shiga .p-resortLink__subItem a:hover {
    color: #8455a0;
  }
}

@media screen and (max-width: 1200px) {
  .p-resortLink__title::before {
    width: calc(142 * (100vw / 1440));
    height: calc(116 * (100vw / 1440));
    top: calc(-116 * (100vw / 1440));
  }
}

@media screen and (max-width: 767px) {
  .p-resortLink__section {
    padding-bottom: calc(64 * (100vw / 375));
  }
  .p-resortLink__title::before {
    width: calc(64 * (100vw / 375));
    height: calc(52 * (100vw / 375));
    position: absolute;
    top: calc(-52 * (100vw / 375));
  }

  .p-resortLink__title {
    font-size: 18px;
    padding: calc(8 * (100vw / 375)) calc(8 * (100vw / 375))
      calc(8 * (100vw / 375)) calc(32 * (100vw / 375));
    border-radius: calc(8 * (100vw / 375));
  }

  .p-resortLink__title .c-acc__toggleIcon {
    width: calc(24 * (100vw / 375));
    height: calc(24 * (100vw / 375));
  }

  .p-resortLink__title .c-acc__toggleIcon::before {
    width: calc(8 * (100vw / 375));
    height: calc(2 * (100vw / 375));
  }

  .p-resortLink__title .c-acc__toggleIcon::after {
    width: calc(2 * (100vw / 375));
    height: calc(8 * (100vw / 375));
  }

  .p-resortLink__item {
    width: calc((100% / 2) - calc(8 * (100vw / 375)));
    border-radius: calc(8 * (100vw / 375));
    padding: calc(24 * (100vw / 375)) calc(16 * (100vw / 375))
      calc(16 * (100vw / 375));
  }

  .p-resortLink__section .section-panel__inner {
    padding-top: calc(100 * (100vw / 375));
    padding-bottom: 0;
    gap: 0;
  }

  .p-resortLink__list {
    margin-top: calc(40 * (100vw / 375));
    gap: calc(32 * (100vw / 375)) calc(16 * (100vw / 375));
  }

  .p-resortLink__item h4 {
    left: 50%;
    transform: translateX(-50%);
    font-size: calc(20 * (100vw / 375));
    top: calc(-15 * (100vw / 375));
  }

  .p-resortLink__subList {
    gap: calc(10 * (100vw / 375));
  }

  .p-resortLink__item.-gunma .p-resortLink__subList,
  .p-resortLink__item.-nagano .p-resortLink__subList {
    grid-template-columns: repeat(2, 1fr);
  }

  .p-resortLink__subItem {
    border-radius: calc(4 * (100vw / 375));
  }

  .p-resortLink__subItem a {
    flex-direction: column;
    align-items: center;
    gap: calc(8 * (100vw / 375));
    padding: calc(8 * (100vw / 375)) calc(4 * (100vw / 375));
    font-size: calc(14 * (100vw / 375));
    text-align: center;
  }

  .p-resortLink__section.bottom {
    padding-bottom: calc(86 * (100vw / 375));
  }

  .p-resortLink__section.bottom .p-resortLink__list {
    margin-top: 0;
  }
}

/* ===================================================
   魅力
   =================================================== */

.p-resortFeature__area {
  position: relative;
}

.p-resortVibe__section.section-panel {
  padding-top: 0;
}

.p-resortVibe__section .section-panel__inner {
  padding-inline: 40px;
}

.p-resortVibe__gradation {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: calc(100% - 68px);
  background:
    url(../img/ski-resort/vibe-snow01.svg) repeat-y -5% center / 30%,
    url(../img/ski-resort/vibe-snow02.svg) repeat-y 105% center / 30%,
    linear-gradient(180deg, #def6ff 0, #fffde4 100%);
  z-index: 1;
}

.p-resortVibe__gradation::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
}

.p-resortVibe__gradation::after {
  content: "";
  background: url(../img/common/bg-vector01.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: -1px;
  left: 0;
}

.p-resortVibe__copy {
  font-size: 26px;
  font-weight: 600;
  font-family: var(--font-heading);
  line-height: 1.7;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 48px;
}

.p-resortVibe__point {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.p-resortVibe__pointItem {
  border-radius: 8px;
  background: var(--color-white);
  padding: 8px 8px 16px;
  position: relative;
  counter-increment: point-number;
}

.p-resortVibe__pointItem::before {
  content: counter(point-number, decimal-leading-zero);
  position: absolute;
  top: 8px;
  left: 19px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  color: var(--color-orange);
  font-family: var(--font-latin);
  z-index: 2;
}

.p-resortVibe__pointItem::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 62px;
  height: 25px;
  background: url(../img/ski-resort/number-bg.svg) no-repeat center / cover;
  z-index: 1;
}

.p-resortVibe__pointPiture {
  border-radius: 2px;
  overflow: hidden;
  aspect-ratio: 362 / 204;
  margin-bottom: 16px;
  display: block;
}

.p-resortVibe__pointPiture img {
  width: 100%;
  object-fit: cover;
}

.p-resortVibe__pointTitle {
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.15em;
  font-weight: 600;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  margin-bottom: 8px;
  font-family: var(--font-heading);
  padding-inline: 8px;
}

.p-resortVibe__pointTitle::before {
  content: "";
  background: url(../img/ski-resort/ball-icon_orange.svg) no-repeat center/cover;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: calc(1.3 * var(--half-leading));
}

.p-resortVibe__pointText {
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-family: var(--font-heading);
  padding-inline: 8px;
}

@media screen and (max-width: 1200px) {
  .p-resortVibe__section .section-panel__inner {
    padding-inline: 0;
  }
}

@media screen and (max-width: 767px) {
  .p-resortVibe__section .section-panel__inner {
    padding-inline: 0;
  }

  .p-resortVibe__gradation::before {
    background-size: 200%;
  }

  .c-title__heading.-vibe::before {
    width: calc(63 * (100vw / 375));
    position: absolute;
    top: 0;
    left: calc(8 * (100vw / 375));
  }

  .c-title__heading.-vibe::after {
    width: calc(62 * (100vw / 375));
    position: absolute;
    top: 0;
    right: calc(8 * (100vw / 375));
  }

  .p-resortVibe__copy {
    font-size: calc(20 * (100vw / 375));
    margin-bottom: calc(24 * (100vw / 375));
  }

  .p-resortVibe__point {
    grid-template-columns: repeat(1, 1fr);
    gap: calc(32 * (100vw / 375));
  }

  .p-resortVibe__pointTitle {
    font-size: calc(16 * (100vw / 375));
  }

  .p-resortVibe__pointText {
    font-size: calc(14 * (100vw / 375));
  }

  .p-resortVibe__gradation {
    height: calc(100% - calc(30 * (100vw / 375)));
  }
}

/* ===================================================
   キッズサービス
   =================================================== */

.p-resortService__section {
  max-width: 1280px;
  padding-inline: 40px;
  padding-bottom: calc(200 * (100vw / 1440));
  margin-inline: auto;
  position: relative;
  z-index: 2;
}

.p-resortService__section .section-panel__inner {
  background: var(--color-white);
  border-radius: 48px;
  position: relative;
  padding: 0 64px 80px;
}

.p-resortService__pokemon01 {
  width: min(109px, 100%);
  position: absolute;
  top: -54px;
  right: 64px;
}

.c-title__heading.-service {
  top: -90px;
  margin-bottom: 0;
}

.p-resortService__caution {
  border: 1px solid #e84653;
  border-radius: 8px;
  padding: 16px;
  color: #e84653;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.15em;
  margin-top: -40px;
  margin-bottom: 80px;
}

.p-resortService__caution p {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.p-resortService__caution p::before {
  content: "";
  background: url(../img/ski-resort/warming-icon.svg) no-repeat center/cover;
  width: 24px;
  height: 24px;
  display: inline-block;
}

.p-resortService__menu {
  display: flex;
  flex-direction: column;
  gap: 80px 0;
}

.p-resortService__menuGrid {
  display: flex;
  align-items: center;
  gap: calc(70 * (100vw / 1440));
}

.p-resortService__menuGrid:nth-of-type(even) {
  flex-direction: row-reverse;
}

.p-resortService__menuImage {
  max-width: 320px;
  width: calc(320 * (100vw / 1440));
  overflow: hidden;
  aspect-ratio: 320 / 247;
  border-radius: 8px;
}

.p-resortService__menuImage img {
  width: 100%;
  object-fit: cover;
}

.p-resortService__menuText {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.p-resortService__menuText h4 {
  font-size: 26px;
  font-weight: 600;
  font-family: var(--font-heading);
  line-height: 1.7;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

.p-resortService__menuText h4::before {
  content: "";
  background: url(../img/ski-resort/ball-icon_orange.svg) no-repeat center /
    cover;
  width: 24px;
  height: 24px;
}

.p-resortService__menuText p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 1200px) {
  .p-resortService__section .section-panel__inner {
    border-radius: calc(48 * (100vw / 1440));
    padding-inline: calc(64 * (100vw / 1440));
    padding-bottom: calc(80 * (100vw / 1440));
  }
  .p-resortService__pokemon01 {
    width: calc(109 * (100vw / 1440));
    top: calc(-54 * (100vw / 1440));
    right: calc(64 * (100vw / 1440));
  }

  .c-title__heading.-service {
    top: calc(-90 * (100vw / 1440));
  }
}

@media screen and (max-width: 767px) {
  .p-resortService__section {
    padding-inline: 15px;
    padding-top: calc(120 * (100vw / 375));
    padding-bottom: calc(110 * (100vw / 375));
  }
  .c-title__heading.-service {
    top: calc(-90 * (100vw / 375));
  }

  .p-resortService__pokemon01 {
    left: 50%;
    top: calc(-145 * (100vw / 375));
    right: auto;
    transform: translateX(-50%);
    width: calc(49 * (100vw / 375));
  }

  .p-resortService__menu {
    gap: calc(56 * (100vw / 375));
  }

  .p-resortService__menuGrid,
  .p-resortService__menuGrid:nth-of-type(even) {
    flex-direction: column;
    gap: calc(16 * (100vw / 375));
  }

  .p-resortService__caution {
    border-radius: calc(8 * (100vw / 375));
    padding: calc(8 * (100vw / 375));
    font-size: calc(12 * (100vw / 375));
    margin-top: calc(-60 * (100vw / 375));
    margin-bottom: calc(32 * (100vw / 375));
  }

  .p-resortService__caution p {
    flex-direction: column;
    text-align: center;
    gap: calc(4 * (100vw / 375));
  }

  .p-resortService__menuImage {
    width: 100%;
    max-width: 100%;
  }

  .p-resortService__menuText {
    gap: calc(16 * (100vw / 375));
  }

  .p-resortService__menuText h4 {
    font-size: calc(20 * (100vw / 375));
  }

  .p-resortService__menuText h4::before {
    width: calc(20 * (100vw / 375));
    height: calc(20 * (100vw / 375));
  }

  .p-resortService__menuText p {
    font-size: calc(14 * (100vw / 375));
  }
}

/* ===================================================
   スキー場情報
   =================================================== */
.p-resortInfo__section {
  position: relative;
  padding-bottom: 240px;
}

.p-resortInfo__section .section-panel__inner {
  padding-inline: 0;
}

.p-resortInfo__pokemon01 {
  width: min(139px, 100%);
  position: absolute;
  top: -58px;
  left: 164px;
}

.p-resortInfo__pokemon02 {
  width: min(274px, 100%);
  position: absolute;
  top: 22px;
  right: 5px;
}

.p-resortInfo__menu {
  max-width: 960px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  padding-top: 40px;
}

.p-resortInfo__menuItem {
  border-top: #586778 solid 1px;
  padding-block: 32px;
}

.p-resortInfo__menuItem:last-child {
  border-bottom: #586778 solid 1px;
}

.p-resortInfo__menuTitle {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  font-weight: 600;
  font-size: 26px;
  line-height: 1.7;
  letter-spacing: 0.1em;
  font-family: var(--font-heading);
  color: var(--color-orange);
  padding-inline: 32px;
}

.p-resortInfo__menuTitle .c-acc__toggleIcon {
  margin-left: auto;
  width: calc(40 * (100vw / 1440));
  height: calc(40 * (100vw / 1440));
  border-radius: 50%;
  position: relative;
  display: inline-block;
  background: var(--color-orange);
}

.p-resortInfo__menuTitle .c-acc__toggleIcon::before {
  content: "";
  width: calc(16 * (100vw / 1440));
  height: calc(2 * (100vw / 1440));
  background: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-resortInfo__menuTitle .c-acc__toggleIcon::after {
  content: "";
  width: calc(2 * (100vw / 1440));
  height: calc(16 * (100vw / 1440));
  background: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-resortInfo__menuTitle.is-open .c-acc__toggleIcon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-resortInfo__menuItem .c-acc__container {
  padding-inline: 32px;
}

.p-resortInfo__menuItem .c-acc__container.is-open {
  margin-top: 32px;
}

.p-resortService__menuDl {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-resortService__menuDlItem dt {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  font-size: 26px;
  line-height: 1.7;
  letter-spacing: 0.1em;
  font-weight: 600;
  margin-bottom: 16px;
  padding-left: 32px;
  position: relative;
}

.p-resortService__menuDlItem dt::before {
  content: "";
  background: url(../img/ski-resort/ball-icon_lightblue.svg);
  width: 24px;
  height: 24px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.p-resortInfo__menuItem h4 {
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-weight: 500;
}

.p-resortInfo__menuItem p {
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-weight: 500;
}

.p-resortInfo__menuItem p + a {
  margin-top: 24px;
}

.p-resortService__menuDlItem + .p-resortService__menuDlItem {
  padding-top: 32px;
  border-top: 1px solid rgba(88, 103, 120, 0.5);
}

@media screen and (max-width: 1200px) {
  .p-resortInfo__pokemon01 {
    width: calc(139 * (100vw / 1440));
    top: calc(-22 * (100vw / 1440));
    left: calc(149 * (100vw / 1440));
  }

  .p-resortInfo__pokemon02 {
    width: calc(274 * (100vw / 1440));
    top: calc(50 * (100vw / 1440));
    right: calc(-40 * (100vw / 1440));
  }
}

@media screen and (max-width: 767px) {
  .p-resortInfo__section.section-panel {
    padding-top: calc(23 * (100vw / 375));
    padding-bottom: calc(126 * (100vw / 375));
  }

  .p-resortInfo__pokemon01 {
    width: calc(62 * (100vw / 375));
    top: calc(-22 * (100vw / 375));
    left: calc(16 * (100vw / 375));
  }

  .p-resortInfo__pokemon02 {
    width: calc(96 * (100vw / 375));
    top: calc(50 * (100vw / 375));
    right: calc(-40 * (100vw / 375));
  }

  .p-resortInfo__menu {
    padding-top: calc(16 * (100vw / 375));
  }

  .p-resortInfo__menuItem {
    padding-block: calc(16 * (100vw / 375));
  }

  .p-resortInfo__menuTitle {
    font-size: calc(20 * (100vw / 375));
    padding-inline: calc(16 * (100vw / 375));
  }

  .p-resortInfo__menuTitle .c-acc__toggleIcon {
    width: calc(24 * (100vw / 375));
    height: calc(24 * (100vw / 375));
  }

  .p-resortInfo__menuTitle .c-acc__toggleIcon::before {
    width: calc(8 * (100vw / 375));
    height: calc(1.5 * (100vw / 375));
  }

  .p-resortInfo__menuTitle .c-acc__toggleIcon::after {
    width: calc(1.5 * (100vw / 375));
    height: calc(8 * (100vw / 375));
  }

  .p-resortService__menuDlItem dt {
    font-size: calc(20 * (100vw / 375));
    line-height: 1.4;
    padding-left: calc(28 * (100vw / 375));
  }

  .p-resortService__menuDlItem dt::before {
    width: calc(20 * (100vw / 375));
    height: calc(20 * (100vw / 375));
    background: url(../img/ski-resort/ball-icon_lightblue.svg) no-repeat
      center / cover;
  }

  .p-resortInfo__menuItem p {
    font-size: calc(14 * (100vw / 375));
  }

  .p-resortInfo__menuItem .c-acc__container.is-open {
    margin-top: calc(16 * (100vw / 375));
  }

  .p-resortInfo__menuItem .c-acc__container {
    padding-inline: calc(16 * (100vw / 375));
    gap: calc(16 * (100vw / 375));
  }

  .p-resortService__menuDlItem + .p-resortService__menuDlItem {
    padding-top: calc(16 * (100vw / 375));
  }
}

/* ===================================================
   アクセス
   =================================================== */

.p-resortAccess__section {
  position: relative;
  padding-top: 0;
}

.p-resortAccess__section::before {
  content: "";
  background: url(../img/ski-resort/info-snow.svg) no-repeat center / cover;
  position: absolute;
  top: -210px;
  left: 0;
  z-index: 2;
  width: calc(371 * (100vw / 1440));
  height: calc(371 * (100vw / 1440));
  max-width: 371px;
}

.p-resortAccess__gradation {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: calc(100% - 63px);
  background:
    url(../img/ski-resort/access-snow01.svg) no-repeat -5% 80% / 20%,
    url(../img/ski-resort/access-snow02.svg) no-repeat 100% bottom / 20%,
    linear-gradient(180deg, #def6ff 0, #fffde4 100%);
  z-index: 1;
}

.p-resortAccess__gradation::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.p-resortAccess__gradation::after {
  content: "";
  background: url(../img/common/bg-vector01.svg) no-repeat center / 100% 100%;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: -1px;
  left: 0;
}

.p-resortAccess__section .section-panel__inner {
  position: relative;
  z-index: 2;
  padding-bottom: 200px;
  padding-inline: 0;
}

.p-resortAccess__pokemon01 {
  width: min(205px, 100%);
  position: absolute;
  top: calc(-100 * (100vw / 1440));
  right: 0;
}

.p-resortAccess__pokemon02 {
  width: min(63px, 100%);
  position: absolute;
  bottom: calc(-30 * (100vw / 1440));
  left: 87px;
  z-index: 2;
}

.p-resortAccess__grid {
  display: flex;
  align-items: center;
  gap: calc(96 * (100vw / 1440));
  padding-top: 56px;
}

.p-resortAccess__left {
  width: min(600px, 100%);
  aspect-ratio: 600 / 498;
}

.p-resortAccess__left iframe {
  width: 100%;
  height: 100%;
}

.p-resortAccess__right {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-resortAccess__dl {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-resortAccess__dl dt {
  background: var(--color-orange);
  color: var(--color-white);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.15em;
  border-radius: 4px;
  padding: 2px 10px;
  display: inline-block;
  margin-bottom: 8px;
}

.p-resortAccess__dl dd {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 1200px) {
  .p-resortAccess__section .section-panel__inner {
    padding-bottom: calc(200 * (100vw / 1440));
  }
  .p-resortAccess__pokemon01 {
    width: calc(205 * (100vw / 1440));
  }

  .p-resortAccess__pokemon02 {
    width: calc(63 * (100vw / 1440));
    bottom: calc(-120 * (100vw / 1440));
    left: calc(87 * (100vw / 1440));
  }
}

@media screen and (max-width: 767px) {
  .p-resortAccess__section .section-panel__inner {
    padding-top: calc(80 * (100vw / 375));
    padding-bottom: calc(20 * (100vw / 375));
    padding-inline: 0;
  }

  .p-resortAccess__gradation {
    height: 100%;
  }

  .p-resortAccess__gradation::before {
    height: calc(40 * (100vw / 375));
    background: url(../img/common/bg-vector02.svg) no-repeat top center / 200%;
  }

  .p-resortAccess__pokemon01 {
    width: calc(97 * (100vw / 375));
    position: absolute;
    top: calc(-95 * (100vw / 375));
    left: 50%;
    right: auto;
    transform: translateX(-50%);
  }

  .p-resortAccess__grid {
    padding-top: 0;
    flex-direction: column;
    gap: calc(32 * (100vw / 375));
  }

  .p-resortAccess__dl dt {
    font-size: calc(16 * (100vw / 375));
    padding: calc(2 * (100vw / 375)) calc(16 * (100vw / 375));
  }

  .p-resortAccess__dl dd {
    font-size: calc(14 * (100vw / 375));
  }

  .p-resortAccess__pokemon02 {
    width: calc(28 * (100vw / 375));
    bottom: calc(-70 * (100vw / 375));
    left: calc(15 * (100vw / 375));
  }
}

/* ===================================================
   NEWS 一覧
=================================================== */

.p-news__inner {
  display: flex;
  gap: 40px;
}

.p-news__content {
  width: max(80%, 886px);
}

.p-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px clamp(20px, 3vw, 40px);
}

.p-news__item {
  position: relative;
  box-shadow: 0 0 8px rgba(54, 145, 180, 0.08);
  border-radius: 8px;
  background: var(--color-white);
  cursor: pointer;
}

.p-news__image {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border-radius: 8px 8px 0 0;
}

.p-news__textarea {
  background: var(--color-white);
  border-radius: 0 0 8px 8px;
  padding: 16px;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.p-news__date {
  font-size: 12px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-family: var(--font-latin);
}

.p-news__text {
  font-size: 1em;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-family: var(--font-heading);
}

.p-news__pickup {
  position: relative;
  width: max(20%, 250px);
  height: fit-content;
  background: var(--color-white);
  border-radius: 16px;
  padding: 16px;
}

/* ピックアップ 見出し調整 */
.p-news__pickup .c-page__heading-ja-wrap {
  position: absolute;
  top: calc((-40 * (100vw / 1440)) / 2);
  left: 50%;
  transform: translateX(-50%);
}

.p-news__pickup .c-page__heading-ja {
  font-size: clamp(18px, 2vw, 24px);
}

.p-news__pickup .c-page__heading-underline {
  left: -10px;
  right: -10px;
  height: 20px;
}

.p-news__pickupList {
  display: flex;
  flex-direction: column;
  gap: 16px;

  margin-top: calc(16px + clamp(8px, 1vw, 12px));
}

.p-news__pickupItem {
  border-radius: 8px;
  cursor: pointer;
}

.p-news__pickupItem .p-news__image {
  width: 100%;
  border-radius: 8px;
}

.p-news__backBtn {
  margin-top: 60px;
}

@media screen and (min-width: 768px) {
  .p-news__item,
  .p-news__pickupItem {
    position: relative;
    transition: ease 0.4s;
  }

  .p-news__item:hover,
  .p-news__pickupItem:hover {
    opacity: 1;
    box-shadow: 0 0 8px rgba(250, 115, 23, 0.9);
  }

  .p-news__item::before,
  .p-news__pickupItem::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: 5px var(--color-orange) solid;
    opacity: 1;
    border-radius: 8px;
    opacity: 0;
    transition: ease 0.4s;
    pointer-events: none;
  }

  .p-news__item:hover::before,
  .p-news__pickupItem:hover::before {
    opacity: 1;
  }

  .p-news__link:hover,
  .p-news__pickupItem:hover > a {
    opacity: 1;
  }
}

@media (max-width: 767px) {
  .p-news .section-panel__inner {
    padding-inline: 0;
  }

  .p-news__inner {
    width: 100%;
    flex-direction: column;
  }

  .p-news__content {
    width: 100%;
  }

  .p-news__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .p-news__item {
    box-shadow: 0 0 4px rgba(54, 145, 180, 0.08);
    border-radius: 4px;
  }

  .p-news__image {
    border-radius: 4px 4px 0 0;
  }

  .p-news__textarea {
    border-radius: 0 0 4px 4px;
    padding: 8px;
  }

  .p-news__text {
    font-size: 14px;
  }

  .p-news__pickup {
    width: 100%;
    margin-top: 40px;
  }

  .p-news__pickup .c-page__heading-ja-wrap {
    top: calc((-25 * (100vw / 375)) / 2);
  }

  .p-news__pickupList {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;

    margin-top: calc(16px + clamp(8px, 1vw, 12px));
  }

  .p-news__pickupItem .p-news__image {
    border-radius: 4px;
  }
}

/* ===================================================
   NEWS 記事
=================================================== */

/* article
------------------------------------- */
.p-article {
  max-width: 980px;
  margin: 0 auto;
}

.p-article__thum {
  display: block;
  width: auto;
  max-width: 100%;
  margin: 0 auto 40px;
}

.p-article__date {
  font-size: 14px;
  font-weight: 600;
}

.p-article__title {
  display: inline-block;
  margin-top: 8px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}

.p-article__title {
  background: linear-gradient(transparent 60%, var(--color-yellow) 0%);
  display: inline;
  padding: 0 1px 0px;
}

.p-article__body {
  margin-top: 40px;
  font-weight: 500;
}

.p-movie__wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin-top: 40px;
}

.p-movie__wrap > iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.p-article__body > h2 {
  position: relative;
  padding-left: 1.5em;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.7;
  margin-top: 40px;
  margin-bottom: 20px;
}

.p-article__body > h2::before {
  position: absolute;
  content: "";
  width: 1em;
  height: 1em;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: url(../img/news/icon-ball.svg) center / contain no-repeat;
}

.p-article__body > p {
  font-size: 16px;
  line-height: 1.5;
}

.p-article__body > p strong {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 18px;
}

.p-article__body a {
  color: var(--color-orange);
  font-weight: 600;
  transition: 0.3s;
}

.p-article__body > img {
  margin-block: 20px;
}

.p-article__body > p + p {
  margin-top: 20px;
}

.p-article__body ul,
.p-article__body ol {
  padding-left: 1em;
  display: flex;
  flex-direction: column;
  gap: 10px 0;
}

.p-article__body ul {
  list-style-type: disc;
}

.p-article__body ol {
  list-style-type: decimal;
}

.p-article__body ul + ul,
.p-article__body ol + ol,
.p-article__body ul + ol,
.p-article__body ol + ul {
  margin-top: 40px;
}

@media screen and (min-width: 768px) {
  .p-article__body a:hover {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .p-news__article {
    padding-top: 80px;
  }

  .p-article__thum {
    margin: 0 auto 32px;
  }

  .p-article__date {
    font-size: 14px;
  }

  .p-article__title {
    margin-top: 4px;
    font-size: 18px;
  }

  .p-article__body {
    margin-top: 32px;
  }

  .p-article__body > p {
    font-size: 14px;
  }

  .p-article__body > p strong {
    font-size: 16px;
  }
}

/* ===================================================
   faq よくある質問
=================================================== */

.p-faq__searchBox {
  display: flex;
  justify-content: center;
  width: fit-content;
  padding: clamp(24px, 2.6vw, 32px);
  background-color: var(--color-white);
  border-radius: 24px;
  margin: 0 auto;
}

.p-faq__formItem:first-child {
  width: 45%;
  padding-right: 32px;
  border-right: 1px #ccc solid;
}

.p-faq__formItem:last-child {
  width: 55%;
  padding-left: 32px;
}

.p-faq__formTitle {
  font-weight: 600;
  font-size: 18px;
  margin-bottom: 20px;
}

.p-faq_error {
  text-align: center;
  font-size: 1.2em;
}

@media screen and (max-width: 767px) {
  .p-faq__searchBox {
    flex-direction: column;
    width: 100%;
    margin: unset;
  }

  .p-faq__formItem:first-child {
    width: 100%;
    padding-right: 0px;
    padding-bottom: 32px;
    border-right: none;
    border-bottom: 1px #ccc solid;
  }

  .p-faq__formItem:last-child {
    width: 100%;
    padding-left: 0px;
    padding-top: 32px;
  }
}
/*  form
------------------------------------- */

.p-searchForm {
  max-width: calc(380px + 32px);
  margin: 0 auto;
}

.p-catForm {
  max-width: calc(520px + 32px);
  margin: 0 auto;
}

.p-searchForm__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 16px;
}

.p-searchForm__input {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #ccc;
  border-radius: 50px;
}

.p-searchForm__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 180px;
  min-height: 48px;
  padding: 0 24px;
  border-radius: 50px;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: 1em;
  font-weight: 700;
  font-family: var(--font-heading);
  letter-spacing: 15%;
  line-height: 180%;
  position: relative;
  cursor: pointer;
}

.p-searchForm__btn .search {
  width: 20px;
  height: 20px;
  margin-left: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-searchForm__btn .search i {
  width: 20px;
  height: 20px;
  position: relative;
  display: inline-block;
  background: url(../img/faq/search-icon.svg) no-repeat center/cover;
}

.p-catForm__list {
  display: flex;
  flex-wrap: wrap;
  gap: min(1.3vw, 16px);
}

.p-catForm__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 130px;
  min-height: 48px;
  padding: 0 min(1.3vw, 16px);
  border-radius: 50px;
  background: #fffcec;
  font-size: 14px;
  font-weight: 700;
  font-family: var(--font-heading);
  letter-spacing: 15%;
  line-height: 180%;
  position: relative;
  cursor: pointer;
}

.p-catForm__btn.is-active {
  background: var(--color-orange);
  color: var(--color-white);
  pointer-events: none;
}

@media screen and (min-width: 768px) {
  .p-searchForm__btn,
  .p-catForm__btn {
    transition: ease 0.4s;
  }

  .p-searchForm__btn:hover,
  .p-catForm__btn:hover {
    box-shadow: 0 0 8px rgba(250, 115, 23, 0.9);
    opacity: 1;
  }
}

@media screen and (max-width: 767px) {
  .p-searchForm,
  .p-catForm {
    max-width: 100%;
  }

  .p-searchForm__btn {
    font-size: 14px;
    min-width: auto;
    padding-inline: 40px 30px;
  }
  .p-catForm__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .p-catForm__btn {
    width: auto;
    min-width: auto;
  }
}

/*  Q&A リスト
------------------------------------- */

.p-faq__list {
  max-width: 960px;
  margin-inline: auto;

  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-faq__item {
  padding: 24px;
  background: var(--color-white);
  border-radius: 16px;
}

.p-faq__title {
  position: relative;
  display: flex;
  gap: 0.5em;
  font-weight: 600;
  align-items: center;

  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0.1em;
  width: 100%;
  padding-left: 42px;
  transition: ease 0.3s;
}

.p-faq__title::before {
  content: "Q";
  font-family: var(--font-latin);
  color: var(--color-orange);
  font-size: 36px;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.p-faq__title .c-acc__toggleIcon {
  width: clamp(24px, calc(40 * 100vw / 1440), 40px);
  height: clamp(24px, calc(40 * 100vw / 1440), 40px);
  border-radius: 50%;
  position: relative;
  display: inline-block;
  background: var(--color-orange);
  margin-left: auto;
  flex-shrink: 0;
}

.p-faq__title .c-acc__toggleIcon::before {
  content: "";
  width: calc(16 * (100vw / 1440));
  height: calc(2 * (100vw / 1440));
  min-width: 16px;
  min-height: 2px;
  background: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-faq__title .c-acc__toggleIcon::after {
  content: "";
  width: calc(2 * (100vw / 1440));
  height: calc(16 * (100vw / 1440));
  min-width: 2px;
  min-height: 16px;
  background: var(--color-white);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: ease 0.3s;
  border-radius: calc(2 * (100vw / 1440));
}

.p-faq__title.is-open {
  border-radius: calc(16 * (100vw / 1440)) calc(16 * (100vw / 1440)) 0 0;
  margin-bottom: 20px;
}

.p-faq__title.is-open .c-acc__toggleIcon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.p-faq__answer {
  position: relative;
  line-height: 1.8;
  letter-spacing: 0.1em;

  width: 100%;
  padding-left: 42px;

  overflow-wrap: anywhere;
}

.p-faq__answer:before {
  content: "A";
  font-weight: 600;
  font-family: var(--font-latin);
  color: var(--color-orange-dark);
  font-size: 36px;
  line-height: 1;
  position: absolute;
  left: 0;
  top: 0;
}

.p-faq__answer > a {
  overflow-wrap: anywhere;
  color: var(--color-orange);
  text-decoration: underline;
  transition: 0.3s;
}

@media screen and (max-width: 767px) {
  .p-faq .section-panel__inner {
    padding-inline: 0;
  }

  .p-faq__content .c-page__heading {
    margin-top: 60px;
  }

  .p-faq__item {
    padding: calc(16 * (100vw / 375));
    border-radius: calc(8 * (100vw / 375));
  }

  .p-faq__title {
    font-size: 16px;
  }

  .p-faq__title::before,
  .p-faq__answer:before {
    top: 0;
    transform: unset;
    font-size: 32px;
  }
}

/* ===================================================
   about NSDキッズプログラムとは
=================================================== */
.p-about {
  position: relative;
  background: linear-gradient(to bottom, #f3ce27, #ffb40f);
  padding: 80px 0 0 0;

  overflow: hidden;
}

.site-main:has(.p-about) {
  padding-top: 0;
}

.p-about::after {
  position: absolute;
  width: calc(600 * (100vw / 1440));
  max-width: 600px;
  aspect-ratio: 600 /1100;
  background: url(../img/about/snow02.svg) center / contain no-repeat;
  opacity: 1;
  content: "";
  right: calc(-120 * (100vw / 1440));
  top: 80px;
  z-index: 0;
}

.p-about::before {
  position: absolute;
  width: calc(600 * (100vw / 1440));
  max-width: 600px;
  aspect-ratio: 600 / 1100;
  background: url(../img/about/snow01.svg) center / contain no-repeat;
  opacity: 1;
  content: "";
  left: calc(-120 * (100vw / 1440));
  top: 80px;
  z-index: 0;
}

.p-about__waveBottom {
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../img/common/bg-vector01.svg) no-repeat center top / cover;
  z-index: 2;
}

.p-about__textarea {
  position: relative;
  max-width: 750px;
  margin-inline: auto;
}

.p-about__title {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(28px, 4.5vw, 52px);
  color: var(--color-white);
  letter-spacing: 0.01em;
  text-shadow: 0px 3px 0px #ebac00;
  position: relative;
  z-index: 1;
  line-height: 1.4;
  text-align: center;
  margin-top: 40px;
}

.p-about__copy {
  display: block;
  width: fit-content;
  background-color: var(--color-orange);
  color: var(--color-white);

  padding: calc(4 * (100vw / 1440)) calc(32 * (100vw / 1440));
  font-size: clamp(20px, 1.8vw, 26px);
  font-weight: 700;
  letter-spacing: 0.01em;
  text-align: center;

  margin-inline: auto;
  margin-top: 40px;
  margin-bottom: 16px;
}

.p-about__copy span {
  font-size: 1.5em;
  text-shadow: 0px 3px 0px #ebac00;
}

.p-about__text {
  font-size: clamp(16px, 1.38vw, 20px);
  line-height: 2;
  color: var(--color-white);
  font-weight: 700;
  text-shadow: 0px 3px 0px #ebac00;
  text-align: center;
}

.p-about__movieBg {
  position: relative;
  z-index: 1;
  padding-inline: 40px;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 70%,
    var(--color-white) 70%,
    var(--color-white) 100%
  );
}

.p-about__movieBg::before {
  content: "";
  background: url(../img/common/bg-vector01.svg) no-repeat center / cover;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: calc(30% - 1px);
  left: 0;
  z-index: 0;
}

.p-about__movieBlock {
  position: relative;
  width: min(808px, 100%);
  margin-inline: auto;
}

.p-about__movieIframe {
  overflow: hidden;

  aspect-ratio: 16 / 9;
  margin-top: 80px;
}

.p-about__movieIframe iframe {
  width: 100%;
  height: 100%;
}

.p-about__conversion {
  background-color: var(--color-white);
  padding-inline: 120px;
  margin: 0 auto;
  padding-block: 80px;

  display: flex;
  justify-content: center;
}

.p-about__conversion > a {
  max-width: 904px;
  margin: 0 auto;
  z-index: 1;
}

.p-about__pokemon01 {
  width: clamp(80px, 22.5vw, 270px);
  position: absolute;
  top: clamp(40px, 14.5vw, 210px);
  left: min(20px, 8.5%);
}

.p-about__pokemon02 {
  width: clamp(80px, 16.8vw, 202px);
  position: absolute;
  bottom: clamp(40px, 7.9vw, 115px);
  right: min(20px, 11.4%);
}

.p-about__pokemon03 {
  width: clamp(80px, 20.5vw, 290px);
  position: absolute;
  bottom: clamp(-100px, 6.9vw, -60px);
  right: calc(100% + 2%);
}

@media screen and (max-width: 1201px) {
  .p-about__pokemon03 {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .p-about {
    padding: 65px 0 0 0;
  }

  .p-about .section-panel__inner {
    padding-inline: 0;
  }

  .p-about::after {
    width: calc(194 * (100vw / 375));
    max-width: 194px;
    aspect-ratio: 194 /1083;
    background: url(../img/about/snow02-sp.svg) center / contain no-repeat;
    top: 65px;
    right: -60px;
  }

  .p-about::before {
    width: calc(194 * (100vw / 375));
    max-width: 194px;
    aspect-ratio: 194 /1083;
    background: url(../img/about/snow01-sp.svg) center / contain no-repeat;
    top: 65px;
    left: -60px;
  }

  .p-about__textarea {
    padding-top: min(calc(180 * (100vw / 375)), 180px);
  }

  .p-about__title {
    font-size: 20px;
    margin-top: 0;
  }

  .p-about__copy {
    font-size: 16px;
    margin-top: 24px;
  }

  .p-about__text {
    font-size: 14px;
  }

  .p-about__movieIframe {
    margin-top: 40px;
  }

  .p-about__conversion {
    padding: 40px 6px calc(180 * (100vw / 1440));
  }

  .p-about__conversion > a {
    max-width: 400px;
    margin: 0 auto;
  }

  .p-about__pokemon01 {
    width: calc(184 * (100vw / 375));
    max-width: 184px;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
}

/*  メリット
------------------------------------- */

.p-merit {
  padding-top: calc(40 * (100vw / 1440));
  padding-bottom: calc(190 * (100vw / 1440));
  position: relative;
  background:
    url("../img/about/merit-bg.svg") center top / 120% auto repeat-y,
    linear-gradient(180deg, #eaf9ff 0%, #fbfff2 100%);
}

.p-merit::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / cover;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
}

.p-merit__wave {
  background: url(../img/common/bg-vector01.svg) no-repeat center / cover;
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
}

.p-merit__headingWrap {
  position: relative;
  width: fit-content;
  margin-top: 80px;
  margin-bottom: 160px;
  margin-inline: auto;
  text-align: center;
}

.p-merit__heading {
  background: linear-gradient(transparent 60%, var(--color-yellow) 0%);
  display: inline;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(28px, 4vw, 48px);
  color: var(--color-navy);
  letter-spacing: 0.1em;
  text-shadow: 0px 3px 0px #ebac00;
}

.p-merit__headingWrap::after {
  content: "";
  background: url(../img/about/pokemon04.png) no-repeat center center / cover;
  width: calc(289 * (100vw / 1440));
  max-width: 289px;
  aspect-ratio: 289 / 291;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: calc(100% - (calc(-60 * (100vw / 1440))));
}

.p-merit__list {
  display: flex;
  flex-direction: column;
  gap: 120px;
}

.p-merit__item {
  position: relative;
}

.p-merit__item::before {
  position: absolute;
  content: "";
  background: url(../img/about/merit-ball.svg) no-repeat center center / cover;
  width: calc(430 * (100vw / 1440));
  max-width: 430px;
  aspect-ratio: 1 / 1;
  top: -55px;
}

.p-merit__item:nth-child(odd):before {
  left: 0;
}

.p-merit__item:nth-child(even):before {
  right: 0;
}

.p-merit__title {
  position: relative;
  width: fit-content;
  font-size: clamp(24px, 1.8vw, 26px);
  font-weight: 600;
  padding-left: clamp(86px, 13.8vw, 200px);
  padding-block: 20px;
  margin-inline: auto;
  z-index: 1;
}

.p-merit__title::before {
  position: absolute;

  color: #f3ce27;
  font-weight: 600;
  font-size: clamp(60px, 8.8vw, 128px);
  font-family: var(--font-latin);
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

.p-merit__item:nth-child(1) .p-merit__title:before {
  content: "01";
}

.p-merit__item:nth-child(3) .p-merit__title:before {
  content: "03";
}

.p-merit__grid {
  position: relative;
  margin-top: 24px;
  max-width: 960px;
  margin-inline: auto;

  display: flex;
  gap: 60px;
}

.p-merit__item:nth-child(2) .p-merit__grid {
  justify-content: center;
}

.p-merit__item:nth-child(1) .p-merit__grid,
.p-merit__item:nth-child(3) .p-merit__grid {
  flex-direction: column;
}

.p-merit__textarea {
  display: flex;
  flex-direction: column;
  gap: 40px;
  justify-content: center;
  align-items: center;
}

.p-merit__text,
.p-merit__item:nth-child(2) .p-merit__text {
  text-align: center;
}

/* メリット01 */
.p-merit__slider .p-merit__slick .slick-item p {
  width: fit-content;
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  line-height: 1.4;
  background-color: var(--color-yellow);
  border-radius: 100px;
  padding: 8px 24px;
  margin: 0 auto;
}

.p-merit__slider .slick-thumb .slick-thumb-item {
  aspect-ratio: 1/1;
  border: 4px solid var(--color-white);
  background-color: #78d6e1;
  border-radius: 16px;

  margin-inline: 8px;
  padding: 13px;

  display: flex !important;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.p-merit__slider .slick-thumb .slick-thumb-item.slick-current {
  background-color: var(--color-yellow);
  cursor: unset;
}

.p-merit__slider .slick-thumb {
  padding-inline: 50px;
}

.p-merit__slider .slick-prev {
  width: 40px;
  left: 0;
}

.p-merit__slider .slick-next {
  width: 40px;
  right: 0;
}

/* メリット02 */
.p-merit__item:nth-child(2)::after {
  position: absolute;
  content: "";
  background: url(../img/about/pokemon05.png) no-repeat center center / cover;
  width: calc(227 * (100vw / 1440));
  max-width: 227px;
  aspect-ratio: 227 / 354;
  top: calc(-120 * (100vw / 1440));
  left: -40px;
  z-index: 0;
}

.p-merit__item:nth-child(2) .p-merit__title:before {
  content: "02";
}

.p-merit__item:nth-child(2) .p-merit__text {
  text-align: justify;
}

.p-merit__item:nth-child(2) .p-merit__img {
  max-width: 315px;
  aspect-ratio: 355/500;
  padding-inline: 20px;
}

.p-merit__btnWrap {
  margin: 0 auto;
}

/* ボタングレーアウト */
.p-merit__item .c-btn__primary.is-disabled {
  pointer-events: none;
  background: #d9d9d9;
  color: unset;
}

.p-merit__item .c-btn__primary.sp {
  display: none;
}

/* メリット03 */
.p-merit__item:nth-child(3)::after {
  position: absolute;
  content: "";
  background: url(../img/about/pokemon06.png) no-repeat center center / cover;
  width: calc(230 * (100vw / 1440));
  max-width: 230px;
  aspect-ratio: 230 / 327;
  top: calc(-130 * (100vw / 1440));
  right: clamp(-60px, 6.25vw, -90px);
  z-index: 0;
}

.p-merit__eventList {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.p-merit__eventItem {
  display: flex;
  gap: 60px;
  align-items: center;
}

.p-merit__eventItem:nth-child(even) {
  flex-direction: row-reverse;
}

.p-merit__eventImg {
  width: calc((100% - 60px) / 2);
  max-width: 500px;
}

.p-merit__eventTextarea {
  width: calc((100% - 60px) / 2);
}

.p-merit__eventCopy {
  position: relative;
  width: fit-content;
}

.p-merit__eventCopy > p {
  display: inline-block;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(16px, 1.38vw, 20px);
  color: var(--color-navy);
  letter-spacing: 0.1em;
  text-shadow: 0px 3px 0px #ebac00;
  position: relative;
  z-index: 1;
}

.p-merit__eventCopy-underline {
  position: absolute;
  top: 55%;
  left: -10px;
  right: -10px;
  height: 20px;
  background: var(--color-yellow);
  clip-path: polygon(3% 0, 100% 0, 97% 100%, 0 100%);
  transform: rotate(-3deg) translateY(-50%);
  z-index: 0;
}

.p-merit__eventTitle {
  font-size: clamp(24px, 1.8vw, 26px);
  font-weight: 600;
  margin-top: 8px;
  margin-bottom: 16px;
}

@media screen and (max-width: 767px) {
  .p-merit .section-panel__inner {
    padding-inline: 0;
  }

  .p-merit {
    padding-bottom: calc(120 * (100vw / 375));
  }

  .p-merit__headingWrap {
    width: 100%;
    margin-top: 60px;
    margin-bottom: 60px;
  }

  .p-merit__headingWrap::after {
    width: calc(132 * (100vw / 375));
    max-width: 132px;
    top: 100%;
    left: unset;
    right: calc(-20 * (100vw / 375));
    transform: unset;
  }

  .p-merit__item:nth-child(2)::after {
    width: calc(102 * (100vw / 375));
    max-width: 102px;
    top: -80px;
    left: 0;
  }

  .p-merit__item:nth-child(3)::after {
    width: calc(103 * (100vw / 375));
    max-width: 103px;
    top: -80px;
    right: 0;
  }

  .p-merit__item::before {
    width: calc(220 * (100vw / 375));
    max-width: 220px;
    top: -20px;
  }

  .p-merit__title {
    max-width: 400px;
    width: 100%;
    font-size: 20px;
    text-align: center;
    padding-left: 0;
    padding-top: clamp(86px, 13.8vw, 200px);
  }

  .p-merit__title::before {
    left: 0;
    top: 0;
    transform: unset;
  }

  .p-merit__item:nth-child(2) .p-merit__title:before {
    right: 0;
    left: unset;
  }

  .p-merit__grid {
    margin-top: 0px;
    gap: 40px;
  }

  .p-merit__item:nth-child(2) .p-merit__grid {
    flex-direction: column;
    align-items: center;
  }

  .p-merit__item:nth-child(2) .p-merit__text {
    text-align: center;
  }

  .p-merit__slider {
    width: calc(100% + 30px);
    margin-inline: -15px;
  }

  .p-merit__slider .slick-thumb {
    padding-inline: 0px;
  }

  .p-merit__slider .slick-thumb .slick-thumb-item.-vertical {
    padding-block: 0px;
  }

  .p-merit__slider .slick-thumb .slick-thumb-item.-vertical img {
    padding-block: 13px;
  }

  .p-merit__slider .slick-prev {
    width: 40px;
    left: 20%;
    z-index: 10;
  }

  .p-merit__slider .slick-next {
    width: 40px;
    right: 20%;
    z-index: 10;
  }

  .slick-prev::before,
  .slick-next::before {
    width: 40px;
    height: 40px;
  }

  .p-merit__item .c-btn__primary.pc {
    display: none;
  }

  .p-merit__item .c-btn__primary.sp {
    display: inline-flex;
  }

  .p-merit__eventList {
    gap: 80px;
  }

  .p-merit__eventItem,
  .p-merit__eventItem:nth-child(even) {
    gap: 40px;
    flex-direction: column;
    gap: 40px;
  }

  .p-merit__eventImg {
    width: 100%;
    max-width: 100%;
  }

  .p-merit__eventTextarea {
    width: 100%;
  }

  .p-merit__eventCopy {
    margin: 0 auto;
  }

  .p-merit__eventTitle {
    text-align: center;
  }

  .p-merit__eventText {
    text-align: center;
  }
}

/*  お申し込みの流れ
------------------------------------- */

.p-flow {
  background-color: var(--color-white);
}

.p-flow__inner {
  position: relative;
  background: linear-gradient(180deg, #eaf9ff 0%, #fbfff2 100%);
  border-radius: calc(48 * (100vw / 1440));
  padding: calc(60 * (100vw / 1440));
  margin-top: calc(80 * (100vw / 1440));
}

.p-flow__inner::before {
  content: "";
  background: url(../img/about/5min.svg) no-repeat center center / cover;
  margin-inline: auto;

  width: 222px;
  aspect-ratio: 222 / 62;
  position: absolute;

  bottom: calc((100% + calc(50 * (100vw / 1440))));
  left: 50%;
  transform: translateX(-50%);
}

.p-flow__list {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-bottom: 48px;
}

.p-flow__list::after {
  display: block;
  content: "";
  width: 50px;
  height: 50px;
  background: url(../img/about/flow-arrow.svg) no-repeat center center / cover;
  margin-inline: auto;
}

.p-flow__item {
  min-height: 150px;
  display: flex;
}

.p-flow__iconBox {
  position: relative;
  background-color: var(--color-yellow);
  border-radius: 16px 0 0 16px;
  padding: 32px 60px;

  display: flex;
  justify-content: center;
  align-items: center;
}

.p-flow__step {
  position: absolute;
  color: var(--color-white);
  top: 8px;
  left: 8px;

  font-size: 14px;
  font-weight: 700;
  text-align: center;
  line-height: 1;
}

.p-flow__step > span {
  display: block;
  font-size: 2em;
}

.p-flow__icon {
  width: 80px;
  aspect-ratio: 1/1;
  background-color: var(--color-white);
  border-radius: 100px;

  display: flex;
  justify-content: center;
  align-items: center;
}

.p-flow__icon img {
  width: 50px;
  aspect-ratio: 1/1;
}

.p-flow__textBox {
  padding: 32px;
  background-color: var(--color-white);
  flex-grow: 1;
  border-radius: 0 16px 16px 0;

  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-flow__title {
  font-size: clamp(18px, 1.8vw, 26px);
  font-weight: 600;
}

.p-flow__dl {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  border-radius: 8px;
  background-color: #fffcec;
}

.p-flow__dlItem {
  display: flex;
  font-size: 14px;
}

.p-flow__dl dt {
  color: var(--color-orange);
  font-weight: 600;
  min-width: 100px;
}

.p-flow__caution {
  position: relative;
  border: 1px solid #e84653;
  border-radius: 8px;
  padding: 16px;
  padding-left: 56px;
  color: #e84653;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.15em;
}

.p-flow__caution::before {
  position: absolute;
  content: "";
  background: url(../img/ski-resort/warming-icon.svg) no-repeat center/cover;
  width: 24px;
  height: 24px;
  display: inline-block;
  flex-shrink: 0;

  top: 50%;
  left: 16px;
  transform: translateY(-50%);
}

.p-flow__cautionTitle {
  font-size: 18px;
  font-weight: 600;
}

.p-flow__caution p {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
}

.p-flow__guide {
  position: relative;

  background: var(--color-white);
  border-radius: 16px;
  padding: 48px 32px 32px 32px;
}

.p-flow__guide::after {
  content: "";
  background: url(../img/about/pokemon09.png) no-repeat center center / cover;
  width: calc(85 * (100vw / 1440));
  max-width: 85px;
  aspect-ratio: 85 / 120;
  position: absolute;
  top: calc(-100 * (100vw / 1440) / 2);
  right: 20px;
  transform: rotate(-10deg);
}

/* 受け取り方法 見出し調整 */
.p-flow__guide .c-page__heading-ja-wrap {
  position: absolute;
  left: 50%;
  top: calc((-40 * (100vw / 1440)) / 2);
  transform: translateX(-50%);
}

.p-flow__guide .c-page__heading-ja {
  font-size: clamp(18px, 2vw, 24px);
}

.p-flow__guide .c-page__heading-underline {
  left: -10px;
  right: -10px;
  height: 20px;
}

.p-flow__guideDl {
  display: flex;
  flex-direction: column;

  gap: 16px;
}

.p-flow__guideDlItem {
  display: flex;
  gap: 16px;
  align-items: baseline;
}

.p-flow__guideDl dt {
  display: inline-block;
  min-width: 150px;

  color: var(--color-white);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.15em;
  text-align: center;

  background: var(--color-orange);
  border-radius: 4px;
  padding: 2px 10px;
}

.p-flow__guideDl dd {
  font-weight: 500;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.15em;

  display: flex;
  flex-direction: column;
  gap: 16px;
}
.p-flow__conversion {
  padding-inline: 120px;
  margin: 0 auto;

  padding-bottom: 180px;

  display: flex;
  justify-content: center;
}

.p-flow__conversion > a {
  max-width: 904px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .p-flow .section-panel {
    padding-inline: 0;
  }

  .p-flow__inner {
    margin-top: calc(60 * (100vw / 375));
  }

  .p-flow__inner::before {
    width: 140px;
    bottom: calc((100% + calc(50 * (100vw / 375))));
  }

  .p-flow__list {
    gap: 24px;
    margin-bottom: 32px;
  }

  .p-flow__list::after {
    width: 24px;
    height: 24px;
  }

  .p-flow__iconBox {
    padding: 8px;
    flex-direction: column;
    gap: 10px;
    min-width: 60px;
  }

  .p-flow__step {
    position: unset;
    font-size: 12px;
  }

  .p-flow__icon {
    width: 100%;
  }

  .p-flow__icon img {
    width: 60%;
  }

  .p-flow__textBox {
    text-align: center;
    justify-content: center;
    padding: 24px 16px;
    gap: 8px;
  }

  .p-flow__dl {
    justify-content: center;
    margin-top: 16px;
  }

  .p-flow__dlItem {
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }

  .p-flow__dl dt {
    color: var(--color-orange);
    font-weight: 600;
    min-width: 100px;
  }

  .p-flow__caution {
    border-radius: calc(8 * (100vw / 375));
    padding: 8px;
    padding-top: 32px;
  }

  .p-flow__caution::before {
    top: 8px;
    left: 50%;
    transform: translate(-50%, -0);
  }

  .p-flow__cautionTitle {
    text-align: center;
  }

  .p-flow__caution p {
    flex-direction: column;
    text-align: center;
    gap: calc(4 * (100vw / 375));
  }

  .p-flow__guide::after {
    width: calc(38 * (100vw / 375));
    max-width: 38px;
    top: -60px;
  }

  .p-flow__guide .c-page__heading-ja-wrap {
    top: calc((-25 * (100vw / 375)) / 2);
  }

  .p-flow__guideDl {
    gap: 32px;
  }

  .p-flow__guideDlItem {
    flex-direction: column;
    gap: 8px;
    align-items: center;
  }

  .p-flow__guideDl dd {
    text-align: center;
    gap: 8px;
  }

  .p-flow__conversion {
    padding: 0 6px 80px;
  }

  .p-flow__conversion > a {
    max-width: 400px;
    margin: 0 auto;
  }
}

/* よくある質問
----------------------------------------------- */
.p-aboutFaq {
  position: relative;
  margin-top: 0;
  padding-top: calc(70 * (100vw / 1440));
  padding-bottom: calc(200 * (100vw / 1440));
  background: var(--color-white);
  background: linear-gradient(to bottom, #f1cc23, #ffb40f);
}

.p-aboutFaq__frameLine {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1;
}

.p-aboutFaq__frameLine::before {
  content: "";
  background: url(../img/common/bg-vector02.svg) no-repeat center / cover;
  width: 100%;
  height: calc(40 * (100vw / 1440));
  position: absolute;
  top: 0;
  left: 0;
}

.p-aboutFaq__waveBottom {
  width: 100%;
  height: calc(120 * (100vw / 1440));
  position: absolute;
  bottom: -1px;
  left: 0;
  background: url(../img/common/bg-vector01.svg) no-repeat center top / cover;
  z-index: 2;
}

.p-aboutFaq__pokemon01 {
  width: clamp(220px, 28.4vw, 410px);
  position: absolute;
  top: calc(-100 * (100vw / 1440));
  left: calc(50 * (100vw / 1440));
  z-index: 2;
}

.p-aboutFaq__pokemon02 {
  width: clamp(240px, 32.6vw, 410px);
  position: absolute;
  top: calc(30 * (100vw / 1440));
  right: 0;
  z-index: 2;
}

.p-aboutFaq__snow01 {
  width: clamp(125px, 28.4vw, 305px);
  position: absolute;
  bottom: 0;
  left: calc(-60 * (100vw / 1440));
  transform: rotate(-25deg);
}

.p-aboutFaq__snow02 {
  width: clamp(150px, 15vw, 222px);
  position: absolute;
  top: 0;
  right: -95px;
  transform: rotate(-222deg);
}

.p-aboutFaq__snow03 {
  width: clamp(135px, 22vw, 320px);
  position: absolute;
  bottom: calc(-20 * (100vw / 1440));
  right: calc(-60 * (100vw / 1440));
  transform: rotate(-154deg);
}

.p-aboutFaq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

@media screen and (max-width: 767px) {
  .p-aboutFaq {
    padding-top: calc(40 * (100vw / 375));
    padding-bottom: calc(90 * (100vw / 375));
    margin-top: 0;
  }

  .p-aboutFaq__gradiation {
    top: 0;
  }

  .p-aboutFaq__gradiation::before {
    background: url(../img/common/bg-vector02.svg) no-repeat top center / 200%;
    height: calc(40 * (100vw / 375));
    top: -1px;
  }

  .p-aboutFaq__pokemon01 {
    top: -40px;
    left: -120px;
  }

  .p-aboutFaq__pokemon02 {
    top: 0px;
    right: -80px;
  }
}

/* ===================================================
   404
=================================================== */
.p-404__heading {
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(28px, 4.5vw, 52px);
  letter-spacing: 0.01em;
  position: relative;
  z-index: 1;
  line-height: 1.4;
  text-align: center;
  margin-top: 40px;
}
.p-404__text {
  font-size: clamp(16px, 1.38vw, 20px);
  line-height: 2;
  font-weight: 700;
  text-align: center;
  margin-block: 40px;
}
.p-404 .c-btn__wrap {
  margin-inline: auto;
  width: fit-content;
}
