@charset "UTF-8";
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  text-decoration: none;
  color: initial;
  transition: 0.3s;
}
a:hover {
  opacity: 0.7;
}

body {
  font-family: "zen-old-mincho", sans-serif;
  font-style: normal;
}

_::-webkit-full-page-media, _:future, :root body {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-feature-settings: "vert" 1, "vrt2" 1;
}

* {
  box-sizing: border-box;
}

body {
  max-width: 100vw;
  max-width: 1920px;
  background-color: #e5dfd9;
}

.tab,
.sp {
  display: none !important;
}

@media screen and (max-width:1080px) {
  .tab {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .sp {
    display: block !important;
  }
}
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 100vw;
}

.vertical-rl {
  font-feature-settings: normal;
  writing-mode: vertical-rl;
  white-space: nowrap;
  text-orientation: upright;
}

_::-webkit-full-page-media,
_:future,
:root .home_news_title,
_::-webkit-full-page-media,
_:future,
:root .home_news_summary,
_::-webkit-full-page-media,
_:future,
:root .vertical-rl,
_::-webkit-full-page-media,
_:future,
:root .vertical-rl *,
_::-webkit-full-page-media,
_:future,
:root .home_harmonious-hotel_title {
  letter-spacing: -1px !important;
}

@-moz-document url-prefix() {
  .home_news_title,
  .home_news_summary,
  .vertical-rl,
  .vertical-rl *,
  .home_harmonious-hotel_title {
    letter-spacing: -1px !important;
  }
}
@supports (-webkit-touch-callout: none) {
  .vertical-rl {
    letter-spacing: -1px !important;
  }
}
.global_mamu-switch {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 22px;
  height: 22px;
  z-index: 9999;
  transition: 0.3s;
}
.global_mamu-switch:hover {
  opacity: 0.7;
}

.global_mamu-switch_item {
  width: 16.4px;
  height: 16.4px;
  position: absolute;
  cursor: pointer;
  transform-origin: center center;
  will-change: transform, opacity;
  opacity: 1;
  transition: opacity 0.15s ease, transform 0s ease 0.15s;
}

.global_mamu-switch_item.active {
  opacity: 0;
}

.global_mamu-switch_up {
  top: 0;
  right: 0;
}
.global_mamu-switch_up.active {
  transform: rotate(180deg);
}

.global_mamu-switch_down {
  bottom: 0;
  left: 0;
}
.global_mamu-switch_down.active {
  transform: rotate(180deg) translate(10px, -10px);
}

#global_memu.active .global_mamu-switch_item {
  opacity: 1;
  transition: opacity 0.25s ease 0.15s, transform 0s ease;
}

.global_menu_wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  max-width: 100vw;
  max-height: 100vh;
  overflow-x: hidden;
  overflow-y: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
  background-color: rgba(0, 0, 0, 0.8);
  color: #fff;
  padding: 80px 0;
  display: none;
}

.global_menu_wrapper::-webkit-scrollbar {
  display: none;
}

.menu_title {
  font-size: 28px;
  text-align: center;
}

.menu_title_inner {
  text-align: left;
  display: inline-block;
  display: inline-block;
  line-height: 1.4;
	letter-spacing: 0.05em;
}

.main_menu {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  font-size: 28px;
  margin-top: 9vh;
}

.menu_item {
  color: #fff !important;
  white-space: nowrap;
}

.main_menu_items {
  display: flex;
  flex-direction: column;
  gap: 2em;
  list-style: outside;
  padding-top: 12dvh;
  padding-right: 180px;
  position: relative;
}
.main_menu_items::after {
  content: "";
  width: 146px;
  height: 257px;
  position: absolute;
  right: 0;
  top: -50px;
  background: url(../img/common/global_menu_bg.png) center/100% 100% no-repeat;
}

.story_menu {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin: 100px auto 0;
  border: 1px solid #fff;
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.3);
  padding: 18px 30px 40px 50px;
}

