@charset "utf-8";

/*==================================================
cmn
==================================================*/
body {
	font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
	color: #000;
	font-size: 17px;
	font-size: 1.7rem;
	line-height: 2;
	margin: 0px;
	padding: 0px;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	text-size-adjust: 100%;
  position: relative;
}
.en {
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-style: italic;
}

@media screen and (max-width: 767px) {
body {
	font-size: 24.4px;
	font-size: 2.441875rem;
}
}

/*==================================================
head
==================================================*/
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
}
.site-header .header-inner {
  padding: 5rem;
}
.site-header .header-inner .site-logo {
  width: 35rem;
  opacity: 0;
  transform: translateY(2rem);
}

@media screen and (min-width: 768px) {
  .menu-trigger {
    display: none;
  }
  .global-nav {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .site-header .header-inner {
    padding: 5rem 5rem 0;
  }
  .site-header .header-inner .site-logo {
    width: 57.7333%;
  }
.menu-trigger {
  position: fixed;
  top: 3rem;
  right: 3rem;
  z-index: 2000;
  width: 10.4rem;
  height: 10.4rem;
  border: none !important;
  background: #fff;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.menu-trigger .hamburger {
  position: relative;
  width: 8rem;
  height: 4.2rem;
}
.menu-trigger .hamburger span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5.16rem;
  height: 0.24rem;
  background: #000;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  transition: transform .3s ease, opacity .3s ease;
}
.menu-trigger .hamburger span:nth-child(1) {
  transform: translate(-50%, -50%) translateY(-1.2rem);
}
.menu-trigger .hamburger span:nth-child(2) {
  transform: translate(-50%, -50%);
}
.menu-trigger .hamburger span:nth-child(3) {
  transform: translate(-50%, -50%) translateY(1.2rem);
}
.menu-trigger .en {
  display: block;
  margin-top: 0.8rem;
  font-size: 2.8rem;
  line-height: 1;
  color: #000;
}
body.nav-open .menu-trigger .hamburger span:nth-child(1) {
  transform: translate(-50%, -50%) rotate(45deg);
}
body.nav-open .menu-trigger .hamburger span:nth-child(2) {
  opacity: 0;
}
body.nav-open .menu-trigger .hamburger span:nth-child(3) {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.global-nav {
  position: fixed;
  top: 0;
  right: -100%;
  width: 86.6667%;
  height: 100vh;
  background: #319041;
  text-align: center;
  transition: right .3s;
  z-index: 1500;
}
.global-nav ul {
  padding: 24rem 7.5rem 0;
}
.global-nav ul li {
  padding: 6rem 0;
  color: #fff;
  font-size: 3.0rem;
}
.global-nav ul li:not(:last-child) {
  border-bottom: 1px solid #fff;
}
body.nav-open .global-nav {
  right: 0;
}
}

/*==================================================
foot
==================================================*/
footer {
  background: #dddddd;
  padding: 6rem 4.5rem;
}
footer .foot-menu ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0 auto 4rem;
  width: 100%;
}
footer .foot-menu ul li {
  padding: 0 1em;
  position: relative;
  text-align: center;
  line-height: 1;
}
footer .foot-menu li:not(:last-child)::after {
  content: '';
  width: 1px;
  height: 1em;
  background: #000;
  position: absolute;
  top: 50%;
  bottom: 0;
  right: 0;
  transform: translateY(-50%);
}
footer .foot-logo {
  width: 35.0rem;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
footer {
  padding: 6rem 0;
}
footer {
  padding: 6rem 0;
}
footer .foot-menu ul li {
  padding: 1.5rem 1em;
  position: relative;
  text-align: center;
  line-height: 1;
}
footer .foot-menu li:first-child::after,
footer .foot-menu li:nth-child(3)::after {
  content: none;
}
footer .foot-logo {
  max-width: auto;
  width: 53.23%;
}
}

/*==================================================
animation
==================================================*/

