@charset "UTF-8";
/*
 * 参考
 * https: //github.com/Andy-set-studio/modern-css-reset/blob/master/src/reset.css
*/
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
body,
h1,
h2,
h3,
h4,
h5,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  line-height: 1.5;
  min-height: 100vh;
  text-rendering: optimizeSpeed;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  -webkit-text-decoration-skip: ink;
          text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  display: block;
  max-width: 100%;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

li {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Remove all animations and transitions for people that prefer not to see them */
/*****************************************
 * 数値から単位を取り除く
 * 参考
 * https: //css-tricks.com/snippets/sass/
******************************************/
/*****************************************
 * px→remの計算
 * 参考
 * https: //webdou.net/sass-rem/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/
/*****************************************
 * vwの計算
 * 参考
 * https://webdou.net/sass-vw/
 * Sassではmath.div関数の使用が推奨のため、スラッシュ(/)演算子から変更
******************************************/
html {
  font-size: 16px;
}

body {
  background-color: #fff;
  color: #333;
  display: flex;
  flex-direction: column;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  min-height: 100svh;
  overflow-x: hidden;
  position: relative;
  text-rendering: optimizeSpeed;
}

body.is-fixed {
  overflow: hidden;
}
main {
  flex-grow: 1;
}

a {
  -webkit-text-decoration: none;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s;
}

.l-inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 600px;
  max-width: 37.5rem;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
}

.l-pager {
  margin-top: 32px;
  margin-top: 2rem;
}

.l-post-connect {
  margin-top: 16px;
  margin-top: 1rem;
}

.c-breadcrumb {
  padding: 16px 0;
  padding: 1rem 0;
}

.c-breadcrumb a {
  color: #2589d0;
}

.c-btn {
  background-color: #2589d0;
  border: 1px solid #2589d0;
  color: #fff;
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  font-weight: 500;
  min-width: 200px;
  min-width: 12.5rem;
  padding: 10px 20px;
  padding: 0.625rem 1.25rem;
  transition: 0.3s;
}

.c-btn::after {
  border-right: 1px solid #fff;
  border-top: 1px solid #fff;
  content: "";
  display: inline-block;
  height: 10px;
  height: 0.625rem;
  margin-left: 16px;
  margin-left: 1rem;
  transform: rotate(45deg);
  transition: 0.3s;
  width: 10px;
  width: 0.625rem;
}

.c-btn:hover {
  -webkit-text-decoration: none;
  background-color: #fff;
  color: #2589d0;
  cursor: pointer;
  opacity: 1;
  text-decoration: none;
}

.c-btn:hover::after {
  border-right: 1px solid #2589d0;
  border-top: 1px solid #2589d0;
  transform: translateX(5px) rotate(45deg);
}

.c-title {
  color: black;
  font-size: 24px;
  font-size: 1.5rem;
}

.p-404__title {
  text-align: center;
}

.p-404__btn {
  text-align: center;
}

.p-contact__head {
  width: 250px;
  width: 15.625rem;
}

.p-contact__item {
  margin-top: 6px;
  margin-top: 0.375rem;
}

.p-contact__item-example {
  color: gray;
  margin-top: 6px;
  margin-top: 0.375rem;
}

.p-contact__required {
  color: red;
  padding-left: 1em;
}

.p-contact__policy,
.p-contact__content,
.p-contact__btn {
  margin: 24px 0;
  margin: 1.5rem 0;
}

.p-contact__policy-link {
  color: blue;
  transition: all 0.3s;
}

.p-contact__btn-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.p-contact__btn {
  display: inline-block;
  text-align: center;
}

.p-contact__item-text,
.p-contact__item-tel,
.p-contact__item-email,
.p-contact__item-textarea,
.p-contact__item-select {
  background: none;
  background-color: transparent;
  border: 1px solid rgba(0, 0, 0, 0.16);
  border-radius: 0;
  color: inherit;
  font-family: inherit;
  font-size: 16px;
  font-size: 1rem;
  margin: 0;
  outline: none;
  padding: 0.8em;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
}

.p-contact__item-text:focus,
.p-contact__item-tel:focus,
.p-contact__item-email:focus,
.p-contact__item-textarea:focus,
.p-contact__item-select:focus {
  border: 1px solid rgba(0, 0, 0, 0.7);
  box-shadow: none;
  outline: none;
}

.p-contact__item-textarea {
  height: 200px;
  overflow: auto;
  resize: none;
}

.p-contact__item-message {
  white-space: pre-wrap;
}

.p-contact__item-select {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALJJREFUeNrslssNgCAQRCmB0ijBEuyEEijBEijBEizBEnAPy0UBWVj8JDvJJB5w3gsXVUoikXwsBrpAPdRCNcOmxi2P2yZ3cIKGU9dOCY0b590pdXhPHOyRyMEDsi4JhVIlSvBYTRGgSNTAQ+pFyyBRC7e5AdchUQt3d1fYIsEGb5Fgh1MktlFwisQwOIeE4/pGuDfhLRLscIrEMHiNxHB4SeIxeMyMPxkenyUSyT9zCDAAj5btZ4c3zaUAAAAASUVORK5CYII=");
  background-position: right 0.5em center;
  background-repeat: no-repeat;
  background-size: 1em;
  color: inherit;
  padding-right: 3em;
}

.p-contact__item-select:invalid {
  color: rgba(0, 0, 0, 0.32);
}

.p-contact__item-select select::-ms-expand {
  display: none;
}

.p-contact__item-radio input[type=radio],
.p-contact__item-checkbox input[type=checkbox] {
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.p-contact__item-radio input[type=radio] + span,
.p-contact__item-checkbox input[type=checkbox] + span {
  color: #333;
  cursor: pointer;
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  padding: 0.5em 1em 0.5em 1.5em;
  position: relative;
}

.p-contact__item-radio input[type=radio]:focus + span,
.p-contact__item-checkbox input[type=checkbox]:focus + span {
  opacity: 0.7;
}

.p-contact__item-radio input[type=radio] + span::before,
.p-contact__item-checkbox input[type=checkbox] + span::before {
  background: white;
  border: 1px solid black;
  content: "";
  height: 1em;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1em;
}

.p-contact__item-checkbox input[type=checkbox]:checked + span::before {
  background: #333;
}

.p-contact__item-radio input[type=radio]:checked + span::before {
  background: white;
}

.p-contact__item-radio input[type=radio] + span::before {
  border-radius: 50%;
}

.p-contact__item-radio input[type=radio] + span::after {
  background: #333;
  border: 1px solid transparent;
  border-radius: 50%;
  content: "";
  height: 0.5em;
  left: 0.25em;
  opacity: 0;
  padding: 0.125em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease 0s;
  width: 0.5em;
}

.p-contact__item-checkbox input[type=checkbox] + span::after {
  border-bottom: 2px solid white;
  border-left: 2px solid white;
  content: "";
  display: block;
  height: 0.35em;
  left: 0.15em;
  margin-top: -0.1em;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) rotate(-45deg);
  transition: all 0.3s ease 0s;
  width: 0.8em;
}

.p-contact__item-checkbox input[type=checkbox]:checked + span::after,
.p-contact__item-radio input[type=radio]:checked + span::after {
  opacity: 1;
}

/* button */
.p-contact__btn input[type=submit],
.p-contact__btn input[type=button] {
  display: inline-block;
  margin: 0;
  padding: 0.5em 2em;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  background: rgba(0, 0, 0, 0.32);
  color: #333;
  -moz-appearance: button;
       appearance: button;
  border: none;
  border-radius: 0;
  cursor: pointer;
  font-size: 16px;
  font-size: 1rem;
  transition: all 0.3s;
}

.p-contact__btn input[type=submit]:hover,
.p-contact__btn input[type=button]:hover,
.p-contact__btn input[type=submit]:focus,
.p-contact__btn input[type=button]:focus {
  opacity: 0.7;
  outline: none;
}

.p-contact__item,
.p-contact__btn-submit {
  min-width: 150px;
  min-width: 9.375rem;
}

.wpcf7-spinner {
  position: absolute;
}

.p-pager-list {
  display: flex;
  justify-content: space-between;
}

.p-pager-list__btn a {
  border: 1px solid #2589d0;
  color: #2589d0;
  display: inline-block;
  padding: 10px 20px;
}

.p-post-article__inner.l-inner {
  margin-top: 32px;
  margin-top: 2rem;
}

.p-post-article__title {
  color: #2589d0;
  font-size: 48px;
  font-size: 3rem;
}

.p-post-article__info {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.p-post-article__category {
  align-items: center;
  display: flex;
  gap: 5px;
  gap: 0.3125rem;
  justify-content: center;
}

.p-post-article__category li {
  border: 1px solid #2589d0;
  color: #2589d0;
  padding: 5px;
  padding: 0.3125rem;
}

.p-post-article__box {
  margin: 102.4px auto 0;
  margin: 6.4rem auto 0;
}

.p-post-article__content {
  background-color: #fff;
  padding: 20px 23px 0;
  padding: 1.25rem 1.4375rem 0;
  width: 100%;
}

.p-post-article__content-wrap {
  margin: auto;
  padding-bottom: 30px;
  padding-bottom: 1.875rem;
  width: 100%;
}

.p-post-article__contents {
  margin-top: 30px;
  margin-top: 1.875rem;
}

.p-post-article__main-img {
  aspect-ratio: 7/4;
}

.p-post-article__main-img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-post-article__category {
  letter-spacing: 0;
}

.p-post-article__data {
  font-size: 21px;
  font-size: 1.3125rem;
  letter-spacing: 0.05em;
  margin-left: auto;
  text-align: right;
}

.p-post-article__content h2 {
  background-color: #2589d0;
  color: #fff;
  font-size: 28px;
  font-size: 1.75rem;
  margin: 30px 0 15px;
  margin: 1.875rem 0 0.9375rem;
  padding: 5px 20px;
  padding: 0.3125rem 1.25rem;
}

.p-post-article__contents h3 {
  border-left: 0.5em solid #2589d0;
  color: #2589d0;
  font-size: 28px;
  font-size: 1.75rem;
  margin: 30px 0 15px;
  margin: 1.875rem 0 0.9375rem;
  padding-left: 10px;
  padding-left: 0.625rem;
}

.p-post-article__contents h4 {
  font-size: 24px;
  font-size: 1.5rem;
  margin: 10px 0;
  margin: 0.625rem 0;
}

.p-post-article__contents h5 {
  border-bottom: 2px solid #2589d0;
  border-top: 2px solid #2589d0;
  color: #2589d0;
  display: inline-block;
  font-size: 20px;
  font-size: 1.25rem;
  margin: 10px 0;
  margin: 0.625rem 0;
  padding: 2px 12.5px;
  padding: 0.125rem 0.78125rem;
}

.p-post-article__contents p {
  font-size: 20px;
  font-size: 1.25rem;
}

.p-post-article__contents a {
  color: #2589d0;
  -webkit-text-decoration: underline;
  text-decoration: underline;
}

.p-post-article__contents img {
  margin: 10px 0;
  margin: 0.625rem 0;
}

.p-post-article__contents figure {
  margin: 10px 0;
  margin: 0.625rem 0;
}

.p-post-article__contents figcaption {
  font-size: 12px;
  font-size: 0.75rem;
  margin: 10px 0;
  margin: 0.625rem 0;
}

.p-post-card__img {
  aspect-ratio: 400/300;
  width: 100%;
}

.p-post-card__img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-post-card__body {
  position: relative;
}

.p-post-card__info {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  padding: 0.5rem 0;
}

.p-post-card__category li {
  border: 1px solid #2589d0;
  color: #2589d0;
  padding: 5px;
  padding: 0.3125rem;
}

.p-post-card__new {
  background-color: #fff;
  border: 1px solid #2589d0;
  color: #2589d0;
  left: 0;
  padding: 5px 10px;
  padding: 0.3125rem 0.625rem;
  position: absolute;
  top: 0;
}

.p-post-connect__title {
  color: #2589d0;
  font-size: 24px;
  font-size: 1.5rem;
}

.p-post-connect__items {
  display: grid;
  grid-gap: 50px;
  gap: 50px;
  gap: 3.125rem;
  margin-top: 16px;
  margin-top: 1rem;
}

.p-post-list {
  position: relative;
}

.p-post-list__wrap {
  margin: 32px 0;
  margin: 2rem 0;
}

.p-post-list__title {
  color: #2589d0;
  font-size: 48px;
  font-size: 3rem;
}

.p-post-list__items {
  display: grid;
  grid-gap: 50px;
  gap: 50px;
  gap: 3.125rem;
  margin-top: 16px;
  margin-top: 1rem;
}

.p-post-list__cards {
  margin-top: 48px;
  margin-top: 3rem;
}

.p-post-list__btn {
  margin-top: 20px;
  margin-top: 1.25rem;
  text-align: center;
}

.p-top-gallery__inner {
  margin: 5% 5% 0 5%;
}

.p-top-gallery .splide__slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-gallery .splide__slide picture {
  height: inherit;
  height: 100%;
}

.p-top-gallery .splide__slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-gallery .swiper-slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-gallery .swiper-slide picture {
  height: inherit;
  height: 100%;
}

.p-top-gallery .swiper-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-gallery .slick-track {
  display: block;
  width: 100%;
}

.p-top-gallery .slick-slide {
  aspect-ratio: 600/300;
  display: block;
  margin: 0 5px;
  width: 100%;
}

.p-top-gallery .slick-slide picture {
  height: inherit;
  height: 100%;
}

.p-top-gallery .slick-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-mv-slick {
  background: black;
}

.p-top-mv-slick__inner {
  margin: 5% 5% 0 5%;
}

.p-top-mv-slick .slick-track {
  display: block;
  width: 100%;
}

.p-top-mv-slick .slick-slide {
  aspect-ratio: 600/300;
  display: block;
  margin: 0 5px;
  width: 100%;
}

.p-top-mv-slick .slick-slide picture {
  height: inherit;
  height: 100%;
}

.p-top-mv-slick .slick-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-mv-splide__inner {
  margin: 5% 5% 0 5%;
}

.p-top-mv-splide .splide__slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-mv-splide .splide__slide picture {
  height: inherit;
  height: 100%;
}

.p-top-mv-splide .splide__slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-mv-swiper__inner {
  margin: 5% 5% 0 5%;
}

.p-top-mv-swiper .swiper-slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-mv-swiper .swiper-slide picture {
  height: inherit;
  height: 100%;
}

.p-top-mv-swiper .swiper-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-mv-swiper .swiper-button-prev,
.p-top-mv-swiper .swiper-button-next {
  text-rendering: initial;
}

.p-top-post__inner {
  margin: 5% 5% 0 5%;
}

.p-top-post .splide__slide {
  display: block;
  width: 100%;
}

.p-top-post .splide__slide a {
  aspect-ratio: 600/400;
  display: block;
}

.p-top-post .splide__slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-post .splide__pagination {
  bottom: -2em;
}

.p-top-post .splide__pagination__page.is-active {
  background-color: blue;
}

.p-top-post .swiper {
  padding-bottom: 20px;
}

.p-top-post .swiper-slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-post .swiper-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-post .swiper-pagination {
  bottom: 0;
}

.p-top-post .swiper-button-prev,
.p-top-post .swiper-button-next {
  text-rendering: initial;
}

.p-top-post .slick-track {
  display: block;
  width: 100%;
}

.p-top-post .slick-slide {
  display: block;
  height: 100%;
  margin: 0 5px;
  width: 100%;
}

.p-top-post .slick-slide img {
  aspect-ratio: 600/300;
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-post .slick-next,
.p-top-post .slick-prev {
  background: gray;
}

.p-top-works {
  padding-bottom: 50px;
  padding-bottom: 3.125rem;
}

.p-top-works__inner {
  margin: 5% 5% 0 5%;
}

.p-top-works .splide__slide {
  display: block;
  width: 100%;
}

.p-top-works .splide__slide a {
  aspect-ratio: 600/400;
  display: block;
}

.p-top-works .splide__slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-works .splide__pagination {
  bottom: -2em;
}

.p-top-works .splide__pagination__page.is-active {
  background-color: blue;
}

.p-top-works .swiper {
  padding-bottom: 20px;
}

.p-top-works .swiper-slide {
  aspect-ratio: 600/300;
  display: block;
  width: 100%;
}

.p-top-works .swiper-slide img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-works .swiper-pagination {
  bottom: 0;
}

.p-top-works .swiper-button-prev,
.p-top-works .swiper-button-next {
  text-rendering: initial;
}

.p-top-works .slick-track {
  display: block;
  width: 100%;
}

.p-top-works .slick-slide {
  display: block;
  height: 100%;
  margin: 0 5px;
  width: 100%;
}

.p-top-works .slick-slide img {
  aspect-ratio: 600/300;
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top-works .slick-next,
.p-top-works .slick-prev {
  background: gray;
}

.pagination {
  width: 100%;
}
.nav-links ul {
  display: flex;
  justify-content: center;
}

.nav-links ul li a,
.nav-links ul li span {
  align-items: center;
  color: #2589d0;
  display: flex;
  flex-wrap: wrap;
  font-size: 16px;
  font-size: 1rem;
}

.nav-links ul li span.current {
  color: #333;
}

.nav-links ul li {
  margin: 0 5px;
  margin: 0 0.3125rem;
  position: relative;
}

.nav-links ul li a,
.nav-links ul li span {
  display: block;
  padding: 5px;
  padding: 0.3125rem;
  width: 100%;
}

.nav-links ul li .nav-links ul .dots {
  padding-left: 0;
  padding-right: 0;
}

@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 375px){
  html {
    font-size: 4.2666666667vw;
  }
}

@media screen and (min-width: 768px){
  html {
    font-size: 1.3333333333vw;
  }
  .l-inner {
    max-width: 1250px;
    padding-left: 25px;
    padding-right: 25px;
  }
  .c-title {
    color: red;
  }
  .p-contact__btn-wrap {
    flex-direction: row;
    gap: 40px;
    gap: 2.5rem;
  }
  .p-post-connect__items {
    row-gap: 40px;
    row-gap: 2.5rem;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    grid-template-columns: repeat(4, 1fr);
  }
  .p-post-list__items {
    row-gap: 40px;
    row-gap: 2.5rem;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    grid-template-columns: repeat(4, 1fr);
  }
  .p-post-list__cards {
    margin-top: 100px;
    margin-top: 6.25rem;
  }
  .p-post-list__btn {
    margin: 28px auto 0;
    margin: 1.75rem auto 0;
    max-width: calc(61.25rem + 50px);
    padding: 0 10px;
    padding: 0 0.625rem;
    width: 100%;
  }
  .nav-links ul li a,
  .nav-links ul li span {
    font-size: 24px;
    font-size: 1.5rem;
  }
  .nav-links ul li {
    margin: 0 10px;
    margin: 0 0.625rem;
  }
  .nav-links ul li a,
  .nav-links ul li span {
    padding: 10px;
    padding: 0.625rem;
  }
}

@media (min-width: 1200px){
  html {
    font-size: 16px;
  }
}

@media screen and (hover: hover) and (min-width: 768px){
  a:hover {
    cursor: pointer;
    opacity: 0.8;
  }
}

@media screen and (min-width: 1000px){
  .c-title {
    color: blue;
  }
}

@media screen and (min-width: 1200px){
  .c-title {
    color: green;
  }
}


/* ===== Migrated inline styles from header.php ===== */
:root {
  --color-base: #FCFCFC;
  --color-main: #1A1A1A;
  --color-accent-navy: #07101E;
  --color-accent-gold: #B69352;
  --color-sub-gray: #F0F0F0;

  --font-mincho: 'Noto Serif JP', serif;
  --font-gothic: 'Noto Sans JP', sans-serif;
  --font-en: 'Cormorant Garamond', serif;

  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-gothic);
  color: var(--color-main);
  background-color: var(--color-base);
  line-height: 2.0;
  letter-spacing: 0.06em;
  font-size: clamp(14px, 1.2vw, 16px);
  -webkit-font-smoothing: antialiased;
  word-break: auto-phrase;
  overflow-wrap: break-word;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

a:hover {
  opacity: 0.7;
}

ul {
  list-style: none;
}

.swiper {
  width: 100%;
}

.swiper-wrapper {
  display: flex;
}

.swiper-slide {
  flex: 0 0 auto;
  min-width: 0;
}

.section-case__swiper .swiper-wrapper,
.section-voice__swiper .swiper-wrapper,
.section-press__swiper .swiper-wrapper {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.section-case__swiper .swiper-wrapper::-webkit-scrollbar,
.section-voice__swiper .swiper-wrapper::-webkit-scrollbar,
.section-press__swiper .swiper-wrapper::-webkit-scrollbar {
  display: none;
}

.section-case__swiper .swiper-wrapper {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 24px) / 2.5);
  gap: 16px;
  overflow-x: auto;
  padding: 0 5% 12px;
  scroll-snap-type: x mandatory;
}

.section-case__swiper .swiper-slide {
  scroll-snap-align: start;
}

.section-voice__swiper .swiper-wrapper {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, calc((100% - 24px) / 1.2));
  gap: 24px;
  overflow-x: auto;
  padding: 0 0 12px;
  scroll-snap-type: x mandatory;
  align-items: stretch;
}

.section-voice__swiper .swiper-slide {
  height: auto;
  display: flex;
  scroll-snap-align: center;
}

.section-press__swiper .swiper-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-flow: row;
  gap: 20px;
  overflow: visible;
  padding: 0;
  scroll-snap-type: none;
  align-items: stretch;
}

.section-press__swiper .swiper-slide {
  height: auto;
  display: flex;
  scroll-snap-align: start;
}

@media (min-width: 768px) {
  .section-case__swiper .swiper-wrapper {
    grid-auto-columns: calc((100% - 72px) / 4);
    gap: 24px;
  }

  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: minmax(320px, calc((100% - 60px) / 2.5));
    gap: 40px;
  }

  .section-press__swiper .swiper-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
  }
}

@media (min-width: 1024px) {
  .section-case__swiper .swiper-wrapper {
    grid-auto-columns: calc((100% - 128px) / 5);
    gap: 32px;
  }

  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: calc((100% - 72px) / 4);
    gap: 24px;
  }

  .section-press__swiper .swiper-wrapper {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
  }
}

/* Layout */
.l-container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 5%;
}

/* Header */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 16px 5%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.4s var(--ease-out-expo);
  color: var(--color-base);
}
@media (min-width: 1025px) {
  .l-header { padding: 24px 5%; }
}

.l-header.is-scrolled {
  background-color: rgba(7, 16, 30, 0.95);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--color-base);
  padding: 16px 5%;
  box-shadow: 0 4px 30px rgba(0,0,0,0.1);
}

.l-header__logo {
  font-family: var(--font-en);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 500;
  letter-spacing: 0.1em;
}
.l-header__logo img { height: 60px !important; width: auto; }
@media (min-width: 1025px) { .l-header__logo img { height: 100px !important; } }

.l-header__nav {
  display: none;
}

@media (min-width: 1025px) {
  .l-header__nav {
    display: flex;
    gap: 32px;
    align-items: center;
    position: relative;
    min-height: 38px;
  }
  .l-header__link {
    font-size: 13px;
    font-family: var(--font-gothic);
    font-weight: 500;
    letter-spacing: 0.08em;
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    line-height: 1.2;
  }
  .l-header__dropdown {
    position: relative;
    z-index: 0;
    display: flex;
    align-items: center;
    min-height: 38px;
  }
  .l-header__dropdown::after {
    content: '';
    position: absolute;
    top: -20px;
    right: 0;
    bottom: -20px;
    left: 0;
  }
  .l-header__dropdown > .l-header__link {
    position: relative;
    z-index: 1;
  }
  .l-header__dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--color-base);
    color: var(--color-main);
    box-shadow: 0 4px 30px rgba(0,0,0,0.1);
    padding: 8px 0;
    min-width: 240px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    z-index: 2;
  }
  .l-header__dropdown-menu::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-accent-navy), var(--color-accent-gold));
  }
  .l-header__dropdown:hover .l-header__dropdown-menu {
    opacity: 1;
    visibility: visible;
    top: calc(100% - 10px);
  }
  .l-header__dropdown-menu a {
    padding: 16px 24px;
    font-size: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.3s ease, color 0.3s ease;
    font-family: var(--font-gothic);
    font-weight: 600;
    letter-spacing: 0.08em;
  }
  .l-header__dropdown-menu a:hover {
    background-color: rgba(182, 147, 82, 0.05);
    color: var(--color-accent-gold);
    opacity: 1;
  }
  .l-header__lang {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-en);
    font-size: 14px;
    letter-spacing: 0.1em;
    margin-left: 16px;
    min-height: 38px;
  }
  .l-header__lang a {
    opacity: 0.5;
    transition: opacity 0.3s ease;
  }
  .l-header__lang a.is-active {
    opacity: 1;
    font-weight: 500;
  }
  .l-header__lang a:hover {
    opacity: 1;
  }
  .l-header__lang span {
    opacity: 0.5;
  }
}

.c-hamburger {
  display: block;
  width: 30px;
  height: 20px;
  position: relative;
  cursor: pointer;
  z-index: 101;
}

@media (min-width: 1025px) {
  .c-hamburger {
    display: none;
  }
}

.c-hamburger span {
  position: absolute;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transition: all 0.3s ease;
}

.c-hamburger span:nth-child(1) { top: 0; }
.c-hamburger span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.c-hamburger span:nth-child(3) { bottom: 0; }

.l-header.is-open .c-hamburger span { background-color: var(--color-base); }
.l-header.is-open .c-hamburger span:nth-child(1) { top: 50%; transform: translateY(-50%) rotate(45deg); }
.l-header.is-open .c-hamburger span:nth-child(2) { opacity: 0; }
.l-header.is-open .c-hamburger span:nth-child(3) { bottom: auto; top: 50%; transform: translateY(-50%) rotate(-45deg); }

/* Mobile Menu */
.l-mobile-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background-color: #1A1C20;
  z-index: 99;
  padding: 100px 5% 100px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s var(--ease-out-expo);
  color: var(--color-base);
  overflow-y: auto;
  overflow-x: hidden;
}

.l-mobile-menu.is-active {
  opacity: 1;
  visibility: visible;
}

.l-mobile-menu__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding-bottom: 40px;
  margin: 0;
}

.l-mobile-menu__item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
}

.l-mobile-menu__parent {
  width: 55%;
  flex-shrink: 0;
  padding-right: 16px;
}
.l-mobile-menu__parent > a, .l-mobile-menu__parent > span {
  font-family: var(--font-gothic);
  font-size: clamp(12px, 3.5vw, 14px);
  font-weight: 500;
  color: var(--color-base);
  letter-spacing: 0.05em;
  display: block;
  padding-bottom: 12px;
  position: relative;
  width: 100%;
  line-height: 1.4;
  text-decoration: none;
}
.l-mobile-menu__parent > a::after, .l-mobile-menu__parent > span::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; width: 100%; height: 1px;
  background: linear-gradient(90deg, #8A6832 0%, #E6C587 50%, transparent 100%);
  opacity: 0.7;
}

.l-mobile-menu__children {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 1px;
  width: auto;
  flex: 1;
}
.l-mobile-menu__children a {
  font-family: var(--font-gothic);
  font-size: clamp(12px, 3vw, 13px);
  color: var(--color-base);
  letter-spacing: 0.05em;
  opacity: 0.9;
  line-height: 1.4;
  display: block;
  text-decoration: none;
}
.l-mobile-menu__children a:hover {
  opacity: 1;
  color: var(--color-accent-gold);
}

.l-mobile-menu__lang {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  font-family: var(--font-en);
  font-size: 16px;
  letter-spacing: 0.1em;
}

.l-mobile-menu__lang a {
  opacity: 0.5;
  color: var(--color-base);
  transition: opacity 0.3s ease;
}

.l-mobile-menu__lang a.is-active {
  opacity: 1;
  font-weight: 500;
}

.l-mobile-menu__lang a:hover {
  opacity: 1;
}

.l-mobile-menu__lang span {
  opacity: 0.3;
  color: var(--color-base);
}

.l-header .c-btn--gold {
  padding: 12px 32px;
  font-size: 12px;
}

/* Utility */
@media (max-width: 767px) {
  .u-hidden-sp { display: none !important; }
}
@media (min-width: 768px) {
  .u-hidden-pc { display: none !important; }
}

/* Typography & Titles */
.c-section-title {
  margin-bottom: clamp(40px, 6vw, 80px);
}

.c-section-title__en {
  font-family: var(--font-en);
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 400;
  letter-spacing: 0.15em;
  color: var(--color-accent-navy);
  line-height: 1.2;
  margin-bottom: 8px;
  text-transform: uppercase;
  display: block;
}

.c-section-title__ja {
  font-family: var(--font-mincho);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: #888;
  display: block;
}

.c-section-title::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background-color: var(--color-accent-gold);
  margin-top: 24px;
}

/* Buttons */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 18px 64px;
  background-color: var(--color-accent-navy);
  color: var(--color-base);
  font-family: var(--font-mincho);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.2em;
  min-width: 0;
  border: none;
  position: relative;
  overflow: hidden;
  transition: all 0.6s var(--ease-out-expo);
  white-space: nowrap;
}

@media (max-width: 767px) {
  .c-btn {
    width: 100%;
    padding: 16px 20px;
  }
}

.c-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
  margin-left: 0;
  background-color: var(--color-base);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.6s var(--ease-out-expo);
  z-index: 0;
}

.c-btn:hover {
  border-color: transparent;
}

.c-btn:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.c-btn span {
  position: relative;
  z-index: 1;
  transition: color 0.4s ease;
}

.c-btn:hover span {
  color: var(--color-accent-navy);
}

/* Hero Section */
.section-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.section-hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  height: 90px;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0) 100%);
  animation: scrollDown 2.5s cubic-bezier(0.65, 0, 0.35, 1) infinite;
  z-index: 10;
}

@keyframes scrollDown {
  0% { transform: translate(-50%, -100%); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translate(-50%, 100%); opacity: 0; }
}

.section-hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
  background-color: var(--color-main);
}

.section-hero__bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  animation: heroZoom 20s linear infinite alternate;
}

.section-hero__bg-img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0.6;
  animation: heroZoom 20s linear infinite alternate;
}

.section-hero__mobile-img {
  display: none;
}

@keyframes heroZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.05); }
}

.section-hero__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(0, 17, 40, 0.85) 0%, rgba(0, 0, 0, 0.3) 100%);
  z-index: -1;
}

.section-hero__content {
  color: var(--color-base);
  padding: 0 5%;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

.section-hero__catch {
  font-family: var(--font-mincho);
  font-size: clamp(17px, 4.5vw, 64px);
  line-height: 1.5;
  font-weight: 300;
  letter-spacing: 0.1em;
  margin-bottom: 24px;
  white-space: nowrap;
}

.section-hero__sub {
  font-size: clamp(16px, 2vw, 24px);
  font-weight: 300;
  letter-spacing: 0.2em;
  margin-bottom: 48px;
  opacity: 0.9;
}

.section-hero__btns {
  display: flex;
  gap: 24px;
}
@media (max-width: 767px) {
  .section-hero__btns {
    flex-direction: column;
    gap: 16px;
    align-items: stretch;
    width: 100%;
  }
}

/* About Section */
.section-about {
  position: relative;
  padding: clamp(128px, 14vw, 196px) 0 clamp(120px, 13vw, 184px);
  background-color: #F7F7F7;
  overflow: hidden;
}

.section-about::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/top/IMG_1696_about.jpg');
  background-size: cover;
  background-position: center 45%;
  filter: grayscale(85%) contrast(1.06) brightness(0.96);
  opacity: 0.46;
  z-index: 0;
}

.section-about::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 72% 28%, rgba(7, 16, 30, 0.18) 0%, rgba(7, 16, 30, 0.07) 34%, rgba(7, 16, 30, 0) 62%),
    linear-gradient(112deg, rgba(255, 255, 255, 0.93) 0%, rgba(248, 249, 250, 0.82) 36%, rgba(232, 235, 238, 0.68) 66%, rgba(7, 16, 30, 0.13) 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(7, 16, 30, 0.08) 100%);
  z-index: 0;
}

.section-about__watermark {
  position: absolute;
  bottom: 0;
  left: 0;
  font-family: var(--font-en);
  font-size: clamp(76px, 12vw, 210px);
  line-height: 0.85;
  color: rgba(7, 16, 30, 0.03);
  font-weight: 300;
  pointer-events: none;
  z-index: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
  display: flex;
  width: max-content;
}

.section-about__watermark-inner {
  display: flex;
  padding-right: 50px;
  animation: scrollText 90s linear infinite;
}