.story_menu_item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #fff;
  font-size: 20px;
  text-align: left;
  gap: 2em;
  padding-right: 2.5em;
}
.story_menu_item span {
  font-size: 24px;
  margin-top: 1.5em;
}

@media screen and (max-width: 767px) {
  .global_menu_wrapper {
    padding-left: 10%;
    padding-right: 10%;
  }
  .menu_title {
    text-align: left;
    font-size: clamp(14px, 4.167vw, 28px);
  }
  .main_menu {
    align-items: flex-start;
    gap: 4em;
    font-size: clamp(14px, 4.167vw, 28px);
  }
  .main_menu_items {
    padding-right: 40%;
  }
  .main_menu_items::after {
    content: "";
    width: 22.9vw;
    height: 38.99vw;
  }
  .story_menu {
    width: 100%;
    padding: 5% 0;
  }
  .story_menu_item {
    font-size: clamp(12px, 2.976vw, 20px);
  }
  .story_menu_item span {
    font-size: 1.2em;
  }
}
.common_header {
  position: relative;
  z-index: 999;
}

.common_header_logo {
  position: relative;
  margin-top: 6.7vw;
  left: 7.29%;
  display: inline-block;
}

.common_header_logo.is-moved {
  position: fixed;
  transform: translateY(20%);
  margin-top: 0;
}

.global_memu.common_global_memu .global_mamu-switch {
  position: fixed;
  top: 20px;
  right: 20px;
}

.common_header_logo_text {
  font-size: clamp(18px, 1.458vw, 28px);
  letter-spacing: 3px;
}
@media screen and (max-width:1080px) {
  .common_header_logo_text {
    font-size: clamp(18px, 4.167vw, 28px);
  }
}

.footer:not(.home_footer) {
  padding-top: 180px;
}

.footer_text_content {
  display: flex;
  flex-direction: column;
  gap: clamp(50px, 5.208vw, 100px);
}

.common_footer_content {
  flex: 1;
  display: flex;
  justify-content: space-between;
  flex-direction: column-reverse;
  padding-left: 80px;
  width: 100%;
}

.footer_menu {
  list-style: outside;
  margin-top: 0.8em;
  font-size: clamp(18px, 1.458vw, 28px);
  letter-spacing: -0.393em;
  display: flex;
  flex-direction: column;
  gap: 2.5em;
}
@media screen and (max-width:1080px) {
  .footer_menu {
    font-size: clamp(18px, 4.167vw, 28px);
  }
}

.common_footer_menu {
  padding: 0.8em clamp(50px, 5.208vw, 100px) 0;
  order: 1;
}

.footer_imgbox {
  order: 2;
  overflow: hidden;
  width: clamp(615px, 64.063vw, 1230px);
}

.footer_img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (max-width:1080px) {
  .common_footer_content {
    flex-direction: column;
    flex-wrap: wrap;
    padding-left: 5%;
    margin-bottom: 60px;
  }
  .common_footer_menu {
    padding: 0.8em 0 0;
    order: -1;
    width: 100%;
    padding-right: 1.1em;
    margin-bottom: 50px;
  }
  .common_footer_info {
    order: 3;
    width: 29%;
    padding-right: 2em;
  }
  .footer_imgbox {
    width: 71%;
  }
}
@media screen and (max-width: 500px) {
  .footer_imgbox {
    width: 65%;
  }
}
.footer_info {
  font-size: clamp(14px, 1.25vw, 24px);
  letter-spacing: -0.4em;
  line-height: 1.4;
}
@media screen and (max-width:1080px) {
  .footer_info {
    font-size: clamp(16px, 3.571vw, 24px);
  }
}

.common_footer_info {
  align-self: flex-start;
  flex: 1;
}

.footer_company_name {
  text-align: right;
  margin-right: 0.5em;
}

.loader_wrapper {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  z-index: 99999;
  background-color: #fff;
}

