@charset "UTF-8";
@font-face {
  font-family: title;
  font-display: swap;
  src: url("./assets/font/FOT-RODINNTLGPRO-EB.otf") format("opentype"); }
:root {
  --font-mincho: "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "MS P明朝", "MS Mincho", serif; }

html {
  scroll-behavior: smooth;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif; }

body {
  background-color: #eff7f9;
  /* ハンバーガーメニュー展開時のスクロール禁止 */ }
  body.no-scroll {
    overflow: hidden !important;
    touch-action: none;
    position: fixed;
    width: 100vw; }

a:active {
  color: unset; }

a:visited {
  color: unset; }

a:focus {
  outline: none; }

a {
  text-decoration: none; }

.sp {
  display: none; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0; }

header .hamburger {
  display: none; }
header nav {
  position: fixed;
  top: 10vh;
  left: 1em;
  z-index: 1000; }
  header nav ul {
    display: flex;
    flex-direction: column;
    row-gap: 1.5em;
    padding: 0;
    margin: 0; }
    header nav ul li {
      color: #1b1464;
      list-style: none; }
      header nav ul li a {
        display: block;
        position: relative;
        color: #1b1464;
        background-color: #fff;
        border-radius: 999px;
        font-weight: bold;
        font-size: 12px;
        padding: 10px 3em 10px 1em;
        transition: .2s;
        box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1); }
        header nav ul li a:hover, header nav ul li a.active {
          color: #fff;
          background-color: #1b1464; }
          header nav ul li a:hover::after, header nav ul li a.active::after {
            border-top: 2px solid #fff;
            border-right: 2px solid #fff; }
        header nav ul li a::after {
          position: absolute;
          content: "";
          display: inline-block;
          width: 8px;
          height: 8px;
          right: 1em;
          top: 50%;
          transform: translateY(-50%) rotate(45deg);
          border-top: 2px solid #1b1464;
          border-right: 2px solid #1b1464; }
header .mv {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  height: 75vh;
  min-height: 530px;
  max-height: 550px; }
  header .mv .mv-content {
    width: 95%;
    max-width: 1200px;
    margin: 0 auto; }
    header .mv .mv-content .site-title {
      position: absolute;
      top: 25%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 10;
      width: 90%;
      margin: 0 auto; }
      header .mv .mv-content .site-title img {
        width: 100%;
        max-width: 750px;
        height: auto;
        margin: 0 auto; }
    header .mv .mv-content .phone-img {
      position: absolute;
      top: 30vh;
      left: 50%;
      transform: translate(75%, -50%);
      z-index: 5; }
      header .mv .mv-content .phone-img img {
        width: 100%;
        max-width: 300px;
        height: auto; }
    header .mv .mv-content .mv-label {
      position: absolute;
      top: 55%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 10; }
      header .mv .mv-content .mv-label img {
        width: 100%;
        height: 60px;
        object-fit: contain; }
        header .mv .mv-content .mv-label img.mv-label-1 {
          position: relative;
          right: 35%;
          top: 15px; }
        header .mv .mv-content .mv-label img.mv-label-2 {
          position: relative;
          left: 35%;
          bottom: 15px; }
    header .mv .mv-content .people {
      position: absolute;
      bottom: 0;
      left: 50%;
      z-index: 5; }
      header .mv .mv-content .people img {
        width: 100%;
        max-width: 500px;
        height: auto; }
    header .mv .mv-content .links {
      position: absolute;
      bottom: 30px;
      z-index: 10;
      display: flex;
      gap: 20%;
      justify-content: center;
      align-items: end;
      left: 50%;
      transform: translate(-50%, 0%);
      width: 90%;
      max-width: 700px;
      margin: 0 auto; }
      header .mv .mv-content .links .pc-link {
        width: 50%; }
        header .mv .mv-content .links .pc-link > a {
          transition: .2s; }
          header .mv .mv-content .links .pc-link > a:hover {
            opacity: 0.6; }
        header .mv .mv-content .links .pc-link p {
          color: #140700;
          font-weight: bold;
          font-size: clamp(8px, 2vw, 14px);
          text-align: center;
          margin: 0;
          white-space: nowrap;
          text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff; }
          header .mv .mv-content .links .pc-link p a {
            color: #0000ff;
            text-decoration: underline; }
      header .mv .mv-content .links .sp-link .qr {
        margin-bottom: 10px; }
  header .mv .mv-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0; }
  header .mv .mv-wave {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-color: transparent;
    z-index: 1;
    pointer-events: none; }
    header .mv .mv-wave svg {
      width: 200%;
      height: 100%;
      animation: wave 6s linear infinite; }
      header .mv .mv-wave svg path {
        fill: #00ccff;
        opacity: 0.2;
        filter: brightness(1.2); }
@keyframes wave {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-50%); } }
main section#introduction {
  padding: 50px 0; }
  main section#introduction .contents {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto; }
    main section#introduction .contents h2 {
      margin-bottom: 50px; }
      main section#introduction .contents h2 img {
        width: 100%;
        max-width: 600px;
        height: auto;
        margin: 0 auto; }
    main section#introduction .contents > h3 {
      display: flex;
      flex-direction: column;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: bold;
      color: #2e2cd4;
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      text-align: center; }
      main section#introduction .contents > h3::after {
        content: "";
        display: block;
        width: 100%;
        max-width: 200px;
        height: 20px;
        background-image: url("./assets/images/wave-1.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 0 auto 20px auto; }
    main section#introduction .contents p {
      font-size: clamp(14px, 2vw, 16px);
      line-height: 1.8;
      color: #333;
      text-align: center; }
    main section#introduction .contents .box {
      max-width: calc(800px + 10%);
      margin: 0 auto;
      padding: 50px 0; }
      main section#introduction .contents .box h3 {
        position: relative;
        width: fit-content;
        margin: 0 auto;
        margin-bottom: 50px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: clamp(20px, 2vw, 25px);
        border-radius: 999px;
        line-height: 1.6;
        color: #fff;
        text-align: center;
        background-color: #2e2cd4;
        padding: 2px 3em; }
        main section#introduction .contents .box h3::before, main section#introduction .contents .box h3::after {
          content: "";
          display: block;
          position: absolute;
          height: 10px;
          width: 10px;
          border-radius: 50%;
          background-color: #fff; }
        main section#introduction .contents .box h3::before {
          left: 15px;
          top: 50%;
          transform: translateY(-50%); }
        main section#introduction .contents .box h3::after {
          right: 15px;
          top: 50%;
          transform: translateY(-50%); }
      main section#introduction .contents .box .bubbles {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: start;
        gap: 20px;
        padding-left: 10%; }
        main section#introduction .contents .box .bubbles .bubble {
          width: calc(100% / 3 - 20px);
          position: relative; }
          main section#introduction .contents .box .bubbles .bubble picture.bubble-image {
            width: 100%;
            max-width: 150px;
            margin: 0 auto;
            height: auto; }
          main section#introduction .contents .box .bubbles .bubble picture.bubble-text-image {
            position: absolute;
            top: 0;
            left: -20%;
            width: 50%;
            max-width: 150px;
            height: auto; }
        main section#introduction .contents .box .bubbles p {
          white-space: nowrap;
          margin-left: auto;
          font-size: clamp(14px, 2vw, 16px);
          line-height: 1.5;
          font-weight: bold;
          color: #333;
          text-align: center; }
      main section#introduction .contents .box .movie {
        margin-top: 50px;
        text-align: center; }
        main section#introduction .contents .box .movie iframe {
          width: 100%;
          max-width: 560px;
          height: 315px;
          border: none; }
