/*
Theme Name: TSS
Theme URI: http://tss.local/
Author: Shintaro Okamatsu
Description: Original WordPress theme for TSS.
Version: 0.1.0
Text Domain: tss
*/

:root {
  --color-red: #e31f20;
  --color-red-dark: #c9000b;
  --color-text: #303030;
  --color-muted: #687078;
  --color-line: #e8e8e8;
  --color-bg: #ffffff;
  --font-base: "Noto Sans JP", sans-serif;
  --font-serif: "Shippori Mincho B1", "Noto Serif JP", serif;
  --font-mincho: var(--font-serif);
  --pc-scale: 1px;
  --header-height: calc(72 * var(--pc-scale));
}

@media (min-width: 768px) and (max-width: 1440px) {
  :root {
    --pc-scale: calc(100vw / 1440);
  }
}

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

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-bg);
  font-family: var(--font-base);
  font-size: calc(16 * var(--pc-scale));
  line-height: 1.8;
}

a {
  color: inherit;
  text-decoration: none;
}

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

button {
  font: inherit;
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

.site-wrapper {
  min-height: calc(100vh - var(--header-height));
  background: #fff;
}

.site-header {
  position: fixed;
  z-index: 100;
  top: 0;
  right: 0;
  left: 0;
  height: var(--header-height);
  background: #fff;
  box-shadow: 0 calc(4 * var(--pc-scale)) calc(10 * var(--pc-scale)) rgba(0, 0, 0, 0.1);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: var(--header-height);
  padding-left: calc(16 * var(--pc-scale));
  background: #fff;
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(16 * var(--pc-scale));
  min-width: calc(396 * var(--pc-scale));
  height: var(--header-height);
}

.site-header__logo {
  width: calc(80 * var(--pc-scale));
  height: calc(36 * var(--pc-scale));
  object-fit: contain;
}

.site-header__company {
  color: var(--color-text);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.5;
  white-space: nowrap;
}

.site-header__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
  margin-left: auto;
}

.site-header__nav {
  display: flex;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  height: 100%;
}

.site-header__nav a,
.site-header__recruit,
.site-header__contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-size: calc(15 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  white-space: nowrap;
  transition: color 0.2s ease, background-color 0.2s ease;
}

.site-header__nav a:hover,
.site-header__recruit:hover {
  color: var(--color-red);
}

.site-header__nav-link--has-child {
  gap: calc(4 * var(--pc-scale));
}