/* 背景フェードイン */
@keyframes mvBgFadeIn {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
/* 下からふわっと（共通） */
@keyframes slideUpFade {
  0% {
    opacity: 0;
    transform: translateY(3rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* MVロゴ用：中央位置を保持したまま少し下→上 */
@keyframes mvLogoIn {
  0% {
    opacity: 0;
    transform: translate(-50%, -40%); /* ちょい下 */
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%); /* 元の位置 */
  }
}
/* SCROLL用：X方向のセンタリングも含めて動かす */
@keyframes mvScrollIn {
  0% {
    opacity: 0;
    transform: translate(-50%, 5.5rem);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}
/* ロード完了（body.is-loaded）で順番に発火 */
body.headquarters.is-loaded .mv {
  animation: mvBgFadeIn 0.8s ease-out forwards; /* ① 背景 */
}
body.headquarters.is-loaded .mv .mv-logo {
  animation: mvLogoIn 0.8s ease-out 0.8s forwards; /* ② MVロゴ（0.8秒後） */
}
body.headquarters.is-loaded .site-header .site-logo {
  animation: slideUpFade 0.8s ease-out 1.6s forwards; /* ③ ヘッダーロゴ（その後） */
}
body.headquarters.is-loaded .mv .mv-scroll {
  animation: mvScrollIn 0.8s ease-out 1.6s forwards; /* ③ SCROLL（ヘッダーロゴと同時） */
}

body.page.is-loaded .site-header .site-logo {
  animation: slideUpFade 0.6s ease-out 0s forwards;
}

/*==================================================
content
==================================================*/
main {
  position: relative;
}
section {
  padding: 15rem 0;
  position: relative;
}
section.bg-gray {
  background: #f4f4f4;
}
.headquarters section::before {
  content: '';
  background: url("../img/section-bg01.svg") no-repeat top left;
  background-size: 100%;
  width: 25rem;
  height: 25rem;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  transform: translateX(-10rem);
  opacity: 0;
  transition: transform 0.8s ease-out, opacity 0.8s ease-out;
}
.headquarters section::after {
  content: '';
  background: url("../img/section-bg02.svg") no-repeat bottom right;
  background-size: 100%;
  width: 25rem;
  height: 25rem;
  display: block;
  position: absolute;
  right: 0;
  bottom: 0;
  transform: translateX(10rem);
  opacity: 0;
  transition: transform 0.8s ease-out, opacity 0.8s ease-out;
}

.tit01 {
  text-align: center;
  font-size: 3.4rem;
  margin-bottom: 11rem;
  line-height: 1;
}
@media screen and (max-width: 767px) {
.tit01 {
  font-size: 4.8rem;
}
}
.tit01 .en {
  display: block;
  color: #319041;
  font-size: 2.2rem;
  padding-top: 3rem;
}

.mv {
  background: url("../img/mv_bg.jpg") no-repeat bottom center;
  background-size: cover;
  width: 100%;
  height: 100vh;
  position: relative;
  opacity: 0;
}
.mv .mv-logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  max-width: 350px;
  width: 21.8967%;
  opacity: 0;
}
.mv .mv-scroll {
  position: absolute;
  bottom: 7rem;
  left: 50%;
  transform: translate(-50%, 0);
  text-align: center;
  opacity: 0;
  animation: none;
}
body.is-loaded .mv .mv-scroll.is-loop {
  animation: mvScrollMove 2s ease-in-out infinite;
  opacity: 1;
}
@keyframes mvScrollMove {
  0% {
    bottom: 7rem;
  }
  50% {
    bottom: 5.5rem;
  }
  100% {
    bottom: 7rem;
  }
}
.mv .mv-scroll span {
  font-size: 1.835rem;
  margin-bottom: 1.5rem;
  color: #fff;
}
.mv .mv-scroll::after {
  content: '';
  background: url("../img/scroll-arrow.svg") no-repeat center center;
  background-size: 100%;
  width: 2.56356rem;
  height: 1.45148rem;
  display: block;
  margin: 0 auto;
}
.headquarters .mv::before,
.headquarters .mv::after {
  content: none !important;
}

@media screen and (max-width: 767px) {
.mv {
  height: 100svh;
}
.mv .mv-logo {
  max-width: auto;
  width: 44.8%;
}
.mv .mv-scroll {
  bottom: 7rem;
}
.mv .mv-scroll span {
  font-size: 2.8rem;
}
.mv .mv-scroll::after {
  width: 3.59079rem;
  height: 1.79539rem;
}
section::before {
  width: 20rem;
  height: 20rem;
}
section::after {
  width: 20rem;
  height: 20rem;
}
}

.first-sec {
  padding: 10rem 0 15rem;
}
.first-sec .first-sec-title {
  text-align: center;
  font-size: 5.5rem;
  margin-bottom: 10rem;
}
.first-sec .first-sec-content figure {
  max-width: 960px;
  width: 100%;
  margin: 0 auto 4rem;
  position: relative;
}
.first-sec .first-sec-content figure img {
  display: block;
  width: 100%;
  height: auto;
}
.first-sec .first-sec-content figure img + img {
  position: absolute;
  inset: 0;
}
.first-sec .first-sec-content figure img {
  opacity: 0;
  transition: opacity 2s ease;
}
.first-sec .first-sec-content figure img.is-active {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .first-sec .first-sec-content figure img {
    transition: none;
  }
}
.first-sec h3 {
  text-align: right;
  font-size: 4.8rem;
  line-height: 15.0rem;
  margin-bottom: 2rem;
  display: block;
  position: relative;
  z-index: 1;
}
.first-sec h3 .bg-title {
  text-align: left;
  font-size: 15.6rem;
  line-height: 1;
  color: rgba(49,144,65,.15);
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
}
.first-sec .first-sec-content p span {
  font-size: 1.5rem;
}

/* ==============================
   movie modal
============================== */
.mov {
  max-width: 750px;
  margin: 0 auto 10rem;
  cursor: pointer;
  transition: .3s;
}
.mov:hover {
  opacity: .7;
}
.modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 3000;
}
.modal.is-active {
  display: flex;
}
.modal-content {
  background: #000;
  padding: 0;
  max-width: 1200px;
  width: 90%;
}
.modal-video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.modal-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.modal-close {
  position: absolute;
  top: -40px;
  right: 0;
  background: none;
  color: #fff;
  border: none;
  font-size: 32px;
  cursor: pointer;
}
.modal-bg {
  position: absolute;
  inset: 0;
}

@media screen and (max-width: 767px) {
.first-sec .first-sec-title {
  font-size: 4.4rem;
  line-height: 1.5;
}
.first-sec .first-sec-content figure {
  width: calc(100% + 5rem + 5rem);
  margin: 0 -5rem 4rem;
}
.first-sec h3 {
  line-height: 12.0rem;
}
.first-sec h3 .bg-title {
  font-size: 13.0rem;
  left: -5rem;
}
.first-sec .first-sec-content p .zeb {
  font-size: 2.4rem;
}
}

.introduction-sec .flex-box:not(:last-child) {
  margin-bottom: 12rem;
}
.introduction-sec .flex-box .intro-img-box {
  width: 52.5%;
  position: relative;
  z-index: 1;
  order: 1;
}
.introduction-sec .flex-box.reverse .intro-img-box {
  order: 2;
}
.introduction-sec .flex-box .intro-img-box img {
  box-shadow: 2rem 2rem 0 rgba(49,144,65,.25);
}
.introduction-sec .flex-box .intro-txt-box {
  width: 47.5%;
  padding-left: 6rem;
  position: relative;
  z-index: 0;
  order: 2;
}
.introduction-sec .flex-box.reverse .intro-txt-box {
  padding-left: 0;
  padding-right: 6rem;
  order: 1;
}
.introduction-sec .flex-box .intro-txt-box h3 {
  font-size: 3.6rem;
  padding-bottom: 2.5rem;
  margin-bottom: 3rem;
  line-height: 1;
  position: relative;
}
.introduction-sec .flex-box.reverse .intro-txt-box h3 {
  font-size: 3.6rem;
  padding-bottom: 2.5rem;
  margin-bottom: 3rem;
  position: relative;
}
.introduction-sec .flex-box .intro-txt-box h3::after {
  content: '';
  width: 123%;
  height: 3px;
  background: #319041;
  position: absolute;
  bottom: 0;
  right: 0;
}
.introduction-sec .flex-box.reverse .intro-txt-box h3::after {
  right: auto;
  left: 0;
}
.introduction-sec .flex-box .intro-txt-box .intro-btn-wrap {
  width: 100%;
}
.introduction-sec .flex-box .intro-txt-box .intro-btn-wrap a {
  display: block;
  width: 100%;
  height: 100%;
  text-align: center;
  font-size: 2.4rem;
  line-height: 1;
  padding: 2.5rem 0;
  color: #fff;
  box-sizing: border-box;
  border: 2px solid #319041;
  background: #319041;
  position: relative;
  transition: .3s;
}
.introduction-sec .flex-box .intro-txt-box .intro-btn-wrap a span {
  position: absolute;
  width: 1.01454rem;
  height: auto;
  top: 50%;
  right: 3rem;
  transform: translateY(-50%);
  transition: .3s;
}
.intro-btn-icon svg polygon {
  fill: #fff;
  transition: .3s;
}

@media screen and (min-width: 768px) {
.introduction-sec .flex-box .intro-txt-box .intro-btn-wrap a:hover {
  color: #319041;
  background: #fff;
  opacity: 1;
}
.intro-btn:hover .intro-btn-icon svg polygon {
  fill: #319041;
}
}

@media screen and (max-width: 767px) {
.introduction-sec .flex-box .intro-img-box {
  width: 100%;
  margin-bottom: 7rem;
}
.introduction-sec .flex-box .intro-img-box img {
  box-shadow: 2rem 2rem 0 rgba(49,144,65,.25);
}
.introduction-sec .flex-box .intro-txt-box {
  width: 100%;
  padding-left: 0;
}
.introduction-sec .flex-box.reverse .intro-txt-box {
  padding-right: 0;
  order: 2;
}
.introduction-sec .flex-box .intro-txt-box h3::after {
  width: 100%;
}
.introduction-sec .flex-box.reverse .intro-txt-box h3::after {
  right: 0;
  left: 0;
}
.introduction-sec .flex-box.reverse .intro-txt-box h3 {
  font-size: 3.8rem;
}
.introduction-sec .flex-box .intro-txt-box .intro-btn-wrap a {
  font-size: 2.8rem;
  padding: 3rem 0;
}
}

.feature-sec .feature-block:not(:last-child) {
  margin-bottom: 10rem;
}
.feature-sec .feature-tit {
  font-size: 2.4rem;
  line-height: 1.3;
  padding-bottom: 2rem;
  margin-bottom: 5rem;
  border-bottom: 3px solid #319041;
}
.feature-sec .s10t-txt-box {
  width: 45%;
}
.feature-sec .s10t-txt-box figure {
  padding-top: 4rem;
}
.feature-sec .s10t-img-box {
  width: 50.833%;
}
.feature-sec h4 {
  font-size: 2.4rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
  text-indent: -1em;
  padding-left: 1em;
}
.feature-sec h4::before {
  content: '■';
  color: #319041;
}
.feature-sec .facility-list {
  width: 100%;
  margin-bottom: 5rem;
}
.feature-sec .facility-box:first-child {
  width: 42%;
}
.feature-sec .facility-box:nth-child(2) {
  width: 46.5%;
}
.feature-sec .feature-subblock:not(:last-child) {
  margin-bottom: 10rem;
}
.feature-sec .feature-subblock .facility-text {
  margin-bottom: 5rem;
}
.feature-sec .feature-subblock ul li {
  line-height: 2;
  margin-bottom: .5rem;
  text-indent: -1em;
  padding-left: 1em;
}
.feature-sec .feature-subblock ul li::before {
  content: '●';
}
.feature-sec .feature-subblock.ecooffice-subblock {
  margin-bottom: 7rem;
}
.feature-sec .ecooffice-box01 {
  width: 19.75%;
}
.feature-sec .ecooffice-box02 {
  width: 43.91667%;
}
.feature-sec .ecooffice-box03 {
  width: 28.3334%;
}
.feature-sec .feature-wide-box {
  padding-top: 5rem;
}
.feature-sec .lcc-txt-box {
  width: 48.1667%;
}
.feature-sec .lcc-img-box {
  width: 43.5%;
}

.feature-sec .feature-last-block {
  padding-top: 10rem;
}
.feature-sec .feature-last-block figure {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
}



@media screen and (max-width: 767px) {
.feature-sec .s10t-txt-box,
.feature-sec .s10t-img-box {
  width: 100%;
}
.feature-sec .s10t-txt-box {
  margin-bottom: 5rem;
}
.feature-sec .s10t-img-box figure {
  padding-top: 4rem;
}
.feature-sec .feature-tit {
  font-size: 3.6rem;
}
.feature-sec h4 {
  font-size: 3.24rem;
}
.feature-sec .facility-box:first-child {
  width: 100%;
  margin-bottom: 4rem;
}
.feature-sec .facility-box:nth-child(2) {
  width: 100%;
}
.feature-sec .facility-box:not(:last-child){
  margin-bottom: 5rem;
}
.feature-sec .ecooffice-box01 {
  width: 39.323%;
  margin-bottom: 5rem;
  order: 1;
}
.feature-sec .ecooffice-box02 {
  width: 100%;
  order: 3;
}
.feature-sec .ecooffice-box03 {
  width: 56.462%;
  margin-bottom: 5rem;
  order: 2;
}
.feature-sec .lcc-txt-box {
  width: 100%;
  margin-bottom: 5rem;
}
.feature-sec .lcc-img-box {
  width: 100%;
}
.feature-sec .feature-last-block {
  padding-top: 5rem;
}
}


/*==================================================
Animation
==================================================*/
.fade-left,
.fade-right {
  opacity: 0;
}
@keyframes fadeInLeftIntro {
  0% {
    opacity: 0;
    transform: translateX(-4rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInRightIntro {
  0% {
    opacity: 0;
    transform: translateX(4rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInUpIntro {
  0% {
    opacity: 0;
    transform: translateY(4rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.fade-left.in-view {
  animation: fadeInLeftIntro 0.8s ease-out forwards;
}
.fade-right.in-view {
  animation: fadeInRightIntro 0.8s ease-out forwards;
}
@media screen and (max-width: 767px) {
  .fade-left.in-view,
  .fade-right.in-view {
    animation: fadeInUpIntro 0.8s ease-out forwards;
  }
}

.fade-left-global,
.fade-right-global {
  opacity: 0;
}
@keyframes fadeLeftGlobal {
  0% {
    opacity: 0;
    transform: translateX(-4rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeRightGlobal {
  0% {
    opacity: 0;
    transform: translateX(4rem);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.fade-left-global.inview {
  animation: fadeLeftGlobal .8s ease-out forwards;
}
.fade-right-global.inview {
  animation: fadeRightGlobal .8s ease-out forwards;
}

.js-anm {
  opacity: 0;
  transform: translateY(4rem);
  transition: opacity .6s ease-out, transform .6s ease-out;
}
.js-anm.inview {
  opacity: 1;
  transform: translateY(0);
}

.js-flowing {
  display: block;
  white-space: nowrap;
  clip-path: inset(0 100% 0 0);
  visibility: visible;
}
.js-flowing.inview {
  animation: flowing-anim 0.8s forwards ease-out;
}
@keyframes flowing-anim {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  100% {
    clip-path: inset(0 0 0 0);
  }
}

section.sec.inview::before {
  transform: translateX(0);
  opacity: 1;
}
section.sec.inview-after::after {
  opacity: 1;
  transform: translateX(0);
}



/*==================================================
common
==================================================*/
.page-tit {
  height: 50rem;
  background: #9fc9e1;
}
.page-tit h1 {
  padding-top: 25rem;
  font-size: 6.5rem;
  line-height: 1;
  color: #fff;
  text-align: center;
  opacity: 0;
  transform: translateY(4rem);
  transition: opacity .6s ease-out, transform .6s ease-out;
}
.page-tit.is-animate h1 {
  opacity: 1;
  transform: translateY(0);
}
.page .first-sec {
    padding: 10rem 0;
}
.page .first-sec h2 {
  margin-bottom: 5.5rem;
}
.bottom-border-tit {
  font-size: 2.4rem;
  line-height: 1.3;
  padding-bottom: 2rem;
  margin-bottom: 5rem;
  border-bottom: 3px solid #319041;
}
@media screen and (min-width: 768px) {
  .page .first-sec h2 {
    line-height: 1;
  }
}
@media screen and (max-width: 767px) {
  .page .first-sec h2 {
    font-size: 5.4rem;
    margin-bottom: 8rem;
  }
  .bottom-border-tit {
    line-height: 1.4;
    font-size: 3.6rem;
}
}


/*==================================================
facilities
==================================================*/
.office-sec .office-sec-content {
  margin-bottom: 5rem;
}
.office-sec .office-sec-content h3 {
  font-size: 3.4rem;
  color: #319041;
  margin-bottom: 3.5rem;
}
.office-sec .office-sec-content p {
  margin-bottom: 4rem;
}
.office-sec .office-sec-content .office-slide {
  margin-bottom: 5rem;
}

.infiniteslide_wrap {
  overflow: visible !important;
}
.office-slide {
  position: relative;
  overflow: visible;
}
.office-slide01,
.office-slide02 {
  overflow: hidden;
}
.office-slide__list {
  display: flex;
  padding: 0;
  list-style: none;
  margin: 0;
  flex-wrap: nowrap;
  align-items: center;
  will-change: transform;
  transform: translate3d(0,0,0);
}
.office-slide__list.loop-track {
  animation-name: officeLoop;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: var(--loop-duration, 60s);
  animation-play-state: running;
}
@media (hover:hover) and (pointer:fine) {
  .office-slide__list.loop-track:hover {
    animation-play-state: paused;
  }
}
@keyframes officeLoop {
  from { transform: translate3d(0,0,0); }
  to   { transform: translate3d(calc(-1 * var(--loop-distance, 0px)),0,0); }
}
.office-slide__frame {
  padding: 3rem 0;
  overflow: visible;
}
.office-slide__item {
  position: relative;
  flex: 0 0 auto;
}
.office-slide__media {
  width: auto;
  height: 38.4rem;
  overflow: visible;
  transform: scale(1);
  transition: transform .25s ease;
  will-change: transform;
}
.office-slide__media img {
  width: auto;
  height: 100%;
  display: block;
}
.office-slide__item:hover {
  z-index: 10;
}
.office-slide__item:hover .office-slide__media {
  transform: scale(1.1);
}
.office-slide01,
.office-slide02 {
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  contain: paint;
}

.office-slide__list {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translate3d(0,0,0);
  transform: translate3d(0,0,0);
}

.office-slide__item,
.office-slide__media,
.office-slide__media img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.office-sec .office-sec-floormap-content p {
  margin-bottom: 6rem;
}
.office-sec .office-sec-floormap-content .floor-map-img {
  width: 90%;
  margin: 0 auto;
}

.warehouse-sec .warehouse-block .warehouse-flex {
  padding-top: 5rem;
}
.warehouse-sec .warehouse-block .img-box {
  width: 47.91%;
  margin-bottom: 5rem;
}
.warehouse-sec .warehouse-block .img-box figure {
  margin-bottom: 1.0rem;
}
.warehouse-sec .warehouse-block .img-box:last-child,
.warehouse-sec .warehouse-block .img-box:nth-last-child(2) {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .office-sec .office-sec-content h3 {
    line-height: 1;
  }
  .warehouse-sec .warehouse-block .reverse .txt-box {
    order: 2;
  }
}
@media screen and (max-width: 767px) {
  .office-sec .office-sec-content h3 {
    font-size: 3.8rem;
    letter-spacing: -0.4rem;
  }
  .office-sec .office-sec-content h3 .yk {
    letter-spacing: -1.5rem;
  }
  .office-sec .office-sec-floormap-content .floor-map-img {
    width: 100%;
  }
  .office-slide__item {
  }
  .office-slide__item:hover {
    z-index: auto;
  }
  .office-slide__media {
    height: 48rem;
    transform: none;
    transition: none;
  }
  .office-slide__item:hover .office-slide__media {
    transform: none;
  }
  .warehouse-sec .warehouse-block .txt-box,
  .warehouse-sec .warehouse-block .img-box {
    width: 100%;
  }
  .warehouse-sec .warehouse-block .txt-box {
    margin-bottom: 5rem;
  }
  .warehouse-sec .warehouse-block .img-box:nth-last-child(2) {
    margin-bottom: 5rem;
  }
}
/*==================================================
entrance-object
==================================================*/
.object-sec .object-sec-content-block {
  margin-bottom: 10rem;
}
.object-sec .object-sec-content-block.first-block {
  padding-top: 10rem;
}
.object-sec__design-img-box01 {
  padding-top: 5rem;
  width: 100%;
  margin-bottom: 5rem;
}
.object-sec__design-img-box02,
.object-sec__design-img-box03 {
  width: 46.667%;
}
.object-sec__factory-img {
  padding-top: 5rem;
}
.object-sec__factory-img-box {
  width: 30.555%;
  line-height: 0;
}
.object-sec__place {
  padding-top: 5rem;
}
.object-sec__place-img-box {
  width: 30.555%;
  line-height: 0;
}
.object-sec__complate {
  padding-top: 3rem;
}
.object-sec-content-bottom-block .txt-box {
  width: 45%;
}
.object-sec-content-bottom-block .txt-box .txt-bg-box {
  background: #f4f4f4;
  padding: 3.5rem 3rem;
}
.object-sec-content-bottom-block .txt-box .txt-bg-box h3 {
  font-size: 2.0rem;
}
.object-sec-content-bottom-block .object-sec-content-bottom-block-img-box {
  width: 50%;
  line-height: 0;
}

.simple-tit {
  font-size: 2.4rem;
  margin-bottom: 4rem;
}
.simple-tit::before {
  content: '■';
  color: #319041;
}
.simple-btn {
  max-width: 360px;
  width: 100%;
  margin-bottom: 2.6rem;
}
.simple-btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  background: #319041;
  color: #fff;
  text-align: center;
  line-height: 1;
  padding: 2rem 0;
}
.simple-btn a::after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  width: 1.87636rem;
  height: 1.87636rem;
  background: url("../img/icon-simplelink.svg") no-repeat center center;
  background-size: 100%;
  margin-left: 1rem;
}

@media screen and (max-width: 767px) {
.object-sec__design-img-box02,
.object-sec__design-img-box03 {
  width: 100%;
}
.object-sec__design-img-box02 {
  margin-bottom: 3rem;
}
.object-sec__design-img-box02 figure figucaption,
.object-sec__design-img-box03 figure figucaption {
  line-height: 1;
}
.object-sec__factory-img-box {
  width: 100%;
  margin-bottom: 3rem;
}
.object-sec__factory-img-box:last-child {
  width: 100%;
}
.object-sec__factory-img-box:not(:last-child) {
  margin-bottom: 3rem;
}
.object-sec__place-txt-box {
  width: 100%;
}
.object-sec__place-txt-box:first-child {
  margin-bottom: 3rem;
}
.object-sec__place-img-box {
  width: 100%;
}
.object-sec__place-img-box:not(:last-child) {
  margin-bottom: 3rem;
}
.object-sec-content-bottom-block .txt-box {
  width: 100%;
  order: 2;
}
.object-sec-content-bottom-block .txt-box .txt-bg-box h3 {
  font-size: 2.89rem;
}
.object-sec-content-bottom-block .object-sec-content-bottom-block-img-box {
  width: 100%;
  order: 1;
  margin-bottom: 4rem;
}
  
.simple-tit {
  font-size: 3.2rem;
}
.simple-btn {
  max-width: none;
  width: 82%;
  margin: 0 auto 5rem;
}
.simple-btn a {
  padding: 3rem 0;
}
.simple-btn a::after {
  width: 3.06rem;
  height: 3.06rem;
  margin-left: 1rem;
}
}


/*==================================================
construction
==================================================*/
.construction .page-tit {
  position: fixed;
  inset: 0;
  top: 0;
  height: 100svh;
  overflow: hidden;
  z-index: 1;
}
.construction.ver2 .page-tit {
  height: auto;
  width: 100%;
  aspect-ratio: 32 / 16;
}
.construction .page-tit h1 {
  writing-mode: vertical-rl;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  -webkit-text-stroke:0;
  text-shadow:
    0 0 2px rgba(0,0,0,.85),
    0 0 6px rgba(0,0,0,.55),
    0 0 12px rgba(0,0,0,.35);
  padding: 0;
  text-align: left;
  height: 74rem;
  line-height: 2;
}
.construction .page-tit h1 .first-txt {
  display: block;
  font-size: 4.8rem;
}
.construction .page-tit h1 .second-txt {
  display: block;
  font-size: 3.2rem;
}
.construction .page-tit h1 .last-txt {
  display: block;
  font-size: 4.8rem;
  margin-top: -2.4rem;
}
.construction .page-tit .wrap {
  position: relative;
  z-index: 2;
  height: 100%;
  display: grid;
  place-items: center;
}
.construction .bg_slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.construction .bg_slider__item,
.construction .bg_slider__item picture,
.construction .bg_slider__item img {
  width: auto;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 2400px) {
.construction .bg_slider__item,
.construction .bg_slider__item picture,
.construction .bg_slider__item img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
}
.construction .bg_slider__item{
  position: relative;
  overflow: hidden;
  height: 100%;
}
.construction .bg_slider__item picture{
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
.construction .bg_slider__item img{
  position: absolute;
  left: 50%;
  top: 50%;
  height: 100%;
  width: auto;
  transform: translate(-50%, -50%) scale(1.08);
  transform-origin: center center;
  object-fit: cover;
  object-position: center center;
  backface-visibility: hidden;
  will-change: transform;
}
.construction.ver2 .bg_slider__item img{
  height: auto;
  width: 100%;
}
.construction .bg_slider .slick-list,
.construction .bg_slider .slick-track {
  height: 100%;
}
.construction .bg_slider .slick-slide {
  height: 100%;
}
.construction .bg_slider .slick-slide > div{
  height: 100%;
}
@keyframes bgZoomOut{
  0%   { transform: translate(-50%, -50%) scale(1.05); }
  100% { transform: translate(-50%, -50%) scale(1); }
}
.construction .bg_slider .slick-slide.slick-active img {
  animation: bgZoomOut var(--bgDur, 6000ms) linear both;
}
.construction footer {
  position: relative;
  z-index: 2;
}
.content-block{
  position: relative;
  z-index: 2;
  margin-top: 100svh;
  background: #fff;
}
.construction.ver2 .content-block{
  margin-top: 0;
}
.construction.is-loading{
  overflow:hidden;
}
.construction.is-loading main{
  opacity:0;
}
.construction .page-tit{
  opacity:0;
}
.construction .page-tit.is-mv-ready{
  opacity:1;
}
.construction .page-loader{
  position:fixed;
  inset:0;
  z-index:99999;
  background:#fff;
  display:grid;
  place-items:center;
  pointer-events:none;
}
.construction .page-loader__circle{
  width:20px;
  height:20px;
  border-radius:999px;
  background:#fff;
  transform:scale(0);
}
.construction.is-ready main{
  opacity:1;
  transition:opacity .2s linear;
}
.construction.is-ready .page-loader__circle{
  animation:loaderReveal .9s ease-out forwards;
}
.construction.is-ready .page-loader{
  animation:loaderFadeOut .4s linear .85s forwards;
}
@keyframes loaderReveal{
  0%{transform:scale(0);}
  100%{transform:scale(200);}
}
@keyframes loaderFadeOut{
  to{opacity:0;visibility:hidden;}
}
.construction .bg_slider .slick-slide.is-zoom img{
  animation:bgZoomOut var(--bgDur,5500ms) linear forwards;
}
.construction .bg_slider .slick-slide.is-zoomed img{
  transform:scale(1);
}
.construction .bg_slider .slick-slide.is-freeze img{
  animation:none!important;
}

.construction-sec.construction-first {
  padding-top: 15rem;
}
.construction-sec {
  padding: 10rem 0;
}
.construction-sec:last-child {
  padding: 10rem 0 15rem;
}
.construction-sec .construction-sec__img-block {
  padding-top: 5rem;
}
.construction-sec .construction-sec__img-box {
  width: 47.9167%;
}
.construction-subtit {
  font-size: 2.2rem;
  font-weight: 600;
  color: #319041;
  margin-bottom: 2rem;
  line-height: 1;
}
.construction-sec-content-block {
  padding-top: 4rem;
}
.construction-sec-content-block.first-block {
  padding-top: 0;
}
.construction-sec__img-box-s {
  width: 30.55%;
}
.construction-sec-bg-green-box {
  background: #dceade;
  padding: 5rem;
  margin-top: 5rem;
}
.construction-bggreen-tit {
  font-size: 2.0rem;
  color: #000;
}
.construction-bggreen-tit::before {
  content: '■';
  color: #319041;
}
.construction-sec .construction-sec__txt-box {
  width: 47.9167%;
}
.construction-sec .construction-sec__relative-img-box {
  width: 47.9167%;
  position: relative;
}
.construction-sec .construction-sec__relative-img-box .sub-img {
  position: absolute;
  width: 49.8rem;
  bottom: -2.5rem;
  left: -28rem;
}
.construction-sec-border-green-box {
  border: .3rem solid #319041;
  background: #fff;
  padding: 5rem;
  margin-top: 8rem;
  position: relative;
}
.construction-sec-border-green-box .green-tit {
  background: #319041;
  width: 20rem;
  text-align: center;
  color: #fff;
  font-size: 2.2rem;
  position: absolute;
  top: 0;
  left: 5rem;
  transform: translateY(-50%);
  border-radius: 999px;
}
.construction-sec-border-green-box .slide-box {
  width: 47.9167%;
}
.construction-sec-border-green-box .slide-box .slide-tit {
  font-size: 2.2rem;
  text-align: center;
  margin-bottom: 3rem;
}
.construction-sec__slide-box__item {
  position: relative;
}
.construction-sec__slide-box__item .slide-box__item-date {
  position: absolute;
  top: 3rem;
  left: 3rem;
}
.construction-sec__slide-box__item .slide-box__item-date p {
  color: #fff;
  line-height: 1;
  letter-spacing: .1rem;
}
.construction .construction-sec__slide-box .slick-next{
  width: 5.4rem;
  height: 5.4rem;
  background: url("../img/construction/construction-arrow-next.svg") no-repeat center/contain;
  border:0;
  padding:0;
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  font-size:0;
}
.construction .construction-sec__slide-box .slick-next:before{
  content:"";
}
@media screen and (max-width: 767px) {
.construction.ver2 .page-tit {
  height: auto;
  width: 100%;
  aspect-ratio: 15 / 24;
}
.construction.ver2 .content-block{
  margin-top: 0;
}
.construction-sec .construction-sec__img-box, 
.construction-sec .construction-sec__img-box-s {
    width: 100%;
}
.construction-sec .construction-sec__img-box:not(:last-child),
.construction-sec .construction-sec__img-box-s:not(:last-child) {
  margin-bottom: 3rem;
}
.construction-subtit,
.construction-bggreen-tit {
    font-size: 3.2rem;
}
.construction-sec-border-green-box .green-tit {
    width: 27rem;
    font-size: 3.2rem;
}
.construction-sec .construction-sec__txt-box {
  width: 100%;
  margin-bottom: 3rem;
}
.construction-sec .construction-sec__relative-img-box {
  width: 100%;
}
.construction-sec .construction-sec__relative-img-box .sub-img {
    width: 47.23%;
    bottom: 4rem;
    left: -3.5rem;
}
.construction-sec-border-green-box .slide-box {
    width: 100%;
}
.construction-sec-border-green-box .slide-box:first-child {
  margin-bottom: 5rem;
}
.construction-sec-border-green-box .slide-box .slide-tit {
    font-size: 3.0rem;
  margin-bottom: 1rem;
}
}

.construction.ver2 .page-tit{
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 32 / 16;
  overflow: hidden;
}

/* wrap を枠いっぱいにして中央寄せ */
.construction.ver2 .page-tit .wrap{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 2;
  padding: clamp(12px, 2vw, 24px); /* 余白 */
}

/* h1：absolute/固定高さを解除して、枠内に収まるように */
.construction.ver2 .page-tit h1{
  position: relative;
  left: auto;
  top: auto;
  transform: none;

  writing-mode: vertical-rl;
  height: auto;
  max-height: 100%;
  line-height: 2;
}

/* フォント：rem固定をやめて clamp で可変（例） */
.construction.ver2 .page-tit h1 .first-txt,
.construction.ver2 .page-tit h1 .last-txt{
  font-size: clamp(24px, 2.4vw, 48px);
}
.construction.ver2 .page-tit h1 .second-txt{
  font-size: clamp(16px, 1.6vw, 32px);
}
.construction.ver2 .page-tit h1 .last-txt{
  margin-top: clamp(-12px, -1.2vw, -24px);
}
/* フォント：rem固定をやめて clamp で可変（例） */
.construction.ver2 .page-tit h1 .first-txt,
.construction.ver2 .page-tit h1 .last-txt{
  font-size: clamp(24px, 2.4vw, 48px);
}
.construction.ver2 .page-tit h1 .second-txt{
  font-size: clamp(16px, 1.6vw, 32px);
}
.construction.ver2 .page-tit h1 .last-txt{
  margin-top: clamp(-12px, -1.2vw, -24px);
}

/* SPは比率だけ差し替え */
@media (max-width: 767px){
  .construction.ver2 .page-tit{ aspect-ratio: 15 / 24; }
  .construction.ver2 .page-tit h1 .first-txt,
  .construction.ver2 .page-tit h1 .last-txt{
    font-size: clamp(18px, 5.2vw, 40px);
  }
  .construction.ver2 .page-tit h1 .second-txt{
    font-size: clamp(14px, 3.6vw, 28px);
  }
}