@charset "utf-8";

/* ===========================================================

	Title: top.css
	Created: 2024-10-1

=========================================================== */
/*

	header
    hamburger
    main-visual
    data
    portfolio-slider
    banner_stock
    banner-group
    banner_special


=========================================================== */
/* ===========================================================

	header

=========================================================== */
/* global-header__logo
----------------------------------------------------------- */
.global-header,
.global-header__logo path,
.global-navigation__primary:link,
.global-navigation__primary:visited {
  transition: all 0.5s;
}

body.js-top-header {
  .global-header {
    background-color: rgba(255, 255, 255, 0);
  }

  .global-header__logo path {
    fill: rgb(255, 255, 255);
  }

  .global-navigation__primary:link,
  .global-navigation__primary:visited {
    color: #fff;
  }

  .hamburger-inner,
  .hamburger-inner::before,
  .hamburger-inner::after {
    background-color: #fff;
  }
}

/* ===========================================================

	top-main-visual

=========================================================== */
.main-visual {
  position: relative;
  height: 100svh;
  width: 100%;
  z-index: 0;
  background-color: #000;
}

.main-visual::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  background: #000 url("../img/top/mainvisual.jpg") no-repeat;
  background-position: 90% 50%;
  background-size: cover;
  z-index: 1;
  animation: main-visual-img 8s cubic-bezier(0.275, 0, 0.175, 1) 0s 1 normal forwards;
}

@keyframes main-visual-img {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.1, 1.1);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1, 1);
  }
}

.main-visual__slogan {
  position: absolute;
  text-align: left;
  left: 0;
  bottom: var(--px--32);
  z-index: 2;

  padding: 0 16px;

  p {
    position: relative;
    overflow: hidden;
    animation: title 1.25s cubic-bezier(0.75, 0, 0.175, 1) 1.5s 1 normal forwards;
    opacity: 0;

    &::after,
    &::after {
      content: "";
      width: 100%;
      height: 100%;
      display: block;
      position: absolute;
      top: 0;
      background-color: var(--color--gold);
      animation: title--effect 1.25s cubic-bezier(0.75, 0, 0.175, 1) 1.5s 1 normal both;
    }
  }
}

@keyframes title {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes title--effect {
  0% {
    width: 0%;
    left: 0%;
  }

  50% {
    width: 100%;
    left: 0%;
  }

  100% {
    left: 100%;
  }
}

@keyframes title--after {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 1;
  }
}

.main-visual__slogan--en {
  color: var(--color--gold);
  font-family: var(--font-family-en);
  font-size: var(--px--48);
  font-weight: 500;
  text-transform: uppercase;
  line-height: 80%;
}

.main-visual__slogan--ja {
  display: inline-block;
  color: #fff;
  font-family: var(--font-family-serif);
  font-size: var(--px--20);
  font-weight: 300;
  letter-spacing: 0.08rem;
  padding-top: 8px;
}

@media (1200px <=width) {
  .main-visual::after {
    background-position: 50% 50%;
  }

  .main-visual__slogan {
    bottom: var(--px--64);
    left: 50%;
    transform: translate(-50%, 0);
    padding: 0;
  }

  .main-visual__slogan--en {
    white-space: nowrap;
    font-size: var(--px--128);
  }

  .main-visual__slogan--ja {}
}

.scrollbar {
  position: absolute;
  right: 32px;
  top: 50%;
  transform: translate(0, -100%);
  z-index: 3;
  align-items: center;
  display: flex;
  gap: 32px;
  flex-direction: column;
  color: #fff;
}

.scrollbar .txt {
  margin-bottom: 8px;
  font-size: var(--px--14);
  font-family: var(--font-family-en);
  letter-spacing: 0.08rem;
  writing-mode: vertical-rl;
  text-orientation: sideways;
}

.scrollbar .bar {
  background: #fff;
  position: relative;
  display: inline-block;
  width: 1px;
  height: 0;
  opacity: 0.6;
}

.scrollbar .bar {
  background: #fff;
  position: relative;
  display: inline-block;
  width: 1px;
  height: 128;
  opacity: 0.6;
}

.scrollbar .bar::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 128;
  background-color: #fff;
  animation-name: scrollbar--line;
  animation-delay: 1s;
  animation-duration: 1s;
  animation-timing-function: ease-in;
  animation-iteration-count: infinite;
}

