@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Montserrat&display=swap");
div, dl, dt, dd, ul, ol,
li, h1, h2, h3, h4, h5,
h6, pre, code, form, fieldset, legend,
input, textarea, p, blockquote,
th, td, figure {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  word-break: break-all;
  font-size: inherit;
  width: 100%;
}

fieldset, img {
  border: 0;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

li {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
  font-variant: normal;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

input, textarea, select {
  font-size: 100%;
}

legend {
  color: #000;
}

select, input, button, textarea {
  font: 99% arial, helvetica, clean, sans-serif;
}

pre, code, kbd, samp, tt {
  font-family: monospace;
  font-size: 108%;
  line-height: 100%;
}

.aligncenter {
  text-align: center;
}

img {
  vertical-align: bottom;
  line-height: 1;
}

a {
  text-decoration: none;
}

* {
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
}

hr {
  border: none;
  background-color: #547e9d;
  height: 1px;
}

.serif {
  font-family: ÓÎÃ÷³¯, "Yu Mincho", YuMincho, serif;
}

.hannari {
  font-family: "Hannari", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

.mincho {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
}

:lang(en) {
  font-family: "Montserrat", sans-serif;
}

/* common item ---------------------------------------*/
.clearfix:after,
.inner:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}

@media (max-width: 540px) {
  .is-pc {
    display: none !important;
  }
}

.is-sp {
  display: none;
}
@media (max-width: 540px) {
  .is-sp {
    display: block;
  }
}

@media (max-width: 835px) {
  .br-ds {
    display: none;
  }
}

#code_area {
  line-height: 0;
}

::-webkit-scrollbar {
  width: 5px;
}

/*スクロールバーの軌道*/
::-webkit-scrollbar-track {
  border-radius: 5px;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.01);
}

/*スクロールバーの動く部分*/
::-webkit-scrollbar-thumb {
  background-color: #E4E4E4;
  border-radius: 5px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.01);
}

body {
  -webkit-text-size-adjust: 100%;
  padding: 0;
  margin: 0;
  font-family: "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-size: 16px;
  line-height: 1.2;
  color: #4A4848;
  position: relative;
  overflow-y: scroll;
  background-color: #F8F6EF;
}
@media (max-width: 835px) {
  body {
    font-family: -apple-system-subset, "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 13px;
  }
}

.p-header__logo {
  width: 8.345534407vw;
  position: absolute;
  top: 1.317715959vw;
  left: 1.9765739385vw;
  display: block;
  z-index: 1;
}
@media (max-width: 540px) {
  .p-header__logo {
    width: 21.3333333333vw;
    top: 4vw;
    left: 4vw;
    z-index: 1;
  }
}
.p-header__logo img {
  width: 100%;
}

.l-footer {
  background-color: #EAF6FD;
}
.l-footer.--end {
  background-color: #F8F6EF;
}
@media (max-width: 540px) {
  .l-footer.--end {
    padding-bottom: 10.6666666667vw;
  }
}
.end .l-footer {
  background: #F8F6EF;
  padding-top: 0;
  padding-bottom: 40px;
}
.l-footer__inner {
  text-align: center;
  box-sizing: border-box;
  padding: 4.39238653vw 0 7.3206442167vw;
}
@media (max-width: 540px) {
  .l-footer__inner {
    margin: 0;
    padding: 16vw 0 10.6666666667vw;
  }
}
.--end .l-footer__inner {
  padding-bottom: 1.4641288433vw;
}
@media (max-width: 540px) {
  .--end .l-footer__inner {
    padding: 0;
  }
}
.l-footer__text {
  position: relative;
  justify-content: center;
  text-align: center;
  align-items: center;
  width: fit-content;
  margin: 0 auto 2.9282576867vw;
  line-height: 1.5;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-size: 1.4641288433vw;
  letter-spacing: 0.04em;
}
@media (max-width: 540px) {
  .l-footer__text {
    font-size: 3.7333333333vw;
    margin: 0 auto 10.6666666667vw;
  }
}
.l-footer__text strong {
  color: #2F99E3;
}
.l-footer__text::before, .l-footer__text::after {
  content: "";
  position: absolute;
  bottom: 0;
  display: block;
  width: 2px;
  height: 1.5em;
  border-radius: 9999px;
  background-color: #707070;
}
@media (max-width: 540px) {
  .l-footer__text::before, .l-footer__text::after {
    bottom: -1em;
    width: 1px;
    height: 3.5em;
    background-color: #4A4848;
  }
}
.l-footer__text::before {
  left: -1em;
  transform: rotate(-20deg);
}
@media (max-width: 540px) {
  .l-footer__text::before {
    left: -2em;
  }
}
.l-footer__text::after {
  right: -1em;
  transform: rotate(20deg);
}
@media (max-width: 540px) {
  .l-footer__text::after {
    right: -2em;
  }
}

