.elementor img {
  width: 100% !important; }

.fnt-Kaisei {
  font-family: "Kaisei Decol", serif;
  font-weight: 400;
  font-style: normal; }

.fnt-IBM {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 400;
  font-style: normal; }

body.home .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 100%; }

@media screen and (min-width: 768px) {
  body.home #wrapper {
    padding-top: 0; } }
main {
  overflow: hidden; }

#mainimage {
  position: relative;
  padding-right: 50px; }
  #mainimage .catch {
    z-index: 3;
    width: 36%;
    max-width: 500px;
    position: absolute;
    bottom: 34px;
    right: calc(50% + 80px); }
  #mainimage .copy {
    position: absolute;
    text-align: center;
    line-height: 1;
    top: 0;
    bottom: 0;
    right: 20px;
    z-index: 8; }
    #mainimage .copy span {
      font-size: 10px;
      letter-spacing: 0.24em;
      color: #707070;
      font-weight: 600; }
  #mainimage .photo {
    z-index: 1;
    justify-content: flex-end;
    flex-wrap: wrap;
    height: 768px;
    padding-top: 40px;
    box-sizing: border-box;
    align-content: flex-end;
    position: relative; }
    #mainimage .photo:before {
      content: '';
      background: url("../img/top/key_deco.png") no-repeat 0 0/100%;
      width: 270px;
      height: 195px;
      position: absolute;
      z-index: -1;
      bottom: -10px;
      right: -10px; }
    #mainimage .photo li {
      background-color: #000; }
      #mainimage .photo li img {
        opacity: 0.9; }
    #mainimage .photo span {
      font-family: "Kaisei Decol", serif;
      font-weight: 700;
      font-style: normal;
      font-size: 80px;
      line-height: 1;
      color: rgba(255, 255, 255, 0.65);
      position: absolute;
      bottom: -6px;
      left: -4px;
      z-index: 1;
      letter-spacing: 0; }
      @media screen and (max-width: 1330px) {
        #mainimage .photo span {
          font-size: 6vw; } }
    #mainimage .photo li {
      width: calc(50% + 25px);
      height: 344px;
      position: relative;
      overflow: hidden; }
      #mainimage .photo li:nth-child(1) {
        height: auto !important;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 50px;
        right: calc(50% + 25px); }
    @media screen and (max-width: 1330px) {
      #mainimage .photo li {
        height: 50%; } }
  @media screen and (max-width: 767px) {
    #mainimage {
      padding: 0; }
      #mainimage .catch {
        left: 26px;
        right: 26px;
        width: auto;
        top: 49vw; }
      #mainimage .copy {
        text-align: left;
        top: 89vw;
        right: 16px; }
        #mainimage .copy span {
          font-size: 8px; }
      #mainimage .photo {
        padding: 0;
        height: auto;
        display: block; }
        #mainimage .photo:before {
          width: 116px;
          height: 84px;
          right: 35px;
          bottom: -7px; }
        #mainimage .photo span {
          font-size: 8.4vw;
          bottom: 1vw;
          left: 0vw; }
        #mainimage .photo li {
          width: auto !important;
          height: auto !important;
          margin-right: 42px; }
          #mainimage .photo li:nth-child(1) {
            margin-right: 0;
            position: static; } }

#concept {
  position: relative;
  overflow: hidden;
  margin: 118px auto 0px; }
  #concept:before, #concept:after {
    content: '';
    position: absolute;
    top: 30px;
    bottom: 30px;
    left: -50px;
    width: 100px;
    background-color: #fff;
    border-radius: 15px; }
    @media screen and (max-width: 1250px) {
      #concept:before, #concept:after {
        display: none; } }
  #concept:after {
    left: auto;
    right: -50px; }
  #concept .wrap {
    z-index: 1; }
    #concept .wrap:before {
      content: '';
      position: absolute;
      top: 30px;
      left: 50px;
      right: 50px;
      bottom: 30px;
      background-color: #fff;
      border-radius: 15px;
      z-index: -1; }
      @media screen and (max-width: 767px) {
        #concept .wrap:before {
          left: 30px;
          right: 30px; } }
  #concept h2 {
    font-size: 24px;
    font-weight: 500;
    line-height: 70px;
    padding-bottom: 37px; }
    #concept h2 span {
      font-size: 56px;
      color: #e48cb3;
      letter-spacing: 0px;
      vertical-align: middle;
      line-height: 1;
      display: inline-block;
      padding: 0px 31px 20px 0px; }
  #concept .photo {
    width: 46%;
    max-width: 530px;
    position: absolute;
    top: 26px;
    right: 0px; }
  #concept .info {
    max-width: 600px;
    width: calc(54% - 20px);
    line-height: 35px; }
    #concept .info h3 {
      font-size: 24px;
      line-height: 35px;
      margin-bottom: 30px;
      letter-spacing: 0.08em;
      line-height: 2; }
      #concept .info h3 .inl {
        display: inline-block; }
      #concept .info h3 span.t {
        color: #e48cb3;
        font-size: 40px;
        position: relative;
        letter-spacing: 0.08em; }
        #concept .info h3 span.t:before {
          content: "";
          position: absolute;
          left: 0px;
          right: 0px;
          height: 2px;
          bottom: -3px;
          background: url("../img/top/line.png") 0px 0px/auto 100% repeat-x; }
    #concept .info p {
      margin-bottom: 40px; }
    @media screen and (min-width: 768px) and (max-width: 999px) {
      #concept .info {
        width: 100%;
        max-width: 100%; }
        #concept .info h3 .inl {
          display: block; }
        #concept .info .txt {
          overflow: hidden;
          padding-right: 30px; }
          #concept .info .txt:before {
            content: '';
            width: 48%;
            float: right;
            height: 45vw; } }
  @media screen and (max-width: 767px) {
    #concept {
      margin: 63px auto 0px; }
      #concept .wrap {
        padding: 0 20px 42px; }
        #concept .wrap:before {
          bottom: 0;
          top: 25px; }
        #concept .wrap:after {
          content: '';
          background: url("../img/top/deco5.png") no-repeat 0 0/auto 100%;
          height: 45px;
          width: 7px;
          position: absolute;
          top: 110px;
          right: 14px;
          z-index: 1; }
      #concept h2 {
        font-size: 16px;
        line-height: 52px;
        padding: 0 21px 13px; }
        #concept h2 span {
          font-size: 36px;
          padding: 0px 17px 20px 0px; }
      #concept .photo {
        margin: 0 0px 32px;
        width: auto;
        max-width: 100%;
        position: static; }
      #concept .info {
        max-width: 100%;
        width: 100%;
        line-height: 28px; }
        #concept .info h3 {
          font-size: 19px;
          line-height: 40px;
          margin-bottom: 20px;
          padding: 0 38px 0px; }
          #concept .info h3 .inl {
            display: block; }
          #concept .info h3 span.t {
            font-size: 31px; }
            #concept .info h3 span.t:before {
              height: 2px;
              bottom: -3px; }
        #concept .info .txt {
          padding: 0 35px; }
        #concept .info p {
          margin-bottom: 32px; }
      #concept .bnr-shared {
        text-align: center; } }