main section#features {
  background-color: #2e2cd4; }
  main section#features .contents {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 0; }
    main section#features .contents h2 {
      color: #fcee21;
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: bold;
      text-align: center;
      margin-bottom: 50px; }
      main section#features .contents h2::after {
        content: "";
        display: block;
        width: 100%;
        max-width: 300px;
        height: 20px;
        background-image: url("./assets/images/wave-2.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 10px auto 20px auto; }
    main section#features .contents > p {
      color: #fff;
      font-size: clamp(14px, 2vw, 16px);
      line-height: 1.8;
      text-align: center;
      margin-bottom: 50px; }
    main section#features .contents .boxs {
      display: flex;
      flex-direction: column;
      row-gap: 50px; }
      main section#features .contents .boxs .box {
        background-image: url("./assets/images/feature-bg.png");
        background-repeat: repeat;
        background-size: 15px 15px;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: 800px;
        gap: 5%;
        margin: 0 auto;
        padding: 20px 5%;
        border-radius: 30px; }
        main section#features .contents .boxs .box.reverse {
          flex-direction: row-reverse; }
        main section#features .contents .boxs .box > img {
          max-height: 300px;
          width: auto;
          margin: 0 auto;
          object-fit: contain; }
        main section#features .contents .boxs .box .inner {
          width: 60%; }
          main section#features .contents .boxs .box .inner h3 {
            display: flex;
            align-items: center;
            gap: 10px;
            color: #000;
            font-size: clamp(20px, 2vw, 25px);
            font-weight: 900;
            margin-bottom: 20px; }
            main section#features .contents .boxs .box .inner h3.app-1::before {
              background-image: url("./assets/images/feature-icon-1.svg"); }
            main section#features .contents .boxs .box .inner h3.app-2::before {
              background-image: url("./assets/images/feature-icon-2.svg"); }
            main section#features .contents .boxs .box .inner h3.app-3::before {
              background-image: url("./assets/images/feature-icon-3.svg"); }
            main section#features .contents .boxs .box .inner h3::before {
              content: "";
              display: block;
              background-repeat: no-repeat;
              background-position: center;
              background-size: contain;
              height: 50px;
              width: 50px; }
          main section#features .contents .boxs .box .inner > p {
            font-size: clamp(14px, 2vw, 16px);
            line-height: 1.5;
            text-align: justify; }