.p-footer__privacypolicy {
  margin-bottom: 1em;
}
.p-footer__privacypolicy a {
  display: inline-block;
  font-size: 14px;
  color: #6F6F6F;
  line-height: 1.3;
  text-decoration: underline;
  transition: all 0.25s ease;
}
.p-footer__privacypolicy a:hover {
  border-color: transparent;
}
@media (max-width: 835px) {
  .p-footer__privacypolicy a {
    font-size: 12px;
    letter-spacing: 0.1em;
  }
}
.p-footer__copyright {
  font-size: 14px;
  color: #6F6F6F;
}
@media (max-width: 835px) {
  .p-footer__copyright {
    font-size: clamp(8px, 2.667vw, 14px);
  }
}

.l-content {
  background-color: #F8F6EF;
  background-size: contain;
  overflow: hidden;
}

.l-inner {
  max-width: 100vw;
  width: 100%;
  margin: auto;
  padding-right: 25px;
  padding-left: 25px;
}
@media (max-width: 835px) {
  .l-inner {
    padding-right: 5.3333333333vw;
    padding-left: 5.3333333333vw;
  }
}

.l-section {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media (max-width: 835px) {
  .l-section {
    padding-top: 14vw;
    padding-bottom: 14vw;
  }
}

.l-wrapper {
  background: #F8F6EF;
  position: relative;
  z-index: 2;
  overflow: hidden;
}

.end .l-wrapper {
  padding-top: 1px;
}

@keyframes cta-btn-shine {
  0% {
    left: -20%;
  }
  30% {
    left: 105%;
  }
  100% {
    left: 105%;
  }
}
.c-btn {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: clamp(189.6px, 34.7vw, 568.8px);
  height: clamp(26.8px, 4.905vw, 80.4px);
  margin: auto;
  color: #fff;
  font-weight: 700;
  font-size: 1.4641288433vw;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  letter-spacing: 0.12em;
  overflow: hidden;
  box-shadow: 0px 4px 0 0 #1275AF;
  border-radius: 9999px;
  background-color: #2F99E3;
  transition: background-color 0.3s;
}
@media (max-width: 540px) {
  .c-btn {
    font-size: 4.2666666667vw;
    width: clamp(252px, 84vw, 441px);
    height: clamp(41.6px, 13.867vw, 72.8px);
    max-width: 100%;
  }
}
@media (hover: hover) {
  .c-btn:hover {
    background-color: #77BAE8;
  }
}
.c-btn.--requirement {
  margin: clamp(16px, 2.928vw, 48px) auto 0;
}
.c-btn.--cta {
  width: 100%;
  height: 100%;
  font-size: clamp(12px, 1.389vw, 20px);
}
@media (max-width: 540px) {
  .c-btn.--cta {
    font-size: 16px;
  }
}
.c-btn.--flash::after {
  content: "";
  width: 15%;
  height: 100%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 40%, rgb(255, 255, 255) 60%, rgba(255, 255, 255, 0) 100%);
  transform: skewX(-30deg);
  top: 0;
  left: -20%;
  opacity: 0.85;
  position: absolute;
  animation: 3s cta-btn-shine infinite cubic-bezier(0.53, 0.05, 0.12, 1.16);
}
.c-btn .arrow {
  position: absolute;
  top: 50%;
  right: 14px;
  z-index: 0;
  width: clamp(3.2px, 0.586vw, 9.6px);
  transform: translateY(-50%);
}
@media (max-width: 835px) {
  .c-btn .arrow {
    right: 18px;
    width: clamp(4.8px, 1.6vw, 8.4px);
  }
}
.c-btn--end {
  pointer-events: none;
}
.c-btn--end::after {
  display: none;
}
.c-btn--end:hover {
  opacity: 1 !important;
}
.c-btn:hover {
  opacity: 0.8;
}

.c-bnr__fixed {
  display: none;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 50;
  width: 100%;
  background-color: #EAF6FD;
}
@media (min-width: 836px) {
  .c-bnr__fixed__inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0 6.9444444444vw;
    padding: clamp(8px, 1.464vw, 24px) 0;
  }
}
@media (max-width: 835px) {
  .c-bnr__fixed__inner {
    padding: clamp(12.8px, 4.267vw, 22.4px) 0;
  }
}
.c-bnr__fixed__text {
  width: fit-content;
  text-align: center;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-weight: 500;
  font-size: clamp(7.2px, 1.318vw, 21.6px);
  line-height: 1.6;
  letter-spacing: 0.04em;
}
@media (max-width: 835px) {
  .c-bnr__fixed__text {
    font-size: 14px;
    margin: 0 auto 11px;
  }
}
.c-bnr__fixed__text strong {
  color: #2F99E3;
}
@media (min-width: 836px) {
  .c-bnr__fixed__btn {
    width: min(420px, 29.1666666667vw);
    height: 4.4444444444vw;
    margin: 0;
  }
}
@media (max-width: 835px) {
  .c-bnr__fixed__btn {
    width: min(315px, 84vw);
    height: min(48px, 12.8vw);
    margin: auto;
  }
}