.tbl-time .timetable {
  color: #E48CB3;
  letter-spacing: 0;
  margin: 0; }
  .tbl-time .timetable thead th {
    font-weight: 700;
    height: auto;
    padding: 18px 0;
    line-height: 30px; }
  .tbl-time .timetable span {
    color: #707070;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0; }
  .tbl-time .timetable tbody tr {
    border-bottom: 1px solid #E48CB3; }
  .tbl-time .timetable tbody tr th {
    text-align: center; }
  .tbl-time .timetable thead th:first-child {
    text-align: center;
    font-size: 20px;
    width: 130px;
    letter-spacing: 0.16em; }
  .tbl-time .timetable th, .tbl-time .timetable td {
    line-height: 20px;
    font-size: 18px;
    padding: 15px 0 10px;
    letter-spacing: 0; }
  .tbl-time .timetable td {
    position: relative; }
    .tbl-time .timetable td .t {
      position: relative;
      left: 50%;
      transform: translateX(-50%);
      white-space: nowrap;
      display: inline-block; }
  .tbl-time .timetable tbody th {
    font-size: 16px; }
  @media screen and (max-width: 999px) {
    .tbl-time .timetable thead th:first-child {
      font-size: 15px;
      width: 108px; }
    .tbl-time .timetable span {
      font-size: 10px; }
    .tbl-time .timetable tbody th {
      font-size: 14px; }
    .tbl-time .timetable th, .tbl-time .timetable td {
      font-size: 14px; } }
  @media screen and (max-width: 767px) {
    .tbl-time .timetable tbody th {
      font-size: 10px; }
    .tbl-time .timetable thead th {
      font-size: 11px;
      padding: 0; }
    .tbl-time .timetable thead th:first-child {
      font-size: 10px;
      width: 89px;
      padding: 0 !important; }
    .tbl-time .timetable span {
      font-size: 8px; }
    .tbl-time .timetable th, .tbl-time .timetable td {
      padding: 0 !important;
      font-size: 10px;
      line-height: 10px;
      height: 30px; }
    .tbl-time .timetable td {
      font-size: 7px; } }

#information {
  padding: 112px 0 60px;
  letter-spacing: 0.08em; }
  #information h2 {
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 50px;
    padding-bottom: 30px; }
    #information h2 span {
      font-size: 48px;
      color: #E48CB3;
      letter-spacing: 0.08em; }
  #information .group {
    justify-content: space-between;
    margin-bottom: 20px; }
    #information .group .tbl-info, #information .group .tbl-time {
      background-color: #fff;
      border-radius: 15px;
      padding: 30px;
      width: 41.25%; }
      @media screen and (max-width: 1080px) {
        #information .group .tbl-info, #information .group .tbl-time {
          padding-left: 20px !important;
          padding-right: 20px !important; } }
      @media screen and (max-width: 767px) {
        #information .group .tbl-info, #information .group .tbl-time {
          padding: 15px !important; } }
    #information .group .tbl-info {
      padding: 11px 30px 0px; }
      #information .group .tbl-info dl {
        border-bottom: 1px solid #F9E4ED;
        display: table;
        width: 100%;
        font-size: 15px;
        line-height: 25px;
        letter-spacing: 0;
        padding: 20px 0 8px; }
        #information .group .tbl-info dl:last-child {
          border: none;
          padding-bottom: 0; }
        #information .group .tbl-info dl dt, #information .group .tbl-info dl dd {
          display: table-cell; }
        #information .group .tbl-info dl dt {
          width: 86px;
          color: #E48CB3;
          font-weight: 600; }
          @media screen and (max-width: 999px) {
            #information .group .tbl-info dl dt {
              width: 72px; } }
    #information .group .tbl-time {
      width: calc(58.75% - 25px); }
  #information .gmap {
    background-color: #fff;
    border-radius: 15px;
    padding: 30px;
    line-height: 0;
    height: 397px; }
    #information .gmap iframe {
      line-height: 0;
      border-radius: 15px;
      overflow: hidden; }
  @media screen and (max-width: 767px) {
    #information {
      padding: 50px 0 0; }
      #information h2 {
        font-size: 16px;
        line-height: 40px;
        padding-bottom: 9px; }
        #information h2 span {
          font-size: 36px;
          letter-spacing: 0; }
      #information .group {
        flex-wrap: wrap;
        gap: 20px; }
        #information .group .tbl-time, #information .group .tbl-info {
          width: 100%; }
        #information .group .tbl-info {
          padding: 12px 15px 27px !important; }
          #information .group .tbl-info dl {
            font-size: 13px;
            line-height: 25px;
            padding: 17px 0 8px; }
            #information .group .tbl-info dl dt {
              font-size: 13px;
              width: 74px;
              padding: 0 0 0 7px; }
      #information .gmap {
        padding: 18px;
        height: 260px; } }