.loader_wrapper.is-hide {
  display: none;
  z-index: -9999;
}

.loder_contents {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: clamp(18px, 1.458vw, 28px);
}
@media screen and (max-width:1080px) {
  .loder_contents {
    font-size: clamp(18px, 4.167vw, 28px);
  }
}

.loader {
  color: #000;
  font-size: 90px;
  text-indent: -9999em;
  overflow: hidden;
  width: 1em;
  height: 1em;
  border-radius: 50%;
  margin: 72px auto;
  position: relative;
  transform: translateZ(0);
  animation: load6 1.7s infinite ease, round 1.7s infinite ease;
}
@keyframes load6 {
  0% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
  5%, 95% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
  10%, 59% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.087em -0.825em 0 -0.42em, -0.173em -0.812em 0 -0.44em, -0.256em -0.789em 0 -0.46em, -0.297em -0.775em 0 -0.477em;
  }
  20% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.338em -0.758em 0 -0.42em, -0.555em -0.617em 0 -0.44em, -0.671em -0.488em 0 -0.46em, -0.749em -0.34em 0 -0.477em;
  }
  38% {
    box-shadow: 0 -0.83em 0 -0.4em, -0.377em -0.74em 0 -0.42em, -0.645em -0.522em 0 -0.44em, -0.775em -0.297em 0 -0.46em, -0.82em -0.09em 0 -0.477em;
  }
  100% {
    box-shadow: 0 -0.83em 0 -0.4em, 0 -0.83em 0 -0.42em, 0 -0.83em 0 -0.44em, 0 -0.83em 0 -0.46em, 0 -0.83em 0 -0.477em;
  }
}
@keyframes round {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.home_header {
  z-index: 99;
}

.home_header_number {
  padding: 18px 22px;
}

.home_header_logo {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 260px;
  margin: 0 auto;
  text-align: center;
  padding: 13px 8px;
  background: url(../img/home-1/top_logo_bg.png) center/100% 100% no-repeat;
  transform: translateY(-100px);
  transition: opacity 0.5s ease, transform 0.5s ease;
  will-change: opacity, transform;
  z-index: 99;
}

.home_header_logo_img {
  width: 180px;
}

@media screen and (max-width:1080px) {
  .home_header_logo {
    width: 50%;
    max-width: 370px;
  }
  .home_header_logo_img {
    width: 80%;
    max-width: 276px;
  }
}
section {
  overflow: hidden;
}

.home_header_logo.is-show {
  opacity: 1;
  transform: translateY(0);
}

.home_mv-section {
  position: relative;
  aspect-ratio: 1920/1080;
}

.home_mv-bg_img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  max-width: 100vw;
  aspect-ratio: 1920/1080;
  min-height: 120dvh;
}

.home_h1 {
	text-align: center;
  font-size: 28px;
  color: #fff;
  display: flex;
  justify-content: center;
  letter-spacing: 0.05em;
  line-height: 1.4;
  position: absolute;
  top: clamp(80px, 6.8%, 130px);
  left: 0;
  right: 0;
}