.js-animation {
  transition: all 1s;
  opacity: 0;
  transform: translateY(10px);
  transition-delay: 0s;
}
.js-animation.is-show {
  opacity: 1;
  transform: translateY(0);
}
@media (max-width: 835px) {
  .js-animation.is-show {
    transition-delay: unset !important;
  }
}
.js-animation.is-show.js-animation--delay--0-3 {
  transition-delay: 0.3s;
}
.js-animation.is-show.js-animation--delay--0-6 {
  transition-delay: 0.6s;
}
.js-animation.is-show.js-animation--delay--0-9 {
  transition-delay: 0.9s;
}
.js-animation.is-show.js-animation--delay--1-2 {
  transition-delay: 1.2s;
}
.js-animation.is-show.js-animation--delay--0-5 {
  transition-delay: 0.5s;
}
.js-animation.is-show.js-animation--delay--1 {
  transition-delay: 1s;
}
.js-animation.is-show.js-animation--delay--1-5 {
  transition-delay: 1.5s;
}
.js-animation.is-show.js-animation--delay--2 {
  transition-delay: 2s;
}
.js-animation.is-show.js-animation--delay--2-5 {
  transition-delay: 2.5s;
}

.gradation {
  background: linear-gradient(to bottom, #617188, 50%, #434c5b);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

@keyframes mv-sp-anim-slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50px);
  }
}
@keyframes mv-sp-anim-zoom {
  0% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}
.p-hero {
  position: relative;
  z-index: 0;
  max-height: 100svh;
}
@media (max-width: 540px) {
  .p-hero {
    height: auto;
  }
}
.p-hero__inner {
  display: flex;
}
@media (max-width: 540px) {
  .p-hero__inner {
    height: 125.3333333333vw;
    display: block;
    position: relative;
    overflow: hidden;
  }
}
.p-hero__left {
  width: 43.9238653001vw;
  height: 48.7554904832vw;
  background-color: #FFFFFF;
}
@media (max-width: 540px) {
  .p-hero__left {
    height: 100%;
    position: relative;
    z-index: 10;
    width: 100%;
    background-color: transparent;
    display: flex;
    flex-wrap: wrap;
    padding-bottom: 8vw;
    overflow: hidden;
  }
}
.p-hero__left__title {
  width: 36.6032210835vw;
  margin-inline: auto;
  padding-top: 6.588579795vw;
}
@media (max-width: 540px) {
  .p-hero__left__title {
    width: 100%;
    padding-top: 0;
  }
}
.p-hero__left__btn {
  position: relative;
  width: 30.7467057101vw !important;
  height: 4.39238653vw !important;
  margin-top: -9.5168374817vw;
}
@media (max-width: 540px) {
  .p-hero__left__btn {
    width: 84vw !important;
    height: 13.8666666667vw !important;
    margin: 0;
    margin-inline: auto;
    margin-top: auto;
  }
}
.p-hero__left__period {
  position: relative;
  width: 33.9677891654vw;
  margin-top: 2.9282576867vw;
  margin-inline: auto;
}
.p-hero__left__period img {
  width: 100%;
}
.p-hero__left__period__text {
  position: absolute;
  font-size: 1.317715959vw;
  font-weight: 500;
  color: #A29661;
  top: 0vw;
  right: -10.2489019034vw;
}
.p-hero__images-wrap {
  position: relative;
}
@media (max-width: 540px) {
  .p-hero__images-wrap {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}
.p-hero__images {
  position: absolute;
  top: 0;
  left: 0;
  width: 56.0761346999vw;
  overflow: hidden;
}
@media (max-width: 540px) {
  .p-hero__images {
    position: absolute;
    top: 0;
    top: 10.6666666667vw;
    width: 100%;
    transform: scale(1.13);
  }
}
@media (max-width: 540px) {
  .p-hero__period {
    position: relative;
    width: 75.2vw;
    margin: 5.3333333333vw 0 0 8vw;
  }
}
.p-hero__period__text {
  position: absolute;
  width: 34.6666666667vw;
  top: -5.3333333333vw;
  right: -4vw;
}
.p-hero__period__text img {
  width: 100%;
}
.p-hero__image--bottom {
  margin-top: 0.1464128843vw;
  display: flex;
  justify-content: space-between;
}
.p-hero__image--bottom .left,
.p-hero__image--bottom .rigth {
  width: 27.9648609078vw;
}

.p-hero .p-hero__images .p-hero__image--top {
  position: relative;
  top: -50px;
  opacity: 0;
  transition: top 0.8s cubic-bezier(0, 0.55, 0.41, 1), opacity 0.8s linear;
}
.p-hero .p-hero__images .p-hero__image--bottom .left {
  position: relative;
  left: -50px;
  opacity: 0;
  transition: left 0.8s cubic-bezier(0, 0.55, 0.41, 1), opacity 0.8s linear;
  transition-delay: 700ms;
}
.p-hero .p-hero__images .p-hero__image--bottom .rigth {
  position: relative;
  right: -50px;
  opacity: 0;
  transition: right 0.8s cubic-bezier(0, 0.55, 0.41, 1), opacity 0.8s linear;
  transition-delay: 1400ms;
}
.p-hero .p-hero__images.is-active .p-hero__image--top {
  top: 0;
  opacity: 1;
}
.p-hero .p-hero__images.is-active .p-hero__image--bottom .left {
  opacity: 1;
  left: 0;
}
.p-hero .p-hero__images.is-active .p-hero__image--bottom .rigth {
  opacity: 1;
  right: 0;
}

@keyframes zoomLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-7%);
  }
}
@media (max-width: 540px) {
  .p-hero .swiper-slide-active .swiper-img,
  .p-hero .swiper-slide-duplicate-active .swiper-img,
  .p-hero .swiper-slide-prev .swiper-img {
    animation: zoomLeft 5.5s linear 0s normal both;
  }
  .p-hero .swiper-slide img {
    width: 116vw;
    max-width: initial;
  }
}