#feature {
  padding: 40px 0; }
  #feature h2 {
    width: 350px;
    margin: 0 auto 89px; }
  #feature .feature {
    position: relative;
    z-index: 1; }
    #feature .feature h3 {
      font-weight: 500;
      font-size: 24px;
      line-height: 2;
      padding: 34px 0 48px 136px;
      position: relative;
      margin-bottom: 0px;
      letter-spacing: 0.08em; }
      #feature .feature h3:before {
        content: '';
        background: url("../img/top/deco1.png") no-repeat 0 0/100%;
        width: 70px;
        height: 10px;
        position: absolute;
        top: 3px;
        left: 0; }
      #feature .feature h3 img {
        width: 98px !important;
        height: auto;
        position: absolute;
        top: 0px;
        left: 0;
        z-index: 1; }
      @media screen and (max-width: 999px) {
        #feature .feature h3 {
          font-size: 21px; } }
    #feature .feature .txt {
      background-color: #fff;
      border-radius: 15px;
      padding: 27px 27px 23px;
      border-radius: 15px; }
      @media screen and (max-width: 999px) {
        #feature .feature .txt {
          padding: 20px; } }
    #feature .feature.feature1 {
      padding-bottom: 70px;
      position: relative; }
      #feature .feature.feature1:before {
        content: '';
        background: url("../img/top/feature_wave1.png") no-repeat center bottom/100%;
        position: absolute;
        left: 0;
        right: 0;
        bottom: -170px;
        top: 0;
        z-index: -1; }
        @media screen and (min-width: 768px) and (max-width: 999px) {
          #feature .feature.feature1:before {
            background-size: 100% 100%;
            top: auto;
            height: 460px; } }
      #feature .feature.feature1 .wrap {
        padding-left: 50px; }
        #feature .feature.feature1 .wrap:before {
          content: '';
          background: url("../img/top/feature_bg1.jpg") no-repeat center/cover;
          height: 366px;
          position: absolute;
          left: 0;
          right: 0;
          top: 80px;
          z-index: -1;
          border-radius: 15px; }
        @media screen and (max-width: 1230px) {
          #feature .feature.feature1 .wrap {
            padding-left: 30px; } }
      #feature .feature.feature1 .info {
        max-width: 550px;
        width: calc(50% + 20px); }
      #feature .feature.feature1 .num {
        width: 98px;
        height: auto;
        position: absolute;
        top: -61px;
        right: 71px;
        z-index: 4; }
      #feature .feature.feature1 .txt {
        position: relative;
        z-index: 3; }
        #feature .feature.feature1 .txt:after {
          content: '';
          background-color: #fff;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          position: absolute;
          z-index: -1;
          border-radius: 15px; }
        #feature .feature.feature1 .txt:before {
          position: absolute;
          content: '';
          background: url("../img/top/feature_deco.png") no-repeat 0 0/100% 100%;
          top: -10px;
          left: -10px;
          bottom: -10px;
          right: -10px;
          z-index: -3; }
      #feature .feature.feature1 h3 {
        padding: 32px 0 0 0;
        margin-left: 24px;
        margin-bottom: 43px;
        letter-spacing: 0.08em; }
        @media screen and (max-width: 999px) {
          #feature .feature.feature1 h3 {
            margin-left: 0; } }
      #feature .feature.feature1 .photo {
        max-width: 500px;
        position: absolute;
        top: 0;
        left: calc(50% + 49px);
        z-index: 1;
        right: 0; }
        #feature .feature.feature1 .photo li:nth-child(1) {
          border-radius: 15px;
          overflow: hidden; }
        #feature .feature.feature1 .photo li:nth-child(2) {
          padding: 29px 17px; }
    #feature .feature.feature2 {
      position: relative;
      padding-bottom: 120px; }
      #feature .feature.feature2:before {
        content: '';
        background: url("../img/top/feature_bg2.png") no-repeat 0 0/100% 100%;
        position: absolute;
        left: 0;
        right: 0;
        bottom: -25px;
        top: 0;
        z-index: -1; }
      #feature .feature.feature2 h3:before {
        left: auto;
        right: 76px; }
      @media screen and (max-width: 1220px) {
        #feature .feature.feature2 h3 {
          padding-left: 120px; }
          #feature .feature.feature2 h3 .sp {
            display: block; } }
      #feature .feature.feature2 .wrap {
        padding-top: 75px;
        justify-content: flex-end;
        display: flex; }
      #feature .feature.feature2 .photo {
        position: absolute;
        top: 0;
        left: 0;
        width: calc(50% - 20px);
        max-width: 560px; }
        #feature .feature.feature2 .photo:before {
          content: '';
          background: url("../img/top/deco1.png") no-repeat 0 0/100%;
          width: 70px;
          height: 10px;
          position: absolute;
          bottom: 104px;
          right: 0px; }
        #feature .feature.feature2 .photo li {
          width: calc(50% - 10px);
          margin-bottom: 20px; }
          #feature .feature.feature2 .photo li:nth-child(2) {
            position: absolute;
            right: 0;
            top: 160px; }
        #feature .feature.feature2 .photo img {
          border-radius: 15px; }
        @media screen and (max-width: 1260px) {
          #feature .feature.feature2 .photo {
            left: 30px;
            width: calc(50% - 50px); } }
      #feature .feature.feature2 .info {
        max-width: 570px;
        width: calc(50% - 10px); }
        #feature .feature.feature2 .info .txt {
          background-color: transparent;
          padding: 0; }
          @media screen and (min-width: 768px) and (max-width: 999px) {
            #feature .feature.feature2 .info .txt {
              margin-left: -105%;
              position: relative;
              overflow: hidden; }
              #feature .feature.feature2 .info .txt:before {
                content: '';
                width: 51%;
                height: 23vw;
                float: left; } }
    #feature .feature.feature3 {
      max-width: 1200px;
      margin: 0 auto 68px;
      background: #FBEDE0;
      padding: 20px;
      border-radius: 15px;
      padding-right: 73px; }
      #feature .feature.feature3 .info {
        padding: 0px 0 27px 87px;
        position: relative;
        max-width: 1107px; }
        #feature .feature.feature3 .info:before {
          content: '';
          background: url("../img/top/line3.png") repeat 0 0/100%;
          width: 4px;
          height: 59px;
          position: absolute;
          left: 35px;
          bottom: 35px;
          z-index: 1; }
      #feature .feature.feature3 h3 {
        padding: 17px 0 21px 74px;
        font-size: 20px;
        line-height: 36px; }
        #feature .feature.feature3 h3:before {
          display: none; }
        #feature .feature.feature3 h3 img {
          top: -13px;
          left: -49px; }
        @media screen and (max-width: 999px) {
          #feature .feature.feature3 h3 .sp {
            display: block; } }
      #feature .feature.feature3 .photo {
        max-width: 335px;
        border-radius: 15px;
        position: absolute;
        top: -72px;
        right: -53px;
        z-index: 1;
        overflow: hidden;
        width: 30%; }
      #feature .feature.feature3 .txt {
        padding: 0;
        max-width: 688px;
        width: 70%; }
        @media screen and (min-width: 768px) and (max-width: 999px) {
          #feature .feature.feature3 .txt {
            overflow: hidden;
            width: 100%;
            max-width: 100%; }
            #feature .feature.feature3 .txt:before {
              content: '';
              width: 27%;
              height: 10vw;
              float: right; } }
      #feature .feature.feature3 .wrap {
        border-radius: 15px;
        background-color: #fff;
        padding: 0; }
  #feature .group .wrap {
    justify-content: space-between;
    display: flex; }
  #feature .group .feature {
    width: calc(50% - 10px);
    padding: 52px 20px 20px;
    max-width: 575px; }
    #feature .group .feature:before {
      background-color: #F9E4ED;
      content: '';
      position: absolute;
      top: 0px;
      left: 0;
      right: 0;
      height: 350px;
      border-radius: 15px;
      z-index: -1; }
    #feature .group .feature h3 {
      padding: 0;
      position: absolute;
      left: 20px;
      top: -60px;
      font-size: 20px;
      line-height: 52px; }
      #feature .group .feature h3:before {
        display: none; }
      #feature .group .feature h3 img {
        display: block;
        position: static; }
    #feature .group .feature .info {
      position: relative; }
      #feature .group .feature .info:before {
        content: '';
        background: url("../img/top/line3.png") repeat 0 0/100%;
        width: 4px;
        height: 59px;
        position: absolute;
        left: -22px;
        bottom: 26px;
        z-index: 1; }
    #feature .group .feature .txt {
      padding: 120px 22px 20px 20px;
      font-size: 14px;
      line-height: 28px;
      letter-spacing: 0.04em; }
    #feature .group .feature .photo {
      max-width: 250px;
      width: 46%;
      border-radius: 15px;
      overflow: hidden;
      position: absolute;
      top: -29px;
      right: 40px;
      z-index: 3; }
    #feature .group .feature.feature5 {
      margin-top: 40px; }
      #feature .group .feature.feature5:before {
        background-color: #F8ECE4;
        height: 285px; }
      #feature .group .feature.feature5 .info:before {
        left: auto;
        right: -22px; }
      #feature .group .feature.feature5 .info:after {
        content: '';
        background: url("../img/top/line2.png") repeat 0 0/auto 100%;
        width: 59px;
        height: 4px;
        position: absolute;
        left: 20px;
        bottom: -20px;
        z-index: 1; }
      #feature .group .feature.feature5 .photo {
        max-width: 207px;
        width: 43%; }
  @media screen and (max-width: 1200px) {
    #feature .group {
      padding-top: 40px; }
      #feature .group .feature .photo {
        top: -4vw; } }
  @media screen and (max-width: 767px) {
    #feature {
      padding: 50px 0; }
      #feature h2 {
        max-width: 282px;
        margin: 0 auto 80px; }
      #feature .feature h3 {
        padding: 27px 0 0 0;
        margin-left: 0px;
        margin-bottom: 30px;
        font-size: 18px !important;
        line-height: 27px !important; }
        #feature .feature h3:before {
          top: 0; }
      #feature .feature .info {
        width: 100% !important;
        max-width: 100% !important; }
      #feature .feature .photo {
        width: 100%;
        position: relative !important;
        top: auto !important;
        right: auto !important;
        left: auto !important;
        max-width: 100%; }
      #feature .feature.feature1 {
        padding-bottom: 0; }
        #feature .feature.feature1:before {
          background: #F6F5ED;
          top: 70vw;
          bottom: -120vw; }
        #feature .feature.feature1 .wrap:before {
          background: url("../img/top/feature_bg1_sp.jpg") no-repeat center/100%;
          top: 33vw;
          height: 120vw; }
        #feature .feature.feature1 .num {
          top: -63px;
          right: 38px; }
        #feature .feature.feature1 h3 {
          padding: 27px 0 0 0;
          margin-left: 0px;
          margin-bottom: 30px; }
        #feature .feature.feature1 .photo {
          position: static; }
          #feature .feature.feature1 .photo li:nth-child(2) {
            padding: 18px 12px 30px; }
        #feature .feature.feature1 .info {
          width: 100%;
          max-width: 100%; }
          #feature .feature.feature1 .info .txt {
            padding: 15px 20px 20px; }
            #feature .feature.feature1 .info .txt:before {
              background: url("../img/top/feature_deco_sp.png") no-repeat 0 0/100% 100%;
              left: -7px;
              bottom: -7px;
              right: -7px;
              top: -7px; }
      #feature .feature.feature2 {
        position: relative;
        padding-bottom: 52vw; }
        #feature .feature.feature2:before {
          background: url("../img/top/feature_bg2_sp.png") no-repeat 0 0/100%;
          top: 48vw; }
        #feature .feature.feature2 .wrap {
          display: block;
          padding-top: 66px; }
        #feature .feature.feature2 h3 {
          padding: 20px 0 0px;
          margin-bottom: 16px; }
          #feature .feature.feature2 h3:before {
            left: auto;
            right: 76px;
            top: -81vw;
            right: 6vw; }
          #feature .feature.feature2 h3 img {
            left: auto;
            right: auto;
            top: -23px;
            left: 189px; }
        #feature .feature.feature2 .photo {
          width: auto !important;
          margin: 0 15px; }
          #feature .feature.feature2 .photo li {
            width: calc(50% - 5px);
            margin-bottom: 10px; }
            #feature .feature.feature2 .photo li:nth-child(2) {
              top: 52%;
              transform: translateY(-50%);
              margin: 0; }
      #feature .feature.feature3 {
        margin: 0 17px;
        padding: 12px 12px 18px; }
        #feature .feature.feature3 .photo {
          max-width: 100%;
          width: 100%;
          margin: -42vw 0px 10px; }
        #feature .feature.feature3 .wrap {
          padding: 20px 20px 32px; }
        #feature .feature.feature3 .info {
          padding: 0; }
          #feature .feature.feature3 .info:before {
            top: 13px;
            left: auto;
            right: -1px; }
        #feature .feature.feature3 .txt {
          width: auto;
          max-width: 100%; }
        #feature .feature.feature3 h3 {
          padding: 20px 0;
          position: static;
          margin-bottom: -4px; }
          #feature .feature.feature3 h3 img {
            top: -101vw;
            left: auto;
            right: 4vw; }
      #feature .group {
        padding: 140px 0 0; }
        #feature .group .wrap {
          padding: 0 17px;
          flex-wrap: wrap;
          gap: 100px; }
        #feature .group .feature {
          width: 100%;
          padding: 12px 12px 18px; }
          #feature .group .feature:before {
            height: 100% !important; }
          #feature .group .feature .info:before {
            background: url("../img/top/line2.png") repeat 0 0/auto 100%;
            width: 69px;
            height: 4px;
            left: auto;
            bottom: -26px;
            right: 10px; }
          #feature .group .feature .box {
            background-color: #fff;
            border-radius: 15px;
            padding: 20px 20px 57px; }
          #feature .group .feature .photo {
            width: 100% !important;
            max-width: 100% !important;
            margin-top: -80px;
            margin-bottom: 30px; }
          #feature .group .feature .txt {
            padding: 0;
            letter-spacing: 0.08em; }
          #feature .group .feature h3 {
            position: static;
            margin-bottom: 15px; }
            #feature .group .feature h3 img {
              top: -77vw;
              left: 4vw;
              position: absolute;
              z-index: 5; }
          #feature .group .feature.feature5 .box {
            padding-bottom: 35px; }
          #feature .group .feature.feature5 .info:before {
            display: none; }
          #feature .group .feature.feature5 .info:after {
            bottom: -90px;
            left: -21px;
            width: 94px; }
          #feature .group .feature.feature5 h3 img {
            left: auto;
            right: 4vw;
            top: -89vw; } }