@keyframes scrollText {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

.section-about .l-container {
  position: relative;
  z-index: 1;
}

.section-about__inner {
  display: grid;
  gap: clamp(64px, 8vw, 104px);
}

@media (min-width: 992px) {
  .section-about__inner {
    display: flex;
    flex-direction: row;
    gap: 16%;
    align-items: flex-start;
  }
}

.section-about__left {
  width: 100%;
}

@media (min-width: 992px) {
  .section-about__left {
    width: 320px;
    flex-shrink: 0;
    padding-top: 6px;
  }
}

.section-about__en {
  font-family: var(--font-en);
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 400;
  letter-spacing: 0.15em;
  color: var(--color-accent-navy);
  line-height: 1.2;
  margin-bottom: 8px;
  white-space: nowrap;
  text-transform: uppercase;
}

.section-about__ja {
  font-family: var(--font-mincho);
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: #888;
  display: block;
  margin-bottom: 24px;
}

.section-about__line {
  width: 40px;
  height: 1px;
  background-color: var(--color-accent-gold);
}

.section-about__right {
  position: relative;
  padding-top: 0;
  min-width: 0;
}

@media (min-width: 992px) {
  .section-about__right {
    flex: 1;
    max-width: none;
  }
}

.section-about__text-wrap {
  position: relative;
  max-width: 860px;
  margin-bottom: 42px;
  padding-top: 0;
}

.section-about__catch {
  font-family: var(--font-mincho);
  font-size: clamp(34px, 3.9vw, 56px);
  line-height: 1.58;
  margin-bottom: 40px;
  font-weight: 700;
  letter-spacing: 0.07em;
  color: var(--color-accent-navy);
  text-shadow: 0 16px 38px rgba(7, 16, 30, 0.12);
  word-break: keep-all;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.section-about__catch-line {
  display: block;
  width: fit-content;
  padding: 0 0.1em 0.06em;
  background-image: linear-gradient(transparent 50%, rgba(182, 147, 82, 0.5) 50%, rgba(182, 147, 82, 0.5) 86%, transparent 86%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.section-about__catch::after {
  content: '';
  display: block;
  width: 120px;
  height: 1px;
  margin-top: 34px;
  background: linear-gradient(90deg, var(--color-accent-gold), rgba(182, 147, 82, 0));
}

@media (max-width: 767px) {
  .section-about__catch br {
    display: block;
  }
}

.section-about__desc p {
  margin-bottom: 24px;
  color: rgba(26, 26, 26, 0.76);
  font-size: clamp(15px, 1.25vw, 17px);
  line-height: 2.05;
  letter-spacing: 0.065em;
}

.section-about__desc p:first-child {
  font-family: var(--font-mincho);
  font-size: clamp(25px, 2.4vw, 32px);
  line-height: 1.65;
  letter-spacing: 0.11em;
  color: var(--color-accent-gold);
  font-weight: 700;
  margin-bottom: 34px;
  padding-left: 0;
  border-left: 0;
  text-shadow: 0 10px 28px rgba(182, 147, 82, 0.18);
}

.section-about__more-wrap {
  max-width: 860px;
  margin-bottom: 0;
  padding-top: 10px;
}

@media (max-width: 767px) {
  .section-about {
    padding: 100px 0 112px;
  }

  .section-about::before {
    background-position: 50% center;
    opacity: 0.36;
  }

  .section-about::after {
    background:
      radial-gradient(ellipse at 62% 22%, rgba(7, 16, 30, 0.14) 0%, rgba(7, 16, 30, 0.05) 40%, rgba(7, 16, 30, 0) 70%),
      linear-gradient(160deg, rgba(255, 255, 255, 0.92) 0%, rgba(247, 248, 249, 0.8) 54%, rgba(7, 16, 30, 0.1) 100%),
      linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(7, 16, 30, 0.06) 100%);
  }

  .section-about__en {
    white-space: normal;
  }

  .section-about__right {
    padding-top: 0;
  }

  .section-about__text-wrap {
    margin-bottom: 42px;
  }

  .section-about__catch {
    font-size: clamp(31px, 8.6vw, 41px);
    line-height: 1.6;
    margin-bottom: 32px;
  }

  .section-about__desc p {
    font-size: 14px;
    line-height: 2.02;
  }

  .section-about__desc p:first-child {
    font-size: 22px;
    padding-left: 0;
  }

  .section-about__lead-line {
    font-size: clamp(18px, 5.1vw, 22px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.03em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

}

.c-more-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  color: var(--color-accent-navy);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.15em;
  text-decoration: none;
  transition: opacity 0.4s ease;
  white-space: nowrap;
}

.c-more-link:hover {
  opacity: 1;
}

.c-more-link__text,
.c-more-link__line,
.c-more-link__circle {
  flex-shrink: 0;
}

.c-more-link__line {
  display: block;
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, var(--color-accent-gold), transparent);
  transition: width 0.6s var(--ease-out-expo);
}

.c-more-link:hover .c-more-link__line {
  width: 90px;
}

.c-more-link__circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(182, 147, 82, 0.4);
  border-radius: 50%;
  color: var(--color-accent-gold);
  transition: all 0.6s var(--ease-out-expo);
}

.c-more-link:hover .c-more-link__circle {
  background-color: transparent;
  border-color: var(--color-accent-gold);
  transform: scale(1.1);
}

.c-more-link__circle svg {
  width: 16px;
  height: 16px;
  transition: transform 0.6s var(--ease-out-expo);
}

.c-more-link:hover .c-more-link__circle svg {
  transform: translateX(4px);
}

/* About Luxury Visuals */
.section-about__visuals {
  margin-top: clamp(80px, 10vw, 140px);
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.c-luxury-visual {
  position: relative;
  width: 100%;
  max-width: 900px;
  height: clamp(300px, 40vw, 500px);
}

@media (min-width: 992px) {
  .c-luxury-visual {
    width: 85%;
  }
}

.c-luxury-visual__bg {
  position: absolute;
  top: -20px;
  right: 40px;
  width: 50%;
  height: 70%;
  border: 1px solid var(--color-accent-gold);
  z-index: 1;
}

.c-luxury-visual__img1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 65%;
  height: 80%;
  z-index: 2;
  box-shadow: 0 15px 40px rgba(0,0,0,0.1);
  overflow: hidden;
}

.c-luxury-visual__img1 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: filter 0.8s ease, transform 1.2s ease;
}

.c-luxury-visual__img2 {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 45%;
  height: 65%;
  z-index: 3;
  box-shadow: -10px 15px 40px rgba(0,0,0,0.2);
  overflow: hidden;
}

.c-luxury-visual__img2 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: filter 0.8s ease, transform 1.2s ease;
}

.c-luxury-visual:hover .c-luxury-visual__img1 img,
.c-luxury-visual:hover .c-luxury-visual__img2 img {
  filter: grayscale(0%);
  transform: scale(1.05);
}

.section-about__banner {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  overflow: hidden;
}

@media (min-width: 768px) {
  .section-about__banner {
    flex-direction: row;
    align-items: stretch;
  }
}

.section-about__banner:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}

.section-about__banner-img {
  flex: 1;
  position: relative;
}

.section-about__banner-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}

@media (min-width: 768px) {
  .section-about__banner-img img {
    position: absolute;
    top: 0;
    left: 0;
  }
}

.section-about__banner-text {
  flex: 1;
  background-color: #F4F4F4;
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.section-about__banner-text h4 {
  font-size: 20px;
  font-family: var(--font-gothic);
  font-weight: 600;
  margin-bottom: 16px;
  color: var(--color-main);
}

.section-about__banner-text p {
  font-size: 13px;
  color: #555;
  line-height: 1.8;
  margin-bottom: 24px;
}

.section-about__banner-link {
  font-size: 13px;
  color: var(--color-accent-navy);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
}

.section-about__banner-link .arrow {
  font-size: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 1px solid var(--color-accent-navy);
  border-radius: 50%;
}

/* Media Section */
.section-interview {
  padding: clamp(80px, 12vw, 160px) 0;
}

.section-interview__media-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: stretch;
}

@media (min-width: 900px) {
  .section-interview__media-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
  }
}

.section-interview__media-item {
  min-width: 0;
}

.c-video-container {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  box-shadow: 0 30px 60px rgba(0,0,0,0.12);
  border: 1px solid rgba(182, 147, 82, 0.4);
  border-radius: 8px;
  overflow: hidden;
}

.c-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.c-media-image {
  width: 100%;
  aspect-ratio: 16/9;
  box-shadow: 0 30px 60px rgba(0,0,0,0.12);
  border: 1px solid rgba(182, 147, 82, 0.4);
  border-radius: 8px;
  overflow: hidden;
  background-color: #fff;
}

.c-media-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Service Section */
.section-service {
  padding: clamp(80px, 12vw, 160px) 0;
  background-color: var(--color-sub-gray);
}

.section-service__inner {
  display: block;
}

@media (min-width: 992px) {
  .section-service__inner {
    display: flex;
    flex-direction: row;
    gap: 16%;
  }
}

.section-service__left {
  width: 100%;
  position: -webkit-sticky;
  position: sticky;
  top: 75px;
  background-color: var(--color-sub-gray);
  z-index: 10;
  padding-bottom: 24px;
  margin-top: -24px;
  padding-top: 24px;
}

.section-service__right {
  margin-top: 64px;
}

.section-service__sticky {
}

@media (min-width: 992px) {
  .section-service__left {
    width: 320px;
    flex-shrink: 0;
    position: static;
    background-color: transparent;
    padding: 0;
    margin: 0;
  }
  .section-service__right {
    margin-top: 0;
  }
  .section-service__sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 140px;
  }
}

.section-service__lead {
  font-size: 14px;
  line-height: 2;
  color: #666;
  margin-bottom: 48px;
  letter-spacing: 0.08em;
}

.section-service__nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.section-service__nav-item {
  font-family: var(--font-mincho);
  font-size: 16px;
  color: #BBB;
  letter-spacing: 0.1em;
  transition: all 0.4s ease;
  position: relative;
  padding-left: 0;
}

.section-service__nav-item::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 0;
  height: 1px;
  background-color: var(--color-accent-navy);
  transform: translateY(-50%);
  transition: width 0.4s ease;
}

.section-service__nav-item.is-active {
  color: var(--color-accent-gold);
  font-weight: 500;
  padding-left: 32px;
}

.section-service__nav-item.is-active::before {
  width: 20px;
  background-color: var(--color-accent-gold);
}

.section-service__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.c-service-block {
  display: flex;
  flex-direction: column;
  gap: 24px;
  border-top: 1px solid rgba(182, 147, 82, 0.3);
  padding-top: 24px;
  margin-bottom: 64px;
}

.c-service-block:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .c-service-block {
    flex-direction: row;
    align-items: flex-start;
    gap: 48px;
    padding-top: 32px;
  }
  .c-service-block__content {
    width: 35%;
    flex-shrink: 0;
    padding-top: 8px;
  }
  .c-service-block__image {
    width: 65%;
    flex-shrink: 0;
  }
}

.c-service-block__title {
  font-family: var(--font-mincho);
  font-size: clamp(20px, 2vw, 24px);
  color: var(--color-accent-navy);
  margin-bottom: 24px;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.c-service-block__desc {
  font-size: 13px;
  color: #444;
  line-height: 2;
  letter-spacing: 0.05em;
}

.c-service-block__image {
  aspect-ratio: 16/9;
  overflow: hidden;
}

.c-service-block__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: transform 0.8s var(--ease-out-expo), filter 0.4s ease;
}

.c-service-block:hover .c-service-block__image img {
  transform: scale(1.05);
}

/* Press Release Section */
.section-press {
  padding: clamp(80px, 12vw, 120px) 0;
  background-color: var(--color-sub-gray);
  overflow: hidden;
}

.section-press__header {
  margin-bottom: 48px;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.section-press__nav {
  display: flex;
  gap: 16px;
}

.section-press__nav button {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid #ddd;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #666;
  outline: none;
}

.section-press__nav button:hover {
  background: var(--color-accent-gold);
  color: #fff;
  border-color: var(--color-accent-gold);
}

.section-press__nav button svg {
  width: 20px;
  height: 20px;
}

.section-press__swiper {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 5%;
  overflow: visible;
}

.c-press-card {
  background: var(--color-base);
  width: 100%;
  height: auto;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.4s ease;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03);
}

.c-press-card:hover {
  box-shadow: 0 10px 28px rgba(0,0,0,0.08);
}

.c-press-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
}

.c-press-card__thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform 0.8s var(--ease-out-expo);
}

.c-press-card__img-wrap {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.c-press-card:hover .c-press-card__img-wrap img {
  transform: scale(1.05);
}

.c-press-card__tag {
  position: absolute;
  left: 24px;
  bottom: 0;
  background: var(--color-accent-gold);
  color: #fff;
  font-size: 12px;
  padding: 7px 18px;
  font-weight: 500;
  letter-spacing: 0.05em;
  transform: translateY(50%);
  z-index: 2;
  border-radius: 20px;
}

.c-press-card__body {
  padding: 30px 24px 24px;
  flex: 0 0 108px;
  display: flex;
  flex-direction: column;
  height: 108px;
}

.c-press-card__title {
  font-family: var(--font-gothic);
  font-size: 15px !important;
  font-weight: 600;
  line-height: 1.6 !important;
  margin-bottom: 0;
  color: var(--color-main);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 3.2em;
  max-height: 3.2em;
}

.section-press__swiper .swiper-slide {
  height: auto !important;
  display: flex;
}

/* ニュース Section */
.section-news {
  padding: clamp(80px, 12vw, 120px) 0;
  background-color: var(--color-base);
}

.section-news__inner {
  display: flex;
  flex-direction: column;
  gap: 64px;
}

@media (min-width: 992px) {
  .section-news__inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 16%;
  }
}

.section-news__left {
  width: 100%;
}

@media (min-width: 992px) {
  .section-news__left {
    width: 320px;
    flex-shrink: 0;
    position: sticky;
    top: 140px;
  }
}

.section-news__right {
  width: 100%;
}

@media (min-width: 992px) {
  .section-news__right {
    flex-grow: 1;
  }
}

.section-news__list {
  border-top: 1px solid rgba(182, 147, 82, 0.3);
}

.c-news-item {
  display: flex;
  flex-direction: column;
  padding: 32px 0;
  border-bottom: 1px solid rgba(182, 147, 82, 0.3);
  transition: opacity 0.4s ease;
  text-decoration: none;
}

@media (min-width: 768px) {
  .c-news-item {
    flex-direction: row;
    align-items: center;
    gap: 40px;
    padding: 40px 0;
  }
}

.c-news-item:hover {
  opacity: 0.8;
}

.c-news-item__thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--color-sub-gray);
  overflow: hidden;
  margin-bottom: 24px;
  position: relative;
}

@media (min-width: 768px) {
  .c-news-item__thumb {
    width: 280px;
    flex-shrink: 0;
    margin-bottom: 0;
  }
}

.c-news-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo), filter 0.8s ease;
  filter: grayscale(100%);
}

.c-news-item:hover .c-news-item__thumb img {
  transform: scale(1.05);
  filter: grayscale(0%);
}

.c-news-item__tag {
  position: absolute;
  left: 16px;
  bottom: 16px;
  background: var(--color-accent-gold);
  color: #fff;
  font-size: 11px;
  padding: 4px 12px;
  font-weight: 500;
  letter-spacing: 0.05em;
  z-index: 2;
  border-radius: 20px;
}

.c-news-item__content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.c-news-item__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.c-news-item__date {
  font-family: var(--font-en);
  font-size: 15px;
  color: #888;
  letter-spacing: 0.05em;
}

.c-news-item__title {
  font-family: var(--font-gothic);
  font-size: 15px;
  line-height: 1.6;
  color: var(--color-main);
  font-weight: 500;
  margin: 0;
}

/* Case Section */
.section-case {
  padding: clamp(80px, 12vw, 160px) 0;
  background-color: var(--color-base);
}

.section-case__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 64px;
}

.section-case__swiper {
  width: 100%;
  padding-bottom: 40px;
}

.c-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  background-color: var(--color-base);
  border: 1px solid var(--color-sub-gray);
  padding: 0;
}

.c-logo-item--wide {
  padding: 12px 20px;
}

.c-logo-item--dark {
  background-color: #6F6F6F;
  border-color: #6F6F6F;
  padding: 18px 24px;
}

.c-logo-item img {
  max-height: 100%;
  max-width: 100%;
  object-fit: cover;
}

/* Voice Section */
.section-voice {
  padding: clamp(80px, 12vw, 160px) 0;
  background-color: var(--color-sub-gray);
  overflow: hidden;
}

.section-voice__header {
  margin-bottom: 64px;
}

.section-voice__header .c-section-title {
  margin-bottom: 0;
}

.section-voice__lead {
  margin-top: 28px;
  max-width: 760px;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.08em;
  color: #666;
  font-family: var(--font-gothic);
  line-break: strict;
  text-wrap: pretty;
  word-break: auto-phrase;
}

.section-voice__group-header {
  margin: 0 auto 28px;
}

.section-voice__swiper + .section-voice__group-header {
  margin-top: 64px;
}

.section-voice__group-kicker {
  display: block;
  margin-bottom: 8px;
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.18em;
  color: var(--color-accent-gold);
  text-transform: uppercase;
}

.section-voice__group-title {
  display: flex;
  align-items: center;
  gap: 18px;
  font-family: var(--font-gothic);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.12em;
  color: #666;
}

.section-voice__group-title::after {
  content: '';
  width: 48px;
  height: 1px;
  background-color: var(--color-accent-gold);
  flex-shrink: 0;
}

.section-voice__swiper {
  width: 100%;
  padding: 0 5% 40px;
  position: relative;
}

.section-voice__swiper .swiper {
  position: relative;
  overflow: visible;
}

.section-voice__swiper .swiper-button-prev,
.section-voice__swiper .swiper-button-next {
  position: absolute;
  top: 50%;
  width: 50px;
  height: 50px;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-base);
  border-radius: 50%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  color: var(--color-main);
  cursor: pointer;
  margin-top: 0;
  transform: translateY(-50%);
  transition: all 0.3s ease;
  z-index: 5;
}

.section-voice__swiper .swiper-button-prev:hover,
.section-voice__swiper .swiper-button-next:hover {
  background-color: var(--color-accent-gold);
  color: var(--color-base);
}

.section-voice__swiper .swiper-button-prev:after,
.section-voice__swiper .swiper-button-next:after {
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
}

.section-voice__swiper .swiper-button-prev:after {
  content: '\2190';
}

.section-voice__swiper .swiper-button-next:after {
  content: '\2192';
}

.section-voice__swiper .swiper-button-prev {
  left: clamp(8px, 2%, 24px);
}

.section-voice__swiper .swiper-button-next {
  right: clamp(8px, 2%, 24px);
}

.c-voice-card {
  background: var(--color-base);
  border: 1px solid var(--color-sub-gray);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04);
  height: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.3s ease;
}

@media (max-width: 767px) {
  .section-voice__group-header {
    margin-bottom: 20px;
  }

  .section-voice__swiper + .section-voice__group-header {
    margin-top: 48px;
  }

  .section-voice__group-title {
    gap: 12px;
    font-size: 20px;
    letter-spacing: 0.08em;
  }

  .section-voice__group-title::after {
    width: 32px;
  }

  .section-voice__swiper {
    padding-bottom: 88px;
  }

  .section-voice__swiper .swiper-button-prev,
  .section-voice__swiper .swiper-button-next {
    top: auto;
    bottom: 16px;
    transform: none;
  }

  .section-voice__swiper .swiper-button-prev {
    left: calc(50% - 58px);
  }

  .section-voice__swiper .swiper-button-next {
    right: calc(50% - 58px);
  }
}

.c-voice-card:hover {
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.c-voice-card__img-wrap {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}

.c-voice-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
  filter: grayscale(20%);
}

.c-voice-card__img--face-hidden {
  object-position: center bottom;
  transform: scale(1.9);
  transform-origin: center bottom;
}

.c-voice-card:hover .c-voice-card__img {
  transform: scale(1.05);
  filter: grayscale(0%);
}

.c-voice-card:hover .c-voice-card__img--face-hidden {
  transform: scale(1.98);
}

.c-voice-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.c-voice-card__quote {
  font-family: var(--font-gothic);
  font-size: clamp(14px, 1.2vw, 15px);
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 24px;
  flex-grow: 1;
  color: #1A365D; /* Dark blue to match the provided design */
  line-break: strict;
  overflow-wrap: normal;
  text-wrap: wrap;
  word-break: normal;
}

.c-voice-card__profile {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  border-top: none;
  padding-top: 0;
  margin-top: auto;
}

.c-voice-card__info {
  display: flex;
  flex-direction: column;
  text-align: right;
}

.c-voice-card__company {
  font-size: 11px;
  font-weight: 600;
  color: var(--color-main);
  margin-bottom: 4px;
}

.c-voice-card__name {
  font-size: 11px;
  color: #666;
}

/* Links Section */
.section-links {
  padding: clamp(72px, 9vw, 128px) 0 clamp(80px, 12vw, 160px);
  background-color: var(--color-base);
}

.section-links__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .section-links__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.c-link-card {
  position: relative;
  display: block;
  aspect-ratio: 16/9;
  overflow: hidden;
  text-decoration: none;
  background-color: var(--color-main);
  border-radius: 0;
}

.c-link-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 0;
  z-index: 3;
  pointer-events: none;
  transition: all 0.6s var(--ease-out-expo);
}

.c-link-card:hover::before {
  top: 12px; left: 12px; right: 12px; bottom: 12px;
  border-radius: 0;
  border-color: rgba(255, 255, 255, 0.5);
}

@media (min-width: 768px) {
  .c-link-card {
    aspect-ratio: 4/3;
  }
}

.c-link-card__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.c-link-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease-out-expo), opacity 0.4s ease;
  opacity: 0.5;
}

.c-link-card:hover .c-link-card__bg img {
  transform: scale(1.05);
  opacity: 0.3;
}

.c-link-card__content {
  position: relative;
  z-index: 4;
  width: 100%;
  height: 100%;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.c-link-card__text {
  color: var(--color-base);
}

.c-link-card__en {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.15em;
  font-weight: 500;
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  opacity: 0.9;
}

.c-link-card__ja {
  font-family: var(--font-gothic);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-bottom: 16px;
}

.c-link-card__line {
  width: 32px;
  height: 1px;
  background: linear-gradient(90deg, #003B7E 0%, var(--color-accent-navy) 100%);
  transition: width 0.4s ease;
}

.c-link-card:hover .c-link-card__line {
  width: 64px;
}

.c-link-card__arrow {
  align-self: flex-end;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #003B7E 0%, var(--color-accent-navy) 100%);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-base);
  transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

.c-link-card:hover .c-link-card__arrow {
  transform: translateX(6px);
  box-shadow: 0 8px 20px rgba(0, 35, 78, 0.7);
  border-color: rgba(255, 255, 255, 0.5);
}

.c-link-card__arrow svg {
  width: 16px;
  height: 16px;
}

/* Twin Links Section */
.section-twin-links {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .section-twin-links {
    flex-direction: row;
  }
}
.c-twin-link {
  position: relative;
  flex: 1;
  aspect-ratio: 16/9;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  overflow: hidden;
  background-color: var(--color-main);
}
@media (min-width: 768px) {
  .c-twin-link {
    aspect-ratio: 2/1;
  }
}
.c-twin-link__bg {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease-out-expo);
  z-index: 1;
  opacity: 0.8;
  filter: grayscale(100%);
}
.c-twin-link__overlay {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 2;
  transition: background-color 0.4s ease;
}
.c-twin-link:hover .c-twin-link__bg {
  transform: scale(1.05);
  filter: grayscale(0%);
}
.c-twin-link:hover .c-twin-link__overlay {
  background-color: rgba(0, 35, 78, 0.5);
}
.c-twin-link__content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-base);
}
.c-twin-link__en {
  font-family: var(--font-en);
  font-size: clamp(32px, 4vw, 48px);
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-bottom: 8px;
}
.c-twin-link__ja {
  font-family: var(--font-gothic);
  font-size: 14px;
  letter-spacing: 0.2em;
  margin-bottom: 24px;
}
.c-twin-link__line {
  width: 24px;
  height: 1px;
  background: linear-gradient(90deg, #003B7E 0%, var(--color-accent-navy) 100%);
  margin-bottom: 32px;
  transition: width 0.4s ease;
}
.c-twin-link:hover .c-twin-link__line {
  width: 48px;
}
.c-twin-link__btn {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #003B7E 0%, var(--color-accent-navy) 100%);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-base);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.4s ease;
}
.c-twin-link:hover .c-twin-link__btn {
  transform: translateX(4px);
  box-shadow: 0 8px 20px rgba(0, 35, 78, 0.7);
  border-color: rgba(255, 255, 255, 0.5);
}
.c-twin-link__btn svg {
  width: 16px; height: 16px;
}

/* CTA Section */
.section-cta {
  position: relative;
  background: linear-gradient(135deg, #050a12 0%, #112038 50%, #050a12 100%);
  color: var(--color-base);
  text-align: center;
  padding: clamp(80px, 10vw, 120px) 5%;
  overflow: hidden;
}

.section-cta::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 0%, rgba(182, 147, 82, 0.15), transparent 70%);
  pointer-events: none;
}

.section-cta__inner {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.section-cta .c-section-title {
  margin-bottom: clamp(32px, 5vw, 48px);
}

.section-cta .c-section-title::after {
  display: none;
}

.section-cta .c-section-title__en {
  color: var(--color-base);
}

.section-cta .c-section-title__ja {
  color: rgba(255,255,255,0.7);
}

.section-cta__text {
  font-family: var(--font-mincho);
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 48px;
  letter-spacing: 0.1em;
}

.c-btn--gold {
  background: linear-gradient(135deg, #B69352 0%, #F5E2B6 25%, #C29D5D 50%, #9B783E 100%);
  color: var(--color-accent-navy);
  border: none;
  box-shadow: 0 4px 20px rgba(182, 147, 82, 0.25);
}

.c-btn--gold::after {
  background: linear-gradient(135deg, #C29D5D 0%, #FFF3D6 25%, #A68448 50%, #8A6832 100%);
}

.c-btn--gold:hover {
  box-shadow: 0 8px 30px rgba(182, 147, 82, 0.4);
  transform: translateY(-2px);
}

.c-btn--gold span {
  color: var(--color-accent-navy);
}

.c-btn--gold:hover span {
  color: var(--color-accent-navy);
}

/* Footer */
.l-footer {
  background: #050505;
  color: var(--color-base);
  padding: 100px 5% 40px;
  border-top: 1px solid rgba(182, 147, 82, 0.3);
}

.l-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 64px;
}

@media (min-width: 768px) {
  .l-footer__inner {
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 80px;
  }
}

.l-footer__info {
  flex: 0 0 240px;
}

.l-footer__logo {
  margin-bottom: 24px;
  display: block;
}
.l-footer__logo img {
}

.l-footer__address {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 2;
  letter-spacing: 0.05em;
}

.l-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 48px;
  justify-content: flex-start;
}

.l-footer__nav-group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 160px;
}

.l-footer__nav-group-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-base);
  letter-spacing: 0.1em;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--color-accent-gold);
  margin-bottom: 8px;
  white-space: nowrap;
}

.l-footer__nav-group a {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.05em;
  transition: color 0.3s ease;
  display: inline-block;
  white-space: nowrap;
}

.l-footer__nav-group a:hover {
  color: var(--color-accent-gold);
}

.l-footer__bottom {
  max-width: 1200px;
  margin: 80px auto 0;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.1em;
}

/* Animation Classes */
.js-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo);
}

.js-fade-up.is-visible {
  opacity: 1;
  transform: none;
}