.p-hero-b {
  position: relative;
}
@media (max-width: 540px) {
  .p-hero-b.--end {
    padding-bottom: 28px;
  }
}
@media (min-width: 541px) {
  .p-hero-b {
    height: 62.5vw;
  }
  .p-hero-b::before, .p-hero-b::after {
    content: "";
    width: 100%;
    height: 12.1527777778%;
    position: absolute;
    left: 0;
    opacity: 0.7;
    z-index: 1;
  }
  .p-hero-b::before {
    background: linear-gradient(to bottom, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 100%);
    top: 0;
  }
  .p-hero-b::after {
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgb(234, 246, 253) 100%);
    height: 12.1527777778%;
    bottom: 0;
  }
}
@media (max-width: 540px) {
  .p-hero-b {
    max-height: none;
    background-color: #EAF6FD;
  }
}
.p-hero-b__container {
  width: 100%;
  max-height: 100svh;
  background-color: #fff;
  position: relative;
}
@media (min-width: 541px) {
  .p-hero-b__container {
    height: 62.5vw;
  }
}
@media (max-width: 540px) {
  .p-hero-b__container {
    height: 181.3333333333vw;
    max-height: none;
    background-color: #fff;
  }
}
.p-hero-b__container::before, .p-hero-b__container::after {
  content: "";
  background-repeat: no-repeat;
  position: absolute;
  z-index: 0;
}
@media (min-width: 541px) {
  .p-hero-b__container::before, .p-hero-b__container::after {
    width: 25vw;
    background-size: auto 100%;
    height: calc(100svh - 0.5555555556vw);
    max-height: 61.9444444444vw;
    top: 0.2777777778vw;
  }
}
@media (max-width: 540px) {
  .p-hero-b__container::before, .p-hero-b__container::after {
    width: calc(100% - 2.1333333333vw);
    height: 32vw;
    background-position: center;
    background-size: contain;
    left: 1.0666666667vw;
  }
}
@media (min-width: 541px) {
  .p-hero-b__container::before {
    background-image: url(../img/main2-left.jpg);
    background-position: left top;
    left: 0.2777777778vw;
  }
}
@media (max-width: 540px) {
  .p-hero-b__container::before {
    background-image: url(../img/main2-top-sp.jpg);
    top: 1.0666666667vw;
  }
}
@media (min-width: 541px) {
  .p-hero-b__container::after {
    background-image: url(../img/main2-right.jpg);
    background-position: right top;
    right: 0.2777777778vw;
  }
}
@media (max-width: 540px) {
  .p-hero-b__container::after {
    background-image: url(../img/main2-bottom-sp.jpg);
    bottom: 1.0666666667vw;
  }
}
@media (max-width: 540px) {
  .p-hero-b__logo {
    top: clamp(8px, 1.464vw, 24px);
    left: clamp(8px, 1.464vw, 24px);
  }
}
.p-hero-b__inner {
  width: min(39.5833333333vw, 71.25vmin);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  z-index: 2;
}
@media (max-width: 540px) {
  .p-hero-b__inner {
    width: 84vw;
    max-width: none;
    top: 38.1333333333vw;
    translate: -50% 0;
  }
}
.p-hero-b__inner img {
  width: 100%;
}
.p-hero-b__title {
  width: 100%;
}
.p-hero-b__lead {
  width: clamp(162.4px, 29.722vw, 487.2px);
  margin-top: clamp(16px, 2.928vw, 48px);
  margin-inline: auto;
}
@media (max-width: 540px) {
  .p-hero-b__lead {
    display: none;
  }
}
@media (min-width: 541px) {
  .p-hero-b__btn {
    width: min(46.6666666667vmin, 75%);
    height: auto;
    margin-top: clamp(16px, 2.928vw, 48px);
    padding: 0.8em 0;
    font-size: min(2.2222222222vmin, 1.3888888889vw);
  }
}
@media (max-width: 540px) {
  .p-hero-b__btn {
    width: 84vw;
    height: 13.8666666667vw;
    margin-top: 6.4vw;
  }
}
@media (min-width: 541px) {
  .p-hero-b__btn .arrow {
    right: 1.6666666667vw;
    width: 0.5555555556vw;
  }
}
.p-hero-b__period {
  width: 474;
  margin-top: clamp(11.2px, 2.05vw, 33.6px);
  margin-inline: auto;
}
@media (max-width: 540px) {
  .p-hero-b__period {
    width: 75.2vw;
    margin: 5.3333333333vw 0 0 8vw;
  }
}