.site-header__nav-link--has-child::after {
  content: "";
  display: block;
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
  background: currentColor;
  mask: linear-gradient(#000 0 0) center / 100% 100% no-repeat;
  clip-path: polygon(30% 38%, 50% 58%, 70% 38%, 76% 44%, 50% 70%, 24% 44%);
}

.site-header__cta {
  display: flex;
  align-items: center;
  height: 100%;
  margin-left: calc(40 * var(--pc-scale));
}

.site-header__recruit,
.site-header__contact {
  width: calc(154 * var(--pc-scale));
  height: 100%;
  padding: 0 calc(32 * var(--pc-scale));
}

.site-header__recruit {
  border-left: calc(1 * var(--pc-scale)) solid var(--color-red);
  color: var(--color-red);
  background: #fff;
}

.site-header__contact {
  color: #fff;
  background: var(--color-red);
}

.site-header__contact:hover {
  background: var(--color-red-dark);
}

.site-header__mobile-actions {
  display: none;
}

.site-header__toggle {
  display: none;
  padding: 0;
  border: 0;
  background: var(--color-red);
  cursor: pointer;
}

.site-header__toggle span {
  display: block;
  width: calc(22 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: #fff;
  transition: transform 0.2s ease, opacity 0.2s ease, background-color 0.2s ease;
}

.drawer-menu {
  display: none;
}

html.is-drawer-open {
  overflow: hidden;
}

.site-main:not(.home-main) {
  padding-top: var(--header-height);
}

.home-opening {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: transparent;
  pointer-events: auto;
}

.home-opening__curtain {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #fff;
  -webkit-mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
  -webkit-mask-position: center, center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%, 0 0;
  -webkit-mask-composite: xor;
  mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
  mask-position: center, center;
  mask-repeat: no-repeat;
  mask-size: 100% 100%, 0 0;
  mask-composite: exclude;
  will-change: mask-size;
}

.home-opening__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translateY(38px);
  will-change: opacity, transform;
}

.home-opening__logo {
  display: block;
  width: 140px;
  height: 140px;
  object-fit: cover;
}

.home-opening__message {
  margin: 15px 0 0;
  color: #eb001f;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  white-space: nowrap;
}

.home-opening.is-visible .home-opening__content {
  opacity: 1;
  transform: translateY(-10px);
  transition:
    opacity 0.75s ease,
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-opening.is-revealing {
  pointer-events: none;
}

.home-opening.is-logo-hidden .home-opening__content {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.3s ease;
}

.home-opening.is-revealing .home-opening__curtain {
  -webkit-mask-size: 100% 100%, 160vmax 160vmax;
  mask-size: 100% 100%, 160vmax 160vmax;
  transition:
    -webkit-mask-size 1s cubic-bezier(0.76, 0, 0.24, 1),
    mask-size 1s cubic-bezier(0.76, 0, 0.24, 1);
}

.home-opening.is-complete {
  visibility: hidden;
}

html.is-home-opening-active,
html.is-home-opening-active body {
  overflow: hidden;
}

.site-header.is-home-opening-waiting {
  opacity: 0;
  transform: translateY(-100%);
}

.home-fv__inner.is-home-opening-waiting {
  opacity: 0;
  transform: translateY(48px);
}

.site-header.is-home-opening-entering {
  animation: home-opening-header-enter 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.home-fv__inner.is-home-opening-entering {
  animation: home-opening-fv-enter 0.8s 0.12s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes home-opening-header-enter {
  from {
    opacity: 0;
    transform: translateY(-100%);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes home-opening-fv-enter {
  from {
    opacity: 0;
    transform: translateY(48px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 767.98px) {
  .home-opening__logo {
    width: calc(112 * var(--sp-scale));
    height: calc(112 * var(--sp-scale));
  }

  .home-opening__message {
    margin-top: calc(14 * var(--sp-scale));
    font-size: calc(18 * var(--sp-scale));
    line-height: 1.8;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-opening__content,
  .home-opening__curtain {
    transition-duration: 0.01ms !important;
  }

  .site-header.is-home-opening-entering,
  .home-fv__inner.is-home-opening-entering {
    animation-delay: 0s;
    animation-duration: 0.01ms;
  }
}

.home-fv {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 806px;
  padding: 0 40px 160px;
  overflow: hidden;
  isolation: isolate;
  background: #12151d;
}

.home-fv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.home-fv__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 15, 25, 0.08) 0%, rgba(0, 12, 18, 0.14) 46%, rgba(0, 8, 12, 0.38) 100%);
  pointer-events: none;
}

.home-fv__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-fv__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1280px);
  margin: 0 auto;
  color: #fff;
  word-break: break-word;
}

.home-fv__catch {
  margin: 0 0 34px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 800;
  line-height: 2;
  text-shadow: 0 0 42px rgba(0, 8, 12, 0.65);
}

.home-fv__title {
  margin: 0;
  color: #fff;
  font-family: "Libre Bodoni", "Noto Serif JP", serif;
  font-size: 150.88px;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-shadow: 0 0 42px rgba(0, 8, 12, 0.5);
  white-space: nowrap;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-fv {
    min-height: 720px;
    padding-bottom: 140px;
  }

  .home-fv__catch {
    font-size: 26px;
  }

  .home-fv__title {
    font-size: 132px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-fv {
    min-height: 620px;
    padding-right: 32px;
    padding-bottom: 112px;
    padding-left: 32px;
  }

  .home-fv__catch {
    margin-bottom: 28px;
    font-size: 23px;
  }

  .home-fv__title {
    font-size: 104px;
  }
}
.home-mission {
  position: relative;
  overflow: hidden;
  background: #fff;
}

.home-mission::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  height: 1602px;
  background:
    radial-gradient(circle at 74% 38%, rgba(255, 164, 80, 0.4) 0, rgba(255, 164, 80, 0.2) 22%, rgba(255, 164, 80, 0) 44%),
    linear-gradient(120deg, #c8001f 0%, #d4001d 42%, #ef3e10 100%);
}

.home-mission__intro,
.home-mission__gallery {
  position: relative;
  z-index: 1;
}

.home-mission__intro {
  min-height: 1019px;
  padding: 160px 40px 0;
}

.home-mission__content {
  position: relative;
  width: min(100%, 1180px);
  margin: 0 auto;
}

.home-mission__text {
  position: relative;
  z-index: 2;
  max-width: 700px;
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
  text-shadow: 0 0 9px rgba(0, 0, 0, 0.25);
}

.home-mission__label {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 24px;
  line-height: 1.5;
}

.home-mission__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-mission__body {
  margin-top: 40px;
  color: #fff;
  font-size: 20px;
  line-height: 2.4;
}

.home-mission__body p {
  margin: 0;
}

.home-mission__body p + p {
  margin-top: 0;
}

.home-mission__button {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  margin-top: 64px;
  border: 1px solid #fff;
  border-radius: 32px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-mission__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-mission__button:hover {
  background: #fff;
  color: var(--color-red);
}

.home-mission__map {
  position: absolute;
  top: 0;
  right: -88px;
  z-index: 1;
  width: 839px;
  height: 859px;
  pointer-events: none;
}

.home-mission__map img {
  position: absolute;
  top: 0;
  left: -26px;
  width: 893px;
  height: 859px;
  max-width: none;
  object-fit: cover;
  opacity: 0.72;
}

.home-mission__range,
.home-mission__pin,
.home-mission__place {
  position: absolute;
  display: block;
}

.home-mission__range {
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}

.home-mission__range--large {
  top: 201px;
  left: 237px;
  width: 585px;
  height: 585px;
}

.home-mission__range--middle {
  top: 395px;
  left: 430px;
  width: 198px;
  height: 196px;
}

.home-mission__range--small {
  top: 439px;
  left: 475px;
  width: 109px;
  height: 108px;
}

.home-mission__pin {
  width: 23px;
  height: 23px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.24);
}

.home-mission__pin::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  transform: translate(-50%, -50%);
}

.home-mission__pin--morioka {
  top: 399px;
  left: 536px;
}

.home-mission__pin--sendai {
  top: 482px;
  left: 518px;
}

.home-mission__pin--tokyo {
  top: 651px;
  left: 440px;
}

.home-mission__place {
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2.4;
  white-space: nowrap;
}

.home-mission__place--morioka {
  top: 395px;
  left: 571px;
}

.home-mission__place--sendai {
  top: 476px;
  left: 553px;
}

.home-mission__place--tokyo {
  top: 653px;
  left: 466px;
}

.home-mission__gallery {
  padding: 40px 0 104px;
}

.home-mission__since {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  margin: 0;
  color: #f6f6f6;
  font-family: var(--font-serif);
  font-size: 151px;
  font-weight: 600;
  line-height: 1.2;
  opacity: 0.4;
  text-align: center;
  transform: translateX(-50%);
  white-space: nowrap;
}

.home-mission__gallery-list {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 80px;
  width: 100%;
}

.home-mission__gallery-item {
  position: relative;
  flex: 0 0 auto;
  height: 670px;
}

.home-mission__gallery-item img {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  max-width: none;
  border-radius: 8px;
  object-fit: cover;
}

.home-mission__gallery-item--01 {
  width: 242px;
}

.home-mission__gallery-item--01 img {
  top: 0;
  height: 327px;
}

.home-mission__gallery-item--02 {
  width: 364px;
}

.home-mission__gallery-item--02 img {
  top: 224px;
  height: 445px;
}

.home-mission__gallery-item--03 {
  width: 262px;
}

.home-mission__gallery-item--03 img {
  top: 130px;
  height: 283px;
}

.home-mission__gallery-item--04 {
  width: 370px;
}

.home-mission__gallery-item--04 img {
  top: 214px;
  height: 399px;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-mission__intro {
    min-height: 900px;
    padding-top: 130px;
  }

  .home-mission__title {
    font-size: 48px;
  }

  .home-mission__body {
    font-size: 18px;
  }

  .home-mission__map {
    right: -170px;
    transform: scale(0.86);
    transform-origin: top right;
  }

  .home-mission__gallery-list {
    gap: 48px;
    transform: scale(0.88);
    transform-origin: top center;
  }

  .home-mission__gallery {
    padding-bottom: 0;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-mission__intro {
    min-height: 820px;
    padding-top: 104px;
  }

  .home-mission__title {
    font-size: 40px;
  }

  .home-mission__text {
    max-width: 560px;
  }

  .home-mission__map {
    top: 120px;
    right: -300px;
    opacity: 0.75;
    transform: scale(0.72);
  }

  .home-mission__since {
    font-size: 118px;
  }

  .home-mission__gallery-list {
    gap: 32px;
    transform: scale(0.74);
  }

  .home-mission__gallery {
    min-height: 620px;
    padding-top: 32px;
  }
}
.home-service {
  display: flex;
  align-items: stretch;
  min-height: 648px;
  background: #eeeeee;
}

.home-service__image {
  flex: 0 0 597px;
  min-height: 648px;
  overflow: hidden;
}

.home-service__image img,
.home-service__image video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.home-service__content {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  min-width: 0;
  padding: 80px 40px 80px 64px;
  background: #eeeeee;
}

.home-service__inner {
  width: min(100%, 650px);
  padding-bottom: 48px;
}

.home-service__label {
  margin: 0 0 8px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-service__group {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.home-service__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-service__line {
  display: block;
  flex: 0 0 64px;
  width: 64px;
  height: 1px;
  background: var(--color-red);
}

.home-service__title {
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-service__body {
  margin: -16px 0 0;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-service__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-service__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-service__button:hover {
  background: var(--color-red);
  color: #fff;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-service__image {
    flex-basis: 46%;
  }

  .home-service__content {
    padding-left: 48px;
  }

  .home-service__label {
    font-size: 78px;
  }

  .home-service__title {
    font-size: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-service {
    min-height: 560px;
  }

  .home-service__image {
    flex-basis: 42%;
    min-height: 560px;
  }

  .home-service__content {
    padding: 64px 32px;
  }

  .home-service__inner {
    padding-bottom: 0;
  }

  .home-service__label {
    font-size: 62px;
  }

  .home-service__heading-row {
    gap: 18px;
  }

  .home-service__line {
    flex-basis: 48px;
    width: 48px;
  }

  .home-service__title {
    font-size: 24px;
  }
}

@media (max-width: 767.98px) {
  .home-service {
    flex-direction: column;
    min-height: 0;
  }

  .home-service__image {
    flex: none;
    min-height: 0;
    height: calc(330 * var(--sp-scale));
  }

  .home-service__content {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .home-service__inner {
    width: 100%;
    padding-bottom: 0;
  }

  .home-service__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(50 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-service__group {
    gap: calc(28 * var(--sp-scale));
  }

  .home-service__heading-row {
    align-items: flex-start;
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-service__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
    margin-top: calc(25 * var(--sp-scale));
  }

  .home-service__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
    white-space: normal;
  }

  .home-service__body {
    margin-top: 0;
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-service__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.home-security {
  position: relative;
  min-height: 680px;
  padding: 80px 40px;
  overflow: hidden;
  background: #fff;
}

.home-security::before,
.home-security::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-security::before {
  background-image: url("assets/img/security-bg-lines.webp");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 109.6% 100%;
  opacity: 0.4;
}

.home-security::after {
  background-image:
    linear-gradient(158deg, #fff 0%, #fff 26.8%, rgba(255, 255, 255, 0.3) 64%, rgba(255, 255, 255, 0.92) 100%),
    linear-gradient(356.9deg, rgba(255, 255, 255, 0) 13.3%, #fff 33.9%, rgba(255, 255, 255, 0.912) 65.8%, rgba(255, 255, 255, 0.6) 87.1%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.home-security__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 34px;
  width: min(100%, 1180px);
  min-height: 520px;
  margin: 0 auto;
}

.home-security__content {
  flex: 0 0 578px;
  padding-bottom: 48px;
}

.home-security__label {
  margin: 0 0 8px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-security__group {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.home-security__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-security__line {
  display: block;
  flex: 0 0 56px;
  width: 56px;
  height: 1px;
  background: var(--color-red);
}

.home-security__title {
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-security__body {
  margin-top: -16px;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-security__body p {
  margin: 0;
}

.home-security__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-security__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-security__button:hover {
  background: var(--color-red);
  color: #fff;
}

.home-security__image {
  flex: 0 0 568px;
  overflow: hidden;
  border-radius: 8px;
}

.home-security__image img {
  display: block;
  width: 100%;
  height: 399px;
  max-width: none;
  object-fit: cover;
  border-radius: 8px;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-security__inner {
    gap: 32px;
  }

  .home-security__content {
    flex-basis: 50%;
  }

  .home-security__image {
    flex-basis: 48%;
  }

  .home-security__label {
    font-size: 78px;
  }

  .home-security__title {
    font-size: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-security {
    min-height: 610px;
    padding: 64px 32px;
  }

  .home-security__inner {
    gap: 28px;
    min-height: 482px;
  }

  .home-security__content {
    padding-bottom: 0;
  }

  .home-security__label {
    font-size: 62px;
  }

  .home-security__heading-row {
    align-items: flex-start;
    gap: 18px;
  }

  .home-security__line {
    flex-basis: 48px;
    width: 48px;
    margin-top: 25px;
  }

  .home-security__title {
    font-size: 24px;
    line-height: 1.8;
    white-space: normal;
  }

  .home-security__image img {
    height: 340px;
  }
}

@media (max-width: 767.98px) {
  .home-security {
    min-height: 0;
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .home-security::before,
  .home-security::after {
    background-size: auto 100%;
  }

  .home-security__inner {
    flex-direction: column;
    align-items: stretch;
    gap: calc(32 * var(--sp-scale));
    min-height: 0;
  }

  .home-security__content {
    flex: none;
    width: 100%;
    padding-bottom: 0;
  }

  .home-security__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(54 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-security__group {
    gap: calc(28 * var(--sp-scale));
  }

  .home-security__heading-row {
    align-items: flex-start;
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-security__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
    margin-top: calc(25 * var(--sp-scale));
  }

  .home-security__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
    white-space: normal;
  }

  .home-security__body {
    margin-top: 0;
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-security__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .home-security__image {
    flex: none;
    width: 100%;
  }

  .home-security__image img {
    height: auto;
    aspect-ratio: 568 / 399;
  }
}
.home-recruit {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 640px;
  padding: 80px 40px;
  overflow: hidden;
  color: #fff;
  background: #001435;
}

.home-recruit::before,
.home-recruit::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-recruit::before {
  z-index: 0;
  background: url("assets/img/recruit-bg-blue.webp") center / cover no-repeat;
}

.home-recruit::after {
  z-index: 1;
  background: rgba(0, 20, 53, 0.8);
}

.home-recruit__panel {
  position: absolute;
  z-index: 2;
  top: 80px;
  left: 0;
  width: calc(100% - 80px);
  height: 480px;
  background: url("assets/img/recruit-panel-red.webp") center / cover no-repeat;
  pointer-events: none;
}

.home-recruit__inner {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  width: min(100%, 1180px);
  min-height: 456px;
  margin: 0 auto;
  padding: 40px 0 80px;
}

.home-recruit__content {
  flex: 0 1 652px;
}

.home-recruit__label {
  margin: 0 0 8px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-recruit__group {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.home-recruit__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-recruit__line {
  display: block;
  flex: 0 0 64px;
  width: 64px;
  height: 1px;
  background: #fff;
}

.home-recruit__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-recruit__body {
  width: 100%;
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-recruit__action {
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  min-width: 0;
  padding: 40px 80px 16px 0;
}

.home-recruit__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 240px;
  height: 240px;
  padding: 24px;
  border: 1px solid #fff;
  border-radius: 50%;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-recruit__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-recruit__button:hover {
  background: #fff;
  color: var(--color-red);
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-recruit__inner {
    gap: 40px;
  }

  .home-recruit__content {
    flex-basis: 58%;
  }

  .home-recruit__label {
    font-size: 78px;
  }

  .home-recruit__title {
    font-size: 28px;
  }

  .home-recruit__action {
    padding-right: 40px;
  }

  .home-recruit__button {
    width: 220px;
    height: 220px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-recruit {
    min-height: 600px;
    padding: 70px 32px;
  }

  .home-recruit__panel {
    top: 70px;
    width: calc(100% - 48px);
    height: 460px;
  }

  .home-recruit__inner {
    min-height: 420px;
    padding-bottom: 56px;
  }

  .home-recruit__label {
    font-size: 62px;
  }

  .home-recruit__heading-row {
    gap: 18px;
  }

  .home-recruit__line {
    flex-basis: 48px;
    width: 48px;
  }

  .home-recruit__title {
    font-size: 24px;
  }

  .home-recruit__action {
    padding-right: 20px;
  }

  .home-recruit__button {
    width: 190px;
    height: 190px;
    font-size: 16px;
  }
}

@media (max-width: 767.98px) {
  .home-recruit {
    min-height: 0;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-recruit__panel {
    top: calc(40 * var(--sp-scale));
    left: 0;
    width: 100%;
    height: calc(520 * var(--sp-scale));
  }

  .home-recruit__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(36 * var(--sp-scale));
    min-height: calc(432 * var(--sp-scale));
    padding: calc(36 * var(--sp-scale)) 0 calc(48 * var(--sp-scale));
  }

  .home-recruit__content {
    flex: none;
    width: 100%;
  }

  .home-recruit__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(58 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-recruit__group {
    gap: calc(18 * var(--sp-scale));
  }

  .home-recruit__heading-row {
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-recruit__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
  }

  .home-recruit__title {
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
  }

  .home-recruit__body {
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-recruit__action {
    justify-content: flex-start;
    width: 100%;
    padding: 0;
  }

  .home-recruit__button {
    width: calc(176 * var(--sp-scale));
    height: calc(176 * var(--sp-scale));
    padding: calc(20 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.home-news {
  padding: 104px 40px;
  background: #f6f6f6;
}

.home-news__inner {
  display: flex;
  align-items: flex-start;
  gap: 172px;
  width: min(100%, 1200px);
  margin: 0 auto;
}

.home-news__heading {
  display: flex;
  flex: 0 0 257px;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
}

.home-news__title-group {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  font-family: var(--font-serif);
  font-weight: 600;
}

.home-news__label {
  margin: 0;
  color: var(--color-red);
  font-size: 96px;
  line-height: 1;
}

.home-news__title {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 2;
}

.home-news__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-news__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-news__button:hover {
  background: var(--color-red);
  color: #fff;
}

.home-news__list {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 807px;
  border-top: 1px solid #c4c4c4;
}

.home-news__item {
  display: grid;
  grid-template-columns: 88px 68px minmax(0, 1fr);
  align-items: center;
  gap: 40px;
  min-height: 80px;
  padding: 24px 16px;
  border-bottom: 1px solid #c4c4c4;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
}

.home-news__date {
  white-space: nowrap;
}

.home-news__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  min-height: 24px;
  padding: 0 8px 2px;
  border: 1px solid var(--color-red);
  border-radius: 4px;
  color: var(--color-red);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.home-news__link {
  overflow: hidden;
  color: #464646;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.home-news__link:hover {
  color: var(--color-red);
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-news__inner {
    gap: 104px;
  }

  .home-news__label {
    font-size: 82px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-news {
    padding: 88px 32px;
  }

  .home-news__inner {
    gap: 64px;
  }

  .home-news__heading {
    flex-basis: 220px;
  }

  .home-news__label {
    font-size: 68px;
  }

  .home-news__item {
    grid-template-columns: 88px 68px minmax(0, 1fr);
    gap: 24px;
  }
}

@media (max-width: 767.98px) {
  .home-news {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-news__inner {
    flex-direction: column;
    gap: calc(40 * var(--sp-scale));
    width: 100%;
  }

  .home-news__heading {
    flex: none;
    gap: calc(28 * var(--sp-scale));
    width: 100%;
  }

  .home-news__title-group {
    gap: calc(12 * var(--sp-scale));
  }

  .home-news__label {
    font-size: calc(58 * var(--sp-scale));
  }

  .home-news__title {
    font-size: calc(18 * var(--sp-scale));
  }

  .home-news__button {
    min-width: calc(220 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .home-news__list {
    width: 100%;
    max-width: none;
  }

  .home-news__item {
    grid-template-columns: auto 1fr;
    gap: calc(8 * var(--sp-scale)) calc(16 * var(--sp-scale));
    min-height: 0;
    padding: calc(18 * var(--sp-scale)) 0;
    font-size: calc(15 * var(--sp-scale));
  }

  .home-news__badge {
    justify-self: start;
    min-width: calc(68 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .home-news__link {
    grid-column: 1 / -1;
    white-space: normal;
  }
}
.home-cta {
  position: relative;
  padding: 64px 40px;
  overflow: hidden;
  background: #d50016;
}

.home-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("assets/img/cta-bg-red.webp") center / cover no-repeat;
  pointer-events: none;
}

.home-cta__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  width: min(100%, 1360px);
  margin: 0 auto;
}

.home-cta__card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 444px;
  overflow: hidden;
  border-radius: 8px;
  background: #f8f8f8;
}

.home-cta__card::before,
.home-cta__card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.home-cta__card::before {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.home-cta__card--contact::before {
  background-image: url("assets/img/cta-contact-bg.webp");
}

.home-cta__card--product::before {
  background-image: url("assets/img/cta-product-bg.webp");
}

.home-cta__card::after {
  background: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(3px);
}

.home-cta__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 560px);
  padding: 64px 32px;
  text-align: center;
}

.home-cta__label {
  margin: 0 0 24px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}

.home-cta__title {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-cta__body {
  margin: 24px 0 0;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.7;
}

.home-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  margin-top: 24px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  background: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-cta__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-cta__button--external::after {
  clip-path: polygon(30% 20%, 82% 20%, 82% 72%, 70% 72%, 70% 41%, 34% 77%, 25% 68%, 61% 32%, 30% 32%);
}

.home-cta__button:hover {
  background: var(--color-red);
  color: #fff;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-cta__label {
    font-size: 78px;
  }

  .home-cta__content {
    padding-right: 28px;
    padding-left: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-cta {
    padding: 56px 32px;
  }

  .home-cta__card {
    min-height: 400px;
  }

  .home-cta__content {
    padding: 48px 24px;
  }

  .home-cta__label {
    font-size: 62px;
  }

  .home-cta__title {
    font-size: 18px;
  }

  .home-cta__body {
    font-size: 14px;
  }
}

@media (max-width: 767.98px) {
  .home-cta {
    padding: calc(48 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-cta__inner {
    grid-template-columns: 1fr;
    gap: calc(20 * var(--sp-scale));
  }

  .home-cta__card {
    min-height: calc(360 * var(--sp-scale));
  }

  .home-cta__content {
    width: 100%;
    padding: calc(46 * var(--sp-scale)) calc(20 * var(--sp-scale));
  }

  .home-cta__label {
    margin-bottom: calc(16 * var(--sp-scale));
    font-size: calc(56 * var(--sp-scale));
    line-height: 1.15;
    white-space: normal;
  }

  .home-cta__title {
    font-size: calc(18 * var(--sp-scale));
  }

  .home-cta__body {
    margin-top: calc(18 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .home-cta__body br {
    display: none;
  }

  .home-cta__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    margin-top: calc(22 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.content-section {
  width: min(100%, calc(1120 * var(--pc-scale)));
  margin: 0 auto;
  padding: calc(96 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.content-section__title {
  margin: 0 0 calc(24 * var(--pc-scale));
  font-family: var(--font-serif);
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
}

.content-section__body {
  color: var(--color-muted);
}

@media (max-width: 1280px) and (min-width: 768px) {
  .site-header__brand {
    min-width: calc(340 * var(--pc-scale));
  }

  .site-header__company {
    font-size: calc(15 * var(--pc-scale));
  }

  .site-header__nav {
    gap: calc(28 * var(--pc-scale));
  }

  .site-header__cta {
    margin-left: calc(28 * var(--pc-scale));
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .site-header__nav {
    gap: calc(20 * var(--pc-scale));
  }

  .site-header__recruit,
  .site-header__contact {
    width: calc(132 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  :root {
    --pc-scale: 1px;
    --sp-scale: min(calc(100vw / 390), 1px);
    --header-height: calc(60 * var(--sp-scale));
  }

  body {
    font-size: calc(15 * var(--sp-scale));
  }

  .site-header__inner {
    height: var(--header-height);
    padding-left: calc(14 * var(--sp-scale));
  }

  .site-header__brand {
    justify-content: flex-start;
    gap: calc(9 * var(--sp-scale));
    min-width: 0;
    max-width: calc(100% - calc(60 * var(--sp-scale)));
    height: var(--header-height);
  }

  .site-header__logo {
    width: calc(58 * var(--sp-scale));
    height: calc(26 * var(--sp-scale));
  }

  .site-header__company {
    overflow: hidden;
    font-size: calc(12 * var(--sp-scale));
    line-height: 1.4;
    text-overflow: ellipsis;
  }

  .site-header__right {
    display: none;
  }

  .site-header__mobile-actions {
    display: flex;
    align-items: center;
    margin-left: auto;
  }

  .site-header__toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(4 * var(--sp-scale));
    width: calc(60 * var(--sp-scale));
    height: var(--header-height);
  }

  .site-header__toggle span {
    width: calc(22 * var(--sp-scale));
    height: calc(2 * var(--sp-scale));
  }

  .site-header__toggle[aria-expanded="true"] {
    background: #fff;
  }

  .site-header__toggle[aria-expanded="true"] span {
    background: var(--color-red);
  }

  .site-header__toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(calc(6 * var(--sp-scale))) rotate(45deg);
  }

  .site-header__toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
  }

  .site-header__toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(calc(-6 * var(--sp-scale))) rotate(-45deg);
  }

  .drawer-menu {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: block;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    padding-top: var(--header-height);
    overflow-y: auto;
    background: linear-gradient(135deg, rgba(227, 31, 32, 0.98), rgba(151, 0, 9, 0.98));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  .drawer-menu[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .drawer-menu__inner {
    width: min(100%, calc(390 * var(--sp-scale)));
    margin: 0 auto;
    padding: calc(32 * var(--sp-scale)) calc(28 * var(--sp-scale)) calc(48 * var(--sp-scale));
  }

  .drawer-menu__nav {
    display: flex;
    flex-direction: column;
  }

  .drawer-menu__nav a {
    display: flex;
    align-items: center;
    min-height: calc(48 * var(--sp-scale));
    border-bottom: 1px solid rgba(255, 255, 255, 0.34);
    color: #fff;
    font-family: var(--font-serif);
    font-size: calc(16 * var(--sp-scale));
    font-weight: 700;
    letter-spacing: 0.04em;
  }

  .drawer-menu__contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: calc(56 * var(--sp-scale));
    margin-top: calc(32 * var(--sp-scale));
    color: var(--color-red);
    background: #fff;
    font-family: var(--font-serif);
    font-weight: 700;
  }

  .home-fv {
    min-height: calc(520 * var(--sp-scale));
    padding: 0 calc(24 * var(--sp-scale)) calc(82 * var(--sp-scale));
  }

  .home-fv__inner {
    width: 100%;
  }

  .home-fv__catch {
    margin-bottom: calc(18 * var(--sp-scale));
    font-size: calc(20 * var(--sp-scale));
    line-height: 1.8;
  }

  .home-fv__title {
    font-size: calc(58 * var(--sp-scale));
    line-height: 1.05;
    white-space: normal;
  }
  .home-mission {
  position: relative;
  overflow: hidden;
  background: #fff;
}

.home-mission::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  left: 0;
  height: 1602px;
  background:
    radial-gradient(circle at 74% 38%, rgba(255, 164, 80, 0.4) 0, rgba(255, 164, 80, 0.2) 22%, rgba(255, 164, 80, 0) 44%),
    linear-gradient(120deg, #c8001f 0%, #d4001d 42%, #ef3e10 100%);
}

.home-mission__intro,
.home-mission__gallery {
  position: relative;
  z-index: 1;
}

.home-mission__intro {
  min-height: 1019px;
  padding: 160px 40px 0;
}

.home-mission__content {
  position: relative;
  width: min(100%, 1180px);
  margin: 0 auto;
}

.home-mission__text {
  position: relative;
  z-index: 2;
  max-width: 700px;
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
  text-shadow: 0 0 9px rgba(0, 0, 0, 0.25);
}

.home-mission__label {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 24px;
  line-height: 1.5;
}

.home-mission__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 56px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-mission__body {
  margin-top: 40px;
  color: #fff;
  font-size: 20px;
  line-height: 2.4;
}

.home-mission__body p {
  margin: 0;
}

.home-mission__body p + p {
  margin-top: 0;
}

.home-mission__button {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  margin-top: 64px;
  border: 1px solid #fff;
  border-radius: 32px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-mission__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-mission__button:hover {
  background: #fff;
  color: var(--color-red);
}

.home-mission__map {
  position: absolute;
  top: 0;
  right: -88px;
  z-index: 1;
  width: 839px;
  height: 859px;
  pointer-events: none;
}

.home-mission__map img {
  position: absolute;
  top: 0;
  left: -26px;
  width: 893px;
  height: 859px;
  max-width: none;
  object-fit: cover;
  opacity: 0.72;
}

.home-mission__range,
.home-mission__pin,
.home-mission__place {
  position: absolute;
  display: block;
}

.home-mission__range {
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
}

.home-mission__range--large {
  top: 201px;
  left: 237px;
  width: 585px;
  height: 585px;
}

.home-mission__range--middle {
  top: 395px;
  left: 430px;
  width: 198px;
  height: 196px;
}

.home-mission__range--small {
  top: 439px;
  left: 475px;
  width: 109px;
  height: 108px;
}

.home-mission__pin {
  width: 23px;
  height: 23px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.24);
}

.home-mission__pin::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  transform: translate(-50%, -50%);
}

.home-mission__pin--morioka {
  top: 399px;
  left: 536px;
}

.home-mission__pin--sendai {
  top: 482px;
  left: 518px;
}

.home-mission__pin--tokyo {
  top: 651px;
  left: 440px;
}

.home-mission__place {
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2.4;
  white-space: nowrap;
}

.home-mission__place--morioka {
  top: 395px;
  left: 571px;
}

.home-mission__place--sendai {
  top: 476px;
  left: 553px;
}

.home-mission__place--tokyo {
  top: 653px;
  left: 466px;
}

.home-mission__gallery {
  padding: 40px 0 104px;
}

.home-mission__since {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  margin: 0;
  color: #f6f6f6;
  font-family: var(--font-serif);
  font-size: 151px;
  font-weight: 600;
  line-height: 1.2;
  opacity: 0.4;
  text-align: center;
  transform: translateX(-50%);
  white-space: nowrap;
}

.home-mission__gallery-list {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 80px;
  width: 100%;
}

.home-mission__gallery-item {
  position: relative;
  flex: 0 0 auto;
  height: 670px;
}

.home-mission__gallery-item img {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  max-width: none;
  border-radius: 8px;
  object-fit: cover;
}

.home-mission__gallery-item--01 {
  width: 242px;
}

.home-mission__gallery-item--01 img {
  top: 0;
  height: 327px;
}

.home-mission__gallery-item--02 {
  width: 364px;
}

.home-mission__gallery-item--02 img {
  top: 224px;
  height: 445px;
}

.home-mission__gallery-item--03 {
  width: 262px;
}

.home-mission__gallery-item--03 img {
  top: 130px;
  height: 283px;
}

.home-mission__gallery-item--04 {
  width: 370px;
}

.home-mission__gallery-item--04 img {
  top: 214px;
  height: 399px;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-mission__intro {
    min-height: 900px;
    padding-top: 130px;
  }

  .home-mission__title {
    font-size: 48px;
  }

  .home-mission__body {
    font-size: 18px;
  }

  .home-mission__map {
    right: -170px;
    transform: scale(0.86);
    transform-origin: top right;
  }

  .home-mission__gallery-list {
    gap: 48px;
    transform: scale(0.88);
    transform-origin: top center;
  }

  .home-mission__gallery {
    padding-bottom: 0;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-mission__intro {
    min-height: 820px;
    padding-top: 104px;
  }

  .home-mission__title {
    font-size: 40px;
  }

  .home-mission__text {
    max-width: 560px;
  }

  .home-mission__map {
    top: 120px;
    right: -300px;
    opacity: 0.75;
    transform: scale(0.72);
  }

  .home-mission__since {
    font-size: 118px;
  }

  .home-mission__gallery-list {
    gap: 32px;
    transform: scale(0.74);
  }

  .home-mission__gallery {
    min-height: 620px;
    padding-top: 32px;
  }
}
.home-service {
  display: flex;
  align-items: stretch;
  min-height: 648px;
  background: #eeeeee;
}

.home-service__image {
  flex: 0 0 597px;
  min-height: 648px;
  overflow: hidden;
}

.home-service__image img,
.home-service__image video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.home-service__content {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  min-width: 0;
  padding: 80px 40px 80px 64px;
  background: #eeeeee;
}

.home-service__inner {
  width: min(100%, 650px);
  padding-bottom: 48px;
}

.home-service__label {
  margin: 0 0 8px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-service__group {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.home-service__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-service__line {
  display: block;
  flex: 0 0 64px;
  width: 64px;
  height: 1px;
  background: var(--color-red);
}

.home-service__title {
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-service__body {
  margin: -16px 0 0;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-service__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-service__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-service__button:hover {
  background: var(--color-red);
  color: #fff;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-service__image {
    flex-basis: 46%;
  }

  .home-service__content {
    padding-left: 48px;
  }

  .home-service__label {
    font-size: 78px;
  }

  .home-service__title {
    font-size: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-service {
    min-height: 560px;
  }

  .home-service__image {
    flex-basis: 42%;
    min-height: 560px;
  }

  .home-service__content {
    padding: 64px 32px;
  }

  .home-service__inner {
    padding-bottom: 0;
  }

  .home-service__label {
    font-size: 62px;
  }

  .home-service__heading-row {
    gap: 18px;
  }

  .home-service__line {
    flex-basis: 48px;
    width: 48px;
  }

  .home-service__title {
    font-size: 24px;
  }
}

@media (max-width: 767.98px) {
  .home-service {
    flex-direction: column;
    min-height: 0;
  }

  .home-service__image {
    flex: none;
    min-height: 0;
    height: calc(330 * var(--sp-scale));
  }

  .home-service__content {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .home-service__inner {
    width: 100%;
    padding-bottom: 0;
  }

  .home-service__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(50 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-service__group {
    gap: calc(28 * var(--sp-scale));
  }

  .home-service__heading-row {
    align-items: flex-start;
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-service__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
    margin-top: calc(25 * var(--sp-scale));
  }

  .home-service__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
    white-space: normal;
  }

  .home-service__body {
    margin-top: 0;
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-service__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.home-security {
  position: relative;
  min-height: 680px;
  padding: 80px 40px;
  overflow: hidden;
  background: #fff;
}

.home-security::before,
.home-security::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-security::before {
  background-image: url("assets/img/security-bg-lines.webp");
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 109.6% 100%;
  opacity: 0.4;
}

.home-security::after {
  background-image:
    linear-gradient(158deg, #fff 0%, #fff 26.8%, rgba(255, 255, 255, 0.3) 64%, rgba(255, 255, 255, 0.92) 100%),
    linear-gradient(356.9deg, rgba(255, 255, 255, 0) 13.3%, #fff 33.9%, rgba(255, 255, 255, 0.912) 65.8%, rgba(255, 255, 255, 0.6) 87.1%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.home-security__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 34px;
  width: min(100%, 1180px);
  min-height: 520px;
  margin: 0 auto;
}

.home-security__content {
  flex: 0 0 578px;
  padding-bottom: 48px;
}

.home-security__label {
  margin: 0 0 8px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-security__group {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.home-security__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-security__line {
  display: block;
  flex: 0 0 56px;
  width: 56px;
  height: 1px;
  background: var(--color-red);
}

.home-security__title {
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-security__body {
  margin-top: -16px;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-security__body p {
  margin: 0;
}

.home-security__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-security__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-security__button:hover {
  background: var(--color-red);
  color: #fff;
}

.home-security__image {
  flex: 0 0 568px;
  overflow: hidden;
  border-radius: 8px;
}

.home-security__image img {
  display: block;
  width: 100%;
  height: 399px;
  max-width: none;
  object-fit: cover;
  border-radius: 8px;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-security__inner {
    gap: 32px;
  }

  .home-security__content {
    flex-basis: 50%;
  }

  .home-security__image {
    flex-basis: 48%;
  }

  .home-security__label {
    font-size: 78px;
  }

  .home-security__title {
    font-size: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-security {
    min-height: 610px;
    padding: 64px 32px;
  }

  .home-security__inner {
    gap: 28px;
    min-height: 482px;
  }

  .home-security__content {
    padding-bottom: 0;
  }

  .home-security__label {
    font-size: 62px;
  }

  .home-security__heading-row {
    align-items: flex-start;
    gap: 18px;
  }

  .home-security__line {
    flex-basis: 48px;
    width: 48px;
    margin-top: 25px;
  }

  .home-security__title {
    font-size: 24px;
    line-height: 1.8;
    white-space: normal;
  }

  .home-security__image img {
    height: 340px;
  }
}

@media (max-width: 767.98px) {
  .home-security {
    min-height: 0;
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .home-security::before,
  .home-security::after {
    background-size: auto 100%;
  }

  .home-security__inner {
    flex-direction: column;
    align-items: stretch;
    gap: calc(32 * var(--sp-scale));
    min-height: 0;
  }

  .home-security__content {
    flex: none;
    width: 100%;
    padding-bottom: 0;
  }

  .home-security__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(54 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-security__group {
    gap: calc(28 * var(--sp-scale));
  }

  .home-security__heading-row {
    align-items: flex-start;
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-security__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
    margin-top: calc(25 * var(--sp-scale));
  }

  .home-security__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
    white-space: normal;
  }

  .home-security__body {
    margin-top: 0;
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-security__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .home-security__image {
    flex: none;
    width: 100%;
  }

  .home-security__image img {
    height: auto;
    aspect-ratio: 568 / 399;
  }
}
.home-recruit {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 640px;
  padding: 80px 40px;
  overflow: hidden;
  color: #fff;
  background: #001435;
}

.home-recruit::before,
.home-recruit::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-recruit::before {
  z-index: 0;
  background: url("assets/img/recruit-bg-blue.webp") center / cover no-repeat;
}

.home-recruit::after {
  z-index: 1;
  background: rgba(0, 20, 53, 0.8);
}

.home-recruit__panel {
  position: absolute;
  z-index: 2;
  top: 80px;
  left: 0;
  width: calc(100% - 80px);
  height: 480px;
  background: url("assets/img/recruit-panel-red.webp") center / cover no-repeat;
  pointer-events: none;
}

.home-recruit__inner {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  width: min(100%, 1180px);
  min-height: 456px;
  margin: 0 auto;
  padding: 40px 0 80px;
}

.home-recruit__content {
  flex: 0 1 652px;
}

.home-recruit__label {
  margin: 0 0 8px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.home-recruit__group {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.home-recruit__heading-row {
  display: flex;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding-left: 8px;
}

.home-recruit__line {
  display: block;
  flex: 0 0 64px;
  width: 64px;
  height: 1px;
  background: #fff;
}

.home-recruit__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  white-space: nowrap;
}

.home-recruit__body {
  width: 100%;
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-recruit__action {
  display: flex;
  flex: 1 1 auto;
  justify-content: flex-end;
  min-width: 0;
  padding: 40px 80px 16px 0;
}

.home-recruit__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 240px;
  height: 240px;
  padding: 24px;
  border: 1px solid #fff;
  border-radius: 50%;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-recruit__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-recruit__button:hover {
  background: #fff;
  color: var(--color-red);
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-recruit__inner {
    gap: 40px;
  }

  .home-recruit__content {
    flex-basis: 58%;
  }

  .home-recruit__label {
    font-size: 78px;
  }

  .home-recruit__title {
    font-size: 28px;
  }

  .home-recruit__action {
    padding-right: 40px;
  }

  .home-recruit__button {
    width: 220px;
    height: 220px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-recruit {
    min-height: 600px;
    padding: 70px 32px;
  }

  .home-recruit__panel {
    top: 70px;
    width: calc(100% - 48px);
    height: 460px;
  }

  .home-recruit__inner {
    min-height: 420px;
    padding-bottom: 56px;
  }

  .home-recruit__label {
    font-size: 62px;
  }

  .home-recruit__heading-row {
    gap: 18px;
  }

  .home-recruit__line {
    flex-basis: 48px;
    width: 48px;
  }

  .home-recruit__title {
    font-size: 24px;
  }

  .home-recruit__action {
    padding-right: 20px;
  }

  .home-recruit__button {
    width: 190px;
    height: 190px;
    font-size: 16px;
  }
}

@media (max-width: 767.98px) {
  .home-recruit {
    min-height: 0;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-recruit__panel {
    top: calc(40 * var(--sp-scale));
    left: 0;
    width: 100%;
    height: calc(520 * var(--sp-scale));
  }

  .home-recruit__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(36 * var(--sp-scale));
    min-height: calc(432 * var(--sp-scale));
    padding: calc(36 * var(--sp-scale)) 0 calc(48 * var(--sp-scale));
  }

  .home-recruit__content {
    flex: none;
    width: 100%;
  }

  .home-recruit__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(58 * var(--sp-scale));
    line-height: 1.25;
    white-space: normal;
  }

  .home-recruit__group {
    gap: calc(18 * var(--sp-scale));
  }

  .home-recruit__heading-row {
    gap: calc(14 * var(--sp-scale));
    padding-left: 0;
  }

  .home-recruit__line {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
  }

  .home-recruit__title {
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.8;
  }

  .home-recruit__body {
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-recruit__action {
    justify-content: flex-start;
    width: 100%;
    padding: 0;
  }

  .home-recruit__button {
    width: calc(176 * var(--sp-scale));
    height: calc(176 * var(--sp-scale));
    padding: calc(20 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.home-news {
  padding: 104px 40px;
  background: #f6f6f6;
}

.home-news__inner {
  display: flex;
  align-items: flex-start;
  gap: 172px;
  width: min(100%, 1200px);
  margin: 0 auto;
}

.home-news__heading {
  display: flex;
  flex: 0 0 257px;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
}

.home-news__title-group {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  font-family: var(--font-serif);
  font-weight: 600;
}

.home-news__label {
  margin: 0;
  color: var(--color-red);
  font-size: 96px;
  line-height: 1;
}

.home-news__title {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 2;
}

.home-news__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-news__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-news__button:hover {
  background: var(--color-red);
  color: #fff;
}

.home-news__list {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 807px;
  border-top: 1px solid #c4c4c4;
}

.home-news__item {
  display: grid;
  grid-template-columns: 88px 68px minmax(0, 1fr);
  align-items: center;
  gap: 40px;
  min-height: 80px;
  padding: 24px 16px;
  border-bottom: 1px solid #c4c4c4;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
}

.home-news__date {
  white-space: nowrap;
}

.home-news__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  min-height: 24px;
  padding: 0 8px 2px;
  border: 1px solid var(--color-red);
  border-radius: 4px;
  color: var(--color-red);
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.home-news__link {
  overflow: hidden;
  color: #464646;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.home-news__link:hover {
  color: var(--color-red);
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-news__inner {
    gap: 104px;
  }

  .home-news__label {
    font-size: 82px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-news {
    padding: 88px 32px;
  }

  .home-news__inner {
    gap: 64px;
  }

  .home-news__heading {
    flex-basis: 220px;
  }

  .home-news__label {
    font-size: 68px;
  }

  .home-news__item {
    grid-template-columns: 88px 68px minmax(0, 1fr);
    gap: 24px;
  }
}

@media (max-width: 767.98px) {
  .home-news {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-news__inner {
    flex-direction: column;
    gap: calc(40 * var(--sp-scale));
    width: 100%;
  }

  .home-news__heading {
    flex: none;
    gap: calc(28 * var(--sp-scale));
    width: 100%;
  }

  .home-news__title-group {
    gap: calc(12 * var(--sp-scale));
  }

  .home-news__label {
    font-size: calc(58 * var(--sp-scale));
  }

  .home-news__title {
    font-size: calc(18 * var(--sp-scale));
  }

  .home-news__button {
    min-width: calc(220 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .home-news__list {
    width: 100%;
    max-width: none;
  }

  .home-news__item {
    grid-template-columns: auto 1fr;
    gap: calc(8 * var(--sp-scale)) calc(16 * var(--sp-scale));
    min-height: 0;
    padding: calc(18 * var(--sp-scale)) 0;
    font-size: calc(15 * var(--sp-scale));
  }

  .home-news__badge {
    justify-self: start;
    min-width: calc(68 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .home-news__link {
    grid-column: 1 / -1;
    white-space: normal;
  }
}
.home-cta {
  position: relative;
  padding: 64px 40px;
  overflow: hidden;
  background: #d50016;
}

.home-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("assets/img/cta-bg-red.webp") center / cover no-repeat;
  pointer-events: none;
}

.home-cta__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  width: min(100%, 1360px);
  margin: 0 auto;
}

.home-cta__card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 444px;
  overflow: hidden;
  border-radius: 8px;
  background: #f8f8f8;
}

.home-cta__card::before,
.home-cta__card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.home-cta__card::before {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.home-cta__card--contact::before {
  background-image: url("assets/img/cta-contact-bg.webp");
}

.home-cta__card--product::before {
  background-image: url("assets/img/cta-product-bg.webp");
}

.home-cta__card::after {
  background: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(3px);
}

.home-cta__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 560px);
  padding: 64px 32px;
  text-align: center;
}

.home-cta__label {
  margin: 0 0 24px;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: 96px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1;
  white-space: nowrap;
}

.home-cta__title {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.home-cta__body {
  margin: 24px 0 0;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.7;
}

.home-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 256px;
  min-height: 64px;
  margin-top: 24px;
  padding: 16px;
  border: 1px solid var(--color-red);
  border-radius: 32px;
  color: var(--color-red);
  background: #fff;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.home-cta__button::after {
  content: "";
  width: 16px;
  height: 16px;
  background: currentColor;
  clip-path: polygon(22% 47%, 67% 47%, 50% 30%, 58% 22%, 88% 52%, 58% 82%, 50% 74%, 67% 57%, 22% 57%);
}

.home-cta__button--external::after {
  clip-path: polygon(30% 20%, 82% 20%, 82% 72%, 70% 72%, 70% 41%, 34% 77%, 25% 68%, 61% 32%, 30% 32%);
}

.home-cta__button:hover {
  background: var(--color-red);
  color: #fff;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .home-cta__label {
    font-size: 78px;
  }

  .home-cta__content {
    padding-right: 28px;
    padding-left: 28px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .home-cta {
    padding: 56px 32px;
  }

  .home-cta__card {
    min-height: 400px;
  }

  .home-cta__content {
    padding: 48px 24px;
  }

  .home-cta__label {
    font-size: 62px;
  }

  .home-cta__title {
    font-size: 18px;
  }

  .home-cta__body {
    font-size: 14px;
  }
}

@media (max-width: 767.98px) {
  .home-cta {
    padding: calc(48 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-cta__inner {
    grid-template-columns: 1fr;
    gap: calc(20 * var(--sp-scale));
  }

  .home-cta__card {
    min-height: calc(360 * var(--sp-scale));
  }

  .home-cta__content {
    width: 100%;
    padding: calc(46 * var(--sp-scale)) calc(20 * var(--sp-scale));
  }

  .home-cta__label {
    margin-bottom: calc(16 * var(--sp-scale));
    font-size: calc(56 * var(--sp-scale));
    line-height: 1.15;
    white-space: normal;
  }

  .home-cta__title {
    font-size: calc(18 * var(--sp-scale));
  }

  .home-cta__body {
    margin-top: calc(18 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .home-cta__body br {
    display: none;
  }

  .home-cta__button {
    min-width: calc(230 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    margin-top: calc(22 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }
}
.content-section {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .content-section__title {
    font-size: calc(26 * var(--sp-scale));
  }

}


.service-strength {
  position: relative;
  overflow: hidden;
  min-height: calc(860 * var(--pc-scale));
  background: #fff;
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.service-strength__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.service-strength__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-strength__inner {
  position: relative;
  z-index: 1;
  width: min(100%, calc(1180 * var(--pc-scale)));
  min-height: calc(700 * var(--pc-scale));
  margin: 0 auto;
}

.service-strength__heading {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  width: calc(260 * var(--pc-scale));
  font-family: var(--font-mincho);
  font-weight: 600;
}

.service-strength__label {
  margin: 0;
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2.4;
}

.service-strength__title {
  margin: 0;
  color: #303030;
  font-size: calc(40 * var(--pc-scale));
  line-height: 1.5;
}

.service-strength__diagram {
  width: min(100%, calc(1221 * var(--pc-scale)));
  margin: calc(-26 * var(--pc-scale)) auto 0;
}

.service-strength__diagram-image {
  display: block;
  width: 100%;
  height: auto;
}

.service-strength__map {
  position: absolute;
  top: calc(112 * var(--pc-scale));
  left: 50%;
  width: calc(322 * var(--pc-scale));
  height: auto;
  opacity: 0.9;
  transform: translateX(-50%);
}

.service-strength__core {
  position: absolute;
  top: calc(150 * var(--pc-scale));
  left: 50%;
  display: grid;
  place-items: center;
  width: calc(343 * var(--pc-scale));
  height: calc(343 * var(--pc-scale));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  color: #000;
  font-family: var(--font-mincho);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  transform: translateX(-50%);
}

.service-strength__logo {
  width: calc(85 * var(--pc-scale));
  height: auto;
  margin-top: calc(28 * var(--pc-scale));
}

.service-strength__core p {
  margin: calc(14 * var(--pc-scale)) 0 0;
}

.service-strength-card {
  position: absolute;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc(190 * var(--pc-scale));
  height: calc(190 * var(--pc-scale));
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 calc(20 * var(--pc-scale)) rgba(0, 0, 0, 0.06);
  font-family: var(--font-mincho);
  font-weight: 600;
  text-align: center;
}

.service-strength-card--technology {
  top: calc(28 * var(--pc-scale));
  left: calc(495 * var(--pc-scale));
}

.service-strength-card--expertise {
  top: calc(308 * var(--pc-scale));
  left: calc(326 * var(--pc-scale));
}

.service-strength-card--onestop {
  top: calc(301 * var(--pc-scale));
  left: calc(675 * var(--pc-scale));
}

.service-strength-card__num,
.service-strength-card__title,
.service-strength-card__en {
  margin: 0;
}

.service-strength-card__num {
  color: #e31f20;
  font-size: calc(18 * var(--pc-scale));
  line-height: 1.5;
}

.service-strength-card__title {
  margin-top: calc(8 * var(--pc-scale));
  color: #000;
  font-size: calc(28 * var(--pc-scale));
  line-height: 1.5;
}

.service-strength-card__title--narrow {
  font-size: calc(25 * var(--pc-scale));
}

.service-strength-card__en {
  color: #e93a00;
  font-size: calc(13 * var(--pc-scale));
  line-height: 1.5;
}

.service-strength-note {
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--pc-scale));
  font-family: "Noto Sans JP", sans-serif;
  font-size: calc(15 * var(--pc-scale));
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: calc(1.5 * var(--pc-scale));
}

.service-strength-note--right {
  top: calc(25 * var(--pc-scale));
  right: 0;
  width: calc(420 * var(--pc-scale));
}

.service-strength-note--left {
  top: calc(292 * var(--pc-scale));
  left: calc(20 * var(--pc-scale));
  width: calc(310 * var(--pc-scale));
}

.service-strength-note p {
  display: flex;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  margin: 0;
}

.service-strength-note img {
  flex: 0 0 calc(24 * var(--pc-scale));
  width: calc(24 * var(--pc-scale));
  height: calc(24 * var(--pc-scale));
}

.service-strength__icon {
  position: absolute;
  z-index: 2;
  width: auto;
  height: auto;
}

.service-strength__icon--gear {
  top: calc(31 * var(--pc-scale));
  left: calc(450 * var(--pc-scale));
  width: calc(90 * var(--pc-scale));
}

.service-strength__icon--people {
  top: calc(430 * var(--pc-scale));
  left: calc(275 * var(--pc-scale));
  width: calc(96 * var(--pc-scale));
}

.service-strength__icon--building {
  top: calc(430 * var(--pc-scale));
  right: calc(136 * var(--pc-scale));
  width: calc(87 * var(--pc-scale));
}

.service-strength-message {
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: min(100%, calc(721 * var(--pc-scale)));
  border: calc(2 * var(--pc-scale)) solid #e31f20;
  border-radius: calc(4 * var(--pc-scale));
  background: #fff;
  padding: calc(16 * var(--pc-scale)) calc(24 * var(--pc-scale)) calc(16 * var(--pc-scale)) calc(40 * var(--pc-scale));
  transform: translateX(-50%);
}

.service-strength-message img {
  flex: 0 0 calc(41 * var(--pc-scale));
  width: calc(41 * var(--pc-scale));
  height: auto;
}

.service-strength-message p {
  margin: 0;
  color: #e31f20;
  font-family: var(--font-mincho);
  font-size: calc(20 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  .service-strength {
    min-height: 0;
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-strength__inner {
    min-height: 0;
    width: 100%;
  }

  .service-strength__heading {
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .service-strength__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-strength__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .service-strength__diagram {
    width: 100%;
    margin-top: calc(32 * var(--sp-scale));
  }

  .service-strength__map,
  .service-strength__core,
  .service-strength-card,
  .service-strength-note,
  .service-strength__icon,
  .service-strength-message {
    position: static;
    transform: none;
  }

  .service-strength__map {
    order: 1;
    width: calc(220 * var(--sp-scale));
    margin-bottom: calc(-170 * var(--sp-scale));
    opacity: 0.7;
  }

  .service-strength__core {
    order: 2;
    width: calc(260 * var(--sp-scale));
    height: calc(260 * var(--sp-scale));
    font-size: calc(16 * var(--sp-scale));
  }

  .service-strength__logo {
    width: calc(78 * var(--sp-scale));
    margin-top: calc(22 * var(--sp-scale));
  }

  .service-strength__core p {
    margin-top: calc(12 * var(--sp-scale));
  }

  .service-strength-card {
    width: calc(174 * var(--sp-scale));
    height: calc(174 * var(--sp-scale));
  }

  .service-strength-card--technology {
    order: 3;
  }

  .service-strength-card--expertise {
    order: 5;
  }

  .service-strength-card--onestop {
    order: 7;
  }

  .service-strength-card__num {
    font-size: calc(16 * var(--sp-scale));
  }

  .service-strength-card__title {
    font-size: calc(24 * var(--sp-scale));
  }

  .service-strength-card__title--narrow {
    font-size: calc(22 * var(--sp-scale));
  }

  .service-strength-card__en {
    font-size: calc(12 * var(--sp-scale));
  }

  .service-strength-note {
    width: 100%;
    gap: calc(14 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    letter-spacing: 0;
  }

  .service-strength-note--right {
    order: 4;
  }

  .service-strength-note--left {
    order: 6;
  }

  .service-strength-note p {
    gap: calc(8 * var(--sp-scale));
  }

  .service-strength-note img {
    flex-basis: calc(22 * var(--sp-scale));
    width: calc(22 * var(--sp-scale));
    height: calc(22 * var(--sp-scale));
  }

  .service-strength__icon {
    display: none;
  }

  .service-strength-message {
    order: 8;
    width: 100%;
    gap: calc(14 * var(--sp-scale));
    padding: calc(14 * var(--sp-scale));
  }

  .service-strength-message img {
    flex-basis: calc(34 * var(--sp-scale));
    width: calc(34 * var(--sp-scale));
  }

  .service-strength-message p {
    font-size: calc(15 * var(--sp-scale));
    white-space: normal;
    text-align: left;
  }
}
/* Service list */
.service-list {
  background: #fff;
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.service-list__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(64 * var(--pc-scale));
  width: min(100%, calc(1181 * var(--pc-scale)));
  margin: 0 auto;
}

.service-list__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
  font-family: var(--font-mincho);
  font-weight: 600;
  text-align: center;
}

.service-list__label,
.service-list__title {
  margin: 0;
}

.service-list__label {
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2.4;
}

.service-list__title {
  color: #464646;
  font-size: calc(40 * var(--pc-scale));
  line-height: 1.5;
}

.service-list__items {
  display: flex;
  flex-direction: column;
  gap: calc(104 * var(--pc-scale));
  width: 100%;
}

.service-list-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: calc(80 * var(--pc-scale));
  width: 100%;
  background: #fff;
}

.service-list-card--reverse .service-list-card__media {
  order: 2;
}

.service-list-card--reverse .service-list-card__body {
  order: 1;
}

.service-list-card--reverse {
  gap: calc(64 * var(--pc-scale));
}

.service-list-card__button--external img {
  transform: rotate(-45deg);
}

.service-list-card__media {
  overflow: hidden;
  aspect-ratio: 578 / 356;
  width: 100%;
  margin: 0;
  border-radius: calc(8 * var(--pc-scale));
  background: #d9d9d9;
}

.service-list-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-list-card__media--contain {
  background: #fff;
}

.service-list-card__media--contain img {
  object-fit: contain;
}

.service-list-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  font-family: var(--font-mincho);
  font-weight: 600;
}

.service-list-card__number {
  margin: 0;
  color: #e31f20;
  font-size: calc(14 * var(--pc-scale));
  line-height: 2.4;
}

.service-list-card__title {
  width: 100%;
  margin: 0;
  padding-bottom: calc(16 * var(--pc-scale));
  border-bottom: 1px solid #d7d7d7;
  color: #303030;
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
}

.service-list-card__text {
  width: 100%;
  margin: calc(16 * var(--pc-scale)) 0 0;
  color: #303030;
  font-size: calc(15 * var(--pc-scale));
  line-height: 2;
}

.service-list-card__tags {
  width: 100%;
  margin: calc(16 * var(--pc-scale)) 0 0;
  color: #686868;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.7;
}

.service-list-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  min-width: calc(256 * var(--pc-scale));
  min-height: calc(48 * var(--pc-scale));
  margin-top: calc(40 * var(--pc-scale));
  border: 1px solid #e31f20;
  border-radius: calc(32 * var(--pc-scale));
  padding: calc(12 * var(--pc-scale)) calc(16 * var(--pc-scale));
  color: #e31f20;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.7;
  text-align: center;
  transition: background 0.2s ease, color 0.2s ease;
}

.service-list-card__button img {
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
  transition: transform 0.2s ease;
}
.service-list-card__button--internal img {
  box-sizing: content-box;
  flex-basis: calc(10.3333 * var(--pc-scale));
  width: calc(10.3333 * var(--pc-scale));
  height: calc(10.3333 * var(--pc-scale));
  padding: calc(2.83335 * var(--pc-scale));
}


.service-list-card__button:hover {
  background: #e31f20;
  color: #fff;
}

.service-list-card__button:hover img {
  transform: translateX(calc(3 * var(--pc-scale)));
  filter: brightness(0) invert(1);
}

.service-list-card__button--external:hover img {
  transform: translate(calc(2 * var(--pc-scale)), calc(-2 * var(--pc-scale))) rotate(-45deg);
}

@media (max-width: 1024px) and (min-width: 768px) {
  .service-list__inner {
    gap: calc(56 * var(--pc-scale));
  }

  .service-list__items {
    gap: calc(80 * var(--pc-scale));
  }

  .service-list-card {
    gap: calc(48 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .service-list {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-list__inner {
    gap: calc(40 * var(--sp-scale));
    width: 100%;
  }

  .service-list__heading {
    gap: calc(6 * var(--sp-scale));
  }

  .service-list__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-list__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .service-list__items {
    gap: calc(56 * var(--sp-scale));
  }

  .service-list-card {
    grid-template-columns: 1fr;
    gap: calc(24 * var(--sp-scale));
  }

  .service-list-card--reverse {
    gap: calc(24 * var(--sp-scale));
  }

  .service-list-card--reverse .service-list-card__media,
  .service-list-card--reverse .service-list-card__body {
    order: initial;
  }

  .service-list-card__media {
    border-radius: calc(8 * var(--sp-scale));
  }

  .service-list-card__number {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-list-card__title {
    padding-bottom: calc(12 * var(--sp-scale));
    font-size: calc(26 * var(--sp-scale));
  }

  .service-list-card__text {
    margin-top: calc(14 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.9;
  }

  .service-list-card__text br {
    display: none;
  }

  .service-list-card__tags {
    margin-top: calc(12 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .service-list-card__button {
    width: min(100%, calc(256 * var(--sp-scale)));
    min-height: calc(48 * var(--sp-scale));
    margin-top: calc(28 * var(--sp-scale));
    border-radius: calc(32 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(16 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .service-list-card__button img {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }
  .service-list-card__button--internal img {
    box-sizing: content-box;
    flex-basis: calc(10.3333 * var(--sp-scale));
    width: calc(10.3333 * var(--sp-scale));
    height: calc(10.3333 * var(--sp-scale));
    padding: calc(2.83335 * var(--sp-scale));
  }
}
/* Page index navigation */
.company-index,
.service-index {
  background: #fff;
  padding: calc(40 * var(--pc-scale));
}

.company-index__inner,
.service-index__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.company-index__link,
.service-index__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  width: calc(140 * var(--pc-scale));
  min-width: calc(140 * var(--pc-scale));
  min-height: calc(32 * var(--pc-scale));
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  transition: color 0.2s ease;
}

.company-index__link:hover,
.service-index__link:hover {
  color: var(--color-red);
}

.company-index__link img,
.service-index__link img {
  display: block;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}
/* Company message */
.company-message {
  position: relative;
  overflow: hidden;
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #d40017;
  color: #fff;
}

.company-message__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.company-message__bg img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.company-message__logo {
  position: absolute;
  z-index: 1;
  top: calc(43 * var(--pc-scale));
  right: calc(2 * var(--pc-scale));
  width: calc(647 * var(--pc-scale));
  height: calc(289 * var(--pc-scale));
  opacity: 0.5;
  pointer-events: none;
}

.company-message__logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.company-message__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.company-message__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  width: 100%;
  min-height: calc(195 * var(--pc-scale));
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
}

.company-message__label {
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2.4;
}

.company-message__title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: calc(18 * var(--pc-scale));
  margin: 0;
  color: #fff;
  font-size: calc(56 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
}

.company-message__title small {
  color: #fff;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.8;
}

.company-message__card {
  position: relative;
  width: 100%;
  padding: calc(80 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  color: var(--color-text);
  font-family: var(--font-serif);
  font-weight: 600;
}

.company-message__quote {
  position: absolute;
  top: calc(-15 * var(--pc-scale));
  left: calc(56 * var(--pc-scale));
  width: calc(62 * var(--pc-scale));
  height: calc(48 * var(--pc-scale));
  object-fit: contain;
  transform: rotate(180deg);
}

.company-message__body {
  color: #303030;
  font-size: calc(18 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2;
}

.company-message__body p {
  margin: 0;
}

.company-message__body p + p {
  margin-top: calc(32 * var(--pc-scale));
}

.company-message__signature {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-top: calc(32 * var(--pc-scale));
  color: #464646;
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2;
  text-align: right;
}

.company-message__signature p {
  margin: 0;
}
/* Company profile */
.company-profile {
  position: relative;
  overflow: hidden;
  min-height: calc(1148 * var(--pc-scale));
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #87b8d5;
  scroll-margin-top: var(--header-height);
}

.company-profile__bg,
.company-profile__overlay {
  position: absolute;
  inset: 0;
}

.company-profile__bg {
  z-index: 0;
}

.company-profile__bg img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center bottom;
}

.company-profile__overlay {
  z-index: 1;
  background: rgba(0, 0, 0, 0.2);
}

.company-profile__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: calc(80 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.company-profile__heading {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  min-width: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
}

.company-profile__label {
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2.4;
}

.company-profile__title {
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
}

.company-profile__card {
  flex: 0 0 calc(884 * var(--pc-scale));
  width: calc(884 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: rgba(255, 255, 255, 0.85);
}

.company-profile__table {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin: 0;
  font-family: var(--font-serif);
  font-size: calc(15 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.7;
}

.company-profile__row {
  display: grid;
  grid-template-columns: calc(192 * var(--pc-scale)) minmax(0, 1fr);
  gap: calc(8 * var(--pc-scale));
  min-height: calc(58 * var(--pc-scale));
}

.company-profile__row dt,
.company-profile__row dd {
  display: flex;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: calc(16 * var(--pc-scale));
  color: #303030;
  border-bottom: calc(1 * var(--pc-scale)) solid #cacaca;
}

.company-profile__row dt {
  border-color: var(--color-red);
}

.company-profile__row dd {
  justify-content: flex-start;
}

.company-profile__row--tall dt,
.company-profile__row--tall dd {
  align-items: center;
}

.company-profile__row--wide {
  min-height: calc(84 * var(--pc-scale));
}

.company-profile__row--cert {
  min-height: calc(112 * var(--pc-scale));
}

.company-profile__row--cert dt {
  color: #464646;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.company-profile__row--cert dd {
  gap: calc(8 * var(--pc-scale));
}

.company-profile__row a {
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--pc-scale));
}

.company-profile__cert {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 calc(84.65 * var(--pc-scale));
  width: calc(84.65 * var(--pc-scale));
  height: calc(79.95 * var(--pc-scale));
  background: #fff;
}

.company-profile__cert img {
  position: absolute;
  display: block;
  max-width: none;
  object-fit: fill;
}

.company-profile__cert:nth-child(1) img {
  top: 7.54%;
  left: 9.57%;
  width: 80.2%;
  height: 84.91%;
}

.company-profile__cert:nth-child(2) img {
  top: -10.6%;
  left: 8.03%;
  width: 82.82%;
  height: 121.2%;
}

.company-profile__cert:nth-child(3) img {
  top: 6.44%;
  left: 11.35%;
  width: 76.41%;
  height: 86.01%;
}

.company-profile__cert:nth-child(4) img {
  top: 12.59%;
  left: 9.32%;
  width: 81.55%;
  height: 74.81%;
}
/* Company history */
.company-history {
  position: relative;
  overflow: hidden;
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
  scroll-margin-top: var(--header-height);
}

.company-history__wave {
  position: absolute;
  z-index: 0;
  top: calc(32 * var(--pc-scale));
  left: 0;
  width: 100%;
  min-height: calc(278 * var(--pc-scale));
  pointer-events: none;
}

.company-history__wave img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.company-history__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.company-history__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: 100%;
  min-height: 0;
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.company-history__title-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
}

.company-history__label {
  width: 100%;
  margin: 0;
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2.4;
}

.company-history__title {
  width: 100%;
  margin: 0;
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
}

.company-history__lead {
  width: 100%;
  margin: 0;
  color: #464646;
  font-size: calc(18 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2;
}

.company-history__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: calc(985 * var(--pc-scale));
  max-width: 100%;
}

.company-history__periods {
  display: flex;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: 100%;
}

.company-history__arrow {
  display: block;
  flex: 0 0 calc(60 * var(--pc-scale));
  width: calc(60 * var(--pc-scale));
  height: calc(60 * var(--pc-scale));
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.company-history__arrow:hover,
.company-history__arrow:focus-visible {
  opacity: 0.82;
  transform: translateY(calc(-2 * var(--pc-scale)));
}

.company-history__arrow img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.company-history__period-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  flex: 1 1 auto;
  width: calc(817 * var(--pc-scale));
  min-width: 0;
  font-family: var(--font-serif);
  font-weight: 600;
}

.company-history__period {
  appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  padding: calc(24 * var(--pc-scale));
  border: 0;
  border-bottom: calc(2 * var(--pc-scale)) solid #e2e2e2;
  background: transparent;
  color: #303030;
  opacity: 0.4;
  font: inherit;
  text-align: center;
  cursor: pointer;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

.company-history__period:hover,
.company-history__period:focus-visible {
  opacity: 0.7;
}

.company-history__period--active {
  border-bottom-color: var(--color-red);
  opacity: 1;
}

.company-history__period-name,
.company-history__period-years {
  margin: 0;
}

.company-history__period-name {
  color: #303030;
  font-size: calc(24 * var(--pc-scale));
  line-height: 1.6;
}

.company-history__period-years {
  color: #303030;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.7;
}

.company-history__period--active .company-history__period-years {
  color: var(--color-red);
}

.company-history__timeline[hidden] {
  display: none;
}

.company-history__timeline {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
  margin: 0;
  padding: 0 calc(80 * var(--pc-scale));
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.company-history__item {
  display: grid;
  grid-template-columns: calc(171 * var(--pc-scale)) minmax(0, 1fr);
  gap: calc(64 * var(--pc-scale));
  width: 100%;
}

.company-history__item dt,
.company-history__item dd {
  margin: 0;
  color: #000;
}

.company-history__item dt {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
  white-space: nowrap;
}

.company-history__item dt img {
  display: block;
  flex: 0 0 calc(12 * var(--pc-scale));
  width: calc(12 * var(--pc-scale));
  height: calc(12 * var(--pc-scale));
}
/* Company philosophy */
.company-philosophy {
  position: relative;
  overflow: hidden;
  min-height: calc(620 * var(--pc-scale));
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  color: #fff;
  background: #0e2a45;
  scroll-margin-top: var(--header-height);
}

.company-philosophy__bg,
.company-philosophy__overlay {
  position: absolute;
  inset: 0;
}

.company-philosophy__bg {
  z-index: 0;
}

.company-philosophy__bg img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}

.company-philosophy__overlay {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(0, 22, 59, 0) 27.994%, rgba(0, 22, 59, 0.11) 100%),
    linear-gradient(176.36deg, rgba(96, 192, 239, 0.6) 0.616%, rgba(96, 192, 239, 0) 80.833%);
}

.company-philosophy__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.company-philosophy__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
}

.company-philosophy__label {
  width: 100%;
  margin: 0;
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2.4;
}

.company-philosophy__title {
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  text-shadow: 0 0 calc(18 * var(--pc-scale)) #0062a3;
}

.company-philosophy__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(24 * var(--pc-scale));
  width: 100%;
}

.company-philosophy__statement {
  max-width: calc(1040 * var(--pc-scale));
  margin: 0;
  color: #fff;
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
  text-shadow: 0 0 calc(18 * var(--pc-scale)) #0062a3;
}

.company-philosophy__line {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(80 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
}

.company-philosophy__line img {
  display: block;
  width: 100%;
  height: 100%;
}

.company-philosophy__text {
  width: 100%;
  margin: 0;
  color: #fff;
  font-size: calc(18 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2;
  text-shadow: 0 0 calc(10 * var(--pc-scale)) rgba(0, 0, 0, 0.57);
}

.company-philosophy__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  min-width: calc(256 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale)) calc(16 * var(--pc-scale)) calc(16 * var(--pc-scale)) calc(24 * var(--pc-scale));
  border: calc(1 * var(--pc-scale)) solid var(--color-red);
  border-radius: calc(32 * var(--pc-scale));
  background: var(--color-red);
  color: #fff;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.company-philosophy__button:hover {
  background: var(--color-red-dark);
  border-color: var(--color-red-dark);
}

.company-philosophy__button-icon {
  position: relative;
  overflow: hidden;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}

.company-philosophy__button-icon-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(9.33 * var(--pc-scale));
  height: calc(9.33 * var(--pc-scale));
  transform: translate(-50%, -50%) rotate(-45deg);
}

.company-philosophy__button-icon img {
  position: absolute;
  inset: -5.36%;
  display: block;
  width: 110.72%;
  height: 110.72%;
  max-width: none;
}
/* Company organization */
.company-organization {
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
  scroll-margin-top: var(--header-height);
}

.company-organization__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(64 * var(--pc-scale));
  width: min(100%, calc(1016 * var(--pc-scale)));
  min-height: calc(1206 * var(--pc-scale));
  margin: 0 auto;
}

.company-organization__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.company-organization__label {
  width: 100%;
  margin: 0;
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
  line-height: 2.4;
}

.company-organization__title {
  width: 100%;
  margin: 0;
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
}

.company-organization__chart {
  width: min(100%, calc(1017 * var(--pc-scale)));
  max-width: 100%;
}

.company-organization__chart-image {
  display: block;
  width: 100%;
  height: auto;
}

.company-organization__main-line {
  position: absolute;
  top: calc(36 * var(--pc-scale));
  left: calc(310 * var(--pc-scale));
  width: calc(2 * var(--pc-scale));
  height: calc(625 * var(--pc-scale));
  background: #cbcbcb;
}

.company-organization__branch {
  position: absolute;
  left: calc(310 * var(--pc-scale));
  display: grid;
  grid-template-columns: calc(277 * var(--pc-scale)) calc(333 * var(--pc-scale));
  column-gap: calc(96 * var(--pc-scale));
  align-items: start;
}

.company-organization__branch::before {
  content: "";
  position: absolute;
  top: calc(35 * var(--pc-scale));
  left: calc(-32 * var(--pc-scale));
  width: calc(32 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: #cbcbcb;
}

.company-organization__branch::after {
  content: "";
  position: absolute;
  top: calc(35 * var(--pc-scale));
  left: calc(277 * var(--pc-scale));
  width: calc(96 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: #cbcbcb;
}

.company-organization__branch--strategic {
  top: 0;
}

.company-organization__branch--first {
  top: calc(161 * var(--pc-scale));
}

.company-organization__branch--second {
  top: calc(282 * var(--pc-scale));
}

.company-organization__branch--admin {
  top: calc(626 * var(--pc-scale));
}

.company-organization__branch--second::after,
.company-organization__branch--admin::after {
  width: calc(64 * var(--pc-scale));
}

.company-organization__head {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(71 * var(--pc-scale));
  padding: calc(20 * var(--pc-scale)) calc(8 * var(--pc-scale));
  border: calc(2 * var(--pc-scale)) solid var(--color-red);
  background: var(--color-red);
  color: #fff;
  font-size: calc(15 * var(--pc-scale));
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  white-space: nowrap;
}

.company-organization__unit,
.company-organization__department {
  background: #f2f2f2;
}

.company-organization__unit {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  min-height: calc(102 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale));
}

.company-organization__unit p,
.company-organization__department {
  margin: 0;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.5;
}

.company-organization__chips {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(4 * var(--pc-scale));
}

.company-organization__chips--row {
  flex-direction: row;
  gap: calc(8 * var(--pc-scale));
}

.company-organization__chips span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: calc(39 * var(--pc-scale));
  padding: calc(8 * var(--pc-scale)) calc(16 * var(--pc-scale));
  border: calc(1 * var(--pc-scale)) solid #cbcbcb;
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  color: #303030;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.5;
  white-space: nowrap;
}

.company-organization__group {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--pc-scale));
}

.company-organization__group::before {
  content: "";
  position: absolute;
  top: calc(36 * var(--pc-scale));
  left: calc(-32 * var(--pc-scale));
  width: calc(2 * var(--pc-scale));
  background: #cbcbcb;
}

.company-organization__group--business::before {
  height: calc(216 * var(--pc-scale));
}

.company-organization__group--admin::before {
  height: calc(365 * var(--pc-scale));
}

.company-organization__group .company-organization__unit,
.company-organization__department {
  position: relative;
}

.company-organization__group .company-organization__unit::before,
.company-organization__department::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(-32 * var(--pc-scale));
  width: calc(32 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: #cbcbcb;
  transform: translateY(-50%);
}

.company-organization__group--admin {
  gap: calc(6 * var(--pc-scale));
}

.company-organization__department {
  display: flex;
  align-items: center;
  min-height: calc(46 * var(--pc-scale));
  padding: calc(12 * var(--pc-scale)) calc(16 * var(--pc-scale));
}
.company-access {
  background: #fbf4f4;
  padding: 104px 40px;
  scroll-margin-top: var(--header-height);
}

.company-access__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
}

.company-access__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.company-access__label {
  margin: 0;
  color: #e31f20;
  font-family: var(--font-mincho);
  font-size: 16px;
  font-weight: 600;
  line-height: 2.4;
}

.company-access__title {
  margin: 0;
  color: #303030;
  font-family: var(--font-mincho);
  font-size: 36px;
  font-weight: 600;
  line-height: 1.5;
}

.company-access__cards {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  width: 100%;
}

.company-access__row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 40px;
  width: 100%;
}

.company-access-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: min(100%, 366px);
  background: #fff;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.06);
}

.company-access-card__map {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 365.8 / 198.169;
  background: #d9d9d9;
}

.company-access-card__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.company-access-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
}

.company-access-card__title {
  width: 100%;
  margin: 0;
  border-left: 3px solid #e31f20;
  padding-left: 16px;
  color: #303030;
  font-family: var(--font-mincho);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.company-access-card__address {
  width: 100%;
  color: #464646;
  font-family: var(--font-mincho);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.7;
}

.company-access-card__address p {
  margin: 0;
}

.company-message__label,
.company-profile__label,
.company-history__label,
.company-philosophy__label,
.company-organization__label,
.company-access__label {
  text-transform: none;
}
/* Service detail FV */
.service-detail-fv {
  position: relative;
  overflow: hidden;
  min-height: calc(578 * var(--pc-scale));
  padding: calc(64 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #e31f20;
  color: #fff;
}

.service-detail-fv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.service-detail-fv__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom center;
}

.service-detail-fv__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, calc(541 * var(--pc-scale))) minmax(0, 1fr);
  align-items: start;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.service-detail-fv__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--pc-scale));
  padding-top: calc(16 * var(--pc-scale));
  font-family: var(--font-mincho);
  font-weight: 600;
}

.service-detail-fv__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(8 * var(--pc-scale));
  width: 100%;
}

.service-detail-fv__label,
.service-detail-fv__title,
.service-detail-fv__lead {
  margin: 0;
}

.service-detail-fv__label {
  color: rgba(255, 255, 255, 0.7);
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.service-detail-fv__title {
  color: #fff;
  font-size: calc(48 * var(--pc-scale));
  line-height: 1.5;
}

.service-detail-fv__title span {
  display: block;
}

.service-detail-fv__lead {
  color: #fff;
  font-size: calc(18 * var(--pc-scale));
  line-height: 2;
}

.service-detail-fv__media {
  overflow: hidden;
  width: 100%;
  height: calc(450 * var(--pc-scale));
  margin: 0;
  border-radius: calc(8 * var(--pc-scale));
  background: #d8d8d8;
}

.service-detail-fv__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-detail-page__content {
  padding-top: calc(96 * var(--pc-scale));
}

@media (max-width: 1024px) and (min-width: 768px) {
  .service-detail-fv__inner {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr);
    gap: calc(32 * var(--pc-scale));
  }

  .service-detail-fv__title {
    font-size: calc(40 * var(--pc-scale));
  }

  .service-detail-fv__lead {
    font-size: calc(16 * var(--pc-scale));
  }

  .service-detail-fv__lead br {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .service-detail-fv {
    min-height: 0;
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-detail-fv__inner {
    grid-template-columns: 1fr;
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .service-detail-fv__copy {
    gap: calc(24 * var(--sp-scale));
    padding-top: 0;
  }

  .service-detail-fv__heading {
    gap: calc(8 * var(--sp-scale));
  }

  .service-detail-fv__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-detail-fv__title {
    font-size: calc(31 * var(--sp-scale));
  }

  .service-detail-fv__lead {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.9;
  }

  .service-detail-fv__lead br {
    display: none;
  }

  .service-detail-fv__media {
    aspect-ratio: 599 / 450;
    height: auto;
    border-radius: calc(8 * var(--sp-scale));
  }

  .service-detail-page__content {
    padding-top: calc(64 * var(--sp-scale));
  }
}

.service-detail-index {
  background: #fff;
  padding: calc(40 * var(--pc-scale));
}

.service-detail-index__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: calc(24 * var(--pc-scale)) calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.service-detail-index__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  width: calc(140 * var(--pc-scale));
  min-width: calc(140 * var(--pc-scale));
  color: #464646;
  font-family: var(--font-mincho);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.service-detail-index__link--wide {
  width: calc(162 * var(--pc-scale));
  min-width: calc(162 * var(--pc-scale));
}

.service-detail-index__link img {
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
  transition: transform 0.2s ease;
}

.service-detail-index__link:hover {
  color: #e31f20;
}

.service-detail-index__link:hover img {
  transform: translateY(calc(2 * var(--pc-scale)));
}

@media (max-width: 767.98px) {
  .service-detail-index {
    padding: calc(32 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-detail-index__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(16 * var(--sp-scale));
    width: min(100%, calc(260 * var(--sp-scale)));
  }

  .service-detail-index__link,
  .service-detail-index__link--wide {
    width: 100%;
    min-width: 0;
    gap: calc(8 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .service-detail-index__link img {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }
}

/* Service system development */
.service-system-development {
  position: relative;
  overflow: hidden;
  background: #fff;
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.service-system-development__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.service-system-development__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.service-system-development__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.service-system-development__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.service-system-development__label,
.service-system-development__title,
.service-system-development__lead {
  margin: 0;
}

.service-system-development__label {
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2.4;
}

.service-system-development__title {
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  line-height: 1.5;
}

.service-system-development__lead {
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-align: center;
}

.service-system-development__diagram {
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0;
}

.service-system-development__diagram img {
  display: block;
  width: 100%;
  height: auto;
}

.service-system-development__center {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 5;
  display: grid;
  place-items: center;
  width: calc(259 * var(--pc-scale));
  height: calc(259 * var(--pc-scale));
  border: calc(22 * var(--pc-scale)) solid rgba(235, 235, 235, 0.7);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 calc(14 * var(--pc-scale)) calc(32 * var(--pc-scale)) rgba(0, 0, 0, 0.08);
  transform: translate(-50%, -50%);
}

.service-system-development__center::before {
  content: "";
  position: absolute;
  inset: calc(-34 * var(--pc-scale));
  border: calc(2 * var(--pc-scale)) solid rgba(210, 210, 210, 0.78);
  border-right-color: transparent;
  border-left-color: transparent;
  border-radius: 50%;
}

.service-system-development__center img {
  position: relative;
  z-index: 1;
  width: calc(142 * var(--pc-scale));
  height: auto;
}

.service-system-development-item {
  position: absolute;
  z-index: 2;
  display: grid;
  align-items: center;
  gap: calc(20 * var(--pc-scale));
  width: calc(405 * var(--pc-scale));
}

.service-system-development-item--public,
.service-system-development-item--private {
  grid-template-columns: calc(188 * var(--pc-scale)) minmax(0, 1fr);
  left: calc(14 * var(--pc-scale));
}

.service-system-development-item--tool,
.service-system-development-item--infra {
  grid-template-columns: minmax(0, 1fr) calc(188 * var(--pc-scale));
  right: calc(14 * var(--pc-scale));
}

.service-system-development-item--public {
  top: calc(14 * var(--pc-scale));
}

.service-system-development-item--private {
  top: calc(262 * var(--pc-scale));
}

.service-system-development-item--tool {
  top: calc(21 * var(--pc-scale));
}

.service-system-development-item--infra {
  top: calc(268 * var(--pc-scale));
}

.service-system-development-item::after {
  content: "";
  position: absolute;
  top: 50%;
  z-index: 0;
  width: calc(270 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: #e31f20;
}

.service-system-development-item::before {
  content: "";
  position: absolute;
  top: 50%;
  z-index: 1;
  width: calc(7 * var(--pc-scale));
  height: calc(7 * var(--pc-scale));
  border-radius: 50%;
  background: #e31f20;
  transform: translateY(-50%);
}

.service-system-development-item--public::after,
.service-system-development-item--private::after {
  left: calc(166 * var(--pc-scale));
}

.service-system-development-item--public::before,
.service-system-development-item--private::before {
  left: calc(188 * var(--pc-scale));
}

.service-system-development-item--tool::after,
.service-system-development-item--infra::after {
  right: calc(166 * var(--pc-scale));
}

.service-system-development-item--tool::before,
.service-system-development-item--infra::before {
  right: calc(188 * var(--pc-scale));
}

.service-system-development-item__card {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(3 * var(--pc-scale));
  width: calc(188 * var(--pc-scale));
  height: calc(188 * var(--pc-scale));
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 calc(10 * var(--pc-scale)) calc(30 * var(--pc-scale)) rgba(0, 0, 0, 0.08);
  text-align: center;
}

.service-system-development-item__card img {
  width: calc(64 * var(--pc-scale));
  height: calc(64 * var(--pc-scale));
  object-fit: contain;
}

.service-system-development-item__card h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(60 * var(--pc-scale));
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(19 * var(--pc-scale));
  font-weight: 800;
  line-height: 1.3;
}

.service-system-development-item__text {
  position: relative;
  z-index: 2;
  margin: 0;
  color: #000;
  font-family: var(--font-base);
  font-size: calc(15 * var(--pc-scale));
  font-weight: 400;
  letter-spacing: calc(1.5 * var(--pc-scale));
  line-height: 1.5;
  text-align: justify;
}

@media (max-width: 1024px) and (min-width: 768px) {
  .service-system-development-item__text {
    font-size: calc(14 * var(--pc-scale));
    letter-spacing: calc(0.8 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .service-system-development {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-system-development__inner {
    gap: calc(24 * var(--sp-scale));
    width: 100%;
  }

  .service-system-development__heading {
    gap: calc(6 * var(--sp-scale));
  }

  .service-system-development__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-system-development__title {
    font-size: calc(28 * var(--sp-scale));
  }

  .service-system-development__lead {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.9;
  }

  .service-system-development__lead br {
    display: none;
  }

  .service-system-development__diagram {
    display: block;
    width: 100%;
    margin-top: calc(8 * var(--sp-scale));
  }

  .service-system-development__center,
  .service-system-development-item {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    transform: none;
  }

  .service-system-development__center {
    order: 0;
    width: calc(188 * var(--sp-scale));
    height: calc(188 * var(--sp-scale));
    border-width: calc(16 * var(--sp-scale));
  }

  .service-system-development__center::before {
    inset: calc(-24 * var(--sp-scale));
    border-width: calc(1 * var(--sp-scale));
  }

  .service-system-development__center img {
    width: calc(112 * var(--sp-scale));
  }

  .service-system-development-item,
  .service-system-development-item--public,
  .service-system-development-item--private,
  .service-system-development-item--tool,
  .service-system-development-item--infra {
    grid-template-columns: calc(132 * var(--sp-scale)) minmax(0, 1fr);
    gap: calc(16 * var(--sp-scale));
    width: 100%;
  }

  .service-system-development-item::before,
  .service-system-development-item::after {
    display: none;
  }

  .service-system-development-item--tool .service-system-development-item__text,
  .service-system-development-item--infra .service-system-development-item__text {
    order: 2;
  }

  .service-system-development-item--tool .service-system-development-item__card,
  .service-system-development-item--infra .service-system-development-item__card {
    order: 1;
  }

  .service-system-development-item__card {
    width: calc(132 * var(--sp-scale));
    height: calc(132 * var(--sp-scale));
    box-shadow: 0 calc(8 * var(--sp-scale)) calc(22 * var(--sp-scale)) rgba(0, 0, 0, 0.08);
  }

  .service-system-development-item__card img {
    width: calc(44 * var(--sp-scale));
    height: calc(44 * var(--sp-scale));
  }

  .service-system-development-item__card h3 {
    min-height: calc(46 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .service-system-development-item__text {
    font-size: calc(13 * var(--sp-scale));
    letter-spacing: 0;
    line-height: 1.7;
    text-align: left;
  }
}

/* Managed services overview */
.service-managed-services {
  overflow: hidden;
  background: #fff;
}

.service-managed-services__inner {
  width: 100%;
  margin: 0 auto;
}

.service-managed-services__figure {
  width: 100%;
  margin: 0;
}

.service-managed-services__figure img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 767.98px) {
  .service-managed-services {
    overflow-x: auto;
  }

  .service-managed-services__figure {
    min-width: calc(780 * var(--sp-scale));
  }
}

/* Basic services */
.service-basic-services {
  background: #fff;
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.service-basic-services__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.service-basic-services__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.service-basic-services__label,
.service-basic-services__title,
.service-basic-services__lead {
  margin: 0;
}

.service-basic-services__label {
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2.4;
}

.service-basic-services__title {
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  line-height: 1.5;
}

.service-basic-services__lead {
  width: min(100%, calc(900 * var(--pc-scale)));
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-align: center;
}

.service-basic-services__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, calc(570 * var(--pc-scale))));
  justify-content: center;
  gap: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  width: 100%;
  margin-top: 0;
}

.service-basic-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
}

.service-basic-card__media {
  overflow: hidden;
  aspect-ratio: 578 / 356;
  width: 100%;
  margin: 0;
  border-radius: calc(8 * var(--pc-scale));
  background: #d9d9d9;
}

.service-basic-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-basic-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
}

.service-basic-card__number,
.service-basic-card__title,
.service-basic-card__text,
.service-basic-card__tags {
  margin: 0;
}

.service-basic-card__number {
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2.4;
}

.service-basic-card__title {
  width: 100%;
  padding-bottom: calc(16 * var(--pc-scale));
  border-bottom: 1px solid #d9d9d9;
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
}

.service-basic-card__title span {
  display: block;
}

.service-basic-card__text {
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.service-basic-card__tags {
  color: #686868;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.7;
}

@media (max-width: 767.98px) {
  .service-basic-services {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .service-basic-services__inner {
    gap: calc(20 * var(--sp-scale));
    width: 100%;
  }

  .service-basic-services__heading {
    gap: calc(6 * var(--sp-scale));
  }

  .service-basic-services__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-basic-services__title {
    font-size: calc(28 * var(--sp-scale));
  }

  .service-basic-services__lead {
    width: 100%;
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.9;
  }

  .service-basic-services__lead br,
  .service-basic-card__text br {
    display: none;
  }

  .service-basic-services__grid {
    grid-template-columns: 1fr;
    gap: calc(48 * var(--sp-scale));
    margin-top: 0;
  }

  .service-basic-card {
    gap: calc(14 * var(--sp-scale));
  }

  .service-basic-card__media {
    border-radius: calc(8 * var(--sp-scale));
  }

  .service-basic-card__body {
    gap: calc(12 * var(--sp-scale));
  }

  .service-basic-card__number {
    font-size: calc(13 * var(--sp-scale));
  }

  .service-basic-card__title {
    padding-bottom: calc(12 * var(--sp-scale));
    font-size: calc(24 * var(--sp-scale));
  }

  .service-basic-card__text {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.9;
  }

  .service-basic-card__tags {
    font-size: calc(13 * var(--sp-scale));
  }
}

/* Recruit FV */
.recruit-page {
  overflow: hidden;
  background: #fff;
}

.recruit-fv {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  clip-path: inset(0);
  min-height: calc(1350 * var(--pc-scale));
  background: #12151d;
}

.recruit-fv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.recruit-fv__bg img,
.recruit-fv__bg video {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center;
}

@supports (height: 100dvh) {
  .recruit-fv__bg img,
  .recruit-fv__bg video {
    height: 100dvh;
  }
}

.recruit-fv__content {
  position: absolute;
  z-index: 1;
  top: calc(430 * var(--pc-scale));
  left: calc(70 * var(--pc-scale));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(104 * var(--pc-scale));
  width: min(calc(932 * var(--pc-scale)), calc(100% - calc(420 * var(--pc-scale))));
  color: #fff;
  pointer-events: none;
}

.recruit-fv__title-frame {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  height: calc(231.54 * var(--pc-scale));
}

.recruit-fv__title-bg {
  position: absolute;
  left: 0;
  z-index: 0;
  display: block;
  height: calc(108.429 * var(--pc-scale));
  background: #fff;
}

.recruit-fv__title-bg--short {
  top: 0;
  width: calc(219.116 * var(--pc-scale));
}

.recruit-fv__title-bg--long {
  top: calc(123.11 * var(--pc-scale));
  width: calc(931.808 * var(--pc-scale));
}

.recruit-fv__title {
  position: absolute;
  z-index: 1;
  top: calc(-14.68 * var(--pc-scale));
  left: calc(29.37 * var(--pc-scale));
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: calc(63.25 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
  white-space: nowrap;
  word-break: keep-all;
}

.recruit-fv__copy {
  padding-left: calc(40 * var(--pc-scale));
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-shadow: 0 0 calc(12 * var(--pc-scale)) rgba(0, 0, 0, 0.55);
  word-break: break-word;
}

.recruit-fv__copy p {
  margin: 0;
}

.recruit-fv__scroll {
  position: absolute;
  top: calc(480 * var(--pc-scale));
  right: calc(-110 * var(--pc-scale));
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  width: calc(314 * var(--pc-scale));
  height: calc(314 * var(--pc-scale));
  border: 1px solid rgba(226, 226, 226, 0.7);
  border-radius: 50%;
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-shadow: 0 0 calc(12 * var(--pc-scale)) rgba(0, 0, 0, 0.55);
}

.recruit-fv__scroll img {
  width: calc(32 * var(--pc-scale));
  height: calc(32 * var(--pc-scale));
}

.recruit-page__content {
  padding-top: calc(96 * var(--pc-scale));
}

/* Recruit message */
.recruit-message {
  position: relative;
  overflow: hidden;
  min-height: calc(794 * var(--pc-scale));
  padding: calc(114 * var(--pc-scale)) 0 calc(118 * var(--pc-scale));
  background: #fff;
}

.recruit-message__curve {
  position: absolute;
  z-index: 0;
  top: calc(184 * var(--pc-scale));
  left: 0;
  width: 100%;
  height: calc(170 * var(--pc-scale));
  pointer-events: none;
}

.recruit-message__curve svg {
  display: block;
  width: 100%;
  height: 100%;
}

.recruit-message__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: calc(422 * var(--pc-scale)) minmax(0, calc(650 * var(--pc-scale)));
  gap: calc(104 * var(--pc-scale));
  align-items: start;
  width: min(100%, calc(1224 * var(--pc-scale)));
  margin: 0 auto;
}

.recruit-message__media {
  width: calc(422 * var(--pc-scale));
  height: calc(512 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #d9d9d9;
}

.recruit-message__content {
  padding-top: calc(9 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
}

.recruit-message__label {
  margin: 0 0 calc(16 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  line-height: 1.8;
  letter-spacing: 0;
}

.recruit-message__title {
  margin: 0;
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0;
}

.recruit-message__text {
  margin-top: calc(35 * var(--pc-scale));
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0;
}

.recruit-message__text p {
  margin: 0;
}

.recruit-message__text p + p {
  margin-top: calc(31 * var(--pc-scale));
}

.recruit-message__text span {
  color: var(--color-red);
}
/* Recruit data */
.recruit-data {
  position: relative;
  overflow: hidden;
  padding: calc(80 * var(--pc-scale)) 0;
  background: #fff7f7;
}

.recruit-data__symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.recruit-data__inner {
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.recruit-section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.recruit-section-heading__label {
  margin: 0 0 calc(14 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  line-height: 1.8;
  letter-spacing: 0;
}

.recruit-section-heading__title {
  margin: 0;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0;
}

.recruit-data__image {
  margin: calc(70 * var(--pc-scale)) 0 0;
}

.recruit-data__image img {
  display: block;
  width: 100%;
  height: auto;
}

.recruit-data-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: calc(280 * var(--pc-scale));
  padding: calc(35 * var(--pc-scale)) calc(20 * var(--pc-scale)) calc(26 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.recruit-data-card--wide {
  grid-column: span 2;
}

.recruit-data-card--landscape {
  flex-direction: row;
  gap: calc(32 * var(--pc-scale));
  padding: calc(52 * var(--pc-scale)) calc(68 * var(--pc-scale));
  text-align: center;
}

.recruit-data-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.recruit-data-card__label {
  margin: 0;
  color: #303030;
  font-size: calc(22 * var(--pc-scale));
  line-height: 1.5;
  letter-spacing: 0;
}

.recruit-data-card__icon {
  display: block;
  flex: 0 0 auto;
  width: calc(92 * var(--pc-scale));
  height: calc(92 * var(--pc-scale));
  margin: calc(18 * var(--pc-scale)) 0 calc(15 * var(--pc-scale));
  color: var(--color-red);
}

.recruit-data-card--landscape .recruit-data-card__icon {
  width: calc(176 * var(--pc-scale));
  height: calc(176 * var(--pc-scale));
  margin: 0;
}

.recruit-data-card__metric {
  display: flex;
  align-items: baseline;
  justify-content: center;
  margin: 0;
  color: var(--color-red);
  line-height: 1;
  letter-spacing: 0;
}

.recruit-data-card__number {
  font-size: calc(54 * var(--pc-scale));
  line-height: 1.08;
}

.recruit-data-card__unit {
  margin-left: calc(3 * var(--pc-scale));
  font-size: calc(28 * var(--pc-scale));
  line-height: 1;
}

.recruit-data-card--wide .recruit-data-card__number {
  font-size: calc(78 * var(--pc-scale));
}

.recruit-data-card--wide .recruit-data-card__unit {
  font-size: calc(36 * var(--pc-scale));
}

.recruit-data-card__metric--stacked {
  flex-direction: column;
  align-items: center;
  gap: calc(5 * var(--pc-scale));
}

.recruit-data-card__prefix {
  color: var(--color-red);
  font-size: calc(28 * var(--pc-scale));
  line-height: 1;
}

.recruit-data-card--ratio .recruit-data-card__number {
  display: block;
  font-size: calc(52 * var(--pc-scale));
}

.recruit-data-card__note {
  display: block;
  margin-top: calc(8 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(14 * var(--pc-scale));
  line-height: 1.4;
}

/* Recruit people */
.recruit-people {
  position: relative;
  overflow: hidden;
  min-height: calc(827 * var(--pc-scale));
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background:
    radial-gradient(circle at 82% 51%, rgba(244, 82, 4, 0.96) 0, rgba(232, 33, 7, 0.96) 24%, rgba(207, 0, 23, 0.98) 57%, #c90017 100%);
  color: #fff;
}

.recruit-section-heading--light,
.recruit-section-heading--light .recruit-section-heading__label,
.recruit-section-heading--light .recruit-section-heading__title {
  color: #fff;
}

.recruit-people__inner {
  position: relative;
  width: min(100%, calc(1361 * var(--pc-scale)));
  margin: 0 auto;
}

.recruit-people__slider {
  position: relative;
  margin-top: calc(64 * var(--pc-scale));
  padding: 0 calc(120 * var(--pc-scale));
}

.recruit-people__swiper {
  overflow: visible;
}

.recruit-people__swiper .swiper-wrapper {
  display: flex;
  align-items: stretch;
}

.recruit-people__slide {
  width: calc(819 * var(--pc-scale));
  height: auto;
  opacity: 0.6;
  filter: blur(calc(1.2 * var(--pc-scale)));
  transition: opacity 0.28s ease, filter 0.28s ease, transform 0.28s ease;
}

.recruit-people__slide:first-child,
.recruit-people__slide.swiper-slide-active {
  opacity: 1;
  filter: none;
}

.recruit-people__swiper.swiper-initialized .recruit-people__slide:first-child:not(.swiper-slide-active) {
  opacity: 0.6;
  filter: blur(calc(1.2 * var(--pc-scale)));
}

.recruit-people-card {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: calc(331 * var(--pc-scale)) calc(488 * var(--pc-scale));
  width: 100%;
  min-height: calc(433 * var(--pc-scale));
  overflow: visible;
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 calc(10 * var(--pc-scale)) calc(24 * var(--pc-scale)) rgba(88, 0, 0, 0.14);
  color: #303030;
}

.recruit-people-card__photo {
  overflow: hidden;
  border-radius: calc(8 * var(--pc-scale)) 0 0 calc(8 * var(--pc-scale));
  background: #ddd;
}

.recruit-people-card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit-people-card__content {
  position: relative;
  min-height: calc(392 * var(--pc-scale));
  padding: calc(48 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border-radius: 0 calc(8 * var(--pc-scale)) calc(8 * var(--pc-scale)) 0;
  background: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
}

.recruit-people-card__content::before {
  position: absolute;
  display: block;
  top: calc(-18.5 * var(--pc-scale));
  left: calc(24 * var(--pc-scale));
  width: calc(51 * var(--pc-scale));
  height: calc(39 * var(--pc-scale));
  content: url(assets/img/recruit-people-quote.svg);
  transform: rotate(180deg);
}

.recruit-people-card__quote {
  margin: 0;
  color: #303030;
  font-size: calc(28 * var(--pc-scale));
  line-height: 1.7;
  letter-spacing: 0;
}

.recruit-people-card__quote::after {
  display: block;
  width: 100%;
  height: 1px;
  margin: calc(18 * var(--pc-scale)) 0 calc(24 * var(--pc-scale));
  background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--pc-scale)), #d8d8d8 calc(33 * var(--pc-scale)) 100%);
  content: "";
}

.recruit-people-card__profile {
  margin: 0;
  color: #686868;
  font-size: calc(14 * var(--pc-scale));
  line-height: 2;
  letter-spacing: 0;
}

.recruit-people-card__link {
  display: inline-flex;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
  margin-top: calc(34 * var(--pc-scale));
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-red);
  cursor: pointer;
  font-family: inherit;
  font-size: calc(14 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0;
  text-align: left;
}

.recruit-people-card__link:hover,
.recruit-people-card__link:focus-visible {
  text-decoration: underline;
  text-underline-offset: calc(4 * var(--pc-scale));
}

.recruit-people-card__plus {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: calc(48 * var(--pc-scale));
  height: calc(48 * var(--pc-scale));
  border-radius: 50%;
  background: linear-gradient(135deg, #e31f20 0%, #d41200 100%);
}

.recruit-people-card__plus::before,
.recruit-people-card__plus::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(18 * var(--pc-scale));
  height: 1px;
  background: #fff;
  content: "";
  transform: translate(-50%, -50%);
}

.recruit-people-card__plus::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.recruit-people__nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(80 * var(--pc-scale));
  height: calc(80 * var(--pc-scale));
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.recruit-people__nav:hover,
.recruit-people__nav:focus-visible {
  opacity: 0.78;
  transform: translateY(-50%) scale(1.04);
}

.recruit-people__nav--prev {
  left: calc(50% - (490 * var(--pc-scale)));
}

.recruit-people__nav--next {
  right: calc(50% - (490 * var(--pc-scale)));
}

.recruit-people__nav span {
  display: block;
  width: calc(30 * var(--pc-scale));
  height: calc(30 * var(--pc-scale));
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
}

.recruit-people__nav--prev span {
  transform: rotate(-45deg);
}

.recruit-people__nav--next span {
  transform: rotate(135deg);
}

.recruit-people__dots {
  position: static;
  display: flex;
  justify-content: center;
  gap: calc(12 * var(--pc-scale));
  margin-top: calc(65 * var(--pc-scale));
}

.recruit-people__dots .swiper-pagination-bullet,
.recruit-people__dots span {
  display: block;
  width: calc(6 * var(--pc-scale));
  height: calc(6 * var(--pc-scale));
  margin: 0 !important;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  cursor: pointer;
}

.recruit-people__dots .swiper-pagination-bullet-active,
.recruit-people__dots span.is-active {
  background: #fff;
}

html.is-recruit-modal-open,
html.is-recruit-modal-open body {
  overflow: hidden;
}

.recruit-interview-modal[hidden] {
  display: none;
}

.recruit-interview-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(40 * var(--pc-scale));
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.recruit-interview-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.recruit-interview-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 21, 29, 0.58);
}

.recruit-interview-modal__dialog {
  position: relative;
  width: min(calc(980 * var(--pc-scale)), calc(100vw - (80 * var(--pc-scale))));
  max-height: calc(100vh - (80 * var(--pc-scale)));
  overflow: auto;
  padding: calc(40 * var(--pc-scale)) calc(56 * var(--pc-scale)) calc(32 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 calc(24 * var(--pc-scale)) calc(64 * var(--pc-scale)) rgba(0, 0, 0, 0.24);
  color: #303030;
  transform: translateY(calc(12 * var(--pc-scale)));
  transition: transform 0.2s ease;
  outline: none;
}

.recruit-interview-modal.is-open .recruit-interview-modal__dialog {
  transform: translateY(0);
}

@supports (height: 100dvh) {
  .recruit-interview-modal__dialog {
    max-height: calc(100dvh - (80 * var(--pc-scale)));
  }
}

.recruit-interview-modal__intro {
  display: grid;
  grid-template-columns: calc(240 * var(--pc-scale)) 1fr;
  gap: calc(40 * var(--pc-scale));
  align-items: center;
}

.recruit-interview-modal__photo {
  overflow: hidden;
  height: calc(313 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #ddd;
}

.recruit-interview-modal__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit-interview-modal__profile {
  font-family: var(--font-serif);
  font-weight: 600;
}

.recruit-interview-modal__title {
  margin: 0;
  color: #303030;
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
  letter-spacing: 0;
}

.recruit-interview-modal__title::after {
  display: block;
  width: 100%;
  height: 1px;
  margin: calc(24 * var(--pc-scale)) 0 calc(22 * var(--pc-scale));
  background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--pc-scale)), #d8d8d8 calc(33 * var(--pc-scale)) 100%);
  content: "";
}

.recruit-interview-modal__department,
.recruit-interview-modal__name {
  margin: 0;
  color: #686868;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  letter-spacing: 0;
}

.recruit-interview-modal__qa {
  margin-top: calc(40 * var(--pc-scale));
}

.recruit-interview-modal__qa-item {
  padding: calc(24 * var(--pc-scale)) 0;
  border-top: 1px solid #d8d8d8;
}

.recruit-interview-modal__qa-item:first-child {
  padding-top: 0;
  border-top: 0;
}

.recruit-interview-modal__question {
  display: flex;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
}

.recruit-interview-modal__question span {
  flex: 0 0 auto;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  line-height: 1.5;
}

.recruit-interview-modal__answer {
  margin: calc(8 * var(--pc-scale)) 0 0;
  padding-left: calc(24 * var(--pc-scale));
  color: #686868;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  letter-spacing: 0;
}

.recruit-interview-modal__answer strong {
  color: #686868;
  font-family: var(--font-serif);
  font-weight: 800;
}

.recruit-interview-modal__close {
  display: block;
  width: 100%;
  margin-top: calc(24 * var(--pc-scale));
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-red);
  cursor: pointer;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
  text-align: center;
  text-decoration: underline;
  text-underline-offset: calc(3 * var(--pc-scale));
}

.recruit-interview-modal__close:hover,
.recruit-interview-modal__close:focus-visible {
  color: var(--color-red);
}

/* Recruit culture */
.recruit-culture {
  position: relative;
  overflow: hidden;
  padding: calc(104 * var(--pc-scale)) 0 calc(80 * var(--pc-scale));
  background: #fff;
}

.recruit-culture__inner {
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.recruit-culture__list {
  display: flex;
  flex-direction: column;
  gap: calc(80 * var(--pc-scale));
  margin-top: calc(80 * var(--pc-scale));
}

.recruit-culture-feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, calc(550 * var(--pc-scale))));
  gap: calc(80 * var(--pc-scale));
  align-items: start;
}

.recruit-culture-feature__media {
  overflow: hidden;
  width: calc(550 * var(--pc-scale));
  height: calc(339 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #eee;
}

.recruit-culture-feature__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.recruit-culture-feature__content {
  padding-top: calc(7 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
}

.recruit-culture-feature__label {
  margin: 0 0 calc(14 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  line-height: 1.8;
  letter-spacing: 0;
}

.recruit-culture-feature__title {
  margin: 0;
  padding-bottom: calc(24 * var(--pc-scale));
  border-bottom: 1px solid #d8d8d8;
  color: #303030;
  font-size: calc(30 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: 0;
}

.recruit-culture-feature__text {
  margin: calc(24 * var(--pc-scale)) 0 0;
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
}

/* Recruit entry */
.recruit-entry {
  position: relative;
  overflow: hidden;
  padding: calc(40 * var(--pc-scale)) calc(50 * var(--pc-scale)) calc(28 * var(--pc-scale));
  background: #fff;
}

.recruit-entry__panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, calc(1340 * var(--pc-scale)));
  min-height: calc(454 * var(--pc-scale));
  margin: 0 auto;
  padding: calc(70 * var(--pc-scale)) calc(143 * var(--pc-scale)) calc(70 * var(--pc-scale)) calc(105 * var(--pc-scale));
  border-radius: calc(20 * var(--pc-scale));
  background:
    radial-gradient(circle at 83% 67%, rgba(242, 86, 0, 0.98) 0, rgba(226, 35, 2, 0.97) 27%, rgba(209, 0, 24, 0.98) 62%, #c90017 100%);
  color: #fff;
}

.recruit-entry__content {
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 600;
}

.recruit-entry__label {
  margin: 0 0 calc(18 * var(--pc-scale));
  color: #fff;
  font-size: calc(18 * var(--pc-scale));
  line-height: 1.8;
  letter-spacing: 0;
}

.recruit-entry__title {
  margin: 0;
  color: #fff;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0;
}

.recruit-entry__text {
  margin: calc(34 * var(--pc-scale)) 0 0;
  color: #fff;
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2.2;
  letter-spacing: 0;
}

.recruit-entry__button {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: calc(240 * var(--pc-scale));
  height: calc(240 * var(--pc-scale));
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0;
  text-align: center;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.recruit-entry__button:hover,
.recruit-entry__button:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(calc(-2 * var(--pc-scale)));
}
@media (max-width: 767.98px) {
  .recruit-fv {
    min-height: calc(640 * var(--sp-scale));
  }

  .recruit-fv__content {
    bottom: calc(76 * var(--sp-scale));
    gap: calc(42 * var(--sp-scale));
    width: calc(100% - calc(48 * var(--sp-scale)));
    padding-left: calc(24 * var(--sp-scale));
  }

  .recruit-fv__title-frame {
    height: calc(91 * var(--sp-scale));
  }

  .recruit-fv__title-bg {
    height: calc(42 * var(--sp-scale));
  }

  .recruit-fv__title-bg--short {
    width: calc(88 * var(--sp-scale));
  }

  .recruit-fv__title-bg--long {
    top: calc(49 * var(--sp-scale));
    width: min(100%, calc(360 * var(--sp-scale)));
  }

  .recruit-fv__title {
    top: calc(-6 * var(--sp-scale));
    left: calc(12 * var(--sp-scale));
    font-size: calc(25 * var(--sp-scale));
    line-height: 2;
    white-space: normal;
  }

  .recruit-fv__copy {
    padding-left: 0;
    font-size: calc(15 * var(--sp-scale));
    line-height: 1.75;
  }

  .recruit-fv__bg img,
  .recruit-fv__bg video {
    object-position: 42% center;
  }

  .recruit-fv__scroll {
    right: calc(-52 * var(--sp-scale));
    bottom: calc(56 * var(--sp-scale));
    gap: calc(6 * var(--sp-scale));
    width: calc(176 * var(--sp-scale));
    height: calc(176 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .recruit-fv__scroll img {
    width: calc(24 * var(--sp-scale));
    height: calc(24 * var(--sp-scale));
  }

  .recruit-page__content {
    padding-top: calc(64 * var(--sp-scale));
  }

  .recruit-message {
    min-height: 0;
    padding: calc(72 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(80 * var(--sp-scale));
  }

  .recruit-message__curve {
    top: calc(132 * var(--sp-scale));
    left: calc(-230 * var(--sp-scale));
    width: calc(820 * var(--sp-scale));
    height: calc(116 * var(--sp-scale));
  }

  .recruit-message__inner {
    display: flex;
    flex-direction: column;
    gap: calc(36 * var(--sp-scale));
    width: min(100%, calc(520 * var(--sp-scale)));
  }

  .recruit-message__media {
    width: 100%;
    height: auto;
    aspect-ratio: 422 / 512;
    border-radius: calc(8 * var(--sp-scale));
  }

  .recruit-message__content {
    padding-top: 0;
  }

  .recruit-message__label {
    margin-bottom: calc(12 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .recruit-message__title {
    font-size: calc(26 * var(--sp-scale));
    line-height: 1.65;
  }

  .recruit-message__text {
    margin-top: calc(28 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.95;
  }

  .recruit-message__text p + p {
    margin-top: calc(24 * var(--sp-scale));
  }

  .recruit-data {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .recruit-data__inner {
    width: min(100%, calc(520 * var(--sp-scale)));
  }

  .recruit-section-heading__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .recruit-section-heading__title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.55;
  }

  .recruit-data__image {
    margin-top: calc(42 * var(--sp-scale));
  }

  .recruit-data-card,
  .recruit-data-card--landscape {
    grid-column: auto;
    flex-direction: column;
    min-height: calc(220 * var(--sp-scale));
    gap: 0;
    padding: calc(30 * var(--sp-scale)) calc(20 * var(--sp-scale)) calc(28 * var(--sp-scale));
  }

  .recruit-data-card__label {
    font-size: calc(18 * var(--sp-scale));
  }

  .recruit-data-card__icon,
  .recruit-data-card--landscape .recruit-data-card__icon {
    width: calc(86 * var(--sp-scale));
    height: calc(86 * var(--sp-scale));
    margin: calc(18 * var(--sp-scale)) 0 calc(14 * var(--sp-scale));
  }

  .recruit-data-card__number,
  .recruit-data-card--wide .recruit-data-card__number,
  .recruit-data-card--ratio .recruit-data-card__number {
    font-size: calc(48 * var(--sp-scale));
  }

  .recruit-data-card__unit,
  .recruit-data-card--wide .recruit-data-card__unit {
    font-size: calc(24 * var(--sp-scale));
  }

  .recruit-data-card__prefix {
    font-size: calc(22 * var(--sp-scale));
  }

  .recruit-data-card__note {
    font-size: calc(12 * var(--sp-scale));
  }

  .recruit-people {
    min-height: 0;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(72 * var(--sp-scale));
  }

  .recruit-people__inner {
    width: min(100%, calc(520 * var(--sp-scale)));
  }

  .recruit-people__slider {
    height: auto;
    margin-top: calc(42 * var(--sp-scale));
  }

  .recruit-people-card {
    position: relative;
    left: auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    transform: none;
  }

  .recruit-people-card--ghost,
  .recruit-people__nav {
    display: none;
  }

  .recruit-people-card__photo {
    border-radius: calc(8 * var(--sp-scale)) calc(8 * var(--sp-scale)) 0 0;
  }

  .recruit-people-card__photo img {
    aspect-ratio: 331 / 300;
  }

  .recruit-people-card__content {
    min-height: 0;
    padding: calc(42 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(32 * var(--sp-scale));
    border-radius: 0 0 calc(8 * var(--sp-scale)) calc(8 * var(--sp-scale));
  }

  .recruit-people-card__content::before {
    top: calc(-18.5 * var(--sp-scale));
    left: calc(24 * var(--sp-scale));
    width: calc(51 * var(--sp-scale));
    height: calc(39 * var(--sp-scale));
  }

  .recruit-people-card__quote {
    font-size: calc(23 * var(--sp-scale));
    line-height: 1.65;
  }

  .recruit-people-card__quote::after {
    margin: calc(16 * var(--sp-scale)) 0 calc(20 * var(--sp-scale));
    background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--sp-scale)), #d8d8d8 calc(33 * var(--sp-scale)) 100%);
  }

  .recruit-people-card__profile {
    font-size: calc(13 * var(--sp-scale));
    line-height: 1.9;
  }

  .recruit-people-card__link {
    gap: calc(14 * var(--sp-scale));
    margin-top: calc(28 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .recruit-people-card__plus {
    width: calc(42 * var(--sp-scale));
    height: calc(42 * var(--sp-scale));
  }

  .recruit-people__dots {
    gap: calc(12 * var(--sp-scale));
    margin-top: calc(32 * var(--sp-scale));
  }

  .recruit-people__dots span {
    width: calc(6 * var(--sp-scale));
    height: calc(6 * var(--sp-scale));
  }

  .recruit-people__slider {
    padding: 0;
  }

  .recruit-people__swiper {
    overflow: hidden;
  }

  .recruit-people__slide,
  .recruit-people__swiper.swiper-initialized .recruit-people__slide:first-child:not(.swiper-slide-active) {
    width: 100%;
    opacity: 1;
    filter: none;
  }

  .recruit-people__dots .swiper-pagination-bullet,
  .recruit-people__dots span {
    width: calc(6 * var(--sp-scale));
    height: calc(6 * var(--sp-scale));
  }

  .recruit-interview-modal {
    align-items: flex-start;
    padding: calc(16 * var(--sp-scale));
    overflow-y: auto;
  }

  .recruit-interview-modal__dialog {
    width: 100%;
    max-height: none;
    padding: calc(28 * var(--sp-scale)) calc(20 * var(--sp-scale)) calc(24 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
  }

  .recruit-interview-modal__intro {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--sp-scale));
    align-items: stretch;
  }

  .recruit-interview-modal__photo {
    width: calc(200 * var(--sp-scale));
    height: auto;
    aspect-ratio: 240 / 313;
    margin: 0 auto;
    border-radius: calc(8 * var(--sp-scale));
  }

  .recruit-interview-modal__title {
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.6;
  }

  .recruit-interview-modal__title::after {
    margin: calc(18 * var(--sp-scale)) 0 calc(18 * var(--sp-scale));
    background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--sp-scale)), #d8d8d8 calc(33 * var(--sp-scale)) 100%);
  }

  .recruit-interview-modal__department,
  .recruit-interview-modal__name {
    font-size: calc(13 * var(--sp-scale));
    line-height: 1.9;
  }

  .recruit-interview-modal__qa {
    margin-top: calc(28 * var(--sp-scale));
  }

  .recruit-interview-modal__qa-item {
    padding: calc(22 * var(--sp-scale)) 0;
  }

  .recruit-interview-modal__question {
    gap: calc(12 * var(--sp-scale));
    font-size: calc(16 * var(--sp-scale));
    line-height: 1.7;
  }

  .recruit-interview-modal__question span {
    font-size: calc(22 * var(--sp-scale));
  }

  .recruit-interview-modal__answer {
    margin-top: calc(8 * var(--sp-scale));
    padding-left: calc(20 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
    line-height: 2;
  }

  .recruit-interview-modal__close {
    margin-top: calc(18 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }
  .recruit-culture {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(72 * var(--sp-scale));
  }

  .recruit-culture__inner {
    width: min(100%, calc(520 * var(--sp-scale)));
  }

  .recruit-culture__list {
    gap: calc(52 * var(--sp-scale));
    margin-top: calc(44 * var(--sp-scale));
  }

  .recruit-culture-feature,
  .recruit-culture-feature--reverse {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--sp-scale));
  }

  .recruit-culture-feature--reverse .recruit-culture-feature__media {
    order: -1;
  }

  .recruit-culture-feature__media {
    width: 100%;
    height: auto;
    aspect-ratio: 550 / 339;
    border-radius: calc(8 * var(--sp-scale));
  }

  .recruit-culture-feature__content {
    padding-top: 0;
  }

  .recruit-culture-feature__label {
    margin-bottom: calc(10 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .recruit-culture-feature__title {
    padding-bottom: calc(18 * var(--sp-scale));
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.65;
  }

  .recruit-culture-feature__text {
    margin-top: calc(18 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.95;
  }

  .recruit-entry {
    padding: calc(28 * var(--sp-scale)) calc(16 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .recruit-entry__panel {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(34 * var(--sp-scale));
    width: 100%;
    min-height: 0;
    padding: calc(48 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(44 * var(--sp-scale));
    border-radius: calc(18 * var(--sp-scale));
  }

  .recruit-entry__label {
    margin-bottom: calc(12 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .recruit-entry__title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.65;
  }

  .recruit-entry__text {
    margin-top: calc(24 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 2;
  }

  .recruit-entry__text br {
    display: none;
  }

  .recruit-entry__button {
    align-self: center;
    width: calc(176 * var(--sp-scale));
    height: calc(176 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }}
/* Lower page sub FV */
.lower-main {
  overflow: hidden;
  background: #fff;
}

.sub-fv {
  position: relative;
  min-height: calc(487 * var(--pc-scale));
  overflow: hidden;
  color: #fff;
  background: #880808;
}

.sub-fv--diversity,
.sub-fv--requirements {
  background: #380808;
}

.sub-fv__bg,
.sub-fv__overlay {
  position: absolute;
  inset: 0;
}

.sub-fv__bg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
}





.sub-fv--requirements .sub-fv__bg img {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.requirements-archive {
  overflow-x: clip;
  overflow-y: visible;
}

.requirements-layout {
  display: grid;
  grid-template-columns: calc(266 * var(--pc-scale)) minmax(0, 1fr);
  align-items: start;
  background: #fff;
}

.requirements-layout__content {
  min-width: 0;
}

.requirements-index {
  position: sticky;
  z-index: 2;
  top: var(--header-height);
  align-self: start;
  height: calc(100vh - var(--header-height));
  padding: calc(64 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border-right: 1px solid #e2e2e2;
  background: #fff;
}

.requirements-index__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: calc(24 * var(--pc-scale));
  width: calc(186 * var(--pc-scale));
  height: auto;
  margin: 0;
}

.requirements-index__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(12 * var(--pc-scale));
  width: calc(186 * var(--pc-scale));
  min-width: calc(140 * var(--pc-scale));
  min-height: calc(32 * var(--pc-scale));
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
}

.requirements-index__icon {
  display: block;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}
.requirements-list {
  overflow: hidden;
  scroll-margin-top: var(--header-height);
  padding: calc(80 * var(--pc-scale)) 0;
  background: #fff7f7;
}

.requirements-list__inner {
  width: min(100%, calc(980 * var(--pc-scale)));
  margin: 0 auto;
}

.requirements-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(16 * var(--pc-scale));
  width: min(100%, calc(871 * var(--pc-scale)));
  margin: calc(48 * var(--pc-scale)) auto 0;
}

.requirements-tabs__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
  min-width: 0;
}

.requirements-tabs__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: calc(56 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(28 * var(--pc-scale));
  background: #fff;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0;
  cursor: pointer;
  transition: background-color 0.24s ease, color 0.24s ease;
}

.requirements-tabs__link.is-active,
.requirements-tabs__link[aria-selected="true"] {
  background: var(--color-red);
  color: #fff;
}

.requirements-tabs__description {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(15 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0;
  text-align: center;
}

.requirements-cards {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--pc-scale));
  margin-top: calc(40 * var(--pc-scale));
}

.requirements-cards[hidden] {
  display: none;
}

.requirements-card {
  overflow: hidden;
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 calc(8 * var(--pc-scale)) calc(18 * var(--pc-scale)) rgba(128, 0, 0, 0.06);
}
.requirements-cards__empty {
  margin: 0;
  padding: calc(32 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  color: #686868;
  font-size: calc(16 * var(--pc-scale));
  line-height: 1.8;
}

.requirements-card__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(32 * var(--pc-scale));
  min-height: calc(158 * var(--pc-scale));
  padding: calc(24 * var(--pc-scale)) calc(40 * var(--pc-scale));
  cursor: pointer;
  list-style: none;
}

.requirements-card__summary::-webkit-details-marker {
  display: none;
}

.requirements-card__main {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  font-family: var(--font-serif);
  font-weight: 600;
}

.requirements-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(68 * var(--pc-scale));
  min-height: calc(22 * var(--pc-scale));
  padding: 0 calc(8 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(4 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(14 * var(--pc-scale));
  line-height: 1.4;
}

.requirements-card__title {
  margin-top: calc(22 * var(--pc-scale));
  color: #303030;
  font-size: calc(24 * var(--pc-scale));
  line-height: 1.5;
  letter-spacing: 0;
}

.requirements-card__lead {
  margin-top: calc(8 * var(--pc-scale));
  color: #686868;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.8;
  letter-spacing: 0;
}

.requirements-card__toggle {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: calc(48 * var(--pc-scale));
  height: calc(48 * var(--pc-scale));
  border-radius: 50%;
  background: var(--color-red);
  cursor: pointer;
  transition: transform 0.24s ease, background-color 0.24s ease;
}

.requirements-card__summary:hover .requirements-card__toggle,
.requirements-card__summary:focus-visible .requirements-card__toggle {
  transform: scale(1.05);
}

.requirements-card__toggle::before {
  display: block;
  width: calc(13 * var(--pc-scale));
  height: calc(13 * var(--pc-scale));
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  content: "";
  transform: translateY(calc(-3 * var(--pc-scale))) rotate(45deg);
  transition: transform 0.24s ease;
}

.requirements-card[open] .requirements-card__toggle::before {
  transform: translateY(calc(3 * var(--pc-scale))) rotate(225deg);
}

.requirements-card__detail {
  overflow: hidden;
  padding: 0 calc(40 * var(--pc-scale)) calc(40 * var(--pc-scale));
  transition: height 0.32s ease, opacity 0.24s ease;
}

.requirements-card:not([open]) .requirements-card__detail {
  opacity: 0;
}

.requirements-card__table {
  width: calc(836 * var(--pc-scale));
  max-width: 100%;
  border-collapse: collapse;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.8;
}

.requirements-card__table th,
.requirements-card__table td {
  height: calc(58 * var(--pc-scale));
  padding: calc(12 * var(--pc-scale)) calc(16 * var(--pc-scale));
  text-align: left;
  vertical-align: middle;
}

.requirements-card__table th {
  width: calc(192 * var(--pc-scale));
  border-bottom: 1px solid var(--color-red);
  font-weight: 600;
}

.requirements-card__table td {
  border-bottom: 1px solid #d8d8d8;
}
.sub-fv--diversity .sub-fv__bg img {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sub-fv__en--diversity {
  font-size: calc(80 * var(--pc-scale));
}

.sub-fv__title--diversity {
  max-width: calc(760 * var(--pc-scale));
}
.sub-fv__overlay {
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 100%);
}

.sub-fv__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(24 * var(--pc-scale));
  width: min(100%, calc(1190 * var(--pc-scale)));
  min-height: calc(415 * var(--pc-scale));
  margin: 0 auto;
  padding-top: calc(96 * var(--pc-scale));
}

.sub-fv__en {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(80 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
  white-space: nowrap;
}

.sub-fv__title-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(32 * var(--pc-scale));
}

.sub-fv__line {
  display: block;
  width: calc(120 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: var(--color-red);
}

.sub-fv__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
  text-shadow: 0 0 calc(9 * var(--pc-scale)) rgba(0, 0, 0, 0.25);
}


.diversity-plan {
  background: #fff;
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
}

.diversity-plan__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(64 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.diversity-plan__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(704 * var(--pc-scale)));
  text-align: center;
}

.diversity-plan__label {
  margin: 0 0 calc(8 * var(--pc-scale));
  color: #e31f20;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2.4;
  text-transform: none;
}

.diversity-plan__title {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

.diversity-plan__title span {
  display: block;
}

.diversity-plan__lead,
.diversity-plan__meta,
.diversity-plan__period {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.diversity-plan__lead {
  white-space: nowrap;
}

.diversity-plan__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--pc-scale));
  width: 100%;
}

.diversity-plan__meta {
  color: #464646;
}

.diversity-plan__section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
}

.diversity-plan__section-title {
  width: 100%;
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

.diversity-plan__section-title::after {
  content: "";
  display: block;
  width: 100%;
  height: calc(2 * var(--pc-scale));
  margin-top: calc(16 * var(--pc-scale));
  background: linear-gradient(90deg, #e31f20 0 calc(33 * var(--pc-scale)), #e2e2e2 calc(33 * var(--pc-scale)) 100%);
}

.diversity-plan__section-title span {
  margin-right: calc(8 * var(--pc-scale));
}

.diversity-plan-table {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.diversity-plan-table__row {
  display: grid;
  grid-template-columns: calc(116 * var(--pc-scale)) minmax(0, 1fr);
  margin-top: calc(-1 * var(--pc-scale));
}

.diversity-plan-table__row:first-child {
  margin-top: 0;
}

.diversity-plan-table__label,
.diversity-plan-table__body {
  border: 1px solid #303030;
  padding: calc(16 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(14 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.7;
}

.diversity-plan-table__label {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: calc(-1 * var(--pc-scale));
  white-space: nowrap;
}

.diversity-plan-table__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
}

.diversity-plan-table__body p {
  margin: 0;
}
.company-page__content,
.security-page__content,
.diversity-page__content,
.service-page__content {
  padding-top: calc(96 * var(--pc-scale));
}

@media (max-width: 1280px) and (min-width: 768px) {
  .company-index__inner,
  .service-index__inner {
    gap: calc(32 * var(--pc-scale));
  }
}
@media (max-width: 1280px) and (min-width: 768px) {
  .sub-fv__inner {
    width: calc(100% - calc(160 * var(--pc-scale)));
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .company-index__inner,
  .service-index__inner {
    flex-wrap: wrap;
    gap: calc(24 * var(--pc-scale)) calc(32 * var(--pc-scale));
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .sub-fv__inner {
    width: calc(100% - calc(96 * var(--pc-scale)));
  }
}

@media (max-width: 767.98px) {
  .company-index,
.service-index {
    padding: calc(32 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-index__inner,
  .service-index__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(14 * var(--sp-scale)) calc(16 * var(--sp-scale));
    width: 100%;
  }

  .company-index__link,
  .service-index__link {
    gap: calc(6 * var(--sp-scale));
    width: 100%;
    min-width: 0;
    min-height: calc(36 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .company-index__link img,
  .service-index__link img {
    flex-basis: calc(14 * var(--sp-scale));
    width: calc(14 * var(--sp-scale));
    height: calc(14 * var(--sp-scale));
  }
}
@media (max-width: 767.98px) {
  .sub-fv {
    min-height: calc(330 * var(--sp-scale));
  }

  .sub-fv__bg img,
  .sub-fv--security .sub-fv__bg img,
  .sub-fv--service .sub-fv__bg img,
  .sub-fv--news .sub-fv__bg img,
  .sub-fv--contact .sub-fv__bg img,
  .sub-fv--privacy-policy .sub-fv__bg img {
    top: 0;
    left: 50%;
    width: calc(760 * var(--sp-scale));
    height: calc(330 * var(--sp-scale));
    transform: translateX(-50%);
  }
  .sub-fv--diversity .sub-fv__bg img,
  .sub-fv--requirements .sub-fv__bg img {
    left: 0;
    width: 100%;
    height: 100%;
    transform: none;
  }

  .sub-fv__inner {
    gap: calc(18 * var(--sp-scale));
    width: 100%;
    min-height: calc(330 * var(--sp-scale));
    padding: calc(74 * var(--sp-scale)) calc(24 * var(--sp-scale)) 0;
  }

  .sub-fv__en {
    font-size: calc(52 * var(--sp-scale));
    line-height: 1.25;
  }

  .sub-fv__en--diversity {
    font-size: calc(40 * var(--sp-scale));
    white-space: normal;
  }

  .sub-fv__en--privacy-policy {
    font-size: calc(40 * var(--sp-scale));
    white-space: normal;
  }

  .sub-fv__title--diversity {
    max-width: calc(327 * var(--sp-scale));
  }

  .sub-fv__title-group {
    gap: calc(22 * var(--sp-scale));
  }

  .sub-fv__line {
    width: calc(86 * var(--sp-scale));
    height: calc(2 * var(--sp-scale));
  }

  .sub-fv__title {
    font-size: calc(20 * var(--sp-scale));
    line-height: 1.8;
  }

  .company-page__content,
  .security-page__content,
  .diversity-page__content,
  .service-page__content {
    padding-top: calc(64 * var(--sp-scale));
  }
}
@media (max-width: 1280px) and (min-width: 768px) {
  .company-message {
    padding-right: calc(40 * var(--pc-scale));
    padding-left: calc(40 * var(--pc-scale));
  }

  .company-message__title {
    font-size: calc(48 * var(--pc-scale));
  }

  .company-message__title small {
    font-size: calc(31 * var(--pc-scale));
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .company-message__heading {
    min-height: calc(154 * var(--pc-scale));
  }

  .company-message__card {
    padding: calc(64 * var(--pc-scale));
  }

  .company-message__body {
    font-size: calc(16 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .company-message {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-message__logo {
    top: calc(28 * var(--sp-scale));
    right: calc(-128 * var(--sp-scale));
    width: calc(380 * var(--sp-scale));
    height: calc(170 * var(--sp-scale));
  }

  .company-message__inner {
    gap: calc(32 * var(--sp-scale));
  }

  .company-message__heading {
    gap: calc(8 * var(--sp-scale));
    min-height: auto;
  }

  .company-message__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-message__title {
    display: block;
    font-size: calc(36 * var(--sp-scale));
    line-height: 1.35;
  }

  .company-message__title small {
    display: block;
    margin-top: calc(8 * var(--sp-scale));
    font-size: calc(22 * var(--sp-scale));
    line-height: 1.6;
  }

  .company-message__card {
    padding: calc(48 * var(--sp-scale)) calc(22 * var(--sp-scale)) calc(40 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
  }

  .company-message__quote {
    top: calc(-12 * var(--sp-scale));
    left: calc(22 * var(--sp-scale));
    width: calc(46 * var(--sp-scale));
    height: calc(36 * var(--sp-scale));
  }

  .company-message__body {
    font-size: calc(14 * var(--sp-scale));
  }

  .company-message__body br {
    display: none;
  }

  .company-message__body p + p {
    margin-top: calc(24 * var(--sp-scale));
  }

  .company-message__signature {
    margin-top: calc(28 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }
}
@media (max-width: 1280px) and (min-width: 768px) {
  .company-profile__inner {
    gap: calc(56 * var(--pc-scale));
  }

  .company-profile__card {
    flex-basis: calc(884 * var(--pc-scale));
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .company-profile {
    padding-right: calc(40 * var(--pc-scale));
    padding-left: calc(40 * var(--pc-scale));
  }

  .company-profile__inner {
    flex-direction: column;
    gap: calc(40 * var(--pc-scale));
  }

  .company-profile__card {
    flex: none;
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .company-profile {
    min-height: auto;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-profile__inner {
    flex-direction: column;
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .company-profile__heading {
    gap: calc(8 * var(--sp-scale));
  }

  .company-profile__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-profile__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .company-profile__card {
    flex: none;
    width: 100%;
    padding: calc(8 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
  }

  .company-profile__table {
    font-size: calc(14 * var(--sp-scale));
  }

  .company-profile__row {
    display: block;
    min-height: 0;
  }

  .company-profile__row dt,
  .company-profile__row dd {
    padding: calc(12 * var(--sp-scale)) 0;
  }

  .company-profile__row dt {
    border-bottom-color: var(--color-red);
  }

  .company-profile__row dd {
    border-bottom-color: #cacaca;
  }

  .company-profile__row--cert dt {
    font-size: calc(14 * var(--sp-scale));
  }

  .company-profile__row--cert dd {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(10 * var(--sp-scale));
  }

  .company-profile__cert {
    width: 100%;
    height: calc(72 * var(--sp-scale));
    flex-basis: auto;
  }

  .company-profile__cert img,
  .company-profile__cert:nth-child(n) img {
    position: static;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
@media (max-width: 1280px) and (min-width: 768px) {
  .company-history__content {
    width: calc(985 * var(--pc-scale));
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .company-history__content {
    width: 100%;
  }

  .company-history__periods {
    gap: calc(18 * var(--pc-scale));
  }

  .company-history__period {
    padding: calc(18 * var(--pc-scale)) calc(12 * var(--pc-scale));
  }

  .company-history__timeline {
    padding: 0 calc(40 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .company-history {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-history__wave {
    top: calc(40 * var(--sp-scale));
    left: 50%;
    width: calc(780 * var(--sp-scale));
    transform: translateX(-50%);
  }

  .company-history__inner {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .company-history__heading {
    gap: calc(20 * var(--sp-scale));
    min-height: auto;
  }

  .company-history__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-history__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .company-history__lead {
    font-size: calc(15 * var(--sp-scale));
  }

  .company-history__content {
    gap: calc(28 * var(--sp-scale));
    width: 100%;
  }

  .company-history__periods {
    gap: calc(12 * var(--sp-scale));
  }

  .company-history__arrow {
    flex-basis: calc(44 * var(--sp-scale));
    width: calc(44 * var(--sp-scale));
    height: calc(44 * var(--sp-scale));
  }

  .company-history__period-list {
    overflow-x: auto;
    grid-template-columns: repeat(4, calc(128 * var(--sp-scale)));
    width: auto;
    scrollbar-width: none;
  }

  .company-history__period-list::-webkit-scrollbar {
    display: none;
  }

  .company-history__period {
    padding: calc(14 * var(--sp-scale)) calc(10 * var(--sp-scale));
  }

  .company-history__period-name {
    font-size: calc(18 * var(--sp-scale));
  }

  .company-history__period-years {
    font-size: calc(12 * var(--sp-scale));
  }

  .company-history__timeline {
    gap: calc(14 * var(--sp-scale));
    padding: 0;
    font-size: calc(15 * var(--sp-scale));
  }

  .company-history__item {
    display: flex;
    flex-direction: column;
    gap: calc(4 * var(--sp-scale));
  }

  .company-history__item dt {
    gap: calc(12 * var(--sp-scale));
  }

  .company-history__item dt img {
    flex-basis: calc(10 * var(--sp-scale));
    width: calc(10 * var(--sp-scale));
    height: calc(10 * var(--sp-scale));
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .company-philosophy__text {
    font-size: calc(16 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .company-philosophy {
    min-height: auto;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-philosophy__inner {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .company-philosophy__heading {
    gap: calc(8 * var(--sp-scale));
  }

  .company-philosophy__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-philosophy__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .company-philosophy__body {
    gap: calc(20 * var(--sp-scale));
  }

  .company-philosophy__statement {
    font-size: calc(23 * var(--sp-scale));
    white-space: normal;
  }

  .company-philosophy__line {
    width: calc(72 * var(--sp-scale));
    height: calc(2 * var(--sp-scale));
  }

  .company-philosophy__text {
    font-size: calc(14 * var(--sp-scale));
    text-align: left;
  }

  .company-philosophy__text br {
    display: none;
  }

  .company-philosophy__button {
    min-width: calc(250 * var(--sp-scale));
    padding: calc(14 * var(--sp-scale)) calc(16 * var(--sp-scale)) calc(14 * var(--sp-scale)) calc(20 * var(--sp-scale));
    border-radius: calc(30 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .company-philosophy__button-icon {
    flex-basis: calc(14 * var(--sp-scale));
    width: calc(14 * var(--sp-scale));
    height: calc(14 * var(--sp-scale));
  }

  .company-philosophy__button-icon-inner {
    width: calc(8.17 * var(--sp-scale));
    height: calc(8.17 * var(--sp-scale));
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .company-organization__inner {
    width: 100%;
    min-height: auto;
  }

  .company-organization__chart {
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .company-organization {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .company-organization__inner {
    gap: calc(40 * var(--sp-scale));
    width: 100%;
    min-height: auto;
  }

  .company-organization__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-organization__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .company-organization__chart {
    width: 100%;
  }

  .company-organization__main-line,
  .company-organization__branch::before,
  .company-organization__branch::after,
  .company-organization__group::before,
  .company-organization__group .company-organization__unit::before,
  .company-organization__department::before {
    display: none;
  }

  .company-organization__branch {
    position: static;
    display: flex;
    flex-direction: column;
    gap: calc(10 * var(--sp-scale));
    width: 100%;
  }

  .company-organization__head {
    min-height: calc(56 * var(--sp-scale));
    padding: calc(14 * var(--sp-scale)) calc(12 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .company-organization__unit {
    min-height: auto;
    padding: calc(14 * var(--sp-scale));
  }

  .company-organization__unit p,
  .company-organization__department,
  .company-organization__chips span {
    font-size: calc(13 * var(--sp-scale));
  }

  .company-organization__chips,
  .company-organization__chips--row {
    flex-direction: column;
    gap: calc(6 * var(--sp-scale));
    width: 100%;
  }

  .company-organization__chips span {
    justify-content: flex-start;
    width: 100%;
    min-height: calc(36 * var(--sp-scale));
    padding: calc(8 * var(--sp-scale)) calc(12 * var(--sp-scale));
    white-space: normal;
  }

  .company-organization__group {
    gap: calc(10 * var(--sp-scale));
  }

  .company-organization__group--admin {
    gap: calc(6 * var(--sp-scale));
  }

  .company-organization__department {
    min-height: calc(40 * var(--sp-scale));
    padding: calc(10 * var(--sp-scale)) calc(12 * var(--sp-scale));
  }
}
@media (max-width: 767.98px) {
  .company-access {
    padding: 72px 20px;
  }

  .company-access__inner {
    gap: 40px;
  }

  .company-access__label {
    font-size: 14px;
  }

  .company-access__title {
    font-size: 30px;
  }

  .company-access__cards {
    gap: 28px;
  }

  .company-access__row {
    flex-direction: column;
    align-items: center;
    gap: 28px;
  }

  .company-access-card {
    width: min(100%, 366px);
  }

  .company-access-card__body {
    padding: 20px;
  }

  .company-access-card__title {
    font-size: 21px;
  }

  .company-access-card__address {
    font-size: 14px;
  }
}
.security-page.lower-main {
  overflow: visible;
}

.security-policy {
  display: flex;
  align-items: flex-start;
  background: #fff;
}

.security-policy__index {
  position: sticky;
  top: var(--header-height);
  align-self: flex-start;
  flex: 0 0 332px;
  width: 332px;
  min-height: calc(100vh - var(--header-height));
  border-right: 1px solid #e2e2e2;
  background: #fff;
  padding: 104px 40px;
  z-index: 2;
}

.security-policy__index-nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}

.security-policy__index-link {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
}

.security-policy__index-link span {
  flex: 1 1 auto;
}

.security-policy__index-link img {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
}

.security-policy__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}

.security-policy__block {
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  padding: 80px 136px 80px 64px;
  background: #fff;
}

.security-policy__block > div {
  width: 908px;
  max-width: 100%;
  margin: 0 auto;
}

.security-policy__block--gray {
  background: #f9f9f9;
}

.security-policy__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  width: 100%;
  max-width: 908px;
}

.security-policy__inner--narrow {
  max-width: 908px;
}

.security-policy__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
}

.security-policy__label {
  margin: 0;
  color: #e31f20;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
}

.security-policy__title {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: 36px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.security-policy__title span {
  display: block;
}

.security-policy__body,
.security-policy__subgroup {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  width: 100%;
}

.security-policy__body--wide {
  gap: 56px;
}

.security-policy__body--compact {
  gap: 40px;
}

.security-policy__overview {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.security-policy__minor-title {
  margin: 0;
  color: #000;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.security-policy__overview-body {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
  width: 100%;
}

.security-policy__date,
.security-policy__lead,
.security-policy__signature,
.security-policy__paragraphs,
.security-policy__item p {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 16px;
  font-weight: 600;
  line-height: 2;
}

.security-policy__date--right {
  width: min(100%, 448px);
  text-align: right;
}

.security-policy__cert-row {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  width: 100%;
}

.security-policy__certification {
  display: flex;
  flex: 0 0 130px;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 130px;
  margin: 0;
}

.security-policy__isms {
  display: block;
  width: 130px;
  height: 160px;
  object-fit: cover;
}

.security-policy__certification figcaption {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.security-policy__table {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.security-policy__table-row {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  margin-top: -1px;
}

.security-policy__table-row:first-child {
  margin-top: 0;
}

.security-policy__table dt,
.security-policy__table dd {
  display: flex;
  align-items: center;
  margin: 0;
  border: 1px solid #303030;
  padding: 16px;
  color: #303030;
  font-family: var(--font-serif);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
}

.security-policy__table dt {
  justify-content: center;
  margin-right: -1px;
  white-space: nowrap;
}

.security-policy__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.security-policy__item-title {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.security-policy__item-title::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #e31f20 0 33px, #e2e2e2 33px 100%);
}

.security-policy__center-title {
  width: 100%;
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.security-policy__note-card {
  border: 1px solid #e2e2e2;
  background: #fff;
  padding: 24px;
  color: #464646;
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.7;
}

.security-policy__note-card--single {
  width: min(100%, 564px);
}

.security-policy__note-card p,
.security-policy__paragraphs p {
  margin: 0;
}

.security-policy__note-card p + p {
  margin-top: 0;
}

.security-policy a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.security-policy .security-policy__index-link,
.security-policy .security-policy__index-link span {
  text-decoration: none;
}

#security-policy-main .security-policy__body,
#privacy-policy-main .security-policy__subgroup,
#business-personal-data .security-policy__body {
  counter-reset: security-policy-item;
}

#security-policy-main .security-policy__item-title,
#privacy-policy-main .security-policy__subgroup > .security-policy__item > .security-policy__item-title,
#business-personal-data .security-policy__item-title {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.35em;
  row-gap: 16px;
}

#security-policy-main .security-policy__item-title::before,
#privacy-policy-main .security-policy__subgroup > .security-policy__item > .security-policy__item-title::before,
#business-personal-data .security-policy__item-title::before {
  content: counter(security-policy-item) ".";
  counter-increment: security-policy-item;
  grid-column: 1;
}

#security-policy-main .security-policy__item-title::after,
#privacy-policy-main .security-policy__subgroup > .security-policy__item > .security-policy__item-title::after,
#business-personal-data .security-policy__item-title::after {
  grid-column: 1 / -1;
}

.security-policy__date,
.security-policy__item p {
  color: #303030;
}

.security-policy__privacy-mark {
  display: block;
  width: 160px;
  height: 160px;
  margin: 0;
  object-fit: cover;
}

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

@media (max-width: 1280px) and (min-width: 768px) {
  .security-policy__index {
    flex-basis: 280px;
    width: 280px;
    padding-right: 28px;
    padding-left: 28px;
  }

  .security-policy__block {
    padding-right: 64px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .security-policy {
    display: block;
  }

  .security-policy__index {
    position: static;
    width: 100%;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid #e2e2e2;
    padding: 32px 40px;
  }

  .security-policy__index-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 24px;
  }

  .security-policy__block {
    max-width: none;
    padding-right: 56px;
    padding-left: 56px;
  }
}

@media (max-width: 767.98px) {
  .security-policy {
    display: block;
  }

  .security-policy__index {
    position: static;
    width: 100%;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid #e2e2e2;
    padding: calc(28 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .security-policy__index-nav {
    gap: calc(14 * var(--sp-scale));
  }

  .security-policy__index-link {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.7;
  }

  .security-policy__block {
    max-width: none;
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .security-policy__inner,
  .security-policy__body--wide,
  .security-policy__subgroup {
    gap: calc(40 * var(--sp-scale));
  }

  .security-policy__heading {
    gap: calc(8 * var(--sp-scale));
  }

  .security-policy__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .security-policy__title {
    font-size: calc(30 * var(--sp-scale));
  }

  .security-policy__minor-title,
  .security-policy__item-title {
    font-size: calc(21 * var(--sp-scale));
  }

  .security-policy__center-title {
    font-size: calc(24 * var(--sp-scale));
  }

  .security-policy__date,
  .security-policy__lead,
  .security-policy__signature,
  .security-policy__paragraphs,
  .security-policy__item p {
    font-size: calc(14 * var(--sp-scale));
  }

  .security-policy__date--right {
    text-align: left;
  }

  .security-policy__cert-row {
    flex-direction: column;
    gap: calc(18 * var(--sp-scale));
  }

  .security-policy__certification {
    flex-basis: auto;
    width: calc(130 * var(--sp-scale));
  }

  .security-policy__isms {
    width: calc(130 * var(--sp-scale));
    height: calc(160 * var(--sp-scale));
  }

  .security-policy__certification figcaption,
  .security-policy__table dt,
  .security-policy__table dd {
    font-size: calc(13 * var(--sp-scale));
  }

  .security-policy__table-row {
    display: block;
  }

  .security-policy__table dt {
    justify-content: flex-start;
    margin-right: 0;
    margin-bottom: -1px;
  }

  .security-policy__note-grid {
    grid-template-columns: 1fr;
    gap: calc(18 * var(--sp-scale));
  }

  .security-policy__note-card {
    padding: calc(18 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .security-policy__privacy-mark {
    width: calc(128 * var(--sp-scale));
    height: calc(128 * var(--sp-scale));
  }
}
.site-footer {
  border-top: 0;
  background: #101010;
}

.site-footer__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 64px;
  width: min(100%, 1180px);
  min-height: 464px;
  margin: 0 auto;
  padding: 80px 0 104px;
  color: #fff;
  font-family: var(--font-serif);
}

.site-footer__main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 72px;
  width: 100%;
}

.site-footer__company {
  display: flex;
  flex: 0 0 366px;
  flex-direction: column;
  align-items: flex-start;
  gap: 19px;
}

.site-footer__logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  padding: 8px;
}

.site-footer__logo {
  display: block;
  width: 85px;
  height: 38px;
  object-fit: contain;
}

.site-footer__address {
  display: flex;
  flex-direction: column;
  margin: 0;
  color: #fff;
  font-style: normal;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 2;
}

.site-footer__nav {
  display: flex;
  align-items: flex-start;
  gap: 61px;
  color: #fff;
}

.site-footer__nav-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 13px;
}


.site-footer__nav a {
  color: rgba(255, 255, 255, 0.7);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.site-footer__nav a:hover {
  color: #fff;
}

.site-footer__nav .site-footer__nav-heading {
  color: #fff;
  line-height: 1.9;
}

.site-footer__copy {
  width: 100%;
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
}

@media (max-width: 1280px) and (min-width: 768px) {
  .site-footer__inner {
    width: calc(100% - 80px);
  }

  .site-footer__main {
    gap: 56px;
  }

  .site-footer__nav {
    gap: 44px;
  }
}

@media (max-width: 1024px) and (min-width: 768px) {
  .site-footer__main {
    flex-direction: column;
    gap: 56px;
  }

  .site-footer__company {
    flex-basis: auto;
  }

  .site-footer__nav {
    width: 100%;
    justify-content: space-between;
  }
}

@media (max-width: 767.98px) {
  .site-footer__inner {
    gap: calc(48 * var(--sp-scale));
    width: 100%;
    min-height: auto;
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .site-footer__main {
    flex-direction: column;
    gap: calc(48 * var(--sp-scale));
    width: 100%;
  }

  .site-footer__company {
    flex: none;
    gap: calc(18 * var(--sp-scale));
    width: 100%;
  }

  .site-footer__logo-link {
    width: calc(108 * var(--sp-scale));
    padding: calc(6 * var(--sp-scale));
  }

  .site-footer__logo {
    width: calc(85 * var(--sp-scale));
    height: calc(38 * var(--sp-scale));
  }

  .site-footer__address {
    font-size: calc(14 * var(--sp-scale));
  }

  .site-footer__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(32 * var(--sp-scale)) calc(28 * var(--sp-scale));
    width: 100%;
  }

  .site-footer__nav-col {
    gap: calc(12 * var(--sp-scale));
  }


  .site-footer__nav a {
    font-size: calc(14 * var(--sp-scale));
    white-space: normal;
  }

  .site-footer__copy {
    font-size: calc(12 * var(--sp-scale));
  }
}
@media (max-width: 767.98px) {
  .diversity-plan {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .diversity-plan__inner {
    gap: calc(48 * var(--sp-scale));
    width: 100%;
  }

  .diversity-plan__heading {
    gap: calc(28 * var(--sp-scale));
    width: 100%;
  }

  .diversity-plan__label {
    margin-bottom: calc(6 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .diversity-plan__title {
    font-size: calc(26 * var(--sp-scale));
  }

  .diversity-plan__lead,
  .diversity-plan__meta,
  .diversity-plan__period {
    font-size: calc(14 * var(--sp-scale));
  }

  .diversity-plan__lead {
    white-space: normal;
    text-align: left;
  }

  .diversity-plan__content {
    gap: calc(32 * var(--sp-scale));
  }

  .diversity-plan__section {
    gap: calc(14 * var(--sp-scale));
  }

  .diversity-plan__section-title {
    font-size: calc(22 * var(--sp-scale));
  }

  .diversity-plan__section-title span {
    margin-right: calc(6 * var(--sp-scale));
  }

  .diversity-plan__section-title::after {
    height: calc(2 * var(--sp-scale));
    margin-top: calc(14 * var(--sp-scale));
    background: linear-gradient(90deg, #e31f20 0 calc(28 * var(--sp-scale)), #e2e2e2 calc(28 * var(--sp-scale)) 100%);
  }

  .diversity-plan-table__row {
    grid-template-columns: calc(78 * var(--sp-scale)) minmax(0, 1fr);
    margin-top: calc(-1 * var(--sp-scale));
  }

  .diversity-plan-table__label,
  .diversity-plan-table__body {
    padding: calc(12 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .diversity-plan-table__body {
    gap: calc(12 * var(--sp-scale));
  }
}
@media (max-width: 1024px) and (min-width: 768px) {
  .requirements-list__inner {
    width: calc(100% - 80px);
  }

  .requirements-card__table {
    width: 100%;
  }
}

@media (max-width: 767.98px) {
  .requirements-list {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .requirements-list__inner {
    width: 100%;
  }

  .requirements-list__heading {
    gap: calc(28 * var(--sp-scale));
  }

  .requirements-tabs {
    gap: calc(10 * var(--sp-scale));
    width: 100%;
    margin-top: calc(36 * var(--sp-scale));
  }

  .requirements-tabs__link {
    min-height: calc(48 * var(--sp-scale));
    border-radius: calc(24 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .requirements-tabs__item {
    gap: calc(12 * var(--sp-scale));
  }

  .requirements-tabs__description {
    font-size: calc(12 * var(--sp-scale));
    line-height: 1.7;
  }

  .requirements-cards {
    gap: calc(14 * var(--sp-scale));
    margin-top: calc(28 * var(--sp-scale));
  }

  .requirements-card {
    border-radius: calc(8 * var(--sp-scale));
  }
  .requirements-cards__empty {
    padding: calc(24 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .requirements-card__summary {
    align-items: flex-start;
    gap: calc(16 * var(--sp-scale));
    min-height: auto;
    padding: calc(20 * var(--sp-scale));
  }

  .requirements-card__tag {
    min-width: calc(62 * var(--sp-scale));
    min-height: calc(22 * var(--sp-scale));
    padding: 0 calc(8 * var(--sp-scale));
    border-radius: calc(4 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .requirements-card__title {
    margin-top: calc(14 * var(--sp-scale));
    font-size: calc(19 * var(--sp-scale));
  }

  .requirements-card__lead {
    margin-top: calc(8 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .requirements-card__toggle {
    width: calc(38 * var(--sp-scale));
    height: calc(38 * var(--sp-scale));
  }

  .requirements-card__toggle::before {
    width: calc(10 * var(--sp-scale));
    height: calc(10 * var(--sp-scale));
  }

  .requirements-card__detail {
    padding: 0 calc(20 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .requirements-card__table {
    width: 100%;
    font-size: calc(13 * var(--sp-scale));
  }

  .requirements-card__table tr {
    display: grid;
    grid-template-columns: calc(94 * var(--sp-scale)) minmax(0, 1fr);
  }

  .requirements-card__table th,
  .requirements-card__table td {
    height: auto;
    min-height: calc(54 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(10 * var(--sp-scale));
  }

  .requirements-card__table th {
    width: auto;
  }
}
.requirements-flow {
  overflow: hidden;
  scroll-margin-top: var(--header-height);
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
}

.requirements-flow__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.requirements-flow__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(80 * var(--pc-scale));
  width: 100%;
}

.requirements-flow__lead {
  width: 100%;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
  text-align: center;
}

.requirements-flow__steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: calc(16 * var(--pc-scale));
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.requirements-flow-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: calc(423 * var(--pc-scale));
  padding: calc(48 * var(--pc-scale)) calc(16 * var(--pc-scale)) calc(16 * var(--pc-scale));
  border: 2px solid var(--color-red);
  border-radius: calc(8 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
}
.requirements-flow-card__badge {
  position: absolute;
  top: calc(-35 * var(--pc-scale));
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc(72 * var(--pc-scale));
  height: calc(72 * var(--pc-scale));
  border-radius: 50%;
  background: var(--color-red);
  color: #fff;
  transform: translateX(-50%);
}
.requirements-flow-card__badge span {
  font-size: calc(10 * var(--pc-scale));
  line-height: 1.2;
}

.requirements-flow-card__badge strong {
  font-size: calc(27.429 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.15;
}

.requirements-flow-card__title {
  margin: 0;
  color: var(--color-red);
  font-size: calc(20 * var(--pc-scale));
  font-weight: 600;
  line-height: 2.4;
  letter-spacing: 0;
  text-align: center;
}
.requirements-flow-card__icon {
  display: block;
  width: calc(80 * var(--pc-scale));
  height: calc(63 * var(--pc-scale));
  margin-top: calc(8 * var(--pc-scale));
  object-fit: contain;
}
.requirements-flow-card__text {
  width: 100%;
  margin-top: calc(24 * var(--pc-scale));
  font-size: calc(14 * var(--pc-scale));
  line-height: 1.7;
  letter-spacing: 0;
  text-align: left;
}
@media (max-width: 1024px) and (min-width: 768px) {
  .requirements-flow {
    padding-right: calc(40 * var(--pc-scale));
    padding-left: calc(40 * var(--pc-scale));
  }

  .requirements-flow__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: calc(64 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .requirements-flow {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .requirements-flow__inner {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .requirements-flow__body {
    gap: calc(48 * var(--sp-scale));
  }

  .requirements-flow__lead {
    font-size: calc(14 * var(--sp-scale));
    line-height: 2;
    text-align: left;
  }

  .requirements-flow__lead br {
    display: none;
  }

  .requirements-flow__steps {
    grid-template-columns: 1fr;
    gap: calc(48 * var(--sp-scale));
  }

  .requirements-flow-card {
    min-height: auto;
    padding: calc(56 * var(--sp-scale)) calc(20 * var(--sp-scale)) calc(22 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
  }

  .requirements-flow-card__badge {
    top: calc(-28 * var(--sp-scale));
    width: calc(72 * var(--sp-scale));
    height: calc(72 * var(--sp-scale));
  }

  .requirements-flow-card__badge span {
    font-size: calc(11 * var(--sp-scale));
  }

  .requirements-flow-card__badge strong {
    font-size: calc(28 * var(--sp-scale));
  }

  .requirements-flow-card__title {
    font-size: calc(22 * var(--sp-scale));
  }

  .requirements-flow-card__icon {
    width: calc(72 * var(--sp-scale));
    height: calc(57 * var(--sp-scale));
    margin-top: calc(14 * var(--sp-scale));
  }

  .requirements-flow-card__text {
    margin-top: calc(20 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }
}

.requirements-faq {
  overflow: hidden;
  scroll-margin-top: var(--header-height);
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #f9f9f9;
}

.requirements-faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(51 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.requirements-faq__list {
  display: flex;
  flex-direction: column;
  gap: calc(18 * var(--pc-scale));
  width: 100%;
}

.requirements-faq-card {
  width: 100%;
  padding: calc(32 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 0 calc(6 * var(--pc-scale)) rgba(0, 0, 0, 0.05);
  color: #464646;
  font-family: var(--font-serif);
  font-weight: 600;
}

.requirements-faq-card__summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: calc(16 * var(--pc-scale));
  cursor: pointer;
  list-style: none;
}

.requirements-faq-card__summary::-webkit-details-marker {
  display: none;
}

.requirements-faq-card__question {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
  min-width: 0;
  font-size: calc(18 * var(--pc-scale));
  line-height: 2;
  letter-spacing: 0;
}

.requirements-faq-card__mark {
  flex: 0 0 auto;
  color: var(--color-red);
  font-size: calc(32 * var(--pc-scale));
  line-height: 1.5;
}

.requirements-faq-card__toggle {
  position: relative;
  flex: 0 0 auto;
  width: calc(48 * var(--pc-scale));
  height: calc(48 * var(--pc-scale));
}

.requirements-faq-card__toggle::before {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: calc(10 * var(--pc-scale));
  height: calc(10 * var(--pc-scale));
  border-top: 2px solid var(--color-red);
  border-left: 2px solid var(--color-red);
  content: "";
  transform: translate(-50%, -30%) rotate(45deg);
}

.requirements-faq-card:not([open]) .requirements-faq-card__toggle::before {
  transform: translate(-50%, -70%) rotate(225deg);
}

.requirements-faq-card__answer {
  padding: calc(16 * var(--pc-scale)) calc(80 * var(--pc-scale)) 0 calc(16 * var(--pc-scale));
}

.requirements-faq-card__answer p {
  margin: 0;
  color: #686868;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  letter-spacing: 0;
}

.requirements-entry {
  padding: calc(40 * var(--pc-scale));
  background: #fff;
}

.requirements-entry__panel {
  position: relative;
  overflow: hidden;
  width: min(100%, calc(1094 * var(--pc-scale)));
  min-height: calc(332 * var(--pc-scale));
  margin: 0 auto;
  padding: calc(40 * var(--pc-scale));
  border-radius: calc(24 * var(--pc-scale));
  color: #fff;
  font-family: var(--font-serif);
}

.requirements-entry__background,
.requirements-entry__background img {
  position: absolute;
  left: 0;
  width: 100%;
  max-width: none;
}

.requirements-entry__background {
  z-index: 0;
  inset: 0;
}

.requirements-entry__background img {
  top: -5.98%;
  height: 199.43%;
}

.requirements-entry__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(64 * var(--pc-scale));
  width: 100%;
  min-height: calc(252 * var(--pc-scale));
}

.requirements-entry__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(16 * var(--pc-scale));
  min-width: 0;
  color: #fff;
}

.requirements-entry__heading {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--pc-scale));
}

.requirements-entry__label,
.requirements-entry__title,
.requirements-entry__text,
.requirements-entry__graduates-title,
.requirements-entry__graduate-caption {
  margin: 0;
  color: #fff;
  letter-spacing: 0;
}

.requirements-entry__label {
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.requirements-entry__title {
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
}

.requirements-entry__text {
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.requirements-entry__actions {
  display: flex;
  flex: 0 0 calc(430 * var(--pc-scale));
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: calc(430 * var(--pc-scale));
}

.requirements-entry__graduates {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
}

.requirements-entry__graduates-title {
  min-width: calc(180 * var(--pc-scale));
  padding-bottom: calc(4 * var(--pc-scale));
  border-bottom: 1px solid #fff;
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-align: center;
}

.requirements-entry__graduate-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(12 * var(--pc-scale));
}

.requirements-entry__graduate-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(4 * var(--pc-scale));
}

.requirements-entry__graduate-caption {
  font-size: calc(14 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.7;
  white-space: nowrap;
}

.requirements-entry__graduate-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(208 * var(--pc-scale));
  height: calc(59 * var(--pc-scale));
  overflow: hidden;
  background: #fff;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.requirements-entry__graduate-link img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.requirements-entry__graduate-link:hover,
.requirements-entry__graduate-link:focus-visible {
  opacity: 0.88;
  transform: translateY(calc(-2 * var(--pc-scale)));
}

.requirements-entry__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  width: 100%;
  min-height: calc(64 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border: 1px solid #fff;
  border-radius: calc(48 * var(--pc-scale));
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.requirements-entry__button img {
  display: block;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}

.requirements-entry__button:hover,
.requirements-entry__button:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  transform: translateY(calc(-2 * var(--pc-scale)));
}
@media (max-width: 767.98px) {
  .requirements-faq {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .requirements-faq__inner {
    gap: calc(36 * var(--sp-scale));
    width: 100%;
  }

  .requirements-faq__list {
    gap: calc(14 * var(--sp-scale));
  }

  .requirements-faq-card {
    padding: calc(22 * var(--sp-scale)) calc(18 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
  }

  .requirements-faq-card__summary {
    gap: calc(12 * var(--sp-scale));
  }

  .requirements-faq-card__question {
    align-items: flex-start;
    gap: calc(10 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.8;
  }

  .requirements-faq-card__mark {
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.3;
  }

  .requirements-faq-card__toggle {
    width: calc(30 * var(--sp-scale));
    height: calc(30 * var(--sp-scale));
  }

  .requirements-faq-card__toggle::before {
    width: calc(8 * var(--sp-scale));
    height: calc(8 * var(--sp-scale));
  }

  .requirements-faq-card__answer {
    padding: calc(12 * var(--sp-scale)) 0 0 calc(34 * var(--sp-scale));
  }

  .requirements-faq-card__answer p {
    font-size: calc(13 * var(--sp-scale));
    line-height: 2;
  }

  .requirements-entry {
    padding: calc(28 * var(--sp-scale)) calc(16 * var(--sp-scale));
  }

  .requirements-entry__panel {
    min-height: 0;
    padding: calc(36 * var(--sp-scale)) calc(20 * var(--sp-scale));
    border-radius: calc(18 * var(--sp-scale));
  }

  .requirements-entry__background img {
    top: 0;
    height: 100%;
    object-fit: cover;
  }

  .requirements-entry__inner {
    flex-direction: column;
    gap: calc(32 * var(--sp-scale));
    min-height: 0;
  }

  .requirements-entry__content {
    align-items: center;
    gap: calc(16 * var(--sp-scale));
    text-align: center;
  }

  .requirements-entry__heading {
    align-items: center;
    gap: calc(8 * var(--sp-scale));
  }

  .requirements-entry__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .requirements-entry__title {
    font-size: calc(25 * var(--sp-scale));
    white-space: normal;
  }

  .requirements-entry__text {
    font-size: calc(14 * var(--sp-scale));
    line-height: 2;
  }

  .requirements-entry__actions {
    flex-basis: auto;
    gap: calc(28 * var(--sp-scale));
    width: 100%;
  }

  .requirements-entry__graduates {
    gap: calc(14 * var(--sp-scale));
    width: 100%;
  }

  .requirements-entry__graduates-title {
    min-width: calc(166 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .requirements-entry__graduate-links {
    flex-direction: column;
    gap: calc(14 * var(--sp-scale));
    width: 100%;
  }

  .requirements-entry__graduate-item {
    gap: calc(4 * var(--sp-scale));
  }

  .requirements-entry__graduate-caption {
    font-size: calc(12 * var(--sp-scale));
  }

  .requirements-entry__graduate-link {
    width: min(100%, calc(240 * var(--sp-scale)));
    height: calc(68 * var(--sp-scale));
  }

  .requirements-entry__button {
    width: 100%;
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(28 * var(--sp-scale));
    border-radius: calc(32 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  .requirements-entry__button img {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }}
.news-list-section {
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
}

.news-list-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(977 * var(--pc-scale)));
  margin: 0 auto;
}

.news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
}

.news-filter__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(104 * var(--pc-scale));
  min-height: calc(40 * var(--pc-scale));
  padding: calc(4 * var(--pc-scale)) calc(18 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(48 * var(--pc-scale));
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-align: center;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.news-filter__item.is-active,
.news-filter__item[aria-current="page"],
.news-filter__item:hover,
.news-filter__item:focus-visible {
  background: var(--color-red);
  color: #fff;
}

.news-list {
  width: 100%;
  border-top: 1px solid #e2e2e2;
}

.news-list__item {
  border-bottom: 1px solid #e2e2e2;
}

.news-list__link {
  display: flex;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  min-height: calc(57 * var(--pc-scale));
  padding: calc(12 * var(--pc-scale)) calc(16 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  letter-spacing: 0;
  transition: color 0.2s ease;
}

.news-list__link:hover,
.news-list__link:focus-visible {
  color: var(--color-red);
}

.news-list__meta {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
}

.news-list__date {
  white-space: nowrap;
}

.news-list__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(68 * var(--pc-scale));
  min-height: calc(24 * var(--pc-scale));
  padding: 0 calc(8 * var(--pc-scale)) calc(2 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(4 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(13 * var(--pc-scale));
  line-height: 1.5;
  white-space: nowrap;
}

.news-list__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.news-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(36 * var(--pc-scale));
  margin-top: calc(22 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.news-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(16 * var(--pc-scale));
  min-height: calc(32 * var(--pc-scale));
  color: #303030;
}

.news-pagination .page-numbers.current {
  color: var(--color-red);
}

.news-pagination .page-numbers.prev,
.news-pagination .page-numbers.next {
  width: calc(48 * var(--pc-scale));
  height: calc(48 * var(--pc-scale));
  border-radius: 50%;
  background: var(--color-red);
  color: #fff;
  font-size: calc(24 * var(--pc-scale));
  line-height: 1;
  transition: opacity 0.2s ease;
}

.news-pagination .page-numbers.prev:hover,
.news-pagination .page-numbers.next:hover,
.news-pagination .page-numbers.prev:focus-visible,
.news-pagination .page-numbers.next:focus-visible {
  opacity: 0.78;
}

@media (max-width: 767.98px) {
  .news-list-section {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .news-list-section__inner {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .news-filter {
    gap: calc(10 * var(--sp-scale));
  }

  .news-filter__item {
    min-width: calc(96 * var(--sp-scale));
    min-height: calc(38 * var(--sp-scale));
    padding: calc(4 * var(--sp-scale)) calc(14 * var(--sp-scale));
    border-radius: calc(24 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .news-list__link {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(8 * var(--sp-scale));
    min-height: auto;
    padding: calc(16 * var(--sp-scale)) 0;
    font-size: calc(14 * var(--sp-scale));
  }

  .news-list__meta {
    gap: calc(18 * var(--sp-scale));
  }

  .news-list__badge {
    min-width: calc(62 * var(--sp-scale));
    min-height: calc(22 * var(--sp-scale));
    padding: 0 calc(8 * var(--sp-scale)) calc(2 * var(--sp-scale));
    border-radius: calc(4 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .news-list__title {
    white-space: normal;
  }

  .news-pagination {
    gap: calc(24 * var(--sp-scale));
    margin-top: calc(8 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .news-pagination .page-numbers.prev,
  .news-pagination .page-numbers.next {
    width: calc(42 * var(--sp-scale));
    height: calc(42 * var(--sp-scale));
    font-size: calc(22 * var(--sp-scale));
  }
}
/* News detail */
.news-detail-section {
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
}

.news-detail-section__inner {
  width: min(100%, calc(778 * var(--pc-scale)));
  margin: 0 auto;
}

.news-detail {
  display: flex;
  flex-direction: column;
  gap: calc(64 * var(--pc-scale));
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: 0;
}

.news-detail__header,
.news-detail__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
}

.news-detail__header {
  gap: calc(40 * var(--pc-scale));
}

.news-detail__heading {
  gap: calc(24 * var(--pc-scale));
}

.news-detail__title {
  width: 100%;
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

.news-detail__meta {
  display: flex;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
}

.news-detail__date {
  color: #686868;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  white-space: nowrap;
}

.news-detail__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(68 * var(--pc-scale));
  min-height: calc(24 * var(--pc-scale));
  padding: 0 calc(8 * var(--pc-scale)) calc(2 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(4 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(13 * var(--pc-scale));
  line-height: 1.5;
  white-space: nowrap;
}

.news-detail__divider {
  display: flex;
  align-items: center;
  width: 100%;
  height: calc(2 * var(--pc-scale));
}

.news-detail__divider-accent {
  width: calc(33 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: var(--color-red);
}

.news-detail__divider-line {
  flex: 1 1 auto;
  height: 1px;
  background: #e2e2e2;
}

.news-detail__body {
  width: 100%;
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.news-detail__body > * {
  margin-top: 0;
  margin-bottom: calc(40 * var(--pc-scale));
}

.news-detail__body > *:last-child {
  margin-bottom: 0;
}

.news-detail__body h2,
.news-detail__body h3,
.news-detail__body h4 {
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: 0;
}

.news-detail__body h2 {
  padding: calc(6 * var(--pc-scale)) calc(16 * var(--pc-scale));
  background: #f4f4f4;
  font-size: calc(28 * var(--pc-scale));
  line-height: 1.5;
}

.news-detail__body h3 {
  padding-bottom: calc(8 * var(--pc-scale));
  border-bottom: 1px solid var(--color-red);
  font-size: calc(24 * var(--pc-scale));
  line-height: 1.5;
}

.news-detail__body h4 {
  font-size: calc(20 * var(--pc-scale));
  line-height: 1.5;
}

.news-detail__body p,
.news-detail__body li {
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.news-detail__body ul,
.news-detail__body ol {
  padding-left: 1.5em;
}

.news-detail__body img {
  max-width: 100%;
  height: auto;
}

.news-detail__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: calc(24 * var(--pc-scale));
  width: 100%;
  padding-top: calc(24 * var(--pc-scale));
  border-top: 1px solid #e2e2e2;
}

.news-detail__nav-link {
  display: inline-flex;
  align-items: center;
  gap: calc(4 * var(--pc-scale));
  color: var(--color-red);
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  text-align: center;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}

.news-detail__nav-link:hover,
.news-detail__nav-link:focus-visible {
  opacity: 0.72;
}

.news-detail__nav-link.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}

.news-detail__nav-link--prev {
  justify-self: start;
}

.news-detail__nav-link--list {
  justify-self: center;
}

.news-detail__nav-link--next {
  justify-self: end;
}

.news-detail__nav-link span[aria-hidden="true"] {
  font-size: calc(18 * var(--pc-scale));
  line-height: 1;
}

@media (max-width: 767.98px) {
  .news-detail-section {
    padding: calc(56 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .news-detail-section__inner {
    width: 100%;
  }

  .news-detail {
    gap: calc(48 * var(--sp-scale));
  }

  .news-detail__header {
    gap: calc(32 * var(--sp-scale));
  }

  .news-detail__heading {
    gap: calc(18 * var(--sp-scale));
  }

  .news-detail__title {
    font-size: calc(26 * var(--sp-scale));
  }

  .news-detail__meta {
    gap: calc(16 * var(--sp-scale));
  }

  .news-detail__date {
    font-size: calc(14 * var(--sp-scale));
  }

  .news-detail__badge {
    min-width: calc(62 * var(--sp-scale));
    min-height: calc(22 * var(--sp-scale));
    padding: 0 calc(8 * var(--sp-scale)) calc(2 * var(--sp-scale));
    border-radius: calc(4 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .news-detail__divider {
    height: calc(2 * var(--sp-scale));
  }

  .news-detail__divider-accent {
    width: calc(28 * var(--sp-scale));
    height: calc(2 * var(--sp-scale));
  }

  .news-detail__body {
    font-size: calc(14 * var(--sp-scale));
  }

  .news-detail__body > * {
    margin-bottom: calc(32 * var(--sp-scale));
  }

  .news-detail__body h2 {
    padding: calc(6 * var(--sp-scale)) calc(14 * var(--sp-scale));
    font-size: calc(22 * var(--sp-scale));
  }

  .news-detail__body h3 {
    padding-bottom: calc(8 * var(--sp-scale));
    font-size: calc(20 * var(--sp-scale));
  }

  .news-detail__body h4 {
    font-size: calc(17 * var(--sp-scale));
  }

  .news-detail__body p,
  .news-detail__body li {
    font-size: calc(14 * var(--sp-scale));
  }

  .news-detail__nav {
    gap: calc(10 * var(--sp-scale));
    padding-top: calc(20 * var(--sp-scale));
  }

  .news-detail__nav-link {
    gap: calc(3 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .news-detail__nav-link span[aria-hidden="true"] {
    font-size: calc(16 * var(--sp-scale));
  }
}
/* Contact section */
.contact-section {
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #f9f9f9;
}

.contact-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(80 * var(--pc-scale));
  width: min(100%, calc(980 * var(--pc-scale)));
  margin: 0 auto;
}

.contact-section__lead {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(18 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  text-align: center;
}

.contact-tel-block,
.contact-form-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: 100%;
}

.contact-tel-block {
  width: min(100%, calc(900 * var(--pc-scale)));
}

.contact-section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
}

.contact-section-heading__title {
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
}

.contact-section-heading__line {
  width: calc(104 * var(--pc-scale));
  height: calc(2 * var(--pc-scale));
  background: var(--color-red);
}

.contact-section-heading__line--form {
  width: calc(149 * var(--pc-scale));
}

.contact-tel-card {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: calc(32 * var(--pc-scale));
  width: 100%;
  padding: calc(40 * var(--pc-scale)) calc(64 * var(--pc-scale)) calc(32 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 0 calc(6 * var(--pc-scale)) rgba(0, 0, 0, 0.05);
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
}

.contact-tel-card__item {
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: calc(16 * var(--pc-scale));
}

.contact-tel-card__item--tel {
  grid-template-areas:
    "label number"
    ". time";
}

.contact-tel-card__label {
  color: #303030;
  font-size: calc(20 * var(--pc-scale));
  line-height: 2;
  white-space: nowrap;
}

.contact-tel-card__number {
  color: var(--color-red);
  font-size: calc(40 * var(--pc-scale));
  line-height: 1.5;
  white-space: nowrap;
}

.contact-tel-card__time {
  grid-area: time;
  display: block;
  margin-top: calc(-4 * var(--pc-scale));
  color: #303030;
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.7;
  text-align: center;
}

.contact-tel-card__divider {
  width: 1px;
  height: calc(48 * var(--pc-scale));
  background: #e2e2e2;
}

.contact-form-result {
  width: 100%;
  margin-bottom: calc(24 * var(--pc-scale));
  padding: calc(20 * var(--pc-scale)) calc(24 * var(--pc-scale));
  border: 1px solid currentColor;
  border-radius: calc(4 * var(--pc-scale));
  background: #fff;
  font-family: var(--font-serif);
  font-size: calc(15 * var(--pc-scale));
  line-height: 1.8;
  scroll-margin-top: calc(120 * var(--pc-scale));
}

.contact-form-result:focus {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.contact-form-result--success {
  border-color: #24734a;
  background: #f1faf5;
  color: #185e3a;
}

.contact-form-result--error {
  border-color: #c72020;
  background: #fff5f5;
  color: #9e1515;
}

.contact-form-result p,
.contact-form-result ul {
  margin: 0;
}

.contact-form-result ul {
  margin-top: calc(8 * var(--pc-scale));
  padding-left: 1.5em;
}

.contact-form__honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.contact-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(56 * var(--pc-scale));
  width: 100%;
  padding: calc(40 * var(--pc-scale)) calc(64 * var(--pc-scale));
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 0 calc(6 * var(--pc-scale)) rgba(0, 0, 0, 0.05);
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  scroll-margin-top: calc(120 * var(--pc-scale));
}

.contact-form__fields {
  width: 100%;
}

.contact-form__row {
  display: flex;
  align-items: center;
  gap: calc(80 * var(--pc-scale));
  width: 100%;
  padding: calc(24 * var(--pc-scale)) 0;
  border-bottom: 1px solid #e2e2e2;
}

.contact-form__row:first-child {
  padding-top: 0;
}

.contact-form__row--textarea {
  align-items: flex-start;
}

.contact-form__label-wrap {
  display: flex;
  flex: 0 0 calc(240 * var(--pc-scale));
  align-items: center;
  gap: calc(16 * var(--pc-scale));
}

.contact-form__label {
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  white-space: nowrap;
}

.contact-form__required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(32 * var(--pc-scale));
  min-height: calc(18 * var(--pc-scale));
  border-radius: calc(2 * var(--pc-scale));
  background: var(--color-red);
  color: #fff;
  font-size: calc(12 * var(--pc-scale));
  line-height: 1.5;
}

.contact-form__control,
.contact-form__input,
.contact-form__textarea {
  flex: 1 1 auto;
  min-width: 0;
}

.contact-form__radio-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(12 * var(--pc-scale));
}

.contact-form__radio {
  display: inline-flex;
  align-items: center;
  gap: calc(14 * var(--pc-scale));
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  cursor: pointer;
}

.contact-form__radio input {
  appearance: none;
  display: grid;
  place-items: center;
  width: calc(24 * var(--pc-scale));
  height: calc(24 * var(--pc-scale));
  margin: 0;
  border: 1px solid #303030;
  border-radius: 50%;
  background: #fff;
}

.contact-form__radio input::before {
  content: "";
  width: calc(12 * var(--pc-scale));
  height: calc(12 * var(--pc-scale));
  border-radius: 50%;
  background: var(--color-red);
  transform: scale(0);
  transition: transform 0.2s ease;
}

.contact-form__radio input:checked {
  border-color: var(--color-red);
}

.contact-form__radio input:checked::before {
  transform: scale(1);
}

.contact-form__input,
.contact-form__textarea {
  width: 100%;
  border: 1px solid #e2e2e2;
  border-radius: calc(4 * var(--pc-scale));
  background: #f9f9f9;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.contact-form__input {
  min-height: calc(48 * var(--pc-scale));
  padding: calc(6 * var(--pc-scale)) calc(16 * var(--pc-scale));
}

.contact-form__textarea {
  min-height: calc(200 * var(--pc-scale));
  padding: calc(6 * var(--pc-scale)) calc(16 * var(--pc-scale));
  resize: vertical;
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
  color: rgba(48, 48, 48, 0.5);
}

.contact-form__privacy {
  display: inline-flex;
  align-items: flex-end;
  gap: calc(21 * var(--pc-scale));
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
  cursor: pointer;
}

.contact-form__privacy input {
  appearance: none;
  display: grid;
  place-items: center;
  width: calc(31 * var(--pc-scale));
  height: calc(31 * var(--pc-scale));
  margin: 0;
  border: 2px solid #e2e2e2;
  border-radius: calc(4 * var(--pc-scale));
  background: #fff;
}

.contact-form__privacy input::before {
  content: "";
  width: calc(14 * var(--pc-scale));
  height: calc(8 * var(--pc-scale));
  border-bottom: 2px solid var(--color-red);
  border-left: 2px solid var(--color-red);
  transform: rotate(-45deg) scale(0);
  transition: transform 0.2s ease;
}

.contact-form__privacy input:checked::before {
  transform: rotate(-45deg) scale(1);
}

.contact-form__privacy-open,
.contact-form__privacy label {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 600;
}

.contact-form__privacy-open {
  text-decoration: underline;
  text-underline-offset: calc(3 * var(--pc-scale));
  cursor: pointer;
}

.contact-form__privacy-open:hover,
.contact-form__privacy-open:focus-visible {
  color: var(--color-red);
}

.contact-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(224 * var(--pc-scale));
  min-height: calc(64 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(32 * var(--pc-scale));
  background: var(--color-red);
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.contact-form__submit:hover,
.contact-form__submit:focus-visible {
  background: #fff;
  color: var(--color-red);
}

@media (max-width: 1024px) and (min-width: 768px) {
  .contact-form__row {
    gap: calc(40 * var(--pc-scale));
  }

  .contact-form__label-wrap {
    flex-basis: calc(220 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .contact-section {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .contact-section__inner {
    gap: calc(56 * var(--sp-scale));
    width: 100%;
  }

  .contact-section__lead {
    font-size: calc(15 * var(--sp-scale));
    text-align: left;
  }

  .contact-section__lead br {
    display: none;
  }

  .contact-tel-block,
  .contact-form-block {
    gap: calc(32 * var(--sp-scale));
  }

  .contact-section-heading {
    gap: calc(14 * var(--sp-scale));
  }

  .contact-section-heading__title {
    font-size: calc(20 * var(--sp-scale));
  }

  .contact-section-heading__line {
    width: calc(88 * var(--sp-scale));
    height: calc(2 * var(--sp-scale));
  }

  .contact-section-heading__line--form {
    width: calc(126 * var(--sp-scale));
  }

  .contact-tel-card {
    flex-direction: column;
    align-items: center;
    gap: calc(20 * var(--sp-scale));
    padding: calc(28 * var(--sp-scale)) calc(20 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
    box-shadow: 0 0 calc(6 * var(--sp-scale)) rgba(0, 0, 0, 0.05);
  }

  .contact-tel-card__item {
    gap: calc(10 * var(--sp-scale));
  }

  .contact-tel-card__label {
    font-size: calc(16 * var(--sp-scale));
  }

  .contact-tel-card__number {
    font-size: calc(28 * var(--sp-scale));
  }

  .contact-tel-card__time {
    margin-top: calc(-4 * var(--sp-scale));
    font-size: calc(12 * var(--sp-scale));
  }

  .contact-tel-card__divider {
    width: 100%;
    height: 1px;
  }

  .contact-form {
    gap: calc(40 * var(--sp-scale));
    padding: calc(32 * var(--sp-scale)) calc(20 * var(--sp-scale));
    border-radius: calc(8 * var(--sp-scale));
    box-shadow: 0 0 calc(6 * var(--sp-scale)) rgba(0, 0, 0, 0.05);
  }

  .contact-form__row {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(12 * var(--sp-scale));
    padding: calc(20 * var(--sp-scale)) 0;
  }

  .contact-form__label-wrap {
    flex: none;
    gap: calc(12 * var(--sp-scale));
  }

  .contact-form__label {
    font-size: calc(14 * var(--sp-scale));
  }

  .contact-form__required {
    width: calc(30 * var(--sp-scale));
    min-height: calc(18 * var(--sp-scale));
    border-radius: calc(2 * var(--sp-scale));
    font-size: calc(11 * var(--sp-scale));
  }

  .contact-form__radio-list {
    gap: calc(10 * var(--sp-scale));
  }

  .contact-form__radio {
    gap: calc(10 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    text-align: left;
  }

  .contact-form__radio input {
    width: calc(22 * var(--sp-scale));
    height: calc(22 * var(--sp-scale));
  }

  .contact-form__radio input::before {
    width: calc(10 * var(--sp-scale));
    height: calc(10 * var(--sp-scale));
  }

  .contact-form__input,
  .contact-form__textarea {
    border-radius: calc(4 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .contact-form__input {
    min-height: calc(46 * var(--sp-scale));
    padding: calc(6 * var(--sp-scale)) calc(14 * var(--sp-scale));
  }

  .contact-form__textarea {
    min-height: calc(180 * var(--sp-scale));
    padding: calc(8 * var(--sp-scale)) calc(14 * var(--sp-scale));
  }

  .contact-form__privacy {
    align-items: center;
    gap: calc(12 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
    line-height: 1.8;
  }

  .contact-form__privacy input {
    flex: 0 0 auto;
    width: calc(26 * var(--sp-scale));
    height: calc(26 * var(--sp-scale));
    border-radius: calc(4 * var(--sp-scale));
  }

  .contact-form__privacy input::before {
    width: calc(12 * var(--sp-scale));
    height: calc(7 * var(--sp-scale));
  }

  .contact-form__submit {
    min-width: calc(210 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(28 * var(--sp-scale));
    border-radius: calc(30 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }
}

.contact-form__privacy-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
}

.contact-form__privacy.is-disabled label {
  color: rgba(48, 48, 48, 0.52);
}

.contact-form__privacy input:disabled {
  border-color: #9a9a9a;
  background: #cfcfcf;
  box-shadow: inset 0 0 0 calc(2 * var(--pc-scale)) rgba(0, 0, 0, 0.08);
  cursor: not-allowed;
}

.contact-form__privacy input:disabled + span label {
  cursor: not-allowed;
}

html.is-contact-privacy-modal-open {
  overflow: hidden;
}

.contact-privacy-modal[hidden] {
  display: none;
}

.contact-privacy-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: calc(40 * var(--pc-scale));
}

.contact-privacy-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 16, 16, 0.58);
}

.contact-privacy-modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(100%, calc(920 * var(--pc-scale)));
  max-height: min(calc(760 * var(--pc-scale)), calc(100vh - 80px));
  overflow: hidden;
  border-radius: calc(8 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 0 calc(24 * var(--pc-scale)) rgba(0, 0, 0, 0.18);
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  opacity: 0;
  transform: translateY(calc(16 * var(--pc-scale)));
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.contact-privacy-modal.is-open .contact-privacy-modal__panel {
  opacity: 1;
  transform: translateY(0);
}

.contact-privacy-modal__header,
.contact-privacy-modal__actions {
  flex: 0 0 auto;
  padding: calc(24 * var(--pc-scale)) calc(32 * var(--pc-scale));
}

.contact-privacy-modal__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: calc(24 * var(--pc-scale));
  border-bottom: 1px solid #e2e2e2;
}

.contact-privacy-modal__heading {
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--pc-scale));
}

.contact-privacy-modal__label,
.contact-privacy-modal__section-label {
  margin: 0;
  color: var(--color-red);
  font-size: calc(14 * var(--pc-scale));
  line-height: 1.7;
}

.contact-privacy-modal__title,
.contact-privacy-modal__section-title {
  margin: 0;
  color: #303030;
  font-weight: 600;
  line-height: 1.5;
}

.contact-privacy-modal__title {
  font-size: calc(28 * var(--pc-scale));
}

.contact-privacy-modal__close {
  flex: 0 0 auto;
  min-width: calc(88 * var(--pc-scale));
  min-height: calc(40 * var(--pc-scale));
  padding: calc(6 * var(--pc-scale)) calc(16 * var(--pc-scale));
  border: 1px solid #e2e2e2;
  border-radius: calc(20 * var(--pc-scale));
  background: #fff;
  color: #303030;
  font: inherit;
  line-height: 1.7;
  cursor: pointer;
}

.contact-privacy-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: calc(32 * var(--pc-scale));
}

.contact-privacy-modal__section {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--pc-scale));
}

.contact-privacy-modal__section-title {
  font-size: calc(24 * var(--pc-scale));
}

.contact-privacy-modal__list {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--pc-scale));
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-privacy-modal__item {
  display: flex;
  flex-direction: column;
  gap: calc(14 * var(--pc-scale));
}

.contact-privacy-modal__item h4 {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--pc-scale));
  margin: 0;
  font-size: calc(20 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

.contact-privacy-modal__item h4::after {
  content: "";
  display: block;
  width: 100%;
  height: calc(2 * var(--pc-scale));
  background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--pc-scale)), #e2e2e2 calc(33 * var(--pc-scale)) 100%);
}

.contact-privacy-modal__item div {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--pc-scale));
  font-size: calc(15 * var(--pc-scale));
  line-height: 2;
}

.contact-privacy-modal__item p,
.contact-privacy-modal__item ul {
  margin: 0;
}

.contact-privacy-modal__item ul {
  padding-left: 0;
  list-style: none;
}

.contact-privacy-modal__item li::before {
  content: "・";
}

.contact-privacy-modal__item a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: calc(3 * var(--pc-scale));
}

.contact-privacy-modal__actions {
  display: flex;
  justify-content: center;
  border-top: 1px solid #e2e2e2;
  background: #fff;
}

.contact-privacy-modal__confirm {
  min-width: calc(224 * var(--pc-scale));
  min-height: calc(56 * var(--pc-scale));
  padding: calc(12 * var(--pc-scale)) calc(32 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(28 * var(--pc-scale));
  background: var(--color-red);
  color: #fff;
  font: inherit;
  line-height: 2;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.contact-privacy-modal__confirm:hover,
.contact-privacy-modal__confirm:focus-visible {
  background: #fff;
  color: var(--color-red);
}

@media (max-width: 767.98px) {
  .contact-form__privacy-group {
    gap: calc(8 * var(--sp-scale));
  }

  .contact-privacy-modal {
    padding: calc(20 * var(--sp-scale));
  }

  .contact-privacy-modal__panel {
    width: 100%;
    max-height: calc(100vh - calc(40 * var(--sp-scale)));
    border-radius: calc(8 * var(--sp-scale));
    transform: translateY(calc(12 * var(--sp-scale)));
  }

  .contact-privacy-modal__header,
  .contact-privacy-modal__actions {
    padding: calc(18 * var(--sp-scale)) calc(20 * var(--sp-scale));
  }

  .contact-privacy-modal__header {
    gap: calc(16 * var(--sp-scale));
  }

  .contact-privacy-modal__label,
  .contact-privacy-modal__section-label {
    font-size: calc(12 * var(--sp-scale));
  }

  .contact-privacy-modal__title {
    font-size: calc(22 * var(--sp-scale));
  }

  .contact-privacy-modal__close {
    min-width: calc(72 * var(--sp-scale));
    min-height: calc(36 * var(--sp-scale));
    padding: calc(5 * var(--sp-scale)) calc(12 * var(--sp-scale));
    border-radius: calc(18 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .contact-privacy-modal__body {
    padding: calc(24 * var(--sp-scale)) calc(20 * var(--sp-scale));
  }

  .contact-privacy-modal__section,
  .contact-privacy-modal__list {
    gap: calc(28 * var(--sp-scale));
  }

  .contact-privacy-modal__section-title {
    font-size: calc(20 * var(--sp-scale));
  }

  .contact-privacy-modal__item {
    gap: calc(12 * var(--sp-scale));
  }

  .contact-privacy-modal__item h4 {
    gap: calc(10 * var(--sp-scale));
    font-size: calc(18 * var(--sp-scale));
  }

  .contact-privacy-modal__item h4::after {
    height: calc(2 * var(--sp-scale));
    background: linear-gradient(90deg, var(--color-red) 0 calc(28 * var(--sp-scale)), #e2e2e2 calc(28 * var(--sp-scale)) 100%);
  }

  .contact-privacy-modal__item div {
    gap: calc(10 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
  }

  .contact-privacy-modal__confirm {
    min-width: calc(200 * var(--sp-scale));
    min-height: calc(52 * var(--sp-scale));
    padding: calc(10 * var(--sp-scale)) calc(24 * var(--sp-scale));
    border-radius: calc(26 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }
}
/* Privacy policy section */
.privacy-policy-section {
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff;
}

.privacy-policy-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(64 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.privacy-policy-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(8 * var(--pc-scale));
  text-align: center;
}

.privacy-policy-heading__label {
  margin: 0;
  color: var(--color-red);
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2.4;
}

.privacy-policy-heading__title {
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

.privacy-policy-list {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--pc-scale));
  width: 100%;
  margin: 0;
  padding: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-weight: 600;
  list-style: none;
}

.privacy-policy-item {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
}

.privacy-policy-item__title {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--pc-scale));
  margin: 0;
  color: #303030;
  font-family: var(--font-serif);
  font-size: calc(24 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}


.privacy-policy-item__title::after {
  content: "";
  display: block;
  width: 100%;
  height: calc(2 * var(--pc-scale));
  background: linear-gradient(90deg, var(--color-red) 0 calc(33 * var(--pc-scale)), #e2e2e2 calc(33 * var(--pc-scale)) 100%);
}

.privacy-policy-item__body {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--pc-scale));
  width: 100%;
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.privacy-policy-item__body p,
.privacy-policy-item__body ul {
  margin: 0;
}

.privacy-policy-item__body ul {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-left: 0;
  list-style: none;
}

.privacy-policy-item__body li::before {
  content: "・";
}

.privacy-policy-item__body a {
  color: #464646;
  text-decoration: underline;
  text-underline-offset: calc(3 * var(--pc-scale));
}

@media (max-width: 767.98px) {
  .privacy-policy-section {
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .privacy-policy-section__inner {
    gap: calc(44 * var(--sp-scale));
    width: 100%;
  }

  .privacy-policy-heading {
    gap: calc(8 * var(--sp-scale));
  }

  .privacy-policy-heading__label {
    font-size: calc(13 * var(--sp-scale));
  }

  .privacy-policy-heading__title {
    font-size: calc(28 * var(--sp-scale));
  }

  .privacy-policy-list {
    gap: calc(34 * var(--sp-scale));
  }

  .privacy-policy-item {
    gap: calc(14 * var(--sp-scale));
  }

  .privacy-policy-item__title {
    gap: calc(12 * var(--sp-scale));
    font-size: calc(20 * var(--sp-scale));
  }

  .privacy-policy-item__title::after {
    height: calc(2 * var(--sp-scale));
    background: linear-gradient(90deg, var(--color-red) 0 calc(28 * var(--sp-scale)), #e2e2e2 calc(28 * var(--sp-scale)) 100%);
  }

  .privacy-policy-item__body {
    gap: calc(14 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }
}
/* Our Mission map animation */
.home-mission__range--medium-large {
  top: 315px;
  left: 349px;
  width: 360px;
  height: 356px;
  background: rgba(255, 255, 255, 0.15);
}

.home-mission__range--large {
  --mission-range-start-scale: 0.357;
  background: rgba(255, 255, 255, 0.12);
}

.home-mission__range--medium-large {
  --mission-range-start-scale: 0.458;
}

.home-mission__range--middle {
  --mission-range-start-scale: 0.626;
}

.home-mission__range--small {
  --mission-range-start-scale: 1;
  background: rgba(255, 255, 255, 0.22);
}

html.has-mission-motion .home-mission__map img,
html.has-mission-motion .home-mission__map .home-mission__pin,
html.has-mission-motion .home-mission__map .home-mission__place {
  opacity: 0;
  transition: opacity 1.3s ease-out 1s;
}

html.has-mission-motion .home-mission__map .home-mission__range {
  opacity: 0;
  transform: scale(var(--mission-range-start-scale));
  transform-origin: center;
  transition: opacity 1.3s ease-out 1s, transform 1s ease-out;
}

html.has-mission-motion .home-mission__map.is-mission-animated img {
  opacity: 0.72;
  transition-delay: 0s;
}

html.has-mission-motion .home-mission__map.is-mission-animated .home-mission__range {
  opacity: 1;
  transform: scale(1);
  transition: opacity 1.3s ease-out, transform 1s ease-out 0.15s;
}

html.has-mission-motion .home-mission__map.is-mission-animated .home-mission__pin,
html.has-mission-motion .home-mission__map.is-mission-animated .home-mission__place {
  opacity: 1;
  transition-delay: 0s;
}

@media (prefers-reduced-motion: reduce) {
  html.has-mission-motion .home-mission__map img {
    opacity: 0.72;
  }

  html.has-mission-motion .home-mission__map .home-mission__range,
  html.has-mission-motion .home-mission__map .home-mission__pin,
  html.has-mission-motion .home-mission__map .home-mission__place {
    opacity: 1;
    transform: none;
  }

  html.has-mission-motion .home-mission__map img,
  html.has-mission-motion .home-mission__map .home-mission__range,
  html.has-mission-motion .home-mission__map .home-mission__pin,
  html.has-mission-motion .home-mission__map .home-mission__place {
    transition: none;
  }
}

/* Mobile layout refinements */
@media (max-width: 767.98px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    -webkit-text-size-adjust: 100%;
  }

  .site-main,
  .lower-main,
  .home-page,
  .company-page,
  .security-page,
  .diversity-page,
  .service-page,
  .recruit-page,
  .requirements-page,
  .news-page,
  .contact-page,
  .privacy-policy-page {
    width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  :where(h1, h2, h3, h4, p, li, dt, dd, th, td) {
    overflow-wrap: anywhere;
  }

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

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    max-width: 100%;
    font-size: 16px;
  }

  .home-fv__content {
    right: calc(24 * var(--sp-scale));
    left: calc(24 * var(--sp-scale));
    width: auto;
    max-width: none;
    padding-left: 0;
  }

  .home-mission::before {
    height: calc(960 * var(--sp-scale));
    background:
      radial-gradient(circle at 75% 52%, rgba(255, 164, 80, 0.4) 0, rgba(255, 164, 80, 0.18) 25%, rgba(255, 164, 80, 0) 49%),
      linear-gradient(135deg, #c8001f 0%, #d4001d 46%, #ef3e10 100%);
  }

  .home-mission__intro {
    min-height: calc(900 * var(--sp-scale));
    padding: calc(64 * var(--sp-scale)) calc(24 * var(--sp-scale)) 0;
  }

  .home-mission__content {
    width: 100%;
  }

  .home-mission__text {
    max-width: none;
  }

  .home-mission__label {
    margin-bottom: calc(8 * var(--sp-scale));
    font-size: calc(16 * var(--sp-scale));
  }

  .home-mission__title {
    font-size: calc(34 * var(--sp-scale));
    line-height: 1.55;
  }

  .home-mission__body {
    margin-top: calc(28 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-mission__body br {
    display: none;
  }

  .home-mission__body p + p {
    margin-top: calc(10 * var(--sp-scale));
  }

  .home-mission__button {
    width: min(100%, calc(256 * var(--sp-scale)));
    min-width: 0;
    min-height: calc(54 * var(--sp-scale));
    margin-top: calc(32 * var(--sp-scale));
    border-radius: calc(27 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .home-mission__map {
    top: calc(450 * var(--sp-scale));
    right: auto;
    left: calc(50% - 419.5px);
    width: 839px;
    height: 859px;
    transform: scale(0.46);
    transform-origin: top center;
  }

  .home-mission__gallery {
    min-height: 0;
    padding: calc(38 * var(--sp-scale)) calc(20 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .home-mission__since {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    margin: 0 0 calc(24 * var(--sp-scale));
    font-size: calc(46 * var(--sp-scale));
    line-height: 1.15;
    text-align: left;
    transform: none;
    white-space: normal;
  }

  .home-mission__gallery-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(12 * var(--sp-scale));
    width: 100%;
    transform: none;
  }

  .home-mission__gallery-item,
  .home-mission__gallery-item--01,
  .home-mission__gallery-item--02,
  .home-mission__gallery-item--03,
  .home-mission__gallery-item--04 {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
  }

  .home-mission__gallery-item--02,
  .home-mission__gallery-item--04 {
    margin-top: calc(28 * var(--sp-scale));
  }

  .home-mission__gallery-item img,
  .home-mission__gallery-item--01 img,
  .home-mission__gallery-item--02 img,
  .home-mission__gallery-item--03 img,
  .home-mission__gallery-item--04 img {
    position: static;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
  }

  .home-service__button,
  .home-security__button,
  .home-recruit__button,
  .home-news__button {
    width: min(100%, calc(256 * var(--sp-scale)));
    min-width: 0;
  }

  .company-history__periods {
    gap: calc(8 * var(--sp-scale));
    min-width: 0;
  }

  .company-history__arrow {
    flex: 0 0 calc(40 * var(--sp-scale));
    width: calc(40 * var(--sp-scale));
    height: calc(40 * var(--sp-scale));
  }

  .company-history__period-list {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
  }

  .company-history__period {
    scroll-snap-align: start;
  }

  .service-managed-services {
    overflow: hidden;
  }

  .service-managed-services__figure {
    width: 100%;
    min-width: 0;
  }

  .service-managed-services__figure img {
    width: 100%;
    height: auto;
  }

  .recruit-fv {
    min-height: calc(680 * var(--sp-scale));
  }

  .recruit-fv__content {
    top: auto;
    right: calc(24 * var(--sp-scale));
    bottom: calc(88 * var(--sp-scale));
    left: calc(24 * var(--sp-scale));
    gap: calc(32 * var(--sp-scale));
    width: auto;
    max-width: none;
    padding-left: 0;
  }

  .recruit-fv__title-frame {
    width: 100%;
  }

  .recruit-fv__title-bg--long {
    width: 100%;
  }

  .recruit-fv__title {
    max-width: calc(100% - calc(20 * var(--sp-scale)));
    font-size: calc(24 * var(--sp-scale));
  }

  .recruit-fv__copy {
    width: calc(100% - calc(52 * var(--sp-scale)));
    max-width: none;
  }

  .recruit-fv__copy br {
    display: none;
  }

  .recruit-fv__scroll {
    top: auto;
    right: calc(-40 * var(--sp-scale));
    bottom: calc(30 * var(--sp-scale));
    width: calc(150 * var(--sp-scale));
    height: calc(150 * var(--sp-scale));
  }

  .recruit-people__inner,
  .recruit-people__slider,
  .recruit-people__swiper {
    min-width: 0;
    max-width: 100%;
  }

  .recruit-people__slider,
  .recruit-people__swiper {
    overflow: hidden;
  }

  .recruit-people__swiper .swiper-wrapper {
    align-items: stretch;
  }

  .requirements-layout {
    display: block;
  }

  .requirements-layout__content {
    width: 100%;
  }

  .requirements-index {
    position: static;
    height: auto;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid #e2e2e2;
  }

  .requirements-index__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(10 * var(--sp-scale)) calc(12 * var(--sp-scale));
    width: 100%;
    height: auto;
    padding: calc(24 * var(--sp-scale));
  }
  .requirements-index__link {
    justify-content: center;
    gap: calc(8 * var(--sp-scale));
    width: 100%;
    min-width: 0;
    min-height: calc(44 * var(--sp-scale));
    padding: calc(6 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
    line-height: 1.5;
    text-align: center;
  }

  .requirements-index__icon {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }
  .requirements-card__main {
    min-width: 0;
  }

  .requirements-card__toggle {
    flex: 0 0 calc(38 * var(--sp-scale));
  }

  .requirements-card__table th,
  .requirements-card__table td {
    overflow-wrap: anywhere;
  }

  .news-filter {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .news-filter::-webkit-scrollbar {
    display: none;
  }

  .contact-form input,
  .contact-form select,
  .contact-form textarea {
    width: 100%;
  }
}

@media (max-width: 359.98px) {
  .site-header__company {
    font-size: 10px;
  }

  .home-mission__title {
    font-size: 30px;
  }

  .home-mission__map {
    left: calc(50% - 419.5px);
    transform: scale(0.38);
  }

  .recruit-fv__content {
    right: calc(20 * var(--sp-scale));
    left: calc(20 * var(--sp-scale));
  }

  .requirements-index__inner {
    padding-right: calc(20 * var(--sp-scale));
    padding-left: calc(20 * var(--sp-scale));
  }
}
/* End mobile layout refinements */

/* Mobile contact layout refinement block */
/* Mobile contact layout refinement */
@media (max-width: 767.98px) {
  .contact-form__privacy-group {
    width: 100%;
  }

  .contact-form__privacy {
    display: flex;
    justify-content: center;
    width: 100%;
    min-width: 0;
  }

  .contact-form__privacy > span {
    min-width: 0;
  }
}
/* End Mobile contact layout refinement block */

/* Mobile contact agreement wrapping block */
/* Mobile contact agreement wrapping */
@media (max-width: 767.98px) {
  .contact-form__privacy > span {
    display: block;
    flex: 1 1 0;
    max-width: 100%;
    text-align: left;
  }
}
/* End Mobile contact agreement wrapping block */

/* Mobile contact checkbox sizing block */
/* Mobile contact checkbox sizing */
@media (max-width: 767.98px) {
  .contact-form__privacy input[type="checkbox"] {
    flex: 0 0 calc(26 * var(--sp-scale));
    width: calc(26 * var(--sp-scale));
    max-width: none;
  }
}
/* End Mobile contact checkbox sizing block */

/* Figma final layouts: contact and recruit */
.contact-tel-card {
  width: min(100%, calc(560 * var(--pc-scale)));
  padding: calc(32 * var(--pc-scale)) calc(64 * var(--pc-scale)) calc(24 * var(--pc-scale));
}

.contact-form__input-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(4 * var(--pc-scale));
}

.contact-form__note {
  margin: 0;
  color: #686868;
  font-size: calc(14 * var(--pc-scale));
  line-height: 1.7;
}

.recruit-page {
  overflow-x: clip;
  overflow-y: visible;
}

.recruit-fv,
.recruit-message,
.recruit-data,
.recruit-people,
.recruit-culture {
  scroll-margin-top: var(--header-height);
}

.recruit-fv__copy-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(40 * var(--pc-scale));
  padding-left: calc(40 * var(--pc-scale));
}

.recruit-fv__copy-group .recruit-fv__copy {
  padding-left: 0;
}

.recruit-fv__requirements,
.recruit-message__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--pc-scale));
  min-height: calc(80 * var(--pc-scale));
  padding: calc(16 * var(--pc-scale));
  border: 1px solid var(--color-red);
  border-radius: calc(48 * var(--pc-scale));
  background: linear-gradient(81deg, #c80815 21.765%, #d83507 100.2%);
  color: #fff;
  font-family: var(--font-serif);
  font-size: calc(20 * var(--pc-scale));
  font-weight: 600;
  line-height: 2.4;
  text-align: center;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.recruit-fv__requirements {
  width: calc(300 * var(--pc-scale));
  pointer-events: auto;
}

.recruit-fv__requirements img,
.recruit-message__button img,
.recruit-entry__button img {
  display: block;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}

.recruit-fv__requirements:hover,
.recruit-fv__requirements:focus-visible,
.recruit-message__button:hover,
.recruit-message__button:focus-visible {
  opacity: 0.88;
  transform: translateY(calc(-2 * var(--pc-scale)));
}

.recruit-layout {
  display: grid;
  grid-template-columns: calc(266 * var(--pc-scale)) minmax(0, 1fr);
  align-items: start;
  background: #fff;
}

.recruit-layout__content {
  min-width: 0;
}

.recruit-index {
  position: sticky;
  z-index: 4;
  top: var(--header-height);
  align-self: start;
  height: calc(100vh - var(--header-height));
  padding: calc(64 * var(--pc-scale)) calc(40 * var(--pc-scale));
  border-right: 1px solid #e2e2e2;
  background: #fff;
}

.recruit-index__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(24 * var(--pc-scale));
  width: calc(186 * var(--pc-scale));
}

.recruit-index__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(12 * var(--pc-scale));
  width: calc(186 * var(--pc-scale));
  min-width: calc(140 * var(--pc-scale));
  min-height: calc(32 * var(--pc-scale));
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.recruit-index__icon {
  display: block;
  flex: 0 0 calc(16 * var(--pc-scale));
  width: calc(16 * var(--pc-scale));
  height: calc(16 * var(--pc-scale));
}

.recruit-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 0;
  padding: calc(136 * var(--pc-scale)) calc(40 * var(--pc-scale)) calc(104 * var(--pc-scale));
}

.recruit-message__curve {
  top: calc(72 * var(--pc-scale));
  width: 100%;
  height: calc(278 * var(--pc-scale));
}

.recruit-message__curve img {
  display: block;
  width: 100%;
  height: 100%;
}

.recruit-message__inner {
  grid-template-columns: calc(422 * var(--pc-scale)) minmax(0, calc(568 * var(--pc-scale)));
  width: min(100%, calc(1094 * var(--pc-scale)));
}

.recruit-message__media {
  height: calc(513 * var(--pc-scale));
}

.recruit-message__media img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.recruit-message__label {
  margin-bottom: calc(8 * var(--pc-scale));
  line-height: 2;
}

.recruit-message__title {
  line-height: 1.5;
}

.recruit-message__text {
  margin-top: calc(40 * var(--pc-scale));
  font-size: calc(18 * var(--pc-scale));
  line-height: 2;
}

.recruit-message__text p + p {
  margin-top: calc(24 * var(--pc-scale));
}

.recruit-message__button {
  width: min(100%, calc(900 * var(--pc-scale)));
  margin-top: calc(80 * var(--pc-scale));
}

.recruit-data {
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fbf4f4;
}

.recruit-data__inner,
.recruit-people__inner,
.recruit-culture__inner {
  width: min(100%, calc(1094 * var(--pc-scale)));
}

.recruit-data__image {
  margin-top: calc(80 * var(--pc-scale));
}

.recruit-people {
  min-height: calc(833 * var(--pc-scale));
  background-color: #c90017;
  background-image: url("assets/img/requirements-entry-bg.webp");
  background-position: center;
  background-size: cover;
}

.recruit-culture {
  padding: calc(104 * var(--pc-scale)) calc(40 * var(--pc-scale)) calc(80 * var(--pc-scale));
}

.recruit-culture-feature {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recruit-culture-feature__media {
  width: 100%;
  height: auto;
  aspect-ratio: 578 / 356;
}

.recruit-culture-feature__title {
  font-size: calc(32 * var(--pc-scale));
}

.recruit-culture-feature__text {
  color: #464646;
}

.recruit-entry {
  padding: calc(40 * var(--pc-scale));
}

.recruit-entry__panel {
  width: min(100%, calc(1340 * var(--pc-scale)));
  min-height: calc(424 * var(--pc-scale));
  padding: calc(80 * var(--pc-scale)) calc(104 * var(--pc-scale)) calc(104 * var(--pc-scale));
  border-radius: calc(24 * var(--pc-scale));
  background-color: #c90017;
  background-image: url("assets/img/requirements-entry-bg.webp");
  background-position: center;
  background-size: cover;
}

.recruit-entry__content {
  display: flex;
  flex-direction: column;
  gap: calc(32 * var(--pc-scale));
}

.recruit-entry__label {
  margin: 0 0 calc(8 * var(--pc-scale));
  font-size: calc(16 * var(--pc-scale));
  line-height: 2;
}

.recruit-entry__title {
  font-size: calc(48 * var(--pc-scale));
  line-height: 1.5;
}

.recruit-entry__text {
  margin: 0;
  font-size: calc(18 * var(--pc-scale));
  line-height: 2;
}

.recruit-entry__button {
  gap: calc(8 * var(--pc-scale));
  font-size: calc(18 * var(--pc-scale));
  line-height: 1.5;
}

@media (max-width: 767.98px) {
  .contact-tel-card {
    width: 100%;
  }

  .contact-form__input-group,
  .contact-form__input-group .contact-form__input {
    width: 100%;
  }

  .contact-form__input-group {
    gap: calc(4 * var(--sp-scale));
  }

  .contact-form__note {
    font-size: calc(12 * var(--sp-scale));
  }

  .recruit-fv__copy-group {
    gap: calc(24 * var(--sp-scale));
    width: calc(100% - calc(52 * var(--sp-scale)));
    padding-left: 0;
  }

  .recruit-fv__copy-group .recruit-fv__copy {
    width: 100%;
  }

  .recruit-fv__requirements,
  .recruit-message__button {
    gap: calc(8 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(20 * var(--sp-scale));
    border-radius: calc(30 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .recruit-fv__requirements {
    width: calc(220 * var(--sp-scale));
  }

  .recruit-fv__requirements img,
  .recruit-message__button img,
  .recruit-entry__button img {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }

  .recruit-layout {
    display: block;
  }

  .recruit-layout__content {
    width: 100%;
  }

  .recruit-index {
    position: static;
    height: auto;
    padding: 0;
    border-right: 0;
    border-bottom: 1px solid #e2e2e2;
  }

  .recruit-index__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(10 * var(--sp-scale)) calc(12 * var(--sp-scale));
    width: 100%;
    padding: calc(24 * var(--sp-scale));
  }

  .recruit-index__link {
    justify-content: center;
    gap: calc(8 * var(--sp-scale));
    width: 100%;
    min-width: 0;
    min-height: calc(44 * var(--sp-scale));
    padding: calc(6 * var(--sp-scale));
    font-size: calc(13 * var(--sp-scale));
    line-height: 1.5;
    text-align: center;
  }

  .recruit-index__icon {
    flex-basis: calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
  }

  .recruit-message {
    padding: calc(72 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(64 * var(--sp-scale));
  }

  .recruit-message__curve {
    top: calc(92 * var(--sp-scale));
    left: 0;
    width: 100%;
    height: calc(132 * var(--sp-scale));
  }

  .recruit-message__inner {
    width: 100%;
  }

  .recruit-message__text {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.95;
  }

  .recruit-message__button {
    width: 100%;
    margin-top: calc(48 * var(--sp-scale));
  }

  .recruit-data__inner,
  .recruit-people__inner,
  .recruit-culture__inner {
    width: 100%;
  }

  .recruit-data__image {
    margin-top: calc(44 * var(--sp-scale));
  }

  .recruit-people {
    background-position: center;
  }

  .recruit-culture-feature,
  .recruit-culture-feature--reverse {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--sp-scale));
  }

  .recruit-culture-feature__title {
    font-size: calc(24 * var(--sp-scale));
  }

  .recruit-entry {
    padding: calc(28 * var(--sp-scale)) calc(16 * var(--sp-scale));
  }

  .recruit-entry__panel {
    min-height: 0;
    padding: calc(48 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(44 * var(--sp-scale));
    border-radius: calc(18 * var(--sp-scale));
  }

  .recruit-entry__content {
    gap: calc(24 * var(--sp-scale));
  }

  .recruit-entry__label {
    margin-bottom: calc(8 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .recruit-entry__title {
    font-size: calc(28 * var(--sp-scale));
  }

  .recruit-entry__text {
    font-size: calc(14 * var(--sp-scale));
  }

  .recruit-entry__button {
    gap: calc(8 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }
}
@media (max-width: 767.98px) {
  .contact-form__row,
  .contact-form__control,
  .contact-form__radio-list {
    width: 100%;
  }

  .contact-form__control {
    flex: none;
  }

  .contact-form__radio-list {
    align-items: stretch;
  }

  .contact-form__radio {
    width: 100%;
    align-items: flex-start;
  }

  .contact-form__radio input {
    flex: 0 0 calc(22 * var(--sp-scale));
  }

  .contact-form__radio span {
    flex: 1 1 auto;
    min-width: 0;
  }
}
/* End Figma final layouts */
/* Final Figma updates: 2026-07-24 */
.site-header__nav-item {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
}

.site-header__submenu {
  position: absolute;
  z-index: 110;
  top: 100%;
  left: 50%;
  padding: calc(16 * var(--pc-scale)) calc(20 * var(--pc-scale));
  background: #fff;
  box-shadow: 0 calc(8 * var(--pc-scale)) calc(24 * var(--pc-scale)) rgba(0, 0, 0, 0.18);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, calc(8 * var(--pc-scale)));
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.site-header__nav-item:hover .site-header__submenu,
.site-header__nav-item:focus-within .site-header__submenu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

.site-header__submenu a {
  display: flex;
  justify-content: flex-start;
  width: 100%;
  min-height: calc(47 * var(--pc-scale));
  padding: calc(8 * var(--pc-scale)) 0;
  color: #303030;
  font-size: calc(16 * var(--pc-scale));
  letter-spacing: 0;
}

.site-header__submenu a::before {
  content: "−";
  flex: 0 0 auto;
  margin-right: calc(8 * var(--pc-scale));
}

.site-header__submenu a:hover,
.site-header__submenu a:focus-visible {
  color: var(--color-red);
}

.home-mission {
  height: calc(1020 * var(--pc-scale));
  min-height: calc(1020 * var(--pc-scale));
}

.home-mission::before {
  height: 100%;
}

.home-mission__intro {
  height: 100%;
  min-height: calc(1020 * var(--pc-scale));
}

.home-mission__text {
  max-width: calc(760 * var(--pc-scale));
}

.home-mission__label {
  margin-bottom: calc(8 * var(--pc-scale));
}

.home-mission__since {
  position: static;
  width: auto;
  margin: 0;
  color: #f6f6f6;
  font-size: calc(151 * var(--pc-scale));
  line-height: 1.2;
  opacity: 0.3;
  text-align: left;
  transform: none;
}

.home-mission__title {
  white-space: nowrap;
}

.home-mission__body {
  max-width: calc(760 * var(--pc-scale));
}

.home-mission__gallery {
  display: none;
}

.home-security {
  min-height: calc(640 * var(--pc-scale));
}

.home-security__inner {
  min-height: calc(480 * var(--pc-scale));
}

@media (min-width: 768px) {
  .home-security__content {
    flex-basis: calc(578 * var(--pc-scale));
  }
}

@media (max-width: 767.98px) {
  .home-mission {
    height: auto;
    min-height: 0;
  }

  .home-mission__intro {
    height: auto;
    min-height: calc(980 * var(--sp-scale));
    padding: calc(72 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(120 * var(--sp-scale));
  }

  .home-mission__text {
    max-width: 100%;
  }

  .home-mission__label {
    font-size: calc(16 * var(--sp-scale));
  }

  .home-mission__since {
    font-size: calc(52 * var(--sp-scale));
    white-space: nowrap;
  }

  .home-mission__title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.8;
    white-space: normal;
  }

  .home-mission__body {
    max-width: 100%;
    margin-top: calc(24 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 2;
  }

  .home-mission__body br,
  .home-service__body br,
  .home-security__body br,
  .home-recruit__body br {
    display: none;
  }

  .home-mission__button {
    min-width: calc(220 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    margin-top: calc(32 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(20 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
  }

  .home-mission__map {
    top: calc(360 * var(--sp-scale));
    right: calc(-340 * var(--sp-scale));
    opacity: 0.55;
    transform: scale(0.58);
    transform-origin: top right;
  }

  .home-security {
    min-height: 0;
  }

  .home-security__inner {
    min-height: 0;
  }
}

/* Final TOP section height adjustments */
.home-service__inner {
  padding-bottom: calc(16 * var(--pc-scale));
}

.home-news__list {
  min-height: calc(320 * var(--pc-scale));
}

@media (max-width: 767.98px) {
  .home-service__inner {
    padding-bottom: 0;
  }

  .home-news__list {
    min-height: 0;
  }
}
/* Final Contact CTA dimensions: 2026-07-24 */
@media (min-width: 1024.01px) {
  .home-cta__card {
    height: 444px;
    min-height: 444px;
  }

  .home-cta__content {
    padding-top: 0;
    padding-bottom: 0;
  }
}
/* Final Product external-link icon: 2026-07-24 */
.home-cta__button--external::after {
  display: none;
}

.home-cta__button-icon {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
  transition: filter 0.2s ease;
}

.home-cta__button:hover .home-cta__button-icon {
  filter: brightness(0) invert(1);
}
/* Figma mobile sections: 2026-07-25 */
.recruit-fv__title-bg--middle,
.recruit-fv__title-bg--last,
.recruit-fv__title-break--sp,
.home-mission__title-break--sp {
  display: none;
}

@media (max-width: 767.98px) {
  /* Recruit FV */
  .recruit-fv {
    min-height: calc(917 * var(--sp-scale));
    background: #fff;
  }

  .recruit-fv__bg {
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    height: calc(591 * var(--sp-scale));
    clip-path: inset(0);
  }

  .recruit-fv__bg img,
  .recruit-fv__bg video {
    object-position: center center;
  }

  .recruit-fv__content {
    top: calc(280 * var(--sp-scale));
    right: calc(24 * var(--sp-scale));
    bottom: auto;
    left: calc(24 * var(--sp-scale));
    gap: calc(24 * var(--sp-scale));
    width: auto;
    padding-left: 0;
  }

  .recruit-fv__title-frame {
    width: 100%;
    height: calc(213 * var(--sp-scale));
  }

  .recruit-fv__title-bg {
    height: calc(61 * var(--sp-scale));
  }

  .recruit-fv__title-bg--short {
    top: calc(7 * var(--sp-scale));
    width: calc(127 * var(--sp-scale));
  }

  .recruit-fv__title-bg--long {
    display: none;
  }

  .recruit-fv__title-bg--middle,
  .recruit-fv__title-bg--last {
    display: block;
    width: calc(266 * var(--sp-scale));
  }

  .recruit-fv__title-bg--middle {
    top: calc(77 * var(--sp-scale));
  }

  .recruit-fv__title-bg--last {
    top: calc(148 * var(--sp-scale));
  }

  .recruit-fv__title-break--sp {
    display: block;
  }

  .recruit-fv__title {
    top: calc(-3 * var(--sp-scale));
    left: calc(14 * var(--sp-scale));
    max-width: calc(300 * var(--sp-scale));
    font-size: calc(36 * var(--sp-scale));
    line-height: 2;
    white-space: nowrap;
  }

  .recruit-fv__copy-group {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .recruit-fv__copy-group .recruit-fv__copy {
    width: 100%;
    color: #fff;
    font-size: calc(14 * var(--sp-scale));
    line-height: 2;
  }

  .recruit-fv__copy br {
    display: block;
  }

  .recruit-fv__requirements {
    width: calc(300 * var(--sp-scale));
    min-height: calc(64 * var(--sp-scale));
    border-radius: calc(48 * var(--sp-scale));
    font-size: calc(16 * var(--sp-scale));
    line-height: 2.4;
  }

  .recruit-fv__scroll {
    display: none;
  }

  /* Recruit numbers */
  .recruit-data {
    padding: calc(80 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .recruit-data__image {
    width: 100%;
    margin-top: calc(32 * var(--sp-scale));
  }

  .recruit-data__image picture,
  .recruit-data__image img {
    display: block;
    width: 100%;
    height: auto;
  }

  .recruit-data__heading .recruit-section-heading__label {
    font-size: calc(10 * var(--sp-scale));
    line-height: 2;
  }

  .recruit-data__heading .recruit-section-heading__title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.5;
  }

  /* TOP Our Mission */
  .home-mission {
    height: calc(1019 * var(--sp-scale));
    min-height: calc(1019 * var(--sp-scale));
  }

  .home-mission::before {
    height: calc(1096 * var(--sp-scale));
    background:
      radial-gradient(circle at 72% 83%, rgba(255, 126, 62, 0.56) 0, rgba(255, 126, 62, 0.24) 23%, rgba(255, 126, 62, 0) 48%),
      linear-gradient(180deg, #c90019 0%, #ce001c 57%, #f0330d 100%);
  }

  .home-mission__intro {
    height: calc(1019 * var(--sp-scale));
    min-height: calc(1019 * var(--sp-scale));
    padding: calc(104 * var(--sp-scale)) calc(24 * var(--sp-scale)) 0;
  }

  .home-mission__label {
    margin-bottom: calc(16 * var(--sp-scale));
    font-size: calc(16 * var(--sp-scale));
    line-height: 1.5;
  }

  .home-mission__since {
    font-size: calc(64 * var(--sp-scale));
    line-height: 1.2;
  }

  .home-mission__title-break--sp {
    display: block;
  }

  .home-mission__title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.5;
    white-space: normal;
  }

  .home-mission__body {
    margin-top: calc(24 * var(--sp-scale));
    font-size: calc(14 * var(--sp-scale));
    line-height: 2.4;
  }

  .home-mission__body br {
    display: block;
  }

  .home-mission__body p + p {
    margin-top: 0;
  }

  .home-mission__button {
    width: calc(256 * var(--sp-scale));
    min-width: calc(256 * var(--sp-scale));
    min-height: calc(56 * var(--sp-scale));
    margin-top: calc(32 * var(--sp-scale));
    padding: calc(12 * var(--sp-scale)) calc(16 * var(--sp-scale));
    border-radius: calc(32 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-mission__map {
    top: calc(505 * var(--sp-scale));
    right: auto;
    left: calc(-20 * var(--sp-scale));
    width: 839px;
    height: 859px;
    opacity: 1;
    transform: scale(0.46);
    transform-origin: top left;
  }

  /* TOP Careers */
  .home-recruit {
    align-items: flex-start;
    min-height: calc(857 * var(--sp-scale));
    height: calc(857 * var(--sp-scale));
    padding: calc(80 * var(--sp-scale)) calc(24 * var(--sp-scale));
  }

  .home-recruit__panel {
    top: calc(80 * var(--sp-scale));
    left: 0;
    width: calc(371 * var(--sp-scale));
    height: calc(697 * var(--sp-scale));
  }

  .home-recruit__inner {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: calc(8 * var(--sp-scale));
    width: 100%;
    min-height: calc(697 * var(--sp-scale));
    padding: calc(40 * var(--sp-scale)) 0 calc(16 * var(--sp-scale));
  }

  .home-recruit__content {
    flex: none;
    width: 100%;
  }

  .home-recruit__label {
    margin-bottom: calc(8 * var(--sp-scale));
    font-size: calc(58 * var(--sp-scale));
    line-height: 1.5;
  }

  .home-recruit__group {
    gap: calc(24 * var(--sp-scale));
  }

  .home-recruit__heading-row {
    gap: calc(16 * var(--sp-scale));
    padding-left: calc(8 * var(--sp-scale));
  }

  .home-recruit__line {
    flex-basis: calc(40 * var(--sp-scale));
    width: calc(40 * var(--sp-scale));
  }

  .home-recruit__title {
    max-width: calc(260 * var(--sp-scale));
    font-size: calc(24 * var(--sp-scale));
    line-height: 1.6;
    white-space: normal;
  }

  .home-recruit__body {
    max-width: calc(310 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
    line-height: 2;
  }

  .home-recruit__body br {
    display: block;
  }

  .home-recruit__action {
    justify-content: center;
    width: 100%;
    max-width: calc(310 * var(--sp-scale));
    padding: calc(40 * var(--sp-scale)) 0 calc(16 * var(--sp-scale));
  }

  .home-recruit__button {
    width: calc(208 * var(--sp-scale));
    min-width: calc(208 * var(--sp-scale));
    height: calc(208 * var(--sp-scale));
    padding: calc(24 * var(--sp-scale));
    font-size: calc(15 * var(--sp-scale));
  }

  /* Figma mobile menu */
  .site-header__inner {
    position: relative;
    z-index: 91;
  }

  .site-header.is-drawer-open,
  .site-header.is-drawer-open .site-header__inner {
    background: transparent;
    box-shadow: none;
  }

  .site-header.is-drawer-open .site-header__logo {
    filter: brightness(0) invert(1);
  }

  .site-header.is-drawer-open .site-header__company {
    color: #fff;
  }

  .site-header__toggle[aria-expanded="true"] {
    background: transparent;
  }

  .site-header__toggle[aria-expanded="true"] span {
    background: #fff;
  }

  .drawer-menu {
    padding-top: var(--header-height);
    background-color: #c90017;
    background-image: url("assets/img/recruit-panel-red.webp");
    background-position: center;
    background-size: cover;
  }

  .drawer-menu__inner {
    width: 100%;
    padding: calc(40 * var(--sp-scale)) calc(24 * var(--sp-scale)) calc(48 * var(--sp-scale));
  }

  .drawer-menu__nav {
    gap: calc(24 * var(--sp-scale));
  }

  .drawer-menu__nav a {
    min-height: 0;
    border: 0;
    font-size: calc(15 * var(--sp-scale));
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.04em;
  }

  .drawer-menu__link {
    padding-bottom: calc(24 * var(--sp-scale));
    border-bottom: 1px solid rgba(255, 255, 255, 0.5) !important;
  }

  .drawer-menu__service {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--sp-scale));
    padding-bottom: calc(24 * var(--sp-scale));
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  }

  .drawer-menu__service-heading {
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 0;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
    font-family: var(--font-serif);
    font-size: calc(15 * var(--sp-scale));
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.04em;
    text-align: left;
    cursor: pointer;
  }

  .drawer-menu__chevron {
    flex: 0 0 calc(16 * var(--sp-scale));
    width: calc(16 * var(--sp-scale));
    height: calc(16 * var(--sp-scale));
    background: currentColor;
    clip-path: polygon(24% 38%, 50% 64%, 76% 38%, 82% 44%, 50% 76%, 18% 44%);
    transition: transform 0.2s ease;
  }

  .drawer-menu__service-heading[aria-expanded="true"] .drawer-menu__chevron {
    transform: rotate(180deg);
  }

  .drawer-menu__service-links {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--sp-scale));
    padding: 0 calc(16 * var(--sp-scale));
  }

  .drawer-menu__service-links[hidden] {
    display: none;
  }

  .drawer-menu__service-links a {
    gap: calc(8 * var(--sp-scale));
  }

  .drawer-menu__service-links a::before {
    content: "";
    flex: 0 0 calc(8 * var(--sp-scale));
    width: calc(8 * var(--sp-scale));
    height: 1px;
    background: currentColor;
  }

  .drawer-menu__cta {
    display: flex;
    flex-direction: column;
    gap: calc(16 * var(--sp-scale));
    margin-top: calc(24 * var(--sp-scale));
  }

  .drawer-menu__recruit,
  .drawer-menu__contact {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: calc(60 * var(--sp-scale));
    margin: 0;
    border-radius: calc(32 * var(--sp-scale));
    font-family: var(--font-serif);
    font-size: calc(15 * var(--sp-scale));
    font-weight: 600;
    letter-spacing: 0.04em;
  }

  .drawer-menu__recruit {
    color: var(--color-red);
    background: #fff;
  }

  .drawer-menu__contact {
    color: #fff;
    background: var(--color-red);
  }

  .drawer-menu__utility {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: calc(24 * var(--sp-scale));
    padding-top: calc(32 * var(--sp-scale));
  }

  .drawer-menu__utility a {
    color: rgba(255, 255, 255, 0.7);
    font-family: var(--font-serif);
    font-size: calc(13 * var(--sp-scale));
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
}
/* Recruit FV background alignment: 2026-07-25 */
.recruit-fv__bg img,
.recruit-fv__bg video {
  object-position: top;
}
/* Mobile Managed Services overview: 2026-07-25 */
@media (max-width: 767.98px) {
  .service-managed-services {
    overflow: hidden;
    background: #eeeeee;
  }

  .service-managed-services__inner {
    width: 100%;
  }

  .service-managed-services__figure {
    width: calc(357 * var(--sp-scale));
    max-width: 100%;
    margin: 0 auto;
  }

  .service-managed-services__figure picture,
  .service-managed-services__figure img {
    display: block;
    width: 100%;
    height: auto;
  }
}
/* Managed Services split figures: 2026-07-25 */
.service-managed-services {
  padding: calc(80 * var(--pc-scale)) calc(40 * var(--pc-scale));
  background: #fff url("./assets/img/service-managed-services-bg.webp") center top / cover no-repeat;
}

.service-managed-services__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--pc-scale));
  width: min(100%, calc(1180 * var(--pc-scale)));
  margin: 0 auto;
}

.service-managed-services__environment,
.service-managed-services__basic-figure {
  margin: 0;
}

.service-managed-services__environment {
  width: min(100%, calc(1114 * var(--pc-scale)));
}

.service-managed-services__environment img,
.service-managed-services__basic-figure picture,
.service-managed-services__basic-figure img {
  display: block;
  width: 100%;
  height: auto;
}

.service-managed-services__basic {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(32 * var(--pc-scale));
  width: 100%;
}

.service-managed-services__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(13 * var(--pc-scale));
  margin: 0;
  color: #464646;
  font-family: var(--font-serif);
  font-size: calc(28 * var(--pc-scale));
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.service-managed-services__title strong {
  font: inherit;
}

.service-managed-services__title > span {
  display: block;
  width: calc(27 * var(--pc-scale));
  height: 1px;
  background: currentColor;
}

.service-managed-services__basic-figure {
  width: min(100%, calc(906 * var(--pc-scale)));
}

@media (max-width: 767.98px) {
  .service-managed-services {
    padding: calc(48 * var(--sp-scale)) calc(16.5 * var(--sp-scale)) calc(64 * var(--sp-scale));
    background: #eeeeee;
  }

  .service-managed-services__inner {
    gap: calc(48 * var(--sp-scale));
    width: 100%;
  }

  .service-managed-services__environment {
    display: block;
    width: 100%;
  }

  .service-managed-services__basic {
    gap: calc(32 * var(--sp-scale));
    width: 100%;
  }

  .service-managed-services__title {
    gap: calc(13 * var(--sp-scale));
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.3;
  }

  .service-managed-services__title > span {
    width: calc(27 * var(--sp-scale));
  }

  .service-managed-services__basic-figure {
    width: 100%;
  }
}

/* Recruit mobile FV and adjacent slide preview: 2026-07-25 */
@media (max-width: 767.98px) {
  .recruit-fv__bg {
    height: 100%;
  }

  .recruit-fv__bg img,
  .recruit-fv__bg video {
    object-position: 20% top;
  }

  .recruit-people-card__photo img {
    object-position: center top !important;
  }

  .recruit-people__slider {
    width: calc(100% + calc(48 * var(--sp-scale)));
    max-width: none;
    margin-right: calc(-24 * var(--sp-scale));
    margin-left: calc(-24 * var(--sp-scale));
    overflow: visible;
  }

  .recruit-people__swiper {
    max-width: none;
    overflow: visible;
  }

  .recruit-people__slide,
  .recruit-people__swiper.swiper-initialized .recruit-people__slide:first-child:not(.swiper-slide-active) {
    width: calc(320 * var(--sp-scale));
  }
}


/* Managed Services section heading: 2026-07-25 */
.service-managed-services__heading {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--pc-scale));
  align-items: center;
  margin: 0;
  font-family: var(--font-serif);
  text-align: center;
}

.service-managed-services__label,
.service-managed-services__heading-title {
  margin: 0;
  letter-spacing: 0;
}

.service-managed-services__label {
  color: #e31f20;
  font-size: calc(16 * var(--pc-scale));
  font-weight: 600;
  line-height: 2;
}

.service-managed-services__heading-title {
  color: #303030;
  font-size: calc(36 * var(--pc-scale));
  font-weight: 600;
  line-height: 1.5;
}

@media (max-width: 767.98px) {
  .service-managed-services {
    background-image: url("./assets/img/service-managed-services-bg.webp");
    background-position: center top;
    background-size: auto 100%;
    background-repeat: no-repeat;
  }

  .service-managed-services__heading {
    gap: calc(6 * var(--sp-scale));
  }

  .service-managed-services__label {
    font-size: calc(14 * var(--sp-scale));
    line-height: 1.8;
  }

  .service-managed-services__heading-title {
    font-size: calc(28 * var(--sp-scale));
    line-height: 1.5;
  }
}

/* Backlog 20260731 adjustments */
.company-message__body,
.company-message__signature {
  width: min(100%, calc(850 * var(--pc-scale)));
  margin-right: auto;
  margin-left: auto;
}

.company-profile__inner {
  flex-direction: column;
  gap: calc(40 * var(--pc-scale));
}

.company-profile__heading,
.company-profile__card {
  width: min(100%, calc(884 * var(--pc-scale)));
  margin-right: auto;
  margin-left: auto;
}

.company-profile__heading {
  flex: none;
}

.company-profile__row--parent dd {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.sub-fv--diversity,
.sub-fv--requirements {
  background: #880808;
}

.sub-fv--diversity .sub-fv__bg img,
.sub-fv--requirements .sub-fv__bg img {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: none;
}

@media (max-width: 767.98px) {
  .home-security__inner,
  .home-security__group {
    gap: calc(20 * var(--sp-scale));
  }

  .service-list-card__media--contain img {
    object-fit: cover;
  }

  .requirements-entry__content,
  .requirements-entry__heading {
    align-items: flex-start;
    text-align: left;
  }

  .security-policy__index,
  .requirements-index {
    position: sticky;
    top: var(--header-height);
    z-index: 20;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
  }

  .security-policy__index {
    padding: calc(12 * var(--sp-scale)) calc(16 * var(--sp-scale));
  }

  .security-policy__index-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: calc(20 * var(--sp-scale));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .security-policy__index-nav::-webkit-scrollbar,
  .requirements-index__inner::-webkit-scrollbar {
    display: none;
  }

  .security-policy__index-link {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .requirements-index__inner {
    display: flex;
    flex-direction: row;
    gap: calc(12 * var(--sp-scale));
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding: calc(12 * var(--sp-scale)) calc(16 * var(--sp-scale));
    scrollbar-width: none;
  }

  .requirements-index__link {
    flex: 0 0 auto;
    flex-wrap: wrap;
    width: auto;
  }

  .sub-fv--diversity .sub-fv__bg img,
  .sub-fv--requirements .sub-fv__bg img {
    top: 0;
    left: 50%;
    width: calc(760 * var(--sp-scale));
    height: calc(330 * var(--sp-scale));
    transform: translateX(-50%);
  }
}

@media (min-width: 768px) and (max-width: 950px) and (orientation: landscape) and (max-height: 600px) {
  .home-recruit {
    min-height: 560px;
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .home-recruit__panel {
    top: 56px;
    height: 448px;
  }

  .home-recruit__inner {
    min-height: 400px;
  }

  .home-recruit__button {
    width: 176px;
    height: 176px;
  }
}