.home_main_text_contents {
  position: fixed;
  top: clamp(350px, 25%, 450px);
  left: 50%;
  right: auto; /* ← 念のため解除 */
  margin: 0; /* ← 念のため解除 */
  transform: translateX(-50%);
  backface-visibility: hidden;
  transform-style: preserve-3d;
  width: 69.79%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.home_main_text_content_item {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
  opacity: 0;
  transform: translateX(-16px);
  transition: opacity 1.5s ease, transform 1.5s ease;
  will-change: opacity, transform;
}

.home_main_text_contents.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.home_main_text_contents.is-active.is_stop {
  position: absolute;
  top: initial;
  bottom: 10%;
}

.home_main_text_contents_first.is_stop {
  opacity: 0 !important;
}

.home_main_text_content_item.is-show {
  opacity: 1;
  transform: translateY(0);
}

@media screen and (max-width:1080px) {
  .home_mv-section {
    aspect-ratio: 672/1110;
  }
  .home_h1 {
    width: 74.4%;
    margin: 0 auto;
    justify-content: flex-start;
    font-size: clamp(20px, 4.167vw, 42px);
    top: clamp(45px, 13.393vw, 135px);
  }
  .home_mv-bg_img {
    aspect-ratio: 672/1110;
  }
  .home_main_text_contents {
    width: 74.4%;
    top: clamp(350px, 53.4vh, 600px);
  }
  .home_main_text_content_item {
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .home_main_text_content_item_kanji {
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
  .home_main_text_content_item_alphabet {
    width: clamp(20px, 3.869vw, 28px);
  }
  .home_main_text_content_item_alphabet img {
    width: 100%;
  }
}
@media screen and (max-width: 500px) {
  .home_mv-section {
    aspect-ratio: initial;
    min-height: 120dvh;
  }
  .home_mv-bg_img {
    aspect-ratio: initial;
  }
  .home_main_text_contents {
    top: 46%;
  }
  .home_main_text_content_item_kanji img {
    width: 80%;
  }
}
@media screen and (max-width: 374px) {
  .home_main_text_content_item_kanji img {
    width: 76%;
  }
  .home_main_text_content_item_alphabet img {
    width: 90%;
  }
}
.home_harmonious-hotel_section {
  display: flex;
  padding: clamp(142px, 14.792vw, 284px) 0 clamp(49px, 5.104vw, 98px);
  background-color: #e5dfd9;
}

.home_harmonious-hotel_imgbox {
  flex: 1;
}

.home_harmonious-hotel_img {
  border-radius: 16px;
  width: 100%;
  height: auto;
}

.home_harmonious-hotel_text-content {
  width: 42.9%;
  font-size: clamp(18px, 1.458vw, 28px);
  display: flex;
  justify-content: flex-end;
  white-space: nowrap;
  letter-spacing: -0.323em;
  line-height: 1.3;
  padding-left: 2em;
}

.home_harmonious-hotel_text-item {
  padding-right: 12.5%;
  display: flex;
  flex-direction: column;
  gap: 1.55em;
}

.home_harmonious-hotel_text-item02 {
  padding-right: 10.6%;
}

.home_harmonious-hotel_title {
  font-size: clamp(24px, 2.0vw, 50px);
  margin: 1.7em calc(1.2em + 12.5%) 2.94em 0;
  letter-spacing: -0.4em;
}

@media screen and (max-width:1080px) {
  .home_harmonious-hotel_section {
    padding: clamp(72.5px, 21.577vw, 218px) 0 clamp(123px, 36.643vw, 369px);
  }
  .home_harmonious-hotel_imgbox {
    width: 73.27%;
    align-self: flex-end;
  }
  .home_harmonious-hotel_img {
    border-radius: 8px;
  }
  .home_harmonious-hotel_text-content {
    width: 100%;
    font-size: clamp(14px, 5.167vw, 42px);
    padding-left: 0;
  }
  .home_harmonious-hotel_text-item {
    padding-right: 27.976vw;
    margin-bottom: 7.3em;
    gap: 0;
  }
  .home_harmonious-hotel_title {
    margin: 4.2em 1.3em 0 0;
    font-size: clamp(24px, 7.44vw, 75px);
  }
  .home_harmonious-hotel_text-item02 {
		font-size: clamp(16px, 5.167vw, 28px);
    padding-right: 46.8vw;
    margin-top: -76.3vw;
    margin-bottom: 0;
  }
}
.home_co-creation_section {
  position: relative;
  overflow: hidden;
  min-height: 130vh;
}

.home_co-creation-bg {
  position: absolute;
  inset: 0; /* はみ出しで端見え防止 */
  z-index: 0;
  will-change: transform;
}

.home_co-creation-bg_img {
  width: 100%;
  height: 100%;
  min-height: 130vh;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  transform: none !important;
}

.home_co-creation-bg.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  inset: auto;
  z-index: 0;
  transform: translate3d(0, 0, 0);
}

.home_co-creation-bg.is-releasing {
  transition: transform 320ms ease;
}

.home_co-creation-text-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  will-change: transform;
  color: #fff;
  width: 81%;
  margin: 0 auto;
}

.home_co-creation-text_title {
  font-size: clamp(22px, 1.979vw, 38px);
  letter-spacing: -0.395em;
  padding-right: 24%;
}

.home_co-creation-text_item {
  font-size: clamp(18px, 1.458vw, 28px);
  display: flex;
  flex-direction: column;
  gap: 1.7em;
  line-height: 1.3;
  letter-spacing: -0.393em;
}
.home_co-creation-text_item span {
  letter-spacing: normal;
}

@media screen and (max-width:1080px) {
  .home_co-creation-text-content {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    margin-right: 0;
    white-space: nowrap;
    width: 100%;
  }
  .home_co-creation-text_title {
    padding-right: 0;
    font-size: clamp(20px, 5.655vw, 38px);
    margin-bottom: 5.83em;
  }
  .home_co-creation-text_item {
    font-size: clamp(16px, 5.167vw, 28px);
  }
  .home_co-creation-text_item span {
    letter-spacing: normal;
  }
}
.home_circulation_section {
  padding: clamp(65px, 6.771vw, 130px) 0 0;
}

.home_circulation_text-content {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  margin: 0 auto;
  padding-bottom: clamp(10px, 2vw, 20px);
  white-space: nowrap;
}

.home_circulation_text_title {
  font-size: clamp(24px, 2.0vw, 50px);
  letter-spacing: -0.4em;
  margin-left: 1.5em;
  margin-top: -0.2em;
  line-height: 1.4;
}

.home_circulation_text_item {
  display: flex;
  flex-direction: column;
  font-size: clamp(16px, 1.548vw, 28px);
  gap: 1.7em;
  line-height: 1.3;
  letter-spacing: -0.393em;
}

.home_circulation_imgbox {
  display: flex;
  justify-content: flex-end;
  width: 70.8%;
  margin-left: auto;
  gap: 1%;
}

.home_circulation_imgbox_img {
  width: 100%;
  flex: 1;
}

.home_circulation_imgbox_capture {
  font-size: clamp(18px, 1.875vw, 36px);
  letter-spacing: -0.4em;
  margin-top: 0.6em;
}

@media screen and (max-width:1080px) {
  .home_circulation_section {
    padding: clamp(92px, 27.381vw, 184px) 9vw 0;
  }
  .home_circulation_text-content {
    padding-bottom: clamp(146px, 47.619vw, 320px);
  }
  .home_circulation_text_title {
    font-size: clamp(25px, 7.44vw, 50px);
    margin-left: 0.4em;
  }
  .home_circulation_text_item {
    font-size: clamp(16px, 5.167vw, 28px);
  }
  .home_circulation_imgbox {
    width: 94.4%;
  }
  .home_circulation_imgbox_capture {
    font-size: clamp(18px, 5.357vw, 36px);
  }
}
.home_creation_section {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1920/1560;
  min-height: 100vh;
}

/* 背景（通常：section内） */
.home_creation_bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  will-change: transform;
  overflow: hidden;
}

