@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700;800&display=swap");
:root {
  --sans-serif: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",
  	sans-serif;
  --serif: "Noto Serif JP", serif;
  --en-sans: "", sans-serif;
  --en-serif: "", serif;
  --base: #fff;
  --main: #000;
  --accent: #d81b60;
  --inner-w: 1200px;
  --inner-pd: 80px;
}
@media screen and (max-width: 1023px) {
  :root {
    --inner-pd: calc(140/750*100vw);
  }
}

/*========================================
  ブラウザごとのデフォルトスタイルの初期化
========================================*/
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
dl,
dt,
dd,
ol,
ul,
figure {
  all: unset;
  display: revert;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  vertical-align: middle;
}

/*========================================
  要素の基本的なスタイル
========================================*/
html {
  font-size: 10px;
  height: 100%;
  scroll-behavior: smooth;
}

body {
  text-size-adjust: 100%;
  font-feature-settings: "palt" 1;
  font-family: var(--sans-serif);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.8;
  min-width: 320px;
  color: var(--main);
  background: var(--base);
}
@media screen and (max-width: 1023px) {
  body {
    font-size: 3.6vw;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

:focus-visible {
  outline: 2px solid blue;
}

img,
svg,
iframe,
video,
picture {
  max-width: 100%;
}

img {
  letter-spacing: 0;
  font-size: 12px;
  height: auto;
}

a {
  word-break: break-all;
}

@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    display: inline-block;
    pointer-events: none;
  }
}

small {
  font-size: 80%;
}

