@charset "UTF-8";
.home .contents {
  margin-top: 0; }
.home .panel > div {
  position: absolute; }
.home .sec_1 {
  width: 100%;
  height: 1450px;
  position: relative;
  overflow: hidden; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_1 {
      height: 680px; } }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_1 .main_visual {
      transform: scale(0.4) translateY(100px); } }
  .home .sec_1 .panel > div {
    opacity: 0;
    transition: 2s; }
    .home .sec_1 .panel > div.active {
      opacity: 1; }
  .home .sec_1 .panel::before {
    content: "";
    width: 100%;
    height: 100%;
    background: url("../img/home/bg_slash.jpg") repeat-y top center/100% auto;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 9;
    mix-blend-mode: color-burn; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .panel::before {
        width: 260%;
        height: 2000px;
        left: -80%;
        top: 0;
        background-size: 300% auto; } }
  .home .sec_1 .photo > div {
    position: absolute;
    z-index: 10; }
    .home .sec_1 .photo > div img {
      position: absolute;
      z-index: 0; }
      .home .sec_1 .photo > div img:not(.backup) {
        transition: 1s;
        left: 0;
        top: 0;
        z-index: 1;
        clip-path: inset(0 100% 0 0); }
    .home .sec_1 .photo > div.active img:not(.backup) {
      clip-path: inset(0 0 0 0); }
  .home .sec_1 .txt > div {
    position: absolute;
    z-index: 20;
    font-size: 4.2rem;
    font-weight: 600;
    color: #fff;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 0.6em 0.1em;
    line-height: 1;
    letter-spacing: 0.05em;
    white-space: nowrap;
    opacity: 0;
    transform: scale(0.3);
    transition: 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55); }
    .home .sec_1 .txt > div.active {
      opacity: 1;
      transform: scale(1); }
    .home .sec_1 .txt > div::before {
      content: "";
      width: 29.31px;
      height: 26px;
      position: absolute;
      bottom: -21px;
      left: 25%;
      clip-path: polygon(0 0, 100% 0%, 0% 100%); }
  .home .sec_1 .p_01 {
    left: calc(50% - 300px);
    top: 400px; }
  .home .sec_1 .p_02 {
    left: calc(50% - 150px);
    top: -50px; }
  .home .sec_1 .p_03 {
    left: calc(50% + 300px);
    top: 1000px; }
  .home .sec_1 .p_04 {
    left: calc(50% - 75px);
    top: 100px; }
  .home .sec_1 .p_05 {
    left: calc(50% - 150px);
    top: 250px; }
  .home .sec_1 .p_06 {
    left: calc(50% - 450px);
    top: 850px; }
  .home .sec_1 .p_07 {
    left: calc(50% + 450px);
    top: 700px; }
  .home .sec_1 .p_08 {
    left: calc(50% - 300px);
    top: 1150px; }
  .home .sec_1 .p_09 {
    left: calc(50% + 600px);
    top: 1000px; }
  .home .sec_1 .p_10 {
    left: calc(50% + 450px);
    top: 400px; }
  .home .sec_1 .p_11 {
    left: calc(50% - 450px);
    top: 250px; }
  .home .sec_1 .p_12 {
    left: calc(50% - 375px);
    top: 325px; }
  .home .sec_1 .p_13 {
    left: calc(50% + 75px);
    top: 100px; }
  .home .sec_1 .p_14 {
    left: calc(50% + 150px);
    top: 100px; }
  .home .sec_1 .p_15 {
    left: calc(50% + 600px);
    top: 400px; }
  .home .sec_1 .p_16 {
    left: calc(50% + 600px);
    top: 550px; }
  .home .sec_1 .p_17 {
    left: calc(50% + 375px);
    top: 850px; }
  .home .sec_1 .p_18 {
    left: calc(50% + 300px);
    top: 925px; }
  .home .sec_1 .p_19 {
    left: calc(50% + 300px);
    top: 1075px; }
  .home .sec_1 .p_20 {
    left: calc(50% - 370px);
    top: 1300px; }
  .home .sec_1 .img_01 {
    left: calc(50% - 300px);
    top: 400px; }
  .home .sec_1 .img_02 {
    left: calc(50% + 300px);
    top: 100px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .img_02 {
        left: calc(50% + 225px); } }
  .home .sec_1 .img_03 {
    left: calc(50% - 825px);
    top: 250px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .img_03 {
        left: calc(50% - 675px); } }
    .home .sec_1 .img_03 img {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 355px;
      display: block;
      top: auto; }
  .home .sec_1 .img_04 {
    left: calc(50% - 750px);
    top: 1000px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .img_04 {
        left: calc(50% - 600px); } }
  .home .sec_1 .img_05 {
    width: 400px;
    left: calc(50% + 200px);
    top: 1150px;
    overflow: hidden; }
    .home .sec_1 .img_05 img {
      position: absolute;
      left: auto !important;
      right: -400px;
      top: 0;
      width: 400px;
      display: block;
      transition: .8s;
      clip-path: inset(0 0 0 0) !important; }
    .home .sec_1 .img_05::before {
      content: "";
      background-color: #496188;
      width: 300px;
      height: 100%;
      position: absolute;
      right: 0;
      top: 0;
      z-index: -1; }
    .home .sec_1 .img_05.active img {
      right: 0; }
  .home .sec_1 .img_06 {
    left: calc(50% - 525px);
    top: 700px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .img_06 {
        left: calc(50% - 450px); } }
  .home .sec_1 .img_07 {
    left: calc(50% - 150px);
    top: 1300px; }
  .home .sec_1 .t_01 {
    background-color: #E60012;
    left: calc(50% - 675px);
    top: 100px; }
    .home .sec_1 .t_01::before {
      background-color: #E60012; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_01 {
        left: calc(50% - 450px); } }
  .home .sec_1 .t_02 {
    background-color: #E60012;
    left: calc(50% - 525px);
    top: 590px; }
    .home .sec_1 .t_02::before {
      background-color: #E60012; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_02 {
        left: calc(50% - 385px); } }
  .home .sec_1 .t_03 {
    background-color: #E60012;
    left: calc(50% + 337px);
    top: 1037px; }
    .home .sec_1 .t_03::before {
      background-color: #E60012; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_03 {
        left: calc(50% + 262px); } }
  .home .sec_1 .t_04 {
    background-color: #000;
    left: calc(50% - 15px);
    top: 287px; }
    .home .sec_1 .t_04::before {
      background-color: #000; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_04 {
        left: calc(50% - 150px); } }
  .home .sec_1 .t_05 {
    background-color: #000;
    left: calc(50% + 375px);
    top: 587px; }
    .home .sec_1 .t_05::before {
      background-color: #000; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_05 {
        left: calc(50% + 200px);
        top: 647px; } }
  .home .sec_1 .t_06 {
    background-color: #000;
    left: calc(50% - 675px);
    top: 900px; }
    .home .sec_1 .t_06::before {
      background-color: #000; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_06 {
        left: calc(50% - 450px); } }
  .home .sec_1 .t_07 {
    background-color: #000;
    left: calc(50% - 150px);
    top: 1037px; }
    .home .sec_1 .t_07::before {
      background-color: #000; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_1 .t_07 {
        left: calc(50% - 215px);
        top: 1187px; } }