.home_creation_bg picture {
  display: block;
  width: 100%;
  height: 100%;
}

/* 画像はtransformしない（ジャダー回避） */
.home_creation_bg_img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1920/1560;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
  transform: none !important;
}

/* 背景固定（完全停止） */
.home_creation_bg.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  right: auto;
  bottom: auto;
  z-index: 0;
  transform: translate3d(0, 0, 0);
  opacity: 1;
  visibility: visible;
}

/* fixed解除時だけ滑らかに復帰 */
.home_creation_bg.is-releasing {
  transition: transform 320ms ease;
}

/* 文字は上に重ねる */
.home_creation_text_content {
  position: relative;
  z-index: 1;
  will-change: transform;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  gap: 183px;
}

@-moz-document url-prefix() {
  .home_creation_text_content {
    width: 100%;
  }
}
.home_creation_text_title {
  font-size: clamp(22px, 1.979vw, 38px);
  letter-spacing: -0.395em;
}

.home_creation_text_item {
  font-size: clamp(18px, 1.458vw, 28px);
  letter-spacing: -0.393em;
  display: flex;
  flex-direction: column;
  gap: 1.7em;
  line-height: 1.3;
}

@media screen and (max-width:1080px) {
  .home_creation_section,
  .home_creation_bg_img {
    aspect-ratio: 690/990;
    max-width: 100vw;
  }
  .home_creation_text_item {
    font-size: clamp(16px, 5.167vw, 28px);
    margin-right: -0em;
  }
}
.home_succeed_in_life_section {
  background-color: #fff;
}