main section#usage {
  background-image: url("./assets/images/usage-bg.png");
  background-repeat: repeat;
  background-size: 20px 20px;
  padding: 100px 0 0 0; }
  main section#usage .contents {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto; }
    main section#usage .contents h2 {
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      color: #2e2cd4;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: bold;
      text-align: center; }
      main section#usage .contents h2::after {
        content: "";
        display: block;
        width: 100%;
        max-width: 300px;
        height: 20px;
        background-image: url("./assets/images/wave-3.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 0 auto;
        margin-top: 10px; }
    main section#usage .contents > p {
      color: #000;
      font-size: clamp(14px, 2vw, 16px);
      line-height: 1.5;
      text-align: center;
      margin-bottom: 50px; }
      main section#usage .contents > p span {
        color: #f76800;
        font-weight: bold; }
      main section#usage .contents > p.sub-caption {
        font-weight: 700;
        font-size: clamp(16px, 2vw, 25px);
        line-height: 1.5;
        text-align: center;
        margin-bottom: 30px; }
    main section#usage .contents .usage-accordions .box {
      max-width: 800px;
      margin: 0 auto;
      margin-bottom: 50px; }
      main section#usage .contents .usage-accordions .box > h3 {
        position: relative;
        z-index: 10;
        cursor: pointer;
        background-color: #2e2cd4;
        color: #fff;
        font-size: clamp(30px, 3vw, 50px);
        font-weight: 100;
        font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
        padding: 1em 2em;
        padding-right: 3em;
        cursor: pointer;
        border-radius: 10px; }
        main section#usage .contents .usage-accordions .box > h3 .line {
          position: absolute;
          top: 50%;
          right: 1.2em;
          width: 0.8em;
          height: 5px;
          background-color: #fff;
          border-radius: 1px;
          transition: transform 0.3s ease, opacity 0.3s ease;
          transform-origin: center center; }
        main section#usage .contents .usage-accordions .box > h3 .horizontal {
          transform: translateY(-50%) rotate(0deg); }
        main section#usage .contents .usage-accordions .box > h3 .vertical {
          transform: translateY(-50%) rotate(90deg); }
        main section#usage .contents .usage-accordions .box > h3.active .horizontal {
          transform: translateY(-50%) rotate(180deg); }
        main section#usage .contents .usage-accordions .box > h3.active .vertical {
          transform: translateY(-50%) rotate(-180deg); }
      main section#usage .contents .usage-accordions .box .accordion-content {
        position: relative;
        z-index: 5;
        top: -10px;
        background-color: #fff;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
        will-change: max-height, opacity;
        padding: 0;
        border-radius: 0 0 15px 15px; }
        main section#usage .contents .usage-accordions .box .accordion-content.active {
          max-height: unset;
          opacity: 1;
          padding: 60px 5% 50px 5%; }
        main section#usage .contents .usage-accordions .box .accordion-content > h4 span {
          display: block;
          font-size: clamp(20px, 2vw, 25px);
          margin-bottom: 10px; }
        main section#usage .contents .usage-accordions .box .accordion-content > h4 img {
          max-height: 50px;
          width: auto;
          object-fit: contain; }
        main section#usage .contents .usage-accordions .box .accordion-content > h4::after {
          content: "";
          display: block;
          width: 100%;
          max-width: 100%;
          height: 20px;
          background-image: url("./assets/images/wave-4.svg");
          background-repeat: no-repeat;
          background-position: center;
          margin: 10px auto 30px auto; }
        main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-2::after {
          background-image: url("./assets/images/wave-5.svg"); }
        main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-3::after {
          background-image: url("./assets/images/wave-6.svg"); }
        main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-4::after {
          background-image: url("./assets/images/wave-7.svg"); }
        main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-2, main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-3, main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-4 {
          margin-top: 80px; }
        main section#usage .contents .usage-accordions .box .accordion-content > h4.stage-4 img {
          max-height: 100px;
          width: auto;
          object-fit: contain; }
        main section#usage .contents .usage-accordions .box .accordion-content .inner {
          display: flex; }
          main section#usage .contents .usage-accordions .box .accordion-content .inner .app-image {
            width: 50%;
            max-height: 600px;
            margin: 0 auto;
            object-fit: contain; }
          main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text {
            width: 50%;
            padding-left: 2em; }
            main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h5 {
              font-size: clamp(16px, 2vw, 28px);
              line-height: 1.2;
              font-weight: bold;
              color: #000;
              margin: 0;
              margin-bottom: 10px; }
            main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h6 {
              display: flex;
              align-items: center;
              gap: 1px;
              margin: 0;
              font-size: clamp(14px, 2vw, 18px);
              font-weight: bold;
              color: #000;
              margin-bottom: 10px; }
              main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h6::before {
                content: "";
                display: block;
                width: 1em;
                height: 1em;
                background-color: #000;
                border-radius: 50%; }
            main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul {
              display: flex;
              max-width: 430px;
              flex-wrap: wrap;
              list-style: none;
              padding: 0;
              margin: 0;
              gap: 10px; }
              main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul li {
                list-style: none;
                display: flex;
                flex-direction: column;
                align-items: center;
                max-width: 70px; }
                main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul li img {
                  object-fit: contain; }
                main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul li span {
                  font-size: clamp(8px, 1.5vw, 10px);
                  font-weight: bold; }
        main section#usage .contents .usage-accordions .box .accordion-content .how-to-box {
          display: flex;
          gap: 5%;
          align-items: center;
          padding: 30px 0; }
          main section#usage .contents .usage-accordions .box .accordion-content .how-to-box > img {
            max-height: 250px;
            width: 50%;
            object-fit: contain;
            object-position: center; }
          main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text {
            position: relative;
            width: 50%;
            padding-left: calc(80px + 1em); }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text h4 {
              font-size: clamp(20px, 2vw, 25px);
              font-weight: bold;
              color: #000;
              margin: 0;
              margin-bottom: 15px; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text::before {
              position: absolute;
              top: 0;
              left: 0;
              content: "";
              display: block;
              background-image: url("./assets/images/how-to-01.png");
              background-repeat: no-repeat;
              background-position: center;
              background-size: contain;
              height: 60px;
              width: 85px;
              flex-shrink: 0; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text .how-to-desc {
              width: 100%;
              padding-left: 1em; }
          main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-2 {
            border-top: dotted 5px #2e2cd4;
            border-bottom: dotted 5px #2e2cd4; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-2 .text::before {
              background-image: url("./assets/images/how-to-02.png"); }
          main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-3 .text::before {
            background-image: url("./assets/images/how-to-03.png"); }
    main section#usage .contents .movie {
      margin: 50px 0;
      text-align: center; }
      main section#usage .contents .movie iframe {
        width: 100%;
        max-width: 560px;
        height: 315px;
        border: none; }
    main section#usage .contents .sp-link {
      max-width: 300px;
      margin: 0 auto;
      margin-bottom: 50px; }
      main section#usage .contents .sp-link a {
        transition: .2s; }
        main section#usage .contents .sp-link a:hover {
          filter: brightness(1.5); }
    main section#usage .contents > h3 img {
      max-height: 50px;
      width: auto;
      margin: 0 auto;
      margin-bottom: 10px; }
    main section#usage .contents .people-image {
      max-width: 500px;
      margin: 0 auto; }