.p-requirement {
  padding-top: 100px;
  padding-bottom: 7.3206442167vw;
  background-color: #EAF6FD;
}
@media (max-width: 540px) {
  .p-requirement {
    padding-top: 16vw;
    padding-bottom: 16vw;
  }
}
.p-requirement__bgc {
  padding-bottom: 60px;
  background-color: #fff;
}
@media (max-width: 540px) {
  .p-requirement__bgc {
    padding-bottom: 40px;
  }
}
.p-requirement__btn {
  width: 100%;
  max-width: 51.2445095168vw;
  height: 7.3206442167vw;
  font-size: 1.8301610542vw;
  margin: 2.9282576867vw auto 0;
  position: relative;
  transition: all 0.3s;
}
@media (max-width: 540px) {
  .p-requirement__btn {
    height: 15.2vw;
    font-size: 4.2666666667vw;
    margin-bottom: 10.6666666667vw;
    margin-top: 9.3333333333vw;
    width: 87%;
  }
}
.p-requirement__btn img {
  width: 42%;
}
@media (max-width: 540px) {
  .p-requirement__btn img {
    width: clamp(144px, 48vw, 252px);
  }
}
.p-requirement__btn:hover {
  opacity: 0.8;
}
.p-requirement__btn a:hover {
  opacity: 1;
}
.p-requirement__inner {
  max-width: min(62.5vw, 900px);
  padding: 0 20px;
  margin: 0 auto;
}
@media (max-width: 540px) {
  .p-requirement__inner {
    padding: 0 8vw;
    max-width: 100%;
  }
}
.p-requirement__inner > *:last-child {
  margin-bottom: 0;
}
.p-requirement dl {
  line-height: 1.6;
}
.p-requirement dl div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 0;
  padding: clamp(9.6px, 1.757vw, 28.8px) 0;
}
@media (max-width: 835px) {
  .p-requirement dl div {
    padding: clamp(12.8px, 4.267vw, 22.4px) 0;
  }
}
.p-requirement dl div + div {
  border-top: dashed 1px #B7B7B7;
}
.p-requirement dl div:last-of-type {
  padding-bottom: 0;
}
.p-requirement dl dt {
  width: 11vw;
  font-weight: 500;
}
@media (max-width: 835px) {
  .p-requirement dl dt {
    width: 100%;
  }
}
.p-requirement dl dd {
  width: calc(100% - 11vw);
  font-weight: 400;
}
@media (max-width: 835px) {
  .p-requirement dl dd {
    width: 100%;
  }
}
.p-requirement__head {
  width: min(59.7222222222vw, 860px);
  margin-inline: auto;
}
@media (max-width: 540px) {
  .p-requirement__head {
    width: 92vw;
  }
}
.p-requirement__head img {
  width: 100%;
}
.p-requirement__head__wrap {
  position: relative;
}
.p-requirement__lead {
  margin: 3.6603221083vw 0 2.7777777778vw;
  text-align: center;
  font-size: clamp(9.6px, 1.757vw, 28.8px);
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  letter-spacing: 0.12em;
  line-height: 2;
}
.p-requirement__lead strong {
  color: #2F99E3;
  font-weight: 500;
}
@media (max-width: 540px) {
  .p-requirement__lead {
    font-size: 4.8vw;
    margin: clamp(28px, 9.333vw, 49px) 0 clamp(32px, 10.667vw, 56px);
  }
}
.p-requirement__title {
  width: fit-content;
  margin: 0 auto 0.5em;
  font-size: clamp(8px, 1.464vw, 24px);
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  color: #4A4848;
  letter-spacing: 0.12em;
}
@media (max-width: 540px) {
  .p-requirement__title {
    font-size: clamp(14.4px, 4.8vw, 25.2px);
  }
}
.p-requirement__content {
  position: relative;
  z-index: 0;
  padding: 3.513909224vw 0.7320644217vw 4.0995607613vw 7.3206442167vw;
  font-size: clamp(5.6px, 1.025vw, 16.8px);
  color: #6F6F6F;
  border-radius: 1.4641288433vw;
  background-color: #FFF;
  overflow: clip;
  border: 1px solid #B7B7B7;
}
@media (max-width: 540px) {
  .p-requirement__content {
    padding: clamp(25.6px, 8.533vw, 44.8px) clamp(8px, 2.667vw, 14px) clamp(25.6px, 8.533vw, 44.8px) clamp(12px, 4vw, 21px);
    font-size: clamp(10.4px, 3.467vw, 18.2px);
  }
}
.p-requirement__content__inner {
  height: 400px;
  overflow-y: scroll;
  padding-right: 90px;
}
@media (max-width: 540px) {
  .p-requirement__content__inner {
    padding-right: 1.3333333333vw;
    height: 100.333333vw;
  }
}
.p-requirement__circle {
  width: 100%;
  max-width: none;
}