.home_succeed_in_life_section {
  display: flex;
}

.home_succeed_in_life_imgbox {
  width: 25.5%;
}

.succeed_in_life_img {
  width: 100%;
  height: auto;
}

.home_succeed_in_life_text_content {
  flex: 1;
  font-size: clamp(16px, 1.25vw, 24px);
  line-height: 8.5;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-left: 2em;
}

/* ============================================================
   PC パララックス最適化
============================================================ */
@media (min-width: 1080.9px) {
  .home_news_parallax_section {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1/1; /* ← カード5枚が通過できる高さ（重要） */
    padding-top: 15vh;
    margin-top: -1px;
    padding-bottom: 15vh;
    background: linear-gradient(#000, #3d3a39);
  }
  /* ===============================
     背景（少し大きめに上下余白を持つ）
  ================================ */
  .home_news_bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    z-index: 0;
    will-change: transform;
    pointer-events: none;
  }
  .home_news_bg picture,
  .home_news_bg_img {
    width: 100%;
    height: 100%;
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: center center;
       object-position: center center;
    transform: none !important;
  }
  /* ===============================
     カード（中央に縦並び）
  ================================ */
  .home_news_parallax_cards {
    position: absolute;
    top: 30%;
    left: 5%;
    right: 5%;
    transform: translate(-50%, -50%);
    z-index: 3;
    min-height: auto;
    writing-mode: vertical-rl;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 5vh; /* 見た目に合わせて調整できる */
  }
  .home_news_parallax_card {
    /*flex: 1;*/
  }
  /* カード本体 */
  .home_news_parallax_card .home_news_parallax_card__box {
    font-size: clamp(16px, 1.25vw, 24px);
    border-radius: 14px;
    background: #f5f5f5;
    width:auto;
    max-height: 66.8vh;
    line-height: 1.6;
    display: block;
    writing-mode: vertical-rl;
    text-orientation: upright;
  }
  /* カード間隔を動的生成 */
  .card2 {
    margin-top: 14vh;
  }
  .card3 {
    margin-top: 28vh;
  }
  .card4 {
    margin-top: 42vh;
  }
  .card5 {
    margin-top: 56vh;
  }
}
.home_news_title {
  font-size: clamp(18px, 1.458vw, 28px);
  letter-spacing: -0.393em;
}

.home_news_summary {
  font-size: clamp(16px, 1.25vw, 24px);
  letter-spacing: -0.4em;
  line-height: 1.4;
  padding-top: 1.3em;
}

.home_news_parallax_card .home_news_parallax_card__box {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 20px 1em;
}

.home_news_summary {
  flex: 1;
  overflow: hidden;
}