main section#more {
  padding: 100px 0;
  background-color: #2e2cd4; }
  main section#more .contents {
    color: #fff;
    width: 90%;
    max-width: 1200px;
    margin: 0 auto; }
    main section#more .contents h2 {
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: 100;
      text-align: center;
      margin-bottom: 50px; }
      main section#more .contents h2::after {
        content: "";
        display: block;
        width: 100%;
        height: 20px;
        background-image: url("./assets/images/wave-8.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 0 auto;
        margin-top: 10px; }
    main section#more .contents .bubble {
      position: relative;
      background: #fff;
      color: #2e2cd4;
      border-radius: 999px;
      padding: 1em 2em;
      line-height: 1em;
      display: block;
      width: fit-content;
      margin: 0 auto;
      font-weight: bold; }
      main section#more .contents .bubble p {
        color: #2e2cd4;
        margin: 0; }
      main section#more .contents .bubble::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -10px;
        transform: translateX(-50%);
        width: 0;
        height: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-top: 10px solid #fff; }
    main section#more .contents > p {
      max-width: 500px;
      font-size: clamp(14px, 2vw, 16px);
      font-weight: 700;
      line-height: 1.5;
      text-align: left;
      margin: 40px auto 30px auto; }
    main section#more .contents a {
      display: flex;
      justify-content: center;
      align-items: center;
      max-width: 400px;
      margin: 0 auto;
      padding: 1.5em 10px;
      font-size: clamp(14px, 2vw, 16px);
      gap: 30px;
      background-color: #000;
      border: solid 1px #000;
      border-radius: 10px;
      transition: .2s; }
      main section#more .contents a::before {
        content: "";
        display: block;
        width: 30px;
        height: 25px;
        background-image: url("./assets/images/download-icon.svg");
        background-repeat: no-repeat;
        background-position: center; }
      main section#more .contents a:hover {
        background-color: #fff;
        color: #000; }
        main section#more .contents a:hover::before {
          background-image: url("./assets/images/download-icon-bk.svg"); }
    main section#more .contents small {
      display: block;
      max-width: 500px;
      margin: 0 auto;
      font-size: clamp(8px, 1vw, 12px);
      margin-top: 30px; }
      main section#more .contents small span {
        display: block;
        text-indent: -1em;
        padding-left: 1em; }