#pickup {
  padding: 43px 0 0; }
  #pickup h2 {
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    line-height: 54px;
    padding-bottom: 145px;
    position: relative;
    z-index: 9; }
    #pickup h2 span {
      font-size: 48px;
      color: #E48CB3;
      letter-spacing: 0.08em; }
  #pickup .pickup {
    position: relative;
    letter-spacing: 0.04em;
    padding: 1px 0  220px;
    background: #f4b8d3;
    background: linear-gradient(0deg, #f4b8d3 0%, #e48cb3 100%); }
    #pickup .pickup:before {
      content: '';
      background: url("../img/top/wave1.png") no-repeat center bottom/100%;
      height: 300px;
      position: absolute;
      left: 0;
      right: 0;
      top: 4px;
      transform: translateY(-100%);
      z-index: 1; }
    #pickup .pickup:after {
      background: url("../img/top/pickup_deco1.png") no-repeat 0 0, url("../img/top/pickup_deco2.png") no-repeat right 200px;
      content: '';
      position: absolute;
      top: -47px;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 2; }
      @media screen and (max-width: 767px) {
        #pickup .pickup:after {
          opacity: 0; } }
    #pickup .pickup .wrap {
      z-index: 3;
      margin-top: -82px; }
      #pickup .pickup .wrap:before {
        content: '';
        background: url("../img/top/pickup_deco1.png") no-repeat 0 0/100%;
        width: 251px;
        height: 536px;
        position: absolute;
        top: 30px;
        left: -50px; }
        @media screen and (min-width: 768px) {
          #pickup .pickup .wrap:before {
            opacity: 0; } }
      #pickup .pickup .wrap:after {
        content: '';
        background: url("../img/top/pickup_deco2.png") no-repeat 0 0/100%;
        width: 251px;
        height: 536px;
        position: absolute;
        top: 230px;
        right: -50px; }
        @media screen and (min-width: 768px) {
          #pickup .pickup .wrap:after {
            opacity: 0; } }
    #pickup .pickup h3 {
      color: #fff;
      font-size: 48px;
      line-height: 62px;
      padding: 40px 0 38px 41px;
      letter-spacing: 0.08em; }
      #pickup .pickup h3 span {
        font-size: 20px;
        letter-spacing: 0.0em;
        opacity: 0.8;
        position: relative; }
        #pickup .pickup h3 span:before {
          background: url("../img/top/line1.png") repeat-x 0 0/auto 100%;
          content: '';
          position: absolute;
          left: 0;
          height: 4px;
          width: 64px;
          top: -14px; }
    #pickup .pickup .photo {
      overflow: hidden;
      position: absolute;
      border-radius: 15px;
      right: 0;
      top: 0px;
      height: 400px;
      left: calc(50% - 150px);
      z-index: 3; }
    #pickup .pickup .info {
      background-color: #fff;
      border-radius: 15px;
      max-width: 1150px;
      padding: 40px 40px;
      position: relative; }
      @media screen and (max-width: 999px) {
        #pickup .pickup .info {
          padding: 30px; } }
      #pickup .pickup .info:before {
        content: '';
        background: url("../img/top/deco1.png") no-repeat 0 0/100%;
        width: 70px;
        height: 10px;
        position: absolute;
        bottom: 85px;
        right: 40px;
        z-index: 1; }
      #pickup .pickup .info .text1 {
        max-width: 370px;
        margin-bottom: 0; }
      #pickup .pickup .info .bnr-shared {
        padding: 8px 0 0px; }
    #pickup .pickup.pickup2 {
      background-color: #ccc;
      background: #f0dab9;
      background: linear-gradient(0deg, #f0dab9 0%, #f5d19c 100%);
      padding: 1px 0  100px; }
      #pickup .pickup.pickup2:before {
        background: url("../img/top/wave2.png") no-repeat center bottom/100%; }
      #pickup .pickup.pickup2:after {
        background: url("../img/top/pickup_deco3.png") no-repeat 0 310px, url("../img/top/pickup_deco4.png") no-repeat right 0px;
        top: -72px; }
      #pickup .pickup.pickup2 .wrap {
        display: flex;
        justify-content: flex-end;
        flex-wrap: wrap;
        margin-top: -40px; }
      #pickup .pickup.pickup2 .info {
        margin-left: 50px; }
        #pickup .pickup.pickup2 .info:before {
          background: url("../img/top/line4.png") no-repeat 0 0/100%;
          right: auto;
          left: 40px; }
      #pickup .pickup.pickup2 .wrap:before {
        background: url("../img/top/pickup_deco3.png") no-repeat 0 0/100%;
        top: 280px;
        left: -85px; }
      #pickup .pickup.pickup2 .wrap:after {
        background: url("../img/top/pickup_deco4.png") no-repeat 0 0/100%;
        top: -30px; }
      #pickup .pickup.pickup2 h3 {
        width: 450px; }
      #pickup .pickup.pickup2 .info .txt {
        flex-wrap: wrap;
        justify-content: flex-end;
        display: flex; }
        #pickup .pickup.pickup2 .info .txt p {
          width: 100%; }
      #pickup .pickup.pickup2 .photo {
        left: 0;
        right: calc(50% - 150px); }
      #pickup .pickup.pickup2 .bnr-shared {
        padding-top: 30px;
        text-align: right; }
  @media screen and (max-width: 1260px) {
    #pickup .pickup .photo {
      left: 450px; }
    #pickup .pickup.pickup2 .photo {
      right: 460px; } }
  @media screen and (max-width: 999px) {
    #pickup .pickup.pickup2 h3 {
      width: 440px; }
    #pickup .pickup.pickup2 .photo {
      right: 450px; } }
  @media screen and (max-width: 767px) {
    #pickup {
      padding: 57px 0 0; }
      #pickup h2 {
        font-size: 16px;
        line-height: 40px;
        padding-bottom: 45px; }
        #pickup h2 span {
          font-size: 36px;
          letter-spacing: 0; }
      #pickup .pickup {
        padding: 28px 0 70px; }
        #pickup .pickup:before {
          background: url("../img/top/wave1_sp.png") no-repeat center bottom/100%;
          height: 20vw; }
        #pickup .pickup .wrap {
          margin-top: 0; }
          #pickup .pickup .wrap:after {
            display: none; }
          #pickup .pickup .wrap:before {
            background: url("../img/top/pickup_deco1_sp.png") no-repeat 0 0/100%;
            top: -20px;
            bottom: 0;
            width: 100%;
            left: 0; }
        #pickup .pickup .info {
          padding: 86px 21px 40px;
          letter-spacing: 0.08em;
          margin-left: 0 !important; }
          #pickup .pickup .info:before {
            display: none; }
          #pickup .pickup .info .bnr-shared {
            text-align: center;
            padding-top: 26px !important; }
          #pickup .pickup .info .txt p {
            display: inline; }
        #pickup .pickup .photo {
          position: relative;
          height: auto;
          right: auto;
          left: auto;
          top: auto;
          margin: 0 20px -70px;
          z-index: 3; }
        #pickup .pickup h3 {
          font-size: 36px;
          line-height: 48px;
          padding: 0 0 26px; }
          #pickup .pickup h3 span {
            font-size: 15px; }
            #pickup .pickup h3 span:before {
              background: url("../img/top/line2_sp.png") repeat-x 0 0/auto 100%;
              top: -11px;
              width: 46px;
              height: 2px; }
        #pickup .pickup.pickup2 {
          padding: 33px 0  50px; }
          #pickup .pickup.pickup2 .wrap {
            margin-top: 0; }
            #pickup .pickup.pickup2 .wrap:before {
              background: url("../img/top/pickup_deco3_sp.png") no-repeat 0 0/100%;
              top: 53px;
              bottom: 0;
              width: 100%;
              left: 0; }
          #pickup .pickup.pickup2 .info .bnr-shared {
            padding-top: 8px !important; } }