.p-prize {
  max-width: 900px;
  text-align: center;
  padding-top: clamp(32px, 5.857vw, 96px);
  position: relative;
  margin-inline: auto;
}
@media (max-width: 540px) {
  .p-prize {
    max-width: none;
    padding: 16vw clamp(24px, 8vw, 42px) 0;
  }
}
.p-prize__title {
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-size: clamp(12.8px, 2.343vw, 38.4px);
  text-align: center;
  line-height: 1.6;
  margin-bottom: clamp(8px, 1.464vw, 24px);
  letter-spacing: 0.075em;
  color: #131313;
  font-weight: bold;
}
@media (max-width: 540px) {
  .p-prize__title {
    margin-bottom: 3.2vw;
    font-size: clamp(12px, 6.4vw, 32px);
  }
}
.p-prize__lead {
  font-size: clamp(6.4px, 1.171vw, 19.2px);
  line-height: 2;
  margin-bottom: clamp(8px, 1.464vw, 24px);
}
@media (max-width: 540px) {
  .p-prize__lead {
    font-size: clamp(11.2px, 3.733vw, 19.6px);
    margin-bottom: clamp(16px, 5.333vw, 28px);
  }
}
.p-prize__name {
  background: url(../img/sec_winner_bg.jpg) center center no-repeat;
  background-size: contain;
  width: clamp(249.6px, 45.681vw, 748.8px);
  height: clamp(80px, 14.641vw, 240px);
  display: flex;
  justify-content: center;
  align-items: center;
  margin-inline: auto;
  margin-bottom: clamp(12px, 2.196vw, 36px);
  position: relative;
  box-sizing: border-box;
}
@media (max-width: 540px) {
  .p-prize__name {
    background: url(../img/sec_winner_bg_sp.jpg) center center no-repeat;
    background-size: contain;
    width: clamp(240px, 80vw, 420px);
    height: clamp(135.2px, 45.067vw, 236.6px);
    margin-bottom: clamp(24px, 8vw, 42px);
  }
}
.p-prize__name p {
  font-size: clamp(9.6px, 1.757vw, 28.8px);
  line-height: 2;
  color: #291307;
}
@media (max-width: 540px) {
  .p-prize__name p {
    font-size: clamp(11.2px, 3.733vw, 19.6px);
    position: absolute;
    left: 0%;
    top: 50%;
    width: 100%;
    transform: translate(0%, -50%);
  }
}
.p-prize__notice {
  font-size: clamp(6.4px, 1.171vw, 19.2px);
  line-height: 1.5;
}
@media (max-width: 540px) {
  .p-prize__notice {
    font-size: clamp(9.6px, 3.2vw, 16.8px);
  }
}