main section#if-house-floated {
  padding: 100px 0;
  background-color: #f0edd9; }
  main section#if-house-floated .contents {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto; }
    main section#if-house-floated .contents > img {
      max-width: 250px;
      width: 100%;
      height: auto;
      margin: 0 auto; }
    main section#if-house-floated .contents .subtitle {
      font-size: clamp(18px, 2vw, 20px);
      border-radius: 999px;
      color: #fff;
      text-align: center;
      margin: 30px auto;
      background-color: #035259;
      padding: 5px 1.5em;
      width: fit-content;
      font-weight: 500; }
    main section#if-house-floated .contents h2 {
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: 100;
      text-align: center;
      margin-bottom: 50px;
      color: #000; }
    main section#if-house-floated .contents > p {
      max-width: 500px;
      text-align: center;
      font-size: clamp(14px, 2vw, 16px);
      line-height: 1.5;
      margin: 0 auto 20px auto; }
      main section#if-house-floated .contents > p a {
        color: #0000ff;
        text-decoration: underline; }
    main section#if-house-floated .contents small {
      display: block;
      max-width: 500px;
      margin: 0 auto;
      font-size: clamp(8px, 1vw, 12px);
      margin-bottom: 30px;
      text-align: center;
      text-indent: -1em;
      padding-left: 1em; }
    main section#if-house-floated .contents .if-house-floated-accordions .box {
      max-width: 800px;
      margin: 0 auto 50px auto; }
      main section#if-house-floated .contents .if-house-floated-accordions .box > h3 {
        position: relative;
        z-index: 10;
        cursor: pointer;
        background-color: #035259;
        color: #fff;
        font-size: clamp(18px, 2.5vw, 25px);
        font-weight: 100;
        font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
        padding: 1.5em 2em;
        padding-right: 3em;
        border-radius: 10px; }
        main section#if-house-floated .contents .if-house-floated-accordions .box > h3 .line {
          position: absolute;
          top: 50%;
          right: 1.2em;
          width: 0.8em;
          height: 5px;
          background-color: #fff;
          border-radius: 1px;
          transition: transform 0.3s ease, opacity 0.3s ease;
          transform-origin: center center; }
        main section#if-house-floated .contents .if-house-floated-accordions .box > h3 .horizontal {
          transform: translateY(-50%) rotate(0deg); }
        main section#if-house-floated .contents .if-house-floated-accordions .box > h3 .vertical {
          transform: translateY(-50%) rotate(90deg); }
        main section#if-house-floated .contents .if-house-floated-accordions .box > h3.active .horizontal {
          transform: translateY(-50%) rotate(180deg); }
        main section#if-house-floated .contents .if-house-floated-accordions .box > h3.active .vertical {
          transform: translateY(-50%) rotate(-180deg); }
      main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content {
        position: relative;
        z-index: 5;
        top: -10px;
        background-color: #fff;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
        will-change: max-height, opacity;
        padding: 0;
        border-radius: 0 0 15px 15px; }
        main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content.active {
          max-height: unset;
          opacity: 1;
          padding: 40px 5% 40px 5%; }
        main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol {
          padding-left: 0;
          display: flex;
          flex-direction: column;
          gap: 15px; }
          main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li {
            list-style: none;
            padding-left: 0;
            position: relative;
            padding: 20px 1em;
            text-align: center; }
            main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li strong {
              display: block;
              font-weight: bold;
              font-size: 18px; }
            main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li span {
              position: absolute;
              top: -3px;
              left: -3px;
              background-color: #035259;
              color: #fff;
              padding: 5px 10px; }
            main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li.outline {
              border: solid 3px #98d5da; }
            main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li.step {
              border: solid 3px #98d5da;
              background-color: #98d5da; }
            main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li.arrow {
              padding: 0;
              color: #035259;
              font-size: 25px; }
        main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content hr {
          border: solid 1px #999;
          margin: 30px 0; }
        main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content h4 {
          margin-top: 20px; }
main section#faq {
  background-color: #fff; }
  main section#faq .contents {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 100px 0; }
    main section#faq .contents h2 {
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: 100;
      text-align: center;
      margin-bottom: 50px; }
      main section#faq .contents h2::after {
        content: "";
        display: block;
        width: 100%;
        max-width: 300px;
        height: 20px;
        background-image: url("./assets/images/wave-9.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 10px auto 20px auto; }
    main section#faq .contents .faq-accordions .box {
      max-width: 800px;
      margin: 0 auto;
      border-top: solid 1px #999; }
      main section#faq .contents .faq-accordions .box > h3 {
        position: relative;
        z-index: 10;
        cursor: pointer;
        color: #000;
        font-size: clamp(18px, 2.5vw, 25px);
        font-weight: bold;
        padding: 1em 2em 1em 40px;
        padding-right: 3em;
        border-radius: 10px; }
        main section#faq .contents .faq-accordions .box > h3 .line {
          position: absolute;
          top: 50%;
          right: 1.2em;
          width: 0.8em;
          height: 5px;
          background-color: #000;
          border-radius: 1px;
          transition: transform 0.3s ease, opacity 0.3s ease;
          transform-origin: center center; }
        main section#faq .contents .faq-accordions .box > h3 .horizontal {
          transform: translateY(-50%) rotate(0deg); }
        main section#faq .contents .faq-accordions .box > h3 .vertical {
          transform: translateY(-50%) rotate(90deg); }
        main section#faq .contents .faq-accordions .box > h3.active .horizontal {
          transform: translateY(-50%) rotate(180deg); }
        main section#faq .contents .faq-accordions .box > h3.active .vertical {
          transform: translateY(-50%) rotate(-180deg); }
        main section#faq .contents .faq-accordions .box > h3::before {
          content: "";
          display: block;
          position: absolute;
          left: 0;
          top: 50%;
          width: 30px;
          height: 30px;
          background-image: url("./assets/images/faq-q.svg");
          background-repeat: no-repeat;
          background-position: center;
          transform: translateY(-50%); }
      main section#faq .contents .faq-accordions .box .accordion-content {
        position: relative;
        z-index: 5;
        top: -10px;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
        will-change: max-height, opacity;
        padding: 0;
        border-radius: 0 0 15px 15px; }
        main section#faq .contents .faq-accordions .box .accordion-content.active {
          max-height: unset;
          opacity: 1;
          padding: 1em 5% 1em 40px; }
        main section#faq .contents .faq-accordions .box .accordion-content p {
          font-size: clamp(14px, 2vw, 16px);
          line-height: 1.5;
          color: #000;
          margin: 0; }
          main section#faq .contents .faq-accordions .box .accordion-content p a {
            color: #0000ff;
            text-decoration: underline; }
        main section#faq .contents .faq-accordions .box .accordion-content::before {
          content: "";
          display: block;
          position: absolute;
          left: 0;
          top: 2em;
          width: 30px;
          height: 30px;
          background-image: url("./assets/images/faq-a.svg");
          background-repeat: no-repeat;
          background-position: center;
          transform: translateY(-50%); }