/* Recruit CTA override */
.section-cta { position: relative; background: linear-gradient(135deg, #050a12 0%, #112038 50%, #050a12 100%); color: var(--color-base); text-align: center; padding: clamp(80px, 10vw, 120px) 5%; overflow: hidden; }
.section-cta::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 50% 0%, rgba(182, 147, 82, 0.15), transparent 70%); pointer-events: none; }
.section-cta__inner { position: relative; z-index: 2; max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.section-cta .c-section-title { margin-bottom: clamp(32px, 5vw, 48px); text-align: center; display: flex; flex-direction: column; align-items: center; }
.section-cta .c-section-title::after { content: ''; display: block; width: 40px; height: 1px; background-color: var(--color-accent-gold); margin: 24px auto 0; }
.section-cta .c-section-title__en { color: var(--color-base) !important; text-align: center; }
.section-cta .c-section-title__ja { color: rgba(255,255,255,0.7) !important; text-align: center; }
.section-cta__text { font-family: var(--font-ja-serif); font-size: clamp(16px, 2vw, 20px); margin-bottom: 48px; letter-spacing: 0.1em; font-weight: 300; }
/* End Recruit CTA override */

/* Mobile full optimization */
@media (max-width: 767px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
  }

  body {
    font-size: 14px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.04em !important;
    -webkit-text-size-adjust: 100%;
  }

  img,
  video,
  iframe,
  table {
    max-width: 100%;
  }

  iframe {
    height: min(64vw, 360px) !important;
  }

  h1,
  h2,
  h3,
  h4,
  p,
  a,
  span,
  dd,
  dt,
  li {
    overflow-wrap: anywhere;
  }

  .l-container,
  .l-container--small,
  .container,
  .c-container {
    width: 100% !important;
    max-width: none !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .l-header {
    min-height: 72px !important;
    padding: 10px 20px !important;
    background: linear-gradient(180deg, rgba(7, 16, 30, 0.82), rgba(7, 16, 30, 0)) !important;
  }

  .l-header.is-scrolled,
  .l-header.is-open {
    padding: 10px 20px !important;
    background: rgba(7, 16, 30, 0.96) !important;
  }

  .l-header__logo img {
    height: 52px !important;
    width: auto !important;
    max-width: 160px !important;
    object-fit: contain !important;
  }

  .c-hamburger {
    width: 44px !important;
    height: 44px !important;
    margin-right: -8px !important;
  }

  .c-hamburger span {
    left: 8px !important;
    width: 28px !important;
  }

  .c-hamburger span:nth-child(1) { top: 12px !important; }
  .c-hamburger span:nth-child(2) { top: 22px !important; }
  .c-hamburger span:nth-child(3) { bottom: 12px !important; }

  .l-mobile-menu {
    height: 100dvh !important;
    padding: 92px 20px calc(32px + env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .l-mobile-menu__list {
    gap: 0 !important;
    padding-bottom: 0 !important;
  }

  .l-mobile-menu__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 18px 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  .l-mobile-menu__parent {
    width: 100% !important;
    padding-right: 0 !important;
    flex: none !important;
  }

  .l-mobile-menu__parent > a,
  .l-mobile-menu__parent > span {
    width: 100% !important;
    padding-bottom: 0 !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    letter-spacing: 0.06em !important;
  }

  .l-mobile-menu__parent > a::after,
  .l-mobile-menu__parent > span::after {
    content: none !important;
  }

  .l-mobile-menu__children {
    width: 100% !important;
    gap: 10px !important;
    padding: 2px 0 0 14px !important;
  }

  .l-mobile-menu__children a {
    font-size: 13px !important;
    line-height: 1.55 !important;
    letter-spacing: 0.05em !important;
  }

  .l-mobile-menu__lang {
    margin-top: 0 !important;
    font-size: 16px !important;
  }

  .c-page-header {
    min-height: 0 !important;
    padding: 128px 20px 64px !important;
    background-attachment: scroll !important;
  }

  .c-page-header__en,
  .c-page-header__title {
    font-size: clamp(34px, 11vw, 44px) !important;
    line-height: 1.12 !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 12px !important;
  }

  .c-page-header__ja,
  .c-page-header__sub {
    font-size: 12px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.14em !important;
  }

  .section-hero {
    min-height: 560px !important;
    height: 100svh !important;
  }

  .section-hero video,
  .section-hero img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .c-page-nav {
    top: 72px !important;
    padding: 10px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .c-page-nav__list {
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    width: max-content !important;
    min-width: 100% !important;
    padding: 0 20px !important;
  }

  .c-page-nav__link {
    display: block !important;
    white-space: nowrap !important;
    padding: 8px 12px !important;
    border: 1px solid rgba(7, 16, 30, 0.12) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  .c-section,
  .section-news-list,
  .section-article-wrap,
  .section-press,
  .section-service,
  .section-case,
  .section-voice,
  .section-links,
  .section-benefits,
  .section-positions,
  .section-reason,
  .section-features,
  .section-map,
  .section-profile,
  .section-value,
  .section-vision,
  .section-ceo {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }

  .c-section-title {
    margin-bottom: 32px !important;
  }

  .c-section-title__en {
    font-size: clamp(30px, 10vw, 40px) !important;
    line-height: 1.12 !important;
    letter-spacing: 0.08em !important;
  }

  .c-section-title__ja {
    font-size: 12px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.14em !important;
  }

  .c-section-title::after {
    margin-top: 18px !important;
  }

  .c-btn {
    width: 100% !important;
    max-width: 340px !important;
    min-height: 52px !important;
    padding: 14px 18px !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
    letter-spacing: 0.12em !important;
    text-align: center !important;
  }

  .section-cta {
    padding: 72px 20px !important;
  }

  .section-cta__inner {
    width: 100% !important;
    max-width: 420px !important;
  }

  .section-cta .c-section-title {
    align-items: center !important;
    text-align: center !important;
    margin-bottom: 30px !important;
  }

  .section-cta__text {
    font-size: 15px !important;
    line-height: 2 !important;
    letter-spacing: 0.06em !important;
    margin-bottom: 32px !important;
  }

  .section-cta__text br {
    display: none !important;
  }

  .l-footer {
    padding: 60px 20px 30px !important;
  }

  .l-footer__inner {
    gap: 36px !important;
  }

  .l-footer__info {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
  }

  .l-footer__logo {
    margin-bottom: 16px !important;
  }

  .l-footer__logo img {
    height: 82px !important;
    width: auto !important;
    margin-bottom: 16px !important;
  }

  .l-footer__address {
    font-size: 12px !important;
    line-height: 1.9 !important;
  }

  .l-footer__nav {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  .l-footer__nav-group {
    gap: 10px !important;
  }

  a.l-footer__nav-group-title,
  div.l-footer__nav-group-title,
  .l-footer__nav-group--links a {
    font-size: 13px !important;
    line-height: 1.5 !important;
    padding-bottom: 10px !important;
    margin-bottom: 4px !important;
  }

  .l-footer__nav-group a:not(.l-footer__nav-group-title) {
    font-size: 12px !important;
    line-height: 1.6 !important;
  }

  .l-footer__bottom {
    margin-top: 44px !important;
    text-align: center !important;
  }

  .l-footer__bottom-inner {
    align-items: center !important;
    text-align: center !important;
    line-height: 1.7 !important;
  }

  .c-overlap-block,
  .c-service-block,
  .section-links__grid,
  .c-benefits-grid,
  .reason-grid,
  .feature-cards-grid,
  .news-grid,
  .press-grid,
  .service-grid,
  .c-flow-grid,
  .flow-grid,
  .faq-grid,
  .form-grid,
  .profile-grid,
  .value-grid,
  .company-grid {
    grid-template-columns: 1fr !important;
  }

  .c-overlap-block,
  .c-service-block {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .c-overlap-block__img,
  .c-overlap-block__content,
  .c-service-block__image,
  .c-service-block__content {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .c-overlap-block__content,
  .c-service-block__content,
  .feature-card-item,
  .c-benefit-card__content,
  .position-wrapper,
  .c-article-card,
  .contact-form,
  .form-wrapper {
    padding: 28px 20px !important;
  }

  .c-overlap-block__title-line {
    white-space: normal !important;
  }

  .c-overlap-block__title,
  .reason-lead__title,
  .position-title,
  .c-article-header__title {
    font-size: clamp(22px, 7vw, 28px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.05em !important;
  }

  .feature-card-item {
    display: grid !important;
    grid-template-columns: 64px 1fr !important;
    gap: 14px 18px !important;
  }

  .feature-card-item__text {
    grid-column: 1 / -1 !important;
  }

  .position-dl {
    display: grid !important;
    grid-template-columns: 1fr !important;
    margin-bottom: 36px !important;
  }

  .position-dl dt {
    padding: 26px 0 10px !important;
  }

  .position-dl dd {
    padding: 0 0 26px !important;
    line-height: 2 !important;
  }

  .section-press__swiper .swiper-wrapper {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .section-case__swiper .swiper-wrapper {
    grid-auto-columns: minmax(170px, 68vw) !important;
    overflow-x: auto !important;
    scroll-snap-type: none !important;
    will-change: transform;
  }

  .section-case__swiper {
    overflow: hidden !important;
  }

  .section-case__swiper .swiper {
    overflow: visible !important;
  }

  .section-case__swiper .swiper-slide {
    scroll-snap-align: none !important;
  }

  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: minmax(260px, 86vw) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .c-press-card,
  .c-news-card,
  .c-voice-card,
  .c-benefit-card,
  .c-link-card,
  .c-logo-item {
    width: 100% !important;
    max-width: 100% !important;
  }

  .c-press-card__body,
  .c-news-card__body,
  .c-voice-card__body {
    padding: 24px 20px !important;
  }

  .c-press-card__title,
  .c-news-card__title {
    font-size: 17px !important;
    line-height: 1.65 !important;
    letter-spacing: 0.03em !important;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100% !important;
    font-size: 16px !important;
  }

  table {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 767px) and (hover: none) {
  .c-benefit-card:hover,
  .c-btn--gold:hover,
  .feature-card-item:hover,
  .c-overlap-block:hover .c-overlap-block__img img {
    transform: none !important;
  }
}
/* End mobile full optimization */

/* Requested mobile refinements */
@media (max-width: 767px) {
  .l-header__logo img {
    height: 64px !important;
    max-width: 190px !important;
  }

  .l-mobile-menu {
    padding: 100px 5% 100px !important;
  }

  .l-mobile-menu__list {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px !important;
    padding-bottom: 40px !important;
  }

  .l-mobile-menu__item {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
    padding: 0 !important;
    border-bottom: 0 !important;
  }

  .l-mobile-menu__parent {
    width: 55% !important;
    padding-right: 16px !important;
    flex-shrink: 0 !important;
  }

  .l-mobile-menu__parent > a,
  .l-mobile-menu__parent > span {
    font-size: clamp(12px, 3.5vw, 14px) !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
    display: block !important;
    padding-bottom: 12px !important;
    position: relative !important;
    width: 100% !important;
  }

  .l-mobile-menu__parent > a::after,
  .l-mobile-menu__parent > span::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 1px !important;
    background: linear-gradient(90deg, #8A6832 0%, #E6C587 50%, transparent 100%) !important;
    opacity: 0.7 !important;
  }

  .l-mobile-menu__children {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    padding-top: 1px !important;
    padding-left: 0 !important;
    width: auto !important;
    flex: 1 !important;
  }

  .l-mobile-menu__children a {
    font-size: clamp(12px, 3vw, 13px) !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
  }

  .l-mobile-menu__lang {
    margin-top: 16px !important;
    font-size: 16px !important;
  }

  .c-page-nav {
    position: sticky !important;
    top: 72px !important;
    z-index: 90 !important;
    padding: 10px 0 !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border-bottom: 1px solid rgba(7, 16, 30, 0.1) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
  }

  .c-page-nav__list,
  .c-page-nav .c-page-nav__list {
    display: grid !important;
    grid-template-rows: repeat(2, auto) !important;
    grid-auto-flow: column !important;
    grid-auto-columns: max-content !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 8px 10px !important;
    width: max-content !important;
    min-width: 100% !important;
    padding: 0 20px !important;
    flex-wrap: nowrap !important;
  }

  .c-page-nav__list li {
    display: block !important;
  }

  .c-page-nav__link,
  .c-page-nav__list a {
    display: flex !important;
    align-items: center !important;
    min-height: 36px !important;
    white-space: nowrap !important;
    padding: 7px 12px !important;
    border: 1px solid rgba(7, 16, 30, 0.12) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .l-footer {
    padding: 100px 5% 40px !important;
  }

  .l-footer__inner {
    gap: 64px !important;
  }

  .l-footer__logo img {
    height: 120px !important;
    width: auto !important;
    margin-bottom: 24px !important;
  }

  .l-footer__address {
    font-size: 13px !important;
    line-height: 2 !important;
  }

  .l-footer__nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 40px !important;
    width: 100% !important;
  }

  .l-footer__nav-group {
    gap: 16px !important;
  }

  a.l-footer__nav-group-title,
  div.l-footer__nav-group-title,
  .l-footer__nav-group--links a {
    font-size: 14px !important;
    line-height: 1.5 !important;
    padding-bottom: 12px !important;
    margin-bottom: 8px !important;
  }

  .l-footer__nav-group a:not(.l-footer__nav-group-title) {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }

  .l-footer__bottom {
    margin-top: 80px !important;
  }
}
/* End requested mobile refinements */

/* Top mobile requested refinements */
@media (max-width: 767px) {
  .section-hero {
    min-height: 560px !important;
    height: 100svh !important;
    background-color: #07101E !important;
  }

  .section-hero__bg video {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    opacity: 0.78 !important;
    animation: none !important;
    transform: none !important;
    background-color: #07101E !important;
  }

  .section-hero__overlay {
    background: linear-gradient(180deg, rgba(7, 16, 30, 0.24), rgba(7, 16, 30, 0.1) 48%, rgba(7, 16, 30, 0.28)) !important;
  }

  .section-about__catch {
    font-size: clamp(26px, 6.9vw, 31px) !important;
    line-height: 1.72 !important;
    letter-spacing: 0.035em !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  .section-about__catch-line {
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  .section-service__inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .section-service__left {
    position: sticky !important;
    top: 72px !important;
    z-index: 20 !important;
    width: calc(100% + 40px) !important;
    margin: -24px -20px 32px !important;
    padding: 18px 20px 16px !important;
    background: rgba(240, 240, 240, 0.97) !important;
    border-bottom: 1px solid rgba(7, 16, 30, 0.08) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .section-service__sticky {
    position: static !important;
  }

  .section-service__lead {
    margin-bottom: 18px !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

  .section-service__nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .section-service__nav-item {
    min-height: 34px !important;
    padding: 8px 10px !important;
    border: 1px solid rgba(7, 16, 30, 0.12) !important;
    background: rgba(255, 255, 255, 0.76) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  .section-service__nav-item::before {
    content: none !important;
  }

  .section-service__nav-item.is-active {
    padding-left: 10px !important;
    color: var(--color-accent-navy) !important;
    border-color: var(--color-accent-gold) !important;
    background: rgba(182, 147, 82, 0.16) !important;
  }

  .section-service__right {
    margin-top: 0 !important;
  }

  .section-voice__swiper .swiper-wrapper {
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
  }

  .section-voice__swiper .swiper-slide {
    scroll-snap-align: start !important;
  }
}

@media (min-width: 768px) {
  .section-voice__swiper .swiper-wrapper {
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
  }

  .section-voice__swiper .swiper-slide {
    scroll-snap-align: start !important;
  }
}
/* End top mobile requested refinements */

/* Top follow-up refinements */
@media (max-width: 767px) {
  .section-hero__bg {
    z-index: 0 !important;
    background: #07101E !important;
  }

  .section-hero__bg video {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #07101E !important;
  }

  .section-hero__overlay {
    z-index: 1 !important;
    pointer-events: none !important;
  }

  .section-hero::after {
    z-index: 2 !important;
  }

  .section-service__left {
    width: 100% !important;
    position: sticky !important;
    top: 75px !important;
    background-color: var(--color-sub-gray) !important;
    z-index: 10 !important;
    padding: 24px 0 24px !important;
    margin: -24px 0 64px !important;
    border-bottom: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .section-service__sticky {
    position: static !important;
  }

  .section-service__lead {
    margin-bottom: 48px !important;
    font-size: 14px !important;
    line-height: 2 !important;
  }

  .section-service__nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
  }

  .section-service__nav-item {
    min-height: 0 !important;
    padding: 0 0 0 0 !important;
    border: 0 !important;
    background: transparent !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    color: #BBB !important;
  }

  .section-service__nav-item::before {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    width: 0 !important;
    height: 1px !important;
    background-color: var(--color-accent-navy) !important;
    transform: translateY(-50%) !important;
    transition: width 0.4s ease !important;
  }

  .section-service__nav-item.is-active {
    color: var(--color-accent-gold) !important;
    font-weight: 500 !important;
    padding-left: 32px !important;
    border: 0 !important;
    background: transparent !important;
  }

  .section-service__nav-item.is-active::before {
    width: 20px !important;
    background-color: var(--color-accent-gold) !important;
  }

  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: minmax(260px, 86vw) !important;
    padding-left: 7vw !important;
    padding-right: 7vw !important;
  }

  .section-voice__swiper .swiper-slide {
    scroll-snap-align: center !important;
  }
}

@media (min-width: 768px) {
  .section-voice__swiper .swiper-slide {
    scroll-snap-align: start !important;
  }
}
/* End top follow-up refinements */

/* Final mobile FV/service/voice adjustments */
@media (max-width: 767px) {
  .section-hero {
    height: 100svh !important;
    min-height: 100svh !important;
    background: #07101E !important;
  }

  .section-hero__bg {
    z-index: 0 !important;
    background: #07101E !important;
  }

  .section-hero__bg video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
    transform: none !important;
    background: #07101E !important;
  }

  .section-service__left {
    position: static !important;
    width: 100% !important;
    margin: 0 0 40px !important;
    padding: 0 !important;
    background: transparent !important;
  }

  .section-service__sticky {
    position: sticky !important;
    top: 82px !important;
    z-index: 20 !important;
    padding: 18px 0 20px !important;
    background: rgba(240, 240, 240, 0.96) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .section-voice__swiper {
    padding-bottom: 120px !important;
  }

  .section-voice__swiper .swiper-button-prev,
  .section-voice__swiper .swiper-button-next {
    top: auto !important;
    bottom: 28px !important;
    transform: none !important;
  }
}

@media (min-width: 768px) {
  .section-voice__swiper {
    padding-left: calc(5% + 64px) !important;
    padding-right: calc(5% + 64px) !important;
  }

  .section-voice__swiper .swiper-button-prev {
    left: 5% !important;
  }

  .section-voice__swiper .swiper-button-next {
    right: 5% !important;
  }
}
/* End final mobile FV/service/voice adjustments */

/* Final correction for requested three mobile points */
@media (max-width: 767px) {
  .section-hero {
    height: 100svh !important;
    min-height: 100svh !important;
    overflow: hidden !important;
    background: #07101E !important;
  }

  .section-hero__bg {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    background: #07101E !important;
  }

  .section-hero__bg video {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100svh !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: none !important;
    animation: none !important;
    transform: none !important;
  }

  .section-service__inner {
    display: block !important;
  }

  .section-service__left {
    position: sticky !important;
    top: 72px !important;
    z-index: 30 !important;
    width: 100% !important;
    margin: -16px 0 40px !important;
    padding: 20px 0 22px !important;
    background: var(--color-sub-gray) !important;
  }

  .section-service__sticky {
    position: static !important;
    padding: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .section-voice__swiper {
    padding-bottom: 0 !important;
  }

  .section-voice__swiper .swiper {
    padding-bottom: 104px !important;
  }

  .section-voice__swiper .swiper-button-prev,
  .section-voice__swiper .swiper-button-next {
    top: auto !important;
    bottom: 20px !important;
    transform: none !important;
    z-index: 10 !important;
  }

  .section-voice__swiper .swiper-button-prev {
    left: calc(50% - 64px) !important;
  }

  .section-voice__swiper .swiper-button-next {
    right: calc(50% - 64px) !important;
  }
}

@media (min-width: 768px) {
  .section-voice__swiper .swiper {
    padding-left: 56px !important;
    padding-right: 56px !important;
  }

  .section-voice__swiper .swiper-button-prev {
    left: 0 !important;
  }

  .section-voice__swiper .swiper-button-next {
    right: 0 !important;
  }
}
/* End final correction for requested three mobile points */

/* Voice four-card desktop layout */
@media (min-width: 768px) and (max-width: 1023px) {
  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: calc((100% - 24px) / 2) !important;
    gap: 24px !important;
  }
}

@media (min-width: 1024px) {
  .section-voice__swiper .swiper-wrapper {
    grid-auto-columns: calc((100% - 72px) / 4) !important;
    gap: 24px !important;
  }

  .section-voice__swiper .swiper-slide {
    min-width: 0 !important;
  }

  .c-voice-card__body {
    padding: 22px !important;
  }

  .c-voice-card__quote {
    font-size: 14px !important;
  }
}
/* End voice four-card desktop layout */

/* Final override: mobile FV safe fit and service fixed nav */
@media (max-width: 767px) {
  .section-hero__bg video {
    width: 100vw !important;
    height: 100svh !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #07101E !important;
  }

  .section-service {
    overflow: visible !important;
  }

  .section-service__inner {
    position: relative !important;
    overflow: visible !important;
  }

  .section-service__left {
    position: sticky !important;
    top: 72px !important;
    z-index: 60 !important;
    background: var(--color-sub-gray) !important;
  }

  .section-service__left.is-mobile-fixed {
    position: fixed !important;
    top: 72px !important;
    left: 20px !important;
    right: 20px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 16px 0 18px !important;
    z-index: 80 !important;
    background: rgba(240, 240, 240, 0.97) !important;
    box-shadow: 0 14px 28px rgba(7, 16, 30, 0.08) !important;
  }

  .section-service__right.has-mobile-fixed-nav {
    padding-top: var(--service-mobile-nav-height, 220px) !important;
  }
}
/* End final override: mobile FV safe fit and service fixed nav */

/* Mobile portrait FV composition */
.section-hero__bg-video--fill {
  display: none;
}

@media (max-width: 767px) {
  .section-hero__bg {
    overflow: hidden !important;
  }

  .section-hero__bg-video--fill {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    opacity: 0.56 !important;
    filter: blur(16px) brightness(0.72) saturate(1.08) !important;
    transform: scale(1.14) !important;
    z-index: 0 !important;
  }

  .section-hero__bg-video--safe {
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: min(100vw, 62svh) !important;
    height: auto !important;
    max-height: 92svh !important;
    object-fit: contain !important;
    object-position: center center !important;
    opacity: 1 !important;
    filter: none !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.04) !important;
  }
}
/* End mobile portrait FV composition */

/* Latest mobile visual refinements */
@media (max-width: 767px) {
  .l-header__logo img {
    height: 76px !important;
    max-width: 220px !important;
  }

  .section-hero__bg-video--safe {
    width: 100vw !important;
    height: 100svh !important;
    max-width: none !important;
    max-height: none !important;
    min-width: 100vw !important;
    min-height: 100svh !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .section-about .c-more-link {
    color: var(--color-accent-navy) !important;
    font-weight: 500 !important;
    padding: 10px 0 !important;
  }

  .section-about .c-more-link__text {
    color: var(--color-accent-navy) !important;
    font-weight: 500 !important;
  }

  .section-about .c-more-link__line {
    background: linear-gradient(90deg, var(--color-accent-gold), rgba(182, 147, 82, 0.12)) !important;
  }

  .section-about .c-more-link__circle {
    border-color: rgba(182, 147, 82, 0.72) !important;
    color: var(--color-accent-gold) !important;
    background-color: rgba(255, 255, 255, 0.2) !important;
  }
}
/* End latest mobile visual refinements */

/* Force mobile portrait FV video */
@media (max-width: 767px) {
  .section-hero__bg .section-hero__bg-video--fill {
    display: none !important;
  }

  .section-hero__bg .section-hero__bg-video--safe {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    top: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    min-width: 100vw !important;
    min-height: 100svh !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
    opacity: 1 !important;
    z-index: 1 !important;
  }
}
/* End force mobile portrait FV video */

/* Mobile FV static image */
@media (max-width: 767px) {
  .section-hero__bg .section-hero__bg-video {
    display: none !important;
  }

  .section-hero__bg .section-hero__mobile-img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100svh !important;
    object-fit: cover !important;
    object-position: center center !important;
    opacity: 1 !important;
    z-index: 1 !important;
  }
}
/* End mobile FV static image */

/* Final hamburger menu optimization */
@media (max-width: 767px) {
  .c-hamburger {
    width: 48px !important;
    height: 48px !important;
    margin-right: -10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    z-index: 120 !important;
  }

  .c-hamburger span {
    left: 10px !important;
    width: 28px !important;
    height: 1.5px !important;
    border-radius: 999px !important;
    transform-origin: center !important;
  }

  .c-hamburger span:nth-child(1) {
    top: 15px !important;
  }

  .c-hamburger span:nth-child(2) {
    top: 23px !important;
    transform: none !important;
  }

  .c-hamburger span:nth-child(3) {
    top: 31px !important;
    bottom: auto !important;
  }

  .l-header.is-open .c-hamburger span:nth-child(1) {
    top: 23px !important;
    transform: rotate(45deg) !important;
  }

  .l-header.is-open .c-hamburger span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(0) !important;
  }

  .l-header.is-open .c-hamburger span:nth-child(3) {
    top: 23px !important;
    transform: rotate(-45deg) !important;
  }

  .l-mobile-menu {
    padding-top: calc(132px + env(safe-area-inset-top)) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-bottom: calc(48px + env(safe-area-inset-bottom)) !important;
  }

  .l-mobile-menu__list {
    gap: 30px !important;
  }

  .l-mobile-menu__item:first-child {
    margin-top: 10px !important;
  }

  .l-mobile-menu__parent > a,
  .l-mobile-menu__parent > span {
    font-size: clamp(13px, 3.7vw, 15px) !important;
    line-height: 1.5 !important;
  }

  .l-mobile-menu__children a {
    font-size: clamp(12px, 3.2vw, 13px) !important;
    line-height: 1.55 !important;
  }
}
/* End final hamburger menu optimization */
/* Mobile twin link spacing adjustment */
@media (max-width: 767px) {
  .section-twin-links .c-twin-link__en {
    margin-bottom: 4px !important;
  }

  .section-twin-links .c-twin-link__ja {
    margin-bottom: 12px !important;
  }

  .section-twin-links .c-twin-link__line {
    margin-bottom: 14px !important;
  }
}
/* End mobile twin link spacing adjustment */


/* Footer sync with About page */
.l-footer {
  background: #050505 !important;
  color: var(--color-base) !important;
  padding: 100px 5% 40px !important;
  border-top: 1px solid rgba(182, 147, 82, 0.3) !important;
}

.l-footer__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 64px !important;
}

@media (min-width: 768px) {
  .l-footer__inner {
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 80px !important;
  }
}

.l-footer__info {
  flex: 0 0 240px !important;
}

.l-footer__logo {
  display: inline-block !important;
  margin-bottom: 24px !important;
}

.l-footer__address {
  font-size: 13px !important;
  color: rgba(255,255,255,0.7) !important;
  line-height: 2 !important;
  letter-spacing: 0.05em !important;
}

.l-footer__nav {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 40px !important;
}

@media (min-width: 768px) {
  .l-footer__nav {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 64px !important;
    flex: auto !important;
  }
}

.l-footer__nav-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-width: 0 !important;
}

.l-footer__nav-group-title,
a.l-footer__nav-group-title,
div.l-footer__nav-group-title {
  font-family: var(--font-mincho) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--color-base) !important;
  margin-bottom: 8px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--color-accent-gold) !important;
  white-space: nowrap !important;
  letter-spacing: 0.1em !important;
}

.l-footer__nav-group a:not(.l-footer__nav-group-title) {
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,0.7) !important;
  display: inline-block !important;
  transition: color 0.3s ease !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.l-footer__nav-group--links a {
  font-family: var(--font-mincho) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--color-base) !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  margin-bottom: 8px !important;
  transition: all 0.3s ease !important;
  text-decoration: none !important;
}

.l-footer__nav-group a:hover,
.l-footer__nav-group--links a:hover {
  color: var(--color-accent-gold) !important;
}

.l-footer__nav-group--links a:hover {
  border-bottom-color: var(--color-accent-gold) !important;
}

.l-footer__bottom {
  max-width: 1200px !important;
  margin: 80px auto 0 !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255,255,255,0.1) !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  font-size: 11px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  letter-spacing: 0.1em !important;
}
/* End footer sync with About page */

/* Universal mobile optimization guard */
@media (max-width: 767px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
  }

  body {
    word-break: auto-phrase !important;
    overflow-wrap: anywhere !important;
  }

  img,
  video,
  iframe,
  svg {
    max-width: 100% !important;
  }

  .l-header {
    min-height: 72px !important;
    padding: 10px 20px !important;
  }

  .l-header__nav {
    display: none !important;
  }

  .l-header__logo,
  .l-header__logo img {
    max-width: min(220px, 58vw) !important;
  }

  .l-header__logo img {
    height: clamp(56px, 16vw, 76px) !important;
    object-fit: contain !important;
  }

  .c-hamburger {
    flex: 0 0 auto !important;
    z-index: 120 !important;
  }

  .l-mobile-menu {
    width: 100% !important;
    height: 100dvh !important;
    max-width: 100vw !important;
    padding-top: calc(112px + env(safe-area-inset-top)) !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-bottom: calc(44px + env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .l-mobile-menu__list {
    width: 100% !important;
    max-width: 100% !important;
    gap: 26px !important;
    padding-bottom: 0 !important;
  }

  .l-mobile-menu__item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 14px !important;
  }

  .l-mobile-menu__parent,
  .l-mobile-menu__children {
    min-width: 0 !important;
  }

  .l-mobile-menu__parent > a,
  .l-mobile-menu__parent > span,
  .l-mobile-menu__children a,
  .l-mobile-menu__lang a,
  .l-mobile-menu__lang span {
    overflow-wrap: anywhere !important;
    word-break: keep-all !important;
    line-break: strict !important;
  }

  .l-container,
  .l-container--small,
  .container,
  .c-container,
  .section-inner,
  .inner {
    width: 100% !important;
    max-width: none !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    min-width: 0 !important;
  }

  .c-section,
  section[class^="section-"],
  section[class*=" section-"] {
    max-width: 100% !important;
    overflow-x: clip !important;
  }

  .c-page-header {
    min-height: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    overflow: hidden !important;
  }

  .c-page-header__en,
  .c-page-header__title {
    font-size: clamp(34px, 13vw, 54px) !important;
    line-height: 1.08 !important;
    letter-spacing: 0.08em !important;
    overflow-wrap: anywhere !important;
  }

  .c-page-header__ja,
  .c-page-header__sub,
  .c-section-title__ja,
  .c-section-title__en {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  :where(.c-grid-2col, .service-grid, .cards-grid, .feature-grid, .case-grid, .voice-grid, .news-grid, .press-grid, .overview-grid, .problem-grid, .what-grid, .reason-grid, .section-links__grid) {
    grid-template-columns: 1fr !important;
  }

  :where(.c-service-block, .c-overlap-block, .feature-card-item, .c-benefit-card, .c-problem-card, .what-card, .overview-card, .reason-card, .c-article-card, .c-news-card, .c-press-card, .c-voice-card, .contact-form, .form-wrapper, .position-wrapper, .section-about__text-wrap, .section-about__media, .section-service__content, .c-twin-link, .c-link-card) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  :where(.c-service-block__content, .c-overlap-block__content, .feature-card-item, .c-benefit-card__content, .c-problem-card, .what-card, .overview-card, .reason-card, .c-article-card, .c-news-card__body, .c-press-card__body, .c-voice-card__body, .position-wrapper, .contact-form, .form-wrapper) {
    padding-left: min(24px, 6vw) !important;
    padding-right: min(24px, 6vw) !important;
  }

  :where(h1, h2, h3, h4, p, li, dd, dt, th, td, a, span, strong) {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  :where(.c-service-block__title, .c-overlap-block__title, .feature-card-item__title, .c-benefit-card__title, .c-problem-card__title, .what-card__title, .overview-card__title, .reason-lead__title, .position-title, .c-article-header__title, .c-twin-link__title, .section-about__catch, .section-cta__title) {
    font-size: clamp(22px, 7vw, 34px) !important;
    line-height: 1.35 !important;
    letter-spacing: 0.02em !important;
    overflow-wrap: anywhere !important;
  }

  table,
  .comparison-table-wrap,
  .table-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .l-footer__inner {
    width: 100% !important;
    max-width: 100% !important;
    gap: 40px !important;
  }

  .l-footer__nav {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .l-footer__nav-group {
    min-width: 0 !important;
    width: 100% !important;
  }

  .l-footer__nav-group-title,
  .l-footer__nav-group a,
  .l-footer__nav-group--links a {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 390px) {
  .l-mobile-menu__item {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .l-mobile-menu__parent,
  .l-mobile-menu__children {
    width: 100% !important;
    padding-right: 0 !important;
  }

  .l-mobile-menu__children {
    padding-left: 14px !important;
  }
}

html[lang="en"] {
  hyphens: auto;
}

@media (max-width: 767px) {
  html[lang="en"] body {
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }

  html[lang="en"] :where(.l-header__link, .l-header__dropdown-menu a, .l-mobile-menu__parent > a, .l-mobile-menu__children a, .c-btn, .c-section-title__en, .c-page-header__en, .c-page-header__title, .c-service-block__title, .c-overlap-block__title, .feature-card-item__title, .c-benefit-card__title, .c-problem-card__title, .what-card__title, .overview-card__title, .reason-lead__title, .position-title, .c-article-header__title, .c-twin-link__title, .l-footer__nav-group-title, .l-footer__nav-group a) {
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    hyphens: auto !important;
  }

  html[lang="en"] .c-section-title__en {
    font-size: clamp(28px, 10vw, 46px) !important;
    line-height: 1.08 !important;
  }
}
/* End universal mobile optimization guard */



/* Recruit footer exact override */
.l-footer {
  background: #050505 !important;
  color: var(--color-base, #FCFCFC) !important;
  padding: 100px 5% 40px !important;
  border-top: 1px solid rgba(182, 147, 82, 0.3) !important;
  font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
}
.l-footer :where(a, p, span, div) {
  font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
}
.l-footer__inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 64px !important;
}
@media (min-width: 768px) {
  .l-footer__inner {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 80px !important;
  }
}
.l-footer__info {
  flex: 0 0 240px !important;
}
.l-footer__logo {
  margin-bottom: 24px !important;
  display: block !important;
}
.l-footer__logo img {
  height: 120px !important;
  width: auto !important;
  margin-bottom: 24px !important;
}
.l-footer__address {
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.7) !important;
  line-height: 2 !important;
  letter-spacing: 0.05em !important;
}
.l-footer__nav {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 40px !important;
  width: 100% !important;
}
@media (min-width: 768px) {
  .l-footer__nav {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 40px !important;
    flex: 1 !important;
  }
}
.l-footer__nav-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-width: 0 !important;
}
a.l-footer__nav-group-title,
div.l-footer__nav-group-title {
  font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-base, #FCFCFC) !important;
  letter-spacing: 0.1em !important;
  line-height: 1.5 !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--color-accent-gold, #B69352) !important;
  margin-bottom: 8px !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
  display: block !important;
  white-space: normal !important;
}
a.l-footer__nav-group-title:hover {
  color: var(--color-accent-gold, #B69352) !important;
}
.l-footer__nav-group a:not(.l-footer__nav-group-title) {
  font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: rgba(255, 255, 255, 0.7) !important;
  letter-spacing: 0.05em !important;
  line-height: 1.6 !important;
  transition: color 0.3s ease !important;
  text-decoration: none !important;
  white-space: normal !important;
}
.l-footer__nav-group a:not(.l-footer__nav-group-title):hover {
  color: var(--color-accent-gold, #B69352) !important;
}
.l-footer__nav-group--links a {
  font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-base, #FCFCFC) !important;
  letter-spacing: 0.1em !important;
  line-height: 1.5 !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  margin-bottom: 8px !important;
  transition: all 0.3s ease !important;
  text-decoration: none !important;
  display: block !important;
}
.l-footer__nav-group--links a:hover {
  color: var(--color-accent-gold, #B69352) !important;
  border-bottom-color: var(--color-accent-gold, #B69352) !important;
}
.l-footer__bottom {
  max-width: 1200px !important;
  margin: 80px auto 0 !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  text-align: left !important;
}
.l-footer__bottom p {
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.7 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  letter-spacing: 0.1em !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .l-footer {
    padding: 60px 20px 30px !important;
  }
  .l-footer__inner {
    width: 100% !important;
    max-width: 100% !important;
    gap: 40px !important;
  }
  .l-footer__info {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
  }
  .l-footer__logo {
    margin-bottom: 16px !important;
  }
  .l-footer__logo img {
    height: 82px !important;
    width: auto !important;
    margin-bottom: 16px !important;
  }
  .l-footer__address {
    font-size: 12px !important;
    line-height: 1.9 !important;
  }
  .l-footer__nav {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    max-width: 100% !important;
  }
  .l-footer__nav-group {
    width: 100% !important;
    gap: 10px !important;
  }
  a.l-footer__nav-group-title,
  div.l-footer__nav-group-title,
  .l-footer__nav-group--links a {
    font-size: 13px !important;
    line-height: 1.55 !important;
    padding-bottom: 10px !important;
    margin-bottom: 4px !important;
  }
  .l-footer__nav-group a:not(.l-footer__nav-group-title) {
    font-size: 12px !important;
    line-height: 1.6 !important;
  }
  .l-footer__bottom {
    margin-top: 44px !important;
    text-align: center !important;
  }
}

/* Static lower-page CSS restoration (scoped to WP body classes). */

:root { --font-ja-serif: var(--font-mincho); --font-ja-sans: var(--font-gothic); --color-muted: #666666; }

@media (min-width: 769px) {

  body.topsearch-page-about .u-hidden-pc { display: none !important; }

}

@media (max-width: 768px) {

  body.topsearch-page-about .u-hidden-sp { display: none !important; }

}

body.topsearch-page-about .l-container,
body.topsearch-page-service .l-container,
body.topsearch-page-news .l-container,
body.topsearch-page-press .l-container,
body.topsearch-page-news-detail .l-container,
body.topsearch-page-press-detail .l-container { max-width: 1200px; margin: 0 auto; padding: 0 5%; }

body.topsearch-page-about .l-container--small,
body.topsearch-page-service .l-container--small,
body.topsearch-page-press .l-container--small,
body.topsearch-page-news-detail .l-container--small,
body.topsearch-page-press-detail .l-container--small { max-width: 1000px; margin: 0 auto; padding: 0 5%; }

@media (min-width: 1025px) {

  body.topsearch-page-about .l-header__dropdown-menu a:hover,
  body.topsearch-page-service .l-header__dropdown-menu a:hover,
  body.topsearch-page-sdgs .l-header__dropdown-menu a:hover,
  body.topsearch-page-job-changer .l-header__dropdown-menu a:hover,
  body.topsearch-page-employing-company .l-header__dropdown-menu a:hover,
  body.topsearch-page-privacy .l-header__dropdown-menu a:hover,
  body.topsearch-page-contact .l-header__dropdown-menu a:hover,
  body.topsearch-page-news .l-header__dropdown-menu a:hover,
  body.topsearch-page-press .l-header__dropdown-menu a:hover,
  body.topsearch-page-news-detail .l-header__dropdown-menu a:hover,
  body.topsearch-page-press-detail .l-header__dropdown-menu a:hover { background-color: rgba(182, 147, 82, 0.05); color: var(--color-accent-gold); }

}

body.topsearch-page-about .l-mobile-menu__list,
body.topsearch-page-service .l-mobile-menu__list,
body.topsearch-page-news .l-mobile-menu__list,
body.topsearch-page-press .l-mobile-menu__list,
body.topsearch-page-news-detail .l-mobile-menu__list,
body.topsearch-page-press-detail .l-mobile-menu__list { display: flex; flex-direction: column; gap: 32px; padding-bottom: 40px; }

body.topsearch-page-about .l-mobile-menu__parent,
body.topsearch-page-service .l-mobile-menu__parent,
body.topsearch-page-recruit .l-mobile-menu__parent,
body.topsearch-page-sdgs .l-mobile-menu__parent,
body.topsearch-page-job-changer .l-mobile-menu__parent,
body.topsearch-page-employing-company .l-mobile-menu__parent,
body.topsearch-page-contact .l-mobile-menu__parent,
body.topsearch-page-news .l-mobile-menu__parent,
body.topsearch-page-press .l-mobile-menu__parent,
body.topsearch-page-news-detail .l-mobile-menu__parent,
body.topsearch-page-press-detail .l-mobile-menu__parent { width: 55%; padding-right: 16px; flex-shrink: 0; }

body.topsearch-page-about .l-mobile-menu__parent > a,
body.topsearch-page-about .l-mobile-menu__parent > span,
body.topsearch-page-service .l-mobile-menu__parent > a,
body.topsearch-page-service .l-mobile-menu__parent > span,
body.topsearch-page-news .l-mobile-menu__parent > a,
body.topsearch-page-news .l-mobile-menu__parent > span,
body.topsearch-page-press .l-mobile-menu__parent > a,
body.topsearch-page-press .l-mobile-menu__parent > span,
body.topsearch-page-news-detail .l-mobile-menu__parent > a,
body.topsearch-page-news-detail .l-mobile-menu__parent > span,
body.topsearch-page-press-detail .l-mobile-menu__parent > a,
body.topsearch-page-press-detail .l-mobile-menu__parent > span { font-family: var(--font-gothic); font-size: clamp(12px, 3.5vw, 14px); font-weight: 500; color: var(--color-base); letter-spacing: 0.05em; display: block; padding-bottom: 12px; position: relative; width: 100%; line-height: 1.4; }

body.topsearch-page-about .l-mobile-menu__children a,
body.topsearch-page-service .l-mobile-menu__children a,
body.topsearch-page-news .l-mobile-menu__children a,
body.topsearch-page-press .l-mobile-menu__children a,
body.topsearch-page-news-detail .l-mobile-menu__children a,
body.topsearch-page-press-detail .l-mobile-menu__children a { font-family: var(--font-gothic); font-size: clamp(12px, 3vw, 13px); color: var(--color-base); letter-spacing: 0.05em; opacity: 0.9; line-height: 1.4; display: block; }

body.topsearch-page-about .l-mobile-menu__lang,
body.topsearch-page-service .l-mobile-menu__lang,
body.topsearch-page-recruit .l-mobile-menu__lang,
body.topsearch-page-sdgs .l-mobile-menu__lang,
body.topsearch-page-job-changer .l-mobile-menu__lang,
body.topsearch-page-employing-company .l-mobile-menu__lang,
body.topsearch-page-contact .l-mobile-menu__lang,
body.topsearch-page-news .l-mobile-menu__lang,
body.topsearch-page-press .l-mobile-menu__lang,
body.topsearch-page-news-detail .l-mobile-menu__lang,
body.topsearch-page-press-detail .l-mobile-menu__lang { display: flex; align-items: center; gap: 16px; font-family: var(--font-en); font-size: 16px; letter-spacing: 0.1em; margin-top: 16px; }

body.topsearch-page-about .l-mobile-menu__lang a,
body.topsearch-page-service .l-mobile-menu__lang a,
body.topsearch-page-news .l-mobile-menu__lang a,
body.topsearch-page-press .l-mobile-menu__lang a,
body.topsearch-page-news-detail .l-mobile-menu__lang a,
body.topsearch-page-press-detail .l-mobile-menu__lang a { opacity: 0.5; transition: opacity 0.3s ease; }

body.topsearch-page-about .l-mobile-menu__lang span,
body.topsearch-page-service .l-mobile-menu__lang span,
body.topsearch-page-news .l-mobile-menu__lang span,
body.topsearch-page-press .l-mobile-menu__lang span,
body.topsearch-page-news-detail .l-mobile-menu__lang span,
body.topsearch-page-press-detail .l-mobile-menu__lang span { opacity: 0.3; }

body.topsearch-page-about .c-section-title,
body.topsearch-page-recruit .c-section-title,
body.topsearch-page-job-changer .c-section-title,
body.topsearch-page-employing-company .c-section-title { margin-bottom: clamp(40px, 6vw, 80px); text-align: left; }

body.topsearch-page-about .c-btn--gold,
body.topsearch-page-service .c-btn--gold,
body.topsearch-page-recruit .c-btn--gold,
body.topsearch-page-news .c-btn--gold,
body.topsearch-page-press .c-btn--gold,
body.topsearch-page-news-detail .c-btn--gold,
body.topsearch-page-press-detail .c-btn--gold { background: linear-gradient(135deg, #B69352 0%, #F5E2B6 25%, #C29D5D 50%, #9B783E 100%); color: var(--color-accent-navy); box-shadow: 0 4px 20px rgba(182, 147, 82, 0.25); }

body.topsearch-page-about .c-page-header { padding: 200px 5% 100px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.76), rgba(10, 25, 47, 0.86)), url('../images/headers/about-header-free.jpg');
  background-size: cover;
  background-position: center 42%;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; }

body.topsearch-page-about .c-page-header__en,
body.topsearch-page-service .c-page-header__en,
body.topsearch-page-news .c-page-header__en,
body.topsearch-page-press .c-page-header__en { font-family: var(--font-en); font-size: clamp(40px, 5vw, 64px); letter-spacing: 0.15em; margin-bottom: 16px; display: block; font-weight: 300; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

body.topsearch-page-about .c-page-header__ja,
body.topsearch-page-service .c-page-header__ja,
body.topsearch-page-contact .c-page-header__ja,
body.topsearch-page-news .c-page-header__ja,
body.topsearch-page-press .c-page-header__ja { font-family: var(--font-mincho); font-size: 14px; letter-spacing: 0.2em; color: var(--color-accent-gold); text-shadow: 0 1px 2px rgba(0,0,0,0.5); }

body.topsearch-page-about .c-page-nav,
body.topsearch-page-service .c-page-nav { background-color: var(--color-base); border-bottom: 1px solid rgba(0,0,0,0.05); padding: 24px 0; position: -webkit-sticky; position: sticky; top: 80px; z-index: 90; }

@media (min-width: 1025px) {

  body.topsearch-page-about .c-page-nav,
  body.topsearch-page-service .c-page-nav { top: 112px; }

}

body.topsearch-page-about .c-page-nav__list,
body.topsearch-page-service .c-page-nav__list { display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; }

body.topsearch-page-about .c-page-nav__list a,
body.topsearch-page-service .c-page-nav__list a { font-family: var(--font-en); font-size: 14px; letter-spacing: 0.1em; color: var(--color-accent-navy); text-decoration: none; position: relative; }

body.topsearch-page-about .c-page-nav__list a::after,
body.topsearch-page-service .c-page-nav__list a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background-color: var(--color-accent-gold); transition: width 0.3s ease; }

body.topsearch-page-about .c-page-nav__list a:hover::after,
body.topsearch-page-service .c-page-nav__list a:hover::after { width: 100%; }

body.topsearch-page-about .section-vision,
body.topsearch-page-about .section-value,
body.topsearch-page-about .section-why,
body.topsearch-page-about .section-what,
body.topsearch-page-about .section-strengths,
body.topsearch-page-about .section-approach,
body.topsearch-page-about .section-culture { padding: clamp(80px, 10vw, 140px) 0; }

body.topsearch-page-about .c-bg-luxury--gray { background-color: #F8F9FA; border-top: 1px solid rgba(0,0,0,0.03); border-bottom: 1px solid rgba(0,0,0,0.03); }

body.topsearch-page-about .c-catch { font-family: var(--font-mincho); font-size: clamp(24px, 3vw, 36px); color: var(--color-accent-navy); margin-bottom: 32px; line-height: 1.5; letter-spacing: 0.05em; }

body.topsearch-page-about .c-desc { font-size: 15px; color: #444; line-height: 2.2; margin-bottom: 24px; }

body.topsearch-page-about .c-twin-link { flex: 1; position: relative; display: block; overflow: hidden; padding: clamp(60px, 8vw, 100px) 5%; color: var(--color-base); text-decoration: none; min-height: 300px; display: flex; align-items: center; justify-content: center; }

body.topsearch-page-about .c-twin-link__bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-out-expo); z-index: -2; }

body.topsearch-page-about .c-twin-link__overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(7, 16, 30, 0.6) 0%, rgba(0, 0, 0, 0.2) 100%); transition: background 0.6s ease; z-index: -1; }

body.topsearch-page-about .c-twin-link:hover .c-twin-link__bg { transform: scale(1.05); }

body.topsearch-page-about .c-twin-link:hover .c-twin-link__overlay { background: rgba(7, 16, 30, 0.8); }

body.topsearch-page-about .c-twin-link__content { position: relative; z-index: 1; text-align: center; }

body.topsearch-page-about .c-twin-link__en { font-family: var(--font-en); font-size: clamp(24px, 3vw, 40px); font-weight: 500; letter-spacing: 0.15em; display: block; margin-bottom: 8px; }

body.topsearch-page-about .c-twin-link__ja { font-family: var(--font-mincho); font-size: 13px; letter-spacing: 0.2em; display: block; margin-bottom: 24px; }

body.topsearch-page-about .c-twin-link__line { width: 40px; height: 1px; background-color: var(--color-accent-gold); margin: 0 auto 24px; transition: width 0.4s ease; }

body.topsearch-page-about .c-twin-link:hover .c-twin-link__line { width: 60px; }

body.topsearch-page-about .c-twin-link__btn { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,0.3); border-radius: 50%; transition: all 0.4s ease; margin: 0 auto; }

body.topsearch-page-about .c-twin-link__btn svg { width: 16px; height: 16px; transition: transform 0.4s ease; }

body.topsearch-page-about .c-twin-link:hover .c-twin-link__btn { background-color: var(--color-base); color: var(--color-accent-navy); border-color: transparent; transform: scale(1.1); }

body.topsearch-page-about .c-twin-link:hover .c-twin-link__btn svg { transform: translateX(4px); }

/* Company / Message pages */
body.page-template-page-company .section-profile,
body.page-template-page-company .section-map,
body.page-template-page-message .section-ceo {
  padding: clamp(80px, 10vw, 140px) 0;
}

body.page-template-page-company .c-profile-table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
}

body.page-template-page-company .c-profile-table th,
body.page-template-page-company .c-profile-table td {
  padding: 32px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  text-align: left;
}

body.page-template-page-company .c-profile-table tr:first-child th,
body.page-template-page-company .c-profile-table tr:first-child td {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

body.page-template-page-company .c-profile-table th {
  width: 25%;
  font-family: var(--font-mincho);
  font-weight: 500;
  color: var(--color-accent-navy);
  white-space: nowrap;
  padding-right: 40px;
}

body.page-template-page-company .c-profile-table td {
  width: 75%;
  line-height: 2;
  color: #333;
}

body.page-template-page-company .section-map__list {
  display: grid;
  gap: 32px;
}

body.page-template-page-company .section-map__item {
  background: var(--color-base);
}

body.page-template-page-company .section-map__heading {
  margin-bottom: 16px;
  font-family: var(--font-gothic);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--color-main);
}

body.page-template-page-company .section-map__address {
  margin-bottom: 20px;
  font-family: var(--font-gothic);
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.06em;
  color: #666;
}

body.page-template-page-company .section-map__iframe {
  width: 100%;
  height: 450px;
  background-color: #eee;
}

body.page-template-page-company .section-map__iframe iframe {
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(50%) contrast(1.1);
  transition: filter 0.4s ease;
}

body.page-template-page-company .section-map__iframe iframe:hover {
  filter: grayscale(0%) contrast(1);
}

body.page-template-page-message .section-ceo {
  background-color: #EBECEF;
  padding: clamp(60px, 8vw, 100px) 0 clamp(80px, 12vw, 140px);
  position: relative;
  overflow: hidden;
}

body.page-template-page-message .section-ceo__top {
  display: flex;
  flex-direction: column-reverse;
  position: relative;
  z-index: 1;
}

body.page-template-page-message .section-ceo__title-area {
  padding: 40px 0;
  position: relative;
  z-index: 2;
}

body.page-template-page-message .section-ceo__catch {
  font-family: var(--font-mincho);
  font-size: clamp(26px, 3.2vw, 42px);
  color: var(--color-accent-gold);
  line-height: 1.6;
  margin-bottom: 24px;
  font-weight: 500;
  letter-spacing: 0.08em;
  white-space: normal;
}

body.page-template-page-message .section-ceo__catch span {
  display: block;
}

body.page-template-page-message .section-ceo__catch::after {
  content: '';
  display: block;
  width: 40px;
  height: 1px;
  background-color: var(--color-accent-gold);
  margin-top: 32px;
  margin-bottom: 32px;
}

body.page-template-page-message .section-ceo__name .role {
  display: block;
  font-size: 12px;
  color: var(--color-accent-gold);
  margin-bottom: 8px;
  letter-spacing: 0.1em;
  font-weight: 500;
}

body.page-template-page-message .section-ceo__name .name {
  display: block;
  font-family: var(--font-mincho);
  font-size: clamp(28px, 3.5vw, 40px);
  color: var(--color-main);
  letter-spacing: 0.15em;
  font-weight: 500;
}

body.page-template-page-message .section-ceo__photo {
  width: 100%;
  position: relative;
  z-index: 1;
}

body.page-template-page-message .section-ceo__photo img {
  width: 100%;
  max-width: 560px;
  height: auto;
  display: inline-block;
  object-fit: cover;
  object-position: center 15%;
  aspect-ratio: 1 / 1;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

body.page-template-page-message .section-ceo__bottom {
  background-color: #FFFFFF;
  padding: clamp(40px, 6vw, 80px) clamp(24px, 5vw, 80px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.04);
  position: relative;
  z-index: 3;
  margin-top: -40px;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

body.page-template-page-message .section-ceo__bottom .c-desc {
  font-size: 15px;
  line-height: 2.2;
  color: #444;
  margin-bottom: 18px;
  letter-spacing: 0.08em;
}

body.page-template-page-message .section-ceo__bottom .c-desc:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  body.page-template-page-message .section-ceo__top {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }

  body.page-template-page-message .section-ceo__title-area {
    width: 60%;
    padding: 0 0 100px 0;
  }

  body.page-template-page-message .section-ceo__photo {
    width: 50%;
    text-align: right;
  }

  body.page-template-page-message .section-ceo__photo img {
    aspect-ratio: 4 / 5;
    object-position: center 10%;
  }

  body.page-template-page-message .section-ceo__bottom {
    margin-top: -60px;
  }
}

@media (max-width: 768px) {
  body.page-template-page-company .c-profile-table th,
  body.page-template-page-company .c-profile-table td {
    display: block;
    width: 100%;
    padding: 24px 0;
  }

  body.page-template-page-company .c-profile-table th {
    padding-bottom: 8px;
    border-bottom: none;
  }

  body.page-template-page-company .c-profile-table td {
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  body.page-template-page-message .section-ceo__catch {
    font-size: clamp(22px, 6.2vw, 30px);
    line-height: 1.55;
    letter-spacing: 0.02em;
  }

  body.page-template-page-message .section-ceo__catch span {
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  body.page-template-page-message .section-ceo__bottom {
    padding: 36px 22px;
  }

  body.page-template-page-message .section-ceo__bottom .c-desc {
    font-size: 14px;
    line-height: 2.05;
    letter-spacing: 0.04em;
    margin-bottom: 16px;
  }
}

body.topsearch-page-about .l-footer__logo,
body.topsearch-page-service .l-footer__logo,
body.topsearch-page-contact .l-footer__logo,
body.topsearch-page-news .l-footer__logo,
body.topsearch-page-press .l-footer__logo,
body.topsearch-page-news-detail .l-footer__logo,
body.topsearch-page-press-detail .l-footer__logo { display: inline-block; margin-bottom: 24px; }

body.topsearch-page-about .l-footer__nav,
body.topsearch-page-service .l-footer__nav,
body.topsearch-page-contact .l-footer__nav,
body.topsearch-page-press .l-footer__nav,
body.topsearch-page-press-detail .l-footer__nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }

@media (min-width: 768px) {

  body.topsearch-page-about .l-footer__nav,
  body.topsearch-page-service .l-footer__nav,
  body.topsearch-page-press .l-footer__nav,
  body.topsearch-page-press-detail .l-footer__nav { grid-template-columns: repeat(4, 1fr); gap: 64px; flex: auto; }

}

body.topsearch-page-about .l-footer__nav-group,
body.topsearch-page-service .l-footer__nav-group,
body.topsearch-page-sdgs .l-footer__nav-group,
body.topsearch-page-job-changer .l-footer__nav-group,
body.topsearch-page-employing-company .l-footer__nav-group,
body.topsearch-page-contact .l-footer__nav-group,
body.topsearch-page-news .l-footer__nav-group,
body.topsearch-page-press .l-footer__nav-group,
body.topsearch-page-news-detail .l-footer__nav-group,
body.topsearch-page-press-detail .l-footer__nav-group { display: flex; flex-direction: column; gap: 16px; }

body.topsearch-page-about .l-footer__nav-group-title,
body.topsearch-page-service .l-footer__nav-group-title,
body.topsearch-page-press .l-footer__nav-group-title,
body.topsearch-page-press-detail .l-footer__nav-group-title { font-family: var(--font-mincho); font-size: 16px; color: var(--color-base); margin-bottom: 8px; padding-bottom: 12px; border-bottom: 1px solid var(--color-accent-gold); white-space: nowrap; }

body.topsearch-page-about .l-footer__nav-group a,
body.topsearch-page-service .l-footer__nav-group a,
body.topsearch-page-press .l-footer__nav-group a,
body.topsearch-page-press-detail .l-footer__nav-group a { font-size: 13px; color: rgba(255,255,255,0.7); display: inline-block; transition: color 0.3s ease; white-space: nowrap; }

body.topsearch-page-about section[id],
body.topsearch-page-service section[id] { scroll-margin-top: 100px; }

@media (min-width: 1025px) {

  body.topsearch-page-about section[id],
  body.topsearch-page-service section[id] { scroll-margin-top: 140px; }

}

body.topsearch-page-about .vision-content { max-width: 900px; text-align: left; }

body.topsearch-page-about .section-value { position: relative;
  overflow: hidden; }

body.topsearch-page-about .section-value::before { content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(120deg, rgba(7,16,30,0.05), transparent 34%),
    radial-gradient(circle at 88% 10%, rgba(182,147,82,0.15), transparent 34%); }

body.topsearch-page-about .section-value .l-container { position: relative;
  z-index: 1; }

body.topsearch-page-about .value-intro { position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  max-width: 1100px;
  margin: 0 auto 48px;
  padding: clamp(32px, 5vw, 48px);
  background: rgba(255,255,255,0.9);
  color: var(--color-main);
  border: 1px solid rgba(7,16,30,0.08);
  border-top: 3px solid var(--color-accent-gold);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(7,16,30,0.06); }

body.topsearch-page-about .value-intro::before { content: 'TOP S';
  position: absolute;
  right: clamp(18px, 4vw, 48px);
  bottom: -0.28em;
  font-family: var(--font-en);
  font-size: clamp(72px, 13vw, 160px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: rgba(7,16,30,0.035);
  pointer-events: none; }

@media (min-width: 900px) {

  body.topsearch-page-about .value-intro { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
      align-items: end; }

}

body.topsearch-page-about .value-intro__eyebrow { display: block;
  font-family: var(--font-en);
  font-size: 14px;
  letter-spacing: 0.18em;
  color: var(--color-accent-gold);
  text-transform: uppercase;
  margin-bottom: 14px; }

body.topsearch-page-about .value-intro__title { font-family: var(--font-mincho);
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-accent-navy); }

body.topsearch-page-about .value-intro__lead { position: relative;
  font-size: 15px;
  line-height: 2;
  color: #555; }

body.topsearch-page-about .value-intro__lead p + p { margin-top: 18px; }

body.topsearch-page-about .value-summary { display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  max-width: 1100px;
  margin: 0 auto 28px; }

@media (min-width: 768px) {

  body.topsearch-page-about .value-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }

}

body.topsearch-page-about .value-summary-card { position: relative;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(7,16,30,0.08);
  border-radius: 4px;
  padding: 28px 24px 26px;
  box-shadow: 0 14px 40px rgba(7,16,30,0.05);
  overflow: hidden; }

body.topsearch-page-about .value-summary-card::before { content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--color-accent-navy), var(--color-accent-gold)); }

body.topsearch-page-about .value-summary-card__title { font-family: var(--font-en);
  font-size: 26px;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  line-height: 1.2;
  margin-bottom: 12px; }

body.topsearch-page-about .value-summary-card__text { font-size: 14px;
  line-height: 1.9;
  color: #555; }

body.topsearch-page-about .value-detail-heading { max-width: 1100px;
  margin: 0 auto 44px;
  padding: 20px 24px;
  border-top: 1px solid rgba(182,147,82,0.35);
  border-bottom: 1px solid rgba(182,147,82,0.35);
  font-family: var(--font-mincho);
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.9;
  color: var(--color-accent-navy); }

body.topsearch-page-about .value-blocks { display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 1100px;
  margin: 0 auto; }

@media (min-width: 900px) {

  body.topsearch-page-about .value-blocks { grid-template-columns: repeat(3, minmax(0, 1fr)); }

}

body.topsearch-page-about .value-block { position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: #fff;
  border: 1px solid rgba(7,16,30,0.08);
  border-radius: 4px;
  padding: 42px 30px 34px;
  box-shadow: 0 18px 45px rgba(7,16,30,0.07);
  overflow: hidden;
  transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s var(--ease-out-expo); }

body.topsearch-page-about .value-block::before { content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--color-accent-navy), var(--color-accent-gold)); }

body.topsearch-page-about .value-block::after { content: attr(data-value-num);
  position: absolute;
  top: 18px;
  right: 22px;
  font-family: var(--font-en);
  font-size: 54px;
  line-height: 1;
  color: rgba(7,16,30,0.05); }

body.topsearch-page-about .value-block:hover { transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(7,16,30,0.1); }

body.topsearch-page-about .value-block__label { display: block;
  font-family: var(--font-en);
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent-gold);
  margin-bottom: 10px; }

body.topsearch-page-about .value-block__title { font-family: var(--font-en);
  font-size: clamp(28px, 3vw, 34px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(7,16,30,0.08); }

body.topsearch-page-about .value-block__title-s { font-weight: 700; }

body.topsearch-page-about .value-block__title-s--soul { color: #C63C32;
  text-shadow: 0 0 16px rgba(198,60,50,0.38), 0 2px 2px rgba(198,60,50,0.18); }

body.topsearch-page-about .value-block__title-s--speed { color: #0074D9 !important;
  text-shadow: 0 0 14px rgba(0,116,217,0.42), 0 2px 2px rgba(0,74,140,0.2); }

body.topsearch-page-about .value-block__title-s--service { color: var(--color-accent-gold);
  text-shadow: 0 0 18px rgba(182,147,82,0.44), 0 2px 2px rgba(118,82,29,0.22); }

body.topsearch-page-about .value-block__text { font-size: 14px;
  line-height: 2;
  color: #555; }

body.topsearch-page-about .value-block__text p + p { margin-top: 14px; }

body.topsearch-page-about .why-grid { display: flex; flex-direction: column; gap: 32px; }

@media (min-width: 768px) {

  body.topsearch-page-about .why-grid { flex-direction: row; gap: 40px; }

  body.topsearch-page-about .why-step { flex: 1; }

}

body.topsearch-page-about .why-step { background: #fff; border: 1px solid rgba(0,0,0,0.05); padding: 40px 32px; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.02); transition: transform 0.3s ease; }

body.topsearch-page-about .why-step:hover { transform: translateY(-5px); }

body.topsearch-page-about .why-step__num { font-family: var(--font-en); font-size: 14px; color: var(--color-accent-gold); display: block; margin-bottom: 16px; letter-spacing: 0.1em; }

body.topsearch-page-about .why-step__title { font-size: 18px; font-family: var(--font-mincho); margin-bottom: 16px; color: var(--color-accent-navy); line-height: 1.5; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 16px; }

body.topsearch-page-about .why-step p { font-size: 14px; line-height: 1.8; color: #555; }

body.topsearch-page-about .what-cards { display: flex; flex-direction: column; gap: 24px; max-width: 1100px; margin: 0 auto; }

@media (min-width: 992px) {

  body.topsearch-page-about .what-cards { flex-direction: row; gap: 32px; }

  body.topsearch-page-about .what-card { flex: 1; }

}

body.topsearch-page-about .what-card { background: #fff; padding: 40px 32px; border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,0.03); display: flex; flex-direction: column; }

body.topsearch-page-about .what-card__title { font-size: 20px; font-family: var(--font-mincho); color: var(--color-accent-navy); margin-bottom: 12px; line-height: 1.4; }

body.topsearch-page-about .what-card__summary { font-size: 13px; color: var(--color-accent-gold); margin-bottom: 24px; font-weight: 500; }

body.topsearch-page-about .what-card__list { margin-bottom: 32px; flex: 1; }

body.topsearch-page-about .what-card__list li { position: relative; padding-left: 16px; font-size: 14px; line-height: 1.6; color: #444; margin-bottom: 16px; }

body.topsearch-page-about .what-card__list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; background: var(--color-accent-gold); border-radius: 50%; }

body.topsearch-page-about .what-card__target { font-size: 12px; background: #F8F9FA; padding: 16px; border-left: 2px solid var(--color-accent-gold); color: #333; line-height: 1.6; font-weight: 500; }

body.topsearch-page-about .what-card__target-line { display: inline-block; white-space: nowrap; }

body.topsearch-page-about .strength-list { display: flex; flex-direction: column; gap: 80px; }

body.topsearch-page-about .strength-item { display: flex; flex-direction: column; gap: 32px; align-items: center; }

@media (min-width: 768px) {

  body.topsearch-page-about .strength-item { flex-direction: row; gap: 64px; }

  body.topsearch-page-about .strength-item--reverse { flex-direction: row-reverse; }

  body.topsearch-page-about .strength-item__img { width: 50%; flex-shrink: 0; }

  body.topsearch-page-about .strength-item__text { width: 50%; }

}

body.topsearch-page-about .strength-item__img img { width: 100%; height: auto; border-radius: 4px; box-shadow: 0 15px 40px rgba(0,0,0,0.08); aspect-ratio: 4/3; object-fit: cover; }

body.topsearch-page-about .strength-item__label { font-family: var(--font-en); font-size: 14px; color: var(--color-accent-gold); letter-spacing: 0.1em; display: block; margin-bottom: 8px; }

body.topsearch-page-about .strength-item__title { font-size: 24px; font-family: var(--font-mincho); color: var(--color-accent-navy); margin-bottom: 24px; line-height: 1.5; }

body.topsearch-page-about .strength-item__desc { font-size: 15px; color: #555; line-height: 2.0; }

body.topsearch-page-about .section-approach { position: relative; overflow: hidden; }

body.topsearch-page-about .section-approach::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, transparent 0 49.9%, rgba(182,147,82,0.08) 50%, transparent 50.1%),
    linear-gradient(rgba(7,16,30,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(7,16,30,0.025) 1px, transparent 1px);
  background-size: auto, 72px 72px, 72px 72px; }

body.topsearch-page-about .section-approach .l-container { position: relative; z-index: 1; }

body.topsearch-page-about .approach-flow { position: relative; max-width: 1040px; margin: 0 auto; padding: 8px 0; }

body.topsearch-page-about .approach-flow::before { content: ""; position: absolute; top: 18px; bottom: 18px; left: 50%; width: 1px;
  background: linear-gradient(180deg, transparent, rgba(182,147,82,0.72), transparent); }

body.topsearch-page-about .approach-step { position: relative; min-height: 190px; margin-bottom: 8px; }

body.topsearch-page-about .approach-step:last-child { margin-bottom: 0; }

body.topsearch-page-about .approach-step::before { content: ""; position: absolute; top: 34px; left: 50%; width: 13px; height: 13px;
  transform: translateX(-50%) rotate(45deg); background: var(--color-accent-gold);
  box-shadow: 0 0 0 10px rgba(182,147,82,0.12); }

body.topsearch-page-about .approach-step__body { width: calc(50% - 58px); background: rgba(255,255,255,0.92); padding: 30px 32px 32px;
  border: 1px solid rgba(7,16,30,0.08); border-radius: 4px;
  box-shadow: 0 18px 45px rgba(7,16,30,0.07); position: relative; overflow: hidden; }

body.topsearch-page-about .approach-step__body::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--color-accent-navy), var(--color-accent-gold)); }

body.topsearch-page-about .approach-step:nth-child(odd) .approach-step__body { margin-left: auto; }

body.topsearch-page-about .approach-step:nth-child(even) .approach-step__body { margin-right: auto; }

body.topsearch-page-about .approach-step__head { display: grid; gap: 6px; margin-bottom: 16px; }

body.topsearch-page-about .approach-step__num { font-family: var(--font-en); font-size: 15px; color: var(--color-accent-gold); font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }

body.topsearch-page-about .approach-step__name { font-size: clamp(18px, 2vw, 22px); font-family: var(--font-mincho); color: var(--color-accent-navy); line-height: 1.45; }

body.topsearch-page-about .approach-step__desc { font-size: 14px; color: #555; line-height: 1.9; }

@media (max-width: 767px) {

  body.topsearch-page-about .section-approach::before { background:
        linear-gradient(rgba(7,16,30,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(7,16,30,0.025) 1px, transparent 1px);
      background-size: 56px 56px; }

  body.topsearch-page-about .approach-flow { padding-left: 28px; }

  body.topsearch-page-about .approach-flow::before { left: 6px; }

  body.topsearch-page-about .approach-step { min-height: 0; margin-bottom: 24px; }

  body.topsearch-page-about .approach-step::before { left: 6px; top: 30px; }

  body.topsearch-page-about .approach-step__body { width: 100%; padding: 26px 22px 28px; }

}

body.topsearch-page-about .culture-inner { display: flex; flex-direction: column; gap: 40px; }

@media (min-width: 768px) {

  body.topsearch-page-about .culture-inner { flex-direction: row; gap: 64px; align-items: center; }

  body.topsearch-page-about .culture-text { width: 55%; }

  body.topsearch-page-about .culture-img { width: 45%; }

}

body.topsearch-page-about .culture-list { margin-top: 32px; display: flex; flex-direction: column; gap: 24px; }

body.topsearch-page-about .culture-list li strong { display: block; font-size: 16px; color: var(--color-accent-navy); margin-bottom: 8px; border-left: 2px solid var(--color-accent-gold); padding-left: 12px; }

body.topsearch-page-about .culture-list li span { font-size: 14px; color: #555; line-height: 1.8; display: block; padding-left: 14px; }

body.topsearch-page-about .culture-img img { width: 100%; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); aspect-ratio: 4/5; object-fit: cover; }

body.topsearch-page-about .section-cta__text,
body.topsearch-page-service .section-cta__text,
body.topsearch-page-job-changer .section-cta__text,
body.topsearch-page-employing-company .section-cta__text,
body.topsearch-page-news .section-cta__text,
body.topsearch-page-press .section-cta__text,
body.topsearch-page-news-detail .section-cta__text,
body.topsearch-page-press-detail .section-cta__text { font-family: var(--font-mincho);
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 48px;
  letter-spacing: 0.1em;
  font-weight: 300;
  opacity: 1 !important; }

body.topsearch-page-about .l-footer__info,
body.topsearch-page-service .l-footer__info,
body.topsearch-page-sdgs .l-footer__info,
body.topsearch-page-job-changer .l-footer__info,
body.topsearch-page-employing-company .l-footer__info,
body.topsearch-page-privacy .l-footer__info,
body.topsearch-page-contact .l-footer__info,
body.topsearch-page-news .l-footer__info,
body.topsearch-page-press .l-footer__info,
body.topsearch-page-news-detail .l-footer__info,
body.topsearch-page-press-detail .l-footer__info { flex: 0 0 240px !important;
  max-width: none !important; }

body.topsearch-page-about .l-footer__nav,
body.topsearch-page-service .l-footer__nav,
body.topsearch-page-recruit .l-footer__nav,
body.topsearch-page-sdgs .l-footer__nav,
body.topsearch-page-job-changer .l-footer__nav,
body.topsearch-page-employing-company .l-footer__nav,
body.topsearch-page-privacy .l-footer__nav,
body.topsearch-page-contact .l-footer__nav,
body.topsearch-page-news .l-footer__nav,
body.topsearch-page-press .l-footer__nav,
body.topsearch-page-news-detail .l-footer__nav,
body.topsearch-page-press-detail .l-footer__nav { display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 40px !important;
  width: 100% !important; }

@media (min-width: 768px) {

  body.topsearch-page-about .l-footer__nav,
  body.topsearch-page-service .l-footer__nav,
  body.topsearch-page-recruit .l-footer__nav,
  body.topsearch-page-sdgs .l-footer__nav,
  body.topsearch-page-job-changer .l-footer__nav,
  body.topsearch-page-employing-company .l-footer__nav,
  body.topsearch-page-privacy .l-footer__nav,
  body.topsearch-page-contact .l-footer__nav,
  body.topsearch-page-news .l-footer__nav,
  body.topsearch-page-press .l-footer__nav,
  body.topsearch-page-news-detail .l-footer__nav,
  body.topsearch-page-press-detail .l-footer__nav { grid-template-columns: repeat(4, 1fr) !important;
      gap: 40px !important;
      flex: 1 !important; }

}

body.topsearch-page-about a.l-footer__nav-group-title,
body.topsearch-page-about div.l-footer__nav-group-title,
body.topsearch-page-service a.l-footer__nav-group-title,
body.topsearch-page-service div.l-footer__nav-group-title,
body.topsearch-page-sdgs a.l-footer__nav-group-title,
body.topsearch-page-sdgs div.l-footer__nav-group-title,
body.topsearch-page-job-changer a.l-footer__nav-group-title,
body.topsearch-page-job-changer div.l-footer__nav-group-title,
body.topsearch-page-employing-company a.l-footer__nav-group-title,
body.topsearch-page-employing-company div.l-footer__nav-group-title,
body.topsearch-page-privacy a.l-footer__nav-group-title,
body.topsearch-page-privacy div.l-footer__nav-group-title,
body.topsearch-page-contact a.l-footer__nav-group-title,
body.topsearch-page-contact div.l-footer__nav-group-title,
body.topsearch-page-news a.l-footer__nav-group-title,
body.topsearch-page-news div.l-footer__nav-group-title,
body.topsearch-page-press a.l-footer__nav-group-title,
body.topsearch-page-press div.l-footer__nav-group-title,
body.topsearch-page-news-detail a.l-footer__nav-group-title,
body.topsearch-page-news-detail div.l-footer__nav-group-title,
body.topsearch-page-press-detail a.l-footer__nav-group-title,
body.topsearch-page-press-detail div.l-footer__nav-group-title { font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-base) !important;
  letter-spacing: 0.1em !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--color-accent-gold) !important;
  margin-bottom: 8px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
  display: block !important; }

body.topsearch-page-about a.l-footer__nav-group-title:hover,
body.topsearch-page-service a.l-footer__nav-group-title:hover,
body.topsearch-page-recruit a.l-footer__nav-group-title:hover,
body.topsearch-page-sdgs a.l-footer__nav-group-title:hover,
body.topsearch-page-job-changer a.l-footer__nav-group-title:hover,
body.topsearch-page-employing-company a.l-footer__nav-group-title:hover,
body.topsearch-page-privacy a.l-footer__nav-group-title:hover,
body.topsearch-page-contact a.l-footer__nav-group-title:hover,
body.topsearch-page-news a.l-footer__nav-group-title:hover,
body.topsearch-page-press a.l-footer__nav-group-title:hover,
body.topsearch-page-news-detail a.l-footer__nav-group-title:hover,
body.topsearch-page-press-detail a.l-footer__nav-group-title:hover { color: var(--color-accent-gold) !important; }

body.topsearch-page-about .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-service .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-sdgs .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-job-changer .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-employing-company .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-privacy .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-contact .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-news .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-press .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-news-detail .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-press-detail .l-footer__nav-group a:not(.l-footer__nav-group-title) { font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
  font-size: 13px !important;
  color: rgba(255, 255, 255, 0.7) !important;
  letter-spacing: 0.05em !important;
  transition: color 0.3s ease !important;
  display: inline-block !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  padding-bottom: 0 !important;
  border-bottom: none !important; }

body.topsearch-page-about .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-service .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-recruit .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-sdgs .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-job-changer .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-employing-company .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-privacy .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-contact .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-news .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-press .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-news-detail .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-press-detail .l-footer__nav-group a:not(.l-footer__nav-group-title):hover { color: var(--color-accent-gold) !important; }

body.topsearch-page-about .l-footer__nav-group--links a,
body.topsearch-page-service .l-footer__nav-group--links a,
body.topsearch-page-sdgs .l-footer__nav-group--links a,
body.topsearch-page-job-changer .l-footer__nav-group--links a,
body.topsearch-page-employing-company .l-footer__nav-group--links a,
body.topsearch-page-privacy .l-footer__nav-group--links a,
body.topsearch-page-contact .l-footer__nav-group--links a,
body.topsearch-page-news .l-footer__nav-group--links a,
body.topsearch-page-press .l-footer__nav-group--links a,
body.topsearch-page-news-detail .l-footer__nav-group--links a,
body.topsearch-page-press-detail .l-footer__nav-group--links a { font-family: var(--font-ja-sans, 'Noto Sans JP', sans-serif) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--color-base) !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  margin-bottom: 8px !important;
  text-decoration: none !important;
  transition: all 0.3s ease !important; }

body.topsearch-page-about .l-footer__nav-group--links a:hover,
body.topsearch-page-service .l-footer__nav-group--links a:hover,
body.topsearch-page-recruit .l-footer__nav-group--links a:hover,
body.topsearch-page-sdgs .l-footer__nav-group--links a:hover,
body.topsearch-page-job-changer .l-footer__nav-group--links a:hover,
body.topsearch-page-employing-company .l-footer__nav-group--links a:hover,
body.topsearch-page-privacy .l-footer__nav-group--links a:hover,
body.topsearch-page-contact .l-footer__nav-group--links a:hover,
body.topsearch-page-news .l-footer__nav-group--links a:hover,
body.topsearch-page-press .l-footer__nav-group--links a:hover,
body.topsearch-page-news-detail .l-footer__nav-group--links a:hover,
body.topsearch-page-press-detail .l-footer__nav-group--links a:hover { color: var(--color-accent-gold) !important;
  border-bottom-color: var(--color-accent-gold) !important; }

body.topsearch-page-about .l-footer__bottom-inner,
body.topsearch-page-service .l-footer__bottom-inner,
body.topsearch-page-recruit .l-footer__bottom-inner,
body.topsearch-page-sdgs .l-footer__bottom-inner,
body.topsearch-page-job-changer .l-footer__bottom-inner,
body.topsearch-page-employing-company .l-footer__bottom-inner,
body.topsearch-page-privacy .l-footer__bottom-inner,
body.topsearch-page-contact .l-footer__bottom-inner,
body.topsearch-page-news .l-footer__bottom-inner,
body.topsearch-page-press .l-footer__bottom-inner,
body.topsearch-page-news-detail .l-footer__bottom-inner,
body.topsearch-page-press-detail .l-footer__bottom-inner { display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 16px !important;
  font-size: 11px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  letter-spacing: 0.1em !important; }

@media (min-width: 768px) {

  body.topsearch-page-about .l-footer__bottom-inner,
  body.topsearch-page-service .l-footer__bottom-inner,
  body.topsearch-page-recruit .l-footer__bottom-inner,
  body.topsearch-page-sdgs .l-footer__bottom-inner,
  body.topsearch-page-job-changer .l-footer__bottom-inner,
  body.topsearch-page-employing-company .l-footer__bottom-inner,
  body.topsearch-page-privacy .l-footer__bottom-inner,
  body.topsearch-page-contact .l-footer__bottom-inner,
  body.topsearch-page-news .l-footer__bottom-inner,
  body.topsearch-page-press .l-footer__bottom-inner,
  body.topsearch-page-news-detail .l-footer__bottom-inner,
  body.topsearch-page-press-detail .l-footer__bottom-inner { flex-direction: row !important;
      justify-content: center !important; }

}

body.topsearch-page-about .l-footer__privacy,
body.topsearch-page-service .l-footer__privacy,
body.topsearch-page-sdgs .l-footer__privacy,
body.topsearch-page-job-changer .l-footer__privacy,
body.topsearch-page-employing-company .l-footer__privacy,
body.topsearch-page-privacy .l-footer__privacy,
body.topsearch-page-contact .l-footer__privacy,
body.topsearch-page-news .l-footer__privacy,
body.topsearch-page-press .l-footer__privacy,
body.topsearch-page-news-detail .l-footer__privacy,
body.topsearch-page-press-detail .l-footer__privacy { color: rgba(255, 255, 255, 0.7) !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
  transition: color 0.3s ease !important;
  font-size: 12px !important; }

body.topsearch-page-about .l-footer__privacy:hover,
body.topsearch-page-service .l-footer__privacy:hover,
body.topsearch-page-sdgs .l-footer__privacy:hover,
body.topsearch-page-job-changer .l-footer__privacy:hover,
body.topsearch-page-employing-company .l-footer__privacy:hover,
body.topsearch-page-privacy .l-footer__privacy:hover,
body.topsearch-page-contact .l-footer__privacy:hover,
body.topsearch-page-news .l-footer__privacy:hover,
body.topsearch-page-press .l-footer__privacy:hover,
body.topsearch-page-news-detail .l-footer__privacy:hover,
body.topsearch-page-press-detail .l-footer__privacy:hover { color: var(--color-accent-gold) !important; }

body.topsearch-page-about .l-header .c-btn--gold,
body.topsearch-page-service .l-header .c-btn--gold,
body.topsearch-page-recruit .l-header .c-btn--gold,
body.topsearch-page-sdgs .l-header .c-btn--gold,
body.topsearch-page-job-changer .l-header .c-btn--gold,
body.topsearch-page-employing-company .l-header .c-btn--gold,
body.topsearch-page-privacy .l-header .c-btn--gold,
body.topsearch-page-contact .l-header .c-btn--gold,
body.topsearch-page-news .l-header .c-btn--gold,
body.topsearch-page-press .l-header .c-btn--gold,
body.topsearch-page-news-detail .l-header .c-btn--gold,
body.topsearch-page-press-detail .l-header .c-btn--gold { padding: 12px 32px !important; font-size: 12px !important; }

@media (max-width: 767px) {

  body.topsearch-page-about .section-case__swiper .swiper-wrapper,
  body.topsearch-page-service .section-case__swiper .swiper-wrapper,
  body.topsearch-page-recruit .section-case__swiper .swiper-wrapper,
  body.topsearch-page-sdgs .section-case__swiper .swiper-wrapper,
  body.topsearch-page-job-changer .section-case__swiper .swiper-wrapper,
  body.topsearch-page-employing-company .section-case__swiper .swiper-wrapper,
  body.topsearch-page-privacy .section-case__swiper .swiper-wrapper,
  body.topsearch-page-contact .section-case__swiper .swiper-wrapper,
  body.topsearch-page-news .section-case__swiper .swiper-wrapper,
  body.topsearch-page-press .section-case__swiper .swiper-wrapper,
  body.topsearch-page-news-detail .section-case__swiper .swiper-wrapper,
  body.topsearch-page-press-detail .section-case__swiper .swiper-wrapper { grid-auto-columns: minmax(170px, 68vw) !important; }

  body.topsearch-page-about .section-what .what-card__title { font-size: clamp(18px, 5.2vw, 22px) !important;
      line-height: 1.45 !important;
      white-space: normal !important; }

  body.topsearch-page-about .what-card__title--momentum .u-hidden-sp { display: block !important; }

  body.topsearch-page-about .section-approach { overflow: hidden !important; }

  body.topsearch-page-about .section-approach .l-container { padding-left: 20px !important;
      padding-right: 20px !important; }

  body.topsearch-page-about .approach-flow { width: 100% !important;
      max-width: 100% !important;
      margin: 0 auto !important;
      padding: 0 !important;
      display: grid !important;
      gap: 20px !important; }

  body.topsearch-page-about .approach-flow::before,
  body.topsearch-page-about .approach-step::before { content: none !important;
      display: none !important; }

  body.topsearch-page-about .approach-step { width: 100% !important;
      max-width: 100% !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important; }

  body.topsearch-page-about .approach-step__body { width: 100% !important;
      max-width: 100% !important;
      margin: 0 !important;
      padding: 24px 20px 26px !important;
      border-radius: 6px !important;
      overflow: hidden !important; }

  body.topsearch-page-about .approach-step__head { gap: 8px !important;
      margin-bottom: 14px !important; }

  body.topsearch-page-about .approach-step__num { display: inline-flex !important;
      width: fit-content !important;
      max-width: 100% !important;
      font-size: 12px !important;
      line-height: 1 !important;
      letter-spacing: 0.12em !important;
      padding: 8px 10px !important;
      border: 1px solid rgba(182, 147, 82, 0.35) !important;
      background: rgba(182, 147, 82, 0.08) !important;
      border-radius: 999px !important;
      white-space: nowrap !important; }

  body.topsearch-page-about .approach-step__name { font-size: clamp(18px, 5.8vw, 23px) !important;
      line-height: 1.45 !important;
      letter-spacing: 0.02em !important;
      word-break: normal !important;
      overflow-wrap: anywhere !important; }

  body.topsearch-page-about .approach-step__desc { font-size: 14px !important;
      line-height: 1.85 !important;
      letter-spacing: 0.03em !important;
      word-break: normal !important;
      overflow-wrap: anywhere !important; }

}

body.topsearch-page-service .c-page-header { padding: 200px 5% 100px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.76), rgba(10, 25, 47, 0.86)), url('../images/headers/service-header.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; }

body.topsearch-page-service .section-spacer { padding: clamp(80px, 10vw, 140px) 0; }

body.topsearch-page-service .bg-gray { background-color: var(--color-sub-gray); }

body.topsearch-page-service .c-section-title { margin-bottom: clamp(40px, 6vw, 64px); }

body.topsearch-page-service .c-section-title__en { font-family: var(--font-en); font-size: clamp(32px, 4vw, 48px); font-weight: 400; letter-spacing: 0.15em; color: var(--color-accent-navy); line-height: 1.2; margin-bottom: 8px; text-transform: uppercase; display: block; }

body.topsearch-page-service .overview-cards { display: grid; grid-template-columns: 1fr; gap: 24px; }

@media (min-width: 768px) {

  body.topsearch-page-service .overview-cards { grid-template-columns: repeat(3, 1fr); gap: 32px; }

}

body.topsearch-page-service .overview-card { background: #fff; border: 1px solid rgba(0,0,0,0.05); padding: 40px 32px; border-radius: 4px; display: block; transition: all 0.4s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.02); text-decoration: none; color: inherit; }

body.topsearch-page-service .overview-card:hover { transform: translateY(-8px); box-shadow: 0 15px 30px rgba(0,0,0,0.08); border-color: rgba(182, 147, 82, 0.3); }

body.topsearch-page-service .overview-card__num { font-family: var(--font-en); font-size: 16px; color: var(--color-accent-gold); display: block; margin-bottom: 16px; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 16px; }

body.topsearch-page-service .overview-card__title { font-family: var(--font-mincho); font-size: 20px; color: var(--color-accent-navy); margin-bottom: 12px; line-height: 1.4; }

body.topsearch-page-service .overview-card__desc { font-size: 13px; color: var(--color-muted); line-height: 1.8; margin-bottom: 24px; min-height: 70px; }

body.topsearch-page-service .overview-card__list { list-style: none; margin: 0; padding: 0; }

body.topsearch-page-service .overview-card__list li { position: relative; padding-left: 16px; font-size: 13px; color: #444; line-height: 1.6; margin-bottom: 12px; }

body.topsearch-page-service .overview-card__list li:last-child { margin-bottom: 0; }

body.topsearch-page-service .overview-card__list li::before { content: ''; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; background: var(--color-accent-gold); border-radius: 50%; }

body.topsearch-page-service .service-detail { display: flex;
  flex-direction: column;
  gap: 28px;
  margin-bottom: clamp(72px, 10vw, 128px);
  padding-bottom: clamp(56px, 8vw, 88px);
  border-bottom: 1px solid rgba(7,16,30,0.08);
  scroll-margin-top: 120px; }

body.topsearch-page-service .service-detail:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }

body.topsearch-page-service .service-detail__img { position: relative;
  width: min(100%, 880px);
  margin: 0 auto;
  padding: 22px 22px 0 0; }

body.topsearch-page-service .service-detail__img::before { content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: calc(100% - 48px);
  height: calc(100% - 20px);
  background: linear-gradient(180deg, rgba(250,248,243,0.96) 0%, rgba(244,239,230,0.96) 100%);
  border: 1px solid rgba(182,147,82,0.18);
  border-radius: 6px 6px 32px 6px;
  z-index: 0; }

body.topsearch-page-service .service-detail__frame { position: relative;
  padding: 14px;
  background: #fff;
  border: 1px solid rgba(182,147,82,0.24);
  border-radius: 6px 6px 28px 6px;
  box-shadow: 0 18px 42px rgba(7,16,30,0.08);
  overflow: hidden;
  z-index: 1; }

body.topsearch-page-service .service-detail__frame::before { content: '';
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  height: 1px;
  background: linear-gradient(90deg, rgba(182,147,82,0.5), rgba(182,147,82,0));
  z-index: 1; }

body.topsearch-page-service .service-detail__frame::after { content: '';
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 68px;
  height: 68px;
  border-right: 1px solid rgba(182,147,82,0.32);
  border-bottom: 1px solid rgba(182,147,82,0.32);
  border-radius: 0 0 18px 0;
  pointer-events: none; }

body.topsearch-page-service .service-detail__frame-inner { position: relative;
  overflow: hidden;
  border-radius: 2px 2px 22px 2px; }

body.topsearch-page-service .service-detail__frame-inner::before { content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(7,16,30,0.02) 0%, rgba(7,16,30,0) 20%, rgba(7,16,30,0.12) 100%);
  pointer-events: none;
  z-index: 1; }

body.topsearch-page-service .service-detail__img img { width: 100%;
  display: block;
  border-radius: 0;
  box-shadow: none;
  aspect-ratio: 16 / 7.6;
  object-fit: cover; }

body.topsearch-page-service .service-detail__caption { display: none; }

body.topsearch-page-service .service-detail__content { padding: 0; }

body.topsearch-page-service .service-detail__head { margin-bottom: 32px; }

body.topsearch-page-service .service-detail__eyebrow { display: inline-block;
  margin-bottom: 12px;
  color: var(--color-accent-gold);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase; }

body.topsearch-page-service .service-detail__num { display: block;
  margin-right: 0;
  margin-bottom: 10px;
  font-family: var(--font-en);
  font-size: clamp(22px, 3vw, 30px);
  color: var(--color-accent-gold);
  letter-spacing: 0.14em; }

body.topsearch-page-service .service-detail__title { display: block;
  font-family: var(--font-mincho);
  font-size: clamp(26px, 3vw, 38px);
  color: var(--color-accent-navy);
  line-height: 1.5;
  margin-bottom: 18px; }

body.topsearch-page-service .service-detail__lead { font-size: 15px; color: #555; line-height: 2; max-width: 42em; }

body.topsearch-page-service .service-detail__summary { display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px; }

body.topsearch-page-service .service-detail__summary span { display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 0 0 14px;
  border-radius: 0;
  background: transparent;
  border: none;
  color: #666;
  font-size: 12px;
  letter-spacing: 0.08em;
  position: relative; }

body.topsearch-page-service .service-detail__summary span::before { content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(182,147,82,0.7);
  transform: translateY(-50%); }

body.topsearch-page-service .service-detail__blocks { display: grid;
  grid-template-columns: 1fr;
  gap: 20px; }

@media (min-width: 768px) {

  body.topsearch-page-service .service-detail__blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  body.topsearch-page-service .service-detail__blocks .service-block:last-child:nth-child(odd) { grid-column: 1 / -1; }

}

body.topsearch-page-service .service-block { margin-bottom: 0;
  padding: 24px;
  border: 1px solid rgba(7,16,30,0.05);
  border-radius: 4px;
  background: #fff; }

body.topsearch-page-service .service-block:last-child { padding-bottom: 24px; }

body.topsearch-page-service .service-block__title { font-size: 16px; color: var(--color-accent-navy); margin-bottom: 16px; display: flex; align-items: center; gap: 12px; }

body.topsearch-page-service .service-block__title::before { content: ''; display: block; width: 24px; height: 1px; background: var(--color-accent-gold); }

body.topsearch-page-service .service-block__text { font-size: 14px; color: var(--color-muted); line-height: 1.9; margin-bottom: 16px; }

body.topsearch-page-service .service-list { list-style: none; padding: 0; margin: 0; }

body.topsearch-page-service .service-list li { position: relative; padding-left: 24px; font-size: 14px; color: #333; line-height: 1.9; margin-bottom: 12px; }

body.topsearch-page-service .service-list li:last-child { margin-bottom: 0; }

body.topsearch-page-service .service-list li::before { content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 10px;
  height: 10px;
  border: 1px solid rgba(182, 147, 82, 0.45);
  background: rgba(182, 147, 82, 0.18);
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(182, 147, 82, 0.08); }

@media (max-width: 767px) {

  body.topsearch-page-service .service-detail { gap: 28px; margin-bottom: 64px; padding-bottom: 56px; }

  body.topsearch-page-service .service-detail__img { width: 100%;
      padding: 14px 14px 0 0; }

  body.topsearch-page-service .service-detail__img::before { width: calc(100% - 28px);
      height: calc(100% - 12px);
      border-radius: 6px 6px 22px 6px; }

  body.topsearch-page-service .service-detail__frame { padding: 10px;
      border-radius: 6px 6px 20px 6px; }

  body.topsearch-page-service .service-detail__frame::before { top: 10px;
      left: 10px;
      right: 10px; }

  body.topsearch-page-service .service-detail__frame::after { right: 10px;
      bottom: 10px;
      width: 46px;
      height: 46px; }

  body.topsearch-page-service .service-detail__frame-inner { border-radius: 2px 2px 16px 2px; }

  body.topsearch-page-service .service-detail__img img { aspect-ratio: 16 / 9; }

  body.topsearch-page-service .service-block { padding: 20px; }

  body.topsearch-page-service .service-block:last-child { padding-bottom: 20px; }

}

body.topsearch-page-service .comparison-table-wrap { overflow-x: auto; background: #fff; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); }

body.topsearch-page-service .comparison-table { width: 100%; min-width: 600px; border-collapse: collapse; text-align: left; }

body.topsearch-page-service .comparison-table th,
body.topsearch-page-service .comparison-table td { padding: 24px; border-bottom: 1px solid rgba(0,0,0,0.05); }

body.topsearch-page-service .comparison-table th { font-family: var(--font-mincho); font-weight: 500; color: var(--color-accent-navy); background: #F8F9FA; width: 20%; }

body.topsearch-page-service .comparison-table thead th { background: #fff; color: var(--color-muted); font-family: var(--font-gothic); font-size: 13px; text-transform: uppercase; border-bottom: 2px solid var(--color-accent-navy); }

body.topsearch-page-service .comparison-table thead th.col-title { font-family: var(--font-mincho); font-size: 16px; color: var(--color-accent-navy); }

body.topsearch-page-service .comparison-table td { font-size: 14px; color: #444; line-height: 1.8; width: 26.6%; border-left: 1px solid rgba(0,0,0,0.02); }

body.topsearch-page-service .comparison-table td strong { color: var(--color-accent-gold); font-weight: 600; }

@media (max-width: 767px) {

  body.topsearch-page-service .comparison-table-wrap { display: none; }

  body.topsearch-page-service .comparison-cards { display: flex; flex-direction: column; gap: 24px; }

  body.topsearch-page-service .comparison-card { background: #fff; padding: 24px; border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.03); border-top: 3px solid var(--color-accent-navy); }

  body.topsearch-page-service .comparison-card h3 { font-family: var(--font-mincho); font-size: 18px; color: var(--color-accent-navy); margin-bottom: 16px; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 12px; }

  body.topsearch-page-service .comparison-card dl { display: flex; flex-direction: column; gap: 16px; }

  body.topsearch-page-service .comparison-card dt { font-size: 13px; color: var(--color-muted); margin-bottom: 4px; }

  body.topsearch-page-service .comparison-card dd { font-size: 14px; color: #333; margin: 0; line-height: 1.6; }

  body.topsearch-page-service .comparison-card dd strong { color: var(--color-accent-gold); }

}

@media (min-width: 768px) {

  body.topsearch-page-service .comparison-cards { display: none; }

}

body.topsearch-page-service .faq-list { display: flex; flex-direction: column; gap: 16px; max-width: 900px; margin: 0 auto; }

body.topsearch-page-service .faq-item { background: #fff; border: 1px solid rgba(0,0,0,0.05); border-radius: 4px; overflow: hidden; }

body.topsearch-page-service .faq-item details summary { padding: 24px 32px 24px 64px; font-size: 15px; font-weight: 500; color: var(--color-accent-navy); cursor: pointer; position: relative; list-style: none; transition: background 0.3s ease; }

body.topsearch-page-service .faq-item details summary::-webkit-details-marker { display: none; }

body.topsearch-page-service .faq-item details summary:hover { background: #F8F9FA; }

body.topsearch-page-service .faq-item details summary::before { content: 'Q'; position: absolute; left: 24px; top: 24px; font-family: var(--font-en); font-size: 20px; color: var(--color-accent-gold); line-height: 1; }

body.topsearch-page-service .faq-item details summary::after { content: '+'; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 20px; color: var(--color-muted); transition: transform 0.3s ease; }

body.topsearch-page-service .faq-item details[open] summary::after { transform: translateY(-50%) rotate(45deg); }

body.topsearch-page-service .faq-item details[open] summary { border-bottom: 1px solid rgba(0,0,0,0.05); }

body.topsearch-page-service .faq-answer { padding: 24px 32px 24px 64px; font-size: 14px; line-height: 1.8; color: #444; position: relative; background: #fff; }

body.topsearch-page-service .faq-answer::before { content: 'A'; position: absolute; left: 24px; top: 24px; font-family: var(--font-en); font-size: 20px; color: var(--color-muted); line-height: 1; }

body.topsearch-page-service .c-btn,
body.topsearch-page-sdgs .c-btn,
body.topsearch-page-job-changer .c-btn,
body.topsearch-page-employing-company .c-btn,
body.topsearch-page-news .c-btn,
body.topsearch-page-press .c-btn,
body.topsearch-page-news-detail .c-btn,
body.topsearch-page-press-detail .c-btn { display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 18px 64px !important;
  background-color: var(--color-accent-navy) !important;
  color: var(--color-base) !important;
  font-family: var(--font-mincho) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.2em !important;
  border: none !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all 0.6s var(--ease-out-expo) !important;
  white-space: nowrap !important;
  text-decoration: none !important; }

@media (max-width: 767px) {

  body.topsearch-page-service .c-btn,
  body.topsearch-page-sdgs .c-btn,
  body.topsearch-page-job-changer .c-btn,
  body.topsearch-page-employing-company .c-btn,
  body.topsearch-page-news .c-btn,
  body.topsearch-page-press .c-btn,
  body.topsearch-page-news-detail .c-btn,
  body.topsearch-page-press-detail .c-btn { width: 100% !important;
      padding: 16px 20px !important; }

}

body.topsearch-page-service .c-btn::after,
body.topsearch-page-sdgs .c-btn::after,
body.topsearch-page-job-changer .c-btn::after,
body.topsearch-page-employing-company .c-btn::after,
body.topsearch-page-news .c-btn::after,
body.topsearch-page-press .c-btn::after,
body.topsearch-page-news-detail .c-btn::after,
body.topsearch-page-press-detail .c-btn::after { content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background-color: var(--color-base) !important;
  transform: scaleX(0) !important;
  transform-origin: right !important;
  transition: transform 0.6s var(--ease-out-expo) !important;
  z-index: 0 !important; }

body.topsearch-page-service .c-btn:hover,
body.topsearch-page-sdgs .c-btn:hover,
body.topsearch-page-job-changer .c-btn:hover,
body.topsearch-page-employing-company .c-btn:hover,
body.topsearch-page-news .c-btn:hover,
body.topsearch-page-press .c-btn:hover,
body.topsearch-page-news-detail .c-btn:hover,
body.topsearch-page-press-detail .c-btn:hover { border-color: transparent !important; }

body.topsearch-page-service .c-btn:hover::after,
body.topsearch-page-sdgs .c-btn:hover::after,
body.topsearch-page-job-changer .c-btn:hover::after,
body.topsearch-page-employing-company .c-btn:hover::after,
body.topsearch-page-news .c-btn:hover::after,
body.topsearch-page-press .c-btn:hover::after,
body.topsearch-page-news-detail .c-btn:hover::after,
body.topsearch-page-press-detail .c-btn:hover::after { transform: scaleX(1) !important;
  transform-origin: left !important; }

body.topsearch-page-service .c-btn span,
body.topsearch-page-sdgs .c-btn span,
body.topsearch-page-job-changer .c-btn span,
body.topsearch-page-employing-company .c-btn span,
body.topsearch-page-news .c-btn span,
body.topsearch-page-press .c-btn span,
body.topsearch-page-news-detail .c-btn span,
body.topsearch-page-press-detail .c-btn span { position: relative !important;
  z-index: 1 !important;
  transition: color 0.4s ease !important; }

body.topsearch-page-service .c-btn:hover span,
body.topsearch-page-sdgs .c-btn:hover span,
body.topsearch-page-job-changer .c-btn:hover span,
body.topsearch-page-employing-company .c-btn:hover span,
body.topsearch-page-news .c-btn:hover span,
body.topsearch-page-press .c-btn:hover span,
body.topsearch-page-news-detail .c-btn:hover span,
body.topsearch-page-press-detail .c-btn:hover span { color: var(--color-accent-navy) !important; }

body.topsearch-page-service .c-btn--gold,
body.topsearch-page-sdgs .c-btn--gold,
body.topsearch-page-job-changer .c-btn--gold,
body.topsearch-page-employing-company .c-btn--gold,
body.topsearch-page-news .c-btn--gold,
body.topsearch-page-press .c-btn--gold,
body.topsearch-page-news-detail .c-btn--gold,
body.topsearch-page-press-detail .c-btn--gold { background: linear-gradient(135deg, #B69352 0%, #F5E2B6 25%, #C29D5D 50%, #9B783E 100%) !important;
  background-size: 100% 100% !important;
  background-repeat: no-repeat !important;
  color: var(--color-accent-navy) !important;
  box-shadow: 0 4px 20px rgba(182, 147, 82, 0.25) !important; }

body.topsearch-page-service .c-btn--gold::after,
body.topsearch-page-sdgs .c-btn--gold::after,
body.topsearch-page-job-changer .c-btn--gold::after,
body.topsearch-page-employing-company .c-btn--gold::after,
body.topsearch-page-news .c-btn--gold::after,
body.topsearch-page-press .c-btn--gold::after,
body.topsearch-page-news-detail .c-btn--gold::after,
body.topsearch-page-press-detail .c-btn--gold::after { background: linear-gradient(135deg, #C29D5D 0%, #FFF3D6 25%, #A68448 50%, #8A6832 100%) !important; }

body.topsearch-page-service .c-btn--gold:hover,
body.topsearch-page-sdgs .c-btn--gold:hover,
body.topsearch-page-job-changer .c-btn--gold:hover,
body.topsearch-page-employing-company .c-btn--gold:hover,
body.topsearch-page-news .c-btn--gold:hover,
body.topsearch-page-press .c-btn--gold:hover,
body.topsearch-page-news-detail .c-btn--gold:hover,
body.topsearch-page-press-detail .c-btn--gold:hover { box-shadow: 0 8px 30px rgba(182, 147, 82, 0.4) !important;
  transform: translateY(-2px) !important; }

body.topsearch-page-service .c-btn--gold span,
body.topsearch-page-sdgs .c-btn--gold span,
body.topsearch-page-job-changer .c-btn--gold span,
body.topsearch-page-employing-company .c-btn--gold span,
body.topsearch-page-news .c-btn--gold span,
body.topsearch-page-press .c-btn--gold span,
body.topsearch-page-news-detail .c-btn--gold span,
body.topsearch-page-press-detail .c-btn--gold span { color: var(--color-accent-navy) !important; }

body.topsearch-page-service .c-btn--gold:hover span,
body.topsearch-page-sdgs .c-btn--gold:hover span,
body.topsearch-page-job-changer .c-btn--gold:hover span,
body.topsearch-page-employing-company .c-btn--gold:hover span,
body.topsearch-page-news .c-btn--gold:hover span,
body.topsearch-page-press .c-btn--gold:hover span,
body.topsearch-page-news-detail .c-btn--gold:hover span,
body.topsearch-page-press-detail .c-btn--gold:hover span { color: var(--color-accent-navy) !important; }

body.topsearch-page-service .l-header .c-btn--gold,
body.topsearch-page-news .l-header .c-btn--gold,
body.topsearch-page-press .l-header .c-btn--gold,
body.topsearch-page-news-detail .l-header .c-btn--gold,
body.topsearch-page-press-detail .l-header .c-btn--gold { background-size: 100% 100% !important; background-repeat: no-repeat !important; }

@media (max-width: 767px) {

  body.topsearch-page-service #comparison .comparison-table-wrap { display: block !important;
      width: 100% !important;
      max-width: 100% !important;
      overflow-x: auto !important;
      overflow-y: hidden !important;
      -webkit-overflow-scrolling: touch !important; }

  body.topsearch-page-service #comparison .comparison-table { display: table !important;
      width: 760px !important;
      min-width: 760px !important;
      table-layout: fixed !important; }

  body.topsearch-page-service #comparison .comparison-table th,
  body.topsearch-page-service #comparison .comparison-table td { padding: 18px 16px !important;
      font-size: 13px !important;
      line-height: 1.65 !important;
      white-space: normal !important;
      word-break: keep-all !important;
      overflow-wrap: break-word !important; }

  body.topsearch-page-service #comparison .comparison-table thead th.col-title { font-size: 14px !important;
      line-height: 1.45 !important; }

  body.topsearch-page-service #comparison .comparison-table th:first-child { width: 150px !important; }

  body.topsearch-page-service #comparison .comparison-cards { display: none !important; }

}

body.topsearch-page-recruit img,
body.topsearch-page-privacy img { max-width: 100%; height: auto; display: block; }

body.topsearch-page-recruit a { color: inherit; text-decoration: none; transition: opacity 0.3s ease, color 0.3s ease; }

body.topsearch-page-recruit ul,
body.topsearch-page-recruit ol,
body.topsearch-page-privacy ul,
body.topsearch-page-privacy ol { list-style: none; }

body.topsearch-page-recruit .u-hidden-pc { display: none !important; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .u-hidden-pc { display: block !important; }

  body.topsearch-page-recruit .c-section { padding: 80px 0 !important; }

  body.topsearch-page-recruit .c-section-title { margin-bottom: 40px !important; }

  body.topsearch-page-recruit .c-overlap-block { margin-bottom: 60px !important; }

  body.topsearch-page-recruit .c-overlap-block__content { padding: 40px 24px !important; margin-top: -32px !important; }

  body.topsearch-page-recruit .c-grid-2col { padding: 32px 20px !important; gap: 24px !important; margin-bottom: 32px !important; }

  body.topsearch-page-recruit .feature-card-item { padding: 32px 24px !important; }

  body.topsearch-page-recruit .c-benefit-card__content { padding: 32px 24px !important; }

  body.topsearch-page-recruit .position-wrapper { padding: 40px 20px !important; }

  body.topsearch-page-recruit .position-dl dt { padding: 24px 0 12px !important; }

  body.topsearch-page-recruit .position-dl dd { padding: 0 0 24px !important; }

}

body.topsearch-page-recruit .l-container,
body.topsearch-page-sdgs .l-container,
body.topsearch-page-job-changer .l-container,
body.topsearch-page-employing-company .l-container,
body.topsearch-page-privacy .l-container { max-width: 1100px; margin: 0 auto; padding: 0 5%; }

body.topsearch-page-recruit .l-container--small { max-width: 900px; margin: 0 auto; padding: 0 5%; }

@media (min-width: 1025px) {

  body.topsearch-page-recruit .l-header__link,
  body.topsearch-page-privacy .l-header__link { font-size: 13px; font-family: var(--font-ja-sans); font-weight: 500; letter-spacing: 0.08em; }

  body.topsearch-page-recruit .l-header__dropdown-menu a { padding: 16px 24px; font-size: 15px; display: flex; justify-content: space-between; align-items: center;
      font-family: var(--font-ja-sans); font-weight: 600; letter-spacing: 0.08em; }

  body.topsearch-page-recruit .l-header__lang a { opacity: 0.5; }

}

body.topsearch-page-recruit .l-mobile-menu__parent > a,
body.topsearch-page-recruit .l-mobile-menu__parent > span,
body.topsearch-page-privacy .l-mobile-menu__parent > a,
body.topsearch-page-privacy .l-mobile-menu__parent > span { font-family: var(--font-ja-sans); font-size: clamp(12px, 3.5vw, 14px); font-weight: 500; color: var(--color-base); letter-spacing: 0.05em; display: block; padding-bottom: 12px; position: relative; width: 100%; line-height: 1.4; text-decoration: none; }

body.topsearch-page-recruit .l-mobile-menu__children a { font-family: var(--font-ja-sans); font-size: clamp(12px, 3vw, 13px); color: var(--color-base); letter-spacing: 0.05em; opacity: 0.9; line-height: 1.4; display: block; text-decoration: none; }

body.topsearch-page-recruit .l-mobile-menu__lang a { opacity: 0.5; color: var(--color-base); }

body.topsearch-page-recruit .js-fade-up { opacity: 0; transform: translateY(30px); transition: opacity 1s var(--ease-out-expo), transform 1s var(--ease-out-expo); }

body.topsearch-page-recruit .js-fade-up.is-visible { opacity: 1; transform: translateY(0); }

body.topsearch-page-recruit main { position: relative;
  z-index: 1; }

body.topsearch-page-recruit main::before { content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-image: 
    linear-gradient(rgba(182, 147, 82, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(182, 147, 82, 0.03) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
  z-index: -1; }

body.topsearch-page-recruit .c-page-header { padding: 240px 5% 120px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.78), rgba(10, 25, 47, 0.88)), url('../images/headers/recruit-header-free.jpg');
  background-size: cover;
  background-position: center 50%;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; 
  position: relative; 
  overflow: hidden; }

body.topsearch-page-recruit .c-page-header__en { font-family: var(--font-en); font-size: clamp(40px, 5vw, 64px); font-weight: 300; letter-spacing: 0.15em; margin-bottom: 16px; display: block; text-shadow: 0 2px 4px rgba(0,0,0,0.5); text-transform: uppercase; }

body.topsearch-page-recruit .c-page-header__ja { font-family: var(--font-ja-serif); font-size: 14px; font-weight: 400; letter-spacing: 0.2em; color: var(--color-accent-gold); display: block; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }

body.topsearch-page-recruit .c-page-nav { top: 92px; background: rgba(255,255,255,0.98); border-bottom: 1px solid #EAEAEA; z-index: 90; position: sticky; padding: 16px 0; margin-bottom: 0; }

@media (min-width: 1025px) {

  body.topsearch-page-recruit .c-page-nav { top: 132px; }

}

body.topsearch-page-recruit .c-page-nav__list { display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; margin: 0; padding: 0; }

body.topsearch-page-recruit .c-page-nav__link { font-family: var(--font-ja-sans); font-size: 13px; letter-spacing: 0.1em; color: #666; font-weight: 500; }

body.topsearch-page-recruit .c-page-nav__link:hover { color: var(--color-accent-gold); opacity: 1; }

body.topsearch-page-recruit .c-section { padding: clamp(80px, 10vw, 140px) 0; }

body.topsearch-page-recruit .c-section-title__ja { font-family: var(--font-ja-serif); font-size: 13px; font-weight: 400; letter-spacing: 0.2em; color: #888; margin: 0; display: block; }

body.topsearch-page-recruit .c-section--dark { background-color: var(--color-sub-gray); color: var(--color-main); }

body.topsearch-page-recruit .c-section--dark .c-section-title__en { color: var(--color-accent-navy); }

body.topsearch-page-recruit .c-section--dark .c-section-title__ja { color: #888; }

body.topsearch-page-recruit .c-btn { display: inline-flex; align-items: center; justify-content: center; padding: 18px 64px; background-color: var(--color-accent-navy); color: var(--color-base); font-family: var(--font-ja-serif); font-size: 13px; font-weight: 500; letter-spacing: 0.2em; border: none; position: relative; overflow: hidden; transition: all 0.6s var(--ease-out-expo); white-space: nowrap; text-decoration: none; }

body.topsearch-page-recruit .section-why { position: relative; overflow: hidden; background-color: var(--color-base); }

body.topsearch-page-recruit .section-why::before { content: '';
  position: absolute;
  top: -200px;
  right: -150px;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(182, 147, 82, 0.04) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0; }

body.topsearch-page-recruit .section-why::after { content: '';
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(7, 16, 30, 0.03) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0; }

body.topsearch-page-recruit .why-intro { font-family: var(--font-ja-serif); font-size: clamp(28px, 4vw, 44px); line-height: 1.6; letter-spacing: 0.1em; margin-bottom: 100px; font-weight: 600; position: relative; display: inline-block; color: var(--color-accent-navy); }

body.topsearch-page-recruit .why-intro::after { display: none; }

body.topsearch-page-recruit .why-intro span { color: var(--color-accent-gold); }

body.topsearch-page-recruit .c-overlap-block { display: flex; align-items: center; position: relative; margin-bottom: 120px; gap: 0; }

body.topsearch-page-recruit .c-overlap-block:last-child { margin-bottom: 0; }

body.topsearch-page-recruit .c-overlap-block:nth-child(even) { flex-direction: row-reverse; }

body.topsearch-page-recruit .c-overlap-block__img { width: 58%; position: relative; z-index: 1; }

body.topsearch-page-recruit .c-overlap-block__img::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(10, 15, 22, 0.16), rgba(10, 15, 22, 0.04)); transition: opacity 0.5s ease; }

body.topsearch-page-recruit .c-overlap-block:hover .c-overlap-block__img::after { opacity: 0; }

body.topsearch-page-recruit .c-overlap-block__img img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: center; box-shadow: 0 30px 60px rgba(0,0,0,0.1); filter: grayscale(12%); transition: filter 0.8s ease, transform 0.8s ease; border-radius: 2px; }

body.topsearch-page-recruit .c-overlap-block:hover .c-overlap-block__img img { filter: grayscale(0%); }

body.topsearch-page-recruit .c-overlap-block:hover .c-overlap-block__img img { transform: scale(1.015); }

body.topsearch-page-recruit .c-overlap-block__content { width: 50%; background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(252,252,252,0.98)); padding: 72px 56px; position: relative; z-index: 2; margin-left: -8%; border-top: 1px solid var(--color-accent-gold); box-shadow: 0 20px 50px rgba(0,0,0,0.05); }

body.topsearch-page-recruit .c-overlap-block:nth-child(even) .c-overlap-block__content { margin-left: 0; margin-right: -8%; }

body.topsearch-page-recruit .c-overlap-block__title { font-family: var(--font-ja-serif); font-size: clamp(22px, 2.5vw, 28px); color: var(--color-accent-navy); margin-bottom: 32px; line-height: 1.5; font-weight: 400; letter-spacing: 0.1em; }

body.topsearch-page-recruit .c-overlap-block__text { font-size: 15px; line-height: 2.2; color: #444; letter-spacing: 0.08em; }

body.topsearch-page-recruit .c-overlap-block__title-line { display: block; }

body.topsearch-page-recruit .c-overlap-block__title--tight { font-size: clamp(20px, 2.2vw, 26px); letter-spacing: 0.06em; }

body.topsearch-page-recruit .c-overlap-block__title--tight .c-overlap-block__title-line { white-space: nowrap; }

body.topsearch-page-recruit .c-overlap-block__img--highclass img { object-position: center 42%; }

body.topsearch-page-recruit .c-overlap-block__img--insight img { object-position: center 36%; }

body.topsearch-page-recruit .c-overlap-block__img--market img { object-position: center 40%; }

@media (max-width: 991px) {

  body.topsearch-page-recruit .c-overlap-block { flex-direction: column; margin-bottom: 100px; }

  body.topsearch-page-recruit .c-overlap-block:nth-child(even) { flex-direction: column; }

  body.topsearch-page-recruit .c-overlap-block__img,
  body.topsearch-page-recruit .c-overlap-block__content { width: 100%; margin: 0; }

  body.topsearch-page-recruit .c-overlap-block__img img { aspect-ratio: 16 / 10; }

  body.topsearch-page-recruit .c-overlap-block__content { padding: 48px 32px; margin-top: -28px; }

}

body.topsearch-page-recruit .section-reason { position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #F8F9FA 0%, var(--color-base) 52%, #F8F9FA 100%); }

body.topsearch-page-recruit .section-reason::before,
body.topsearch-page-recruit .section-reason::after { content: none; }

body.topsearch-page-recruit .reason-shell { position: relative;
  padding: 0; }

body.topsearch-page-recruit .reason-shell::before { display: none; }

body.topsearch-page-recruit .section-reason .c-section-title { margin-bottom: 0; }

body.topsearch-page-recruit .reason-lead { display: block;
  margin: 0 0 clamp(36px, 5vw, 56px);
  padding: 34px 0 40px;
  border-top: 0;
  border-bottom: 1px solid rgba(7, 16, 30, 0.08); }

body.topsearch-page-recruit .reason-lead__title { font-family: var(--font-ja-serif);
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  margin: 0 0 20px; }

body.topsearch-page-recruit .reason-lead__title strong { color: var(--color-accent-gold);
  font-weight: 500; }

body.topsearch-page-recruit .reason-lead__text { font-size: 15px;
  line-height: 2.2;
  color: #455062;
  letter-spacing: 0.06em;
  max-width: 760px;
  padding-left: 22px;
  border-left: 2px solid rgba(182, 147, 82, 0.28); }

body.topsearch-page-recruit .reason-grid { display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: transparent;
  border-top: 0;
  box-shadow: none; }

body.topsearch-page-recruit .c-grid-2col { position: relative;
  display: grid;
  grid-template-columns: minmax(220px, 28%) minmax(0, 1fr);
  column-gap: clamp(34px, 6vw, 80px);
  align-items: start;
  min-height: 100%;
  margin-bottom: 0;
  padding: clamp(42px, 6vw, 64px) 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(7, 16, 30, 0.12);
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
  transition: none; }

body.topsearch-page-recruit .c-grid-2col::before { content: none; }

body.topsearch-page-recruit .c-grid-2col::after { content: none; }

body.topsearch-page-recruit .c-grid-2col:hover { background: rgba(255, 255, 255, 0.32); }

body.topsearch-page-recruit .c-grid-2col:last-child { margin-bottom: 0; }

body.topsearch-page-recruit .c-grid-2col--reason-02 { width: 100%;
  margin-left: 0; }

body.topsearch-page-recruit .c-grid-2col__left { position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  padding: 0 clamp(18px, 3vw, 34px) 0 0;
  background: transparent;
  color: var(--color-accent-navy);
  min-height: 0;
  border-bottom: 0;
  box-shadow: none;
  z-index: 2; }

body.topsearch-page-recruit .c-grid-2col__left::after { content: none; }

body.topsearch-page-recruit .c-grid-2col__eyebrow { display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0;
  font-family: var(--font-en);
  font-size: clamp(19px, 2vw, 26px);
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--color-accent-gold);
  text-transform: uppercase;
  background: transparent;
  border: 0;
  border-radius: 0; }

body.topsearch-page-recruit .c-grid-2col__eyebrow::before { content: '';
  width: 36px;
  height: 1px;
  background: var(--color-accent-gold); }

body.topsearch-page-recruit .c-grid-2col__no { display: none; }

body.topsearch-page-recruit .c-heading-large { font-family: var(--font-ja-serif); font-size: clamp(24px, 3vw, 32px); font-weight: 500; color: var(--color-accent-navy); line-height: 1.5; letter-spacing: 0.1em; margin: 0; }

body.topsearch-page-recruit .c-grid-2col__left .c-heading-large { color: var(--color-accent-navy);
  font-size: clamp(24px, 2.4vw, 30px);
  margin-top: 0;
  min-height: auto;
  display: block;
  width: 100%;
  max-width: 10.8em;
  line-height: 1.55; }

body.topsearch-page-recruit .c-heading-large--split span { display: block;
  white-space: nowrap; }

body.topsearch-page-recruit .c-grid-2col__right { display: block;
  padding: 0 0 0 clamp(18px, 3vw, 34px);
  background: transparent;
  border-left: 1px solid rgba(7, 16, 30, 0.1);
  position: relative;
  z-index: 1; }

body.topsearch-page-recruit .c-grid-2col__summary { display: inline-flex;
  align-items: center;
  gap: 12px;
  justify-self: start;
  margin-bottom: 0;
  padding: 0 0 16px;
  background: transparent;
  color: var(--color-accent-navy);
  font-family: var(--font-ja-serif);
  font-size: clamp(17px, 1.7vw, 22px);
  font-weight: 600;
  letter-spacing: 0.08em;
  border-bottom: 0;
  border-bottom: 1px solid rgba(182, 147, 82, 0.28); }

body.topsearch-page-recruit .c-grid-2col__summary::before { content: '';
  width: 8px;
  height: 8px;
  border: 1px solid rgba(182, 147, 82, 0.7);
  background: rgba(182, 147, 82, 0.16);
  border-radius: 50%; }

body.topsearch-page-recruit .c-grid-2col__body { padding-top: 24px;
  display: grid;
  gap: 16px;
  max-width: 720px; }

body.topsearch-page-recruit .c-grid-2col__lead { margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
  font-family: var(--font-ja-sans);
  font-size: 15px;
  line-height: 2.05;
  letter-spacing: 0.06em;
  color: var(--color-accent-navy);
  font-weight: 600; }

body.topsearch-page-recruit .c-grid-2col__right p { font-size: 15px; line-height: 2.05; color: #444; letter-spacing: 0.06em; margin-bottom: 0; }

body.topsearch-page-recruit .c-grid-2col__right p:last-child { margin-bottom: 0; }

body.topsearch-page-recruit .c-grid-2col__note { margin-top: 30px;
  padding: 22px 0 4px;
  border-top: 1px solid rgba(182, 147, 82, 0.34);
  border-bottom: 0;
  border-left: 0;
  background: transparent;
  color: #4f5967;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.06em;
  position: relative;
  display: block;
  text-align: left; }

body.topsearch-page-recruit .c-grid-2col__note::before { content: none; }

body.topsearch-page-recruit .c-grid-2col__note-label { display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin: 0 0 10px;
  font-family: var(--font-ja-serif);
  font-size: 15px;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  font-weight: 500; }

body.topsearch-page-recruit .c-grid-2col__note-label::before { content: '';
  width: 26px;
  height: 1px;
  background: var(--color-accent-gold);
  flex: 0 0 auto; }

body.topsearch-page-recruit .c-grid-2col__note-label::after { content: '';
  width: 26px;
  height: 1px;
  background: var(--color-accent-gold);
  flex: 0 0 auto; }

body.topsearch-page-recruit .c-grid-2col__note-text { display: block;
  color: var(--color-accent-navy);
  font-family: var(--font-ja-serif);
  font-size: clamp(15px, 1.45vw, 17px);
  line-height: 1.9;
  letter-spacing: 0.075em;
  max-width: 34em;
  margin: 0; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .c-grid-2col { display: grid;
      grid-template-columns: 1fr;
      padding: 0 !important;
      gap: 0 !important;
      margin-bottom: 0 !important; }

  body.topsearch-page-recruit .c-grid-2col::after { content: none; }

  body.topsearch-page-recruit .section-reason::after { right: -20px;
      top: 132px; }

  body.topsearch-page-recruit .c-grid-2col__left,
  body.topsearch-page-recruit .c-grid-2col__right { padding: 28px 0; }

  body.topsearch-page-recruit .reason-lead__text { padding-left: 0; }

  body.topsearch-page-recruit .c-grid-2col__left { border-right: none;
      border-bottom: 1px solid rgba(7, 16, 30, 0.07);
      height: auto;
      min-height: auto; }

  body.topsearch-page-recruit .c-grid-2col__no { display: none; }

  body.topsearch-page-recruit .c-grid-2col__left::after { content: none; }

  body.topsearch-page-recruit .c-grid-2col__note { padding: 18px 0 4px; }

  body.topsearch-page-recruit .c-grid-2col__right { border-left: 0; }

  body.topsearch-page-recruit .c-grid-2col__body { padding-top: 18px; }

  body.topsearch-page-recruit .c-grid-2col__lead { font-size: 15px;
      margin-bottom: 14px;
      padding-bottom: 14px; }

}

@media (max-width: 991px) {

  body.topsearch-page-recruit .c-grid-2col { grid-template-columns: 1fr; }

  body.topsearch-page-recruit .c-grid-2col::after { content: none; }

  body.topsearch-page-recruit .c-grid-2col__left { padding: 0 0 28px; }

  body.topsearch-page-recruit .c-grid-2col__right { padding: 28px 0 0; border-left: 0; border-top: 1px solid rgba(7, 16, 30, 0.1); }

}

body.topsearch-page-recruit .section-features { background: var(--color-base);
  position: relative;
  overflow: hidden; }

body.topsearch-page-recruit .section-features::before,
body.topsearch-page-recruit .section-features::after { content: none; }

body.topsearch-page-recruit .feature-cards-grid { display: grid;
  grid-template-columns: 1fr;
  counter-reset: feature;
  background: transparent;
  border-top: 1px solid rgba(7, 16, 30, 0.16);
  border-bottom: 1px solid rgba(7, 16, 30, 0.16); }

body.topsearch-page-recruit .feature-card-item { position: relative;
  counter-increment: feature;
  background: transparent; 
  padding: 36px clamp(20px, 4vw, 48px) 36px 0; 
  border: 0;
  border-bottom: 1px solid rgba(7, 16, 30, 0.1);
  box-shadow: none; 
  transition: background 0.35s ease; 
  display: grid; 
  grid-template-columns: minmax(82px, 0.45fr) minmax(210px, 1.05fr) minmax(0, 2fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: center;
  border-radius: 0;
  min-height: 0; }

body.topsearch-page-recruit .feature-card-item:last-child { border-bottom: 0; }

body.topsearch-page-recruit .feature-card-item:hover { transform: none; 
  box-shadow: none; 
  background: linear-gradient(90deg, rgba(182, 147, 82, 0.07), rgba(240, 240, 240, 0.2) 42%, transparent 100%); }

body.topsearch-page-recruit .feature-card-item::before { content: counter(feature, decimal-leading-zero);
  font-family: var(--font-en);
  font-size: clamp(36px, 4vw, 58px);
  line-height: 1;
  letter-spacing: 0.14em;
  color: rgba(7, 16, 30, 0.16);
  margin: 0; }

body.topsearch-page-recruit .feature-card-item::after { content: '';
  position: absolute;
  top: 50%;
  left: min(96px, 11vw);
  width: clamp(34px, 5vw, 64px);
  height: 1px;
  background: rgba(182, 147, 82, 0.55);
  transform: translateY(-50%); }

body.topsearch-page-recruit .feature-card-item__icon { display: none; }

body.topsearch-page-recruit .feature-card-item__title { font-family: var(--font-ja-serif); font-size: clamp(20px, 2.2vw, 26px); color: var(--color-accent-navy); margin: 0; font-weight: 500; line-height: 1.5; letter-spacing: 0.08em; }

body.topsearch-page-recruit .feature-card-item__text { font-size: 14px; line-height: 2.05; color: #555; letter-spacing: 0.055em; margin: 0; max-width: 46em; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .reason-lead__title { font-size: 28px; }

  body.topsearch-page-recruit .c-grid-2col { background: var(--color-base); }

  body.topsearch-page-recruit .feature-card-item { grid-template-columns: 72px 1fr;
      gap: 18px 20px;
      padding: 28px 0 !important;
      align-items: start; }

  body.topsearch-page-recruit .feature-card-item::after { top: 48px;
      left: 54px;
      width: 24px;
      transform: none; }

  body.topsearch-page-recruit .feature-card-item__text { grid-column: 1 / -1;
      padding-left: 0; }

}

body.topsearch-page-recruit .section-benefits { background-color: #F8F9FA; padding: clamp(80px, 10vw, 140px) 0; }

body.topsearch-page-recruit .c-benefits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .c-benefits-grid { grid-template-columns: 1fr; gap: 32px; }

}

body.topsearch-page-recruit .c-benefit-card { background: var(--color-base); border-radius: 0; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,0.03); transition: transform 0.4s ease; display: flex; flex-direction: column; }

body.topsearch-page-recruit .c-benefit-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.08); }

body.topsearch-page-recruit .c-benefit-card__img { width: 100%; position: relative; padding-top: 60%; overflow: hidden; }

body.topsearch-page-recruit .c-benefit-card__img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; }

body.topsearch-page-recruit .c-benefit-card--hours .c-benefit-card__img img { object-position: center 42%; }

body.topsearch-page-recruit .c-benefit-card--holiday .c-benefit-card__img img { object-position: center 46%; }

body.topsearch-page-recruit .c-benefit-card--workstyle .c-benefit-card__img img { object-position: center 52%; }

body.topsearch-page-recruit .c-benefit-card--benefits .c-benefit-card__img img { object-position: center 50%; }

body.topsearch-page-recruit .c-benefit-card:hover .c-benefit-card__img img { transform: scale(1.05); }

body.topsearch-page-recruit .c-benefit-card__content { padding: 40px; flex-grow: 1; display: flex; flex-direction: column; border-top: 3px solid var(--color-accent-gold); }

@media (max-width: 767px) {

  body.topsearch-page-recruit .c-benefit-card__content { padding: 32px 24px; }

}

body.topsearch-page-recruit .c-benefit-card__header { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }

body.topsearch-page-recruit .c-benefit-card__num { font-family: var(--font-en); font-size: 24px; font-weight: 400; color: rgba(182, 147, 82, 0.4); letter-spacing: 0.1em; }

body.topsearch-page-recruit .c-benefit-card__title { font-family: var(--font-ja-serif); font-size: 20px; color: var(--color-accent-navy); font-weight: 500; letter-spacing: 0.05em; margin: 0; }

body.topsearch-page-recruit .c-benefit-card__subtitle { font-size: 15px; font-weight: 600; color: var(--color-accent-gold); margin-bottom: 16px; }

body.topsearch-page-recruit .c-benefit-card__text { font-size: 14px; line-height: 2.0; color: #444; margin: 0; }

body.topsearch-page-recruit .c-benefit-card__list { margin: 0; padding: 0; list-style: none; }

body.topsearch-page-recruit .c-benefit-card__list li { font-size: 14px; line-height: 1.8; margin-bottom: 12px; padding-left: 1.2em; position: relative; color: #444; }

body.topsearch-page-recruit .c-benefit-card__list li::before { content: "・"; position: absolute; left: 0; top: 0; color: var(--color-accent-gold); }

body.topsearch-page-recruit .c-benefit-card__list li:last-child { margin-bottom: 0; }

body.topsearch-page-recruit .section-positions { background-color: var(--color-base); }

body.topsearch-page-recruit .position-wrapper { background: var(--color-base); border: 1px solid rgba(0,0,0,0.05); padding: clamp(40px, 8vw, 80px) clamp(20px, 5vw, 100px); box-shadow: 0 20px 60px rgba(0,0,0,0.03); }

body.topsearch-page-recruit .position-header { border-bottom: 1px solid rgba(182,147,82,0.3); padding-bottom: 40px; margin-bottom: 56px; }

body.topsearch-page-recruit .position-badge { display: inline-block; border: 1px solid var(--color-accent-gold); color: var(--color-accent-gold); font-size: 12px; padding: 6px 24px; margin-bottom: 24px; letter-spacing: 0.15em; text-transform: uppercase; font-family: var(--font-en); }

body.topsearch-page-recruit .position-title { font-size: clamp(24px, 3vw, 36px); font-family: var(--font-ja-serif); color: var(--color-accent-navy); font-weight: 400; letter-spacing: 0.1em; margin: 0; }

body.topsearch-page-recruit .position-dl { display: grid; grid-template-columns: 240px 1fr; gap: 0; margin-bottom: 64px; }

body.topsearch-page-recruit .position-dl dt { font-family: var(--font-ja-serif); font-weight: 500; color: var(--color-accent-navy); font-size: 16px; border-top: 1px solid #EAEAEA; padding: 48px 0; letter-spacing: 0.1em; }

body.topsearch-page-recruit .position-dl dd { font-size: 15px; line-height: 2.4; color: #444; border-top: 1px solid #EAEAEA; padding: 48px 0; letter-spacing: 0.08em; }

body.topsearch-page-recruit .position-dl dd strong { color: var(--color-accent-navy); font-size: 18px; font-weight: 600; display: block; margin-bottom: 8px; }

body.topsearch-page-recruit .position-dl dd .position-salary-title { margin-bottom: 2px; }

body.topsearch-page-recruit .position-dl dt:first-of-type,
body.topsearch-page-recruit .position-dl dd:first-of-type { border-top: none; padding-top: 0; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .position-dl { grid-template-columns: 1fr; }

  body.topsearch-page-recruit .position-dl dt { padding: 32px 0 16px; border-top: 1px solid #EAEAEA; }

  body.topsearch-page-recruit .position-dl dd { padding: 0 0 32px; border-top: none; }

  body.topsearch-page-recruit .position-dl dt:first-of-type { border-top: none; padding-top: 0; }

}

body.topsearch-page-recruit .position-footer { text-align: center; }

body.topsearch-page-recruit .l-footer__nav-group { display: flex !important; flex-direction: column !important; gap: 16px !important; }

body.topsearch-page-recruit a.l-footer__nav-group-title,
body.topsearch-page-recruit div.l-footer__nav-group-title { font-size: 14px !important; font-weight: 600 !important; color: var(--color-base) !important; letter-spacing: 0.1em !important; padding-bottom: 12px !important; border-bottom: 1px solid var(--color-accent-gold) !important; margin-bottom: 8px !important; text-decoration: none !important; transition: color 0.3s ease !important; display: block !important; }

body.topsearch-page-recruit .l-footer__nav-group a:not(.l-footer__nav-group-title) { font-size: 13px !important; color: rgba(255, 255, 255, 0.7) !important; letter-spacing: 0.05em !important; transition: color 0.3s ease !important; text-decoration: none !important; }

body.topsearch-page-recruit .l-footer__nav-group--links a { font-size: 14px !important; font-weight: 600 !important; color: var(--color-base) !important; padding-bottom: 12px !important; border-bottom: 1px solid rgba(255,255,255,0.1) !important; margin-bottom: 8px !important; transition: all 0.3s ease !important; }

@media (max-width: 767px) {

  body.topsearch-page-recruit .section-why .c-overlap-block__title { font-size: clamp(18px, 5.2vw, 22px) !important;
      line-height: 1.55 !important;
      letter-spacing: 0.02em !important; }

  body.topsearch-page-recruit .section-why .c-overlap-block__title-line { white-space: nowrap !important; }

  body.topsearch-page-recruit .section-reason .reason-grid { gap: 28px !important; }

  body.topsearch-page-recruit .section-reason .c-grid-2col--reason-02 { margin-top: 0 !important; }

}

body.topsearch-page-sdgs .l-header .c-btn,
body.topsearch-page-job-changer .l-header .c-btn,
body.topsearch-page-employing-company .l-header .c-btn { width: auto !important;
  padding: 12px 32px !important;
  font-size: 12px !important; }

body.topsearch-page-sdgs .l-header .c-btn--gold span,
body.topsearch-page-sdgs .l-header .c-btn--gold:hover span,
body.topsearch-page-job-changer .l-header .c-btn--gold span,
body.topsearch-page-job-changer .l-header .c-btn--gold:hover span,
body.topsearch-page-employing-company .l-header .c-btn--gold span,
body.topsearch-page-employing-company .l-header .c-btn--gold:hover span { color: var(--color-accent-navy) !important; }

body.topsearch-page-sdgs .l-mobile-menu__lang a,
body.topsearch-page-job-changer .l-mobile-menu__lang a,
body.topsearch-page-employing-company .l-mobile-menu__lang a,
body.topsearch-page-privacy .l-mobile-menu__lang a,
body.topsearch-page-contact .l-mobile-menu__lang a { opacity: 0.5; transition: opacity 0.3s ease; text-decoration: none; color: var(--color-base); }

body.topsearch-page-sdgs .l-container--small,
body.topsearch-page-job-changer .l-container--small { max-width: 800px; }

body.topsearch-page-sdgs .c-page-header { padding: 240px 5% 120px; background-color: var(--color-accent-navy); background-image: linear-gradient(rgba(10, 25, 47, 0.8), rgba(10, 25, 47, 0.9)), url('../images/headers/sdgs-header.jpg'); background-size: cover; background-position: center; background-attachment: fixed; color: var(--color-base); text-align: center; position: relative; overflow: hidden; }

body.topsearch-page-sdgs .c-page-header__title { font-family: var(--font-en); font-size: clamp(40px, 5vw, 64px); font-weight: 300; letter-spacing: 0.1em; margin-bottom: 16px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

body.topsearch-page-sdgs .c-page-header__sub,
body.topsearch-page-job-changer .c-page-header__sub,
body.topsearch-page-employing-company .c-page-header__sub { font-family: var(--font-gothic); font-size: 13px; letter-spacing: 0.15em; color: var(--color-accent-gold); text-shadow: 0 1px 2px rgba(0,0,0,0.5); }

body.topsearch-page-sdgs .c-section-title { text-align: center; margin-bottom: 64px; }

body.topsearch-page-sdgs .c-section-title__en { display: block; font-family: var(--font-en); font-size: clamp(32px, 4vw, 48px); font-weight: 300; letter-spacing: 0.05em; color: var(--color-accent-navy); margin-bottom: 16px; }

body.topsearch-page-sdgs .c-section-title__ja { display: block; font-family: var(--font-gothic); font-size: 12px; font-weight: 500; letter-spacing: 0.1em; color: var(--color-accent-gold); }

body.topsearch-page-sdgs .section-sdgs { padding: 120px 0; 
  background-color: var(--color-base); 
  position: relative; 
  overflow: hidden; }

body.topsearch-page-sdgs .section-sdgs::before { content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: 
    linear-gradient(45deg, rgba(182, 147, 82, 0.03) 25%, transparent 25%, transparent 75%, rgba(182, 147, 82, 0.03) 75%, rgba(182, 147, 82, 0.03)),
    linear-gradient(45deg, rgba(182, 147, 82, 0.03) 25%, transparent 25%, transparent 75%, rgba(182, 147, 82, 0.03) 75%, rgba(182, 147, 82, 0.03));
  background-size: 60px 60px;
  background-position: 0 0, 30px 30px;
  opacity: 0.6;
  z-index: 0;
  pointer-events: none; }

body.topsearch-page-sdgs .section-sdgs::after { content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: 
    radial-gradient(circle at 15% 15%, rgba(182, 147, 82, 0.06) 0%, transparent 40%),
    radial-gradient(circle at 85% 50%, rgba(7, 16, 30, 0.03) 0%, transparent 35%),
    radial-gradient(circle at 30% 85%, rgba(182, 147, 82, 0.05) 0%, transparent 40%);
  z-index: 0;
  pointer-events: none; }

body.topsearch-page-sdgs .section-sdgs .l-container { position: relative; z-index: 1; }

body.topsearch-page-sdgs .section-sdgs--bg { background-color: var(--color-sub-gray); }

body.topsearch-page-sdgs .c-lead,
body.topsearch-page-job-changer .c-lead,
body.topsearch-page-employing-company .c-lead { text-align: center; max-width: 800px; margin: 0 auto 80px; font-size: clamp(15px, 1.5vw, 18px); line-height: 2.2; font-family: var(--font-mincho); }

body.topsearch-page-sdgs .c-sdgs-overview { background: #fff; padding: 64px 40px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); max-width: 800px; margin: 0 auto; text-align: center;
  border-top: 2px solid var(--color-accent-gold); }

body.topsearch-page-sdgs .c-sdgs-overview__text { font-size: 15px; color: #555; line-height: 2.0; margin-bottom: 32px; }

body.topsearch-page-sdgs .c-sdgs-overview__img { max-width: 300px; margin: 0 auto; }

body.topsearch-page-sdgs .c-goal-grid { display: grid; grid-template-columns: 1fr; gap: 32px; max-width: 960px; margin: 0 auto; }

@media (min-width: 768px) {

  body.topsearch-page-sdgs .c-goal-grid { grid-template-columns: repeat(2, 1fr); }

}

body.topsearch-page-sdgs .c-goal-card { background: #fff; padding: 48px 32px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); transition: transform 0.3s ease; height: 100%; display: flex; flex-direction: column; }

body.topsearch-page-sdgs .c-goal-card:hover { transform: translateY(-8px); }

body.topsearch-page-sdgs .c-goal-card__head { display: flex; align-items: flex-start; gap: 24px; margin-bottom: 24px; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 24px; }

body.topsearch-page-sdgs .c-goal-card__icon { width: 80px; height: 80px; flex-shrink: 0; }

body.topsearch-page-sdgs .c-goal-card__icon img { width: 100%; height: 100%; object-fit: contain; }

body.topsearch-page-sdgs .c-goal-card__title-wrap { flex: 1; }

body.topsearch-page-sdgs .c-goal-card__num { font-family: var(--font-en); font-size: 14px; color: var(--color-accent-gold); letter-spacing: 0.1em; display: block; margin-bottom: 8px; }

body.topsearch-page-sdgs .c-goal-card__title { font-size: 18px; font-family: var(--font-mincho); color: var(--color-accent-navy); font-weight: 600; line-height: 1.5; }

body.topsearch-page-sdgs .c-goal-card__body { flex: 1; }

body.topsearch-page-sdgs .c-goal-card__text { font-size: 14px; color: #555; line-height: 1.8; margin-bottom: 24px; }

body.topsearch-page-sdgs .c-goal-card__list { padding-left: 20px; }

body.topsearch-page-sdgs .c-goal-card__list li { position: relative; font-size: 14px; color: #333; margin-bottom: 8px; padding-left: 4px; }

body.topsearch-page-sdgs .c-goal-card__list li::before { content: ""; position: absolute; left: -20px; top: 10px; width: 6px; height: 6px; border-radius: 50%; background-color: var(--color-accent-gold); }

body.topsearch-page-sdgs .c-action-list { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 40px; }

body.topsearch-page-sdgs .c-action-item { background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.03); border-left: 4px solid var(--color-accent-navy); }

body.topsearch-page-sdgs .c-action-item__title { font-size: 18px; font-family: var(--font-mincho); color: var(--color-accent-navy); margin-bottom: 16px; font-weight: 600; }

body.topsearch-page-sdgs .c-action-item__text { font-size: 15px; color: #555; line-height: 1.8; }

body.topsearch-page-sdgs .c-sdgs-block { display: flex;
  flex-direction: column;
  margin-bottom: clamp(80px, 12vw, 160px);
  position: relative; }

body.topsearch-page-sdgs .c-sdgs-block:last-child { margin-bottom: 0; }

@media (min-width: 992px) {

  body.topsearch-page-sdgs .c-sdgs-block { flex-direction: row;
      align-items: center; }

  body.topsearch-page-sdgs .c-sdgs-block:nth-child(even) { flex-direction: row-reverse; }

}

body.topsearch-page-sdgs .c-sdgs-block__img { width: 100%;
  position: relative;
  z-index: 1; }

@media (min-width: 992px) {

  body.topsearch-page-sdgs .c-sdgs-block__img { width: 60%;
      flex-shrink: 0; }

}

body.topsearch-page-sdgs .c-sdgs-block__img img { width: 100%;
  border-radius: 4px;
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block; }

body.topsearch-page-sdgs .c-sdgs-block__content { background: #fff;
  padding: 40px;
  position: relative;
  z-index: 2;
  margin-top: -40px;
  margin-left: 5%;
  margin-right: 5%;
  border-radius: 4px;
  box-shadow: 0 15px 35px rgba(0,0,0,0.05);
  border-top: 3px solid var(--color-accent-navy); }

@media (min-width: 992px) {

  body.topsearch-page-sdgs .c-sdgs-block__content { width: 50%;
      margin-top: 0;
      margin-left: -10%;
      margin-right: 0;
      padding: 64px 48px; }

  body.topsearch-page-sdgs .c-sdgs-block:nth-child(even) .c-sdgs-block__content { margin-left: 0;
      margin-right: -10%; }

}

body.topsearch-page-sdgs .c-sdgs-block__num { font-family: var(--font-en);
  font-size: clamp(64px, 8vw, 100px);
  color: rgba(182, 147, 82, 0.1);
  line-height: 1;
  font-weight: 300;
  position: absolute;
  top: -30px;
  right: 20px;
  z-index: 0;
  user-select: none; }

body.topsearch-page-sdgs .c-sdgs-block__title { font-family: var(--font-mincho);
  font-size: clamp(20px, 2.5vw, 28px);
  color: var(--color-accent-navy);
  line-height: 1.4;
  margin-bottom: 24px;
  position: relative;
  padding-bottom: 20px;
  z-index: 1; }

body.topsearch-page-sdgs .c-sdgs-block__title::after { content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 40px;
  height: 1px;
  background: var(--color-accent-gold); }

body.topsearch-page-sdgs .c-sdgs-block__text { font-size: 15px;
  color: #444;
  line-height: 2.0;
  position: relative;
  z-index: 1; }

body.topsearch-page-sdgs .sdgs-intro { max-width: 800px;
  margin: 0 auto 100px;
  text-align: center; }

body.topsearch-page-sdgs .sdgs-intro__catch { font-family: var(--font-mincho);
  font-size: clamp(20px, 3vw, 28px);
  color: var(--color-accent-navy);
  line-height: 1.6;
  margin-bottom: 40px; }

body.topsearch-page-sdgs .sdgs-intro__text { font-size: 15px;
  color: #555;
  line-height: 2.2;
  text-align: left; }

@media (min-width: 768px) {

  body.topsearch-page-sdgs .sdgs-intro__text { text-align: center; }

}

body.topsearch-page-sdgs .section-cta,
body.topsearch-page-job-changer .section-cta,
body.topsearch-page-employing-company .section-cta { position: relative; padding: 120px 0; background: linear-gradient(135deg, var(--color-accent-navy), #112240); color: var(--color-base); text-align: center; overflow: hidden; }

body.topsearch-page-sdgs .section-cta__inner,
body.topsearch-page-job-changer .section-cta__inner,
body.topsearch-page-employing-company .section-cta__inner { position: relative; z-index: 2; max-width: 800px; margin: 0 auto; padding: 0 5%; }

body.topsearch-page-sdgs .section-cta__text,
body.topsearch-page-job-changer .section-cta__text,
body.topsearch-page-employing-company .section-cta__text { font-size: 16px; margin-bottom: 48px; opacity: 0.8; }

body.topsearch-page-sdgs .c-btn-lg,
body.topsearch-page-job-changer .c-btn-lg,
body.topsearch-page-employing-company .c-btn-lg { display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  background: linear-gradient(135deg, #C2A467, #A88344); color: #fff; padding: 20px 64px; border-radius: 50px; font-size: 16px; font-weight: 500; letter-spacing: 0.1em;
  transition: all 0.4s ease; box-shadow: 0 10px 30px rgba(182,147,82,0.3); }

body.topsearch-page-sdgs .c-btn-lg:hover,
body.topsearch-page-job-changer .c-btn-lg:hover,
body.topsearch-page-employing-company .c-btn-lg:hover { transform: translateY(-4px); box-shadow: 0 15px 40px rgba(182,147,82,0.5); opacity: 1; }

body.topsearch-page-sdgs .l-footer,
body.topsearch-page-job-changer .l-footer,
body.topsearch-page-employing-company .l-footer { background-color: #050505; color: var(--color-base); padding: 80px 5% 40px; border-top: 1px solid rgba(182,147,82,0.3); }

@media (min-width: 768px) {

  body.topsearch-page-sdgs .l-footer__inner,
  body.topsearch-page-job-changer .l-footer__inner,
  body.topsearch-page-employing-company .l-footer__inner { flex-direction: row; justify-content: space-between; }

}

body.topsearch-page-sdgs .l-footer__info,
body.topsearch-page-job-changer .l-footer__info,
body.topsearch-page-employing-company .l-footer__info { max-width: 320px; }

body.topsearch-page-sdgs .l-footer__logo,
body.topsearch-page-job-changer .l-footer__logo,
body.topsearch-page-employing-company .l-footer__logo { font-family: var(--font-en); font-size: 24px; letter-spacing: 0.1em; margin-bottom: 24px; display: inline-block; }

body.topsearch-page-sdgs .l-footer__logo img,
body.topsearch-page-job-changer .l-footer__logo img,
body.topsearch-page-employing-company .l-footer__logo img { height: 60px !important; width: auto; }

body.topsearch-page-sdgs .l-footer__address,
body.topsearch-page-job-changer .l-footer__address,
body.topsearch-page-employing-company .l-footer__address { font-size: 13px; color: rgba(255,255,255,0.7); line-height: 2; }

body.topsearch-page-sdgs .l-footer__nav,
body.topsearch-page-job-changer .l-footer__nav,
body.topsearch-page-employing-company .l-footer__nav { display: grid; grid-template-columns: 1fr; gap: 40px; }

@media (min-width: 768px) {

  body.topsearch-page-sdgs .l-footer__nav,
  body.topsearch-page-job-changer .l-footer__nav,
  body.topsearch-page-employing-company .l-footer__nav { grid-template-columns: repeat(2, 1fr); gap: 80px; }

}

body.topsearch-page-sdgs .l-footer__nav-group-title,
body.topsearch-page-job-changer .l-footer__nav-group-title,
body.topsearch-page-employing-company .l-footer__nav-group-title { font-size: 14px; font-weight: 600; color: var(--color-accent-gold); letter-spacing: 0.1em; margin-bottom: 8px; }

body.topsearch-page-sdgs .l-footer__nav-link,
body.topsearch-page-job-changer .l-footer__nav-link,
body.topsearch-page-employing-company .l-footer__nav-link { font-size: 13px; color: rgba(255,255,255,0.7); display: inline-block; transition: color 0.3s ease; }

body.topsearch-page-sdgs .l-footer__nav-link:hover,
body.topsearch-page-job-changer .l-footer__nav-link:hover,
body.topsearch-page-employing-company .l-footer__nav-link:hover { color: var(--color-accent-gold); }

body.topsearch-page-sdgs .js-fade-up.is-visible,
body.topsearch-page-job-changer .js-fade-up.is-visible,
body.topsearch-page-employing-company .js-fade-up.is-visible { opacity: 1; transform: translateY(0); }

body.topsearch-page-sdgs .section-cta .c-section-title__en,
body.topsearch-page-privacy .section-cta .c-section-title__en,
body.topsearch-page-contact .section-cta .c-section-title__en { color: var(--color-base) !important; }

body.topsearch-page-sdgs .section-cta .c-section-title__ja,
body.topsearch-page-privacy .section-cta .c-section-title__ja,
body.topsearch-page-contact .section-cta .c-section-title__ja { color: rgba(255,255,255,0.7) !important; }

body.topsearch-page-sdgs .section-cta__text,
body.topsearch-page-privacy .section-cta__text,
body.topsearch-page-contact .section-cta__text { font-family: var(--font-mincho);
  font-size: clamp(16px, 2vw, 20px);
  margin-bottom: 48px;
  letter-spacing: 0.1em;
  opacity: 1 !important; }

body.topsearch-page-sdgs .l-footer__logo img,
body.topsearch-page-job-changer .l-footer__logo img,
body.topsearch-page-employing-company .l-footer__logo img { height: 120px !important;
  width: auto !important; }

body.topsearch-page-job-changer .c-intro-luxury { position: relative;
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: clamp(48px, 6vw, 84px) clamp(24px, 6vw, 88px);
  overflow: hidden;
  color: var(--color-base);
  background:
    linear-gradient(115deg, rgba(7, 16, 30, 0.94) 0%, rgba(9, 28, 42, 0.88) 48%, rgba(102, 77, 38, 0.72) 100%),
    url('../images/job-changer/Premium_Japanese_corporate_office_interior_with_mo-1774888418360.png');
  background-size: cover;
  background-position: center;
  box-shadow: 0 28px 70px rgba(7, 16, 30, 0.18); }

body.topsearch-page-job-changer .c-intro-luxury::before,
body.topsearch-page-employing-company .c-intro-luxury::before { content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.08), transparent 58%);
  pointer-events: none; }

body.topsearch-page-job-changer .c-intro-luxury__inner,
body.topsearch-page-employing-company .c-intro-luxury__inner { position: relative;
  max-width: 900px;
  z-index: 1; }

body.topsearch-page-job-changer .c-intro-luxury__text,
body.topsearch-page-employing-company .c-intro-luxury__text { font-family: var(--font-mincho);
  font-size: clamp(16px, 1.8vw, 20px);
  line-height: 2.05;
  color: rgba(255,255,255,0.94);
  letter-spacing: 0.06em;
  text-shadow: 0 1px 18px rgba(0,0,0,0.18); }

body.topsearch-page-job-changer .c-intro-luxury__text + .c-intro-luxury__text,
body.topsearch-page-employing-company .c-intro-luxury__text + .c-intro-luxury__text { margin-top: 18px; }

@media (max-width: 767px) {

  body.topsearch-page-job-changer .c-intro-luxury,
  body.topsearch-page-employing-company .c-intro-luxury { width: 100%;
      padding: 38px 22px; }

  body.topsearch-page-job-changer .c-intro-luxury__text,
  body.topsearch-page-employing-company .c-intro-luxury__text { font-size: 15px;
      line-height: 2.05;
      letter-spacing: 0.04em; }

}

body.topsearch-page-job-changer .c-page-header { padding: 240px 5% 120px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.8), rgba(10, 25, 47, 0.9)), url('../images/headers/job-changer-header.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; 
  position: relative; 
  overflow: hidden; }

body.topsearch-page-job-changer .c-page-header__title,
body.topsearch-page-employing-company .c-page-header__title { font-family: var(--font-mincho); font-size: clamp(32px, 4vw, 48px); font-weight: 400; letter-spacing: 0.1em; margin-bottom: 0; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

body.topsearch-page-job-changer .c-section-title__en,
body.topsearch-page-employing-company .c-section-title__en { font-family: var(--font-en, 'Cormorant Garamond', serif); font-size: clamp(36px, 4vw, 56px); font-weight: 400; letter-spacing: 0.15em; color: var(--color-accent-navy); line-height: 1.2; margin-bottom: 8px; text-transform: uppercase; display: block; }

body.topsearch-page-job-changer .c-section-title__ja,
body.topsearch-page-employing-company .c-section-title__ja { font-family: var(--font-ja-serif, 'Noto Serif JP', serif); font-size: 13px; font-weight: 400; letter-spacing: 0.2em; color: #888; display: block; }

body.topsearch-page-job-changer .c-section-title__ja::after,
body.topsearch-page-employing-company .c-section-title__ja::after { content: ''; display: block; width: 40px; height: 1px; background-color: var(--color-accent-gold); margin-top: 24px; }

body.topsearch-page-job-changer .section-job-changer { padding: 120px 0; background-color: var(--color-base); }

body.topsearch-page-job-changer .section-job-changer--bg { background-color: var(--color-sub-gray); }

body.topsearch-page-job-changer .section-intro-urban,
body.topsearch-page-employing-company .section-intro-urban { position: relative;
  overflow: hidden;
  padding: clamp(24px, 4vw, 48px) 0 clamp(130px, 16vw, 220px);
  background: linear-gradient(180deg, #ffffff 0%, #f8f8f8 100%); }

body.topsearch-page-job-changer .section-intro-urban::before { content: 'FOR JOB CHANGER   FOR JOB CHANGER   FOR JOB CHANGER   FOR JOB CHANGER';
  position: absolute;
  left: 0;
  bottom: clamp(20px, 4vw, 52px);
  z-index: 0;
  font-family: var(--font-en);
  font-size: clamp(64px, 12vw, 168px);
  line-height: 0.8;
  letter-spacing: 0.08em;
  color: rgba(7, 16, 30, 0.045);
  white-space: nowrap;
  pointer-events: none;
  animation: introWatermarkSlide 24s linear infinite;
  will-change: transform; }

body.topsearch-page-job-changer .section-intro-urban > .l-container,
body.topsearch-page-employing-company .section-intro-urban > .l-container { position: relative;
  z-index: 1; }

@media (max-width: 767px) {

  body.topsearch-page-job-changer .section-intro-urban,
  body.topsearch-page-employing-company .section-intro-urban { padding-bottom: clamp(104px, 30vw, 136px); }

  body.topsearch-page-job-changer .section-intro-urban::before,
  body.topsearch-page-employing-company .section-intro-urban::before { bottom: 24px;
      font-size: clamp(48px, 15vw, 72px);
      letter-spacing: 0.06em;
      animation-duration: 18s; }

}

body.topsearch-page-job-changer .c-feature-list { display: flex; flex-direction: column; gap: 48px; }

body.topsearch-page-job-changer .c-feature-item { background: #fff; padding: 48px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.03); display: flex; flex-direction: column; gap: 24px; }

@media (min-width: 768px) {

  body.topsearch-page-job-changer .c-feature-item { flex-direction: row; align-items: center; padding: 64px; gap: 64px; }

  body.topsearch-page-job-changer .c-feature-item:nth-child(even) { flex-direction: row-reverse; }

}

body.topsearch-page-job-changer .c-feature-item__img { flex: 1; border-radius: 4px; overflow: hidden; }

body.topsearch-page-job-changer .c-feature-item__img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }

body.topsearch-page-job-changer .c-feature-item__content { flex: 1; }

body.topsearch-page-job-changer .c-feature-item__num { font-family: var(--font-en); font-size: 40px; color: var(--color-accent-gold); line-height: 1; margin-bottom: 16px; display: block; }

body.topsearch-page-job-changer .c-feature-item__title { font-size: 20px; font-family: var(--font-mincho); margin-bottom: 16px; color: var(--color-accent-navy); }

body.topsearch-page-job-changer .c-feature-item__text { font-size: 15px; color: #555; }

body.topsearch-page-job-changer .c-flow-wrap,
body.topsearch-page-employing-company .c-flow-wrap { display: flex; flex-direction: column; gap: 0; max-width: 800px; margin: 0 auto; position: relative; }

body.topsearch-page-job-changer .c-flow-wrap::before,
body.topsearch-page-employing-company .c-flow-wrap::before { content: ""; position: absolute; left: 24px; top: 24px; bottom: 24px; width: 1px; background: var(--color-accent-gold); opacity: 0.3; }

@media (min-width: 768px) {

  body.topsearch-page-job-changer .c-flow-wrap::before,
  body.topsearch-page-employing-company .c-flow-wrap::before { left: 40px; }

}

body.topsearch-page-job-changer .c-flow-step,
body.topsearch-page-employing-company .c-flow-step { position: relative; padding: 32px 0 32px 72px; }

@media (min-width: 768px) {

  body.topsearch-page-job-changer .c-flow-step,
  body.topsearch-page-employing-company .c-flow-step { padding: 40px 0 40px 100px; }

}

body.topsearch-page-job-changer .c-flow-step__head,
body.topsearch-page-employing-company .c-flow-step__head { display: flex; align-items: center; margin-bottom: 16px; }

body.topsearch-page-job-changer .c-flow-step__num,
body.topsearch-page-employing-company .c-flow-step__num { position: absolute; left: 0; top: 32px; width: 48px; height: 48px; border-radius: 50%; background: var(--color-accent-navy); color: var(--color-accent-gold);
  display: flex; justify-content: center; align-items: center; font-family: var(--font-en); font-size: 20px; font-weight: 500; z-index: 2; }

@media (min-width: 768px) {

  body.topsearch-page-job-changer .c-flow-step__num,
  body.topsearch-page-employing-company .c-flow-step__num { width: 80px; height: 80px; font-size: 28px; top: 28px; }

}

body.topsearch-page-job-changer .c-flow-step__title,
body.topsearch-page-employing-company .c-flow-step__title { font-size: 18px; font-family: var(--font-mincho); font-weight: 600; color: var(--color-accent-navy); }

body.topsearch-page-job-changer .c-flow-step__text,
body.topsearch-page-employing-company .c-flow-step__text { font-size: 15px; color: #555; }

body.topsearch-page-job-changer .c-faq-list,
body.topsearch-page-employing-company .c-faq-list { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }

body.topsearch-page-job-changer .c-faq-item,
body.topsearch-page-employing-company .c-faq-item { border-bottom: 1px solid rgba(0,0,0,0.1); padding-bottom: 24px; }

body.topsearch-page-job-changer .c-faq-item details,
body.topsearch-page-employing-company .c-faq-item details { cursor: pointer; }

body.topsearch-page-job-changer .c-faq-item summary,
body.topsearch-page-employing-company .c-faq-item summary { list-style: none; font-size: 16px; font-weight: 500; position: relative; padding-right: 40px; font-family: var(--font-mincho); color: var(--color-accent-navy); }

body.topsearch-page-job-changer .c-faq-item summary::-webkit-details-marker,
body.topsearch-page-employing-company .c-faq-item summary::-webkit-details-marker { display: none; }

body.topsearch-page-job-changer .c-faq-item summary::after,
body.topsearch-page-employing-company .c-faq-item summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-family: var(--font-en); font-size: 24px; font-weight: 300; color: var(--color-accent-gold); transition: transform 0.3s ease; }

body.topsearch-page-job-changer .c-faq-item details[open] summary::after,
body.topsearch-page-employing-company .c-faq-item details[open] summary::after { content: "-"; transform: translateY(-50%); }

body.topsearch-page-job-changer .c-faq-item__answer,
body.topsearch-page-employing-company .c-faq-item__answer { margin-top: 16px; font-size: 15px; color: #555; line-height: 1.8; padding-left: 24px; position: relative; }

body.topsearch-page-job-changer .c-faq-item__answer::before,
body.topsearch-page-employing-company .c-faq-item__answer::before { content: "A."; position: absolute; left: 0; top: 0; font-family: var(--font-en); font-weight: 500; color: var(--color-accent-gold); }

body.topsearch-page-job-changer .section-cta .c-section-title__ja::after,
body.topsearch-page-employing-company .section-cta .c-section-title__ja::after { display: none; }

body.topsearch-page-job-changer .section-cta .c-btn,
body.topsearch-page-employing-company .section-cta .c-btn { white-space: nowrap !important;
  text-align: center !important;
  line-height: normal !important;
  width: auto !important;
  min-width: auto !important;
  max-width: none !important;
  padding: 18px 64px !important;
  letter-spacing: 0.2em !important; }

body.topsearch-page-job-changer .section-cta .c-btn span,
body.topsearch-page-employing-company .section-cta .c-btn span { display: inline-block !important;
  white-space: nowrap !important; }

@media (max-width: 767px) {

  body.topsearch-page-job-changer .section-cta .c-btn,
  body.topsearch-page-employing-company .section-cta .c-btn { width: 100% !important;
      padding: 16px 20px !important; }

  body.topsearch-page-job-changer .c-page-header__en,
  body.topsearch-page-job-changer .c-page-header__title,
  body.topsearch-page-employing-company .c-page-header__en,
  body.topsearch-page-employing-company .c-page-header__title { font-size: clamp(30px, 9vw, 40px) !important;
      line-height: 1.12 !important;
      letter-spacing: 0.08em !important;
      margin-bottom: 12px !important; }

  body.topsearch-page-job-changer .c-page-header__en,
  body.topsearch-page-job-changer .c-page-header__title,
  body.topsearch-page-employing-company .c-page-header__en,
  body.topsearch-page-employing-company .c-page-header__title { font-size: clamp(30px, 9vw, 40px) !important;
      line-height: 1.08 !important;
      letter-spacing: 0.08em !important;
      overflow-wrap: anywhere !important; }

}

body.topsearch-page-employing-company .c-intro-luxury { position: relative;
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: clamp(48px, 6vw, 84px) clamp(24px, 6vw, 88px);
  overflow: hidden;
  color: var(--color-base);
  background:
    linear-gradient(115deg, rgba(7, 16, 30, 0.94) 0%, rgba(9, 28, 42, 0.88) 48%, rgba(102, 77, 38, 0.72) 100%),
    url('../images/headers/employing-company-header.jpg');
  background-size: cover;
  background-position: center;
  box-shadow: 0 28px 70px rgba(7, 16, 30, 0.18); }

body.topsearch-page-employing-company .c-page-header { padding: 240px 5% 120px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.78), rgba(10, 25, 47, 0.88)), url('../images/headers/employing-company-header.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; 
  position: relative; 
  overflow: hidden; }

body.topsearch-page-employing-company .section-employing { padding: 120px 0; background-color: var(--color-base); }

body.topsearch-page-employing-company .section-employing--bg { background-color: var(--color-sub-gray); }

body.topsearch-page-employing-company .section-intro-urban::before { content: 'FOR CLIENTS   FOR CLIENTS   FOR CLIENTS   FOR CLIENTS';
  position: absolute;
  left: 0;
  bottom: clamp(20px, 4vw, 52px);
  z-index: 0;
  font-family: var(--font-en);
  font-size: clamp(64px, 12vw, 168px);
  line-height: 0.8;
  letter-spacing: 0.08em;
  color: rgba(7, 16, 30, 0.045);
  white-space: nowrap;
  pointer-events: none;
  animation: introWatermarkSlide 24s linear infinite;
  will-change: transform; }

body.topsearch-page-employing-company #problems.section-employing--bg { position: relative;
  overflow: hidden;
  background: var(--color-sub-gray); }

body.topsearch-page-employing-company #problems.section-employing--bg::before { content: '';
  position: absolute;
  inset: 0;
  background-image: url('../images/employing-company/urban-office-building-bg.png');
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
  filter: grayscale(0.75) contrast(1.22) brightness(1.02);
  opacity: 0.46;
  mix-blend-mode: multiply;
  pointer-events: none; }

body.topsearch-page-employing-company #problems.section-employing--bg::after { content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(240, 240, 240, 0.7), rgba(240, 240, 240, 0.42) 48%, rgba(240, 240, 240, 0.84)),
    linear-gradient(90deg, rgba(240, 240, 240, 0.9) 0%, rgba(240, 240, 240, 0.28) 52%, rgba(240, 240, 240, 0.82) 100%),
    radial-gradient(circle at 18% 18%, rgba(182, 147, 82, 0.14), transparent 32%);
  pointer-events: none; }

body.topsearch-page-employing-company #problems .l-container { position: relative;
  z-index: 1; }

body.topsearch-page-employing-company .c-problem-showcase { position: relative;
  z-index: 1;
  max-width: 1120px;
  margin: 0 auto; }

body.topsearch-page-employing-company .c-problem-statement { max-width: 980px;
  margin: calc(clamp(40px, 6vw, 80px) * -0.45) 0 clamp(34px, 5vw, 54px);
  font-family: var(--font-mincho);
  font-size: clamp(18px, 4.4vw, 52px);
  line-height: 1.42;
  letter-spacing: 0.06em;
  color: var(--color-accent-navy); }

body.topsearch-page-employing-company .c-problem-statement__line { position: relative;
  display: table;
  padding: 0 0.08em 0.06em;
  white-space: nowrap;
  z-index: 0; }

body.topsearch-page-employing-company .c-problem-statement__line + .c-problem-statement__line { margin-top: 0.08em; }

body.topsearch-page-employing-company .c-problem-statement__line::after { content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.12em;
  height: 0.42em;
  background: linear-gradient(90deg, rgba(182, 147, 82, 0.3), rgba(182, 147, 82, 0.12));
  z-index: -1; }

body.topsearch-page-employing-company .c-problem-intro { position: relative;
  margin-bottom: clamp(32px, 5vw, 56px);
  padding: clamp(28px, 4vw, 44px);
  background: #fff;
  border: 1px solid rgba(7, 16, 30, 0.08);
  border-top: 3px solid rgba(182, 147, 82, 0.68);
  box-shadow: 0 18px 46px rgba(7, 16, 30, 0.055); }

body.topsearch-page-employing-company .c-problem-intro__text { font-family: var(--font-mincho);
  font-size: clamp(15px, 1.35vw, 17px);
  line-height: 2.05;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  margin-bottom: clamp(24px, 4vw, 36px); }

body.topsearch-page-employing-company .c-problem-intro__stats { display: grid;
  grid-template-columns: 1fr;
  gap: 16px; }

@media (min-width: 960px) {

  body.topsearch-page-employing-company .c-problem-intro__stats { grid-template-columns: repeat(3, minmax(0, 1fr));
      align-items: stretch; }

}

body.topsearch-page-employing-company .c-problem-intro__stat { min-width: 0;
  padding: clamp(22px, 3vw, 28px);
  background: rgba(240, 240, 240, 0.52);
  border: 1px solid rgba(7, 16, 30, 0.07);
  box-shadow: 0 10px 28px rgba(7, 16, 30, 0.035);
  display: flex;
  flex-direction: column; }

body.topsearch-page-employing-company .c-problem-intro__stat-icon { width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  color: var(--color-accent-gold);
  background: rgba(182, 147, 82, 0.08);
  border: 1px solid rgba(182, 147, 82, 0.24); }

body.topsearch-page-employing-company .c-problem-intro__stat-label { display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.2em;
  color: var(--color-accent-gold); }

body.topsearch-page-employing-company .c-problem-intro__stat-label::before { content: '';
  width: 28px;
  height: 1px;
  background: currentColor; }

body.topsearch-page-employing-company .c-problem-intro__stat-value { display: block;
  font-family: var(--font-mincho);
  font-size: clamp(18px, 1.55vw, 20px);
  line-height: 1.55;
  color: var(--color-accent-navy);
  letter-spacing: 0.02em;
  font-weight: 600;
  min-height: 3.1em; }

body.topsearch-page-employing-company .c-problem-intro__stat-value-line { display: block;
  white-space: nowrap; }

body.topsearch-page-employing-company .c-problem-intro__stat-text { display: block;
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.8;
  color: #555; }

body.topsearch-page-employing-company .c-problem-grid { display: grid;
  grid-template-columns: 1fr;
  gap: clamp(24px, 4vw, 36px); }

body.topsearch-page-employing-company .c-problem-card { position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 0.36fr) minmax(0, 0.64fr);
  gap: clamp(24px, 4vw, 44px);
  align-items: start;
  min-height: 100%;
  padding: clamp(28px, 4vw, 44px);
  background: #fff;
  border: 1px solid rgba(7, 16, 30, 0.08);
  border-top: 3px solid rgba(182, 147, 82, 0.68);
  box-shadow: 0 18px 46px rgba(7, 16, 30, 0.055);
  transition: transform 0.35s ease, box-shadow 0.35s ease; }

body.topsearch-page-employing-company .c-problem-card > * { min-width: 0; }

body.topsearch-page-employing-company .c-problem-card::before { content: none; }

body.topsearch-page-employing-company .c-problem-card:hover { transform: translateY(-4px);
  box-shadow: 0 22px 54px rgba(7, 16, 30, 0.075); }

body.topsearch-page-employing-company .c-problem-card__summary { position: relative;
  min-height: 100%;
  padding: 0 clamp(24px, 3vw, 38px) 0 0;
  background: transparent;
  color: var(--color-main);
  border-right: 1px solid rgba(7, 16, 30, 0.08); }

body.topsearch-page-employing-company .c-problem-card__summary::after { content: none; }

body.topsearch-page-employing-company .c-problem-card__detail { padding: 0;
  background: transparent; }

body.topsearch-page-employing-company .c-problem-card__head { margin-bottom: 22px; }

body.topsearch-page-employing-company .c-problem-card__eyebrow { display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--color-accent-gold);
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.2em;
  text-transform: uppercase; }

body.topsearch-page-employing-company .c-problem-card__eyebrow::before { content: '';
  width: 30px;
  height: 1px;
  background: currentColor; }

body.topsearch-page-employing-company .c-problem-card__icon { width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
  color: var(--color-accent-gold);
  background: rgba(182, 147, 82, 0.08);
  border: 1px solid rgba(182, 147, 82, 0.24); }

body.topsearch-page-employing-company .c-problem-card__title { font-size: clamp(20px, 1.8vw, 25px);
  font-family: var(--font-mincho);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
  color: var(--color-accent-navy);
  white-space: nowrap; }

body.topsearch-page-employing-company .c-problem-card__lead { font-size: 14px;
  line-height: 1.9;
  color: #555;
  margin-bottom: 0; }

body.topsearch-page-employing-company .c-problem-card__highlights { display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: clamp(20px, 3vw, 28px);
  align-self: start; }

body.topsearch-page-employing-company .c-problem-card__highlight { position: relative;
  min-height: 0;
  padding: 16px 18px 16px 22px;
  background: rgba(240, 240, 240, 0.52);
  border: 1px solid rgba(7, 16, 30, 0.07);
  border-left: 3px solid var(--color-accent-gold);
  box-shadow: 0 10px 28px rgba(7, 16, 30, 0.035); }

body.topsearch-page-employing-company .c-problem-card__highlight:only-child { grid-column: auto; }

body.topsearch-page-employing-company .c-problem-card__highlight-num { display: block;
  margin-bottom: 6px;
  font-family: var(--font-gothic);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: var(--color-accent-navy);
  white-space: normal; }

body.topsearch-page-employing-company .c-problem-card__highlight:only-child .c-problem-card__highlight-num { font-size: 13px; }

body.topsearch-page-employing-company .c-problem-card__highlight-text { display: block;
  margin-top: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #555;
  overflow-wrap: break-word; }

body.topsearch-page-employing-company .c-problem-card__list { display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(18px, 2.6vw, 28px);
  row-gap: 14px;
  margin-top: 0;
  padding-top: 22px;
  border-top: 1px solid rgba(182, 147, 82, 0.24); }

body.topsearch-page-employing-company .c-problem-card__list li { position: relative;
  padding: 0 0 14px 22px;
  font-size: 13px;
  line-height: 1.9;
  color: #555;
  border-bottom: 1px solid rgba(7, 16, 30, 0.06);
  overflow-wrap: anywhere; }

body.topsearch-page-employing-company .c-problem-card__list li + li { padding-top: 0; }

body.topsearch-page-employing-company .c-problem-card__list li:last-child { padding-bottom: 0;
  border-bottom: 0; }

body.topsearch-page-employing-company .c-problem-card__list li::before { content: '';
  position: absolute;
  left: 0;
  top: 0.86em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent-gold); }

body.topsearch-page-employing-company .c-problem-card__list li + li::before { top: 0.86em; }

@media (max-width: 899px) {

  body.topsearch-page-employing-company .c-problem-statement { margin-top: calc(clamp(40px, 6vw, 80px) * -0.3);
      font-size: clamp(22px, 6.2vw, 34px);
      line-height: 1.55;
      letter-spacing: 0.03em; }

  body.topsearch-page-employing-company .c-problem-card { grid-template-columns: 1fr;
      row-gap: 16px;
      transform: none; }

  body.topsearch-page-employing-company .c-problem-card__summary { padding: 0 0 20px;
      border-right: 0;
      border-bottom: 1px solid rgba(7, 16, 30, 0.08); }

  body.topsearch-page-employing-company .c-problem-card::before { content: none; }

  body.topsearch-page-employing-company .c-problem-card__highlights { margin-top: 4px; }

  body.topsearch-page-employing-company .c-problem-card__list { grid-template-columns: 1fr;
      padding-top: 18px; }

  body.topsearch-page-employing-company .c-problem-card:hover { transform: none; }

}

@media (max-width: 639px) {

  body.topsearch-page-employing-company .c-problem-statement { max-width: 100%;
      font-size: clamp(20px, 5.6vw, 26px);
      margin-bottom: 32px; }

  body.topsearch-page-employing-company .c-problem-statement__line { white-space: nowrap; }

  body.topsearch-page-employing-company .c-problem-statement__line + .c-problem-statement__line { margin-top: 0.18em; }

  body.topsearch-page-employing-company .c-problem-card__highlights { grid-template-columns: 1fr; }

  body.topsearch-page-employing-company .c-problem-intro__stat-value,
  body.topsearch-page-employing-company .c-problem-card__title { font-size: 20px; }

  body.topsearch-page-employing-company .c-problem-card__title,
  body.topsearch-page-employing-company .c-problem-intro__stat-value-line { white-space: normal; }

  body.topsearch-page-employing-company .c-problem-card__highlight { min-height: 0; }

  body.topsearch-page-employing-company .c-problem-card__highlight-num,
  body.topsearch-page-employing-company .c-problem-card__highlight:only-child .c-problem-card__highlight-num { font-size: 13px; }

}

body.topsearch-page-employing-company .c-menu-list { display: flex; flex-direction: column; gap: 40px; max-width: 960px; margin: 0 auto; }

body.topsearch-page-employing-company .c-menu-item { background: #fff; border: 1px solid rgba(0,0,0,0.05); display: flex; flex-direction: column; transition: box-shadow 0.3s ease; }

@media (min-width: 768px) {

  body.topsearch-page-employing-company .c-menu-item { flex-direction: row; }

}

body.topsearch-page-employing-company .c-menu-item:hover { box-shadow: 0 15px 40px rgba(0,0,0,0.05); }

body.topsearch-page-employing-company .c-menu-item__img { width: 100%; aspect-ratio: 16/9; overflow: hidden; position: relative; }

@media (min-width: 768px) {

  body.topsearch-page-employing-company .c-menu-item__img { width: 40%; aspect-ratio: auto; }

}

body.topsearch-page-employing-company .c-menu-item__img img { width: 100%; height: 100%; object-fit: cover; }

body.topsearch-page-employing-company .c-menu-item__content { padding: 40px; display: flex; flex-direction: column; justify-content: center; flex: 1; }

body.topsearch-page-employing-company .c-menu-item__title { font-size: 20px; font-family: var(--font-mincho); margin-bottom: 16px; color: var(--color-accent-navy); }

body.topsearch-page-employing-company .c-menu-item__text { font-size: 14px; color: #555; margin-bottom: 24px; }

body.topsearch-page-employing-company .c-menu-item__link { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--color-accent-gold); letter-spacing: 0.1em; }

body.topsearch-page-employing-company .c-menu-item__link::after { content: "→"; font-family: var(--font-en); font-size: 16px; transition: transform 0.3s ease; }

body.topsearch-page-employing-company .c-menu-item:hover .c-menu-item__link::after { transform: translateX(4px); }

body.topsearch-page-privacy a { color: inherit; text-decoration: none; transition: opacity 0.3s; }

body.topsearch-page-privacy .l-container--legal { max-width: 900px; margin: 0 auto; padding: 0 5% 100px; }

@media (min-width: 1025px) {

  body.topsearch-page-privacy .l-header__dropdown-menu a { padding: 16px 24px; font-size: 15px; display: flex; justify-content: space-between; align-items: center;
      transition: background-color 0.3s ease, color 0.3s ease; font-family: var(--font-ja-sans); font-weight: 600; letter-spacing: 0.08em; }

}

body.topsearch-page-privacy .c-btn { display: inline-flex; align-items: center; justify-content: center; padding: 18px 64px; background-color: var(--color-accent-navy); color: var(--color-base); font-family: var(--font-ja-serif); font-size: 13px; font-weight: 500; letter-spacing: 0.2em; border: none; position: relative; overflow: hidden; transition: all 0.6s var(--ease-out-expo); white-space: nowrap; }

body.topsearch-page-privacy .c-btn:hover span { color: var(--color-main); }

body.topsearch-page-privacy .c-btn--gold { background: linear-gradient(135deg, #B69352 0%, #F5E2B6 25%, #C29D5D 50%, #9B783E 100%); color: var(--color-main); border: none; box-shadow: 0 4px 20px rgba(182, 147, 82, 0.25); }

body.topsearch-page-privacy .c-btn--gold span { color: var(--color-main); }

body.topsearch-page-privacy .c-btn--gold:hover span { color: var(--color-main); }

body.topsearch-page-privacy .l-mobile-menu__item { display: flex; flex-direction: row; align-items: flex-start; gap: 16px; width: 100%; border: none; }

body.topsearch-page-privacy .l-mobile-menu__parent { width: 55%; padding: 0 16px 0 0; flex-shrink: 0; display: block; font-family: var(--font-ja-sans); font-size: clamp(12px, 3.5vw, 14px); font-weight: 500; }

body.topsearch-page-privacy .l-mobile-menu__children { display: flex; flex-direction: column; gap: 20px; padding: 1px 0 0 0; width: auto; flex: 1; }

body.topsearch-page-privacy .l-mobile-menu__children a { font-family: var(--font-ja-sans); font-size: clamp(12px, 3vw, 13px); color: var(--color-base); letter-spacing: 0.05em; opacity: 0.9; line-height: 1.4; display: block; text-decoration: none; padding: 0; }

body.topsearch-page-privacy .l-mobile-menu__lang { display: flex; align-items: center; gap: 16px; font-family: var(--font-en); font-size: 16px; letter-spacing: 0.1em; margin-top: 16px; padding: 0; }

body.topsearch-page-privacy .l-mobile-menu__lang a.is-active { opacity: 1; font-weight: 500; color: var(--color-base); }

body.topsearch-page-privacy .l-mobile-menu__lang span { opacity: 0.3; color: var(--color-base); margin: 0; }

body.topsearch-page-privacy .c-page-header { padding: 160px 5% 80px; background-color: var(--color-main); background-image: linear-gradient(rgba(10, 25, 47, 0.84), rgba(10, 25, 47, 0.94)), url('../images/headers/privacy-header.jpg'); background-size: cover; background-position: center; background-attachment: fixed; color: var(--color-base);
  text-align: center; margin-bottom: 80px; }

body.topsearch-page-privacy .c-page-header__title { font-family: var(--font-en); font-size: clamp(32px, 4vw, 56px); font-weight: 300; letter-spacing: 0.1em; margin-bottom: 16px; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

body.topsearch-page-privacy .c-page-header__sub { font-family: var(--font-ja-serif); font-size: 14px; letter-spacing: 0.2em; color: var(--color-accent-gold); text-shadow: 0 1px 2px rgba(0,0,0,0.5); }

body.topsearch-page-privacy .p-legal-lead { font-size: 15px;
  line-height: 2;
  color: #444;
  margin-bottom: 64px; }

body.topsearch-page-privacy .p-legal-toc { background: var(--color-sub-gray);
  padding: 40px;
  border-radius: 8px;
  margin-bottom: 80px;
  border-top: 3px solid var(--color-accent-gold); }

body.topsearch-page-privacy .p-legal-toc__title { font-family: var(--font-ja-serif);
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 24px;
  color: var(--color-main);
  display: flex;
  align-items: center;
  gap: 12px; }

body.topsearch-page-privacy .p-legal-toc__title::before { content: '';
  display: block;
  width: 4px;
  height: 24px;
  background: var(--color-accent-gold); }

body.topsearch-page-privacy .p-legal-toc__list { display: flex;
  flex-direction: column;
  gap: 16px; }

body.topsearch-page-privacy .p-legal-toc__list a { position: relative;
  display: flex;
  align-items: flex-start;
  color: #444;
  font-size: 15px;
  font-weight: 500;
  padding-left: 20px;
  transition: color 0.3s ease;
  line-height: 1.6; }

body.topsearch-page-privacy .p-legal-toc__list a::before { content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent-gold);
  transition: transform 0.3s ease; }

body.topsearch-page-privacy .p-legal-toc__list a:hover { color: var(--color-accent-gold); opacity: 1; }

body.topsearch-page-privacy .p-legal-toc__list a:hover::before { transform: scale(1.5); }

body.topsearch-page-privacy .p-legal-section { margin-bottom: 80px;
  scroll-margin-top: 120px; }

body.topsearch-page-privacy .p-legal-section:last-of-type { margin-bottom: 0; }

body.topsearch-page-privacy .p-legal-section h2 { font-family: var(--font-ja-serif);
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 600;
  color: var(--color-main);
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid #EAEAEA;
  position: relative; }

body.topsearch-page-privacy .p-legal-section h2::after { content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 60px;
  height: 2px;
  background: var(--color-accent-gold); }

body.topsearch-page-privacy .p-legal-section p { color: #444;
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 2; }

body.topsearch-page-privacy .p-legal-section a { color: var(--color-accent-gold);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: rgba(182,147,82,0.3); }

body.topsearch-page-privacy .p-legal-section a:hover { text-decoration-color: var(--color-accent-gold); }

body.topsearch-page-privacy .p-legal-list { counter-reset: legal-counter; }

body.topsearch-page-privacy .p-legal-list li { position: relative;
  padding-left: 32px;
  margin-bottom: 16px;
  color: #444;
  font-size: 15px;
  line-height: 2; }

body.topsearch-page-privacy .p-legal-list li::before { counter-increment: legal-counter;
  content: counter(legal-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 600;
  color: var(--color-accent-gold); }

body.topsearch-page-privacy .l-footer { background-color: #050505; color: var(--color-base); padding: 80px 5% 40px; margin-top: auto; }

body.topsearch-page-privacy .l-footer__inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 48px; }

@media(min-width: 768px) {

  body.topsearch-page-privacy .l-footer__inner { flex-direction: row; justify-content: flex-start; align-items: flex-start; gap: 80px; }

}

body.topsearch-page-privacy .l-footer__nav-group-title { font-size: 14px; font-weight: 600; color: var(--color-base); letter-spacing: 0.1em; padding-bottom: 12px; border-bottom: 1px solid var(--color-accent-gold); margin-bottom: 8px; }

body.topsearch-page-privacy .l-footer__nav-group a { font-size: 13px; color: rgba(255, 255, 255, 0.7); transition: color 0.3s; }

body.topsearch-page-privacy .l-footer__bottom { max-width: 1200px; margin: 80px auto 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); text-align: center; font-size: 11px; color: rgba(255, 255, 255, 0.5); }

@media (max-width: 767px) {

  body.topsearch-page-privacy .p-legal-lead { font-size: 14px !important;
      line-height: 2.05 !important;
      letter-spacing: 0.02em !important;
      text-align: left !important;
      word-break: normal !important;
      overflow-wrap: break-word !important;
      line-break: strict !important;
      margin-bottom: 48px !important; }

}

body.topsearch-page-contact a { color: inherit; text-decoration: none; }

body.topsearch-page-contact .l-container { max-width: 800px; margin: 0 auto; padding: 0 5%; }

body.topsearch-page-contact .l-footer { background: #050505; color: #fff; padding: 100px 5% 40px; border-top: 1px solid rgba(182, 147, 82, 0.3); }

@media (min-width: 768px) {

  body.topsearch-page-contact .l-footer__inner { flex-direction: row; justify-content: space-between; align-items: flex-start; }

}

body.topsearch-page-contact .l-footer__info { flex: 1; }

body.topsearch-page-contact .l-footer__logo img { height: 100px; margin-bottom: 24px; }

@media (min-width: 768px) {

  body.topsearch-page-contact .l-footer__nav { grid-template-columns: repeat(4, 1fr); gap: 64px; flex: 2; }

}

body.topsearch-page-contact .l-footer__nav-group-title { font-family: 'Noto Sans JP', sans-serif; font-size: 16px; color: #FCFCFC; margin-bottom: 8px; padding-bottom: 12px; border-bottom: 1px solid #B69352; white-space: nowrap; }

body.topsearch-page-contact .l-footer__nav-group a { font-size: 13px; color: rgba(255, 255, 255, 0.7); letter-spacing: 0.05em; transition: color 0.3s ease; display: inline-block; text-decoration: none; white-space: nowrap; }

body.topsearch-page-contact .l-footer__nav-group a:hover { color: #B69352; }

body.topsearch-page-contact .c-page-header { padding: 160px 5% 80px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.82), rgba(10, 25, 47, 0.92)), url('../images/headers/contact-header.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: #fff; 
  text-align: center; }

body.topsearch-page-contact .c-page-header__en { font-family: var(--font-en); font-size: clamp(40px, 5vw, 64px); letter-spacing: 0.15em; margin-bottom: 16px; display: block; text-shadow: 0 2px 4px rgba(0,0,0,0.5); }

body.topsearch-page-contact .section-contact { padding: 120px 0; }

body.topsearch-page-contact .c-form-group { margin-bottom: 32px; }

body.topsearch-page-contact .c-form-label { display: block; font-weight: 500; margin-bottom: 8px; color: var(--color-accent-navy); }

body.topsearch-page-contact .c-form-label span { color: #d9534f; font-size: 12px; margin-left: 8px; }

body.topsearch-page-contact .c-form-input,
body.topsearch-page-contact .c-form-select,
body.topsearch-page-contact .c-form-textarea { width: 100%; padding: 16px; border: 1px solid #ccc; border-radius: 4px; font-family: inherit; font-size: 15px; }

body.topsearch-page-contact .c-form-textarea { height: 200px; resize: vertical; }

body.topsearch-page-contact .c-form-submit { text-align: center; margin-top: 64px; }

body.topsearch-page-contact .c-btn-submit { background: var(--color-accent-gold); color: #fff; border: none; padding: 20px 80px; font-size: 16px; font-weight: 500; letter-spacing: 0.1em; cursor: pointer; transition: opacity 0.3s; }

body.topsearch-page-contact .c-btn-submit:hover { opacity: 0.8; }

body.topsearch-page-news .l-container--small { max-width: 1120px; margin: 0 auto; padding: 0 5%; }

body.topsearch-page-news .c-page-header { padding: 200px 5% 100px; 
  background-color: var(--color-accent-navy); 
  background-image: linear-gradient(rgba(10, 25, 47, 0.78), rgba(10, 25, 47, 0.88)), url('../images/headers/news-header.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: var(--color-base); 
  text-align: center; }

body.topsearch-page-news .section-news-list,
body.topsearch-page-press .section-news-list { padding: clamp(80px, 10vw, 140px) 0; }

body.topsearch-page-news .c-news-category,
body.topsearch-page-press .c-news-category { display: flex; justify-content: center; gap: 16px; margin-bottom: 64px; flex-wrap: wrap; }

body.topsearch-page-news .c-news-category a,
body.topsearch-page-press .c-news-category a { font-size: 13px; letter-spacing: 0.1em; color: var(--color-muted); padding: 8px 24px; border: 1px solid rgba(0,0,0,0.1); border-radius: 40px; transition: all 0.3s ease; }

body.topsearch-page-news .c-news-category a:hover,
body.topsearch-page-news .c-news-category a.is-active,
body.topsearch-page-press .c-news-category a:hover,
body.topsearch-page-press .c-news-category a.is-active { background-color: var(--color-accent-navy); color: var(--color-base); border-color: var(--color-accent-navy); }

body.topsearch-page-news .c-news-grid { display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  border-top: none;
  align-items: stretch; }

@media (min-width: 768px) {

  body.topsearch-page-news .c-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

}

@media (min-width: 1024px) {

  body.topsearch-page-news .c-news-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

}

body.topsearch-page-news .c-news-item { background: var(--color-base);
  width: 100%;
  max-width: 470px;
  height: 320px;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.4s ease, opacity 0.4s ease;
  box-shadow: 0 8px 28px rgba(0,0,0,0.04);
  text-decoration: none;
  padding: 16px 16px 20px;
  border-bottom: none;
  gap: 0;
  margin: 0 auto;
  border: 1px solid rgba(7,16,30,0.06); }

body.topsearch-page-news .c-news-item:hover { box-shadow: 0 12px 32px rgba(0,0,0,0.08); opacity: 1; }

body.topsearch-page-news .c-news-item__thumb { display: block;
  width: 100%;
  height: 150px;
  position: relative;
  background-color: var(--color-sub-gray);
  border-radius: 0;
  overflow: hidden;
  line-height: 0; }

body.topsearch-page-news .c-news-item__thumb img { width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s var(--ease-out-expo);
  filter: grayscale(0%); }

body.topsearch-page-news .c-news-item__img-wrap { display: block;
  width: 100%;
  height: 100%;
  overflow: hidden; }

body.topsearch-page-news .c-news-item:hover .c-news-item__img-wrap img { transform: scale(1.05); }

body.topsearch-page-news .c-news-item__tag { position: absolute;
  left: 24px;
  bottom: 0;
  background: var(--color-accent-gold);
  color: #fff;
  font-size: 11px;
  padding: 6px 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  transform: translateY(50%);
  z-index: 2;
  border-radius: 20px;
  border: none; }

body.topsearch-page-news .c-news-item__content { padding: 12px 2px 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px; }

body.topsearch-page-news .c-news-item__meta { display: flex;
  gap: 16px;
  align-items: center;
  margin-top: auto; }

body.topsearch-page-news .c-news-item__date { font-family: var(--font-en); font-size: 15px; color: var(--color-accent-gold); letter-spacing: 0.08em; }

body.topsearch-page-news .c-news-item__title { font-family: var(--font-gothic);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
  margin-bottom: 0;
  color: var(--color-main);
  min-height: calc(1.6em * 3);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden; }

@media (max-width: 767px) {

  body.topsearch-page-news .c-news-item { max-width: none;
      height: 300px;
      padding: 14px 14px 18px; }

  body.topsearch-page-news .c-news-item__thumb { height: 140px; }

  body.topsearch-page-news .c-news-item__content { padding: 12px 2px 0; }

}

body.topsearch-page-news .c-pagination,
body.topsearch-page-press .c-pagination { display: flex; justify-content: center; gap: 16px; margin-top: 80px; }

body.topsearch-page-news .c-pagination a,
body.topsearch-page-news .c-pagination span,
body.topsearch-page-press .c-pagination a,
body.topsearch-page-press .c-pagination span { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; font-family: var(--font-en); font-size: 16px; color: var(--color-accent-navy); border: 1px solid rgba(0,0,0,0.1); border-radius: 50%; transition: all 0.3s ease; }

body.topsearch-page-news .c-pagination a:hover,
body.topsearch-page-press .c-pagination a:hover { background-color: rgba(182, 147, 82, 0.05); border-color: var(--color-accent-gold); color: var(--color-accent-gold); }

body.topsearch-page-news .c-pagination span.is-current,
body.topsearch-page-press .c-pagination span.is-current { background-color: var(--color-accent-navy); color: var(--color-base); border-color: var(--color-accent-navy); }

@media (min-width: 768px) {

  body.topsearch-page-news .l-footer__inner,
  body.topsearch-page-news-detail .l-footer__inner { flex-direction: row; justify-content: space-between; align-items: flex-start; gap: 80px; }

}

body.topsearch-page-news .l-footer__nav,
body.topsearch-page-news-detail .l-footer__nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; width: 100%; }

@media (min-width: 768px) {

  body.topsearch-page-news .l-footer__nav,
  body.topsearch-page-news-detail .l-footer__nav { grid-template-columns: repeat(4, 1fr); gap: 40px; flex: 1; }

}

body.topsearch-page-news a.l-footer__nav-group-title,
body.topsearch-page-news-detail a.l-footer__nav-group-title { font-family: var(--font-mincho); font-size: 16px; color: var(--color-base); margin-bottom: 8px; padding-bottom: 12px; border-bottom: 1px solid var(--color-accent-gold); white-space: nowrap; text-decoration: none; transition: color 0.3s ease; }

body.topsearch-page-news a.l-footer__nav-group-title:hover,
body.topsearch-page-news-detail a.l-footer__nav-group-title:hover { color: var(--color-accent-gold); }

body.topsearch-page-news .l-footer__nav-group a:not(.l-footer__nav-group-title),
body.topsearch-page-news-detail .l-footer__nav-group a:not(.l-footer__nav-group-title) { font-size: 13px; color: rgba(255,255,255,0.7); display: inline-block; transition: color 0.3s ease; white-space: nowrap; text-decoration: none; }

body.topsearch-page-news .l-footer__nav-group a:not(.l-footer__nav-group-title):hover,
body.topsearch-page-news-detail .l-footer__nav-group a:not(.l-footer__nav-group-title):hover { color: var(--color-accent-gold); }

body.topsearch-page-news .l-footer__nav-group--links a,
body.topsearch-page-news-detail .l-footer__nav-group--links a { font-family: var(--font-mincho); font-size: 16px !important; font-weight: 600 !important; color: var(--color-base) !important; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); margin-bottom: 8px; transition: all 0.3s ease; text-decoration: none; }

body.topsearch-page-news .l-footer__nav-group--links a:hover,
body.topsearch-page-news-detail .l-footer__nav-group--links a:hover { color: var(--color-accent-gold) !important; border-bottom-color: var(--color-accent-gold); }

body.topsearch-page-news .l-footer__bottom,
body.topsearch-page-news-detail .l-footer__bottom { max-width: 1200px; margin: 80px auto 0; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); }

body.topsearch-page-news .l-footer__bottom-inner,
body.topsearch-page-news-detail .l-footer__bottom-inner { display: flex; flex-direction: column; align-items: center; gap: 16px; font-size: 11px; color: rgba(255, 255, 255, 0.5); letter-spacing: 0.1em; }

@media (min-width: 768px) {

  body.topsearch-page-news .l-footer__bottom-inner,
  body.topsearch-page-news-detail .l-footer__bottom-inner { flex-direction: row; justify-content: center; }

}

body.topsearch-page-news .l-footer__privacy,
body.topsearch-page-news-detail .l-footer__privacy { color: rgba(255, 255, 255, 0.7); text-decoration: underline; text-underline-offset: 4px; transition: color 0.3s ease; font-size: 12px; }

body.topsearch-page-news .l-footer__privacy:hover,
body.topsearch-page-news-detail .l-footer__privacy:hover { color: var(--color-accent-gold); }

body.topsearch-page-news .section-cta::before,
body.topsearch-page-press .section-cta::before,
body.topsearch-page-news-detail .section-cta::before,
body.topsearch-page-press-detail .section-cta::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at center, rgba(182, 147, 82, 0.1) 0%, transparent 70%); z-index: 0; }

body.topsearch-page-news .section-cta__inner,
body.topsearch-page-press .section-cta__inner,
body.topsearch-page-news-detail .section-cta__inner,
body.topsearch-page-press-detail .section-cta__inner { position: relative; z-index: 1; max-width: 800px; margin: 0 auto; }

body.topsearch-page-news .section-cta__title,
body.topsearch-page-press .section-cta__title,
body.topsearch-page-news-detail .section-cta__title,
body.topsearch-page-press-detail .section-cta__title { font-family: var(--font-en); font-size: clamp(32px, 5vw, 56px); font-weight: 300; letter-spacing: 0.1em; margin-bottom: 16px; color: var(--color-base); }

body.topsearch-page-news .section-cta__ja,
body.topsearch-page-press .section-cta__ja,
body.topsearch-page-news-detail .section-cta__ja,
body.topsearch-page-press-detail .section-cta__ja { font-family: var(--font-mincho); font-size: 13px; letter-spacing: 0.2em; color: var(--color-accent-gold); margin-bottom: 40px; display: block; }

body.topsearch-page-news .section-cta__text,
body.topsearch-page-press .section-cta__text,
body.topsearch-page-news-detail .section-cta__text,
body.topsearch-page-press-detail .section-cta__text { font-size: 14px; line-height: 2; margin-bottom: 48px; color: rgba(255,255,255,0.8); }

body.topsearch-page-press .c-page-header { padding: 200px 5% 100px; background-color: var(--color-accent-navy); background-image: linear-gradient(rgba(10, 25, 47, 0.78), rgba(10, 25, 47, 0.88)), url('../images/headers/press-header.jpg'); background-size: cover; background-position: center; background-attachment: fixed; color: var(--color-base); text-align: center; }

body.topsearch-page-press .c-news-grid { display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  border-top: none;
  max-width: 1160px;
  margin: 0 auto;
  align-items: stretch; }

@media (min-width: 768px) {

  body.topsearch-page-press .c-news-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }

}

@media (min-width: 1024px) {

  body.topsearch-page-press .c-news-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; }

}

body.topsearch-page-press .c-press-card { background: var(--color-base);
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.4s ease;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03);
  text-decoration: none;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(7, 16, 30, 0.08); }

body.topsearch-page-press .c-press-card__thumb { width: 100%;
  aspect-ratio: 16 / 10;
  flex: 0 0 auto;
  position: relative;
  background-color: var(--color-sub-gray);
  overflow: visible; }

body.topsearch-page-press .c-press-card__img-wrap { width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  overflow: hidden; }

body.topsearch-page-press .c-press-card__thumb img { width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.8s var(--ease-out-expo); }

body.topsearch-page-press .c-press-card__tag { position: absolute;
  left: 24px;
  bottom: 0;
  background: var(--color-accent-gold);
  color: #fff;
  font-size: 11px;
  padding: 6px 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  transform: translateY(50%);
  z-index: 3;
  border-radius: 20px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.16); }

body.topsearch-page-press .c-press-card__body { padding: 22px 22px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; }

body.topsearch-page-press .c-press-card__title { font-family: var(--font-gothic);
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 600;
  line-height: 1.75;
  margin-bottom: 0;
  color: var(--color-main);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 5.25em;
  word-break: break-word; }

body.topsearch-page-news-detail .c-page-header,
body.topsearch-page-press-detail .c-page-header { padding: 200px 5% 100px; background-color: var(--color-accent-navy); color: var(--color-base); text-align: center; }

body.topsearch-page-news-detail .c-page-header__en,
body.topsearch-page-press-detail .c-page-header__en { font-family: var(--font-en); font-size: clamp(40px, 5vw, 64px); letter-spacing: 0.15em; margin-bottom: 16px; display: block; font-weight: 300; }

body.topsearch-page-news-detail .c-page-header__ja,
body.topsearch-page-press-detail .c-page-header__ja { font-family: var(--font-mincho); font-size: 14px; letter-spacing: 0.2em; color: var(--color-accent-gold); }

body.topsearch-page-news-detail .section-article-wrap,
body.topsearch-page-press-detail .section-article-wrap { background-color: var(--color-sub-gray); padding: clamp(60px, 8vw, 120px) 0; }

body.topsearch-page-news-detail .c-article-card,
body.topsearch-page-press-detail .c-article-card { background: #fff; padding: clamp(32px, 6vw, 80px); box-shadow: 0 10px 40px rgba(0,0,0,0.03); border-top: 3px solid var(--color-accent-navy); }

body.topsearch-page-news-detail .c-article-header,
body.topsearch-page-press-detail .c-article-header { text-align: center; margin-bottom: clamp(40px, 6vw, 64px); }

body.topsearch-page-news-detail .c-article-header__meta,
body.topsearch-page-press-detail .c-article-header__meta { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 24px; }

body.topsearch-page-news-detail .c-article-header__date,
body.topsearch-page-press-detail .c-article-header__date { font-family: var(--font-en); font-size: 16px; color: #888; letter-spacing: 0.1em; }

body.topsearch-page-news-detail .c-article-header__tag,
body.topsearch-page-press-detail .c-article-header__tag { font-size: 11px; padding: 6px 16px; border: 1px solid var(--color-accent-gold); color: #fff; background-color: var(--color-accent-gold); border-radius: 20px; }

body.topsearch-page-news-detail .c-article-header__title,
body.topsearch-page-press-detail .c-article-header__title { font-family: var(--font-mincho); font-size: clamp(24px, 3.5vw, 36px); color: var(--color-accent-navy); line-height: 1.6; }

body.topsearch-page-news-detail .c-article-eyecatch,
body.topsearch-page-press-detail .c-article-eyecatch { margin-bottom: clamp(40px, 6vw, 64px); overflow: hidden; }

body.topsearch-page-news-detail .c-article-eyecatch img,
body.topsearch-page-press-detail .c-article-eyecatch img { width: 100%; aspect-ratio: 16/9; object-fit: cover; filter: grayscale(20%); }

body.topsearch-page-news-detail .article-body,
body.topsearch-page-press-detail .article-body { color: var(--color-main); font-size: 15px; line-height: 2.2; letter-spacing: 0.05em; }

body.topsearch-page-news-detail .article-body h2,
body.topsearch-page-press-detail .article-body h2 { font-family: var(--font-mincho); font-size: clamp(20px, 2.5vw, 26px); color: var(--color-accent-navy); margin: 64px 0 32px; padding-bottom: 16px; border-bottom: 1px solid rgba(182, 147, 82, 0.3); position: relative; }

body.topsearch-page-news-detail .article-body h2::after,
body.topsearch-page-press-detail .article-body h2::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 60px; height: 2px; background-color: var(--color-accent-gold); }

body.topsearch-page-news-detail .article-body h2:first-child,
body.topsearch-page-press-detail .article-body h2:first-child { margin-top: 0; }

body.topsearch-page-news-detail .article-body h3,
body.topsearch-page-press-detail .article-body h3 { font-family: var(--font-mincho); font-size: clamp(18px, 2vw, 22px); color: var(--color-main); margin: 48px 0 24px; display: flex; align-items: center; gap: 12px; }

body.topsearch-page-news-detail .article-body h3::before,
body.topsearch-page-press-detail .article-body h3::before { content: ''; display: block; width: 4px; height: 20px; background-color: var(--color-accent-gold); }

body.topsearch-page-news-detail .article-body p,
body.topsearch-page-press-detail .article-body p { margin-bottom: 32px; }

body.topsearch-page-news-detail .article-body p:last-child,
body.topsearch-page-press-detail .article-body p:last-child { margin-bottom: 0; }

body.topsearch-page-news-detail .article-body img,
body.topsearch-page-press-detail .article-body img { margin: 40px 0; width: 100%; height: auto; border: 1px solid rgba(0,0,0,0.05); }

body.topsearch-page-news-detail .article-body ul,
body.topsearch-page-press-detail .article-body ul { margin: 32px 0; padding: 32px; background-color: var(--color-sub-gray); }

body.topsearch-page-news-detail .article-body ul li,
body.topsearch-page-press-detail .article-body ul li { position: relative; padding-left: 20px; margin-bottom: 16px; color: #444; }

body.topsearch-page-news-detail .article-body ul li:last-child,
body.topsearch-page-press-detail .article-body ul li:last-child { margin-bottom: 0; }

body.topsearch-page-news-detail .article-body ul li::before,
body.topsearch-page-press-detail .article-body ul li::before { content: ''; position: absolute; left: 0; top: 12px; width: 6px; height: 6px; background-color: var(--color-accent-gold); border-radius: 50%; }

body.topsearch-page-news-detail .c-article-pager,
body.topsearch-page-press-detail .c-article-pager { display: flex; justify-content: space-between; align-items: center; margin-top: 64px; }

body.topsearch-page-news-detail .c-article-pager a,
body.topsearch-page-press-detail .c-article-pager a { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--color-accent-navy); transition: opacity 0.3s ease; letter-spacing: 0.05em; font-family: var(--font-gothic); font-weight: 500; }

body.topsearch-page-news-detail .c-article-pager a:hover,
body.topsearch-page-press-detail .c-article-pager a:hover { opacity: 0.7; color: var(--color-accent-gold); }

body.topsearch-page-news-detail .c-article-pager__list,
body.topsearch-page-press-detail .c-article-pager__list { font-family: var(--font-en) !important; letter-spacing: 0.1em !important; text-transform: uppercase; font-size: 13px !important; position: relative; }

body.topsearch-page-news-detail .c-article-pager__list::after,
body.topsearch-page-press-detail .c-article-pager__list::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 1px; background-color: rgba(0,0,0,0.1); transition: background-color 0.3s ease; }

body.topsearch-page-news-detail .c-article-pager__list:hover::after,
body.topsearch-page-press-detail .c-article-pager__list:hover::after { background-color: var(--color-accent-gold); }

/* Header attribute styles moved from header.php */
.l-header__logo img {
  height: 100px;
  width: auto;
}

.l-header .c-btn--gold {
  padding: 12px 32px;
  font-size: 12px;
}

/* ===== Contact thanks page styles ===== */
body.topsearch-page-contact-thanks .c-page-header {
  padding: 160px 5% 80px;
  background-color: var(--color-accent-navy);
  background-image: linear-gradient(rgba(10, 25, 47, 0.8), rgba(10, 25, 47, 0.9)), url('../images/headers/thanks-header-local.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: #fff;
  text-align: center;
}

body.topsearch-page-contact-thanks .c-page-header__en {
  font-family: var(--font-en);
  font-size: clamp(40px, 5vw, 64px);
  letter-spacing: 0.15em;
  margin-bottom: 16px;
  display: block;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

body.topsearch-page-contact-thanks .c-page-header__ja {
  font-family: var(--font-mincho);
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--color-accent-gold);
  text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}

@media (max-width: 767px) {
  body.topsearch-page-contact-thanks .c-page-header {
    min-height: 0 !important;
    padding: 128px 20px 64px !important;
    background-attachment: scroll !important;
  }

  body.topsearch-page-contact-thanks .c-page-header__en {
    font-size: clamp(34px, 11vw, 44px) !important;
    line-height: 1.12 !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 12px !important;
  }

  body.topsearch-page-contact-thanks .c-page-header__ja {
    font-size: 12px !important;
    line-height: 1.7 !important;
    letter-spacing: 0.14em !important;
  }
}

body.topsearch-page-contact-thanks .section-contact,
body.topsearch-page-contact-thanks .section-contact--thanks {
  padding: 120px 0;
  text-align: center;
}

body.topsearch-page-contact-thanks .section-contact__thanks-title {
  font-family: var(--font-mincho);
  font-size: 24px;
  color: var(--color-accent-navy);
  margin-bottom: 24px;
}

body.topsearch-page-contact-thanks .section-contact__thanks-text {
  margin-bottom: 48px;
  line-height: 2;
}

body.topsearch-page-contact-thanks .c-btn-submit,
body.topsearch-page-contact-thanks .c-btn-submit--thanks {
  display: inline-block;
  padding: 16px 64px;
  text-decoration: none;
  border-radius: 4px;
  background: var(--color-accent-gold);
  color: #fff;
  border: none;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: opacity 0.3s;
}

body.topsearch-page-contact-thanks .c-btn-submit:hover,
body.topsearch-page-contact-thanks .c-btn-submit--thanks:hover {
  opacity: 0.8;
}


/* English top service layout refinements */
html[lang="en"] {
  hyphens: auto;
}

html[lang="en"] .section-service .c-service-block {
  align-items: stretch;
}

html[lang="en"] .section-service .c-service-block__content,
html[lang="en"] .section-service .c-service-block__image {
  min-width: 0;
}

html[lang="en"] .section-service .c-service-block__title {
  font-size: clamp(20px, 1.85vw, 24px);
  line-height: 1.28;
  letter-spacing: 0.04em;
  white-space: normal;
  overflow-wrap: break-word;
}

html[lang="en"] .section-service .c-service-block__desc {
  overflow-wrap: break-word;
}

@media (min-width: 768px) {
  html[lang="en"] .section-service .c-service-block {
    gap: 48px;
  }

  html[lang="en"] .section-service .c-service-block__content {
    width: 36%;
    flex-shrink: 0;
  }

  html[lang="en"] .section-service .c-service-block__image {
    width: 52%;
    aspect-ratio: 1 / 1.02;
    flex-shrink: 0;
  }
}

@media (min-width: 992px) {
  html[lang="en"] .section-service__left {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    width: 320px !important;
    flex-shrink: 0 !important;
    background-color: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  html[lang="en"] .section-service__sticky {
    position: sticky !important;
    top: 140px !important;
  }
}

@media (max-width: 767px) {
  html[lang="en"] .section-service .c-service-block__image {
    aspect-ratio: 16/9;
  }
}



/* English top about catch underline */
html[lang="en"] .section-about__catch--en {
  font-size: clamp(34px, 3.9vw, 56px);
  line-height: 1.55;
  letter-spacing: 0.02em;
}

html[lang="en"] .section-about__catch--en .section-about__catch-line {
  display: inline;
  width: auto;
  padding: 0 0.08em 0.08em;
  background-image: linear-gradient(transparent 52%, rgba(182, 147, 82, 0.48) 52%, rgba(182, 147, 82, 0.48) 86%, transparent 86%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

@media (max-width: 767px) {
  html[lang="en"] .section-about__catch--en {
    font-size: clamp(23px, 5.8vw, 28px) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.01em !important;
  }
}


/*# sourceMappingURL=style.css.map */
