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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%; }

body {
  overflow-x: hidden;
  line-height: 1.8; }

img,
video,
svg {
  display: block;
  max-width: 100%;
  height: auto; }

a {
  text-decoration: none; }

ul,
ol {
  list-style: none; }

button {
  cursor: pointer;
  border: none;
  background-color: transparent; }

input,
textarea,
select {
  -webkit-appearance: none;
  appearance: none; }

table {
  border-collapse: collapse; }

address {
  font-style: normal; }

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important; } }
body {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  color: #333333; }

.t-hero {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.875rem, 5vw, 3.5rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.08em; }

.t-en-label {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #CC2222; }

.t-section {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5; }

.t-body {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #666666; }

:focus-visible {
  outline: 0.125rem solid #CC2222;
  outline-offset: 0.1875rem; }

.inner {
  width: 100%;
  max-width: calc(75rem + 3rem * 2);
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem; }
  @media (min-width: 768px) {
    .inner {
      padding-right: 2rem;
      padding-left: 2rem; } }
  @media (min-width: 1024px) {
    .inner {
      padding-right: 3rem;
      padding-left: 3rem; } }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: #FFFFFF;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .site-header.is-scrolled {
    box-shadow: 0 0.125rem 1rem rgba(0, 0, 0, 0.1);
    border-bottom-color: transparent; }
  .site-header.is-hidden {
    transform: translateY(-100%);
    opacity: 0; }

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4.5rem; }
  @media (min-width: 1024px) {
    .site-header__inner {
      height: 5rem; } }

.site-header__logo {
  position: relative;
  z-index: 1; }
  .site-header__logo:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .site-header__logo:hover {
      opacity: 0.8; } }

.site-header__logo-wrap {
  width: 8.75rem;
  flex-shrink: 0; }
  @media (min-width: 1024px) {
    .site-header__logo-wrap {
      width: 10rem; } }

.site-header__nav {
  display: none; }
  @media (min-width: 1024px) {
    .site-header__nav {
      display: block;
      margin-left: auto; } }

.site-header__nav-list {
  display: flex;
  gap: 0; }

.site-header__nav-item {
  position: relative; }
  .site-header__nav-item.has-mega:hover > .mega-menu, .site-header__nav-item.has-mega:focus-within > .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0); }

.site-header__nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 1.25rem;
  color: #333333;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .site-header__nav-link:hover {
      color: #CC2222; } }
  .site-header__nav-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }

.site-header__nav-en {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #CC2222;
  line-height: 1; }

.site-header__nav-ja {
  margin-top: 0.3125rem;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  line-height: 1; }

.site-header__contact-btn {
  display: none; }
  @media (min-width: 1024px) {
    .site-header__contact-btn {
      display: flex;
      align-items: center;
      padding: 0.625rem 1.375rem;
      margin-left: 1rem;
      border: 0.0625rem solid #CC2222;
      border-radius: 0.125rem;
      color: #CC2222;
      font-size: 0.8125rem;
      letter-spacing: 0.1em;
      transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); } }
  @media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
    .site-header__contact-btn:hover {
      background-color: #CC2222;
      color: #FFFFFF; } }
  @media (min-width: 1024px) {
      .site-header__contact-btn:focus-visible {
        outline: 0.125rem solid #CC2222;
        outline-offset: 0.1875rem; } }

.mega-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(0.5rem);
  width: max-content;
  min-width: 26rem;
  padding-top: 0.5rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.mega-menu__inner {
  padding: 2rem;
  background-color: #FFFFFF;
  border-top: 0.1875rem solid #CC2222;
  box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.12);
  display: flex;
  gap: 2rem; }

.mega-menu__photo-wrap {
  width: 10rem;
  flex-shrink: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden; }
  .mega-menu__photo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.mega-menu__content {
  flex: 1; }