main section#enquete {
  padding: 100px 0;
  background-color: #2e2cd4; }
  main section#enquete .contents {
    color: #fff;
    width: 90%;
    max-width: 1200px;
    margin: 0 auto; }
    main section#enquete .contents h2 {
      font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
      font-size: clamp(30px, 3vw, 50px);
      font-weight: 100;
      text-align: center;
      margin-bottom: 50px; }
      main section#enquete .contents h2::after {
        content: "";
        display: block;
        width: 100%;
        height: 20px;
        background-image: url("./assets/images/wave-10.svg");
        background-repeat: no-repeat;
        background-position: center;
        margin: 0 auto;
        margin-top: 10px; }
    main section#enquete .contents > p {
      max-width: 500px;
      font-size: clamp(14px, 2vw, 16px);
      font-weight: 500;
      line-height: 1.5;
      text-align: center;
      margin: 40px auto 30px auto; }
    main section#enquete .contents a {
      display: flex;
      justify-content: center;
      align-items: center;
      max-width: 400px;
      margin: 0 auto;
      padding: 1.5em 10px;
      font-size: clamp(14px, 2vw, 16px);
      gap: 30px;
      background-color: #000;
      border: solid 1px #000;
      border-radius: 10px;
      transition: .2s; }
      main section#enquete .contents a::before {
        content: "";
        display: block;
        width: 30px;
        height: 25px;
        background-image: url("./assets/images/enquete-icon.svg");
        background-repeat: no-repeat;
        background-position: center; }
      main section#enquete .contents a:hover {
        background-color: #fff;
        color: #000; }
        main section#enquete .contents a:hover::before {
          background-image: url("./assets/images/enquete-icon-bk.svg"); }
    main section#enquete .contents small {
      display: block;
      max-width: 500px;
      margin: 0 auto;
      font-size: clamp(8px, 1vw, 12px);
      margin-top: 30px; }
      main section#enquete .contents small span {
        display: block;
        text-indent: -1em;
        padding-left: 1em; }

footer {
  color: #000;
  padding: 20px 0 10px 0; }
  footer .contents {
    text-align: center; }
    footer .contents .box {
      width: 90%;
      max-width: 1200px;
      margin: 0 auto; }
      footer .contents .box h3 {
        font-size: clamp(16px, 2vw, 18px);
        line-height: 1.5;
        font-weight: 700;
        margin-bottom: 20px; }
      footer .contents .box img {
        width: 50px;
        height: 50px;
        margin: 0 auto;
        object-fit: contain; }
    footer .contents hr {
      height: 0.5px;
      width: 100%;
      background-color: #000;
      margin: 30px 0; }
    footer .contents p {
      font-size: clamp(12px, 1.5vw, 14px);
      line-height: 1.5;
      margin: 0;
      margin-bottom: 10px; }
    footer .contents a {
      text-decoration: underline; }
    footer .contents small {
      display: block;
      font-size: clamp(10px, 1.2vw, 12px);
      margin-top: 10px; }