#contact {
  background: url("../img/top/contatc_bg.jpg") no-repeat center/cover;
  color: #fff;
  padding: 85px 0 80px;
  font-size: 16px;
  line-height: 32px;
  letter-spacing: 0.16em;
  font-weight: 500; }
  #contact h2 {
    font-size: 30px;
    line-height: 46px;
    padding-bottom: 26px;
    letter-spacing: 0.08em;
    font-weight: 500; }
    #contact h2 span {
      font-size: 18px;
      letter-spacing: 0.24em;
      font-weight: 500; }
  #contact .wrap {
    justify-content: space-between; }
  #contact .link {
    width: calc(100% - 503px);
    justify-content: space-between;
    padding: 12px 0 0;
    height: fit-content;
    max-width: 632px; }
    #contact .link li {
      color: #fff;
      border: 2px solid;
      border-radius: 15px;
      width: calc(50% - 16px);
      text-align: center; }
      #contact .link li a {
        background-image: url("../img/top/icon_tel.png");
        background-size: 54px;
        background-position: center 20px;
        background-repeat: no-repeat;
        color: #fff;
        padding: 81px 0 17px;
        font-size: 14px;
        line-height: 28px;
        display: block;
        letter-spacing: 0.08em;
        font-weight: 500;
        position: relative; }
        #contact .link li a span {
          font-size: 24px;
          letter-spacing: 0.08em; }
      #contact .link li:nth-child(2) a {
        background-image: url("../img/top/icon_pc.png");
        pointer-events: none; }
        #contact .link li:nth-child(2) a:before {
          content: '';
          background: url("../img/top/comming.png") no-repeat center/100%;
          position: absolute;
          left: 32px;
          right: 32px;
          height: 42px;
          z-index: 1;
          bottom: 24px; }
          @media screen and (max-width: 767px) {
            #contact .link li:nth-child(2) a:before {
              left: 41px;
              right: 41px; } }
  #contact info {
    width: 490px; }
  @media screen and (max-width: 1160px) {
    #contact {
      background: url("../img/top/contatc_bg_sp.jpg") no-repeat center/cover; }
      #contact h2 .sp {
        display: block; }
      #contact .link {
        width: calc(100% - 377px); }
        #contact .link li {
          width: calc(50% - 10px); } }
  @media screen and (max-width: 999px) {
    #contact {
      text-align: center; }
      #contact h2 .sp {
        display: none; }
      #contact .wrap {
        display: block; }
      #contact .link {
        width: 640px;
        margin: 30px auto 0; }
        #contact .link li {
          width: calc(50% - 10px); } }
  @media screen and (max-width: 767px) {
    #contact {
      text-align: left;
      padding: 40px 0 50px;
      font-size: 14px;
      line-height: 28px; }
      #contact h2 {
        font-size: 24px;
        line-height: 36px;
        padding-bottom: 20px; }
        #contact h2 span {
          font-size: 16px;
          display: block;
          margin: 8px 0 0; }
        #contact h2 .sp {
          display: block; }
      #contact .wrap {
        display: block; }
      #contact .link {
        width: 300px;
        margin: 15px auto 0;
        gap: 30px 0;
        flex-wrap: wrap; }
        #contact .link li {
          width: 100%; } }