.home .sec_ttl h2 {
  font-size: 14rem;
  font-family: "Albert Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  line-height: 1;
  text-indent: -0.08em;
  margin-bottom: 0.2em; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_ttl h2 {
      font-size: 18vw;
      line-height: 0.9; } }
.home .sec_ttl p {
  font-weight: 500;
  letter-spacing: 0.1em; }
.home .sec_2 {
  position: relative;
  width: 100%;
  z-index: 1;
  padding-bottom: 60px;
  margin-bottom: 105px;
  /* スライドの動き等速 */
  /* 画像のサイズ調整 */ }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_2 {
      padding-bottom: 40px; } }
  .home .sec_2::before {
    content: "";
    width: calc(50% + 500px);
    height: 100%;
    position: absolute;
    left: calc(50% - 500px);
    top: 0;
    background-color: #C0C8D3;
    z-index: -1; }
  .home .sec_2 .p_01 {
    left: calc(50% - 575px);
    top: -75px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .p_01 {
        left: 0;
        top: -30px; } }
  .home .sec_2 .p_02 {
    left: calc(50% - 725px);
    bottom: -225px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .p_02 {
        left: calc(100% - 60px);
        bottom: -60px;
        z-index: -2; } }
  .home .sec_2 .p_03 {
    left: calc(50% - 575px);
    bottom: -75px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .p_03 {
        left: calc(100% - 90px);
        bottom: -90px; } }
  .home .sec_2 .sec_ttl {
    padding: 60px 0 0 40px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .sec_ttl {
        padding: 40px 15px 0 15px; } }
    .home .sec_2 .sec_ttl h2 {
      position: relative;
      display: inline-block; }
      .home .sec_2 .sec_ttl h2 i {
        position: absolute;
        right: calc(-250px - 20px);
        top: calc(50% - 115px);
        width: 250px;
        height: 250px;
        z-index: -1; }
        @media only screen and (max-width: 768px), print and (min-width: 2cm) {
          .home .sec_2 .sec_ttl h2 i {
            right: -80px;
            top: calc(50% - 75px);
            width: 150px;
            height: 150px; } }
        .home .sec_2 .sec_ttl h2 i::before {
          content: "";
          width: 100%;
          height: 30%;
          position: absolute;
          left: 0;
          top: 35%;
          border-top: solid 1px #fff;
          border-bottom: solid 1px #fff; }
        .home .sec_2 .sec_ttl h2 i::after {
          content: "";
          width: 30%;
          height: 100%;
          position: absolute;
          left: 35%;
          top: 0;
          border-left: solid 1px #fff;
          border-right: solid 1px #fff; }
  .home .sec_2 .list_tag {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-top: 40px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .list_tag {
        gap: 6px;
        margin-top: 30px; } }
    .home .sec_2 .list_tag .tag {
      background-color: #fff;
      height: 40px;
      display: flex;
      align-items: center;
      padding: 0 1.8em 0.1em 0.5em;
      justify-content: center;
      font-size: 1.8rem;
      font-weight: 600;
      line-height: 1;
      letter-spacing: 0.06em;
      transition: .3s;
      cursor: pointer;
      clip-path: polygon(0 0, 100% 0, calc(100% - 24px) 100%, 0 100%); }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_2 .list_tag .tag {
          font-size: 1.3rem;
          height: 26px; } }
      .home .sec_2 .list_tag .tag.active {
        background-color: #E60012;
        color: #fff; }
  .home .sec_2 .swiper_top {
    transform: skewX(-30deg);
    height: 836px;
    width: 584px;
    position: absolute;
    bottom: 0;
    left: calc(50vw + 100px); }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .swiper_top {
        position: relative;
        left: auto;
        width: 100vw;
        height: auto;
        transform: skewX(0deg);
        margin-top: 30px;
        margin-left: -15px; } }
  .home .sec_2 .swiper-wrapper {
    transition-timing-function: ease-in-out; }
  .home .sec_2 .list_result__item {
    position: relative;
    width: 584px;
    height: 260px;
    clip-path: polygon(150px 0, 100% 0, calc(100% - 150px) 100%, 0% 100%);
    transform: skewX(30deg); }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .list_result__item {
        width: 100%;
        height: auto;
        clip-path: polygon(20% 0, 100% 0, calc(100% - 20%) 100%, 0% 100%);
        transform: skewX(0deg); } }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2 .list_result__item figure {
        clip-path: polygon(20% 0, 100% 0, calc(100% - 20%) 100%, 0% 100%); } }
    .home .sec_2 .list_result__item p {
      position: absolute;
      left: 0;
      bottom: 0;
      width: 100%;
      padding: 0.8em 2.5em 0.9em;
      background-color: rgba(0, 0, 0, 0.7);
      color: #fff;
      line-height: 1.4em; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_2 .list_result__item p {
          padding: 0.4em 2.5em 0.5em;
          background-color: rgba(0, 0, 0, 0.4);
          backdrop-filter: blur(12px);
          -webkit-backdrop-filter: blur(12px); } }
  .home .sec_2.comingsoon::after {
    content: "Coming soon...";
    white-space: nowrap;
    position: absolute;
    left: calc(75vw - 250px);
    top: calc(300px + 25%);
    font-size: 3rem;
    transform: translate(-50%, -50%);
    display: inline-block; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_2.comingsoon::after {
        font-size: 2.6rem;
        left: 50%;
        font-weight: 500;
        top: calc(220px + 25%); } }
  .home .sec_2.comingsoon .list_tag {
    opacity: 0.2; }
    .home .sec_2.comingsoon .list_tag .tag {
      pointer-events: none; }
  .home .sec_2.comingsoon .list_result__item {
    pointer-events: none;
    opacity: 0.2; }