@media screen and (max-width: 900px) {
  header {
    /* ハンバーガーメニュー */ }
    header .hamburger {
      background-color: #fff;
      box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
      display: flex;
      position: fixed;
      top: 20px;
      left: 20px;
      z-index: 2000;
      width: 48px;
      height: 48px;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 4px;
      padding: 0; }
    header .hamburger span {
      display: block;
      width: 25px;
      height: 4px;
      background: #2e2cd4;
      border-radius: 2px;
      transition: 0.3s; }
    header .hamburger.active span:nth-child(1) {
      transform: translateY(8px) rotate(45deg); }
    header .hamburger.active span:nth-child(2) {
      opacity: 0; }
    header .hamburger.active span:nth-child(3) {
      transform: translateY(-8px) rotate(-45deg); }
    header nav#globalNav {
      position: fixed;
      top: 0;
      left: 0;
      width: 100vw;
      height: 100vh;
      background: rgba(255, 255, 255, 0.98);
      z-index: 1500;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      transform: translateY(-100%);
      transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
    header nav#globalNav.open {
      transform: translateY(0); }
    header nav#globalNav ul {
      display: flex;
      flex-direction: column;
      gap: 2em;
      align-items: center;
      padding: 0; }
    header nav#globalNav ul li {
      opacity: 0;
      transform: translateX(-60px);
      transition: opacity 0.4s, transform 0.4s;
      width: 100%; }
    header nav#globalNav.open ul li {
      opacity: 1;
      transform: translateX(0); }
    header nav#globalNav.open ul li {
      /* アニメーション遅延をJSで付与 */ }
    header header nav {
      position: static; } }