.js-scroll {
  padding: 50px 0 75px;
  pointer-events: none; }
  .js-scroll img {
    width: 320px !important;
    border-radius: 15px !important;
    margin-right: 30px !important; }
    .js-scroll img.ext {
      margin-top: 15px !important; }
  @media screen and (max-width: 767px) {
    .js-scroll {
      padding: 40px 0 30px; }
      .js-scroll img {
        width: 150px !important;
        margin-right: 15px !important; }
        .js-scroll img.ext {
          margin-top: 8px !important; } }

#greeting {
  position: relative;
  z-index: 1;
  padding: 0 30px 120px; }
  #greeting:before {
    z-index: -1;
    content: '';
    position: absolute;
    right: 0;
    top: 54px;
    left: calc(50% - 400px);
    height: 610px;
    background: #f9e4ed;
    background: linear-gradient(90deg, #f9e4ed 0%, #fcefdd 100%); }
    @media screen and (max-width: 999px) {
      #greeting:before {
        left: 0;
        height: 540px; } }
  #greeting .wrap {
    padding: 92px 0 0; }
  #greeting .photo {
    border-radius: 15px;
    overflow: hidden;
    position: absolute;
    top: 0;
    right: -9px;
    bottom: 25px;
    left: calc(50% - 300px);
    margin: 0; }
    @media screen and (max-width: 999px) {
      #greeting .photo {
        left: 80px;
        max-height: 68%; } }
  #greeting .info {
    position: relative;
    z-index: 1;
    background-color: #fff;
    border-radius: 15px;
    padding: 56px 40px 40px;
    max-width: 650px;
    width: 60%;
    line-height: 28px;
    letter-spacing: 0.04em; }
    @media screen and (max-width: 1080px) {
      #greeting .info {
        padding: 45px 30px 30px; } }
    #greeting .info:before {
      content: '';
      background: url("../img/top/deco1.png") no-repeat 0 0/100%;
      width: 70px;
      height: 10px;
      position: absolute;
      top: -35px;
      left: 0px;
      z-index: 1; }
    #greeting .info h2 {
      font-size: 20px;
      letter-spacing: 0.08em;
      font-weight: 500;
      padding-bottom: 34px; }
      #greeting .info h2 span {
        font-size: 32px;
        letter-spacing: 0.08em;
        color: #E48CB3;
        padding-right: 27px; }
    #greeting .info p {
      padding-bottom: 6px; }
    #greeting .info .line {
      position: relative;
      z-index: 1; }
      #greeting .info .line:before {
        content: '';
        background: url("../img/top/deco1.png") no-repeat 0 0/100%;
        width: 70px;
        height: 10px;
        position: absolute;
        bottom: 4px;
        left: 7px;
        z-index: auto;
        opacity: 0.5; }
  @media screen and (max-width: 767px) {
    #greeting {
      padding: 0 30px 60px; }
      #greeting:before {
        top: 114px;
        height: 442px; }
      #greeting .wrap {
        padding: 31px 0 0; }
      #greeting .photo {
        position: static;
        width: 100%;
        max-width: 100%;
        margin-bottom: 40px; }
      #greeting .info {
        padding: 1px 20px 40px;
        width: 100%;
        max-width: 100%;
        position: static;
        letter-spacing: 0.08em; }
        #greeting .info:before {
          top: 0;
          right: 0;
          left: auto; }
        #greeting .info h2 {
          margin: -17px -6px 0px;
          padding-bottom: 24px;
          font-size: 16px; }
          #greeting .info h2 span {
            letter-spacing: 0;
            font-size: 36px;
            padding: 0px 14px 0px 0;
            vertical-align: sub; } }