.mega-menu__en {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #CC2222; }

.mega-menu__title {
  margin-top: 0.375rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.0625rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em; }

.mega-menu__desc {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  color: #666666;
  letter-spacing: 0.03em; }

.mega-menu__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }
  .mega-menu__links a {
    font-size: 0.8125rem;
    color: #666666;
    letter-spacing: 0.05em;
    transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .mega-menu__links a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
    @media (hover: hover) and (pointer: fine) {
      .mega-menu__links a:hover {
        color: #CC2222; } }

.site-header__menu-btn {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.75rem;
  z-index: 201; }
  .site-header__menu-btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (min-width: 1024px) {
    .site-header__menu-btn {
      display: none; } }

.site-header__menu-btn-line {
  display: block;
  width: 1.5rem;
  height: 0.125rem;
  background-color: #333333;
  border-radius: 0.0625rem;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: center; }

.site-header__menu-btn[aria-expanded='true'] .site-header__menu-btn-line:nth-child(1) {
  transform: translateY(0.4375rem) rotate(45deg); }
.site-header__menu-btn[aria-expanded='true'] .site-header__menu-btn-line:nth-child(2) {
  opacity: 0; }
.site-header__menu-btn[aria-expanded='true'] .site-header__menu-btn-line:nth-child(3) {
  transform: translateY(-0.4375rem) rotate(-45deg); }

.sp-menu {
  position: fixed;
  inset: 0;
  z-index: 200;
  background-color: #FFFFFF;
  overflow-y: auto;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sp-menu.is-open {
    pointer-events: auto;
    opacity: 1; }

.sp-menu__inner {
  padding-top: 6rem;
  padding-bottom: 3rem;
  padding-right: 1.25rem;
  padding-left: 1.25rem; }
  @media (min-width: 768px) {
    .sp-menu__inner {
      padding-right: 2rem;
      padding-left: 2rem; } }

.sp-menu__list {
  display: flex;
  flex-direction: column; }

.sp-menu__item {
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.08); }
  .sp-menu__item:first-child {
    border-top: 0.0625rem solid rgba(0, 0, 0, 0.08); }

.sp-menu__parent-btn {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  color: #333333;
  text-align: left; }
  .sp-menu__parent-btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }

.sp-menu__en {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #CC2222;
  min-width: 4.5rem; }

.sp-menu__ja {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  letter-spacing: 0.05em; }

.sp-menu__arrow {
  margin-left: auto;
  width: 0.5rem;
  height: 0.5rem;
  border-right: 0.0625rem solid #CC2222;
  border-bottom: 0.0625rem solid #CC2222;
  transform: rotate(45deg);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.sp-menu__parent-btn[aria-expanded='true'] .sp-menu__arrow {
  transform: rotate(-135deg); }

.sp-menu__children {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sp-menu__children.is-open {
    max-height: 25rem; }

.sp-menu__child-link {
  display: block;
  padding: 0.75rem 0 0.75rem 5.5rem;
  font-size: 0.875rem;
  color: #666666;
  letter-spacing: 0.05em;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sp-menu__child-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .sp-menu__child-link:hover {
      color: #CC2222; } }

.sp-menu__link {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  color: #333333; }
  .sp-menu__link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }

.sp-menu__contact {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.sp-menu__contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 1rem;
  background-color: #CC2222;
  color: #FFFFFF;
  font-weight: 500;
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  border-radius: 0.125rem; }
  .sp-menu__contact-btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }

.hero-logo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 8;
  background-color: #FFFFFF;
  border-bottom-right-radius: 0.75rem;
  padding: 1.125rem 2rem 1rem 1.5rem; }
  .hero-logo a {
    display: block;
    line-height: 0; }
    .hero-logo a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
  .hero-logo img {
    width: 8.5rem; }

.hero-nav {
  position: fixed;
  top: 1.375rem;
  right: 1.375rem;
  z-index: 100;
  display: none;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (min-width: 1024px) {
    .hero-nav {
      display: block; } }

.hero-nav__list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: stretch; }

.hero-nav__link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  background-color: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 0.0625rem solid rgba(255, 255, 255, 0.22);
  color: #FFFFFF;
  white-space: nowrap;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .hero-nav__link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .hero-nav__link:hover {
      background-color: #CC2222;
      border-color: #CC2222;
      color: #FFFFFF; } }
  .hero-nav__item.is-active .hero-nav__link {
    background-color: #CC2222;
    border-color: #CC2222;
    color: #FFFFFF; }

.hero-nav.is-fixed .hero-nav__link {
  background-color: rgba(232, 232, 232, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: rgba(0, 0, 0, 0.1);
  color: #333333; }
  @media (hover: hover) and (pointer: fine) {
    .hero-nav.is-fixed .hero-nav__link:hover {
      background-color: #CC2222;
      border-color: #CC2222;
      color: #FFFFFF; } }
.hero-nav.is-fixed .hero-nav__item.is-active .hero-nav__link {
  background-color: #CC2222;
  border-color: #CC2222;
  color: #FFFFFF; }

.hero-hamburger {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 201;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background-color: #CC2222;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3125rem;
  cursor: pointer;
  border: none;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .hero-hamburger:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (min-width: 1024px) {
    .hero-hamburger {
      display: none; } }
  @media (hover: hover) and (pointer: fine) {
    .hero-hamburger:hover {
      transform: scale(1.08);
      background-color: #E85555; } }
  .hero-hamburger[aria-expanded='true'] .hero-hamburger__line:nth-child(1) {
    transform: translateY(0.375rem) rotate(45deg); }
  .hero-hamburger[aria-expanded='true'] .hero-hamburger__line:nth-child(2) {
    opacity: 0; }
  .hero-hamburger[aria-expanded='true'] .hero-hamburger__line:nth-child(3) {
    transform: translateY(-0.375rem) rotate(-45deg); }

.hero-hamburger__line {
  display: block;
  width: 1.125rem;
  height: 0.0625rem;
  background-color: #FFFFFF;
  border-radius: 0.0625rem;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.site-footer {
  position: relative;
  background-color: transparent;
  padding: 0 0.75rem 0.75rem; }

.site-footer__card {
  position: relative;
  background-color: #E8E8E8;
  border: 0.0625rem solid rgba(0, 0, 0, 0.08);
  border-radius: 0.75rem;
  overflow: hidden; }

.site-footer__denki-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1.25rem;
  overflow: hidden; }
  .site-footer__denki-line svg {
    width: 100%;
    height: 100%; }

.site-footer__inner {
  padding-top: 4rem;
  padding-bottom: 1.5rem; }

.site-footer__top {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }
  @media (min-width: 1024px) {
    .site-footer__top {
      flex-direction: row;
      align-items: flex-start;
      gap: 5rem; } }

.site-footer__brand {
  flex-shrink: 0; }

.site-footer__logo {
  display: block; }
  .site-footer__logo:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .site-footer__logo:hover {
      opacity: 0.75; } }

.site-footer__logo-wrap {
  width: 9rem;
  background: #FFFFFF;
  border-radius: 0.25rem;
  padding: 0.3rem 0.5rem; }

.site-footer__address {
  margin-top: 1.25rem;
  font-size: 0.8125rem;
  color: #666666;
  line-height: 2;
  letter-spacing: 0.03em; }
  .site-footer__address a {
    color: inherit;
    transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .site-footer__address a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
    @media (hover: hover) and (pointer: fine) {
      .site-footer__address a:hover {
        color: #CC2222; } }

.site-footer__nav {
  flex: 1; }

.site-footer__nav-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem 2rem; }
  @media (min-width: 768px) {
    .site-footer__nav-list {
      grid-template-columns: repeat(3, 1fr); } }
  @media (min-width: 1024px) {
    .site-footer__nav-list {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem 2rem; } }

.site-footer__nav-list > li > a {
  font-size: 0.875rem;
  color: #333333;
  letter-spacing: 0.05em;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .site-footer__nav-list > li > a:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .site-footer__nav-list > li > a:hover {
      color: #CC2222; } }

.site-footer__bottom {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 0.0625rem solid rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }
  @media (min-width: 1024px) {
    .site-footer__bottom {
      flex-direction: row;
      align-items: center;
      justify-content: space-between; } }

.site-footer__sub-nav {
  display: flex;
  gap: 1.5rem; }
  .site-footer__sub-nav a {
    font-size: 0.75rem;
    color: #666666;
    letter-spacing: 0.05em;
    transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .site-footer__sub-nav a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
    @media (hover: hover) and (pointer: fine) {
      .site-footer__sub-nav a:hover {
        color: #CC2222; } }

.site-footer__copy small {
  font-size: 0.6875rem;
  color: #666666;
  letter-spacing: 0.05em; }

.site-footer__pagetop {
  position: absolute;
  right: 1.25rem;
  bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: #666666;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .site-footer__pagetop:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (min-width: 768px) {
    .site-footer__pagetop {
      right: 2rem; } }
  @media (min-width: 1024px) {
    .site-footer__pagetop {
      right: 3rem; } }
  @media (hover: hover) and (pointer: fine) {
    .site-footer__pagetop:hover {
      color: #CC2222;
      transform: translateY(-0.25rem); } }

.site-footer__pagetop-line {
  display: block;
  width: 0.0625rem;
  height: 2.5rem;
  background-color: currentColor;
  position: relative;
  overflow: hidden; }
  .site-footer__pagetop-line::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #CC2222;
    animation: pagetop-line 2s cubic-bezier(0.76, 0, 0.24, 1) infinite; }

@keyframes pagetop-line {
  0% {
    transform: translateY(0); }
  100% {
    transform: translateY(200%); } }
.site-footer__pagetop-text {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase; }

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.5rem;
  background-color: #CC2222;
  color: #E8E8E8;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  border-radius: 0.125rem;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .btn-primary:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .btn-primary span {
    position: relative;
    display: inline-block; }
  @media (hover: hover) and (pointer: fine) {
    .btn-primary:hover {
      background-color: #E85555;
      transform: translateY(-0.125rem); } }

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 2rem;
  border: 0.0625rem solid rgba(51, 51, 51, 0.3);
  color: #333333;
  font-size: 0.875rem;
  letter-spacing: 0.12em;
  border-radius: 0.125rem;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .btn-outline:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .btn-outline span {
    position: relative; }
  .btn-outline::after {
    content: '';
    display: block;
    width: 1.5rem;
    height: 0.0625rem;
    background-color: #CC2222;
    transition: width 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .btn-outline:hover {
      border-color: #CC2222;
      color: #CC2222;
      transform: translateY(-0.125rem); }
      .btn-outline:hover::after {
        width: 2rem; } }
  .btn-outline.is-dark {
    border-color: rgba(51, 51, 51, 0.3);
    color: #333333; }
    @media (hover: hover) and (pointer: fine) {
      .btn-outline.is-dark:hover {
        border-color: #CC2222;
        color: #CC2222; } }

.btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  border: 0.0625rem solid #FFFFFF;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .btn-cta:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .btn-cta span {
    position: relative; }
  @media (hover: hover) and (pointer: fine) {
    .btn-cta:hover {
      background-color: #FFFFFF;
      color: #E8E8E8; } }

.sec-heading--center {
  text-align: center; }

.sec-heading__en {
  display: block;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #CC2222; }

.sec-heading__ja {
  display: block;
  margin-top: 0.5rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.4;
  color: #333333; }

.sec-heading__line {
  display: block;
  width: 2rem;
  height: 0.0625rem;
  margin-top: 1.25rem;
  background-color: #CC2222; }
  .sec-heading--center .sec-heading__line {
    margin-right: auto;
    margin-left: auto; }

.denki-line {
  position: relative;
  overflow: hidden; }
  .denki-line svg {
    width: 100%;
    display: block; }

.denki-line__glow {
  animation: denki-pulse 3s cubic-bezier(0.76, 0, 0.24, 1) infinite; }

.denki-line__glow:nth-child(2) {
  animation-delay: 0.6s; }

.denki-line__glow:nth-child(3) {
  animation-delay: 1.2s; }

@keyframes denki-pulse {
  0%,
  100% {
    opacity: 0;
    r: 2px; }
  50% {
    opacity: 0.8;
    r: 4px; } }
.denki-sweep {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0.25rem;
  pointer-events: none;
  z-index: 5;
  opacity: 0; }
  .denki-sweep.is-sweeping {
    animation: denki-sweep-run 1.2s cubic-bezier(0.76, 0, 0.24, 1) forwards; }

@keyframes denki-sweep-run {
  0% {
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center; }
  20% {
    opacity: 1; }
  80% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scaleX(1);
    transform-origin: left center; } }
.video-embed {
  position: relative;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: #222222; }

.video-embed__btn {
  display: block;
  width: 100%;
  position: relative;
  aspect-ratio: 16 / 9;
  cursor: pointer;
  border: none;
  padding: 0;
  background-color: #222222; }
  .video-embed__btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .video-embed__btn img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.video-embed__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  background-color: rgba(204, 34, 34, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none; }
  .video-embed__play::after {
    content: '';
    margin-left: 0.25rem;
    border-style: solid;
    border-width: 0.75rem 0 0.75rem 1.25rem;
    border-color: transparent transparent transparent #FFFFFF; }

.video-embed__frame {
  aspect-ratio: 16 / 9; }
  .video-embed__frame iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block; }

.tabs__nav {
  display: flex;
  gap: 0.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.tabs__tab {
  flex: 1;
  padding: 1rem 1rem;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: #666666;
  background: none;
  border: none;
  border-bottom: 0.125rem solid transparent;
  margin-bottom: -0.0625rem;
  cursor: pointer;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .tabs__tab:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .tabs__tab:hover {
      color: #333333; } }
  .tabs__tab.is-active {
    color: #CC2222;
    border-bottom-color: #CC2222; }

.tabs__panel {
  display: none; }
  .tabs__panel.is-active {
    display: block; }

.accordion {
  border: 0.0625rem solid rgba(0, 0, 0, 0.08);
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: #FFFFFF; }

.accordion__item {
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.08); }
  .accordion__item:last-child {
    border-bottom: none; }

.accordion__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  text-align: left;
  color: #333333;
  background: none;
  border: none;
  cursor: pointer; }
  .accordion__btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .accordion__btn::after {
    content: '';
    flex-shrink: 0;
    width: 0.625rem;
    height: 0.625rem;
    border-right: 0.125rem solid #CC2222;
    border-bottom: 0.125rem solid #CC2222;
    transform: rotate(45deg);
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .accordion__btn[aria-expanded='true']::after {
    transform: rotate(-135deg); }

.accordion__panel {
  display: none;
  padding: 0 1.5rem; }
  .accordion__panel.is-open {
    display: block;
    padding: 0 1.5rem 1.5rem; }

.loading {
  position: fixed;
  inset: 0;
  z-index: 400;
  background-color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  animation: loading-fallback-hide 0.5s cubic-bezier(0.22, 1, 0.36, 1) 3s forwards; }
  .loading.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    animation: none; }

@keyframes loading-fallback-hide {
  from {
    opacity: 1;
    visibility: visible; }
  to {
    opacity: 0;
    visibility: hidden;
    pointer-events: none; } }
.loading__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem; }

.loading__logo {
  width: 10rem;
  opacity: 0;
  transform: translateY(0.5rem);
  animation: loading-logo-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards; }

@keyframes loading-logo-in {
  to {
    opacity: 1;
    transform: translateY(0); } }
.loading__line {
  width: 18rem;
  height: 0.125rem;
  background-color: rgba(204, 34, 34, 0.15);
  position: relative;
  overflow: hidden;
  border-radius: 0.0625rem; }
  .loading__line::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent 0%, #CC2222 40%, #E85555 60%, transparent 100%);
    animation: loading-line-run 1s cubic-bezier(0.76, 0, 0.24, 1) 0.5s forwards; }

@keyframes loading-line-run {
  0% {
    left: -100%; }
  100% {
    left: 100%; } }
.loading__dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.75rem; }

.loading__dot {
  width: 0.3125rem;
  height: 0.3125rem;
  border-radius: 50%;
  background-color: rgba(204, 34, 34, 0.3);
  animation: loading-dot-pulse 1.2s cubic-bezier(0.76, 0, 0.24, 1) infinite; }
  .loading__dot:nth-child(2) {
    animation-delay: 0.2s; }
  .loading__dot:nth-child(3) {
    animation-delay: 0.4s; }

@keyframes loading-dot-pulse {
  0%,
  80%,
  100% {
    transform: scale(0.6);
    opacity: 0.3; }
  40% {
    transform: scale(1);
    opacity: 1;
    background-color: #CC2222; } }
.page-transition {
  position: fixed;
  inset: 0;
  z-index: 300;
  pointer-events: none;
  background-color: #F2F2F2;
  transform: scaleX(0);
  transform-origin: left center; }

.page-transition.is-entering {
  animation: page-trans-in 0.8s cubic-bezier(0.76, 0, 0.24, 1) forwards; }

.page-transition.is-leaving {
  transform: scaleX(1);
  transform-origin: right center;
  animation: page-trans-out 0.8s cubic-bezier(0.76, 0, 0.24, 1) forwards; }

@keyframes page-trans-in {
  from {
    transform: scaleX(0);
    transform-origin: left center; }
  to {
    transform: scaleX(1);
    transform-origin: left center; } }
@keyframes page-trans-out {
  from {
    transform: scaleX(1);
    transform-origin: right center; }
  to {
    transform: scaleX(0);
    transform-origin: right center; } }
.page-transition__line {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0.125rem;
  background: linear-gradient(90deg, transparent 0%, #CC2222 20%, #E85555 50%, #CC2222 80%, transparent 100%);
  opacity: 0;
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .page-transition.is-entering .page-transition__line {
    animation: trans-line-appear 0.4s cubic-bezier(0.22, 1, 0.36, 1) 0.3s forwards; }

@keyframes trans-line-appear {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.js-reveal-item {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 0.8s; }
  .js-reveal-item.is-revealed {
    opacity: 1;
    transform: translateY(0); }

.js-reveal-item--from-left {
  opacity: 0;
  transform: translateX(-2rem); }
  .js-reveal-item--from-left.is-revealed {
    opacity: 1;
    transform: translateX(0); }

.js-reveal-item--from-right {
  opacity: 0;
  transform: translateX(2rem); }
  .js-reveal-item--from-right.is-revealed {
    opacity: 1;
    transform: translateX(0); }

.js-stagger > * {
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  transition-duration: 0.8s; }

.js-stagger.is-revealed > * {
  opacity: 1;
  transform: translateY(0); }

.hero {
  position: relative;
  margin: 0.75rem;
  height: calc(100svh - 1.5rem);
  min-height: 34rem;
  overflow: hidden;
  background-color: #222222;
  border-radius: 0.75rem; }

.hero__slides {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.hero__slide {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  opacity: 0;
  z-index: 1;
  background-size: cover;
  background-position: center; }
  .hero__slide:nth-child(1) {
    background-image: linear-gradient(160deg, #040f1d 0%, #0a1e32 40%, #0e2235 100%); }
  .hero__slide:nth-child(2) {
    background-image: linear-gradient(140deg, #060e1c 0%, #0c1d2d 50%, #172840 100%); }
  .hero__slide:nth-child(3) {
    background-image: linear-gradient(170deg, #050d1a 0%, #0b1b2c 40%, #102030 100%); }
  .hero__slide:nth-child(4) {
    background-image: linear-gradient(150deg, #060f1e 0%, #0e1f30 50%, #15283a 100%); }
  .hero__slide.is-active {
    opacity: 1;
    z-index: 2; }
  .hero__slide.is-entering {
    opacity: 1;
    z-index: 3;
    animation: slide-reveal 1.2s cubic-bezier(0.76, 0, 0.24, 1) forwards; }

@keyframes slide-reveal {
  from {
    clip-path: inset(0 100% 0 0); }
  to {
    clip-path: inset(0 0% 0 0); } }
.hero__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 4;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.55) 60%, rgba(0, 0, 0, 0.75) 100%);
  pointer-events: none; }

.hero__canvas {
  position: absolute;
  inset: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
  animation: hero-content-in 2s cubic-bezier(0.22, 1, 0.36, 1) 0.8s forwards; }

.hero__denki-sweep {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0.125rem;
  z-index: 5;
  pointer-events: none;
  overflow: hidden; }
  .hero__denki-sweep svg {
    width: 100%;
    height: 0.125rem; }

.hero__denki-sweep-inner {
  transform: translateX(-100%);
  opacity: 0; }
  .hero__denki-sweep-inner.is-sweeping {
    animation: hero-sweep 1.2s cubic-bezier(0.76, 0, 0.24, 1) forwards; }

@keyframes hero-sweep {
  0% {
    transform: translateX(-100%);
    opacity: 0; }
  15% {
    opacity: 1; }
  85% {
    opacity: 1; }
  100% {
    transform: translateX(100%);
    opacity: 0; } }
.hero__inner {
  position: relative;
  z-index: 7;
  height: 100%;
  display: flex;
  align-items: center; }

.hero__content {
  max-width: 46rem;
  padding-top: 7rem; }

.hero__label {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #CC2222;
  opacity: 0;
  animation: hero-content-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 1.5s forwards; }

.hero__catch {
  margin-top: 1.25rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #FFFFFF;
  font-size: clamp(2rem, 5vw, 3.75rem); }

.hero__catch-line {
  display: block;
  opacity: 0;
  transform: translateY(1.5rem);
  animation: hero-line-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
  .hero__catch-line:nth-child(1) {
    animation-delay: 1.7s; }
  .hero__catch-line:nth-child(2) {
    animation-delay: 1.9s; }

@keyframes hero-line-in {
  to {
    opacity: 1;
    transform: translateY(0); } }
.hero__sub {
  margin-top: 1.5rem;
  font-size: 0.9375rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.7);
  opacity: 0;
  animation: hero-content-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 2.2s forwards; }
  .hero__sub .br-sp {
    display: block; }
    @media (min-width: 768px) {
      .hero__sub .br-sp {
        display: none; } }

@keyframes hero-content-in {
  to {
    opacity: 1; } }
.hero__denki-line {
  position: absolute;
  bottom: 5rem;
  left: 0;
  width: 100%;
  z-index: 7;
  pointer-events: none;
  opacity: 0;
  animation: hero-content-in 1s cubic-bezier(0.22, 1, 0.36, 1) 2.5s forwards; }
  @media (min-width: 1024px) {
    .hero__denki-line {
      bottom: 6rem; } }

.hero__scroll {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 7;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  opacity: 0;
  animation: hero-content-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 2.6s forwards; }
  @media (min-width: 1024px) {
    .hero__scroll {
      right: 3rem;
      bottom: 2rem; } }

.no-loading .hero__label {
  animation-delay: 0.2s; }
.no-loading .hero__catch-line:nth-child(1) {
  animation-delay: 0.4s; }
.no-loading .hero__catch-line:nth-child(2) {
  animation-delay: 0.6s; }
.no-loading .hero__sub {
  animation-delay: 0.8s; }
.no-loading .hero__denki-line {
  animation-delay: 1s; }
.no-loading .hero__scroll {
  animation-delay: 1.1s; }

.hero__scroll-text {
  font-size: 0.5625rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  writing-mode: vertical-rl; }

.hero__scroll-line {
  width: 0.0625rem;
  height: 3rem;
  background-color: rgba(255, 255, 255, 0.15);
  overflow: hidden;
  border-radius: 0.0625rem; }
  .hero__scroll-line span {
    display: block;
    width: 100%;
    height: 100%;
    background-color: #CC2222;
    transform-origin: top center;
    animation: scroll-line-run 2s cubic-bezier(0.76, 0, 0.24, 1) 3s infinite; }

@keyframes scroll-line-run {
  0% {
    transform: scaleY(0) translateY(-100%); }
  50% {
    transform: scaleY(1) translateY(0%); }
  100% {
    transform: scaleY(0) translateY(100%);
    transform-origin: bottom center; } }
.hero__dots {
  position: absolute;
  bottom: 2rem;
  left: 0;
  right: 0;
  z-index: 7;
  display: flex;
  gap: 0.625rem;
  justify-content: center;
  opacity: 0;
  animation: hero-content-in 0.8s cubic-bezier(0.22, 1, 0.36, 1) 2.6s forwards; }
  @media (min-width: 1024px) {
    .hero__dots {
      bottom: 2.5rem; } }

.hero__dot {
  width: 1.5rem;
  height: 0.125rem;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 0.0625rem;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), width 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .hero__dot.is-active {
    width: 2.5rem;
    background-color: #CC2222; }
  .hero__dot:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }

.sec-message {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem;
  overflow: hidden; }
  @media (min-width: 1024px) {
    .sec-message {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-message__inner {
  display: grid;
  gap: 3rem; }
  @media (min-width: 1024px) {
    .sec-message__inner {
      grid-template-columns: 1fr 1fr;
      align-items: center;
      gap: 6rem; } }

.sec-message__content {
  position: relative;
  z-index: 1; }

.sec-message__en-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #CC2222; }

.sec-message__heading {
  margin-top: 1rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3.5vw, 2.125rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.6;
  color: #333333; }

.sec-message__heading-line {
  display: block;
  overflow: hidden; }

.sec-message__body {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem; }
  .sec-message__body p {
    font-size: 0.9375rem;
    line-height: 2;
    color: #666666;
    letter-spacing: 0.04em; }

.sec-message__body + .btn-outline {
  margin-top: 2.5rem; }

.sec-message__deco {
  display: none; }
  @media (min-width: 1024px) {
    .sec-message__deco {
      display: block; } }

.sec-message__deco-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem; }

.sec-message__deco-item {
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 4 / 3; }
  .sec-message__deco-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.sec-video {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sec-video {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-video__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.sec-video__player {
  position: relative;
  width: 100%;
  max-width: 56rem;
  margin: 0 auto; }

.sec-video__thumb {
  display: block;
  width: 100%;
  position: relative; }

.sec-video__thumb-img-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: #F2F2F2; }
  .sec-video__thumb-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover; }
    .sec-video__thumb-img-wrap img[src='assets/images/video-thumb.jpg']::before {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-color: #F2F2F2; }

.sec-video__play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; }

.sec-video__iframe-wrap {
  aspect-ratio: 16 / 9;
  width: 100%; }
  .sec-video__iframe-wrap iframe {
    width: 100%;
    height: 100%;
    border: none; }

.sec-business {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sec-business {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-business__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.sec-business__list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

.sec-business__item {
  background-color: #FFFFFF;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06); }

.sec-business__sticky-wrap {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

@media (min-width: 1024px) {
  .sec-business__list {
    gap: 7rem; }

  .sec-business__item {
    position: sticky;
    top: 9rem;
    transform-origin: center top;
    will-change: transform;
    box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, 0.12); } }
.sec-business__row-link {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  padding: 2rem 1.5rem; }
  .sec-business__row-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (min-width: 1024px) {
    .sec-business__row-link {
      flex-direction: row;
      gap: 4.5rem;
      padding: 3.5rem 3.5rem;
      align-items: center; } }
  @media (hover: hover) and (pointer: fine) {
    .sec-business__row-link:hover .sec-business__row-more {
      gap: 0.875rem; } }

.sec-business__row-img {
  position: relative;
  width: 100%;
  flex-shrink: 0;
  padding-right: 1.5rem;
  padding-bottom: 1.5rem; }
  @media (min-width: 1024px) {
    .sec-business__row-img {
      width: 44%;
      padding-right: 2.5rem;
      padding-bottom: 2.5rem; } }

.sec-business__row-img-main {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0.5rem;
  background-color: #E8E8E8; }

.sec-business__row-img-sub {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 48%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0.5rem;
  border: 0.25rem solid #FFFFFF;
  box-shadow: 0 0.75rem 1.75rem rgba(0, 0, 0, 0.18); }

.sec-business__row-body {
  flex: 1;
  min-width: 0; }

.sec-business__row-num {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: #CC2222;
  letter-spacing: 0.15em; }

.sec-business__row-en {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #666666; }

.sec-business__row-title {
  margin-top: 0.75rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3vw, 2rem);
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.35; }

.sec-business__row-desc {
  margin-top: 1rem;
  font-size: 0.9375rem;
  color: #666666;
  line-height: 2;
  letter-spacing: 0.04em; }

.sec-business__row-more {
  margin-top: 1.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  color: #CC2222;
  transition: gap 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.sec-business__more {
  display: flex;
  justify-content: center; }

.sec-numbers {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sec-numbers {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-numbers__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem; }

.sec-numbers__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .sec-numbers__list {
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem; } }
  @media (min-width: 1024px) {
    .sec-numbers__list {
      gap: 2rem; } }

.num-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  text-align: center;
  padding: 2rem 1rem;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  box-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.04); }
  @media (min-width: 1024px) {
    .num-card {
      padding: 2.75rem 1.5rem; } }

.num-card__en {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #CC2222; }

.num-card__value {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 500;
  color: #333333;
  letter-spacing: -0.02em;
  line-height: 1; }

.num-card__prefix {
  font-size: 0.45em;
  margin-right: 0.1em;
  letter-spacing: 0; }

.num-card__unit {
  font-size: 0.5em;
  margin-left: 0.15em;
  letter-spacing: 0.06em; }

.num-card__note {
  font-size: 0.6875rem;
  color: rgba(102, 102, 102, 0.7);
  letter-spacing: 0.04em; }

.num-card__label {
  font-size: 0.8125rem;
  color: #666666;
  letter-spacing: 0.05em;
  line-height: 1.5; }

.num-card__note-inline {
  font-size: 0.85em;
  color: rgba(102, 102, 102, 0.6); }

.num-card--feature .num-card__value {
  font-size: clamp(2.5rem, 6vw, 3.5rem); }

.num-gauge {
  position: relative;
  width: 8.5rem;
  height: 8.5rem; }

.num-gauge__svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg); }

.num-gauge__track {
  fill: none;
  stroke: rgba(0, 0, 0, 0.08);
  stroke-width: 8; }

.num-gauge__bar {
  fill: none;
  stroke: #CC2222;
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  transition: stroke-dashoffset 1.6s cubic-bezier(0.22, 1, 0.36, 1); }

.num-gauge__center {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center; }

.num-gauge__value {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 500;
  color: #333333;
  line-height: 1;
  letter-spacing: -0.02em; }

.num-gauge__unit {
  font-size: 0.5em;
  margin-left: 0.1em;
  letter-spacing: 0.04em; }

.sec-recruit {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem;
  overflow: hidden; }
  @media (min-width: 1024px) {
    .sec-recruit {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-recruit__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem; }

.sec-recruit__header {
  display: flex;
  flex-direction: column;
  gap: 0; }
  .sec-recruit__header .sec-heading__en,
  .sec-recruit__header .sec-heading__ja,
  .sec-recruit__header .sec-heading__line {
    display: block; }

.sec-recruit__lead {
  margin-top: 1.5rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.125rem, 2.5vw, 1.5rem);
  color: #666666;
  letter-spacing: 0.05em;
  line-height: 1.6; }

.sec-recruit__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .sec-recruit__stats {
      grid-template-columns: repeat(4, 1fr);
      gap: 1.5rem; } }
  @media (min-width: 1024px) {
    .sec-recruit__stats {
      gap: 2rem; } }

.sec-recruit__interviews {
  overflow: hidden; }

.sec-recruit__interviews-ttl {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #666666;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem; }

.interview-slider__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }
  @media (min-width: 768px) {
    .interview-slider__grid {
      grid-template-columns: repeat(3, 1fr);
      gap: 2rem; } }

.interview-slider__item {
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden;
  transition: box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .interview-slider__item:hover {
      transform: translateY(-0.25rem);
      box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.1); } }

.interview-slider__img-wrap {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex-shrink: 0;
  background-color: #e0e0e0; }
  .interview-slider__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.interview-slider__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.75rem 1.5rem 2rem; }

.interview-slider__role {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #CC2222; }

.interview-slider__year {
  font-size: 0.75rem;
  color: #666666;
  letter-spacing: 0.05em; }

.interview-slider__quote {
  margin-top: 0.75rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 0.9375rem;
  line-height: 1.85;
  color: #333333;
  letter-spacing: 0.04em;
  border-left: 0.125rem solid rgba(204, 34, 34, 0.4);
  padding-left: 0.875rem; }

.interview-slider__link {
  margin-top: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: #CC2222;
  letter-spacing: 0.1em;
  transition: gap 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .interview-slider__link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .interview-slider__link::after {
    content: '→'; }
  @media (hover: hover) and (pointer: fine) {
    .interview-slider__link:hover {
      gap: 0.875rem; } }

.sec-recruit__cta {
  display: flex;
  justify-content: center; }

.sec-works {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sec-works {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-works__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.sec-works__list {
  display: grid;
  gap: 1.5rem;
  perspective: 1400px;
  perspective-origin: 50% 30%; }
  @media (min-width: 768px) {
    .sec-works__list {
      grid-template-columns: 1fr 1fr; } }
  @media (min-width: 1024px) {
    .sec-works__list {
      grid-template-columns: repeat(3, 1fr); } }

.sec-works__item:nth-child(2) {
  transition-delay: 0.1s; }
.sec-works__item:nth-child(3) {
  transition-delay: 0.2s; }

.sec-works__card {
  display: block;
  overflow: hidden;
  border-radius: 0.125rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06), 0 1px 4px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sec-works__card:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .sec-works__card:hover {
      box-shadow: 0 12px 36px rgba(0, 0, 0, 0.13), 0 4px 10px rgba(0, 0, 0, 0.07);
      transform: translateY(-0.375rem); }
      .sec-works__card:hover .sec-works__card-img-wrap img {
        transform: scale(1.05); } }

.sec-works__card-img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: #F2F2F2; }
  .sec-works__card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.sec-works__card-body {
  padding: 1.25rem 0; }

.sec-works__card-category {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background-color: rgba(204, 34, 34, 0.1);
  color: #CC2222;
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  border-radius: 0.125rem; }

.sec-works__card-title {
  margin-top: 0.75rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5; }

.sec-works__card-meta {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  color: #666666;
  letter-spacing: 0.05em; }

.sec-works__more {
  display: flex;
  justify-content: center; }

.sec-news {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sec-news {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sec-news__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.sec-news__layout {
  display: grid;
  gap: 3rem; }
  @media (min-width: 1024px) {
    .sec-news__layout {
      grid-template-columns: 16rem 1fr;
      gap: 5rem;
      align-items: start; } }

.sec-news__content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }
  @media (min-width: 1024px) {
    .sec-news__content {
      order: 2; } }

.sec-news__aside {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }
  @media (min-width: 1024px) {
    .sec-news__aside {
      order: 1;
      position: sticky;
      top: 2rem; } }

.sec-news__footer {
  display: flex;
  justify-content: flex-end; }

.sec-news__all-link {
  flex-shrink: 0;
  font-size: 0.8125rem;
  color: #CC2222;
  letter-spacing: 0.1em;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: gap 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sec-news__all-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .sec-news__all-link::after {
    content: '→';
    font-size: 0.875em; }
  @media (hover: hover) and (pointer: fine) {
    .sec-news__all-link:hover {
      gap: 0.625rem; } }

.sec-news__list {
  display: flex;
  flex-direction: column;
  border-top: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.sec-news__item {
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.sec-news__link {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  align-items: baseline;
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sec-news__link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .sec-news__link:hover {
      background-color: rgba(0, 0, 0, 0.03); }
      .sec-news__link:hover .sec-news__title {
        color: #CC2222; } }

.sec-news__date {
  flex-shrink: 0;
  font-size: 0.8125rem;
  color: #666666;
  letter-spacing: 0.08em;
  font-variant-numeric: tabular-nums; }

.sec-news__category {
  flex-shrink: 0;
  padding: 0.1875rem 0.625rem;
  background-color: rgba(204, 34, 34, 0.1);
  color: #CC2222;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  border-radius: 0.125rem; }

.sec-news__title {
  font-size: 0.9375rem;
  color: #333333;
  letter-spacing: 0.04em;
  line-height: 1.6;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (min-width: 1024px) {
    .sec-news__title {
      flex: 1; } }

.sec-cta {
  padding: 4rem 0.75rem 0.75rem; }

.sec-cta__outer {
  background-color: #CC2222;
  border-radius: 0.75rem;
  padding: 4rem 1.5rem;
  position: relative;
  overflow: hidden; }
  @media (min-width: 1024px) {
    .sec-cta__outer {
      padding: 5rem 3rem; } }
  .sec-cta__outer::before {
    content: '';
    position: absolute;
    top: -8rem;
    left: -8rem;
    width: 32rem;
    height: 32rem;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 70%);
    pointer-events: none; }

.sec-cta__inner-card {
  background-color: #FFFFFF;
  border-radius: 0.625rem;
  padding: 3.5rem 2rem;
  max-width: 48rem;
  margin: 0 auto;
  text-align: center;
  position: relative; }
  @media (min-width: 1024px) {
    .sec-cta__inner-card {
      padding: 4.5rem 4rem; } }

.sec-cta__lead {
  margin-top: 1.75rem;
  font-size: 0.9375rem;
  color: #666666;
  line-height: 1.9;
  letter-spacing: 0.04em; }

.sec-cta__actions {
  margin-top: 2.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem; }
  @media (min-width: 768px) {
    .sec-cta__actions {
      flex-direction: row;
      justify-content: center;
      gap: 2rem; } }

.sec-cta__tel {
  display: flex;
  align-items: center;
  gap: 0.5rem; }

.sec-cta__tel-label {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #CC2222;
  border: 0.0625rem solid #CC2222;
  border-radius: 0.25rem;
  padding: 0.125rem 0.5rem; }

.sec-cta__tel-num {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.08em;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .sec-cta__tel-num:hover {
      color: #CC2222; } }

.sec-cta__recruit-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 2rem;
  font-size: 0.8125rem;
  color: #CC2222;
  letter-spacing: 0.1em;
  transition: gap 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .sec-cta__recruit-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .sec-cta__recruit-link::after {
    content: '→';
    font-size: 0.875em; }
  @media (hover: hover) and (pointer: fine) {
    .sec-cta__recruit-link:hover {
      gap: 0.625rem; } }

.page-hero {
  position: relative;
  margin: 0.75rem;
  height: 42vh;
  min-height: 20rem;
  max-height: 32rem;
  overflow: hidden;
  border-radius: 0.75rem;
  background-color: #222222;
  display: flex;
  align-items: center;
  justify-content: center; }
  .page-hero--compact {
    height: 28vh;
    min-height: 14rem; }

.page-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0; }
  .page-hero__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.4; }
  .page-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.55)); }

.page-hero__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 0 1.5rem; }

.page-hero__en {
  display: block;
  font-size: clamp(1.75rem, 6vw, 3.5rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  line-height: 1; }

.page-hero__ja {
  display: block;
  margin-top: 1rem;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.85); }

.page-hero__line {
  display: block;
  width: 2.5rem;
  height: 0.125rem;
  margin: 1.5rem auto 0;
  background-color: #CC2222; }

.breadcrumb {
  margin: 1.25rem 0 0; }

.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #666666; }

.breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem; }
  .breadcrumb__item:not(:last-child)::after {
    content: '/';
    color: rgba(102, 102, 102, 0.5); }
  .breadcrumb__item a {
    color: #666666;
    transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .breadcrumb__item a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
    @media (hover: hover) and (pointer: fine) {
      .breadcrumb__item a:hover {
        color: #CC2222; } }
  .breadcrumb__item[aria-current='page'] {
    color: #333333; }

.about-philosophy {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .about-philosophy {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.about-philosophy__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem; }

.about-philosophy__statement {
  text-align: center;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #333333; }

.about-philosophy__lead {
  max-width: 44rem;
  margin: 0 auto;
  text-align: center;
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666;
  letter-spacing: 0.04em; }

.about-values {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .about-values {
      grid-template-columns: repeat(5, 1fr);
      gap: 1.5rem; } }

.about-values__item {
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.75rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

.about-values__num {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #CC2222; }

.about-values__word {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: #333333; }

.about-keywords {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem; }

.about-keywords__ttl {
  width: 100%;
  text-align: center;
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  color: #666666;
  margin-bottom: 0.25rem; }

.about-keywords__tag {
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  color: #333333;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(204, 34, 34, 0.3);
  border-radius: 2rem;
  padding: 0.5rem 1.25rem; }

.about-message {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .about-message {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.about-message__inner {
  display: grid;
  gap: 2.5rem; }
  @media (min-width: 1024px) {
    .about-message__inner {
      grid-template-columns: 24rem 1fr;
      gap: 5rem;
      align-items: center; } }

.about-message__visual {
  border-radius: 0.75rem;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background-color: #FFFFFF; }
  .about-message__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.about-message__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

.about-message__heading {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3vw, 2rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #333333; }

.about-message__text {
  display: flex;
  flex-direction: column;
  gap: 1rem; }
  .about-message__text p {
    font-size: 0.9375rem;
    line-height: 2;
    color: #666666;
    letter-spacing: 0.04em; }

.about-message__sign {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: #333333;
  letter-spacing: 0.06em; }
  .about-message__sign strong {
    font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
    margin-left: 0.5rem; }

.about-history {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .about-history {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.about-history__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.about-history__timeline {
  position: relative;
  max-width: 48rem;
  margin: 0 auto;
  width: 100%; }
  .about-history__timeline::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0.4375rem;
    width: 0.0625rem;
    background-color: rgba(204, 34, 34, 0.25); }
    @media (min-width: 1024px) {
      .about-history__timeline::before {
        left: 8.5rem; } }

.about-history__item {
  position: relative;
  padding-left: 2rem;
  padding-bottom: 2.5rem; }
  .about-history__item:last-child {
    padding-bottom: 0; }
  @media (min-width: 1024px) {
    .about-history__item {
      display: grid;
      grid-template-columns: 8.5rem 1fr;
      gap: 2.5rem;
      padding-left: 0; } }
  .about-history__item::before {
    content: '';
    position: absolute;
    top: 0.375rem;
    left: 0.1875rem;
    width: 0.5625rem;
    height: 0.5625rem;
    border-radius: 50%;
    background-color: #CC2222; }
    @media (min-width: 1024px) {
      .about-history__item::before {
        left: 8.1875rem; } }

.about-history__year {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: #CC2222;
  letter-spacing: 0.05em; }
  @media (min-width: 1024px) {
    .about-history__year {
      text-align: left; } }

.about-history__event {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #333333;
  letter-spacing: 0.04em; }
  @media (min-width: 1024px) {
    .about-history__event {
      padding-left: 2.5rem; } }

.about-overview {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .about-overview {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.about-overview__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.about-overview__list {
  display: grid;
  gap: 0;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden; }

.about-overview__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.06); }
  .about-overview__row:last-child {
    border-bottom: none; }
  @media (min-width: 768px) {
    .about-overview__row {
      grid-template-columns: 12rem 1fr;
      gap: 1.5rem;
      padding: 1.5rem 2rem; } }

.about-overview__dt {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #CC2222; }

.about-overview__dd {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #333333;
  letter-spacing: 0.03em; }

.about-access {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .about-access {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.about-access__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.about-access__layout {
  display: grid;
  gap: 2.5rem; }
  @media (min-width: 1024px) {
    .about-access__layout {
      grid-template-columns: 1.4fr 1fr;
      gap: 3.5rem;
      align-items: start; } }

.about-access__map {
  border-radius: 0.75rem;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: #E8E8E8; }
  .about-access__map iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block; }

.about-access__info {
  display: flex;
  flex-direction: column;
  gap: 1.25rem; }

.about-access__row {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.08); }
  .about-access__row:last-child {
    border-bottom: none;
    padding-bottom: 0; }

.about-access__label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #CC2222; }

.about-access__value {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #333333;
  letter-spacing: 0.03em; }

.biz-intro {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .biz-intro {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.biz-intro__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.biz-intro__lead {
  max-width: 46rem;
  margin: 0 auto;
  text-align: center;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #333333; }

.biz-intro__text {
  max-width: 44rem;
  margin: 0 auto;
  text-align: center;
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666;
  letter-spacing: 0.04em; }

.biz-intro__roles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .biz-intro__roles {
      grid-template-columns: repeat(4, 1fr);
      gap: 1.5rem; } }

.biz-intro__role {
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.5rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

.biz-intro__role-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin: 0 auto 0.25rem; }
  .biz-intro__role-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain; }

.biz-intro__role-name {
  font-size: 0.875rem;
  font-weight: 500;
  color: #333333; }

.biz-intro__role-desc {
  font-size: 0.75rem;
  color: #666666;
  line-height: 1.6; }

.biz-video {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .biz-video {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.biz-video__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  max-width: 56rem;
  margin: 0 auto; }

.biz-list {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .biz-list {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.biz-list__inner {
  display: flex;
  flex-direction: column;
  gap: 5rem; }
  @media (min-width: 1024px) {
    .biz-list__inner {
      gap: 7rem; } }

.biz-item {
  scroll-margin-top: 6rem;
  display: flex;
  flex-direction: column;
  gap: 2rem; }
  @media (min-width: 1024px) {
    .biz-item {
      gap: 3rem; } }

.biz-item__head {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

.biz-item__num {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  color: #CC2222; }

.biz-item__en {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #666666; }

.biz-item__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #333333; }

.biz-item__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: #E8E8E8; }
  .biz-item__img img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.biz-item__body {
  display: grid;
  gap: 2.5rem; }
  @media (min-width: 1024px) {
    .biz-item__body {
      grid-template-columns: 1fr 1fr;
      gap: 3.5rem; } }

.biz-item__col {
  display: flex;
  flex-direction: column;
  gap: 1.75rem; }

.biz-block__label {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: #CC2222;
  margin-bottom: 0.625rem; }

.biz-block__text {
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666;
  letter-spacing: 0.03em; }

.biz-block__list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem; }
  .biz-block__list li {
    position: relative;
    padding-left: 1.25rem;
    font-size: 0.9375rem;
    line-height: 1.7;
    color: #333333; }
    .biz-block__list li::before {
      content: '';
      position: absolute;
      top: 0.6875rem;
      left: 0;
      width: 0.375rem;
      height: 0.375rem;
      border-radius: 50%;
      background-color: #CC2222; }

.biz-flow {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  counter-reset: flow; }

.biz-flow__step {
  position: relative;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.5rem;
  padding: 1rem 1.25rem 1rem 3.25rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #333333;
  counter-increment: flow; }
  .biz-flow__step::before {
    content: counter(flow);
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    width: 1.625rem;
    height: 1.625rem;
    border-radius: 50%;
    background-color: #CC2222;
    color: #FFFFFF;
    font-size: 0.75rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center; }

.biz-works {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .biz-works {
      grid-template-columns: repeat(3, 1fr); } }

.biz-works__card {
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: #E8E8E8; }
  .biz-works__card:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  .biz-works__card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .biz-works__card:hover img {
      transform: scale(1.05); } }

.works-list {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .works-list {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.works-list__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.works-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center; }

.works-filter__btn {
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: #666666;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.12);
  border-radius: 2rem;
  padding: 0.5rem 1.25rem;
  cursor: pointer;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .works-filter__btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .works-filter__btn:hover {
      border-color: #CC2222;
      color: #CC2222; } }
  .works-filter__btn.is-active {
    background-color: #CC2222;
    border-color: #CC2222;
    color: #FFFFFF; }

.works-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }
  @media (min-width: 768px) {
    .works-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 2rem; } }
  @media (min-width: 1024px) {
    .works-grid {
      grid-template-columns: repeat(3, 1fr); } }

.works-card {
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden;
  transition: box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1), transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .works-card:hover {
      transform: translateY(-0.25rem);
      box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.1); }
      .works-card:hover .works-card__img img {
        transform: scale(1.05); } }

.works-card__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: #E8E8E8; }
  .works-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }

.works-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.5rem; }

.works-card__cat {
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #CC2222;
  border: 0.0625rem solid rgba(204, 34, 34, 0.35);
  border-radius: 0.25rem;
  padding: 0.125rem 0.5rem; }

.works-card__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.5;
  color: #333333; }

.works-card__meta {
  font-size: 0.75rem;
  color: #666666;
  letter-spacing: 0.04em; }

.works-empty {
  display: none;
  text-align: center;
  padding: 3rem 1rem; }
  .works-empty.is-active {
    display: block; }
  .works-empty p {
    font-size: 0.9375rem;
    color: #666666;
    margin-bottom: 1.5rem; }

.works-detail {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .works-detail {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.works-detail__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  max-width: 56rem;
  margin: 0 auto; }

.works-detail__head {
  display: flex;
  flex-direction: column;
  gap: 1rem; }

.works-detail__cat {
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #CC2222;
  border: 0.0625rem solid rgba(204, 34, 34, 0.35);
  border-radius: 0.25rem;
  padding: 0.1875rem 0.625rem; }

.works-detail__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 500;
  line-height: 1.4;
  color: #333333; }

.works-detail__main-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: #E8E8E8; }
  .works-detail__main-img img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.works-detail__meta {
  display: grid;
  gap: 0;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden; }

.works-detail__meta-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
  padding: 1rem 1.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.06); }
  .works-detail__meta-row:last-child {
    border-bottom: none; }
  @media (min-width: 768px) {
    .works-detail__meta-row {
      grid-template-columns: 10rem 1fr;
      gap: 1.5rem; } }

.works-detail__dt {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #CC2222; }

.works-detail__dd {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #333333; }

.works-detail__lead {
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666;
  letter-spacing: 0.03em; }

.works-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .works-gallery {
      grid-template-columns: repeat(3, 1fr); } }

.works-gallery__item {
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: #E8E8E8; }
  .works-gallery__item--wide {
    grid-column: span 2;
    aspect-ratio: 16 / 9; }
  .works-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.works-detail__footer {
  display: flex;
  justify-content: center;
  padding-top: 1rem; }

.rec-intro {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-intro {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-intro__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  text-align: center; }

.rec-intro__copy {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #333333; }

.rec-intro__text {
  max-width: 42rem;
  margin: 0 auto;
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666; }

.rec-intro__collage {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem; }
  @media (min-width: 768px) {
    .rec-intro__collage {
      gap: 1.25rem; } }

.rec-intro__collage-item {
  border-radius: 0.5rem;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-color: #E8E8E8; }
  .rec-intro__collage-item:nth-child(2) {
    aspect-ratio: 3 / 4;
    margin-top: 1.5rem; }
  .rec-intro__collage-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.rec-features {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-features {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-features__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.rec-features__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }
  @media (min-width: 768px) {
    .rec-features__grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 2rem; } }

.rec-feature {
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden; }

.rec-feature__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: #E8E8E8; }
  .rec-feature__img img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.rec-feature__body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.75rem 1.5rem 2rem; }

.rec-feature__num {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #CC2222; }

.rec-feature__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: #333333;
  line-height: 1.5; }

.rec-feature__text {
  font-size: 0.875rem;
  line-height: 1.9;
  color: #666666; }

.rec-jobs {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-jobs {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-jobs__inner {
  display: flex;
  flex-direction: column;
  gap: 4rem; }

.rec-job {
  display: grid;
  gap: 2rem; }
  @media (min-width: 1024px) {
    .rec-job {
      grid-template-columns: 1fr 1fr;
      gap: 3.5rem;
      align-items: center; } }
  @media (min-width: 1024px) {
    .rec-job:nth-child(even) .rec-job__img {
      order: 2; } }

.rec-job__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 0.75rem;
  overflow: hidden;
  background-color: #E8E8E8; }
  .rec-job__img img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.rec-job__body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem; }

.rec-job__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 500;
  color: #333333; }

.rec-job__text {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #666666; }

.rec-job__tasks {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }
  .rec-job__tasks li {
    position: relative;
    padding-left: 1.25rem;
    font-size: 0.875rem;
    line-height: 1.7;
    color: #333333; }
    .rec-job__tasks li::before {
      content: '';
      position: absolute;
      top: 0.625rem;
      left: 0;
      width: 0.375rem;
      height: 0.375rem;
      border-radius: 50%;
      background-color: #CC2222; }

.rec-job__features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem; }

.rec-job__feature {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: #333333;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(204, 34, 34, 0.3);
  border-radius: 2rem;
  padding: 0.375rem 0.875rem; }

.rec-day {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

.rec-day__step {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 1rem;
  align-items: baseline;
  padding: 0.625rem 0;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.06); }
  .rec-day__step:last-child {
    border-bottom: none; }

.rec-day__time {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #CC2222; }

.rec-day__task {
  font-size: 0.875rem;
  line-height: 1.6;
  color: #333333; }

.rec-career {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-career {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-career__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem; }

.rec-steps {
  display: flex;
  flex-direction: column;
  gap: 1rem; }
  @media (min-width: 1024px) {
    .rec-steps {
      flex-direction: row;
      align-items: stretch; } }

.rec-steps__item {
  flex: 1;
  position: relative;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.5rem 1.25rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }
  .rec-steps__item:not(:last-child)::after {
    content: '→';
    color: #CC2222;
    position: absolute;
    z-index: 1;
    left: 50%;
    bottom: -1.125rem;
    transform: translateX(-50%) rotate(90deg); }
    @media (min-width: 1024px) {
      .rec-steps__item:not(:last-child)::after {
        left: auto;
        right: -1.0625rem;
        bottom: auto;
        top: 50%;
        transform: translateY(-50%); } }

.rec-steps__num {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  color: #CC2222; }

.rec-steps__label {
  font-size: 0.9375rem;
  font-weight: 500;
  color: #333333; }

.rec-steps__desc {
  font-size: 0.75rem;
  color: #666666;
  line-height: 1.6; }

.rec-welfare {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-welfare {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-welfare__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.rec-welfare__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; }
  @media (min-width: 768px) {
    .rec-welfare__grid {
      grid-template-columns: repeat(4, 1fr);
      gap: 1.5rem; } }

.rec-welfare__item {
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.5rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.625rem; }

.rec-welfare__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  margin: 0 auto; }
  .rec-welfare__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain; }

.rec-welfare__name {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #333333;
  line-height: 1.5; }

.rec-welfare__more {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: center; }

.rec-welfare__tag {
  font-size: 0.75rem;
  color: #666666;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.1);
  border-radius: 2rem;
  padding: 0.375rem 0.875rem; }

.rec-req {
  background-color: #E8E8E8;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-req {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-req__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.rec-req__table {
  display: grid;
  gap: 0;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden;
  margin-top: 1.25rem; }

.rec-req__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.25rem;
  padding: 1rem 1.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.06); }
  .rec-req__row:last-child {
    border-bottom: none; }
  @media (min-width: 768px) {
    .rec-req__row {
      grid-template-columns: 10rem 1fr;
      gap: 1.5rem; } }

.rec-req__dt {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #CC2222; }

.rec-req__dd {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #333333; }

.rec-req__entry {
  display: flex;
  justify-content: center;
  padding-top: 0.5rem; }

.rec-interviews {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .rec-interviews {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.rec-interviews__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem; }

.interview-detail {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .interview-detail {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.interview-detail__inner {
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
  max-width: 52rem;
  margin: 0 auto;
  width: 100%; }

.interview-profile {
  display: grid;
  gap: 2rem; }
  @media (min-width: 1024px) {
    .interview-profile {
      grid-template-columns: 18rem 1fr;
      gap: 3rem;
      align-items: center; } }

.interview-profile__photo {
  border-radius: 0.75rem;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  background-color: #E8E8E8; }
  .interview-profile__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover; }

.interview-profile__body {
  display: flex;
  flex-direction: column;
  gap: 0.875rem; }

.interview-profile__role {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #CC2222; }

.interview-profile__name {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.04em; }
  .interview-profile__name small {
    display: block;
    margin-top: 0.375rem;
    font-size: 0.8125rem;
    font-weight: 400;
    color: #666666;
    letter-spacing: 0.06em; }

.interview-profile__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem; }

.interview-profile__tag {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: #333333;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(204, 34, 34, 0.3);
  border-radius: 2rem;
  padding: 0.375rem 0.875rem; }

.interview-qa {
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.interview-qa__item {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

.interview-qa__q {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  color: #333333; }
  .interview-qa__q::before {
    content: 'Q';
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 700;
    color: #FFFFFF;
    background-color: #CC2222;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center; }

.interview-qa__a {
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666;
  letter-spacing: 0.03em;
  padding-left: 2.25rem; }

.interview-detail__subhead {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.25rem;
  font-weight: 500;
  color: #333333;
  padding-left: 0.875rem;
  border-left: 0.1875rem solid #CC2222;
  margin-bottom: 1.5rem; }

.interview-others {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }

.interview-detail__back {
  display: flex;
  justify-content: center; }

.news-page {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .news-page {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.news-page__inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  max-width: 52rem;
  margin: 0 auto;
  width: 100%; }

.news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center; }

.news-filter__btn {
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  color: #666666;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.12);
  border-radius: 2rem;
  padding: 0.5rem 1.25rem;
  cursor: pointer;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .news-filter__btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .news-filter__btn:hover {
      border-color: #CC2222;
      color: #CC2222; } }
  .news-filter__btn.is-active {
    background-color: #CC2222;
    border-color: #CC2222;
    color: #FFFFFF; }

.news-items {
  display: flex;
  flex-direction: column; }

.news-row {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.5rem 0.5rem;
  border-top: 0.0625rem solid rgba(0, 0, 0, 0.1);
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .news-row:last-child {
    border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1); }
  @media (min-width: 768px) {
    .news-row {
      flex-direction: row;
      align-items: center;
      gap: 1.5rem; } }
  @media (hover: hover) and (pointer: fine) {
    .news-row:hover {
      background-color: rgba(255, 255, 255, 0.6); } }

.news-row__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0; }

.news-row__date {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 0.8125rem;
  color: #666666;
  letter-spacing: 0.04em; }

.news-row__cat {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #CC2222;
  border: 0.0625rem solid rgba(204, 34, 34, 0.35);
  border-radius: 0.25rem;
  padding: 0.125rem 0.5rem; }

.news-row__title {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #333333;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .news-row:hover .news-row__title {
    color: #CC2222; }

.news-pager {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem; }

.news-pager__item {
  min-width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  color: #333333;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.12);
  border-radius: 0.375rem;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .news-pager__item:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .news-pager__item:hover {
      border-color: #CC2222;
      color: #CC2222; } }
  .news-pager__item.is-active {
    background-color: #CC2222;
    border-color: #CC2222;
    color: #FFFFFF; }

.news-detail {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .news-detail {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.news-detail__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: 46rem;
  margin: 0 auto;
  width: 100%; }

.news-detail__head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-bottom: 1.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.news-detail__meta {
  display: flex;
  align-items: center;
  gap: 1rem; }

.news-detail__date {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 0.875rem;
  color: #666666; }

.news-detail__cat {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #CC2222;
  border: 0.0625rem solid rgba(204, 34, 34, 0.35);
  border-radius: 0.25rem;
  padding: 0.125rem 0.5rem; }

.news-detail__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3.5vw, 2rem);
  font-weight: 500;
  line-height: 1.5;
  color: #333333; }

.news-detail__body {
  display: flex;
  flex-direction: column;
  gap: 1.5rem; }
  .news-detail__body p {
    font-size: 0.9375rem;
    line-height: 2;
    color: #333333;
    letter-spacing: 0.03em; }
  .news-detail__body img {
    width: 100%;
    border-radius: 0.5rem; }
  .news-detail__body h3 {
    font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
    color: #333333;
    margin-top: 0.5rem; }

.news-detail__nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 1.5rem;
  border-top: 0.0625rem solid rgba(0, 0, 0, 0.1); }

.news-detail__nav-link {
  font-size: 0.8125rem;
  color: #666666;
  letter-spacing: 0.04em;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .news-detail__nav-link:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .news-detail__nav-link:hover {
      color: #CC2222; } }
  .news-detail__nav-link--disabled {
    opacity: 0.3;
    pointer-events: none; }

.news-detail__back {
  display: flex;
  justify-content: center; }

.form-section {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .form-section {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.form-section__inner {
  max-width: 44rem;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.form-lead {
  text-align: center;
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666; }

.form-tel {
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.5rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

.form-tel__label {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: #666666; }

.form-tel__num {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.04em; }

.form-tel__hours {
  font-size: 0.75rem;
  color: #666666; }

.form {
  display: flex;
  flex-direction: column;
  gap: 1.75rem; }

.form-field {
  display: flex;
  flex-direction: column;
  gap: 0.625rem; }

.form-field__label {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.04em; }

.form-field__badge {
  font-size: 0.625rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem; }
  .form-field__badge--required {
    color: #FFFFFF;
    background-color: #CC2222; }
  .form-field__badge--optional {
    color: #666666;
    background-color: #E8E8E8; }

.form-control {
  width: 100%;
  font-family: inherit;
  font-size: 1rem;
  color: #333333;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.15);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  transition: border-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .form-control::placeholder {
    color: rgba(102, 102, 102, 0.6); }
  .form-control:focus {
    outline: none;
    border-color: #CC2222;
    box-shadow: 0 0 0 0.1875rem rgba(204, 34, 34, 0.15); }
  .form-control[aria-invalid='true'] {
    border-color: #CC2222; }

textarea.form-control {
  min-height: 9rem;
  resize: vertical;
  line-height: 1.7; }

.form-row {
  display: grid;
  gap: 1rem; }
  @media (min-width: 768px) {
    .form-row {
      grid-template-columns: 1fr 1fr; } }

.form-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem; }

.form-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: #333333;
  cursor: pointer; }
  .form-radio input {
    accent-color: #CC2222;
    width: 1.125rem;
    height: 1.125rem; }

.form-file {
  font-size: 0.875rem;
  color: #666666; }

.form-file__note {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  color: rgba(102, 102, 102, 0.8);
  line-height: 1.6; }

.form-error {
  font-size: 0.8125rem;
  color: #CC2222; }

.form-agree {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
  text-align: center;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.5rem; }

.form-agree__check {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: #333333;
  cursor: pointer; }
  .form-agree__check input {
    accent-color: #CC2222;
    width: 1.125rem;
    height: 1.125rem; }
  .form-agree__check a {
    color: #CC2222;
    text-decoration: underline; }

.form-submit {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center; }

.form-submit__btn {
  width: 100%;
  max-width: 22rem;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  background-color: #CC2222;
  border: none;
  border-radius: 0.5rem;
  padding: 1.125rem 2rem;
  cursor: pointer;
  transition: background-color 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  .form-submit__btn:focus-visible {
    outline: 0.125rem solid #CC2222;
    outline-offset: 0.1875rem; }
  @media (hover: hover) and (pointer: fine) {
    .form-submit__btn:hover {
      background-color: #E85555; } }
  .form-submit__btn:disabled {
    opacity: 0.5;
    cursor: not-allowed; }
  .form-submit__btn--ghost {
    color: #333333;
    background-color: #FFFFFF;
    border: 0.0625rem solid rgba(0, 0, 0, 0.15); }
    @media (hover: hover) and (pointer: fine) {
      .form-submit__btn--ghost:hover {
        background-color: #E8E8E8; } }

.form-confirm {
  display: grid;
  gap: 0;
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  overflow: hidden; }

.form-confirm__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.375rem;
  padding: 1.125rem 1.5rem;
  border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.06); }
  .form-confirm__row:last-child {
    border-bottom: none; }
  @media (min-width: 768px) {
    .form-confirm__row {
      grid-template-columns: 12rem 1fr;
      gap: 1.5rem; } }

.form-confirm__dt {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #CC2222; }

.form-confirm__dd {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #333333;
  white-space: pre-wrap; }

.form-actions {
  display: flex;
  flex-direction: column-reverse;
  gap: 1rem;
  align-items: center; }
  @media (min-width: 768px) {
    .form-actions {
      flex-direction: row;
      justify-content: center; } }

.form-complete {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: center; }

.form-complete__icon {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: rgba(204, 34, 34, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CC2222;
  font-size: 1.75rem; }

.form-complete__title {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(1.375rem, 3.5vw, 1.875rem);
  font-weight: 500;
  color: #333333; }

.form-complete__text {
  max-width: 36rem;
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666; }

.form-complete__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 0.5rem; }

.form-steps {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 0.5rem; }

.form-steps__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: #666666; }
  .form-steps__item:not(:last-child)::after {
    content: '';
    width: 2rem;
    height: 0.0625rem;
    background-color: rgba(0, 0, 0, 0.15);
    margin: 0 0.75rem; }
  .form-steps__item.is-active {
    color: #CC2222;
    font-weight: 500; }

.form-steps__num {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  border: 0.0625rem solid currentColor; }

.form-steps__item.is-active .form-steps__num {
  color: #FFFFFF;
  background-color: #CC2222;
  border-color: #CC2222; }

.legal {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .legal {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.legal__inner {
  max-width: 46rem;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.legal__lead {
  font-size: 0.9375rem;
  line-height: 2;
  color: #666666; }

.legal__block {
  display: flex;
  flex-direction: column;
  gap: 0.875rem; }

.legal__heading {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.1875rem;
  font-weight: 500;
  color: #333333;
  padding-left: 0.875rem;
  border-left: 0.1875rem solid #CC2222; }

.legal__text {
  font-size: 0.9375rem;
  line-height: 2;
  color: #333333;
  letter-spacing: 0.02em; }

.legal__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }
  .legal__list li {
    position: relative;
    padding-left: 1.25rem;
    font-size: 0.9375rem;
    line-height: 1.8;
    color: #333333; }
    .legal__list li::before {
      content: '';
      position: absolute;
      top: 0.6875rem;
      left: 0;
      width: 0.375rem;
      height: 0.375rem;
      border-radius: 50%;
      background-color: #CC2222; }

.sitemap {
  background-color: #F2F2F2;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  @media (min-width: 1024px) {
    .sitemap {
      padding-top: 7.5rem;
      padding-bottom: 7.5rem; } }

.sitemap__inner {
  max-width: 52rem;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 2.5rem; }

.sitemap__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem; }
  @media (min-width: 768px) {
    .sitemap__grid {
      grid-template-columns: 1fr 1fr;
      gap: 2rem; } }

.sitemap__group {
  background-color: #FFFFFF;
  border: 0.0625rem solid rgba(0, 0, 0, 0.06);
  border-radius: 0.75rem;
  padding: 1.75rem 1.75rem 2rem; }

.sitemap__parent {
  display: inline-block;
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: 1.0625rem;
  font-weight: 500;
  color: #333333;
  margin-bottom: 1rem;
  transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
  @media (hover: hover) and (pointer: fine) {
    .sitemap__parent:hover {
      color: #CC2222; } }

.sitemap__children {
  display: flex;
  flex-direction: column;
  gap: 0.625rem; }
  .sitemap__children a {
    font-size: 0.875rem;
    color: #666666;
    letter-spacing: 0.03em;
    padding-left: 1rem;
    position: relative;
    transition: color 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
    .sitemap__children a:focus-visible {
      outline: 0.125rem solid #CC2222;
      outline-offset: 0.1875rem; }
    .sitemap__children a::before {
      content: '';
      position: absolute;
      top: 0.5rem;
      left: 0;
      width: 0.375rem;
      height: 0.0625rem;
      background-color: #CC2222; }
    @media (hover: hover) and (pointer: fine) {
      .sitemap__children a:hover {
        color: #CC2222; } }

.notfound {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #222222;
  margin: 0.75rem;
  border-radius: 0.75rem;
  overflow: hidden; }

.notfound__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 3rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: center; }

.notfound__code {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  font-size: clamp(4rem, 14vw, 9rem);
  font-weight: 700;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 0.0625rem rgba(204, 34, 34, 0.6); }

.notfound__title {
  font-size: clamp(1.125rem, 3vw, 1.5rem);
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.06em; }

.notfound__text {
  font-size: 0.875rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.7);
  max-width: 30rem; }

.notfound__line {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  opacity: 0.4; }

.notfound__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-top: 0.5rem; }

/*# sourceMappingURL=style.css.map */