@media screen and (max-width: 767px) {
  .pc {
    display: none; }

  .sp {
    display: block; }

  header .mv {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    height: 100vh;
    min-height: 650px;
    max-height: unset; }
    header .mv .mv-content .phone-img {
      position: absolute;
      top: 30vh;
      left: unset;
      right: 0;
      transform: translate(10%, -40%);
      z-index: 5; }
      header .mv .mv-content .phone-img img {
        max-width: 300px;
        height: auto; }
    header .mv .mv-content .mv-label {
      display: none; }
    header .mv .mv-content .mv-label-sp {
      position: absolute;
      top: 35%;
      left: 0%;
      transform: translate(15%, 0);
      width: 60%;
      max-width: 280px;
      z-index: 10; }
    header .mv .mv-content .people {
      position: absolute;
      bottom: 120px;
      left: 0;
      z-index: 5;
      width: 100%; }
      header .mv .mv-content .people img {
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
        height: auto; }
    header .mv .mv-content .links {
      display: none; }
    header .mv .mv-content .play-now-button {
      position: absolute;
      width: 100%;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 10; }
      header .mv .mv-content .play-now-button .date {
        margin-bottom: 10px; }
      header .mv .mv-content .play-now-button img {
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
        height: auto; }
      header .mv .mv-content .play-now-button a {
        transition: .2s; }
        header .mv .mv-content .play-now-button a:hover {
          filter: brightness(1.5); }

  main section#introduction .contents .box {
    max-width: calc(800px + 10%);
    margin: 0 auto;
    padding: 50px 0; }
    main section#introduction .contents .box .bubbles {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: start;
      gap: 20px;
      padding-left: 5%; }
      main section#introduction .contents .box .bubbles .bubble {
        width: calc(100% / 2 - 20px); }
        main section#introduction .contents .box .bubbles .bubble picture.bubble-text-image {
          position: absolute;
          top: 0;
          left: -20%;
          width: 50%;
          max-width: 150px;
          height: auto; }
      main section#introduction .contents .box .bubbles p {
        font-size: 10px; }
  main section#features .contents .boxs {
    display: flex;
    flex-direction: column;
    row-gap: 50px; }
    main section#features .contents .boxs .box {
      background-image: url("./assets/images/feature-bg.png");
      background-repeat: repeat;
      background-size: 15px 15px;
      display: flex;
      flex-direction: column; }
      main section#features .contents .boxs .box > img {
        max-height: 350px;
        width: auto;
        margin: 0 auto;
        object-fit: contain;
        margin-bottom: 30px; }
      main section#features .contents .boxs .box.reverse {
        flex-direction: column; }
      main section#features .contents .boxs .box .inner {
        width: 100%; }
  main section#usage {
    background-image: url("./assets/images/usage-bg.png");
    background-repeat: repeat;
    background-size: 20px 20px;
    padding: 100px 0 0 0; }
    main section#usage .contents {
      width: 90%;
      max-width: 1200px;
      margin: 0 auto; }
      main section#usage .contents .usage-accordions .box {
        margin-bottom: 30px; }
        main section#usage .contents .usage-accordions .box > h3 {
          position: relative;
          z-index: 10;
          cursor: pointer;
          background-color: #2e2cd4;
          color: #fff;
          font-size: clamp(30px, 3vw, 50px);
          font-weight: 100;
          font-family: title, "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "メイリオ", "ＭＳ ゴシック", sans-serif;
          padding: 1em 1em;
          padding-right: 3em;
          cursor: pointer;
          border-radius: 10px; }
          main section#usage .contents .usage-accordions .box > h3 .line {
            position: absolute;
            top: 50%;
            right: 1.2em;
            width: 0.8em;
            height: 5px;
            background-color: #fff;
            border-radius: 1px;
            transition: transform 0.3s ease, opacity 0.3s ease;
            transform-origin: center center; }
          main section#usage .contents .usage-accordions .box > h3 .horizontal {
            transform: translateY(-50%) rotate(0deg); }
          main section#usage .contents .usage-accordions .box > h3 .vertical {
            transform: translateY(-50%) rotate(90deg); }
          main section#usage .contents .usage-accordions .box > h3.active .horizontal {
            transform: translateY(-50%) rotate(180deg); }
          main section#usage .contents .usage-accordions .box > h3.active .vertical {
            transform: translateY(-50%) rotate(-180deg); }
        main section#usage .contents .usage-accordions .box .accordion-content {
          position: relative;
          z-index: 5;
          top: -10px;
          background-color: #fff;
          max-height: 0;
          opacity: 0;
          overflow: hidden;
          transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
          will-change: max-height, opacity;
          padding: 0;
          border-radius: 0 0 15px 15px; }
          main section#usage .contents .usage-accordions .box .accordion-content.active {
            max-height: unset;
            opacity: 1;
            padding: 60px 5% 50px 5%; }
          main section#usage .contents .usage-accordions .box .accordion-content > h4 span {
            display: block;
            font-size: clamp(18px, 2vw, 25px);
            margin-bottom: 10px; }
          main section#usage .contents .usage-accordions .box .accordion-content .inner {
            display: flex;
            flex-direction: column; }
            main section#usage .contents .usage-accordions .box .accordion-content .inner .app-image {
              width: 100%;
              max-height: 600px;
              margin: 0 auto;
              object-fit: contain; }
            main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text {
              width: 100%;
              padding-left: 0; }
              main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h5 {
                font-size: clamp(16px, 2vw, 28px);
                line-height: 1.2;
                font-weight: bold;
                color: #000;
                margin: 0;
                margin-top: 30px;
                margin-bottom: 10px; }
              main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h6 {
                display: flex;
                align-items: center;
                gap: 1px;
                margin: 0;
                font-size: clamp(14px, 2vw, 18px);
                font-weight: bold;
                color: #000;
                margin-bottom: 10px; }
                main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text h6::before {
                  content: "";
                  display: block;
                  width: 1em;
                  height: 1em;
                  background-color: #000;
                  border-radius: 50%; }
              main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul {
                display: flex;
                max-width: 430px;
                flex-wrap: wrap;
                list-style: none;
                padding: 0;
                margin: 0;
                gap: 5px; }
                main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul li {
                  list-style: none;
                  display: flex;
                  flex-direction: column;
                  align-items: center;
                  max-width: 70px; }
                  main section#usage .contents .usage-accordions .box .accordion-content .inner .inner-text ul li span {
                    font-size: clamp(8px, 1.5vw, 10px);
                    font-weight: bold; }
          main section#usage .contents .usage-accordions .box .accordion-content .how-to-box {
            display: flex;
            gap: 5%;
            flex-direction: column; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box > img {
              max-height: 300px;
              width: 100%;
              margin-top: 30px;
              object-fit: contain;
              object-position: center; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text {
              position: relative;
              width: 100%;
              padding-left: calc(50px + 1em); }
              main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text h4 {
                font-size: clamp(20px, 2vw, 25px);
                font-weight: bold;
                color: #000;
                margin: 0;
                margin-bottom: 15px; }
              main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text::before {
                position: absolute;
                top: 0;
                left: 0;
                content: "";
                display: block;
                background-image: url("./assets/images/how-to-01.png");
                background-repeat: no-repeat;
                background-position: center;
                background-size: contain;
                height: 40px;
                width: 50px;
                flex-shrink: 0; }
              main section#usage .contents .usage-accordions .box .accordion-content .how-to-box .text .how-to-desc {
                width: 100%;
                padding-left: 0; }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-2 {
              border-top: dotted 5px #2e2cd4;
              border-bottom: dotted 5px #2e2cd4; }
              main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-2 .text::before {
                background-image: url("./assets/images/how-to-02.png"); }
            main section#usage .contents .usage-accordions .box .accordion-content .how-to-box.how-to-box-3 .text::before {
              background-image: url("./assets/images/how-to-03.png"); }
  main section#if-house-floated .contents .if-house-floated-accordions .box > h3 {
    padding: 1em 2em 1em 15px; }
  main section#if-house-floated .contents .if-house-floated-accordions .box .accordion-content ol li span {
    position: unset;
    display: block;
    text-align: center;
    margin-bottom: 10px; } }

/*# sourceMappingURL=style.css.map */