#blog {
  position: relative;
  padding: 40px 30px 30px;
  margin-bottom: 100px; }
  #blog:before {
    border-top-right-radius: 15px;
    border-bottom-right-radius: 15px;
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: calc(50% - 600px);
    background: #fcefdd;
    background: linear-gradient(90deg, #fcefdd 0%, #f9e4ed 100%); }
    @media screen and (max-width: 1200px) {
      #blog:before {
        right: 0; } }
  #blog .elementor-row {
    justify-content: space-between;
    max-width: 1150px;
    margin: 0 auto;
    gap: 40px 0; }
  #blog h2 {
    text-align: center;
    color: #E48CB3;
    line-height: 35px;
    font-size: 24px;
    letter-spacing: 0.08em;
    padding: 20px 0 25px;
    background: url("../img/top/deco2.png") no-repeat center 0/60px; }
    @media screen and (max-width: 767px) {
      #blog h2 {
        font-size: 20px;
        padding: 14px 0 18px; } }
  #blog .instagram {
    flex-wrap: wrap;
    gap: 10px; }
    #blog .instagram li {
      background-color: #EEEEEE;
      border-radius: 15px;
      width: calc((100% - 30px)/4);
      aspect-ratio: 1; }
    @media screen and (max-width: 767px) {
      #blog .instagram {
        padding: 0 12px; }
        #blog .instagram li {
          width: calc(50% - 5px); } }
  #blog #newsList dl {
    border-bottom: 1px solid #F9E4ED;
    position: relative;
    letter-spacing: 0.16em;
    display: table;
    width: 100%;
    margin-bottom: 20px;
    padding-right: 10px; }
    #blog #newsList dl:before {
      content: '';
      background: url("../img/top/arow1.png") no-repeat 0 0/100%;
      width: 9px;
      height: 9px;
      position: absolute;
      right: 0;
      top: 9px; }
    #blog #newsList dl dt, #blog #newsList dl dd {
      display: table-cell;
      padding-bottom: 10px; }
    #blog #newsList dl dt {
      color: #E48CB3;
      font-family: "Kaisei Decol", serif;
      font-weight: 400;
      font-style: normal;
      letter-spacing: 0;
      width: 145px;
      padding-left: 22px; }
      @media screen and (max-width: 1080px) {
        #blog #newsList dl dt {
          width: 120px;
          padding-left: 10px; } }
    @media screen and (max-width: 767px) {
      #blog #newsList dl {
        display: block;
        padding: 0 5px; }
        #blog #newsList dl:before {
          right: 5px;
          top: auto;
          bottom: 24px; }
        #blog #newsList dl dt, #blog #newsList dl dd {
          display: block;
          font-size: 14px;
          line-height: 24px; }
        #blog #newsList dl dt {
          width: auto;
          font-size: 16px;
          letter-spacing: 0;
          padding: 0 0 3px; } }
  #blog .bnr-shared {
    text-align: center;
    margin-top: 10px; }
  #blog .elementor-column.elementor-col-50, #blog .elementor-column[data-col="50"] {
    background-color: #fff;
    border-radius: 15px;
    padding: 30px 20px 35px; }
    @media screen and (min-width: 768px) {
      #blog .elementor-column.elementor-col-50, #blog .elementor-column[data-col="50"] {
        padding: 30px 20px 20px;
        width: 48.5%;
        max-width: 550px; } }
  @media screen and (max-width: 767px) {
    #blog {
      padding: 30px 30px 40px;
      margin-bottom: 0; }
      #blog .bnr-shared {
        padding-bottom: 5px; } }