button,
input[type=button],
input[type=submit] {
  cursor: pointer;
  font: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

label {
  cursor: pointer;
  display: inline-block;
}

/*========================================
  サイト共通のフッター
========================================*/
.l-footer {
  padding: 80px 0 0;
  text-align: center;
}
@media screen and (max-width: 1023px) {
  .l-footer {
    padding: 8.5333333333vw 0 0;
  }
}
@media screen and (max-width: 1023px) {
  .l-footer__logo {
    width: 51.8666666667vw;
    height: 8.6666666667vw;
    margin: auto;
  }
}
.l-footer__main {
  display: grid;
  align-items: center;
  background: linear-gradient(transparent 0, transparent 23px, #00a9d7 23px, #00a9d7 100%), url(../img/footer_wave.png) repeat-x;
  position: relative;
  background-size: cover, 92px;
  background-position: top left, top 1px left 0;
  height: 180px;
  margin-top: 35px;
  padding-top: 30px;
  z-index: 2;
}
@media screen and (max-width: 1023px) {
  .l-footer__main {
    background: linear-gradient(transparent 0, transparent 2.6666666667vw, #00a9d7 2.6666666667vw, #00a9d7 100%), url(../img/footer_wave.png) repeat-x;
    background-size: cover, 12.2666666667vw;
    height: 24vw;
    margin-top: 8vw;
    padding-top: 4vw;
  }
}
.l-footer__copyright small {
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 1023px) {
  .l-footer__copyright small {
    font-size: 2.4vw;
  }
}

/*========================================
  サイト共通のヘッダー
========================================*/
.l-header {
  position: relative;
  height: 750px;
}
@media screen and (max-width: 1023px) {
  .l-header {
    height: 122.6666666667vw;
  }
}
.l-header__inner {
  max-width: 1400px;
  height: inherit;
}
.l-header__bg-01, .l-header__bg-02 {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
.l-header__bg-01 {
  background: url(../img/mv_bg_01.webp) top -10px center/1440px 545px no-repeat;
  height: inherit;
}
@media screen and (max-width: 1023px) {
  .l-header__bg-01 {
    background: url(../img/mv_bg_01_sp.webp) top 16.8vw center/105.6vw 98.2666666667vw no-repeat;
  }
}
.l-header__bg-02 {
  background: url(../img/mv_bg_02.webp) top 88px center/1427px 522px no-repeat;
  height: inherit;
}
@media screen and (max-width: 1023px) {
  .l-header__bg-02 {
    background: url(../img/mv_bg_02_sp.webp) top 13.7333333333vw left 5.0666666667vw/98.2666666667vw 72vw no-repeat;
  }
}
.l-header__logo {
  position: absolute;
  top: 22px;
  left: 31px;
  width: 275px;
  height: 46px;
}
@media screen and (max-width: 1023px) {
  .l-header__logo {
    top: 5.7333333333vw;
    left: 5.7333333333vw;
    width: 34.5333333333vw;
    height: auto;
  }
}
.l-header__logo img {
  width: 100%;
}
.l-header__img-01 {
  position: absolute;
  top: 5px;
  right: 60px;
  left: 0;
  width: 390px;
  height: 485px;
  margin: auto;
}
@media (1023px < width <= 1300px) {
  .l-header__img-01 {
    width: 350px;
    height: auto;
  }
}
@media screen and (max-width: 1023px) {
  .l-header__img-01 {
    top: 16.9333333333vw;
    right: 0.2666666667vw;
    width: 44.4vw;
    height: 55.2vw;
  }
}
.l-header__img-02 {
  position: absolute;
  top: 303px;
  right: 0;
  left: 443px;
  width: 393px;
  height: 249px;
  margin: auto;
}
@media (1023px < width <= 1300px) {
  .l-header__img-02 {
    top: 282px;
    left: 337px;
    width: 300px;
    height: auto;
  }
}
@media screen and (max-width: 1023px) {
  .l-header__img-02 {
    top: 44.6666666667vw;
    right: initial;
    left: -4.6666666667vw;
    width: 51.7333333333vw;
    height: auto;
  }
}
.l-header__ttl {
  position: absolute;
  top: 468px;
  right: 175px;
  left: 0;
  width: 908px;
  height: 272px;
  margin: auto;
}
@media (1023px < width <= 1300px) {
  .l-header__ttl {
    top: 440px;
    right: 0;
    left: 0;
    width: 730px;
    height: auto;
  }
}
@media screen and (max-width: 1023px) {
  .l-header__ttl {
    top: 68.6666666667vw;
    right: 0;
    width: 76.5333333333vw;
    height: 31.6vw;
  }
}
.l-header__ttl img {
  width: 100%;
}
.l-header__txt {
  position: absolute;
  top: 43px;
  right: 0;
  left: 591px;
  width: 334px;
  height: 72px;
  margin: auto;
}
@media screen and (max-width: 1023px) {
  .l-header__txt {
    top: 6.1333333333vw;
    right: 0;
    left: 43.0666666667vw;
    width: 39.8666666667vw;
    height: 8.5333333333vw;
  }
}
.l-header__txt img {
  width: 100%;
}
.l-header__date {
  position: absolute;
  top: 498px;
  right: 0;
  left: 1023px;
  width: 223px;
  height: 227px;
  margin: auto;
}
@media (width <= 1300px) {
  .l-header__date {
    top: initial;
    bottom: 0;
    right: 0;
    left: 0;
    width: 300px;
    height: auto;
  }
}
@media screen and (max-width: 1023px) {
  .l-header__date {
    bottom: 4.5333333333vw;
    left: 1.7333333333vw;
    width: 56.8vw;
    height: 14.6666666667vw;
  }
}
.l-header__date img {
  width: 100%;
}

/*========================================
  ページ
========================================*/
.l-page {
  overflow: hidden;
}

/*========================================
  inner
========================================*/
.l-inner {
  width: min(100% - var(--inner-pd), var(--inner-w));
  margin-right: auto;
  margin-left: auto;
}

/*========================================
  ボタン
========================================*/
/*========================================
  container
========================================*/
.c-container, .c-container--s {
  width: 1000px;
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .c-container--full {
    padding-right: 10px;
    padding-left: 10px;
  }
}
.c-container--s {
  width: 900px;
}
@media screen and (max-width: 767px) {
  .c-container, .c-container--s {
    padding-right: 10px;
    padding-left: 10px;
  }
}

/*========================================
  アイコン
========================================*/
/*========================================
  lead
========================================*/
.p-lead {
  padding: 66px 0 58px;
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.7;
}
@media screen and (max-width: 1023px) {
  .p-lead {
    padding: 8vw 0 10.6666666667vw;
    font-size: 2.9333333333vw;
  }
}

/*========================================
  opening-bg
========================================*/
.p-opening-bg {
  display: grid;
  place-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #cbe8f9;
  z-index: 100;
  pointer-events: none;
}

/*========================================
  section
========================================*/
.p-section {
  background: url("../img/wave.png") top left repeat-x, url("../img/wave_rev.png") bottom left repeat-x, url("../img/dots.png") repeat, linear-gradient(rgba(203, 232, 249, 0.6) 0%, rgba(203, 232, 249, 0.6) 100%);
}
@media screen and (max-width: 1023px) {
  .p-section {
    background-size: 12.2666666667vw, 12.2666666667vw;
  }
}
.p-section__inner {
  display: grid;
  position: relative;
  padding: 97px 0;
}
@media screen and (max-width: 1023px) {
  .p-section__inner {
    padding: 16.2666666667vw 0 15.3333333333vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section__img {
    grid-row: 1;
  }
}
.p-section__img img {
  width: 100%;
}
@media screen and (max-width: 1023px) {
  .p-section__body {
    grid-row: 2;
  }
}
@media screen and (min-width: 1024px) {
  .p-section__num {
    width: 157px;
    height: 186px;
    margin: 0 auto 53px;
  }
}
@media screen and (max-width: 1023px) {
  .p-section__num {
    position: absolute;
    top: -2.2666666667vw;
    left: 2vw;
    width: 20.9333333333vw;
    height: 24.8vw;
    z-index: 2;
  }
}
.p-section__num img {
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .p-section__num img {
    position: relative;
    left: -32px;
  }
}
.p-section__lead {
  font-size: 2.4rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 6px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #dc4380;
}
@media screen and (max-width: 1023px) {
  .p-section__lead {
    font-size: 4vw;
    text-underline-offset: 0.8vw;
  }
}
.p-section__ttl {
  margin-top: 10px;
  font-size: 3.7rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-section__ttl {
    margin-top: 1.3333333333vw;
    font-size: 6vw;
  }
}
.p-section__ttl .line {
  display: inline-block;
  position: relative;
  z-index: 2;
}
.p-section__ttl .line:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  border-radius: 100vmax;
  background-color: #ffe100;
  width: 100%;
  height: 15px;
  z-index: -1;
}
@media screen and (max-width: 1023px) {
  .p-section__ttl .line:before {
    height: 2vw;
  }
}
@media screen and (min-width: 1024px) {
  .p-section__ttl .line-pc {
    display: inline-block;
    position: relative;
    z-index: 2;
  }
  .p-section__ttl .line-pc:before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    border-radius: 100vmax;
    background-color: #ffe100;
    width: 100%;
    height: 15px;
    z-index: -1;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1023px) {
  .p-section__ttl .line-pc:before {
    height: 2vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section__ttl .line-sp {
    display: inline-block;
    position: relative;
    z-index: 2;
  }
  .p-section__ttl .line-sp:before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    border-radius: 100vmax;
    background-color: #ffe100;
    width: 100%;
    height: 15px;
    z-index: -1;
  }
}
@media screen and (max-width: 1023px) and (max-width: 1023px) {
  .p-section__ttl .line-sp:before {
    height: 2vw;
  }
}
.p-section__txt {
  margin-top: 17px;
  line-height: 1.46;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-section__txt {
    margin-top: 4.6666666667vw;
    letter-spacing: 0.02em;
  }
}
.p-section__note {
  margin-top: 17px;
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.46;
  letter-spacing: 0.05em;
  color: #e44982;
}
.p-section__note:before {
  content: "★";
}
.p-section__dl {
  display: grid;
  gap: 9px;
  margin-top: 26px;
}
@media screen and (max-width: 1023px) {
  .p-section__dl {
    gap: 2vw;
    margin-top: 4vw;
  }
}
.p-section__dl > div {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  line-height: 1.45;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1023px) {
  .p-section__dl > div {
    grid-template-columns: 18.6666666667vw 1fr;
    gap: 2.6666666667vw;
    font-size: 3.3333333333vw;
    line-height: 1.4;
  }
}
.p-section__qr {
  margin-top: 20px;
}
@media screen and (min-width: 1024px) {
  .p-section__qr {
    margin-left: 100px;
    pointer-events: none;
  }
}
@media screen and (max-width: 1023px) {
  .p-section__qr {
    width: 64vw;
    height: 12.6666666667vw;
    margin: 3.6vw auto 0;
  }
}
@media screen and (max-width: 1023px) {
  .p-section__qr img {
    width: 100%;
  }
}
.p-section.p-section--01 .p-section__inner {
  grid-template-columns: 550px 1fr;
  padding-left: 80px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--01 .p-section__inner {
    grid-template-columns: 1fr;
    gap: 8vw;
    padding-left: 0;
  }
}
.p-section.p-section--01 .p-section__inner:before {
  content: "";
  display: block;
  position: absolute;
  top: -156px;
  left: 73px;
  background: url("../img/deco_01.svg") no-repeat;
  background-size: contain;
  width: 133px;
  height: 136px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--01 .p-section__inner:before {
    top: -12vw;
    right: -4.6666666667vw;
    left: initial;
    background: url("../img/deco_01_sp.svg") no-repeat;
    background-size: contain;
    width: 14.4vw;
    height: 15.6vw;
  }
}
.p-section.p-section--01 .p-section__img {
  padding-top: 20px;
  margin-left: -50px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--01 .p-section__img {
    padding-top: 0;
    margin-left: -2.6666666667vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--01 .p-section__ttl {
    margin-right: -5.3333333333vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--01 .p-section__txt {
    margin-right: -2.6666666667vw;
  }
}
.p-section.p-section--02 {
  background: #fff;
}
.p-section.p-section--02 .p-section__inner {
  grid-template-columns: 1fr 492px;
  gap: 50px;
  padding: 67px 0 40px;
  padding-right: 85px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__inner {
    grid-template-columns: 1fr;
    gap: 6vw;
    padding: 7.3333333333vw 0 6.6666666667vw;
    padding-right: 0;
  }
}
.p-section.p-section--02 .p-section__inner:before {
  content: "";
  display: block;
  position: absolute;
  top: -25px;
  right: -45px;
  background: url("../img/deco_02.svg") no-repeat;
  background-size: contain;
  width: 88px;
  height: 163px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__inner:before {
    top: initial;
    bottom: -2.9333333333vw;
    right: -7.0666666667vw;
    left: initial;
    background: url("../img/deco_02_sp.svg") no-repeat;
    background-size: contain;
    width: 10.8vw;
    height: 19.2vw;
  }
}
.p-section.p-section--02 .p-section__inner:after {
  content: "";
  display: block;
  position: absolute;
  top: 289px;
  left: -64px;
  background: url("../img/deco_03.svg") no-repeat;
  background-size: contain;
  width: 116px;
  height: 240px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__inner:after {
    top: 35.4666666667vw;
    left: -4.5333333333vw;
    background: url("../img/deco_03_sp.svg") no-repeat;
    background-size: contain;
    width: 11.7333333333vw;
    height: 21.7333333333vw;
  }
}
@media screen and (min-width: 768px) {
  .p-section.p-section--02 .p-section__img {
    grid-row: 1;
    grid-column: 1;
  }
}
@media screen and (min-width: 768px) {
  .p-section.p-section--02 .p-section__body {
    grid-row: 1;
    grid-column: 2;
  }
}
.p-section.p-section--02 .p-section__body:after {
  content: "";
  display: block;
  position: absolute;
  top: 186px;
  right: 34px;
  background: url("../img/illust_human_01.svg") no-repeat;
  background-size: contain;
  width: 174px;
  height: 150px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__body:after {
    background: url("../img/illust_human_01_sp.svg") no-repeat;
    top: 85.4666666667vw;
    right: -4vw;
    width: 23.2vw;
    height: 20vw;
  }
}
@media screen and (min-width: 1024px) {
  .p-section.p-section--02 .p-section__num {
    margin-bottom: 63px;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__num {
    top: 4vw;
  }
}
@media screen and (min-width: 1024px) {
  .p-section.p-section--02 .p-section__img {
    margin-top: -40px;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__img {
    width: 72.5333333333vw;
    height: 84.8vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--02 .p-section__img img {
    position: relative;
    left: 11.4666666667vw;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 {
    background: url("../img/wave.png") top left/12.2666666667vw repeat-x, url("../img/wave_rev.png") bottom left/12.2666666667vw repeat-x, url("../img/section03_img_sp.webp") top 13.0666666667vw right 5.3333333333vw/48.5333333333vw 114.2666666667vw no-repeat, url("../img/dots.png") repeat, linear-gradient(rgba(203, 232, 249, 0.6) 0%, rgba(203, 232, 249, 0.6) 100%);
  }
}
.p-section.p-section--03 .p-section__inner {
  grid-template-columns: 448px 1fr;
  padding-bottom: 130px;
  padding-left: 80px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 .p-section__inner {
    grid-template-columns: 1fr;
    gap: 8vw;
    padding-bottom: 16vw;
    padding-left: 0;
    overflow: hidden;
  }
}
.p-section.p-section--03 .p-section__inner:before {
  content: "";
  display: block;
  position: absolute;
  bottom: -116px;
  left: 173px;
  background: url("../img/deco_04.svg") no-repeat;
  background-size: contain;
  width: 84px;
  height: 134px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 .p-section__inner:before {
    display: none;
  }
}
.p-section.p-section--03 .p-section__img {
  position: absolute;
  top: 100px;
  right: 88px;
  width: 546px;
  height: 857px;
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 .p-section__img {
    display: none;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 .p-section__body {
    width: 76%;
    margin-top: 35.4666666667vw;
  }
}
@media screen and (min-width: 1024px) {
  .p-section.p-section--03 .p-section__num {
    margin: 0 auto 68px;
  }
}
@media screen and (max-width: 1023px) {
  .p-section.p-section--03 .p-section__num {
    top: 11.0666666667vw;
  }
}
@media screen and (min-width: 1024px) {
  .p-section.p-section--03 .p-section__num img {
    left: 20px;
  }
}

/*========================================
 * hidden
 *
 * クラス : u-hidden-{MQ}
========================================*/
@media screen and (max-width: 767px) {
  .u-hidden-ltSP {
    display: none;
  }
}
@media screen and (max-width: 1023px) {
  .u-hidden-ltTAB {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .u-hidden-gtTAB {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .u-hidden-gtPC {
    display: none;
  }
}

/*========================================
 * スクリーンリーダーテキスト
========================================*/
.screen-reader-text,
.u-screen-reader {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}