@charset "UTF-8";
/*--------------------
共通設定
----------------------*/
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

a {
  text-decoration: none;
  transition: .4s;
  color: #404040; }
  a:hover {
    text-decoration: none;
    color: #404040; }
  a.disabled {
    pointer-events: none;
    text-decoration: none; }
  a:visited {
    color: #404040; }

ul, ol {
  list-style: none; }

.pc {
  display: block; }
  @media screen and (max-width: 1080px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 1080px) {
    .sp {
      display: block; } }

body {
  overflow-x: visible; }

.fs-l-page {
  overflow: visible; }

p {
  margin: 0;
  padding: 0; }

.wrapper {
  margin: 0 auto !important; }

main {
  max-width: 100%; }

.mainBox {
  margin: 0 auto !important; }

footer {
  position: relative;
  z-index: 9999; }

.fadeIn {
  opacity: 0;
  transition: opacity 1s, transform 1s; }
  .fadeIn.visible {
    opacity: 1; }

/*--------------------------------------------*/
#future.lp_wrapper {
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0;
  letter-spacing: 0;
  color: #404040;
  font-size: 14px;
  text-align: left;
  font-family: hiragino-kaku-gothic-pron, sans-serif;
  font-weight: 300;
  font-style: normal;
  overflow-x: hidden;
  line-height: 1.5;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  max-width: 100%; }
  @media screen and (max-width: 600px) {
    #future.lp_wrapper {
      background: none; } }
#future .sidearea {
  top: 0;
  left: 0;
  height: 100vh;
  transition: .8s;
  width: calc(100%/2);
  position: fixed;
  background: #b7c1e5; }
  @media screen and (max-width: 1080px) {
    #future .sidearea {
      display: none; } }
  #future .sidearea .pc_kv {
    position: absolute;
    top: calc(50% + 60px);
    left: 50%;
    max-width: 80%;
    max-height: 80vh;
    width: auto;
    transform: translate(-50%, -50%); }