@keyframes scrollbar--line {
  0% {
    height: 0;
  }

  100% {
    height: 128px;
  }
}

/* ===========================================================

	main

=========================================================== */
.is-home .contents-style {
  width: 100%;
  max-width: inherit;
  min-width: inherit;
  background-color: #fff;
  z-index: 1;
  position: relative;
  padding-top: 48px;
}

.contents-style h2 {
  position: relative;
  line-height: 1.2;
  font-size: 1.6rem;
  padding: 0 0 32px;
  border: none;
  display: flex;
  align-items: baseline;
  flex-direction: column;
  gap: 1px;
  color: #000;
}

.contents-style h2 span {
  color: #000;
  font-weight: 500;
  font-family: var(--font-family-serif);
  font-size: var(--px--15);
}

.contents-style h2 strong {
  font-family: var(--font-family-en);
  font-size: var(--px--48);
  font-weight: 500;
  text-transform: uppercase;
  color: #000;
  position: relative;
  z-index: 2;
}

@media (768px <=width) {
  .contents-style h2 strong {
    font-size: var(--px--80);
  }
}

.contents-style h2.js-scrollin strong,
.contents-style h2.js-scrollin span {
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  text-align: left;
}

.contents-style h2.js-scrollin span {
  animation: title--text-span 1.25s cubic-bezier(0.75, 0, 0.175, 1) 0s 1 normal forwards;
}

.contents-style h2.js-scrollin strong {
  animation: title--text-strong 1.25s cubic-bezier(0.75, 0, 0.175, 1) 0s 1 normal forwards;
}

.contents-style h2.js-scrollin strong::after,
.contents-style h2.js-scrollin span::after {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  background-color: var(--color--gold);
  animation: title--effect 1.25s cubic-bezier(0.75, 0, 0.175, 1) 0s 1 normal both;
}

@keyframes title--text-span {
  0% {
    color: rgba(0, 0, 0, 0);
  }

  51% {
    color: rgba(0, 0, 0, 0);
  }

  100% {
    color: rgba(0, 0, 0, 1);
  }
}

@keyframes title--text-strong {
  0% {
    color: rgba(0, 0, 0, 0);
  }

  51% {
    color: rgba(0, 0, 0, 0);
  }

  100% {
    color: rgb(0, 0, 0);
  }
}

@keyframes title--effect {
  0% {
    width: 0%;
    left: 0%;
  }

  50% {
    width: 100%;
    left: 0%;
  }

  100% {
    left: 100%;
  }
}

.contents-style h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  width: 64px;
  height: 1px;
  background-color: var(--color--brown);
  opacity: 0;
}

.contents-style h2.js-scrollin::after {
  animation: title--after 2s cubic-bezier(0.75, 0, 0.175, 1) 0s 1 normal both;
}

@keyframes title--after {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@media (min-width: 768px) {}

@media (1200px <=width) {}

/* ===========================================================

	link-box

=========================================================== */
.link-box {
  position: relative;
  display: inline-block;
}

.link-box a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--color--brown);
  padding: 8px 0;
  margin: 32px 0 0;
  transition: all 0.4s ease-out;
}

.link-box a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  z-index: -1;
  height: 100%;
  transition: all 0.1s ease-in;
}

.link-box a:hover::before {
  right: 28px;
}

/* link-box__textarrow-wrap
------------------------------------------------- */
.link-box__textarrow-wrap {
  display: flex;
  align-items: center;
  gap: 32px;
}

/* hover */
.link-box a:hover {
  text-decoration: none;
  padding: 8px 32px;
  text-decoration: none;
  color: var(--color--gold);

  .link-box__textarrow-wrap {
    gap: 16px;
  }
}

.link-box a:hover .link-box__textarrow-wrap {
  gap: 16px !important;
}

.link-box a:hover::after {
  width: 100%;
  background-color: #111;
  opacity: 1;
}

@media (min-width: 768px) {}

/* link-box__text
------------------------------------------------- */
.link-box__text {
  font-family: var(--font-family-en);
  font-size: var(--px--20);
  font-weight: 400;
}

.link-box a:hover .link-box__text {
  letter-spacing: 0.05em;
}

@media (768px <=width) {
  .link-box__text {
    display: block;
  }
}

