@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  height: 100%;
}

body {
  height: 100%;
  overflow-x: hidden;
}

/* 要素のデフォルトスタイルをリセット */
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
figure,
figcaption,
blockquote,
dl,
dd {
  margin: 0;
}

/* リストスタイルのリセット */
ul[class],
ol[class] {
  list-style: none;
}

/* リンクのデフォルトスタイルをリセット */
a {
  text-decoration: none;
  color: inherit;
}

/* テーブル要素のスタイルをリセット */
table {
  border-collapse: collapse;
}

/* フォーム要素のリセット */
input,
button,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
}

h1 {
  font-size: 2rem;
}
@media screen and (max-width: 767px) {
  h1 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1200px) {
  h1 {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 992px) {
  h1 {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 1400px) {
  h1 {
    font-size: 2.75rem;
  }
}
@media screen and (min-width: 1600px) {
  h1 {
    font-size: 3rem;
  }
}

h2 {
  font-size: 1.75rem;
}
@media screen and (max-width: 767px) {
  h2 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1200px) {
  h2 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 992px) {
  h2 {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 1400px) {
  h2 {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 1600px) {
  h2 {
    font-size: 2.75rem;
  }
}

h3 {
  font-size: 1.5rem;
}
@media screen and (max-width: 767px) {
  h3 {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1200px) {
  h3 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 992px) {
  h3 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1400px) {
  h3 {
    font-size: 2.25rem;
  }
}
@media screen and (min-width: 1600px) {
  h3 {
    font-size: 2.5rem;
  }
}

h4 {
  font-size: 1.25rem;
}
@media screen and (max-width: 767px) {
  h4 {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1200px) {
  h4 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 992px) {
  h4 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1400px) {
  h4 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1600px) {
  h4 {
    font-size: 2.25rem;
  }
}

h5 {
  font-size: 1.125rem;
}
@media screen and (max-width: 767px) {
  h5 {
    font-size: 1rem;
  }
}
@media screen and (min-width: 1200px) {
  h5 {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 992px) {
  h5 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1400px) {
  h5 {
    font-size: 1.75rem;
  }
}
@media screen and (min-width: 1600px) {
  h5 {
    font-size: 2rem;
  }
}

h6 {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  h6 {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1200px) {
  h6 {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 992px) {
  h6 {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1400px) {
  h6 {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1600px) {
  h6 {
    font-size: 1.75rem;
  }
}

p {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  p {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1200px) {
  p {
    font-size: 1rem;
  }
}
@media screen and (min-width: 992px) {
  p {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1400px) {
  p {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1600px) {
  p {
    font-size: 1.375rem;
  }
}

a {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  a {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1200px) {
  a {
    font-size: 1rem;
  }
}
@media screen and (min-width: 992px) {
  a {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1400px) {
  a {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1600px) {
  a {
    font-size: 1.375rem;
  }
}

div {
  font-size: 1rem;
}
@media screen and (max-width: 767px) {
  div {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 1200px) {
  div {
    font-size: 1rem;
  }
}
@media screen and (min-width: 992px) {
  div {
    font-size: 1.125rem;
  }
}
@media screen and (min-width: 1400px) {
  div {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 1600px) {
  div {
    font-size: 1.375rem;
  }
}

.text__black {
  color: #0a0a0b;
}

.bg__black {
  background-color: #0a0a0b;
}

.text__gray {
  color: #787881;
}

.bg__gray {
  background-color: #787881;
}

.text__white {
  color: #f4f4f9;
}

.bg__white {
  background-color: #f4f4f9;
}

.text__red {
  color: #e74c3c;
}

.bg__red {
  background-color: #e74c3c;
}

.text__blue {
  color: #3498db;
}

.bg__blue {
  background-color: #3498db;
}

.text__green {
  color: #2ecc71;
}

.bg__green {
  background-color: #2ecc71;
}

.text__yellow {
  color: #f1c40f;
}

.bg__yellow {
  background-color: #f1c40f;
}

.text__dark_blue {
  color: #34495e;
}

.bg__dark_blue {
  background-color: #34495e;
}

.text__light_gray {
  color: #ecf0f1;
}

.bg__light_gray {
  background-color: #ecf0f1;
}

.text__turquoise {
  color: #1abc9c;
}

.bg__turquoise {
  background-color: #1abc9c;
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
  Header
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */
body {
  background-color: #0f0d0c;
  color: #fbfbfb;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
}

/* ＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝
  Header Navigation
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝ */
.sec_header {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
}
.sec_header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
}
@media screen and (min-width: 1200px) {
  .sec_header {
    background-color: transparent;
  }
  .sec_header__inner {
    padding: 30px 40px 30px 30px;
    height: 100px;
    max-width: 1800px;
    margin: 0 auto;
    gap: 40px;
  }
}

.bl_logo {
  padding: 0;
}
.bl_logo__link {
  font-size: 16px;
  font-weight: 900;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  display: inline-block;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
}
@media screen and (min-width: 1200px) {
  .bl_logo__link {
    font-size: 28px;
  }
}

/* Hamburger Menu Button */
.bl_hamburger {
  display: flex;
  width: 48px;
  height: 48px;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  z-index: 1001;
  transition: transform 0.3s ease;
}
@media screen and (min-width: 1200px) {
  .bl_hamburger {
    display: none;
  }
}
.bl_hamburger:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.bl_hamburger:hover {
  transform: scale(1.1);
}
.bl_hamburger:active {
  transform: scale(0.95);
}
.bl_hamburger__line {
  display: block;
  width: 28px;
  height: 2px;
  background-color: #fff;
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  margin-bottom: 6px;
  transform-origin: center;
  border-radius: 2px;
}
.bl_hamburger__line:last-child {
  margin-bottom: 0;
}
.bl_hamburger.is-active .bl_hamburger__line:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}
.bl_hamburger.is-active .bl_hamburger__line:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.bl_hamburger.is-active .bl_hamburger__line:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Navigation Overlay */
.bl_navOverlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(10, 10, 10, 0.96);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 40px 24px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
@media screen and (min-width: 1200px) {
  .bl_navOverlay {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none;
  }
}
.bl_navOverlay.is-active {
  opacity: 1;
  visibility: visible;
}

/* Navigation Menu - Base Styles */
.bl_navMenu {
  width: 100%;
  max-width: 600px;
  padding: 0 24px;
  margin: 0;
}
.bl_navMenu--pc {
  display: none;
}
@media screen and (min-width: 1200px) {
  .bl_navMenu--pc {
    display: flex;
    align-items: center;
    height: 100%;
    margin-left: auto;
    width: auto;
    padding: 0;
  }
}
@media screen and (min-width: 1200px) {
  .bl_navMenu--mobile {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .bl_navMenu--mobile {
    width: 100%;
    max-width: 400px;
  }
}
.bl_navMenu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 30px;
  text-align: center;
}
@media screen and (min-width: 1200px) {
  .bl_navMenu__list {
    flex-direction: row;
    gap: 40px;
    text-align: left;
    margin: 0;
    align-items: center;
    height: 100%;
    justify-content: center;
  }
}
.bl_navMenu__item {
  position: relative;
}
@media screen and (min-width: 1200px) {
  .bl_navMenu__item::after {
    content: "";
    position: absolute;
    bottom: 0px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: rgba(251, 251, 251, 0.3);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.3s ease;
  }
  .bl_navMenu__item:hover::after, .bl_navMenu__item.is-active::after {
    transform: scaleX(1);
    transform-origin: left;
  }
}
.bl_navMenu__link {
  display: block;
  text-decoration: none;
  color: #fbfbfb;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-weight: 300;
  font-size: 24px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  padding: 16px 0;
  position: relative;
  transition: color 0.4s ease, transform 0.3s ease;
  line-height: 1.2;
  transform: translateY(0);
  opacity: 0;
  animation: fadeInUp 0.6s ease forwards;
}
.bl_navMenu__link:hover {
  color: rgba(251, 251, 251, 0.8);
  transform: translateY(-2px);
}
@media screen and (min-width: 1200px) {
  .bl_navMenu__link {
    padding: 0;
    display: flex;
    align-items: center;
    min-height: 0px;
    font-size: 16px;
    transform: none;
    opacity: 1;
    animation: none;
    transition: color 0.3s ease;
  }
  .bl_navMenu__link:hover {
    transform: none;
  }
}
@media screen and (max-width: 767px) {
  .bl_navMenu--mobile .bl_navMenu__link {
    font-size: 20px;
    font-weight: 200;
    padding: 5px 32px;
    letter-spacing: 0.5em;
    line-height: 1;
    text-align: center;
    opacity: 1;
    animation: none;
    transform: none;
    color: rgba(255, 255, 255, 0.9);
    display: inline-block;
  }
  .bl_navMenu--mobile .bl_navMenu__link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 40px;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.6);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
  }
  .bl_navMenu--mobile .bl_navMenu__link:hover {
    color: rgb(255, 255, 255);
  }
  .bl_navMenu--mobile .bl_navMenu__link:hover::after {
    transform: translateX(-50%) scaleX(1);
    width: 60px;
  }
  .bl_navMenu--mobile .bl_navMenu__link:active {
    transform: scale(0.96);
  }
}
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.bl_navMenu {
  /* SP Navigation Menu Enhancements */
}
@media screen and (max-width: 767px) {
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__list {
    gap: 48px;
    margin: 0;
    padding: 0;
    text-align: center;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item[data-index="0"] {
    transition-delay: 0.1s;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item[data-index="1"] {
    transition-delay: 0.2s;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item[data-index="2"] {
    transition-delay: 0.3s;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item[data-index="3"] {
    transition-delay: 0.4s;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item:hover {
    transform: translateY(-4px);
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__item:active {
    transform: translateY(-2px);
  }
  .bl_navOverlay.is-active .bl_navMenu .bl_navMenu--mobile {
    opacity: 1;
    transform: translateY(0);
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__link {
    font-size: 20px;
    font-weight: 200;
    padding: 16px 32px;
    letter-spacing: 0.5em;
    line-height: 1;
    text-align: center;
    color: rgba(255, 255, 255, 0.9);
    position: relative;
    transition: color 0.3s ease, transform 0.3s ease;
    display: inline-block;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) scaleX(0);
    width: 40px;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.6);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    transform-origin: center;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__link:hover {
    color: rgb(255, 255, 255);
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__link:hover::after {
    transform: translateX(-50%) scaleX(1);
    width: 60px;
  }
  .bl_navMenu .bl_navMenu--mobile .bl_navMenu__link:active {
    transform: scale(0.96);
  }
  .bl_navMenu .bl_navMenu__item::before,
  .bl_navMenu .bl_navMenu__item::after {
    display: none !important;
  }
}
.bl_navMenu {
  /* nav-icon 共通スタイル - 完全に削除 */
}
.bl_navMenu .nav-icon,
.bl_navMenu .bl_navMenu__icon {
  display: none !important;
}
.bl_navMenu {
  /* Clean SP overlay - ミニマルなデザイン */
}
@media screen and (max-width: 767px) {
  .bl_navMenu .bl_navOverlay {
    background: rgba(10, 10, 10, 0.96);
  }
}

/* PC Enhancements */
@media screen and (min-width: 1200px) {
  .bl_navMenu__item {
    display: flex;
    align-items: center;
    margin-right: 20px;
  }
  .bl_navMenu__item:last-child {
    margin-right: 0;
  }
  .bl_navMenu__item::after {
    content: "";
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: rgba(251, 251, 251, 0.3);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.3s ease;
  }
  .bl_navMenu__item:hover::after, .bl_navMenu__item.is-active::after {
    transform: scaleX(1);
    transform-origin: left;
  }
  .bl_navMenu__list {
    gap: 40px;
  }
}
/* SP Enhancements */
@media screen and (max-width: 767px) {
  .sec_header__inner {
    padding: 16px 20px;
  }
  .bl_hamburger {
    width: 56px;
    height: 56px;
    padding: 12px;
    flex-shrink: 0;
  }
  .bl_hamburger__line {
    width: 28px;
    height: 2px;
    margin-bottom: 6px;
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  }
  .bl_hamburger__line:last-child {
    margin-bottom: 0;
  }
  /* Enhanced X transformation for SP */
  .bl_hamburger.is-active .bl_hamburger__line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .bl_hamburger.is-active .bl_hamburger__line:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
    transition: all 0.3s ease 0.1s;
  }
  .bl_hamburger.is-active .bl_hamburger__line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
}
/* ==========================================================================
   Footer Style
   ========================================================================== */
.bl_footer {
  background-color: rgb(15, 13, 12);
  position: relative;
}
.bl_footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 80px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .bl_footer__inner {
    flex-direction: column;
    padding: 0 20px;
  }
}
.bl_footer::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(135.625px);
}
.bl_footer__left {
  display: flex;
  flex-direction: column;
  padding-top: 61px;
  padding-bottom: 85px;
}
@media screen and (max-width: 767px) {
  .bl_footer__left {
    width: 100%;
    align-items: center;
    padding-top: 30px;
    padding-bottom: 20px;
  }
}
.bl_footer__logo {
  margin-bottom: 29px;
}
@media screen and (max-width: 767px) {
  .bl_footer__logo {
    text-align: center;
  }
}
.bl_footer__logo a {
  display: inline-block;
  transition: opacity 0.3s;
}
.bl_footer__logo a:hover {
  opacity: 0.7;
}
.bl_footer__logo img {
  width: 104px;
  height: auto;
}
.bl_footer__sns {
  display: flex;
  gap: 15px;
}
@media screen and (max-width: 767px) {
  .bl_footer__sns {
    justify-content: center;
  }
}
.bl_footer__snsLink {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  transition: opacity 0.3s;
}
.bl_footer__snsLink:hover {
  opacity: 0.7;
}
.bl_footer__snsLink svg,
.bl_footer__snsLink img {
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.bl_footer__nav {
  display: flex;
  gap: 77px;
  padding-top: 65px;
}
@media screen and (max-width: 767px) {
  .bl_footer__nav {
    width: 100%;
    justify-content: center;
    gap: 30px;
    padding: 30px 0;
    flex-wrap: wrap;
  }
}
.bl_footer__navLink {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: 20px;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  letter-spacing: -0.4px;
  line-height: 1.6;
  transition: opacity 0.3s;
}
.bl_footer__navLink:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .bl_footer__navLink {
    font-size: 16px;
  }
}
.bl_footer__copyright {
  background-color: #fff;
  padding: 38px 0;
  text-align: center;
}
.bl_footer__copyrightText {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: rgb(15, 13, 12);
  letter-spacing: 0.48px;
  line-height: 1;
}

/* ==========================================================================
   contact page style
   ========================================================================== */
.sec_contact {
  background-color: #0b0b0b;
  color: #fff;
  padding: 390px 0 80px;
}
@media screen and (max-width: 767px) {
  .sec_contact {
    padding: 260px 0 80px;
  }
}
.sec_contact__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .sec_contact__inner {
    padding: 0 20px;
  }
}
.sec_contact__header {
  margin-bottom: 80px;
}
.sec_contact__mainTitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 200;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 40px;
}
.sec_contact__description {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  line-height: 2;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 60px;
}
.sec_contact .p-contact__formRow {
  display: flex;
  margin-bottom: 30px;
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  .sec_contact .p-contact__formRow {
    flex-direction: column;
    margin-bottom: 25px;
  }
}
.sec_contact .p-contact__formLabel {
  width: 280px;
  font-size: 15px;
  font-weight: 700;
  padding-top: 15px;
  display: flex;
  align-items: center;
  gap: 12px;
}
@media screen and (max-width: 767px) {
  .sec_contact .p-contact__formLabel {
    width: 100%;
    margin-bottom: 10px;
    padding-top: 0;
  }
}
.sec_contact .p-contact__badge {
  position: relative;
  font-size: 0;
  vertical-align: super;
  margin-left: 2px;
}
.sec_contact .p-contact__badge::before {
  content: "✴︎";
  font-size: 15px;
  color: #ff0000;
  position: absolute;
  top: -15px;
  right: -15px;
}
@media screen and (max-width: 767px) {
  .sec_contact .p-contact__badge::before {
    font-size: 10px;
    right: -10px;
  }
}
.sec_contact .p-contact__formInput {
  flex: 1;
  width: 100%;
}
.sec_contact .p-contact__formInput .wpcf7-form-control-wrap {
  width: 100%;
}
.sec_contact .p-contact__formInput input[type=text],
.sec_contact .p-contact__formInput input[type=email],
.sec_contact .p-contact__formInput input[type=tel],
.sec_contact .p-contact__formInput textarea {
  width: 100%;
  background-color: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  color: #fff;
  padding: 15px 20px;
  font-size: 15px;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.sec_contact .p-contact__formInput input[type=text]::placeholder,
.sec_contact .p-contact__formInput input[type=email]::placeholder,
.sec_contact .p-contact__formInput input[type=tel]::placeholder,
.sec_contact .p-contact__formInput textarea::placeholder {
  color: rgba(255, 255, 255, 0.15);
}
.sec_contact .p-contact__formInput input[type=text]:focus,
.sec_contact .p-contact__formInput input[type=email]:focus,
.sec_contact .p-contact__formInput input[type=tel]:focus,
.sec_contact .p-contact__formInput textarea:focus {
  outline: none;
  border-color: rgba(255, 255, 255, 0.8);
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.1);
}
.sec_contact .p-contact__formInput textarea {
  height: 300px;
  resize: vertical;
}
.sec_contact .p-contact__submitWrap {
  margin-top: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.sec_contact .p-contact__submitWrap input[type=submit] {
  background-color: #fff;
  color: #000;
  border: none;
  width: 240px;
  padding: 18px 0;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.3s, transform 0.2s;
}
.sec_contact .p-contact__submitWrap input[type=submit]:hover {
  opacity: 0.8;
}
.sec_contact .p-contact__submitWrap input[type=submit]:active {
  transform: scale(0.98);
}
.sec_contact .p-contact__submitWrap .wpcf7-spinner {
  margin: 0;
  vertical-align: middle;
}
.sec_contact .wpcf7-not-valid-tip {
  font-size: 12px;
  color: #ff4d4d;
  margin-top: 5px;
  display: block;
}
.sec_contact .wpcf7-response-output {
  margin-top: 30px !important;
  border-color: #fff !important;
  font-size: 16px;
  padding: 15px !important;
  text-align: center;
}

/* ==========================================================================
   profile page style
   ========================================================================== */
.sec_profile {
  background-color: #0b0b0b;
  color: #fff;
  padding: 390px 0 80px;
}
@media screen and (max-width: 767px) {
  .sec_profile {
    padding: 260px 0 80px;
  }
}
.sec_profile__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .sec_profile__inner {
    padding: 0 20px;
  }
}
.sec_profile__header {
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .sec_profile__header {
    margin-bottom: 50px;
  }
}
.sec_profile__mainTitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 200;
  letter-spacing: 0.4em;
  text-transform: uppercase;
}
.sec_profile__container {
  max-width: 1000px;
}
.sec_profile__introduction {
  position: relative;
  padding-left: 40px;
}
@media screen and (max-width: 767px) {
  .sec_profile__introduction {
    padding-left: 25px;
  }
}
.sec_profile__introduction::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background-color: rgba(255, 255, 255, 0.2);
}
.sec_profile__introInner p {
  font-size: 16px;
  line-height: 2.2;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 1.5em;
  letter-spacing: 0.05em;
}
.sec_profile__introInner p:last-child {
  margin-bottom: 0;
}
.sec_profile__metaGrid {
  display: flex;
  gap: 80px;
  padding-left: 40px;
}
@media screen and (max-width: 767px) {
  .sec_profile__metaGrid {
    flex-direction: column;
    gap: 40px;
    padding-left: 25px;
  }
}
.sec_profile__metaCol {
  flex: 1;
}
.sec_profile__metaTitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, sans-serif;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 25px;
  letter-spacing: 0.05em;
}
.sec_profile__metaList {
  list-style: none;
  padding: 0;
}
.sec_profile__metaList li {
  font-size: 16px;
  font-weight: 300;
  line-height: 2;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 10px;
}
.sec_profile__bottomMedia {
  width: 100%;
  margin-top: 50px;
}
@media screen and (max-width: 767px) {
  .sec_profile__bottomMedia {
    margin-top: 10px;
  }
}
.sec_profile__bottomImg {
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
}

/* ==========================================================================
   works page style (Full Image Layout)
   ========================================================================== */
.sec_works {
  background-color: #0b0b0b;
  color: #fff;
  padding: 390px 0 80px;
}
@media screen and (max-width: 767px) {
  .sec_works {
    padding: 260px 0 80px;
  }
}
.sec_works__inner {
  width: 100%;
}
.sec_works__header {
  max-width: 1440px;
  margin: 0 auto 100px;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .sec_works__header {
    margin-bottom: 60px;
    padding: 0 20px;
  }
}
.sec_works__mainTitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 200;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 40px;
}
.sec_works__description {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  line-height: 2;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  max-width: 100%;
  letter-spacing: 0.05em;
}
.sec_works__list {
  width: 100%;
}
.sec_works__item {
  display: block;
  width: 100%;
  height: 700px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .sec_works__item {
    height: 60vh;
  }
}
.sec_works__item:hover .sec_works__item__itemImg {
  transform: scale(1.05);
}
.sec_works__item:hover .sec_works__item__itemOverlay {
  background-color: rgba(0, 0, 0, 0.4);
}
.sec_works__itemMedia {
  width: 100%;
  height: 100%;
  position: relative;
}
.sec_works__itemImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.sec_works__itemOverlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background-color 0.4s ease;
}
.sec_works__itemContent {
  text-align: center;
  padding: 0 20px;
}
.sec_works__itemTitle {
  color: #fff;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 200;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}
.sec_works__itemSubtitle {
  color: rgba(255, 255, 255, 0.8);
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0.1em;
}

/* ==========================================================================
   single piano-works style (Updated Layout)
   ========================================================================== */
.single_work {
  background-color: #0b0b0b;
  color: #fff;
  min-height: 100vh;
  padding: 390px 0 80px;
}
@media screen and (max-width: 767px) {
  .single_work {
    padding: 260px 0 80px;
  }
}
.single_work__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .single_work__inner {
    padding: 0 20px;
  }
}
.single_work__header {
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .single_work__header {
    margin-bottom: 40px;
  }
}
.single_work__title {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 4vw, 56px);
  font-weight: 200;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 40px;
  line-height: 1.2;
}
@media screen and (max-width: 767px) {
  .single_work__title {
    letter-spacing: 0.15em;
    margin-bottom: 25px;
  }
}
.single_work__subtitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  max-width: 100%;
  letter-spacing: 0.05em;
}
.single_work__media {
  width: 100%;
  margin-top: 60px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}
.single_work__videoContainer {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background-color: #000;
}
.single_work__videoContainer iframe,
.single_work__videoContainer video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.single_work__thumbnailOverlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  cursor: pointer;
  z-index: 10;
  transition: opacity 0.4s ease;
}
.single_work__thumbnailOverlay.is-hidden {
  opacity: 0;
  pointer-events: none;
}
.single_work__thumbnailImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.85;
  transition: opacity 0.4s ease, transform 0.6s ease;
}
.single_work__thumbnailOverlay:hover .single_work__thumbnailImg {
  opacity: 0.7;
  transform: scale(1.02);
}
.single_work__playBtn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: transform 0.3s ease;
}
@media screen and (max-width: 767px) {
  .single_work__playBtn {
    width: 60px;
    height: 60px;
  }
}
.single_work__playBtn:hover {
  transform: translate(-50%, -50%) scale(1.1);
}
.single_work__playBtn:active {
  transform: translate(-50%, -50%) scale(0.95);
}
.single_work__playIcon {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.5));
  transition: filter 0.3s ease;
}
.single_work__playBtn:hover .single_work__playIcon {
  filter: drop-shadow(0 6px 20px rgba(0, 0, 0, 0.7));
}
.single_work__videoElement {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.single_work__img {
  width: 100%;
  height: auto;
  display: block;
}
.single_work__body {
  margin-top: 60px;
  line-height: 2;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
}
.single_work__footer {
  margin-top: 100px;
  padding-top: 40px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: center;
}
.single_work__back {
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  letter-spacing: 0.2em;
  opacity: 0.6;
  transition: opacity 0.3s;
}
.single_work__back:hover {
  opacity: 1;
}

/* ==========================================================================
   Page: Event/News (Static Page Template)
   ========================================================================== */
.page_news {
  background-color: #0b0b0b;
  color: #fff;
  padding: 390px 0 100px;
}
@media screen and (max-width: 767px) {
  .page_news {
    padding: 260px 0 80px;
  }
}
.page_news__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .page_news__inner {
    padding: 0 20px;
  }
}
.page_news__header {
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .page_news__header {
    margin-bottom: 50px;
  }
}
.page_news__mainTitle {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 200;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 40px;
}
.page_news__description {
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  line-height: 2;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.7);
  max-width: 100%;
  letter-spacing: 0.05em;
}
.page_news__description p {
  margin-bottom: 1em;
}
.page_news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 40px;
}
@media screen and (max-width: 767px) {
  .page_news__grid {
    grid-template-columns: 1fr;
  }
}
.page_news__itemLink {
  display: block;
  text-decoration: none;
  color: inherit;
}
.page_news__itemLink:hover .page_news__itemImg {
  transform: scale(1.03);
}
.page_news__itemLink:hover .page_news__itemTitle {
  color: rgba(255, 255, 255, 0.6);
}
.page_news__itemMedia {
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  background-color: #1a1a1a;
  margin-bottom: 20px;
}
.page_news__itemImg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.page_news__itemInfo {
  padding: 0 5px;
}
.page_news__itemDate {
  display: block;
  font-size: 11px;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, sans-serif;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 8px;
}
.page_news__itemTitle {
  font-size: 15px;
  line-height: 1.6;
  font-weight: 400;
  transition: color 0.3s ease;
}
.page_news__pagination {
  margin-top: 100px;
  display: flex;
  justify-content: center;
  gap: 20px;
}
.page_news__pagination .page-numbers {
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, sans-serif;
  padding: 5px 10px;
  transition: opacity 0.3s;
}
.page_news__pagination .page-numbers.current {
  border-bottom: 1px solid #fff;
  pointer-events: none;
}
.page_news__pagination .page-numbers:hover:not(.current) {
  opacity: 0.5;
}

/* ==========================================================================
   front-page hero section
   ========================================================================== */
.sec_front-page_hero {
  position: relative;
  width: 100%;
  background-color: #000;
}
.sec_front-page_hero__background {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 1;
  overflow: hidden;
}
.sec_front-page_hero__background::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.2);
}
.sec_front-page_hero__video, .sec_front-page_hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sec_front-page_hero__scroll {
  position: absolute;
  bottom: 5%;
  right: 5%;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .sec_front-page_hero__scroll {
    bottom: 50px;
    right: 20px;
  }
}
.sec_front-page_hero__scroll-link {
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
  animation: bounce 2s infinite;
}
.sec_front-page_hero__scroll-link svg {
  width: 30px;
  height: auto;
}
.sec_front-page_hero__scroll-link:hover {
  opacity: 0.7;
}
.sec_front-page_hero__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-top: 20vh;
  padding-bottom: 20vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
.sec_front-page_hero__content {
  width: 100%;
  max-width: 1200px;
  padding: 0 40px;
}
@media screen and (max-width: 767px) {
  .sec_front-page_hero__content {
    padding: 0 20px;
  }
}
.sec_front-page_hero__text-en {
  color: #fff;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(24px, 4vw, 42px);
  font-weight: 200;
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-bottom: 40px;
  opacity: 0.9;
}
.sec_front-page_hero__text-ja {
  color: rgba(255, 255, 255, 0.8);
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: 16px;
  font-weight: 300;
  line-height: 2;
  letter-spacing: 0.05em;
  max-width: 800px;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}
/* ==========================================================================
   front-page works section
   ========================================================================== */
.sec_front-page_works {
  position: relative;
  width: 100%;
  background-color: #000;
}
.sec_front-page_works__inner {
  width: 100%;
}
.sec_front-page_works__item {
  position: relative;
  display: block;
  width: 100%;
  height: 900px;
  overflow: hidden;
  text-decoration: none;
}
@media screen and (max-width: 767px) {
  .sec_front-page_works__item {
    height: 60vh;
  }
}
.sec_front-page_works__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.sec_front-page_works__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.sec_front-page_works__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: background-color 0.4s ease;
}
.sec_front-page_works__container {
  text-align: center;
  padding: 0 20px;
}
.sec_front-page_works__title {
  color: #fff;
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, "Times New Roman", Times, "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif, Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 5vw, 54px);
  font-weight: 200;
  line-height: 1.2;
  letter-spacing: 0.05em;
  margin-bottom: 15px;
  text-transform: uppercase;
}
.sec_front-page_works__subtitle {
  color: rgba(255, 255, 255, 0.8);
  font-family: "Times New Roman", "Yu Mincho Light", "Yu Mincho", "Hiragino Mincho ProN W3", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  font-size: clamp(12px, 2vw, 16px);
  font-weight: 300;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.sec_front-page_works__item:hover .sec_front-page_works__img {
  transform: scale(1.03);
}
.sec_front-page_works__item:hover .sec_front-page_works__overlay {
  background-color: rgba(0, 0, 0, 0.4);
}