#future #box-content {
  position: relative;
  z-index: 1000;
  width: calc(100%/2);
  margin: 0 0 0 auto;
  /* drawer */ }
  @media screen and (max-width: 1080px) {
    #future #box-content {
      width: 100%;
      max-width: 700px;
      margin: 0 auto; } }
  #future #box-content #drawer {
    position: relative;
    margin: 0 auto;
    background: #ffffff; }
    #future #box-content #drawer .mv {
      margin: 0 auto;
      text-align: center; }
    #future #box-content #drawer .innerBox {
      max-width: 650px;
      width: 80%;
      margin: 10% auto; }
      @media screen and (max-width: 600px) {
        #future #box-content #drawer .innerBox {
          width: 90%;
          margin: 20% auto; } }
      #future #box-content #drawer .innerBox .main-txt {
        margin: 0 auto 10%; }
      #future #box-content #drawer .innerBox h1 {
        font-size: min(1.2em, 4vw);
        margin-bottom: 24px;
        line-height: 1.5;
        font-weight: 600; }
      #future #box-content #drawer .innerBox p {
        font-size: min(1em, 3.2vw);
        line-height: 1.8;
        margin-bottom: 24px;
        font-weight: 400; }
        #future #box-content #drawer .innerBox p .marker {
          font-size: 100%;
          background: linear-gradient(transparent 60%, #b7c1e5 60%); }
        #future #box-content #drawer .innerBox p .bold {
          font-weight: 600; }
      #future #box-content #drawer .innerBox .menu {
        padding: 32px 24px;
        border: 1px solid #404040;
        width: 80%;
        max-width: 350px;
        margin: 15% auto; }
        @media screen and (max-width: 600px) {
          #future #box-content #drawer .innerBox .menu {
            width: 90%;
            margin: 20% auto; } }
        #future #box-content #drawer .innerBox .menu .icon {
          background: #b7c1e5;
          position: relative;
          font-size: min(1em, 3.2vw);
          padding: 0.3em 2.0em 0.3em 3.5em;
          width: fit-content;
          border-radius: 50vh;
          margin: 0 auto 24px;
          color: #ffffff; }
          #future #box-content #drawer .innerBox .menu .icon::before {
            content: "";
            position: absolute;
            background: url("../images/SVG/icon.svg") no-repeat;
            top: 50%;
            left: 2.0em;
            transform: translateY(-50%);
            width: 14px;
            height: 14px;
            background-size: cover; }
            @media screen and (max-width: 600px) {
              #future #box-content #drawer .innerBox .menu .icon::before {
                width: 10px;
                height: 10px; } }
        #future #box-content #drawer .innerBox .menu h2 {
          font-size: min(1em, 3.2vw);
          font-weight: 400; }
        #future #box-content #drawer .innerBox .menu ul {
          padding-left: 1.0em;
          margin-bottom: 2.0em; }
          #future #box-content #drawer .innerBox .menu ul li {
            margin: 1.0em 0;
            padding-left: 1.2em;
            position: relative; }
            #future #box-content #drawer .innerBox .menu ul li::before {
              position: absolute;
              content: "・";
              left: 0; }
            #future #box-content #drawer .innerBox .menu ul li h3 {
              font-size: min(0.9em, 3vw);
              font-weight: 400; }
      #future #box-content #drawer .innerBox section {
        padding-top: 60px; }
        #future #box-content #drawer .innerBox section h2 {
          font-size: min(1.1em, 3.5vw);
          margin-bottom: 24px;
          position: relative;
          border-left: 5px solid #b7c1e5;
          border-bottom: 1px solid #b7c1e5;
          padding: 0.2em 0.5em; }
      #future #box-content #drawer .innerBox .box {
        margin: calc(10% - 60px) auto 10%;
        padding-top: 60px; }
        @media screen and (max-width: 600px) {
          #future #box-content #drawer .innerBox .box {
            margin: calc(15% - 60px) auto 10%; } }
        #future #box-content #drawer .innerBox .box img {
          margin-bottom: 24px; }
        #future #box-content #drawer .innerBox .box table {
          width: 80%;
          margin: 32px auto;
          border-collapse: collapse; }
          #future #box-content #drawer .innerBox .box table tr th, #future #box-content #drawer .innerBox .box table tr td {
            width: 50%;
            font-size: min(0.9em, 3vw);
            text-align: center;
            padding: 0.5em;
            border: 1px solid #e4e4e4;
            font-weight: 400; }
          #future #box-content #drawer .innerBox .box table tr th {
            background: #b8b8b8;
            color: #ffffff; }
      #future #box-content #drawer .innerBox h3 {
        font-size: min(1.1em, 3.5vw);
        margin-bottom: 1.0em; }
        #future #box-content #drawer .innerBox h3 .marker {
          font-size: 100%;
          background: linear-gradient(transparent 60%, #b7c1e5 60%); }
      #future #box-content #drawer .innerBox h4 {
        font-size: min(1em, 3.2vw);
        margin: 2.0em auto 0.5em;
        font-weight: 400; }
        #future #box-content #drawer .innerBox h4 span {
          font-size: 100%;
          border: 1px solid #404040;
          border-radius: 50vh;
          padding: 0.2em 1.0em 0.1em;
          line-height: 1.0; }
      #future #box-content #drawer .innerBox .list li {
        position: relative;
        padding-left: 1.0em;
        font-size: min(0.9em, 3vw); }
        #future #box-content #drawer .innerBox .list li::before {
          content: "・";
          position: absolute;
          left: 0; }
      #future #box-content #drawer .innerBox .check {
        margin: 24px auto; }
        #future #box-content #drawer .innerBox .check li {
          position: relative;
          display: flex;
          padding-left: 1.2em; }
          #future #box-content #drawer .innerBox .check li p {
            font-size: min(0.9em, 3vw);
            margin-bottom: 0; }
            #future #box-content #drawer .innerBox .check li p:nth-child(1) {
              width: 3.8em; }
            #future #box-content #drawer .innerBox .check li p:nth-child(2) {
              position: relative; }
              #future #box-content #drawer .innerBox .check li p:nth-child(2)::before {
                content: ":";
                position: absolute;
                left: -.5em; }
          #future #box-content #drawer .innerBox .check li::before {
            content: "";
            width: 11px;
            height: 11px;
            background: url("../images/SVG/check.svg") no-repeat;
            background-size: cover;
            left: 0;
            top: 6px;
            position: absolute; }
      #future #box-content #drawer .innerBox .itemBox {
        width: 100%;
        margin: 40px auto;
        border: 1px solid #404040;
        position: relative;
        padding: 40px 16px 8px; }
        #future #box-content #drawer .innerBox .itemBox h2 {
          text-align: center;
          border: none;
          background: #ffffff;
          width: fit-content;
          position: absolute;
          white-space: nowrap;
          top: -1.5em;
          left: 50%;
          transform: translateX(-50%);
          font-size: min(1em, 3.2vw);
          padding: 1.0em;
          line-height: 1.0; }
        #future #box-content #drawer .innerBox .itemBox .flexBox {
          display: flex;
          flex-wrap: wrap;
          justify-content: space-between;
          align-items: flex-end; }
          #future #box-content #drawer .innerBox .itemBox .flexBox div {
            width: calc(100%/2 - 2.5%);
            margin-bottom: 10%; }
            @media screen and (max-width: 600px) {
              #future #box-content #drawer .innerBox .itemBox .flexBox div {
                margin-bottom: 15%; } }
            #future #box-content #drawer .innerBox .itemBox .flexBox div dl dt, #future #box-content #drawer .innerBox .itemBox .flexBox div dl dd {
              font-size: min(0.8em, 2.9vw);
              line-height: 1.8;
              margin-bottom: 1.0em;
              padding-bottom: 1.0em; }
              #future #box-content #drawer .innerBox .itemBox .flexBox div dl dt span, #future #box-content #drawer .innerBox .itemBox .flexBox div dl dd span {
                font-size: 100%;
                margin: 0 0.5em; }
                @media screen and (max-width: 600px) {
                  #future #box-content #drawer .innerBox .itemBox .flexBox div dl dt span, #future #box-content #drawer .innerBox .itemBox .flexBox div dl dd span {
                    margin: 0 0.1em; } }
            #future #box-content #drawer .innerBox .itemBox .flexBox div dl dt {
              border-bottom: 1px solid #404040; }
            #future #box-content #drawer .innerBox .itemBox .flexBox div .btn {
              position: relative;
              display: block;
              width: 90%;
              margin: 0 auto;
              background: #b8b8b8;
              color: #ffffff;
              font-size: min(0.8em, 2.8vw);
              padding: 0.5em;
              text-align: center;
              border-radius: 0.5em; }
              #future #box-content #drawer .innerBox .itemBox .flexBox div .btn::after {
                position: absolute;
                content: "▶";
                top: 50%;
                right: 2.0em;
                transform: translateY(-50%);
                font-size: 70%; }
              #future #box-content #drawer .innerBox .itemBox .flexBox div .btn:hover {
                background: #404040; }
      #future #box-content #drawer .innerBox .summary {
        margin-top: 10%; }
        #future #box-content #drawer .innerBox .summary .box {
          margin-top: -60px; }
        #future #box-content #drawer .innerBox .summary a {
          display: block;
          border: 1px solid #404040;
          border-radius: .5em;
          max-width: 350px;
          text-align: center;
          font-size: min(1em, 3.2vw);
          padding: 1em 2.5em;
          letter-spacing: .1em;
          position: relative;
          margin: 0 auto; }
          #future #box-content #drawer .innerBox .summary a::after {
            content: '';
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 6px 0 6px 8px;
            border-color: transparent transparent transparent #404040;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            margin-left: 1em; }
          #future #box-content #drawer .innerBox .summary a:hover {
            background: #404040;
            color: #ffffff; }
            #future #box-content #drawer .innerBox .summary a:hover::after {
              border-color: transparent transparent transparent #ffffff; }
      #future #box-content #drawer .innerBox .related_features h4 {
        font-size: min(1.1em, 3.5vw); }
      #future #box-content #drawer .innerBox .related_features .flex_box {
        padding: 16px 8px;
        border-top: 1px solid #404040;
        border-bottom: 1px solid #404040; }
        #future #box-content #drawer .innerBox .related_features .flex_box a {
          padding: 1.0em;
          display: flex;
          align-items: center;
          justify-content: flex-start; }
          #future #box-content #drawer .innerBox .related_features .flex_box a:nth-child(n + 2) {
            border-top: 1px dashed #b8b8b8; }
          #future #box-content #drawer .innerBox .related_features .flex_box a img {
            width: 35%;
            margin-right: 5%; }
          #future #box-content #drawer .innerBox .related_features .flex_box a p {
            font-size: min(0.9em, 2.9vw); }