/** HTML サンプル
<section id="end" class="p-prize">
  <div class="l-inner">
    <h2 class="p-prize__title serif">
      <span>「新築資金1,000万円プレゼント」</span><b>当選発表！</b>
    </h2>
    <p class="p-prize__lead">
      多数のご応募ありがとうございました！<br>第三者立会いのもと、厳正なる抽選を行いました。<br class="sp">当選結果は以下になります。
    </p>
    <div class="p-prize__name">
      <p>
        ○○さま（〇〇市○○区）が<br class="sp">当選されました。<br>おめでとうございます！
      </p>
    </div>
    <p class="p-prize__notice">ご当選者様には、担当ホームエンジニアから<br class="sp">直接ご連絡させていただきます。</p>
  </div>
</section>
*/
.p-about {
  background-color: #EAF6FD;
}
@media (min-width: 541px) {
  .p-about.--hight .p-about__block:first-child {
    padding-top: 11.1111111111vmax;
  }
}
.p-about .r {
  position: relative;
}
.p-about .r::after {
  content: "®";
  position: absolute;
  display: inline-block;
  top: -0.25em;
  right: 1px;
  font-size: 15px;
}
@media (max-width: 540px) {
  .p-about .r::after {
    right: -1px;
  }
}
.p-about__title {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
}
@media (max-width: 835px) {
  .p-about__title {
    display: flex;
    flex-wrap: wrap;
    font-size: 18px;
    letter-spacing: 0.12em;
  }
}
.p-about__title .course {
  margin-right: 0.5em;
  text-align: center;
  font-size: 20px;
  font-family: "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  color: #fff;
}
@media (max-width: 835px) {
  .p-about__title .course {
    width: 100%;
    margin: 0 0 16px;
    font-size: 12px;
  }
}
.p-about__title .course span {
  display: inline-block;
  padding: 0.25em 0.5em;
  background-color: #5CA4AD;
}
@media (max-width: 540px) {
  .p-about__title .course span {
    padding: 0.5em 0.8em;
  }
}
.p-about__desc {
  margin: 30px auto 40px;
  line-height: 2;
  font-size: 14px;
  font-weight: 400;
  font-family: "Zen Kaku Gothic New", "Noto Sans JP", YuGothic, "游ゴシック体", "Yu Gothic Medium", "游ゴシック Medium", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  color: #4A4848;
  text-align: center;
}
.p-about__desc .r {
  margin-right: 0.3em;
}
.p-about__desc .r::after {
  top: -0.5em;
  right: -4px;
}
.p-about__desc a {
  color: #2F99E3;
  text-decoration: underline;
}
.p-about__block {
  position: relative;
  width: min(62.5vw, 900px);
  margin-inline: auto;
  padding: 98px 20px 0;
}
@media (max-width: 540px) {
  .p-about__block {
    width: 100%;
    padding: 60px 30px 0;
  }
}
.p-about__block:nth-child(even) .p-about__en {
  left: auto;
  right: min(-5.5555555556%, -50px);
  transform-origin: right top;
  transform: rotate(90deg) translate(100%, -100%);
}
@media (max-width: 540px) {
  .p-about__block:nth-child(even) .p-about__en {
    right: 12.8vw;
  }
}
.p-about__en {
  position: absolute;
  top: 98px;
  left: min(-5.5555555556%, -50px);
  width: min(32.1527777778vw, 463px);
  transform: rotate(-270deg);
  transform-origin: left top;
}
@media (max-width: 540px) {
  .p-about__en {
    top: 60px;
    left: 12.8vw;
    width: 50.1333333333vw;
  }
}
@media (min-width: 541px) {
  .p-about__slider, .p-about__thumb {
    width: min(62.5vw, 900px);
    padding: 0 20px;
    overflow: hidden;
  }
}
.p-about__slider__item, .p-about__thumb__item {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
}
.p-about__slider__item img, .p-about__thumb__item img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (min-width: 541px) {
  .p-about__slider {
    margin-left: min(-1.3888888889vw, -20px);
  }
}
@media (max-width: 540px) {
  .p-about__slider {
    width: 90.4vw;
    margin-left: -6px;
    padding: 0 12px;
    overflow: hidden;
  }
}
.p-about__slider__item {
  aspect-ratio: 43/27;
}
.p-about__slider .swiper {
  overflow: visible;
}
.p-about__wrap {
  width: 100%;
  overflow: hidden;
}
@media (max-width: 540px) {
  .p-about__wrap {
    width: 100vw;
    padding-left: 6px;
  }
}
.p-about__thumb {
  width: calc(20% - 8px);
  margin: 10px 0 0;
  padding: 0 0 0 20px;
  padding: 0;
  overflow: visible;
}
@media (max-width: 540px) {
  .p-about__thumb {
    width: 25.6vw;
    margin: 10px 0 0;
    padding: 0;
  }
}
.p-about__thumb__item {
  aspect-ratio: 164/103;
  filter: brightness(50%);
}
.p-about__thumb__item.swiper-slide-thumb-active {
  filter: brightness(100%);
}
@media (min-width: 541px) {
  .p-about__thumb .swiper-wrapper {
    transform: none !important;
  }
}
.p-about .swiper-button-next, .p-about .swiper-button-prev {
  position: absolute;
  top: calc(50% + 20px);
  z-index: 1;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #9a9a9a;
}
@media (max-width: 540px) {
  .p-about .swiper-button-next, .p-about .swiper-button-prev {
    top: calc(50% + 12px);
    width: 24px;
    height: 24px;
  }
}
.p-about .swiper-button-next::after, .p-about .swiper-button-prev::after {
  content: none;
}
.p-about .swiper-button-next::before, .p-about .swiper-button-prev::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 10px;
  background-size: cover;
  background-image: url("../img/common/arrow.svg");
  transform: translate(-50%, -50%);
}
@media (max-width: 540px) {
  .p-about .swiper-button-next::before, .p-about .swiper-button-prev::before {
    width: 4px;
    height: 8px;
  }
}
.p-about .swiper-button-next {
  right: 0px;
  transform: translate(50%, 0%);
}
.p-about .swiper-button-prev {
  left: 0px;
  transform: translate(-50%, 0%);
}
.p-about .swiper-button-prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}
.p-about__scrollbar {
  position: relative !important;
  width: min(59.7222222222vw, 860px) !important;
  height: 2px;
  margin-top: 40px;
  background-color: #fff;
}
@media (max-width: 540px) {
  .p-about__scrollbar {
    margin-top: 20px;
    width: min(84vw, 315px) !important;
  }
}
.p-about__scrollbar .swiper-scrollbar-drag {
  background-color: #2F99E3;
}
.p-about__entry {
  margin-top: 60px;
}