#access {
  margin-bottom: 70px; }
  #access .group {
    justify-content: space-between; }
  #access .tbl-info, #access .tbl-time {
    background-color: #fff;
    border-radius: 15px;
    padding: 30px;
    width: 41.25%; }
    @media screen and (max-width: 1080px) {
      #access .tbl-info, #access .tbl-time {
        padding-left: 20px !important;
        padding-right: 20px !important; } }
  #access .tbl-info .gmap {
    line-height: 0;
    height: 220px;
    border-radius: 15px;
    overflow: hidden; }
  #access .tbl-info dl {
    /* border-bottom: 1px solid #F9E4ED; */
    display: table;
    width: 100%;
    font-size: 14px;
    line-height: 25px;
    letter-spacing: 0;
    padding: 19px 0 0;
    margin-bottom: 10px; }
    #access .tbl-info dl:last-child {
      margin-bottom: 0; }
    #access .tbl-info dl dt, #access .tbl-info dl dd {
      display: table-cell; }
    #access .tbl-info dl dt {
      font-size: 16px;
      width: 100px;
      color: #E48CB3;
      font-weight: 600;
      font-family: "Kaisei Decol", serif;
      font-weight: 500;
      font-style: normal; }
  #access .tbl-time {
    width: calc(58.75% - 25px); }
  @media screen and (max-width: 767px) {
    #access {
      padding: 40px 0;
      margin-bottom: 0; }
      #access .group {
        flex-wrap: wrap;
        gap: 20px; }
      #access .tbl-info, #access .tbl-time {
        width: 100%;
        padding: 15px !important; }
      #access .tbl-info {
        padding: 18px !important; }
        #access .tbl-info dl {
          display: block;
          padding-top: 10px; }
          #access .tbl-info dl dt, #access .tbl-info dl dd {
            display: block;
            width: auto;
            letter-spacing: 0;
            font-size: 14px;
            line-height: 24px; } }

#banner {
  position: relative;
  z-index: 1;
  padding: 60px 30px;
  margin-bottom: 100px; }
  #banner:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% - 606px);
    right: 0;
    content: '';
    z-index: -1;
    background-color: #fff;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px; }
  #banner ul {
    max-width: 1100px;
    margin: 0 auto;
    justify-content: space-between; }
  #banner li {
    width: 48%;
    max-width: 500px; }
  @media screen and (max-width: 767px) {
    #banner {
      padding: 40px 30px;
      margin-bottom: 60px; }
      #banner ul {
        flex-wrap: wrap;
        gap: 20px;
        justify-content: center; }
        #banner ul li {
          width: 100%; } }