/* link-box__arrow
------------------------------------------------- */
.link-box__arrow {
  position: relative;
  display: inline-block;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: solid 1px var(--color--brown);
  margin-left: 8px;
  overflow: hidden;
}

.link-box__arrow::after {
  position: absolute;
  content: " ";
  vertical-align: middle;
  background-color: var(--color--gold);
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  transform: translate(-50%, -50%);
  border-radius: 100%;
  transition: all 0.5s ease-out;
  z-index: 1;
}

.link-box__arrow::before {
  position: absolute;
  content: " ";
  vertical-align: middle;
  top: 50%;
  left: 50%;
  width: 15px;
  height: 15px;
  border-top: 1px solid var(--color--brown);
  border-right: 1px solid var(--color--brown);
  transform: translate(-50%, -50%) rotate(45deg);
  margin-left: -4px;
  z-index: 2;
}

@media (min-width: 768px) {}

.link-box a:hover .link-box__arrow {
  border: solid 1px rgba(158, 95, 0, 0);
}

.link-box a:hover .link-box__arrow::after {
  width: 100%;
  height: 100%;
}

/* ===========================================================

	top-section

=========================================================== */
.top-section {}

@media (min-width: 768px) {
  .top-section {}
}

@media (1200px <=width) {}

.top-section__inner {
  max-width: 1232px;
  margin: 0 auto;
  text-align: left;
  position: relative;
}

/* ===========================================================

	top-section--about

=========================================================== */
.top-section--about {}

.top-section--about {
  h2 {}

  .top-section__inner {
    padding-bottom: 48px;
  }

  .top-section__inner::after {
    content: "";
    position: absolute;
    top: 48px;
    right: 0;
    width: 100vw;
    height: 100%;
    z-index: -1;
    background-color: #f9f9f9;
  }
}

.about-inner {
  display: flex;
  flex-direction: column-reverse;
  gap: 32px;
}

.about-main {
  .text--read {
    margin-top: 0;
  }
}

.about-main p {}

.about-text {}

.about-text p {}

.about-img {
  width: 100%;
  position: relative;
  flex: 1;
}

.about-img img {}

@media (768px <=width) {
  .top-section--about {
    h2 {
      margin-left: 80px;
    }
  }

  .about-inner {
    flex-direction: row-reverse;
    justify-content: space-between;
    gap: 0;
    padding-bottom: 128px;
  }

  .about-main {
    width: 328px;
    margin: 0 64px;
  }

  .about-img img {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 824px;
  }
}

/* ===========================================================

	top-section--company

=========================================================== */
.top-section--company {
  margin-top: 128px;
  position: relative;
}

.top-section--company {
  h2 {}

  .top-section__inner {}
}

.company-inner {
  position: relative;
}

.company-main {
  position: inherit;

  .text--read {
    margin-top: 0;
  }
}

.company-main p {}

.company-text {}

.company-text p {}

.company-img--01 {
  padding-top: 32px;
}

.company-img--02 {
  display: none;
  top: 0;
  right: 32px;
  transform: translate(100%, 0);
}

.company-img {}

@media (768px <=width) {
  .top-section--company {
    margin-top: 224px;

    h2 {
      padding-top: 198px;
      margin-left: 80px;
    }

    .top-section__inner {
      position: relative;
      padding-bottom: 384px;
    }
  }

  .company-main {
    width: 419px;
    margin-left: 564px;
  }

  .company-img {
    position: absolute;
    z-index: -1;

    img {
      max-width: 520px;
      min-width: 520px;
    }
  }

  .company-img--01 {
    padding: 0;
    left: 440px;
    top: 384px;
    transform: translate(-100%, 0);
  }
}

@media (1200px <=width) {
  .company-img--02 {
    display: block;
  }
}

/* ===========================================================

	top-section--business

=========================================================== */
.top-section--business {
  padding-top: 128px;

  h2 {
    align-items: center;

    &::after {
      left: 50%;
      transform: translate(-50%, 0);
    }
  }
}

.section-break {
  width: 100vw;
  margin: calc(50% - 50vw);
  height: 256px;
  position: relative;
  background: url(/assets/img/top/business-img.jpg) no-repeat;
  background-size: cover;
  position: relative;

  &::before {
    content: "";
    width: 100%;
    height: 100%;
    display: inline-block;
    background: linear-gradient(90deg,
        rgba(0, 0, 0, 0.5) 0%,
        rgba(0, 0, 0, 0) 10.5%,
        rgba(0, 0, 0, 0) 90.5%,
        rgba(0, 0, 0, 0.5) 100%),
      linear-gradient(180deg,
        rgba(0, 0, 0, 0.8) 0%,
        rgba(0, 0, 0, 0) 51%,
        #000 100%);
  }
}

.section-break__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip: rect(auto, auto, auto, auto);
}