.gradation {
  background: linear-gradient(to bottom, #617188, 50%, #434c5b);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.p-kv__title {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
}
.p-kv__wrap {
  position: relative;
  z-index: 0;
  aspect-ratio: 8/5;
  width: 100%;
}
.p-kv__logo {
  position: absolute;
  top: 18px;
  left: 27px;
  width: min(7.9166666667%, 114px);
  height: 40px;
  z-index: 1;
}
@media (max-width: 540px) {
  .p-kv__logo {
    top: 15px;
    left: 15px;
    width: 15.4666666667vw;
    height: 20px;
  }
}
@media (max-width: 540px) {
  .p-kv__img {
    position: relative;
    aspect-ratio: 75/68;
  }
}
.p-kv__img img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 540px) {
  .p-kv__img::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 10.6666666667vw;
    background-image: url("../img/kv/kv_circle.svg");
    background-size: cover;
  }
}
@media (min-width: 541px) {
  .p-kv__desc {
    position: absolute;
    top: 2.7777777778vmax;
    right: 2.7777777778vmax;
    z-index: 1;
    width: min(45.8333333333%, 73.3333333333vmin);
    max-width: 660px;
    padding: 2.7777777778% 3.125%;
  }
}
@media (max-width: 540px) {
  .p-kv__desc {
    padding: 4.8vw 2.6666666667vw 0;
    background-color: #fff;
  }
}
@media (min-width: 541px) {
  .p-kv__desc::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    z-index: -1;
    border-radius: 20px;
  }
}
@media (max-width: 540px) {
  .p-kv__desc__pc {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    width: 1px;
    height: 1px;
  }
}
@media (min-width: 541px) {
  .p-kv__desc__sp {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    width: 1px;
    height: 1px;
  }
}
@media (min-width: 541px) {
  .p-kv__desc__entry {
    width: min(46.6666666667vmin, 75%);
    height: auto;
    margin-top: 1.1111111111vw;
    padding: 0.8em 0;
    font-size: min(2.2222222222vmin, 1.3888888889vw);
  }
}
@media (max-width: 540px) {
  .p-kv__desc__entry {
    position: absolute;
    left: 50%;
    bottom: 35.7333333333vw;
    margin-top: 0;
    transform: translateX(-50%);
  }
}
@media (min-width: 541px) {
  .p-kv__desc__entry .arrow {
    right: min(2.6666666667vmin, 5.7142857143%);
    width: min(0.8888888889vmin, 1.9047619048%);
  }
}
.p-kv__desc__day {
  text-align: center;
  margin-top: 1.3888888889vw;
}
@media (max-width: 540px) {
  .p-kv__desc__day {
    position: absolute;
    left: 8vw;
    bottom: 9.0666666667vw;
    z-index: 1;
  }
}