.home .sec_3 {
  position: relative;
  z-index: 1;
  padding-bottom: 225px; }
  @media only screen and (max-width: 768px), print and (min-width: 2cm) {
    .home .sec_3 {
      padding-bottom: 65px; } }
  .home .sec_3 .p_01 {
    left: calc(50% + 50px);
    top: -75px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_01 {
        left: calc(100% - 180px + 15px);
        top: 30px; } }
  .home .sec_3 .p_02 {
    left: calc(50% + 575px);
    top: -150px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_02 {
        left: calc(100% - 60px + 15px);
        top: 0px; } }
  .home .sec_3 .p_03 {
    left: calc(50% + 650px);
    top: -225px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_03 {
        left: calc(100% - 30px + 15px);
        top: -30px; } }
  .home .sec_3 .p_04 {
    width: 800px;
    height: 555px;
    clip-path: polygon(0 0, 100% 0, calc(100% - 390px) 100%, 0% 100%);
    left: calc(50% - 880px);
    bottom: -225px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_04 {
        width: 320px;
        height: 222px;
        clip-path: polygon(0 0, 100% 0, calc(100% - 156px) 100%, 0% 100%);
        left: -45px;
        bottom: 0px; } }
  .home .sec_3 .p_05 {
    left: calc(50% - 575px);
    bottom: -75px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_05 {
        left: -15px;
        bottom: 60px; } }
  .home .sec_3 .p_06 {
    left: calc(50% + 575px);
    bottom: -150px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_06 {
        left: calc(100% - 60px + 15px);
        bottom: 30px; } }
  .home .sec_3 .p_07 {
    left: calc(50% + 500px);
    bottom: -225px; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .p_07 {
        left: calc(100% - 90px + 15px);
        bottom: 0px; } }
  .home .sec_3 .map_nav {
    margin-top: 50px;
    position: relative; }
    @media only screen and (max-width: 768px), print and (min-width: 2cm) {
      .home .sec_3 .map_nav {
        margin-top: 10px; } }
    .home .sec_3 .map_nav__inner {
      width: 1000px;
      height: 600px; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_3 .map_nav__inner {
          transform: scale(0.7) translateX(-52%); } }
    .home .sec_3 .map_nav figure {
      background-color: #f6f6f6;
      position: relative;
      z-index: 20; }
    .home .sec_3 .map_nav__item {
      position: absolute;
      width: 168px;
      display: flex;
      flex-direction: column;
      z-index: 30; }
      .home .sec_3 .map_nav__item::before {
        content: "";
        width: 1px;
        height: calc(100% - 20px);
        background-color: #000;
        position: absolute; }
      .home .sec_3 .map_nav__item .point {
        width: 40px;
        height: 40px;
        position: absolute;
        background-color: #E60012;
        border-radius: 100%; }
        .home .sec_3 .map_nav__item .point::before {
          content: "";
          width: 100%;
          height: 100%;
          background-color: #E60012;
          position: absolute;
          left: 0;
          top: 0;
          border-radius: 100%;
          animation: pointEffect 2.4s infinite; }
        .home .sec_3 .map_nav__item .point::after {
          content: "";
          width: 25%;
          height: 25%;
          background-color: #fff;
          position: absolute;
          left: 37.5%;
          top: 37.5%;
          border-radius: 100%; }
      .home .sec_3 .map_nav__item h3 {
        color: #E60012;
        font-size: 2.2rem;
        font-weight: 500;
        line-height: 1;
        letter-spacing: 0.06em;
        width: 140px;
        margin-bottom: 0.7em; }
      .home .sec_3 .map_nav__item nav {
        width: 140px; }
        .home .sec_3 .map_nav__item nav a {
          width: 100%;
          height: 30px;
          font-size: 1.5rem;
          display: flex;
          align-items: center;
          justify-content: space-between;
          padding: 0 10px;
          background-color: #fff;
          margin-bottom: 2px;
          border-top: solid 1px #000;
          transition: .3s; }
          @media only screen and (max-width: 768px), print and (min-width: 2cm) {
            .home .sec_3 .map_nav__item nav a {
              height: 50px;
              font-size: 1.6rem; } }
          .home .sec_3 .map_nav__item nav a i {
            width: 13px;
            height: 8px;
            display: block;
            position: relative;
            transition: .3s; }
            .home .sec_3 .map_nav__item nav a i::before {
              content: "";
              width: calc(100% - 6px);
              height: 2px;
              background-color: #000;
              position: absolute;
              left: 0;
              top: calc(50% - 1px);
              transition: .3s; }
            .home .sec_3 .map_nav__item nav a i::after {
              content: "";
              width: 7px;
              height: 100%;
              background-color: #000;
              position: absolute;
              right: 0;
              top: 0;
              clip-path: polygon(0 0, 100% 50%, 0% 100%);
              transition: .3s; }
          .home .sec_3 .map_nav__item nav a:hover {
            padding: 0 5px;
            border-color: #E60012; }
            .home .sec_3 .map_nav__item nav a:hover i {
              width: 18px; }
              .home .sec_3 .map_nav__item nav a:hover i::before {
                background-color: #E60012; }
              .home .sec_3 .map_nav__item nav a:hover i::after {
                background-color: #E60012; }
      .home .sec_3 .map_nav__item.hyogo {
        top: 53px;
        left: 311px;
        height: 306px;
        justify-content: flex-start;
        align-items: flex-start; }
        .home .sec_3 .map_nav__item.hyogo::before {
          top: 0px;
          right: 20px; }
        .home .sec_3 .map_nav__item.hyogo .point {
          right: 0;
          bottom: 0; }
        .home .sec_3 .map_nav__item.hyogo h3 {
          text-align: right; }
      .home .sec_3 .map_nav__item.kagawa {
        top: 364px;
        left: 356px;
        height: 185px;
        justify-content: flex-end;
        align-items: flex-end; }
        .home .sec_3 .map_nav__item.kagawa::before {
          top: 20px;
          left: 20px; }
        .home .sec_3 .map_nav__item.kagawa .point {
          left: 0;
          top: 0; }
      .home .sec_3 .map_nav__item.gifu {
        top: 250px;
        left: 629px;
        height: 224px;
        justify-content: flex-end;
        align-items: flex-end; }
        .home .sec_3 .map_nav__item.gifu::before {
          top: 20px;
          left: 20px; }
        .home .sec_3 .map_nav__item.gifu .point {
          left: 0;
          top: 0; }
  .home .sec_3.comingsoon .map_nav__inner {
    position: relative; }
    .home .sec_3.comingsoon .map_nav__inner::before {
      content: "";
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      width: 100%;
      height: 100%;
      background-color: rgba(246, 246, 246, 0.8);
      z-index: 100; }
    .home .sec_3.comingsoon .map_nav__inner::after {
      content: "Coming soon...";
      white-space: nowrap;
      position: absolute;
      display: inline-block;
      left: 50%;
      top: 50%;
      font-size: 3rem;
      transform: translate(-50%, -50%);
      z-index: 101; }
      @media only screen and (max-width: 768px), print and (min-width: 2cm) {
        .home .sec_3.comingsoon .map_nav__inner::after {
          font-size: 3.6rem;
          font-weight: 500;
          left: 55%; } }
  .home .sec_3.comingsoon .map_nav__item nav a {
    pointer-events: none; }
    .home .sec_3.comingsoon .map_nav__item nav a i {
      display: none; }

@keyframes pointEffect {
  0% {
    opacity: 0.6;
    transform: scale(0.3); }
  100% {
    opacity: 0;
    transform: scale(2); } }
@keyframes pointEffect {
  0% {
    opacity: 0.6;
    transform: scale(0.3); }
  100% {
    opacity: 0;
    transform: scale(2); } }
@keyframes showTextFromBottom {
  0% {
    opacity: 0;
    transform: translateY(100%); }
  100% {
    opacity: 1;
    transform: translateY(0px); } }
.textanimation span {
  display: inline-block; }

.textanimation > span {
  overflow: hidden; }

.textanimation > span > span {
  animation: showTextFromBottom 0.3s backwards; }

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