.section-break__image::after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100vw;
  height: 100vh;
  background-size: cover;
  background-position: center;
}

.business-cards {
  display: flex;
  justify-content: center;
  flex-direction: column;
  gap: 32px;
  margin-top: -32px;

  .business-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #f9f9f9;
    padding: 48px 64px;

    h3 {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 32px;

      img {
        width: 128px;
      }
    }
  }
}

@media (768px <=width) {
  .top-section--business {
    padding-top: 224px;
  }

  .section-break {
    width: 100%;
    height: 512px;
  }

  .business-cards {
    flex-direction: row;
    margin-top: -128px;
    gap: 64px;
  }

  .business-card {
    max-width: 800px;
  }
}

/* ===========================================================

	top-section--group

=========================================================== */
.top-section--group {
  padding-top: 128px;

  .top-section__inner::after {
    content: "";
    position: absolute;
    top: 48px;
    left: 0;
    width: 100vw;
    height: 100%;
    z-index: -1;
    background-color: #f9f9f9;
  }
}

.group-cards {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 64px;
  flex-wrap: wrap;

  .group-card {
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column-reverse;
    justify-content: center;
    min-height: 320px;
    position: relative;
    gap: 32px;

    p {
      margin-top: var(--px--16);
    }
  }
}

.group-card__img {
  width: 100%;
  height: 256px;
  background-size: cover;
  z-index: -1;
}

.group-card__img--mb-service {
  background-image: url(/assets/img/top/mb-service-img.jpg);
}

.group-card__img--marinedream {
  background-image: url(/assets/img/top/marinedream-img.jpg);
}

@media (768px <=width) {
  .top-section--group {
    h2 {
      margin-left: 80px;
    }
  }

  .group-cards {
    flex-wrap: nowrap;
  }
}

@media (1200px <=width) {
  .top-section--group {
    h2 {
      margin-left: 80px;
    }
  }

  .group-cards {
    margin-left: 80px;
    flex-direction: column;
    align-items: normal;

    .group-card {
      flex-direction: column;
      gap: 0;

      p {
        max-width: 300px;
      }

      p,
      .link-box {
        max-width: 256px;
      }
    }
  }

  .group-card__img {
    position: absolute;
    top: 0;
    right: 0;
    width: 980px;
    height: 320px;

    &::after {
      content: "";
      width: 100%;
      height: 100%;
      display: inline-block;
      background: linear-gradient(90deg,
          #f0f0f0 -1.09%,
          rgba(255, 255, 255, 0) 49.99%);
    }
  }
}

/* ===========================================================

	top-section--contribution

=========================================================== */
.top-section--contribution {
  padding-top: 128px;

  .top-section__inner {
    &::after {
      content: "";
      position: absolute;
      top: 48px;
      right: 0;
      width: 100vw;
      height: 100%;
      z-index: -1;
      background-color: #f9f9f9;
    }
  }

  .contribution-contens {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: 32px;

    .contribution-sub {
      flex-shrink: 0;
    }
  }
}

@media (768px <=width) {}

@media (1200px <=width) {
  .top-section--contribution {

    h2 {
      margin-left: 80px;
    }

    .contribution-contens {
      padding: 0 80px;
      flex-direction: row;
      align-items: center;
    }
  }
}

/* ===========================================================

	top-section--information

=========================================================== */
.top-section--information {
  padding-top: 32px;

  .top-section__inner::after {
    content: "";
    position: absolute;
    top: 48px;
    left: 0;
    width: 100vw;
    height: 100%;
    z-index: -1;
    background-color: #f9f9f9;
  }

  h2 {
    margin-left: 80px;
  }
}


.list_news {
  padding: 0 80px 24px;

  li {
    display: flex;
    gap: 32px;
    border-bottom: 1px solid var(--line-color);
    padding: 24px 0;

    &:first-child {
      border-top: 1px solid #d7dce0;
    }

    .date {
      width: 5em;
      display: inline-block;
    }
  }
}