/* ============================================================
   1080px未満は Slick 用デザイン
============================================================ */
@media (max-width: 1080px) {
  .home_news_parallax_section {
    min-height: auto;
    padding-top: 15vh;
    padding-bottom: 15vh;
    margin-top: -1px;
    background: linear-gradient(#000, #3d3a39);
    overflow: hidden;
  }
  .home_news_bg {
    position: relative;
    height: auto;
    text-align: right;
  }
  .home_news_bg_img {
    width: 78%;
    max-width: 100vw;
  }
  .home_news_parallax_cards {
    transform: none;
    writing-mode: horizontal-tb;
    justify-content: space-between;
    gap: 5%;
    box-sizing: content-box;
    margin-top: 146px;
  }
  .home_news_parallax_cards .slick-list {
    padding-left: 30% !important;
  }
  .home_news_parallax_card {
    flex: 1;
    margin: 0 0.5%;
    max-height: 66.8vh;
  }
  .home_news_parallax_card.js-inview {
    transform: none !important;
    opacity: 1 !important;
  }
  .home_news_parallax_card .home_news_parallax_card__box {
    font-size: clamp(16px, 1.25vw, 24px);
    border-radius: 14px;
    background: #f5f5f5;
    width: 100%;
    padding: 20px 1.2em;
    max-height: initial;
    line-height: 1.6;
    writing-mode: vertical-rl;
    text-orientation: upright;
    overflow: hidden;
  }
  _::-webkit-full-page-media, _:future, :root .home_news_parallax_card .home_news_parallax_card__box {
    padding: 20px 1em;
  }
  .home_news_title {
    font-size: clamp(18px, 5.167vw, 28px);
  }
  .home_news_summary {
    font-size: clamp(16px, 5.167vw, 24px);
  }
}
.home_footer {
  margin-top: -1px;
  position: relative;
  color: #fff;
}

.home_footer_bg_img {
  width: 100%;
}

.home_footer_title_wrapper {
  position: absolute;
  top: 15%;
  left: 0;
  right: 0;
}

@-moz-document url-prefix() {
  .home_footer_title_wrapper {
    width: 100%;
    display: flex;
  }
}
.home_footer_text_title {
  text-align: center;
  margin: 0 auto;
  font-size: clamp(10px, 2.083vw, 20px);
  letter-spacing: -0.393em;
}

.home_footer_text_content {
  position: absolute;
  left: 5%;
  bottom: 5%;
  text-orientation: upright;
}
@media screen and (max-width:1080px) {
  .home_footer_text_content {
    display: none;
  }
}

.home_footer_text_content a {
  color: #fff;
}

@media screen and (max-width:1080px) {
  .home_footer_title_wrapper {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    top: 9%;
    bottom: 14%;
  }
  .home_footer_logo {
    width: 106px;
  }
  .home_footer_text_title {
    font-size: clamp(17px, 1vw, 20px);
    display: flex;
  }
}
.company_page_wrapper {
  width: 75%;
  max-width: 550px;
  margin: 0px auto;
  font-size: clamp(14px, 1.25vw, 24px);
  letter-spacing: -0.4em;
  line-height: 1.4;
}
@media screen and (max-width:1080px) {
  .company_page_wrapper {
    font-size: clamp(16px, 3.571vw, 24px);
    width: 90%;
    max-width: 800px;
  }
}
.company_page_wrapper dd {
  margin-top: 1em;
}

_::-webkit-full-page-media, _:future, :root .company_page_wrapper,
_::-webkit-full-page-media, _:future, :root .lower_page_title {
  letter-spacing: -1px !important;
}

.lower_page_title {
  font-size: clamp(18px, 1.458vw, 28px);
  letter-spacing: -0.393em;
  margin-left: 0.57em;
}
@media screen and (max-width:1080px) {
  .lower_page_title {
    font-size: clamp(18px, 4.167vw, 28px);
  }
}

.company_company_info,
.company_company_history,
.company_company_map,
.recruit_page_content {
  display: flex;
  flex-direction: row-reverse;
  gap: 1em;
  margin-top: 100px;
  margin-left: auto;
  width: 100%;
}
.company_company_info dl,
.company_company_info p,
.company_company_history dl,
.company_company_history p,
.company_company_map dl,
.company_company_map p,
.recruit_page_content dl,
.recruit_page_content p {
  font-feature-settings: normal;
  writing-mode: vertical-rl;
  white-space: nowrap;
  text-orientation: upright;
  flex-shrink: 0;
}

.company_item_list {
  display: flex;
  flex-direction: row-reverse;
  gap: 1.5em 1em;
  flex-wrap: wrap;
}

.company_company_history dl,
.company_company_history p {
  display: flex;
  max-height: 70dvh;
}
.company_company_history dd,
.company_company_history p {
  white-space: initial !important;
}

.company_company_map {
  margin-top: 180px;
  width: 100%;
}

.company_company_mapiframe {
  flex: 1;
  width: 475px;
  height: 541px;
}
.company_company_mapiframe iframe {
  aspect-ratio: 475/541;
}

@media screen and (max-width: 767px) {
  .company_company_mapiframe {
    aspect-ratio: 1/1;
    width: 70%;
    height: auto;
  }
  .company_company_mapiframe iframe {
    aspect-ratio: 1/1;
  }
}
.recruit_page_content {
  min-height: 70dvh;
  margin-top: 120px;
}

.recruit_item_list {
  margin-top: 1.2em;
}

.info_news_parallax_section.home_news_parallax_section {
  background: transparent !important;
  padding-top: 15vh;
  aspect-ratio: initial;
  transition: 0.4s;
}

.info_news_parallax_cards {
  flex-wrap: wrap;
}

@media (min-width: 1080.9px) {
  .info_news_bg {
    opacity: 0 !important;
  }
  .info_news_parallax_cards {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-start;
    position: static !important;
    width: 90%;
    margin: 0 auto;
    writing-mode: horizontal-tb;
    transform: none !important;
    gap: 0 5vw;
  }
  .info_news_parallax_card {
    width: calc((100% - 20vw) / 5);
    flex: initial !important;
    gap: 10vw;
  }
  /* 1・6・11・16... */
  .info_news_parallax_card:nth-child(5n+1) {
    margin-top: 0;
  }
  /* 2・7・12... */
  .info_news_parallax_card:nth-child(5n+2) {
    margin-top: 14vh;
  }
  /* 3・8・13... */
  .info_news_parallax_card:nth-child(5n+3) {
    margin-top: 28vh;
  }
  /* 4・9・14... */
  .info_news_parallax_card:nth-child(5n+4) {
    margin-top: 42vh;
  }
  /* 5・10・15... */
  .info_news_parallax_card:nth-child(5n+5) {
    margin-top: 56vh;
  }
}
@media (max-width: 1080px) {
  .info_news_bg {
    display: none;
  }
}
/* ===== 初期状態 ===== */
.js-inview {
  opacity: 0;
  transform: translate3d(0, 24px, 0); /* デフォ：下から */
  transition: opacity var(--inview-dur, 0.7s) ease, transform var(--inview-dur, 0.7s) ease;
  transition-delay: var(--inview-delay, 0s);
  will-change: opacity, transform;
}

/* ===== 表示時：必ず元の位置へ ===== */
/* ===== 方向指定 ===== */
.js-inview.--up {
  transform: translate3d(0, 100px, 0);
}

.js-inview.--down {
  transform: translate3d(0, -100px, 0);
}

.js-inview.--left {
  transform: translate3d(-100px, 0, 0);
}

.js-inview.--right {
  transform: translate3d(100px, 0, 0);
}

/* ズーム */
.js-inview.--zoom {
  transform: scale(0.96);
}

/* 速度調整 */
.js-inview.--fast {
  --inview-dur: .4s;
}

.js-inview.--slow {
  --inview-dur: 1s;
}

.js-inview.is-in {
  opacity: 1;
  transform: none; /* ← ここが重要 */
}/*# sourceMappingURL=style.css.map */