@charset "UTF-8";
/*--------------------
共通設定
----------------------*/
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

a {
  text-decoration: none;
  transition: .4s;
  color: #16494b; }
  a:hover {
    text-decoration: none;
    color: #16494b; }
  a.disabled {
    pointer-events: none;
    text-decoration: none; }
  a:visited {
    color: #16494b; }

ul, ol {
  list-style: none; }

.pc {
  display: block; }
  @media screen and (max-width: 1110px) {
    .pc {
      display: none; } }

.sp {
  display: none; }
  @media screen and (max-width: 1110px) {
    .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 2s, transform 2s; }
  .fadeIn.visible {
    opacity: 1; }

/*--------------------------------------------*/
.lp_wrapper {
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0;
  letter-spacing: 0;
  color: #16494b;
  font-size: 14px;
  text-align: left;
  font-family: "yu-mincho-pr6n", sans-serif;
  font-weight: 300;
  font-style: normal;
  line-height: 1.5;
  position: relative;
  background: #dbcec1; }

.mv {
  max-height: calc(100vh - 60px);
  position: relative; }
  @media screen and (max-width: 1110px) {
    .mv {
      height: calc(100vh - 60px); } }
  .mv .ttl {
    position: absolute;
    top: 48px;
    left: 48px;
    z-index: 101; }
    .mv .ttl img {
      max-width: 250px;
      margin-bottom: 1.0em; }
      @media screen and (max-width: 800px) {
        .mv .ttl img {
          max-width: 150px; } }
    .mv .ttl h1 {
      font-size: min(2.2em, 4vw);
      color: #dbcec1;
      font-weight: 400; }
      .mv .ttl h1 br {
        display: none; }
        @media screen and (max-width: 1110px) {
          .mv .ttl h1 br {
            display: block; } }
  .mv .swiper_mv {
    width: 100%;
    max-height: calc(100vh - 60px);
    aspect-ratio: 3001/1893;
    position: relative; }
    @media screen and (max-width: 1110px) {
      .mv .swiper_mv {
        aspect-ratio: auto; } }
    .mv .swiper_mv img {
      width: 100%;
      height: 100%;
      object-fit: cover; }
    .mv .swiper_mv .swiper-wrapper {
      position: relative;
      height: calc(100vh - 60px); }
      .mv .swiper_mv .swiper-wrapper::before {
        content: "";
        width: 98%;
        height: 96%;
        border: 1px solid #dbcec1;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 100; }
        @media screen and (max-width: 1110px) {
          .mv .swiper_mv .swiper-wrapper::before {
            width: 94%; } }
    .mv .swiper_mv .swiper-pagination {
      display: flex;
      justify-content: flex-end;
      align-items: flex-end;
      gap: 14px;
      width: fit-content;
      flex-direction: column;
      position: absolute;
      margin: 0 0 0 auto;
      right: 3%;
      bottom: 4%; }
      @media screen and (max-width: 1110px) {
        .mv .swiper_mv .swiper-pagination {
          right: 4%; } }
      @media screen and (max-width: 800px) {
        .mv .swiper_mv .swiper-pagination {
          right: 6%; } }
      .mv .swiper_mv .swiper-pagination .custom-page-title {
        display: inline-block;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
        opacity: 0.5;
        cursor: pointer;
        transition: opacity 0.3s;
        color: #dbcec1;
        font-size: min(1.5em, 3.2vw); }
      .mv .swiper_mv .swiper-pagination .swiper-pagination-bullet-active {
        opacity: 1; }

.txtbox {
  width: 100%;
  min-height: calc(100vh - 60px);
  height: fit-content;
  position: relative;
  background: #16494b; }
  @media screen and (max-width: 1110px) {
    .txtbox {
      background-image: linear-gradient(0deg, #dbcec1 4%, #16494b 20%); } }
  @media screen and (max-width: 1110px) {
    .txtbox::before {
      content: "";
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      position: absolute;
      background-image: linear-gradient(#16494b 65%, #dbcec1);
      z-index: 3;
      opacity: 0;
      transition: opacity 1.2s ease;
      pointer-events: none; }
    .txtbox.is-gradient::before {
      opacity: 1; } }
  .txtbox p {
    position: absolute;
    z-index: 4;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: fit-content;
    color: #dbcec1;
    font-weight: 300;
    font-size: min(1em, 3.2vw);
    text-align: center;
    line-height: 2.2;
    padding: 5% 0; }
    @media screen and (max-height: 650px) {
      .txtbox p {
        position: static;
        transform: translate(0);
        margin: 0 auto; } }
    @media screen and (max-width: 1110px) {
      .txtbox p {
        text-align: left; }
        .txtbox p::before {
          content: "";
          width: 1px;
          height: 100%;
          background: #dbcec1;
          top: 0;
          left: -32px;
          position: absolute; } }
    @media screen and (max-width: 800px) {
      .txtbox p {
        width: 70%; } }

section {
  /*itemBox*/ }
  @media screen and (max-width: 1110px) {
    section {
      margin: 20vh auto; } }
  section.itemBox {
    display: flex;
    align-items: stretch;
    justify-content: center;
    position: sticky;
    position: -webkit-sticky;
    top: 60px;
    isolation: isolate;
    background: #dbcec1; }
    @media screen and (max-width: 1110px) {
      section.itemBox {
        display: block; } }
    section.itemBox .slideBox {
      width: 60%; }
      @media screen and (max-width: 1500px) {
        section.itemBox .slideBox {
          width: 55%; } }
      @media screen and (max-width: 1110px) {
        section.itemBox .slideBox {
          width: 100%; } }
    section.itemBox .item_info {
      width: 40%;
      background: #dbcec1; }
      @media screen and (max-width: 1500px) {
        section.itemBox .item_info {
          width: 45%; } }
      @media screen and (max-width: 1110px) {
        section.itemBox .item_info {
          width: 100%; } }
    section.itemBox .swiper_item {
      position: relative;
      width: 100%;
      height: 100%; }
      @media screen and (max-width: 1110px) {
        section.itemBox .swiper_item {
          width: 90%;
          height: auto;
          margin: 0 auto 0 0; } }
      section.itemBox .swiper_item .swiper-wrapper {
        position: relative; }
        section.itemBox .swiper_item .swiper-wrapper .swiper-slide img {
          width: 100%;
          height: 100%;
          object-fit: cover; }
        section.itemBox .swiper_item .swiper-wrapper::before {
          content: "";
          width: 96%;
          height: 96%;
          border: 1px solid #dbcec1;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          z-index: 100; }
          @media screen and (max-width: 1110px) {
            section.itemBox .swiper_item .swiper-wrapper::before {
              width: 98%;
              left: 48%; } }
      @media screen and (max-width: 1110px) {
        section.itemBox .swiper_item.right {
          margin: 0 0 0 auto; }
          section.itemBox .swiper_item.right .swiper-wrapper::before {
            left: 52%; } }
      section.itemBox .swiper_item .swiper-pagination {
        display: flex;
        justify-content: flex-end;
        align-items: flex-start;
        gap: 10px;
        width: fit-content;
        flex-direction: column;
        position: absolute;
        left: 4%;
        bottom: 4%; }
        @media screen and (max-width: 1110px) {
          section.itemBox .swiper_item .swiper-pagination.right {
            left: auto;
            right: 4%; } }
        section.itemBox .swiper_item .swiper-pagination .custom-page-title2 {
          display: inline-block;
          width: auto !important;
          height: auto !important;
          margin: 0 !important;
          background: transparent !important;
          border-radius: 0 !important;
          opacity: 0.5;
          cursor: pointer;
          transition: opacity 0.3s;
          color: #dbcec1;
          font-size: min(1em, 3.2vw); }
        section.itemBox .swiper_item .swiper-pagination .swiper-pagination-bullet-active {
          opacity: 1; }
    section.itemBox .box {
      padding: 0.2em 0 0.2em 1.0em;
      border-left: 2px solid #16494b;
      width: 80%;
      margin: 10% auto; }
      @media screen and (max-width: 1500px) {
        section.itemBox .box {
          width: 92%; } }
      @media screen and (max-width: 1110px) {
        section.itemBox .box {
          width: 90%; } }
      section.itemBox .box h2 {
        font-size: min(3.5em, 12vw);
        font-weight: 400;
        line-height: 1.0;
        margin-bottom: 16px; }
      section.itemBox .box p {
        font-size: min(0.9em, 3vw); }
      section.itemBox .box a {
        display: none; }
        @media screen and (max-width: 1110px) {
          section.itemBox .box a {
            display: block;
            color: #16494b;
            letter-spacing: .05em;
            font-size: min(1em, 3.2vw);
            display: flex;
            position: relative;
            padding: 0 0.7em 0 1.0em;
            line-height: 1.0;
            width: fit-content;
            margin-top: 2.0em; }
            section.itemBox .box a::before, section.itemBox .box a::after {
              content: "";
              position: absolute;
              width: 4px;
              height: 100%;
              content: '';
              border-top: solid 1px;
              border-bottom: solid 1px; }
            section.itemBox .box a::before {
              border-left: solid 1px;
              left: 0; }
            section.itemBox .box a::after {
              border-right: solid 1px;
              right: 0; }
            section.itemBox .box a span {
              position: relative;
              display: block;
              width: 25px; }
              section.itemBox .box a span::before, section.itemBox .box a span::after {
                position: absolute;
                top: 50%;
                right: 0;
                height: 1px;
                background: #16494b;
                content: ''; }
              section.itemBox .box a span::before {
                width: 15px;
                transform: translateY(-50%); }
              section.itemBox .box a span::after {
                width: 8px;
                transform: translateY(-50%) rotate(35deg);
                transform-origin: right center; } }
        section.itemBox .box a.right {
          margin: 2.0em 0 0 auto; }
      @media screen and (max-width: 1110px) {
        section.itemBox .box.right {
          border-left: none;
          border-right: 2px solid #16494b;
          padding-left: 0;
          padding-right: 1em; }
          section.itemBox .box.right h2, section.itemBox .box.right p {
            text-align: right; } }
    section.itemBox .styles {
      width: 80%;
      margin: 0 auto; }
      @media screen and (max-width: 1500px) {
        section.itemBox .styles {
          width: 92%; } }
      @media screen and (max-width: 1110px) {
        section.itemBox .styles {
          width: 100%;
          margin: 30% auto; } }
      section.itemBox .styles h4 {
        display: none; }
        @media screen and (max-width: 1110px) {
          section.itemBox .styles h4 {
            display: block;
            font-size: min(2em, 4vw);
            text-align: center;
            font-weight: 400;
            margin: 1.0em auto; } }
      section.itemBox .styles .swiper_style {
        padding-bottom: 40px; }
        @media screen and (max-width: 800px) {
          section.itemBox .styles .swiper_style {
            padding-bottom: 20px; } }
        section.itemBox .styles .swiper_style .swiper-wrapper {
          display: flex;
          flex-wrap: wrap;
          align-items: flex-start;
          justify-content: space-between; }
          @media screen and (max-width: 1110px) {
            section.itemBox .styles .swiper_style .swiper-wrapper {
              flex-wrap: nowrap; } }
        section.itemBox .styles .swiper_style .swiper-slide {
          padding: 24px;
          background: #16494b;
          width: calc(100%/2 - 1%) !important;
          margin-bottom: 2%;
          max-width: 500px;
          box-sizing: border-box; }
          @media screen and (max-width: 1500px) {
            section.itemBox .styles .swiper_style .swiper-slide {
              padding: 16px; } }
          @media screen and (max-width: 1110px) {
            section.itemBox .styles .swiper_style .swiper-slide {
              width: 90% !important;
              padding: 50px; } }
          @media screen and (max-width: 800px) {
            section.itemBox .styles .swiper_style .swiper-slide {
              width: 70% !important;
              padding: 24px; } }
          section.itemBox .styles .swiper_style .swiper-slide h3 {
            margin-top: 1.0em;
            color: #dbcec1;
            font-size: min(1em, 3.2vw);
            font-weight: 300;
            letter-spacing: .05em;
            padding-bottom: 0.5em;
            border-bottom: 0.02em solid #dbcec1; }
          section.itemBox .styles .swiper_style .swiper-slide .flex {
            margin-top: 0.7em;
            display: flex;
            align-items: center;
            justify-content: space-between; }
            section.itemBox .styles .swiper_style .swiper-slide .flex p {
              color: #dbcec1;
              font-size: min(1em, 3.2vw);
              letter-spacing: .05em; }
              section.itemBox .styles .swiper_style .swiper-slide .flex p span {
                font-size: 80%; }
            section.itemBox .styles .swiper_style .swiper-slide .flex a {
              color: #dbcec1;
              letter-spacing: .05em;
              font-size: min(1em, 3.2vw);
              display: flex;
              position: relative;
              padding: 0 0.7em 0 1.0em;
              line-height: 1.0; }
              @media screen and (max-width: 1500px) {
                section.itemBox .styles .swiper_style .swiper-slide .flex a {
                  padding: 0 0.5em; } }
              @media screen and (max-width: 1110px) {
                section.itemBox .styles .swiper_style .swiper-slide .flex a {
                  padding: 0 0.7em 0 1.0em; } }
              section.itemBox .styles .swiper_style .swiper-slide .flex a::before, section.itemBox .styles .swiper_style .swiper-slide .flex a::after {
                content: "";
                position: absolute;
                width: 4px;
                height: 110%;
                content: '';
                border-top: solid 1px;
                border-bottom: solid 1px; }
              section.itemBox .styles .swiper_style .swiper-slide .flex a::before {
                border-left: solid 1px;
                left: 0; }
              section.itemBox .styles .swiper_style .swiper-slide .flex a::after {
                border-right: solid 1px;
                right: 0; }
              section.itemBox .styles .swiper_style .swiper-slide .flex a span {
                position: relative;
                display: block;
                width: 25px; }
                section.itemBox .styles .swiper_style .swiper-slide .flex a span::before, section.itemBox .styles .swiper_style .swiper-slide .flex a span::after {
                  position: absolute;
                  top: 50%;
                  right: 0;
                  height: 1px;
                  background: #dbcec1;
                  content: ''; }
                section.itemBox .styles .swiper_style .swiper-slide .flex a span::before {
                  width: 15px;
                  transform: translateY(-50%); }
                section.itemBox .styles .swiper_style .swiper-slide .flex a span::after {
                  width: 8px;
                  transform: translateY(-50%) rotate(35deg);
                  transform-origin: right center; }
        section.itemBox .styles .swiper_style .swiper-horizontal > .swiper-pagination-bullets, section.itemBox .styles .swiper_style .swiper-pagination-bullets.swiper-pagination-horizontal, section.itemBox .styles .swiper_style .swiper-pagination-custom, section.itemBox .styles .swiper_style .swiper-pagination-fraction {
          bottom: 0; }
        section.itemBox .styles .swiper_style .swiper-pagination {
          display: none; }
          @media screen and (max-width: 1110px) {
            section.itemBox .styles .swiper_style .swiper-pagination {
              display: block; } }
        section.itemBox .styles .swiper_style .swiper-pagination-bullet {
          background-color: #a3948b;
          height: 6px;
          width: 6px;
          opacity: .5; }
        section.itemBox .styles .swiper_style .swiper-pagination-bullet-active {
          opacity: 1; }

.credit {
  margin: 10% auto; }
  @media screen and (max-width: 1110px) {
    .credit {
      margin: 10% auto 15%; } }
  .credit p {
    text-align: center;
    font-size: min(1em, 3.2vw);
    letter-spacing: 1px;
    line-height: 2.0;
    font-weight: 600; }

.lp_footer {
  background: #16494b;
  padding: 10% 0; }
  @media screen and (max-width: 800px) {
    .lp_footer {
      padding: 20% 0; } }
  .lp_footer .logo {
    display: block;
    width: fit-content;
    margin: 0 auto; }
    .lp_footer .logo img {
      width: 200px; }
      @media screen and (max-width: 800px) {
        .lp_footer .logo img {
          width: 150px; } }
  .lp_footer .sns {
    width: 300px;
    margin: 5em auto 10em;
    display: flex;
    align-items: center;
    justify-content: space-between; }
    @media screen and (max-width: 800px) {
      .lp_footer .sns {
        width: 200px; } }
    .lp_footer .sns a {
      display: block; }
      .lp_footer .sns a img {
        height: 20px;
        width: auto; }
  .lp_footer .copy {
    font-size: min(0.8em, 2.8vw);
    color: #dbcec1;
    text-align: center;
    letter-spacing: 1px; }
