:root {
  --design-pc-width: 1728;
  --design-sp-width: 440;
  --pc-vw-px: calc(100vw / var(--design-pc-width));
  --sp-vw-px: calc(100vw / var(--design-sp-width));
  /*
   * ブレークポイントは 900/899px の1点のみ。
   * 900px以上（PC）: 1728px 基準の等比縮小。ただし下限幅(--fluid-floor-width)以下では
   *   スケールを固定し、狭い画面でも文字が小さくなりすぎない（読めるサイズを維持）。
   * 899px以下（SP）: 440px 基準の等比拡縮（下記メディアクエリで切替。下限なし＝従来どおり）。
   * 中間幅（タブレット）専用デザインは持たない。
   */
  --fluid-floor-width: 1440; /* この幅(px)以下でPCのスケールを固定。大きくしたいなら増やす */
  --fluid-px: max(
    var(--pc-vw-px),
    calc(var(--fluid-floor-width) * 1px / var(--design-pc-width))
  );
  --blue: #3498db;
  --aqua: #00e5c3;
  --black: #12110c;
  --bg: #f4f6f9;
  --text: #12110c;
  --muted: #656565;
  --line: #cfd6df;
  --white: #ffffff;
  --t-slide-bg: url("../img/slide_bg.webp") center / cover no-repeat;
  --container: calc(1200 * var(--fluid-px));
  --wide: calc(1632 * var(--fluid-px));
}

@media (max-width: 899px) {
  :root {
    --fluid-px: var(--sp-vw-px);
  }
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-y: scroll;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  /* iOS Safari はルート(html)のoverflow-xで絶対配置のはみ出しを抑えられないため、
     body側でも横はみ出しをクリップ（clipなのでsticky/fixedやheaderは壊さない） */
  overflow-x: clip;
}

body.menu-open {
  overflow: hidden;
}

@media (min-width: 900px) and (prefers-reduced-motion: no-preference) {
  .t-slide__inner,
  .t-slide__track,
  .home-business__viewport,
  .home-business-item,
  .home-zoom__sticky,
  .home-zoom__mask {
    backface-visibility: hidden;
    transform: translateZ(0);
  }
}

@media (max-width: 899px) and (prefers-reduced-motion: no-preference) {
  .t-slide__track,
  .t-slide__item,
  .home-zoom__mask {
    backface-visibility: hidden;
  }
}

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

.container {
  width: min(var(--container), calc(100% - calc(48 * var(--fluid-px))));
  margin-inline: auto;
}

.eyebrow {
  margin: 0;
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
}

.site-header {
  position: absolute;
  z-index: 30;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: calc(140 * var(--fluid-px));
  padding: calc(32 * var(--fluid-px)) calc(48 * var(--fluid-px));
  color: var(--white);
}

.brand {
  display: flex;
  align-items: center;
  gap: calc(6 * var(--fluid-px));
  height: calc(48 * var(--fluid-px));
}

.brand__mark {
  width: calc(154 * var(--fluid-px));
  height: calc(48 * var(--fluid-px));
}

.brand__recruit {
  width: calc(48 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
}

.header-actions {
  display: flex;
  align-items: center;
  gap: calc(40 * var(--fluid-px));
}

.pill-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(260 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
  border: 0;
  border-radius: calc(70 * var(--fluid-px));
  background: linear-gradient(101deg, var(--blue) 0%, var(--aqua) 100%);
  color: var(--white);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  transition:
    transform 180ms ease,
    filter 180ms ease;
}

.pill-button:focus-visible,
.menu-button:focus-visible,
.footer-card:focus-visible,
.circle-link:focus-visible,
.tab:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(0, 229, 195, 0.7);
  outline-offset: calc(4 * var(--fluid-px));
}

.pill-button span,
.footer-policy span {
  position: relative;
  width: calc(16 * var(--fluid-px));
  height: calc(16 * var(--fluid-px));
  margin-left: calc(42 * var(--fluid-px));
}

.pill-button span::before,
.pill-button span::after,
.circle-link::before,
.circle-link::after,
.footer-policy span::before,
.footer-policy span::after {
  position: absolute;
  content: "";
}

.pill-button span::before,
.circle-link::before,
.footer-policy span::before {
  top: calc(4 * var(--fluid-px));
  right: calc(3 * var(--fluid-px));
  width: calc(8 * var(--fluid-px));
  height: calc(8 * var(--fluid-px));
  border-top: calc(2 * var(--fluid-px)) solid currentColor;
  border-right: calc(2 * var(--fluid-px)) solid currentColor;
}

.pill-button span::after,
.circle-link::after,
.footer-policy span::after {
  top: calc(8 * var(--fluid-px));
  right: calc(3 * var(--fluid-px));
  width: calc(12 * var(--fluid-px));
  height: calc(2 * var(--fluid-px));
  background: currentColor;
  transform: rotate(-45deg);
  transform-origin: right center;
}

.pill-button--small {
  width: calc(260 * var(--fluid-px));
}

.menu-button {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc(76 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  cursor: pointer;
}

.menu-button span {
  width: calc(32 * var(--fluid-px));
  height: calc(2 * var(--fluid-px));
  margin: calc(4 * var(--fluid-px)) 0;
  border-radius: calc(999 * var(--fluid-px));
  background: var(--blue);
  transition:
    transform 180ms ease,
    opacity 180ms ease;
}

.menu-button[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(calc(10 * var(--fluid-px))) rotate(45deg);
}

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

.menu-button[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(calc(-10 * var(--fluid-px))) rotate(-45deg);
}

.drawer {
  position: fixed;
  z-index: 20;
  inset: 0;
  display: grid;
  place-content: center;
  gap: calc(28 * var(--fluid-px));
  background: rgba(18, 17, 12, 0.94);
  color: var(--white);
  font-size: calc(28 * var(--fluid-px));
  font-weight: 700;
  text-align: center;
}

.drawer[hidden] {
  display: none;
}

.hero {
  position: relative;
  min-height: calc(536 * var(--fluid-px));
  overflow: hidden;
  background-image:
    linear-gradient(rgba(18, 17, 12, 0.08), rgba(18, 17, 12, 0.08)),
    url("../img/hero-bg.webp");
  background-position: center 36%;
  background-size: cover;
  color: var(--white);
}

.hero__inner {
  width: min(var(--wide), calc(100% - calc(96 * var(--fluid-px))));
  margin-inline: auto;
  padding-top: calc(200 * var(--fluid-px));
}

.hero__eyebrow {
  color: var(--white);
}

.hero h1 {
  width: 100%;
  margin: calc(4 * var(--fluid-px)) 0 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.hero h1 span {
  display: inline;
}

.breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--fluid-px));
  margin-top: calc(38 * var(--fluid-px));
  padding: calc(4 * var(--fluid-px)) calc(20 * var(--fluid-px));
  border-radius: calc(8 * var(--fluid-px));
  background: rgba(255, 255, 255, 0.2);
  font-size: calc(14 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  white-space: nowrap;
}

.breadcrumb strong {
  font-weight: 700;
}

.breadcrumb span {
  width: calc(6 * var(--fluid-px));
  height: calc(6 * var(--fluid-px));
  border-top: calc(1 * var(--fluid-px)) solid currentColor;
  border-right: calc(1 * var(--fluid-px)) solid currentColor;
  transform: rotate(45deg);
}

.job-detail {
  padding-top: calc(160 * var(--fluid-px));
}

.tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
}

.tab {
  display: grid;
  place-items: center;
  height: calc(75 * var(--fluid-px));
  border: 0;
  border-bottom: calc(2 * var(--fluid-px)) solid var(--blue);
  background: transparent;
  color: var(--blue);
  cursor: pointer;
  font-size: calc(32 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.6;
}

.tab.is-active {
  border-bottom-color: transparent;
  border-radius: calc(20 * var(--fluid-px)) calc(20 * var(--fluid-px)) 0 0;
  background: var(--blue);
  color: var(--white);
}

.detail-list {
  margin-top: calc(60 * var(--fluid-px));
}

.job-detail--single .detail-list {
  margin-top: 0;
}

.detail-panel[hidden] {
  display: none;
}

.detail-row {
  display: grid;
  grid-template-columns: calc(120 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(40 * var(--fluid-px));
  margin: 0;
  padding-bottom: calc(32 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid var(--line);
}

.detail-row + .detail-row {
  margin-top: calc(32 * var(--fluid-px));
}

.detail-row h2 {
  margin: 0;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.detail-content {
  min-width: 0;
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.8;
}

.detail-content p {
  margin: 0;
}

.detail-note--danger {
  color: #e60012;
}

.detail-content p + p,
.detail-content ul + p,
.detail-content p + ul {
  margin-top: calc(28 * var(--fluid-px));
}

.detail-content ul {
  margin: 0;
  padding-left: 1.5em;
}

.detail-content li {
  padding-left: 0.1em;
}

.detail-entry {
  display: flex;
  margin: calc(70 * var(--fluid-px)) auto 0;
}

.detail-entry.btn-entry {
  display: flex;
  width: calc(260 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
}

.openings {
  padding: calc(194 * var(--fluid-px)) 0 calc(160 * var(--fluid-px));
  scroll-margin-top: calc(24 * var(--fluid-px));
}

.section-heading {
  display: flex;
  align-items: flex-end;
  gap: calc(24 * var(--fluid-px));
  margin-bottom: calc(62 * var(--fluid-px));
}

.section-heading h2 {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.opening-list {
  display: grid;
  gap: calc(40 * var(--fluid-px));
}

.opening-list--job-cards {
  gap: calc(24 * var(--fluid-px));
}

.opening-card {
  display: grid;
  grid-template-columns: calc(480 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(60 * var(--fluid-px));
  min-height: calc(380 * var(--fluid-px));
  padding: calc(40 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  color: var(--text);
  transition: transform 180ms ease;
}

.opening-card--dark {
  background: var(--black);
  color: var(--white);
}

.opening-card img {
  width: calc(480 * var(--fluid-px));
  height: calc(300 * var(--fluid-px));
  object-fit: cover;
}

.opening-card__body {
  position: relative;
  min-height: calc(300 * var(--fluid-px));
  padding-right: calc(80 * var(--fluid-px));
}

.opening-card h3 {
  margin: calc(8 * var(--fluid-px)) 0 calc(20 * var(--fluid-px));
  font-size: calc(32 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.6;
}

.opening-card p:not(.eyebrow) {
  margin: 0;
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.8;
}

.circle-link {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-block;
  width: calc(60 * var(--fluid-px));
  height: calc(60 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.4);
  border-radius: 50%;
  color: var(--blue);
}

.circle-link::before {
  top: calc(23 * var(--fluid-px));
  right: calc(21 * var(--fluid-px));
}

.circle-link::after {
  top: calc(28 * var(--fluid-px));
  right: calc(21 * var(--fluid-px));
}

.circle-link--blue {
  border-color: transparent;
  background: var(--blue);
  color: var(--white);
}

.site-footer {
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(128 * var(--fluid-px));
  background: var(--black);
  color: var(--white);
  scroll-margin-top: 0;
}

.footer-inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
}

.footer-cta > .eyebrow {
  color: var(--white);
}

.footer-cta h2 {
  margin: calc(26 * var(--fluid-px)) 0 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.footer-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, calc(520 * var(--fluid-px))));
  gap: calc(36 * var(--fluid-px));
  margin-top: calc(70 * var(--fluid-px));
}

.footer-card {
  position: relative;
  min-height: calc(336 * var(--fluid-px));
  padding: calc(40 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  color: var(--text);
  transition:
    transform 180ms ease,
    background 180ms ease,
    color 180ms ease;
}

.footer-card--primary {
  background: var(--white);
  color: var(--text);
}

.footer-card h3 {
  margin: 0 0 calc(19 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.footer-card--primary h3 {
  color: var(--blue);
}

.footer-card p {
  width: min(calc(340 * var(--fluid-px)), 100%);
  margin: 0;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
}

.footer-card .circle-link {
  right: calc(20 * var(--fluid-px));
  bottom: calc(20 * var(--fluid-px));
  width: calc(80 * var(--fluid-px));
  height: calc(80 * var(--fluid-px));
  border-color: rgba(52, 152, 219, 0.4);
  color: var(--blue);
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

.footer-card--primary .circle-link {
  border-color: rgba(52, 152, 219, 0.4);
  color: var(--blue);
}

.footer-card .circle-link::before {
  top: calc(29 * var(--fluid-px));
  right: calc(28 * var(--fluid-px));
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
}

.footer-card .circle-link::after {
  top: calc(39 * var(--fluid-px));
  right: calc(31 * var(--fluid-px));
  width: calc(18 * var(--fluid-px));
}

@media (hover: hover) {
  .pill-button:hover,
  .footer-card:hover,
  .opening-card:hover {
    transform: translateY(calc(-2 * var(--fluid-px)));
  }

  .footer-card:hover {
    background: var(--blue);
    color: var(--white);
  }

  .footer-card:hover h3 {
    color: var(--white);
  }

  .footer-card:hover .circle-link {
    border-color: rgba(255, 255, 255, 0.45);
    color: var(--white);
    transform: rotate(45deg);
  }
}

.footer-divider {
  margin: calc(120 * var(--fluid-px)) 0 calc(80 * var(--fluid-px));
  border-top: calc(1 * var(--fluid-px)) solid rgba(255, 255, 255, 0.28);
}

.footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) calc(580 * var(--fluid-px));
  gap: calc(80 * var(--fluid-px));
  align-items: start;
}

.footer-logo {
  width: calc(500 * var(--fluid-px));
  height: auto;
}

.footer-policy {
  display: flex;
  flex-wrap: wrap;
  gap: calc(28 * var(--fluid-px));
  margin-top: calc(40 * var(--fluid-px));
}

.footer-policy a {
  display: inline-flex;
  align-items: center;
  border-bottom: calc(1 * var(--fluid-px)) solid currentColor;
  padding-bottom: calc(6 * var(--fluid-px));
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.8;
}

.footer-policy span {
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
  margin-left: calc(8 * var(--fluid-px));
}

.footer-policy span::before {
  top: calc(2 * var(--fluid-px));
  right: calc(1 * var(--fluid-px));
  width: calc(6 * var(--fluid-px));
  height: calc(6 * var(--fluid-px));
  border-width: calc(1 * var(--fluid-px));
}

.footer-policy span::after {
  top: calc(6 * var(--fluid-px));
  right: calc(1 * var(--fluid-px));
  width: calc(9 * var(--fluid-px));
  height: calc(1 * var(--fluid-px));
}

.footer-info p {
  margin: calc(34 * var(--fluid-px)) 0 0;
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.8;
}

.footer-info small {
  display: block;
  margin-top: calc(24 * var(--fluid-px));
  font-size: calc(14 * var(--fluid-px));
  line-height: 1.8;
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, calc(280 * var(--fluid-px))));
  gap: calc(20 * var(--fluid-px));
}

.footer-nav a {
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
}

@media (max-width: 899px) {
  .site-header {
    height: calc(96 * var(--fluid-px));
    padding: calc(20 * var(--fluid-px)) calc(24 * var(--fluid-px));
  }

  .brand {
    height: calc(36 * var(--fluid-px));
  }

  .brand__mark {
    width: calc(116 * var(--fluid-px));
    height: calc(36 * var(--fluid-px));
  }

  .brand__recruit {
    width: calc(40 * var(--fluid-px));
    height: calc(10 * var(--fluid-px));
  }

  .pill-button--small {
    display: none;
  }

  .menu-button {
    width: calc(56 * var(--fluid-px));
    height: calc(56 * var(--fluid-px));
  }

  .menu-button span {
    width: calc(26 * var(--fluid-px));
    margin: calc(3 * var(--fluid-px)) 0;
  }

  .hero {
    min-height: calc(430 * var(--fluid-px));
  }

  .hero__inner {
    width: min(var(--wide), calc(100% - calc(48 * var(--fluid-px))));
    padding-top: calc(154 * var(--fluid-px));
  }

  .hero h1 {
    font-size: calc(34 * var(--fluid-px));
  }

  .hero h1 span {
    display: block;
  }

  .breadcrumb {
    max-width: 100%;
    overflow-x: auto;
  }

  .job-detail {
    padding-top: calc(72 * var(--fluid-px));
  }

  .tab {
    height: calc(58 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
  }

  .tab.is-active {
    border-radius: calc(14 * var(--fluid-px)) calc(14 * var(--fluid-px)) 0 0;
  }

  .detail-list {
    margin-top: calc(42 * var(--fluid-px));
  }

  .detail-row {
    grid-template-columns: 1fr;
    gap: calc(12 * var(--fluid-px));
  }

  .detail-row h2,
  .detail-content {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .detail-content p + p,
  .detail-content ul + p,
  .detail-content p + ul {
    margin-top: calc(18 * var(--fluid-px));
  }

  .detail-entry {
    width: calc(220 * var(--fluid-px));
    height: calc(64 * var(--fluid-px));
    margin-top: calc(48 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .openings {
    padding: calc(110 * var(--fluid-px)) 0 calc(96 * var(--fluid-px));
  }

  .section-heading {
    display: block;
    margin-bottom: calc(40 * var(--fluid-px));
  }

  .section-heading h2 {
    font-size: calc(34 * var(--fluid-px));
  }

  .section-heading .eyebrow {
    margin-top: calc(8 * var(--fluid-px));
  }

  .opening-card {
    grid-template-columns: 1fr;
    gap: calc(24 * var(--fluid-px));
    padding: calc(24 * var(--fluid-px));
    border-radius: calc(16 * var(--fluid-px));
  }

  .opening-card img {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .opening-card__body {
    min-height: 0;
    padding-right: 0;
    padding-bottom: calc(72 * var(--fluid-px));
  }

  .opening-card h3 {
    font-size: calc(24 * var(--fluid-px));
  }

  .opening-card p:not(.eyebrow) {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .site-footer {
    padding: calc(72 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(80 * var(--fluid-px));
  }

  .footer-cta h2 {
    font-size: calc(30 * var(--fluid-px));
  }

  .footer-card {
    min-height: calc(280 * var(--fluid-px));
    padding: calc(28 * var(--fluid-px));
    border-radius: calc(16 * var(--fluid-px));
  }

  .footer-card h3 {
    font-size: calc(32 * var(--fluid-px));
  }

  .footer-card p {
    font-size: calc(18 * var(--fluid-px));
  }

  .footer-divider {
    margin: calc(72 * var(--fluid-px)) 0 calc(48 * var(--fluid-px));
  }

  .footer-logo {
    width: min(calc(360 * var(--fluid-px)), 100%);
  }

  .footer-nav {
    grid-template-columns: 1fr;
  }

  .footer-nav a {
    font-size: calc(18 * var(--fluid-px));
  }
}

@media (max-width: 899px) {
  .container {
    width: min(var(--container), calc(100% - calc(32 * var(--fluid-px))));
  }

  .hero__inner {
    width: calc(100% - calc(32 * var(--fluid-px)));
  }

  .hero h1 {
    font-size: calc(28 * var(--fluid-px));
  }

  .hero__eyebrow,
  .eyebrow {
    font-size: calc(14 * var(--fluid-px));
  }

  .breadcrumb {
    margin-top: calc(28 * var(--fluid-px));
    padding-inline: calc(14 * var(--fluid-px));
    font-size: 12px;
  }

  .tabs {
    grid-template-columns: 1fr;
  }

  .tab {
    border: calc(1 * var(--fluid-px)) solid var(--blue);
  }

  .tab.is-active {
    border-radius: calc(12 * var(--fluid-px)) calc(12 * var(--fluid-px)) 0 0;
  }

  .pill-button {
    width: calc(220 * var(--fluid-px));
    height: calc(64 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .pill-button span {
    margin-left: calc(26 * var(--fluid-px));
  }

  .footer-policy {
    display: grid;
    gap: calc(16 * var(--fluid-px));
  }
}

@media (max-width: 899px) {
  .container {
    width: min(
      calc(400 * var(--fluid-px)),
      calc(100% - calc(40 * var(--fluid-px)))
    );
  }

  .site-header {
    height: calc(96 * var(--fluid-px));
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .brand {
    gap: calc(6 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
  }

  .brand__mark {
    width: min(calc(154 * var(--fluid-px)), 35vw);
    height: calc(48 * var(--fluid-px));
  }

  .brand__recruit {
    width: min(calc(48 * var(--fluid-px)), 11vw);
    height: calc(12 * var(--fluid-px));
  }

  .header-actions {
    gap: calc(16 * var(--fluid-px));
  }

  .pill-button--small {
    display: inline-flex;
    width: calc(97 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
  }

  .pill-button--small span {
    display: none;
  }

  .menu-button {
    width: calc(48 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
  }

  .menu-button span {
    width: calc(24 * var(--fluid-px));
    margin: calc(3 * var(--fluid-px)) 0;
  }

  .menu-button[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(calc(8 * var(--fluid-px))) rotate(45deg);
  }

  .menu-button[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(calc(-8 * var(--fluid-px))) rotate(-45deg);
  }

  .hero {
    min-height: calc(451 * var(--fluid-px));
    background-position: center top;
  }

  .hero__inner {
    width: min(
      calc(400 * var(--fluid-px)),
      calc(100% - calc(40 * var(--fluid-px)))
    );
    padding-top: calc(136 * var(--fluid-px));
  }

  .hero__eyebrow,
  .eyebrow {
    font-size: calc(20 * var(--fluid-px));
  }

  .hero h1 {
    margin-top: calc(4 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.4;
  }

  .breadcrumb {
    margin-top: calc(32 * var(--fluid-px));
    padding: calc(2 * var(--fluid-px)) calc(12 * var(--fluid-px));
    gap: calc(8 * var(--fluid-px));
    font-size: 12px;
    line-height: 1.8;
  }

  .breadcrumb a:first-child {
    font-size: calc(14 * var(--fluid-px));
  }

  .job-detail {
    padding-top: calc(80 * var(--fluid-px));
  }

  .tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tab {
    height: calc(62 * var(--fluid-px));
    border: 0;
    border-bottom: calc(2 * var(--fluid-px)) solid var(--blue);
    font-size: calc(24 * var(--fluid-px));
    line-height: 1.6;
  }

  .tab + .tab {
    border-top: 0;
  }

  .tab.is-active {
    border-radius: calc(20 * var(--fluid-px)) calc(20 * var(--fluid-px)) 0 0;
  }

  .detail-list {
    margin-top: calc(40 * var(--fluid-px));
  }

  .detail-row {
    grid-template-columns: calc(80 * var(--fluid-px)) minmax(0, 1fr);
    gap: calc(12 * var(--fluid-px));
    padding-bottom: calc(22 * var(--fluid-px));
  }

  .detail-row + .detail-row {
    margin-top: calc(22 * var(--fluid-px));
  }

  .detail-row h2,
  .detail-content {
    font-size: max(14px, calc(14 * var(--fluid-px)));
    line-height: 1.8;
  }

  .detail-content p + p,
  .detail-content ul + p,
  .detail-content p + ul {
    margin-top: calc(20 * var(--fluid-px));
  }

  .detail-content ul {
    padding-left: 1.5em;
  }

  .detail-entry {
    width: calc(260 * var(--fluid-px));
    height: calc(76 * var(--fluid-px));
    margin-top: calc(60 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
  }

  .detail-entry span {
    display: inline-block;
  }

  .openings {
    padding: calc(160 * var(--fluid-px)) 0 calc(120 * var(--fluid-px));
  }

  .section-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin-bottom: calc(40 * var(--fluid-px));
  }

  .section-heading .eyebrow {
    order: -1;
    margin: 0;
  }

  .section-heading h2 {
    margin-top: calc(4 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
  }

  .opening-list {
    gap: calc(20 * var(--fluid-px));
  }

  .opening-card,
  .opening-card--dark {
    display: block;
    min-height: calc(393 * var(--fluid-px));
    padding: calc(40 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
    background: var(--white);
    color: var(--text);
  }

  .opening-card img {
    display: none;
  }

  .opening-card__body {
    min-height: calc(313 * var(--fluid-px));
    padding-right: 0;
    padding-bottom: calc(70 * var(--fluid-px));
  }

  .opening-card__body .eyebrow {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.8;
  }

  .opening-card h3 {
    margin: 0 0 calc(20 * var(--fluid-px));
    font-size: calc(24 * var(--fluid-px));
  }

  .opening-card p:not(.eyebrow) {
    font-size: calc(14 * var(--fluid-px));
  }

  .opening-card .circle-link {
    right: calc(-14 * var(--fluid-px));
    bottom: calc(-4 * var(--fluid-px));
    width: calc(50 * var(--fluid-px));
    height: calc(50 * var(--fluid-px));
  }

  .opening-card .circle-link::before {
    top: calc(18 * var(--fluid-px));
    right: calc(17 * var(--fluid-px));
  }

  .opening-card .circle-link::after {
    top: calc(23 * var(--fluid-px));
    right: calc(17 * var(--fluid-px));
  }

  .site-footer {
    padding: calc(120 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(80 * var(--fluid-px));
  }

  .footer-cta > .eyebrow {
    color: var(--blue);
    text-transform: lowercase;
  }

  .footer-cta h2 {
    margin-top: calc(4 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
  }

  .footer-card-grid {
    gap: calc(20 * var(--fluid-px));
    margin-top: calc(64 * var(--fluid-px));
  }

  .footer-card,
  .footer-card--primary {
    min-height: calc(287 * var(--fluid-px));
    padding: calc(40 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
    background: var(--white);
    color: var(--text);
  }

  .footer-card h3,
  .footer-card--primary h3 {
    margin-bottom: calc(24 * var(--fluid-px));
    color: var(--blue);
    font-size: calc(32 * var(--fluid-px));
  }

  .footer-card p {
    width: 100%;
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .footer-card .circle-link {
    right: calc(24 * var(--fluid-px));
    bottom: calc(24 * var(--fluid-px));
    width: calc(50 * var(--fluid-px));
    height: calc(50 * var(--fluid-px));
    color: var(--blue);
    border-color: rgba(52, 152, 219, 0.4);
  }

  .footer-card .circle-link::before {
    top: calc(18 * var(--fluid-px));
    right: calc(17 * var(--fluid-px));
  }

  .footer-card .circle-link::after {
    top: calc(23 * var(--fluid-px));
    right: calc(17 * var(--fluid-px));
  }

  .footer-divider {
    margin: calc(80 * var(--fluid-px)) 0;
  }

  .footer-bottom {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .footer-nav {
    order: -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(20 * var(--fluid-px)) calc(12 * var(--fluid-px));
    margin-bottom: calc(80 * var(--fluid-px));
  }

  .footer-nav a {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .footer-logo {
    width: min(calc(320 * var(--fluid-px)), 100%);
    margin-inline: auto;
  }

  .footer-policy {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(16 * var(--fluid-px));
    margin-top: calc(64 * var(--fluid-px));
  }

  .footer-policy a,
  .footer-info p,
  .footer-info small {
    font-size: calc(14 * var(--fluid-px));
  }

  .footer-info p {
    margin-top: calc(32 * var(--fluid-px));
  }
}

/* Page styles merged from pages.css */
/* ベース */
a {
  text-decoration: none;
  color: inherit;
}

/* テキスト */
body {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: #12110c;
  background: #f4f6f9;
}

.hero__title {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(48 * var(--fluid-px));
  line-height: 1.4;
  letter-spacing: 0;
}

.job-card__en {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: #3498db;
}

.job-card__title {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(32 * var(--fluid-px));
  line-height: 1.6;
  letter-spacing: 0;
  margin-top: calc(8 * var(--fluid-px));
}

.job-card__desc {
  margin-top: calc(20 * var(--fluid-px));
}

.footer__nav a {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
  letter-spacing: 0.1em;
}

/* ヘッダー */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  height: calc(80 * var(--fluid-px));
  display: flex;
  justify-content: center;
}

.header__inner {
  width: 100%;
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: calc(32 * var(--fluid-px)) 5% 0;
}

.header__logo img {
  width: calc(208 * var(--fluid-px));
  height: calc(48 * var(--fluid-px));
  display: block;
}

.header__nav {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--fluid-px));
}

.btn-entry {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: calc(260 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
  padding: 0 calc(28 * var(--fluid-px));
  background: linear-gradient(93.33deg, #3498db 0%, #00e5c3 100%);
  color: #fff;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  border-radius: calc(100 * var(--fluid-px));
  transition:
    background 0.3s ease,
    transform 0.3s ease;
}

.btn-entry .inline-arrow {
  transition: transform 0.3s ease;
}

.btn-menu {
  width: calc(48 * var(--fluid-px));
  height: calc(48 * var(--fluid-px));
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(5 * var(--fluid-px));
}

.btn-menu span {
  display: block;
  width: calc(20 * var(--fluid-px));
  height: calc(2 * var(--fluid-px));
  background: #fff;
  border-radius: calc(1 * var(--fluid-px));
}

/* ヒーロー */
.hero {
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: #fff;
  display: flex;
  justify-content: center;
}

.hero__inner {
  width: 100%;
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  padding: calc(160 * var(--fluid-px)) 5% calc(120 * var(--fluid-px));
}

.hero__label {
  font-size: max(14px, calc(20 * var(--fluid-px)));
  opacity: 0.75;
  margin-bottom: calc(12 * var(--fluid-px));
  letter-spacing: 0.1em;
}

.hero__desc {
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
  opacity: 0.85;
  margin-top: calc(20 * var(--fluid-px));
  margin-bottom: calc(24 * var(--fluid-px));
}

.breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--fluid-px));
  list-style: none;
  background: rgba(255, 255, 255, 0.15);
  padding: calc(6 * var(--fluid-px)) calc(16 * var(--fluid-px));
  border-radius: calc(4 * var(--fluid-px));
  font-size: calc(14 * var(--fluid-px));
  opacity: 0.8;
}

.breadcrumb li + li::before {
  content: "›";
  margin-right: calc(8 * var(--fluid-px));
}

/* メインビジュアル */
.main-visual {
  margin-top: calc(-80 * var(--fluid-px));
  position: relative;
  z-index: 1;
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  margin-left: auto;
  margin-right: auto;
  padding: 0 5%;
}

.main-visual picture,
.interviews-visual picture,
.data-visual picture,
.faq-visual picture {
  display: block;
  width: 100%;
}

.main-visual img {
  width: 100%;
  display: block;
}

/* 募集職種 */
.jobs__inner {
  padding: calc(64 * var(--fluid-px)) 5%;
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--fluid-px));
  align-items: center;
}

.job-card {
  max-width: calc(1200 * var(--fluid-px));
  width: 100%;
  display: flex;
  align-items: stretch;
  padding: calc(40 * var(--fluid-px)) calc(32 * var(--fluid-px))
    calc(40 * var(--fluid-px)) calc(40 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: #fff;
  transition:
    background 0.2s,
    color 0.2s;
}

.job-card__body {
  flex: 1;
  margin-left: calc(60 * var(--fluid-px));
  align-self: center;
}

.job-card__arrow {
  margin-left: calc(28 * var(--fluid-px));
  width: calc(60 * var(--fluid-px));
  height: calc(60 * var(--fluid-px));
  border-radius: 50%;
  border: calc(1 * var(--fluid-px)) solid #3498db;
  color: #3498db;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  transition:
    background 0.2s,
    border-color 0.2s;
}

.job-card__arrow img {
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
}

.job-card__arrow svg {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.2s;
}
/* 
.job-card--dark {
  background: #1a1a1a;
  color: #fff;
  border-radius: calc(16 * var(--fluid-px));
} */

.job-card {
  transition:
    background 0.2s,
    color 0.2s;
}

.job-card__img {
  max-width: calc(480 * var(--fluid-px));
  width: calc(480 * var(--fluid-px));
  aspect-ratio: 480 / 300;
  flex-shrink: 1;
  background: #ccc;
  overflow: hidden;
}

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

.job-card__body {
  flex: 1;
}

/* カジュアル面談 */
.casual__inner {
  max-width: calc(1600 * var(--fluid-px));
  margin: 0 auto;
  padding: calc(80 * var(--fluid-px)) 5%;
}

.casual__heading {
  display: flex;
  align-items: baseline;
  gap: calc(16 * var(--fluid-px));
  margin-bottom: calc(40 * var(--fluid-px));
}

.casual__heading h2 {
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  letter-spacing: 0;
}

.casual__heading span {
  font-family: "Poppins", sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  color: #3498db;
  letter-spacing: 0.1em;
}

.casual__content {
  display: flex;
  align-items: flex-start;
  background: #fff;
  border-radius: calc(20 * var(--fluid-px));
  overflow: hidden;
}

.casual__img {
  width: 50%;
  flex-shrink: 0;
}

.casual__img img {
  width: 100%;
  display: block;
}

.casual__text {
  flex: 1;
  padding: calc(60 * var(--fluid-px)) calc(80 * var(--fluid-px)) 0;
}

.casual__text p {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
  letter-spacing: 0.1em;
}

/* カジュアル面談の黒ボタン：PCは右寄せ（inline-flexだとauto余白が効かないためブロック化） */
.casual__text .btn-casual {
  display: flex;
  width: fit-content;
  margin-left: auto;
  margin-right: 0;
}

.btn-casual {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 60px;
  margin: calc(60 * var(--fluid-px)) 0 0 auto;
  padding: 24px 40px;
  background: #12110c;
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  border-radius: 999px;
  overflow: hidden;
  isolation: isolate;
}

/* aisaac風ホバー：下から円がせり上がって青く塗りつぶす（黒→青） */
.btn-casual::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  transform: translate(-50%, -50%) scale(0.2);
  opacity: 0;
  z-index: -1;
  pointer-events: none;
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

/* aisaac風ホバー：ラベルが上へスライドして切り替わる */
.btn-casual__label {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
}

.btn-casual__label-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-casual__label-def,
.btn-casual__label-hover {
  display: block;
  height: 1.4em;
}

.btn-casual .inline-arrow {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

/* CTA */
.cta {
  background: #12110c;
  color: #fff;
}

.cta__inner {
  max-width: calc(1600 * var(--fluid-px));
  margin: 0 auto;
  padding: calc(80 * var(--fluid-px)) 5% 0;
}

.cta__try {
  font-size: max(14px, calc(16 * var(--fluid-px)));
  opacity: 0.6;
  margin-bottom: calc(16 * var(--fluid-px));
}

.cta__title {
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin-bottom: calc(48 * var(--fluid-px));
}

.cta__cards {
  display: flex;
  gap: calc(16 * var(--fluid-px));
  padding-bottom: calc(80 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid #ffffff;
}

.cta-card {
  flex: 1;
  padding: calc(40 * var(--fluid-px)) calc(32 * var(--fluid-px))
    calc(32 * var(--fluid-px));
  min-height: calc(280 * var(--fluid-px));
  border-radius: calc(16 * var(--fluid-px));
  background: #fff;
  color: #12110c;
  display: flex;
  flex-direction: column;
  position: relative;
  transition:
    background 0.2s,
    color 0.2s;
}

.cta-card h3 {
  font-size: calc(32 * var(--fluid-px));
  font-weight: 700;
  letter-spacing: 0;
  color: #3498db;
  margin-bottom: calc(16 * var(--fluid-px));
}

.cta-card p {
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.8;
}

.cta-card__icon {
  position: absolute;
  bottom: calc(32 * var(--fluid-px));
  right: calc(32 * var(--fluid-px));
  width: calc(60 * var(--fluid-px));
  height: calc(60 * var(--fluid-px));
  border-radius: 50%;
  border: calc(1 * var(--fluid-px)) solid #3498db;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #3498db;
  transition:
    background 0.2s,
    border-color 0.2s,
    color 0.2s;
}

.cta-card__icon svg {
  width: calc(18 * var(--fluid-px));
  height: calc(18 * var(--fluid-px));
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.2s;
}

/* フッター */
.footer {
  background: #12110c;
  color: #fff;
}

.footer__inner {
  max-width: calc(1600 * var(--fluid-px));
  margin: 0 auto;
  padding: calc(64 * var(--fluid-px)) 5% calc(40 * var(--fluid-px));
}

.footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: calc(48 * var(--fluid-px));
  /* margin-bottom: calc(40 * var(--fluid-px)); */
}

.footer__brand {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--fluid-px));
}

.footer__logo {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--fluid-px));
}

.footer__logo-text {
  font-size: calc(40 * var(--fluid-px));
  font-weight: 700;
  letter-spacing: 0;
}

.footer__links {
  display: flex;
  gap: calc(24 * var(--fluid-px));
}

.footer__corp-link {
  font-size: max(14px, calc(16 * var(--fluid-px)));
  display: inline-flex;
  align-items: center;
  gap: calc(4 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid currentColor;
  padding-bottom: calc(4 * var(--fluid-px));
  transition: opacity 0.3s ease;
}

.footer__nav {
  display: flex;
  gap: calc(80 * var(--fluid-px));
}

.footer__nav ul {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--fluid-px));
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer__nav a {
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.8;
  transition: opacity 0.3s ease;
}

.footer__bottom {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--fluid-px));
}

.footer__address {
  font-size: calc(14 * var(--fluid-px));
  line-height: 1.8;
}

.footer__copy {
  font-size: calc(14 * var(--fluid-px));
}

/* Codex common parts */
:root {
  --blue: #3498db;
  --aqua: #00e5c3;
  --black: #12110c;
  --bg: #f4f6f9;
  --text: #12110c;
  --white: #ffffff;
  --wide: calc(1632 * var(--fluid-px));
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
}

img {
  display: block;
  max-width: 100%;
}

button {
  font: inherit;
}

.hero__title,
.job-card__en,
.job-card__title,
.footer__nav a,
.hero__label,
.casual__heading h2,
.casual__heading span,
.casual__text p,
.cta__title,
.cta-card h3 {
  letter-spacing: 0.03em;
}

.header {
  position: absolute;
  z-index: 100;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: calc(140 * var(--fluid-px));
  color: var(--white);
}

.header__inner {
  width: 100%;
  max-width: none;
  height: calc(140 * var(--fluid-px));
  padding: calc(32 * var(--fluid-px)) calc(48 * var(--fluid-px));
}

.header__logo img {
  width: calc(209 * var(--fluid-px));
  height: calc(48 * var(--fluid-px));
}

.header__nav {
  gap: calc(40 * var(--fluid-px));
}

.btn-entry {
  justify-content: center;
  width: calc(260 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
  padding: 0 calc(40 * var(--fluid-px));
  border: 0;
  border-radius: calc(70 * var(--fluid-px));
  background: linear-gradient(
    101deg,
    var(--aqua) 0%,
    var(--blue) 50%,
    var(--aqua) 100%
  );
  background-size: 200% 100%;
  background-position: 100% 50%;
  color: var(--white);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  gap: calc(42 * var(--fluid-px));
  transition:
    transform 180ms ease,
    background-position 500ms ease;
}

.btn-entry:focus-visible,
.btn-menu:focus-visible,
.btn-casual:focus-visible,
.job-card:focus-visible,
.cta-card:focus-visible,
.footer__corp-link:focus-visible,
.footer__nav a:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(0, 229, 195, 0.7);
  outline-offset: calc(4 * var(--fluid-px));
}

.inline-arrow {
  flex: 0 0 auto;
  transform-box: fill-box;
  transform-origin: center;
}

.btn-menu {
  width: calc(76 * var(--fluid-px));
  height: calc(76 * var(--fluid-px));
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  gap: calc(10 * var(--fluid-px));
}

.btn-menu span {
  width: calc(32 * var(--fluid-px));
  height: calc(2 * var(--fluid-px));
  margin: 0;
  border-radius: calc(999 * var(--fluid-px));
  background: var(--blue);
  transition:
    transform 0.3s ease,
    opacity 0.3s ease;
}

.btn-menu.is-open span:nth-child(1) {
  transform: translateY(calc(12 * var(--fluid-px))) rotate(45deg);
}

.btn-menu.is-open span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.btn-menu.is-open span:nth-child(3) {
  transform: translateY(calc(-12 * var(--fluid-px))) rotate(-45deg);
}

.cta {
  background: var(--black);
  color: var(--white);
}

.cta__inner {
  width: min(var(--wide), 100%);
  max-width: none;
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px)) 0;
}

.cta__try {
  margin: 0 0 calc(26 * var(--fluid-px));
  color: var(--white);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  opacity: 1;
}

.cta__title {
  margin: 0 0 calc(70 * var(--fluid-px));
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.cta__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, calc(520 * var(--fluid-px))));
  gap: calc(36 * var(--fluid-px));
  padding-bottom: calc(120 * var(--fluid-px));
  border-bottom: 0;
}

.cta-card,
.cta-card--teal {
  position: relative;
  min-height: calc(336 * var(--fluid-px));
  padding: calc(40 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  color: var(--text);
  transition:
    transform 180ms ease,
    background 180ms ease,
    color 180ms ease;
}

.cta-card--teal {
  background: var(--white);
  color: var(--text);
}

.cta-card h3 {
  margin: 0 0 calc(19 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.cta-card--teal h3 {
  color: var(--blue);
}

.cta-card p {
  width: min(calc(340 * var(--fluid-px)), 100%);
  margin: 0;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
}

.cta-card__icon {
  right: calc(20 * var(--fluid-px));
  bottom: calc(20 * var(--fluid-px));
  width: calc(80 * var(--fluid-px));
  height: calc(80 * var(--fluid-px));
  border-color: rgba(52, 152, 219, 0.4);
  color: var(--blue);
}

.cta-card--teal .cta-card__icon {
  border-color: rgba(52, 152, 219, 0.4);
  color: var(--blue);
}

.footer {
  background: var(--black);
  color: var(--white);
}

.footer__inner {
  width: min(var(--wide), 100%);
  max-width: none;
  margin-inline: auto;
  padding: 0 calc(48 * var(--fluid-px)) calc(128 * var(--fluid-px));
}

.footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) calc(580 * var(--fluid-px));
  gap: calc(80 * var(--fluid-px));
  align-items: start;
  border-top: calc(1 * var(--fluid-px)) solid rgba(255, 255, 255, 0.28);
  padding: calc(80 * var(--fluid-px)) 0 0;
}

.footer__brand {
  display: block;
}

.footer__logo img {
  width: calc(500 * var(--fluid-px));
  height: auto;
}

.footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: calc(28 * var(--fluid-px));
  margin-top: calc(40 * var(--fluid-px));
}

.footer__corp-link {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid currentColor;
  padding-bottom: calc(6 * var(--fluid-px));
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.8;
}

.external-icon {
  flex: 0 0 auto;
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
}

.footer__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, calc(280 * var(--fluid-px))));
  gap: calc(20 * var(--fluid-px));
}

.footer__nav ul {
  gap: calc(20 * var(--fluid-px));
}

.footer__nav a {
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
}

.footer__address {
  margin: calc(34 * var(--fluid-px)) 0 0;
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.8;
}

.footer__copy {
  margin: calc(24 * var(--fluid-px)) 0 0;
  font-size: calc(14 * var(--fluid-px));
  line-height: 1.8;
}

@media (max-width: 899px) {
  .hero__inner {
    padding-top: calc(154 * var(--fluid-px));
  }

  .hero__title {
    font-size: calc(34 * var(--fluid-px));
  }

  .job-card {
    display: block;
  }

  .job-card__img {
    width: 100%;
    max-width: none;
  }

  .job-card__body {
    margin-top: calc(28 * var(--fluid-px));
  }

  .job-card__arrow {
    margin: calc(32 * var(--fluid-px)) 0 0 auto;
  }

  .casual__content {
    display: block;
  }

  .casual__img {
    width: 100%;
  }
}

@media (max-width: 899px) {
  body {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .header {
    height: calc(96 * var(--fluid-px));
  }

  .header__inner {
    height: calc(96 * var(--fluid-px));
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .header__logo img {
    width: min(calc(209 * var(--fluid-px)), 46vw);
    height: auto;
  }

  .header__nav {
    gap: calc(16 * var(--fluid-px));
  }

  .btn-entry {
    width: calc(97 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
    padding: 0;
    font-size: calc(14 * var(--fluid-px));
    gap: 0;
  }

  .btn-entry .inline-arrow {
    display: none;
  }

  .detail-entry.btn-entry {
    width: calc(260 * var(--fluid-px));
    height: calc(76 * var(--fluid-px));
    padding: 0 calc(40 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
    gap: calc(42 * var(--fluid-px));
  }

  .detail-entry.btn-entry .inline-arrow {
    display: block;
  }

  .btn-menu {
    width: calc(48 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
  }

  .btn-menu span {
    width: calc(24 * var(--fluid-px));
    margin: calc(3 * var(--fluid-px)) 0;
  }

  .hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(80 * var(--fluid-px));
  }

  .hero__label {
    font-size: calc(20 * var(--fluid-px));
  }

  .hero__title {
    font-size: calc(32 * var(--fluid-px));
  }

  .hero__desc {
    font-size: calc(14 * var(--fluid-px));
  }

  .breadcrumb {
    max-width: 100%;
    overflow-x: auto;
    padding: calc(2 * var(--fluid-px)) calc(12 * var(--fluid-px));
    font-size: 12px;
  }

  .main-visual {
    margin-top: calc(-40 * var(--fluid-px));
    /* SP: 左は本文と揃え、右端は余白を無くして画面右まで伸ばす */
    padding: 0 0 0 calc(20 * var(--fluid-px));
  }

  .main-visual img {
    min-height: calc(180 * var(--fluid-px));
    object-fit: cover;
  }

  .jobs__inner {
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
    gap: calc(20 * var(--fluid-px));
  }

  .job-card {
    min-height: calc(393 * var(--fluid-px));
    padding: calc(40 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
    background: var(--white);
    color: var(--text);
  }

  .job-card__img {
    display: none;
  }

  .job-card__body {
    min-height: calc(253 * var(--fluid-px));
    margin-top: 0;
    margin-left: 0;
  }

  .job-card__en {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.8;
  }

  .job-card__title {
    margin-top: 0;
    font-size: calc(24 * var(--fluid-px));
  }

  .job-card__desc {
    margin-top: calc(20 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
  }

  .job-card__arrow {
    width: calc(50 * var(--fluid-px));
    height: calc(50 * var(--fluid-px));
    margin-top: calc(10 * var(--fluid-px));
  }

  .casual__inner {
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .casual__heading {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: flex-start;
    margin-bottom: calc(40 * var(--fluid-px));
  }

  .casual__heading h2 {
    font-size: calc(32 * var(--fluid-px));
  }

  .casual__heading span {
    order: -1;
    font-size: calc(20 * var(--fluid-px));
  }

  .casual__content {
    border-radius: calc(20 * var(--fluid-px));
  }

  .casual__text {
    padding: calc(32 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(40 * var(--fluid-px));
  }

  .casual__text p {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .btn-casual {
    justify-content: center;
    margin-top: calc(32 * var(--fluid-px));
  }

  /* SPはカジュアル面談ボタンを中央寄せ */
  .casual__text .btn-casual {
    margin-left: auto;
    margin-right: auto;
  }

  .cta__inner {
    padding: calc(120 * var(--fluid-px)) calc(20 * var(--fluid-px)) 0;
  }

  .cta__try {
    margin-bottom: calc(4 * var(--fluid-px));
    color: var(--blue);
    text-transform: lowercase;
  }

  .cta__title {
    margin-bottom: calc(64 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
  }

  .cta__cards {
    grid-template-columns: 1fr;
    gap: calc(20 * var(--fluid-px));
    padding-bottom: calc(80 * var(--fluid-px));
  }

  .cta-card,
  .cta-card--teal {
    min-height: calc(287 * var(--fluid-px));
    padding: calc(40 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
    background: var(--white);
    color: var(--text);
  }

  .cta-card h3,
  .cta-card--teal h3 {
    margin-bottom: calc(24 * var(--fluid-px));
    color: var(--blue);
    font-size: calc(32 * var(--fluid-px));
  }

  .cta-card p {
    width: 100%;
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .cta-card__icon,
  .cta-card--teal .cta-card__icon {
    right: calc(24 * var(--fluid-px));
    bottom: calc(24 * var(--fluid-px));
    width: calc(50 * var(--fluid-px));
    height: calc(50 * var(--fluid-px));
    border-color: rgba(52, 152, 219, 0.4);
    color: var(--blue);
  }

  .footer__inner {
    padding: 0 calc(20 * var(--fluid-px)) calc(80 * var(--fluid-px));
  }

  .footer__top {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-top: calc(80 * var(--fluid-px));
  }

  .footer__nav {
    order: -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(20 * var(--fluid-px)) calc(16 * var(--fluid-px));
    margin-bottom: calc(80 * var(--fluid-px));
  }

  .footer__nav a {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .footer__logo img {
    width: min(calc(320 * var(--fluid-px)), 100%);
    margin-inline: auto;
  }

  .footer__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(16 * var(--fluid-px));
    margin-top: calc(64 * var(--fluid-px));
  }

  /* gridでカラム幅に広がるとアンダーラインが伸びるため、中身幅に留める */
  .footer__corp-link {
    justify-self: start;
  }

  .footer__corp-link,
  .footer__address,
  .footer__copy {
    font-size: calc(14 * var(--fluid-px));
  }

  .footer__address {
    margin-top: calc(32 * var(--fluid-px));
  }
}

/* カード内テキスト（見出し・名前・メタ・紹介文）の色変化も滑らかにトランジション。
   ※矢印アイコンは既存のtransition（回転含む）をそのまま維持し非変更。 */
.cta-card h3,
.cta-card p,
.job-card__en,
.job-card__title,
.job-card__desc,
.staff-card__position,
.staff-card__name,
.staff-card__meta {
  transition:
    color 0.25s ease,
    background-color 0.25s ease,
    border-color 0.25s ease;
}

@media (hover: hover) {
  .job-card:hover {
    background: #12110c;
    color: #fff;
  }

  .job-card:hover .job-card__arrow {
    background: #3498db;
    border-color: transparent;
    color: #fff;
  }

  .job-card:hover .job-card__arrow svg {
    transform: rotate(45deg);
  }

  .footer__corp-link:hover {
    opacity: 0.7;
  }

  .footer__nav a:hover {
    opacity: 0.7;
  }

  .cta-card:hover {
    transform: translateY(calc(-2 * var(--fluid-px)));
  }

  .btn-entry:hover {
    background-position: 0% 50%;
  }

  .btn-entry:hover .inline-arrow {
    transform: rotate(45deg);
  }

  .btn-casual:hover::before {
    top: 50%;
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }

  .btn-casual:hover .btn-casual__label-inner {
    transform: translateY(-50%);
  }

  .btn-casual:hover .inline-arrow {
    transform: rotate(45deg);
  }

  .cta-card:hover,
  .cta-card--teal:hover {
    background: var(--blue);
    color: var(--white);
  }

  .cta-card:hover h3,
  .cta-card--teal:hover h3 {
    color: var(--white);
  }

  .cta-card:hover .cta-card__icon,
  .cta-card--teal:hover .cta-card__icon {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.45);
    color: var(--white);
  }

  .cta-card:hover .cta-card__icon svg,
  .cta-card--teal:hover .cta-card__icon svg {
    transform: rotate(45deg);
  }
}

/* Detail page safeguards after merged shared page styles */
.page-detail .hero {
  position: relative;
  display: block;
  min-height: calc(536 * var(--fluid-px));
  overflow: hidden;
  background-image:
    linear-gradient(rgba(18, 17, 12, 0.08), rgba(18, 17, 12, 0.08)),
    url("../img/hero-bg.webp");
  background-position: center 36%;
  background-size: cover;
  color: var(--white);
}

.page-detail .hero__inner {
  width: min(var(--wide), calc(100% - calc(96 * var(--fluid-px))));
  max-width: none;
  margin-inline: auto;
  padding: calc(200 * var(--fluid-px)) 0 0;
}

.page-detail .hero__eyebrow {
  color: var(--white);
}

.page-detail .hero h1 {
  width: 100%;
  margin: calc(4 * var(--fluid-px)) 0 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.page-detail .hero h1 span {
  display: inline;
}

.page-detail .breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: calc(8 * var(--fluid-px));
  margin-top: calc(38 * var(--fluid-px));
  padding: calc(4 * var(--fluid-px)) calc(20 * var(--fluid-px));
  border-radius: calc(8 * var(--fluid-px));
  background: rgba(255, 255, 255, 0.2);
  font-size: calc(14 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  white-space: nowrap;
  opacity: 1;
}

.page-detail .breadcrumb span {
  width: calc(6 * var(--fluid-px));
  height: calc(6 * var(--fluid-px));
  border-top: calc(1 * var(--fluid-px)) solid currentColor;
  border-right: calc(1 * var(--fluid-px)) solid currentColor;
  transform: rotate(45deg);
}

.page-detail .breadcrumb strong {
  font-weight: 700;
}

@media (max-width: 899px) {
  .page-detail .hero {
    min-height: calc(430 * var(--fluid-px));
    background-position: center 36%;
  }

  .page-detail .hero__inner {
    width: min(var(--wide), calc(100% - calc(48 * var(--fluid-px))));
    padding-top: calc(154 * var(--fluid-px));
  }

  .page-detail .hero h1 {
    font-size: calc(34 * var(--fluid-px));
  }

  .page-detail .hero h1 span {
    display: block;
  }

  .page-detail .breadcrumb {
    max-width: 100%;
    overflow-x: auto;
  }
}

@media (max-width: 899px) {
  .page-detail .hero {
    min-height: calc(451 * var(--fluid-px));
    background-position: center top;
  }

  .page-detail .hero__inner {
    width: min(
      calc(400 * var(--fluid-px)),
      calc(100% - calc(40 * var(--fluid-px)))
    );
    padding-top: calc(136 * var(--fluid-px));
  }

  .page-detail .hero h1 {
    margin-top: calc(4 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.4;
  }

  .page-detail .breadcrumb {
    margin-top: calc(32 * var(--fluid-px));
    padding: calc(2 * var(--fluid-px)) calc(12 * var(--fluid-px));
    gap: calc(8 * var(--fluid-px));
    font-size: 12px;
    line-height: 1.8;
  }

  .page-detail .breadcrumb a:first-child {
    font-size: calc(14 * var(--fluid-px));
  }
}

/* Employee interview pages */
.interviews-hero {
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: var(--white);
}

.interviews-hero__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(200 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(170 * var(--fluid-px));
}

.interviews-hero__label,
.interview-detail-hero__label {
  margin: 0 0 calc(12 * var(--fluid-px));
  color: var(--white);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
  opacity: 0.82;
}

.interviews-hero__title {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.interviews-hero__desc {
  /* width: min(calc(760 * var(--fluid-px)), 100%); */
  margin: calc(24 * var(--fluid-px)) 0 0;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.interviews-hero__breadcrumb {
  margin-top: calc(32 * var(--fluid-px));
}

.interviews-visual {
  position: relative;
  z-index: 1;
  width: min(var(--wide), 100%);
  margin: calc(-100 * var(--fluid-px)) auto 0;
  padding: 0 calc(48 * var(--fluid-px));
}

.interviews-visual img {
  width: 100%;
  height: auto;
  min-height: calc(280 * var(--fluid-px));
  object-fit: cover;
}

.staff-list__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px));
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(24 * var(--fluid-px));
}

.staff-card {
  position: relative;
  min-height: calc(640 * var(--fluid-px));
  padding: calc(24 * var(--fluid-px)) calc(24 * var(--fluid-px))
    calc(92 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  color: var(--text);
  display: flex;
  flex-direction: column;
  transition:
    background 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.staff-card--featured {
  background: var(--black);
  color: var(--white);
}

.staff-card__image {
  overflow: hidden;
  aspect-ratio: 342 / 425;
  background: #d9d9d9;
}

.staff-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.staff-card__body {
  margin-top: calc(24 * var(--fluid-px));
}

.staff-card__position {
  margin: 0;
  padding: calc(6 * var(--fluid-px)) calc(12 * var(--fluid-px));
  border-radius: calc(8 * var(--fluid-px));
  background: var(--bg);
  color: var(--text);
  font-size: calc(16 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.1em;
}

.staff-card__name {
  margin: calc(24 * var(--fluid-px)) 0 0;
  color: var(--blue);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.staff-card__meta {
  margin: calc(2 * var(--fluid-px)) 0 0;
  color: var(--blue);
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: calc(14 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.staff-card__arrow {
  position: absolute;
  right: calc(24 * var(--fluid-px));
  bottom: calc(24 * var(--fluid-px));
  width: calc(56 * var(--fluid-px));
  height: calc(56 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.42);
  border-radius: 50%;
  color: var(--blue);
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    background 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

.staff-card__arrow svg {
  transition: transform 180ms ease;
}

.interview-detail-hero {
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: var(--white);
}

.interview-detail-hero__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(170 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(96 * var(--fluid-px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(
      calc(360 * var(--fluid-px)),
      calc(520 * var(--fluid-px))
    );
  gap: calc(72 * var(--fluid-px));
  align-items: end;
}

.interview-detail-hero__title {
  margin: 0;
  font-size: clamp(
    calc(40 * var(--fluid-px)),
    4.2vw,
    calc(72 * var(--fluid-px))
  );
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.interview-detail-hero__position {
  display: inline-block;
  margin: calc(40 * var(--fluid-px)) 0 0;
  padding: calc(7 * var(--fluid-px)) calc(16 * var(--fluid-px));
  border-radius: calc(8 * var(--fluid-px));
  background: var(--white);
  color: var(--text);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.interview-detail-hero__name {
  margin: calc(28 * var(--fluid-px)) 0 0;
  color: var(--white);
  font-size: calc(32 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
}

.interview-detail-hero__name span {
  margin-left: calc(16 * var(--fluid-px));
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: calc(18 * var(--fluid-px));
  font-weight: 600;
}

.interview-detail-hero__lead {
  width: min(calc(760 * var(--fluid-px)), 100%);
  margin: calc(32 * var(--fluid-px)) 0 0;
  font-size: calc(18 * var(--fluid-px));
  line-height: 1.9;
  letter-spacing: 0.1em;
}

.interview-detail-hero__breadcrumb {
  margin-top: calc(36 * var(--fluid-px));
}

.interview-detail-hero__image {
  overflow: hidden;
  border-radius: calc(20 * var(--fluid-px));
}

.interview-detail-hero__image img {
  width: 100%;
  aspect-ratio: 520 / 640;
  object-fit: cover;
}

.interview-story__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px));
}

.interview-block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(
      calc(360 * var(--fluid-px)),
      calc(520 * var(--fluid-px))
    );
  gap: calc(88 * var(--fluid-px));
  align-items: center;
  padding: calc(88 * var(--fluid-px)) 0;
  border-top: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.18);
}

.interview-block:first-child {
  padding-top: 0;
  border-top: 0;
}

.interview-block__text h2 {
  position: relative;
  margin: 0;
  padding-left: calc(52 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(32 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
}

.interview-block__text h2::before {
  content: "Q.";
  position: absolute;
  top: 0;
  left: 0;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(32 * var(--fluid-px));
  line-height: 1.6;
}

.interview-block__text p {
  position: relative;
  margin: calc(32 * var(--fluid-px)) 0 0;
  padding-left: calc(52 * var(--fluid-px));
  font-size: calc(20 * var(--fluid-px));
  line-height: 2;
  letter-spacing: 0.1em;
}

.interview-block__text p::before {
  content: "A.";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 2;
}

.interview-block__image {
  overflow: hidden;
  border-radius: calc(20 * var(--fluid-px));
}

.interview-block__image img {
  width: 100%;
  aspect-ratio: 540 / 597;
  object-fit: cover;
}

.interview-block--wide {
  grid-template-columns: minmax(0, 1fr) minmax(
      calc(460 * var(--fluid-px)),
      calc(760 * var(--fluid-px))
    );
}

.interview-block--wide .interview-block__image img {
  aspect-ratio: 760 / 378;
}

.interview-closing-image {
  overflow: hidden;
  width: min(calc(720 * var(--fluid-px)), 100%);
  margin: calc(32 * var(--fluid-px)) auto 0;
  border-radius: calc(20 * var(--fluid-px));
}

.interview-closing-image img {
  width: 100%;
  aspect-ratio: 720 / 900;
  object-fit: cover;
}

.interview-message {
  background: var(--bg);
}

.interview-message__visual {
  display: grid;
  place-items: center;
  min-height: calc(520 * var(--fluid-px));
  background: var(--blue);
}

.interview-message__mask {
  width: calc(220 * var(--fluid-px));
  aspect-ratio: 1;
  background: url("../img/interview-taiki-closing.webp") center / cover
    no-repeat;
  -webkit-mask: url("../img/logo_mask.svg") center / contain no-repeat;
  mask: url("../img/logo_mask.svg") center / contain no-repeat;
}

.interview-message__body {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px));
}

.interview-message__body h2 {
  width: min(calc(900 * var(--fluid-px)), 100%);
  margin: 0;
  color: var(--blue);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
}

.interview-message__body p {
  width: min(calc(880 * var(--fluid-px)), 100%);
  margin: calc(40 * var(--fluid-px)) 0 0;
  font-size: calc(22 * var(--fluid-px));
  line-height: 2;
  letter-spacing: 0.1em;
}

@media (max-width: 899px) {
  .interviews-hero__inner {
    padding: calc(154 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .interviews-visual {
    margin-top: calc(-60 * var(--fluid-px));
    padding: 0 calc(24 * var(--fluid-px));
  }

  .staff-list__inner,
  .interview-story__inner {
    padding-right: calc(24 * var(--fluid-px));
    padding-left: calc(24 * var(--fluid-px));
  }

  .interview-detail-hero__inner {
    padding: calc(154 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(80 * var(--fluid-px));
    gap: calc(48 * var(--fluid-px));
  }
}

@media (max-width: 899px) {
  .interviews-hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(96 * var(--fluid-px));
  }

  .interviews-hero__label,
  .interview-detail-hero__label {
    font-size: calc(20 * var(--fluid-px));
  }

  .interviews-hero__title {
    font-size: calc(32 * var(--fluid-px));
  }

  .interviews-hero__desc {
    font-size: calc(14 * var(--fluid-px));
  }

  .interviews-visual {
    margin-top: calc(-44 * var(--fluid-px));
    /* SP: 左は本文と揃え、右端は余白を無くして画面右まで伸ばす */
    padding: 0 0 0 calc(20 * var(--fluid-px));
  }

  .interviews-visual img {
    min-height: calc(180 * var(--fluid-px));
  }

  .staff-list__inner {
    grid-template-columns: 1fr;
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
    gap: calc(20 * var(--fluid-px));
  }

  .staff-card {
    min-height: calc(520 * var(--fluid-px));
    padding: calc(40 * var(--fluid-px)) calc(40 * var(--fluid-px))
      calc(84 * var(--fluid-px));
  }

  .staff-card__position {
    font-size: calc(14 * var(--fluid-px));
  }

  .staff-card__arrow {
    width: calc(50 * var(--fluid-px));
    height: calc(50 * var(--fluid-px));
  }

  .interview-detail-hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(72 * var(--fluid-px));
    grid-template-columns: 1fr;
    gap: calc(40 * var(--fluid-px));
  }

  .interview-detail-hero__title {
    font-size: calc(36 * var(--fluid-px));
  }

  .interview-detail-hero__position {
    margin-top: calc(32 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
  }

  .interview-detail-hero__name {
    font-size: calc(24 * var(--fluid-px));
  }

  .interview-detail-hero__name span {
    display: block;
    margin: calc(4 * var(--fluid-px)) 0 0;
    font-size: calc(14 * var(--fluid-px));
  }

  .interview-detail-hero__lead {
    font-size: calc(15 * var(--fluid-px));
  }

  .interview-story__inner {
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .interview-block {
    grid-template-columns: 1fr;
    gap: calc(32 * var(--fluid-px));
    padding: calc(64 * var(--fluid-px)) 0;
  }

  .interview-block--wide {
    grid-template-columns: 1fr;
  }

  .interview-block__text h2 {
    padding-left: calc(40 * var(--fluid-px));
    font-size: calc(24 * var(--fluid-px));
  }

  .interview-block__text h2::before {
    font-size: calc(24 * var(--fluid-px));
  }

  .interview-block__text p {
    margin-top: calc(24 * var(--fluid-px));
    padding-left: calc(40 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .interview-message__visual {
    min-height: calc(360 * var(--fluid-px));
  }

  .interview-message__mask {
    width: calc(142 * var(--fluid-px));
  }

  .interview-message__body {
    padding: calc(72 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(88 * var(--fluid-px));
  }

  .interview-message__body h2 {
    font-size: calc(30 * var(--fluid-px));
  }

  .interview-message__body p {
    margin-top: calc(32 * var(--fluid-px));
    font-size: calc(15 * var(--fluid-px));
    line-height: 1.9;
  }
}

@media (hover: hover) {
  .staff-card:hover {
    background: var(--black);
    color: var(--white);
    transform: translateY(calc(-2 * var(--fluid-px)));
  }

  .staff-card:hover .staff-card__position {
    background: var(--white);
    color: var(--text);
  }

  .staff-card:hover .staff-card__name,
  .staff-card:hover .staff-card__meta,
  .staff-card:hover .staff-card__arrow {
    color: var(--white);
  }

  .staff-card:hover .staff-card__arrow {
    border-color: rgba(255, 255, 255, 0.55);
  }

  .staff-card:hover .staff-card__arrow svg {
    transform: rotate(45deg);
  }
}
/* Data page */
.data-hero {
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: var(--white);
}

.data-hero__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(200 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(170 * var(--fluid-px));
}

.data-hero__label {
  margin: 0 0 calc(12 * var(--fluid-px));
  color: var(--white);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.data-hero__title {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.data-hero__desc {
  /* width: min(calc(1060 * var(--fluid-px)), 100%); */
  margin: calc(24 * var(--fluid-px)) 0 0;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.data-hero__breadcrumb {
  margin-top: calc(32 * var(--fluid-px));
}

.data-visual {
  position: relative;
  z-index: 1;
  width: min(var(--wide), 100%);
  margin: calc(-100 * var(--fluid-px)) auto 0;
  padding: 0 calc(48 * var(--fluid-px));
}

.data-visual img {
  width: 100%;
  min-height: calc(280 * var(--fluid-px));
  object-fit: cover;
}

.data-stats {
  padding: calc(120 * var(--fluid-px)) 0;
}

.data-stats__grid {
  width: min(
    calc(1200 * var(--fluid-px)),
    calc(100% - calc(96 * var(--fluid-px)))
  );
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(24 * var(--fluid-px));
}

.data-stat {
  min-height: calc(341 * var(--fluid-px));
  padding: calc(40 * var(--fluid-px)) calc(24 * var(--fluid-px))
    calc(32 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  display: flex;
  flex-direction: column;
}

.data-stat h2 {
  margin: 0;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.data-stat__split,
.data-stat__single {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(32 * var(--fluid-px));
  text-align: center;
}

.data-stat__single {
  flex-direction: column;
  gap: 0;
}

.data-stat p {
  margin: 0;
}

.data-stat span {
  display: block;
  margin-bottom: calc(4 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
}

.data-stat strong {
  color: var(--blue);
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: calc(120 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: 0;
}

.data-stat small {
  margin-left: calc(4 * var(--fluid-px));
  font-family: YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: 0.5em;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.data-category__title-band {
  background: var(--white);
  padding: calc(40 * var(--fluid-px)) calc(20 * var(--fluid-px));
  text-align: center;
}

.data-category__title-band h2 {
  margin: 0;
  color: var(--blue);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.data-category__inner {
  width: min(
    calc(1200 * var(--fluid-px)),
    calc(100% - calc(96 * var(--fluid-px)))
  );
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) 0;
  display: grid;
  gap: calc(24 * var(--fluid-px));
}

.chart-card {
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  padding: calc(40 * var(--fluid-px));
}

.chart-card h3 {
  margin: 0 0 calc(42 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.chart-card__body {
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  display: grid;
  grid-template-columns: calc(360 * var(--fluid-px)) max-content;
  gap: calc(90 * var(--fluid-px));
  align-items: center;
  justify-content: center;
}

.pie-chart {
  position: relative;
  width: calc(360 * var(--fluid-px));
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(var(--segments));
}

.pie-chart::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 calc(1 * var(--fluid-px)) rgba(255, 255, 255, 0.9);
}

.pie-chart span {
  position: absolute;
  z-index: 1;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%);
  color: var(--white);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(32 * var(--fluid-px));
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  pointer-events: none;
  text-shadow: 0 calc(1 * var(--fluid-px)) calc(2 * var(--fluid-px))
    rgba(18, 17, 12, 0.18);
}

.chart-legend {
  list-style: none;
  display: grid;
  gap: calc(12 * var(--fluid-px));
  margin: 0;
  padding: 0;
}

.chart-legend li {
  display: flex;
  flex-wrap: wrap;
  gap: 0 calc(10 * var(--fluid-px));
  align-items: baseline;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.chart-legend li::before {
  content: "";
  flex: 0 0 auto;
  width: calc(10 * var(--fluid-px));
  height: calc(10 * var(--fluid-px));
  margin-top: calc(13 * var(--fluid-px));
  margin-right: calc(-2 * var(--fluid-px));
  border-radius: calc(1 * var(--fluid-px));
  background: var(--legend-color);
}

.chart-legend span {
  min-width: 0;
  flex: 0 1 auto;
}

.chart-legend strong {
  flex: 0 0 auto;
  color: var(--legend-color);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(40 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
}

.chart-legend small {
  font-size: 0.6em;
  font-weight: 600;
}

.bubble-row {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: calc(28 * var(--fluid-px));
}

.chart-card--bubbles-five .bubble-row {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bubble-item {
  display: grid;
  justify-items: center;
  gap: calc(14 * var(--fluid-px));
  text-align: center;
  color: var(--text);
}

.bubble-item span {
  width: calc(112 * var(--fluid-px));
  height: calc(112 * var(--fluid-px));
  border-radius: 50%;
  background: var(--bubble-color);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(14 * var(--fluid-px));
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.1em;
}

.bubble-item strong {
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(32 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
}

.bubble-item small {
  font-size: 0.65em;
}

@media (max-width: 899px) {
  .data-hero__inner {
    padding: calc(154 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .data-visual {
    margin-top: calc(-60 * var(--fluid-px));
    padding: 0 calc(24 * var(--fluid-px));
  }

  .data-stats__grid,
  .data-category__inner {
    width: min(
      calc(640 * var(--fluid-px)),
      calc(100% - calc(48 * var(--fluid-px)))
    );
  }

  .data-stats__grid {
    grid-template-columns: 1fr;
  }

  .chart-card__body {
    grid-template-columns: 1fr;
    gap: calc(36 * var(--fluid-px));
    justify-items: center;
  }

  .chart-legend {
    width: min(calc(420 * var(--fluid-px)), 100%);
  }
}

@media (max-width: 899px) {
  .data-hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(88 * var(--fluid-px));
  }

  .data-hero__label {
    font-size: calc(20 * var(--fluid-px));
  }

  .data-hero__title {
    font-size: calc(32 * var(--fluid-px));
  }

  .data-hero__desc {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    font-weight: 500;
  }

  .data-visual {
    margin-top: calc(-38 * var(--fluid-px));
    /* SP: 左は本文と揃え、右端は余白を無くして画面右まで伸ばす */
    padding: 0 0 0 calc(20 * var(--fluid-px));
  }

  .data-visual img {
    min-height: calc(210 * var(--fluid-px));
  }

  .data-stats {
    padding: calc(60 * var(--fluid-px)) 0 calc(120 * var(--fluid-px));
  }

  .data-stats__grid,
  .data-category__inner {
    width: min(
      calc(400 * var(--fluid-px)),
      calc(100% - calc(40 * var(--fluid-px)))
    );
  }

  .data-stat {
    min-height: calc(261 * var(--fluid-px));
    padding: calc(32 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(28 * var(--fluid-px));
  }

  .data-stat h2 {
    font-size: calc(24 * var(--fluid-px));
    text-align: center;
  }

  .data-stat__split {
    gap: calc(24 * var(--fluid-px));
  }

  .data-stat span {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .data-stat strong {
    font-size: calc(80 * var(--fluid-px));
  }

  .data-category__title-band {
    padding: calc(20 * var(--fluid-px));
  }

  .data-category__title-band h2 {
    font-size: calc(32 * var(--fluid-px));
  }

  .data-category__inner {
    padding: calc(80 * var(--fluid-px)) 0;
    gap: calc(20 * var(--fluid-px));
  }

  .chart-card {
    padding: calc(40 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(40 * var(--fluid-px));
  }

  .chart-card h3 {
    margin-bottom: calc(34 * var(--fluid-px));
    font-size: calc(24 * var(--fluid-px));
    text-align: center;
  }

  .chart-card__body {
    gap: calc(24 * var(--fluid-px));
  }

  .pie-chart {
    width: min(calc(360 * var(--fluid-px)), 100%);
  }

  .pie-chart span {
    font-size: calc(32 * var(--fluid-px));
  }

  .chart-legend {
    gap: calc(8 * var(--fluid-px));
    width: 100%;
  }

  .chart-legend li {
    gap: 0 calc(10 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
  }

  .chart-legend strong {
    font-size: calc(40 * var(--fluid-px));
  }

  .bubble-row,
  .chart-card--bubbles-five .bubble-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(95 * var(--fluid-px)) calc(12 * var(--fluid-px));
  }

  .bubble-item {
    gap: calc(14 * var(--fluid-px));
  }

  .bubble-item span {
    width: calc(112 * var(--fluid-px));
    height: calc(112 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .bubble-item strong {
    font-size: calc(40 * var(--fluid-px));
  }

  .data-category[aria-labelledby="culture-title"] .chart-card:nth-child(1) {
    min-height: calc(823 * var(--fluid-px));
  }

  .data-category[aria-labelledby="culture-title"] .chart-card:nth-child(n + 2) {
    min-height: calc(882 * var(--fluid-px));
  }

  .data-category[aria-labelledby="growth-title"] .chart-card:nth-child(1) {
    min-height: calc(871 * var(--fluid-px));
  }

  .data-category[aria-labelledby="growth-title"] .chart-card:nth-child(2) {
    min-height: calc(767 * var(--fluid-px));
  }

  .data-category[aria-labelledby="people-title"] .chart-card:nth-child(1) {
    min-height: calc(878 * var(--fluid-px));
  }

  .data-category[aria-labelledby="people-title"] .chart-card:nth-child(2) {
    min-height: calc(715 * var(--fluid-px));
  }

  .data-category[aria-labelledby="people-title"] .chart-card:nth-child(3) {
    min-height: calc(862 * var(--fluid-px));
  }

  .data-category[aria-labelledby="daily-title"] .chart-card:nth-child(1) {
    min-height: calc(663 * var(--fluid-px));
  }

  .data-category[aria-labelledby="daily-title"] .chart-card:nth-child(2) {
    min-height: calc(767 * var(--fluid-px));
  }

  .data-category[aria-labelledby="daily-title"] .chart-card:nth-child(3) {
    min-height: calc(819 * var(--fluid-px));
  }

  .data-category[aria-labelledby="daily-title"] .chart-card:nth-child(4) {
    min-height: calc(715 * var(--fluid-px));
  }

  .page-data .data-category .chart-card.chart-card--pie {
    min-height: 0;
  }
}

/* FAQ page */
.faq-hero {
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: var(--white);
}

.faq-hero__inner {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(200 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(170 * var(--fluid-px));
}

.faq-hero__label {
  margin: 0 0 calc(12 * var(--fluid-px));
  color: var(--white);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.faq-hero__title {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.faq-hero__desc {
  /* width: min(calc(1060 * var(--fluid-px)), 100%); */
  margin: calc(24 * var(--fluid-px)) 0 0;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.faq-hero__breadcrumb {
  margin-top: calc(32 * var(--fluid-px));
}

.faq-visual {
  position: relative;
  z-index: 1;
  width: min(var(--wide), 100%);
  margin: calc(-100 * var(--fluid-px)) auto 0;
  padding: 0 calc(48 * var(--fluid-px));
}

.faq-visual img {
  width: 100%;
  min-height: calc(280 * var(--fluid-px));
  object-fit: cover;
}

.faq-layout {
  width: min(var(--wide), 100%);
  margin-inline: auto;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(160 * var(--fluid-px));
  display: grid;
  grid-template-columns: calc(352 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(80 * var(--fluid-px));
  align-items: start;
}

.faq-sidebar {
  position: sticky;
  top: calc(128 * var(--fluid-px));
  display: grid;
  gap: calc(18 * var(--fluid-px));
}

.faq-sidebar a {
  position: relative;
  padding-left: calc(18 * var(--fluid-px));
  color: rgba(18, 17, 12, 0.6);
  font-size: max(14px, calc(20 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.1em;
  transition: color 180ms ease;
}

.faq-sidebar a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.82em;
  width: calc(8 * var(--fluid-px));
  height: calc(1 * var(--fluid-px));
  background: currentColor;
}

.faq-sidebar a.is-active,
.faq-sidebar a[aria-current="true"] {
  color: var(--blue);
}

.faq-content {
  display: grid;
  gap: calc(160 * var(--fluid-px));
}

.faq-section {
  scroll-margin-top: calc(140 * var(--fluid-px));
}

.faq-section h2 {
  margin: 0 0 calc(48 * var(--fluid-px));
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.faq-list {
  display: grid;
}

.faq-item {
  border-bottom: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.22);
}

.faq-question {
  position: relative;
  display: grid;
  grid-template-columns: calc(44 * var(--fluid-px)) minmax(0, 1fr) calc(
      18 * var(--fluid-px)
    );
  gap: calc(16 * var(--fluid-px));
  align-items: start;
  padding: calc(32 * var(--fluid-px)) 0;
  cursor: pointer;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.faq-question::-webkit-details-marker {
  display: none;
}

.faq-question::before,
.faq-answer::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(44 * var(--fluid-px));
  height: calc(44 * var(--fluid-px));
  border-radius: 50%;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.1em;
}

.faq-question::before {
  content: "Q";
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.7);
  color: var(--blue);
}

.faq-question::after {
  content: "";
  width: calc(10 * var(--fluid-px));
  height: calc(10 * var(--fluid-px));
  margin-top: calc(8 * var(--fluid-px));
  border-top: calc(2 * var(--fluid-px)) solid var(--blue);
  border-right: calc(2 * var(--fluid-px)) solid var(--blue);
  transform: rotate(135deg);
  transition: transform 180ms ease;
}

.faq-item[open] .faq-question::after {
  transform: rotate(-45deg);
}

.faq-answer {
  position: relative;
  display: grid;
  grid-template-columns: calc(44 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(16 * var(--fluid-px));
  margin: calc(-8 * var(--fluid-px)) 0 0;
  padding: 0 calc(34 * var(--fluid-px)) calc(22 * var(--fluid-px)) 0;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.faq-answer::before {
  content: "A";
  background: var(--blue);
  color: var(--white);
}

/*
 * アコーディオン開閉トランジション。
 * ::details-content 対応ブラウザでは高さ(0⇔auto)とフェードをアニメーション。
 * 非対応ブラウザは従来どおり即時開閉（フォールバックのみで破綻なし）。
 * interpolate-size は height:auto へのアニメーションを許可するために指定。
 */
.faq-item {
  interpolate-size: allow-keywords;
}

.faq-item::details-content {
  block-size: 0;
  overflow: clip;
  opacity: 0;
  transition:
    block-size 320ms cubic-bezier(0.25, 1, 0.5, 1),
    opacity 240ms ease,
    content-visibility 320ms allow-discrete;
}

.faq-item[open]::details-content {
  block-size: auto;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .faq-item::details-content {
    transition: none;
  }
}

@media (max-width: 899px) {
  .faq-hero__inner {
    padding: calc(154 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .faq-visual {
    margin-top: calc(-60 * var(--fluid-px));
    padding: 0 calc(24 * var(--fluid-px));
  }

  .faq-layout {
    display: block;
    padding: calc(80 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .faq-sidebar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(14 * var(--fluid-px)) calc(24 * var(--fluid-px));
    margin-bottom: calc(96 * var(--fluid-px));
  }

  .faq-content {
    gap: calc(112 * var(--fluid-px));
  }
}

@media (max-width: 899px) {
  .faq-hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(88 * var(--fluid-px));
  }

  .faq-hero__label {
    font-size: calc(20 * var(--fluid-px));
  }

  .faq-hero__title {
    font-size: calc(32 * var(--fluid-px));
  }

  .faq-hero__desc {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    font-weight: 500;
  }

  .faq-visual {
    margin-top: calc(-38 * var(--fluid-px));
    /* SP: 左は本文と揃え、右端は余白を無くして画面右まで伸ばす */
    padding: 0 0 0 calc(20 * var(--fluid-px));
  }

  .faq-visual img {
    min-height: calc(180 * var(--fluid-px));
  }

  .faq-layout {
    padding: calc(64 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .faq-sidebar {
    gap: calc(12 * var(--fluid-px)) calc(18 * var(--fluid-px));
    margin-bottom: calc(88 * var(--fluid-px));
  }

  .faq-sidebar a {
    padding-left: calc(14 * var(--fluid-px));
    color: #656565;
    font-family: YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
    font-size: max(14px, calc(16 * var(--fluid-px)));
    font-style: normal;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
  }

  .faq-section {
    scroll-margin-top: calc(104 * var(--fluid-px));
  }

  .faq-section h2 {
    margin-bottom: calc(28 * var(--fluid-px));
    font-size: max(14px, calc(32 * var(--fluid-px)));
  }

  .faq-content {
    gap: calc(96 * var(--fluid-px));
  }

  .faq-question {
    grid-template-columns: calc(32 * var(--fluid-px)) minmax(0, 1fr) calc(
        14 * var(--fluid-px)
      );
    gap: calc(12 * var(--fluid-px));
    padding: calc(25 * var(--fluid-px)) 0;
    font-size: max(16px, calc(14 * var(--fluid-px)));
  }

  .faq-question::before,
  .faq-answer::before {
    width: calc(32 * var(--fluid-px));
    height: calc(32 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
  }

  .faq-answer {
    grid-template-columns: calc(32 * var(--fluid-px)) minmax(0, 1fr);
    gap: calc(12 * var(--fluid-px));
    padding: 0 0 calc(18 * var(--fluid-px));
    font-size: max(16px, calc(13 * var(--fluid-px)));
  }
}

/* Entry page */
.page-entry {
  background: var(--bg);
}

.entry-hero {
  position: relative;
  overflow: hidden;
  background: url("../img/header_bg.webp") center / cover no-repeat;
  color: var(--white);
}

.entry-hero::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    rgba(18, 17, 12, 0.42) 0%,
    rgba(18, 17, 12, 0.12) 54%,
    rgba(18, 17, 12, 0) 100%
  );
  pointer-events: none;
}

.entry-hero__inner {
  position: relative;
  z-index: 1;
  width: min(100%, var(--wide));
  margin-inline: auto;
  padding: calc(190 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(126 * var(--fluid-px));
}

.entry-hero__label {
  margin: 0 0 calc(10 * var(--fluid-px));
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.4;
}

.entry-hero__title {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
}

.entry-hero__desc {
  max-width: calc(720 * var(--fluid-px));
  margin: calc(20 * var(--fluid-px)) 0 calc(28 * var(--fluid-px));
  font-size: calc(18 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
}

.entry-form-section {
  padding: calc(112 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(150 * var(--fluid-px));
}

.entry-form-section__inner {
  width: min(100%, calc(1080 * var(--fluid-px)));
  margin-inline: auto;
}

.entry-form-section__lead {
  display: grid;
  gap: calc(14 * var(--fluid-px));
  margin-bottom: calc(58 * var(--fluid-px));
}

.entry-form-section__label {
  margin: 0;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 600;
  line-height: 1.4;
  color: var(--blue);
}

.entry-form-section__lead h2 {
  margin: 0;
  font-size: calc(42 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.entry-form-section__lead p:last-child {
  max-width: calc(720 * var(--fluid-px));
  margin: 0;
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.8;
}

.entry-form {
  width: 100%;
}

.entry-form__fields {
  border-top: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.16);
}

.entry-form__row {
  display: grid;
  grid-template-columns: calc(260 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(56 * var(--fluid-px));
  align-items: center;
  padding: calc(32 * var(--fluid-px)) 0;
  border-bottom: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.16);
}

.entry-form__row--textarea {
  align-items: flex-start;
}

.entry-form__row--agree {
  align-items: flex-start;
}

.entry-form__label {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--fluid-px)) calc(12 * var(--fluid-px));
  align-items: center;
  color: var(--black);
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.5;
}

.entry-form__required {
  display: inline-grid;
  place-items: center;
  min-width: calc(42 * var(--fluid-px));
  min-height: calc(22 * var(--fluid-px));
  padding: calc(3 * var(--fluid-px)) calc(9 * var(--fluid-px));
  border-radius: calc(999 * var(--fluid-px));
  background: linear-gradient(101deg, var(--blue) 0%, var(--aqua) 100%);
  color: var(--white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.entry-form__control {
  min-width: 0;
}

.entry-form input[type="text"],
.entry-form input[type="email"],
.entry-form input[type="tel"],
.entry-form input[type="url"],
.entry-form select,
.entry-form textarea {
  width: 100%;
  min-height: calc(62 * var(--fluid-px));
  padding: calc(16 * var(--fluid-px)) calc(18 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.18);
  border-radius: calc(4 * var(--fluid-px));
  background: var(--white);
  color: var(--black);
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 500;
  line-height: 1.5;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.entry-form select {
  padding-right: calc(46 * var(--fluid-px));
  background-image:
    linear-gradient(45deg, transparent 50%, var(--blue) 50%),
    linear-gradient(135deg, var(--blue) 50%, transparent 50%);
  background-position:
    calc(100% - calc(23 * var(--fluid-px))) 50%,
    calc(100% - calc(16 * var(--fluid-px))) 50%;
  background-size:
    calc(7 * var(--fluid-px)) calc(7 * var(--fluid-px)),
    calc(7 * var(--fluid-px)) calc(7 * var(--fluid-px));
  background-repeat: no-repeat;
}

.entry-form textarea {
  min-height: calc(180 * var(--fluid-px));
  resize: vertical;
}

.entry-form input:focus,
.entry-form select:focus,
.entry-form textarea:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 calc(3 * var(--fluid-px)) rgba(52, 152, 219, 0.18);
}

.entry-form__choices {
  display: flex;
  flex-wrap: wrap;
  gap: calc(18 * var(--fluid-px)) calc(34 * var(--fluid-px));
}

.entry-form__choices label,
.entry-form__agree {
  display: inline-flex;
  gap: calc(10 * var(--fluid-px));
  align-items: center;
  color: var(--black);
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.6;
}

.entry-form input[type="radio"],
.entry-form input[type="checkbox"] {
  flex: 0 0 auto;
  width: calc(20 * var(--fluid-px));
  height: calc(20 * var(--fluid-px));
  accent-color: var(--blue);
}

.entry-form__agree {
  align-items: flex-start;
}

.entry-form__agree a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.entry-form__submit {
  display: flex;
  justify-content: center;
  margin-top: calc(58 * var(--fluid-px));
}

.entry-form__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(42 * var(--fluid-px));
  border: 0;
  border-radius: 999px;
  background: var(--black);
  color: var(--white);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
}

.entry-form__button::before {
  position: absolute;
  left: 50%;
  top: 100%;
  z-index: -1;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.2);
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

.entry-form__button:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(0, 229, 195, 0.7);
  outline-offset: calc(4 * var(--fluid-px));
}

.entry-form__button-label,
.entry-complete-button__label {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
}

.entry-form__button-label-inner,
.entry-complete-button__label-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

.entry-form__button-label-def,
.entry-form__button-label-hover,
.entry-complete-button__label-def,
.entry-complete-button__label-hover {
  display: block;
  height: 1.4em;
}

.entry-form__button svg,
.entry-complete-button--primary svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}

@media (hover: hover) {
  .page-entry .entry-form__button:hover::before {
    top: 50%;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .page-entry .entry-form__button:hover .entry-form__button-label-inner {
    transform: translateY(-50%);
  }

  .page-entry .entry-form__button:hover svg {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  .entry-hero__inner {
    padding: calc(154 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(110 * var(--fluid-px));
  }

  .entry-form-section {
    padding: calc(84 * var(--fluid-px)) calc(24 * var(--fluid-px))
      calc(130 * var(--fluid-px));
  }

  .entry-form__row {
    grid-template-columns: 1fr;
    gap: calc(16 * var(--fluid-px));
    padding: calc(28 * var(--fluid-px)) 0;
  }

  .entry-form-section__lead {
    margin-bottom: calc(44 * var(--fluid-px));
  }
}

@media (max-width: 899px) {
  .entry-hero__inner {
    padding: calc(136 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(86 * var(--fluid-px));
  }

  .entry-hero__label {
    font-size: calc(18 * var(--fluid-px));
  }

  .entry-hero__title {
    font-size: calc(34 * var(--fluid-px));
  }

  .entry-hero__desc {
    font-size: calc(15 * var(--fluid-px));
  }

  .entry-form-section {
    padding: calc(64 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(112 * var(--fluid-px));
  }

  .entry-form-section__lead h2 {
    font-size: calc(30 * var(--fluid-px));
  }

  .entry-form-section__lead p:last-child {
    font-size: calc(14 * var(--fluid-px));
  }

  .entry-form__label,
  .entry-form__choices label,
  .entry-form__agree {
    font-size: calc(14 * var(--fluid-px));
  }

  .entry-form input[type="text"],
  .entry-form input[type="email"],
  .entry-form input[type="tel"],
  .entry-form input[type="url"],
  .entry-form select,
  .entry-form textarea {
    min-height: calc(56 * var(--fluid-px));
    padding: calc(14 * var(--fluid-px)) calc(15 * var(--fluid-px));
    font-size: calc(15 * var(--fluid-px));
  }

  .entry-form__choices {
    flex-direction: column;
    gap: calc(12 * var(--fluid-px));
  }

  .entry-form__submit {
    justify-content: stretch;
    margin-top: calc(42 * var(--fluid-px));
  }
}

/* Entry page supplied design */
.page-entry .entry-hero__inner {
  width: 100%;
  max-width: none;
  padding: calc(200 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(156 * var(--fluid-px));
}

.page-entry .entry-hero__label {
  margin-bottom: calc(10 * var(--fluid-px));
  font-size: calc(20 * var(--fluid-px));
}

.page-entry .entry-hero__title {
  font-size: calc(48 * var(--fluid-px));
  line-height: 1.45;
}

.page-entry .entry-hero__breadcrumb {
  margin-top: calc(38 * var(--fluid-px));
}

.page-entry .entry-form-section {
  padding: calc(181 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(234 * var(--fluid-px));
  background: var(--bg);
}

.page-entry .entry-form-section__inner {
  width: min(100%, calc(1000 * var(--fluid-px)));
}

.page-entry .entry-form-section__lead {
  display: block;
  margin-bottom: calc(68 * var(--fluid-px));
  text-align: center;
}

.page-entry .entry-form-section__lead h2 {
  margin: 0 0 calc(38 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(42 * var(--fluid-px));
  line-height: 1.45;
}

.page-entry .entry-form-section__lead p:last-child {
  max-width: none;
  margin: 0;
  color: var(--black);
  font-size: max(16px, calc(15 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.8;
}

.page-entry .entry-form__fields {
  display: grid;
  gap: calc(40 * var(--fluid-px));
  border-top: 0;
}

.page-entry .entry-form__row {
  display: grid;
  grid-template-columns: calc(170 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(34 * var(--fluid-px));
  align-items: center;
  padding: 0;
  border-bottom: 0;
}

.page-entry .entry-form__label {
  gap: max(4px, calc(4 * var(--fluid-px)));
  align-items: flex-start;
  font-size: max(16px, calc(14 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.6;
}

.page-entry .entry-form__label--required > span:first-child {
  display: inline-flex;
  align-items: flex-start;
  white-space: nowrap;
}

.page-entry .entry-form__label--required > span:first-child::after {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  margin-left: 4px;
  border-radius: 50%;
  background: #ff001e;
  transform: translateY(5px);
}

.page-entry .entry-form__asterisk {
  display: none;
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  margin-top: 5px;
  border-radius: 50%;
  background: #ff001e;
  font-size: 0;
}

.page-entry .entry-form input[type="text"],
.page-entry .entry-form input[type="email"],
.page-entry .entry-form input[type="tel"],
.page-entry .entry-form select,
.page-entry .entry-form textarea {
  min-height: calc(70 * var(--fluid-px));
  padding: calc(20 * var(--fluid-px)) calc(24 * var(--fluid-px));
  border: 0;
  border-radius: 0;
  background-color: var(--white);
  color: var(--black);
  font-size: max(16px, calc(14 * var(--fluid-px)));
  font-weight: 500;
}

.page-entry .entry-form input::placeholder,
.page-entry .entry-form textarea::placeholder {
  color: #c8ced5;
  opacity: 1;
}

.page-entry .entry-form select {
  appearance: none;
  padding-right: calc(58 * var(--fluid-px));
  color: #c8ced5;
  background-image: url("data:image/svg+xml,%3Csvg width='18' height='10' viewBox='0 0 18 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L9 9L17 1' stroke='%238f969e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right calc(24 * var(--fluid-px)) center;
  background-size: calc(18 * var(--fluid-px)) calc(10 * var(--fluid-px));
}

.page-entry .entry-form select:valid {
  color: var(--black);
}

.page-entry .entry-form__row--file {
  /* min-height: calc(70 * var(--fluid-px)); */
  align-items: start;
}

.page-entry .entry-form__row--message {
  align-items: start;
}

.page-entry .entry-form__file {
  display: flex;
  min-width: 0;
  min-height: calc(30 * var(--fluid-px));
  align-items: flex-start;
  color: var(--black);
  font-size: max(16px, calc(16 * var(--fluid-px)));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.page-entry .entry-form__file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  opacity: 0;
}

.page-entry .entry-form__file-button {
  display: inline-flex;
  flex: 0 0 auto;
  min-width: calc(123 * var(--fluid-px));
  min-height: calc(30 * var(--fluid-px));
  align-items: center;
  justify-content: center;
  padding: 1px calc(6 * var(--fluid-px));
  border: 1px solid var(--black);
  border-radius: 0;
  background: #efefef;
  color: var(--black);
  cursor: pointer;
}

.page-entry .entry-form__file-name {
  display: block;
  min-width: 0;
  margin-left: calc(4 * var(--fluid-px));
  overflow: hidden;
  color: var(--black);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page-entry .entry-form__file-input:focus-visible + .entry-form__file-button {
  outline: 2px solid rgba(52, 152, 219, 0.32);
  outline-offset: 3px;
}

.page-entry .entry-form__row--message textarea {
  display: block;
  height: calc(300 * var(--fluid-px));
  min-height: calc(300 * var(--fluid-px));
  resize: vertical;
}

.page-entry .entry-form__agree {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: max(12px, calc(12 * var(--fluid-px)));
  width: fit-content;
  margin: calc(84 * var(--fluid-px)) auto 0;
  color: var(--black);
  font-size: max(16px, calc(16 * var(--fluid-px)));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
  cursor: pointer;
}

.page-entry .entry-form input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 max(24px, calc(24 * var(--fluid-px)));
  width: max(24px, calc(24 * var(--fluid-px)));
  height: max(24px, calc(24 * var(--fluid-px)));
  margin: 0;
  border: 1px solid var(--blue);
  border-radius: 0;
  background-color: var(--white);
  background-position: center;
  background-repeat: no-repeat;
  background-size: max(14px, calc(14 * var(--fluid-px)))
    max(10px, calc(10 * var(--fluid-px)));
  box-shadow: none;
  cursor: pointer;
}

.page-entry .entry-form input[type="checkbox"]:checked {
  background-color: var(--blue);
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='10' viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.8L5.5 9L13 1' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.page-entry .entry-form input[type="checkbox"]:focus {
  box-shadow: none;
}

.page-entry .entry-form input[type="checkbox"]:focus-visible {
  outline: 2px solid rgba(52, 152, 219, 0.32);
  outline-offset: 3px;
}

.page-entry .entry-form__agree a {
  font-weight: inherit;
  text-decoration-thickness: from-font;
  text-underline-offset: auto;
}

.page-entry .entry-form__notice {
  margin: calc(34 * var(--fluid-px)) 0 0;
  color: #ff001e;
  font-size: max(16px, calc(14 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
}

.page-entry .entry-form__submit {
  justify-content: center;
  margin-top: calc(40 * var(--fluid-px));
}

.page-entry .entry-form__button {
  gap: 60px;
  padding: 24px 40px;
  border-radius: 999px;
  background: var(--black);
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.page-entry .entry-form__button:focus-visible {
  outline-color: rgba(52, 152, 219, 0.72);
}

/* reCAPTCHA v3のバッジは非表示にし、代わりに送信ボタン下へ
   Googleポリシー必須の注記（.recaptcha-note）を表示する */
.grecaptcha-badge {
  visibility: hidden;
}

.recaptcha-note {
  margin-top: 24px;
  font-size: 11px;
  line-height: 1.5;
  color: #999;
}

@media (min-width: 900px) {
  .recaptcha-note {
    text-align: center;
  }
}

.recaptcha-note a {
  color: inherit;
  text-decoration: underline;
}

.entry-complete-section {
  padding: calc(150 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(180 * var(--fluid-px));
  background: var(--bg);
}

.entry-complete-section__inner {
  width: min(100%, calc(1000 * var(--fluid-px)));
  margin-inline: auto;
}

.entry-complete-panel {
  display: grid;
  justify-items: center;
  padding: calc(78 * var(--fluid-px)) calc(72 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
  text-align: center;
}

.entry-complete-panel__mark {
  display: grid;
  place-items: center;
  width: calc(96 * var(--fluid-px));
  height: calc(96 * var(--fluid-px));
  margin-bottom: calc(34 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.35);
  border-radius: 50%;
  background: rgba(52, 152, 219, 0.06);
  color: var(--blue);
}

.entry-complete-panel__mark svg {
  width: calc(42 * var(--fluid-px));
  height: auto;
}

.entry-complete-panel__label {
  margin: 0 0 calc(10 * var(--fluid-px));
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(18 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.5;
}

.entry-complete-panel h2 {
  margin: 0;
  color: var(--black);
  font-size: calc(42 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.45;
}

.entry-complete-panel__text {
  margin: calc(28 * var(--fluid-px)) 0 0;
  color: var(--black);
  font-size: calc(17 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.9;
}

.entry-complete-panel__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(16 * var(--fluid-px));
  margin-top: calc(54 * var(--fluid-px));
}

.entry-complete-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(28 * var(--fluid-px));
  border-radius: calc(70 * var(--fluid-px));
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 700;
  line-height: 1.4;
  overflow: hidden;
  isolation: isolate;
  transition:
    background 180ms ease,
    border-color 180ms ease,
    color 180ms ease;
}

.entry-complete-button--primary::before {
  position: absolute;
  left: 50%;
  top: 100%;
  z-index: -1;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.2);
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

.entry-complete-button--primary {
  background: var(--black);
  color: var(--white);
  gap: 60px;
  padding: 24px 40px;
  border-radius: 999px;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.entry-complete-button--secondary {
  min-width: calc(260 * var(--fluid-px));
  min-height: calc(64 * var(--fluid-px));
  padding: 0 calc(34 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.4);
  background: var(--white);
  color: var(--blue);
}

.entry-complete-button:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(52, 152, 219, 0.72);
  outline-offset: calc(4 * var(--fluid-px));
}

.not-found-code {
  margin: 0 0 calc(12 * var(--fluid-px));
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(112 * var(--fluid-px));
  font-weight: 600;
  line-height: 1;
}

.page-not-found .entry-complete-panel__text {
  max-width: calc(700 * var(--fluid-px));
}

@media (hover: hover) {
  .entry-complete-button--primary:hover::before {
    top: 50%;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .entry-complete-button--primary:hover .entry-complete-button__label-inner {
    transform: translateY(-50%);
  }

  .entry-complete-button--primary:hover svg {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  .page-entry .header__inner {
    padding: calc(13 * var(--fluid-px)) calc(10 * var(--fluid-px)) 0;
  }

  .page-entry .header__logo img {
    width: calc(118 * var(--fluid-px));
  }

  .page-entry .header__nav {
    gap: calc(55 * var(--fluid-px));
  }

  .page-entry .btn-entry {
    width: calc(67 * var(--fluid-px));
    height: calc(34 * var(--fluid-px));
    font-size: calc(11 * var(--fluid-px));
  }

  .page-entry .entry-hero__inner {
    padding: calc(146 * var(--fluid-px)) calc(10 * var(--fluid-px))
      calc(147 * var(--fluid-px));
  }

  .page-entry .entry-hero__label {
    margin-bottom: calc(4 * var(--fluid-px));
    font-size: calc(13 * var(--fluid-px));
    line-height: 1.5;
  }

  .page-entry .entry-hero__title {
    font-size: calc(24 * var(--fluid-px));
    line-height: 1.45;
  }

  .page-entry .entry-hero__breadcrumb {
    margin-top: calc(22 * var(--fluid-px));
    padding: calc(4 * var(--fluid-px)) calc(11 * var(--fluid-px));
    font-size: calc(10 * var(--fluid-px));
  }

  .page-entry .entry-form-section {
    padding: calc(88 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(172 * var(--fluid-px));
  }

  .page-entry .entry-form-section__lead {
    margin-bottom: calc(96 * var(--fluid-px));
    text-align: left;
  }

  .page-entry .entry-form-section__lead h2 {
    margin-bottom: calc(20 * var(--fluid-px));
    font-size: calc(26 * var(--fluid-px));
    line-height: 1.45;
  }

  .page-entry .entry-form-section__lead p:last-child {
    font-size: max(16px, calc(12 * var(--fluid-px)));
    line-height: 1.7;
  }

  .page-entry .entry-form__fields {
    gap: calc(40 * var(--fluid-px));
  }

  .page-entry .entry-form__row {
    grid-template-columns: 1fr;
    gap: calc(12 * var(--fluid-px));
  }

  .page-entry .entry-form__label {
    font-size: max(16px, calc(12 * var(--fluid-px)));
    line-height: 1.6;
  }

  .page-entry .entry-form__asterisk {
    flex-basis: 6px;
    width: 6px;
    height: 6px;
    margin-top: 5px;
  }

  .page-entry .entry-form input[type="text"],
  .page-entry .entry-form input[type="email"],
  .page-entry .entry-form input[type="tel"],
  .page-entry .entry-form select,
  .page-entry .entry-form textarea {
    min-height: calc(69 * var(--fluid-px));
    padding: calc(21 * var(--fluid-px)) calc(16 * var(--fluid-px));
    font-size: max(16px, calc(11 * var(--fluid-px)));
  }

  .page-entry .entry-form select {
    padding-right: calc(46 * var(--fluid-px));
    background-position: right calc(17 * var(--fluid-px)) center;
    background-size: calc(15 * var(--fluid-px)) calc(9 * var(--fluid-px));
  }

  .page-entry .entry-form__row--file {
    min-height: calc(74 * var(--fluid-px));
    gap: calc(12 * var(--fluid-px));
  }

  .page-entry .entry-form__file {
    min-height: calc(37 * var(--fluid-px));
    align-items: center;
    font-size: max(16px, calc(16 * var(--fluid-px)));
  }

  .page-entry .entry-form__file-button {
    min-width: calc(144 * var(--fluid-px));
    min-height: calc(37 * var(--fluid-px));
    padding: 0 calc(14 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
  }

  .page-entry .entry-form__file-name {
    margin-left: calc(4 * var(--fluid-px));
  }

  .page-entry .entry-form__row--message textarea {
    height: calc(320 * var(--fluid-px));
    min-height: calc(320 * var(--fluid-px));
    padding: calc(31 * var(--fluid-px)) calc(30 * var(--fluid-px));
  }

  .page-entry .entry-form__agree {
    margin-top: calc(80 * var(--fluid-px));
    font-size: max(16px, calc(16 * var(--fluid-px)));
  }

  .page-entry .entry-form input[type="checkbox"] {
    flex-basis: max(24px, calc(24 * var(--fluid-px)));
    width: max(24px, calc(24 * var(--fluid-px)));
    height: max(24px, calc(24 * var(--fluid-px)));
  }

  .page-entry .entry-form__notice {
    margin-top: calc(34 * var(--fluid-px));
    font-size: max(16px, calc(12 * var(--fluid-px)));
    line-height: 1.75;
  }

  .page-entry .entry-form__submit {
    justify-content: center;
    /* margin-top: calc(65 * var(--fluid-px)); */
  }

  .page-entry .entry-form__button {
    padding: 24px 40px;
    font-size: 20px;
    letter-spacing: 0.1em;
  }

  .entry-complete-section {
    padding: calc(88 * var(--fluid-px)) calc(10 * var(--fluid-px))
      calc(120 * var(--fluid-px));
  }

  .entry-complete-panel {
    padding: calc(52 * var(--fluid-px)) calc(28 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
  }

  .entry-complete-panel__mark {
    width: calc(76 * var(--fluid-px));
    height: calc(76 * var(--fluid-px));
    margin-bottom: calc(28 * var(--fluid-px));
  }

  .entry-complete-panel__mark svg {
    width: calc(34 * var(--fluid-px));
  }

  .entry-complete-panel__label {
    font-size: calc(14 * var(--fluid-px));
  }

  .entry-complete-panel h2 {
    font-size: calc(26 * var(--fluid-px));
  }

  .entry-complete-panel__text {
    margin-top: calc(22 * var(--fluid-px));
    font-size: calc(13 * var(--fluid-px));
    line-height: 1.8;
  }

  .entry-complete-panel__actions {
    display: grid;
    width: 100%;
    gap: calc(14 * var(--fluid-px));
    margin-top: calc(40 * var(--fluid-px));
  }

  .entry-complete-button {
    gap: calc(18 * var(--fluid-px));
  }

  .entry-complete-button--primary {
    gap: 60px;
    padding: 24px 40px;
    font-size: 20px;
    letter-spacing: 0.1em;
  }

  .entry-complete-button--secondary {
    width: 100%;
    min-width: 0;
    min-height: calc(56 * var(--fluid-px));
    padding: 0 calc(24 * var(--fluid-px));
    font-size: calc(13 * var(--fluid-px));
  }

  .not-found-code {
    margin-bottom: calc(10 * var(--fluid-px));
    font-size: calc(72 * var(--fluid-px));
  }
}

/* Top interview slide */
.t-slide {
  position: relative;
  isolation: isolate;
  min-height: 320svh;
  padding: 0 calc(48 * var(--fluid-px));
  background: var(--t-slide-bg);
  color: var(--white);
}

.t-slide::before {
  position: sticky;
  z-index: 0;
  top: 0;
  display: block;
  width: calc(100% + calc(96 * var(--fluid-px)));
  height: 100svh;
  margin-right: calc(-48 * var(--fluid-px));
  margin-bottom: -100svh;
  margin-left: calc(-48 * var(--fluid-px));
  content: "";
  background: var(--t-slide-bg);
  pointer-events: none;
}

.t-slide__inner {
  position: sticky;
  z-index: 1;
  top: var(--t-slide-sticky-top, 0);
  width: min(100%, calc(1200 * var(--fluid-px)));
  min-height: 100svh;
  margin-inline: auto;
  padding: calc(174 * var(--fluid-px)) 0 calc(188 * var(--fluid-px));
}

.t-slide__heading {
  position: relative;
  z-index: 2;
}

.t-slide__kicker {
  display: flex;
  align-items: baseline;
  gap: calc(32 * var(--fluid-px));
  margin: 0;
  color: var(--white);
  font-weight: 700;
  line-height: 1.35;
}

.t-slide__kicker-ja {
  font-size: calc(46 * var(--fluid-px));
  letter-spacing: 0;
}

.t-slide__kicker-en {
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  letter-spacing: 0.1em;
}

.t-slide__title {
  margin: calc(76 * var(--fluid-px)) 0 calc(42 * var(--fluid-px));
  color: var(--white);
  font-size: calc(86 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
}

.page-home .t-slide__title {
  margin: calc(64 * var(--fluid-px)) 0 calc(34 * var(--fluid-px));
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 5.787037037vw;
  line-height: 1.2;
  letter-spacing: 0.2314814815vw;
}

.page-home .t-slide__title span {
  display: inline;
}

.t-slide__lead {
  margin: 0;
  color: var(--white);
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.page-home .t-slide__lead {
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: 1.3888888889vw;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.t-slide__slider {
  --t-slide-card-height: calc(588 * var(--fluid-px));
  position: relative;
  z-index: 2;
  margin-top: calc(64 * var(--fluid-px));
}

.t-slide__track {
  position: relative;
  height: var(--t-slide-card-height);
  border-radius: calc(20 * var(--fluid-px));
  overflow: hidden;
  isolation: isolate;
}

.t-slide__item {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: var(--t-slide-card-height);
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  will-change: transform;
}

.t-slide__item:nth-child(1) {
  z-index: 1;
  transform: translate3d(0, 0, 0);
}

.t-slide__item:nth-child(2) {
  z-index: 2;
}

.t-slide__item:nth-child(3) {
  z-index: 3;
}

.t-slide__item.is-active {
  pointer-events: auto;
}

.t-slide__card {
  position: relative;
  display: grid;
  grid-template-columns: calc(328 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(80 * var(--fluid-px));
  height: 100%;
  min-height: calc(588 * var(--fluid-px));
  padding: calc(60 * var(--fluid-px)) calc(60 * var(--fluid-px))
    calc(60 * var(--fluid-px)) calc(80 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--black);
  color: var(--white);
  cursor: pointer;
  transition:
    transform 0.45s cubic-bezier(0.19, 1, 0.22, 1),
    box-shadow 0.45s cubic-bezier(0.19, 1, 0.22, 1);
}

.t-slide__image {
  align-self: center;
  width: calc(328 * var(--fluid-px));
  height: calc(468 * var(--fluid-px));
  overflow: hidden;
  background: #d9d9d9;
}

.t-slide__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.65s cubic-bezier(0.19, 1, 0.22, 1);
}

.t-slide__content {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.t-slide__number {
  margin: calc(6 * var(--fluid-px)) 0 0;
  padding-bottom: calc(22 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid rgba(255, 255, 255, 0.82);
  color: var(--white);
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.1em;
}

.t-slide__copy {
  margin: calc(28 * var(--fluid-px)) 0 calc(26 * var(--fluid-px));
  background: linear-gradient(101deg, var(--blue) 0%, var(--aqua) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: calc(62 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.34;
  letter-spacing: 0;
}

.t-slide__position {
  width: fit-content;
  max-width: min(100%, calc(520 * var(--fluid-px)));
  margin: 0 0 calc(18 * var(--fluid-px));
  padding: calc(8 * var(--fluid-px)) calc(14 * var(--fluid-px));
  border-radius: calc(6 * var(--fluid-px));
  background: rgba(255, 255, 255, 0.22);
  color: var(--white);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: 0.1em;
}

.t-slide__name {
  margin: 0;
  color: var(--white);
  font-family: "Poppins", YakuHanJP, "Noto Sans JP", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.t-slide__card-link {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: block;
  width: auto;
  height: auto;
  border-radius: inherit;
  background: transparent;
  color: var(--white);
  text-decoration: none;
  overflow: visible;
  isolation: isolate;
  transition: color 180ms ease;
}

.t-slide__card-link::before,
.t-slide__card-link::after {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(80 * var(--fluid-px));
  height: calc(80 * var(--fluid-px));
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.t-slide__card-link::before {
  z-index: 0;
  background: var(--blue);
}

.t-slide__card-link::after {
  z-index: 1;
  background: var(--white);
  opacity: 0;
  transition: opacity 220ms ease;
}

.t-slide__card-link svg {
  position: absolute;
  right: calc(32 * var(--fluid-px));
  bottom: calc(32 * var(--fluid-px));
  z-index: 2;
  width: calc(16 * var(--fluid-px));
  height: calc(16 * var(--fluid-px));
  pointer-events: none;
  transition: transform 180ms ease;
}

.t-slide__pagination {
  position: absolute;
  top: 50%;
  right: calc(-44 * var(--fluid-px));
  display: grid;
  gap: calc(14 * var(--fluid-px));
  transform: translateY(-50%);
}

.t-slide__dot {
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--white);
  cursor: pointer;
}

.t-slide__dot.is-active {
  outline: calc(2 * var(--fluid-px)) solid var(--white);
  outline-offset: calc(4 * var(--fluid-px));
  background: var(--white);
}

.t-slide__button {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  margin: calc(60 * var(--fluid-px)) 0 0 auto;
  padding: 24px 40px;
  border-radius: 999px;
  background: var(--black);
  color: var(--white);
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  overflow: hidden;
  isolation: isolate;
}

/* aisaac風ホバー：下から円がせり上がって青く塗りつぶす（黒→青） */
.t-slide__button::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  transform: translate(-50%, -50%) scale(0.2);
  opacity: 0;
  z-index: -1;
  pointer-events: none;
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

/* aisaac風ホバー：ラベルが上へスライドして切り替わる */
.t-slide__button-label {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
}

.t-slide__button-label-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

.t-slide__button-label-def,
.t-slide__button-label-hover {
  display: block;
  height: 1.4em;
}

.t-slide__button svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.t-slide__card-link:focus-visible,
.t-slide__dot:focus-visible,
.t-slide__button:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(255, 255, 255, 0.8);
  outline-offset: calc(5 * var(--fluid-px));
}

@media (hover: hover) {
  .t-slide__card:hover .t-slide__card-link {
    color: var(--blue);
  }

  .t-slide__card:hover .t-slide__card-link::after {
    opacity: 1;
  }

  .t-slide__card:hover .t-slide__card-link svg,
  .t-slide__card-link:hover svg {
    transform: rotate(45deg);
  }

  .t-slide__button:hover::before {
    top: 50%;
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }

  .t-slide__button:hover .t-slide__button-label-inner {
    transform: translateY(-50%);
  }

  .t-slide__button:hover svg {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  .t-slide {
    --t-slide-sp-px: min(1px, var(--sp-vw-px));
    min-height: 340svh;
    padding: 0 calc(20 * var(--t-slide-sp-px));
  }

  .t-slide::before {
    width: calc(100% + calc(40 * var(--t-slide-sp-px)));
    margin-right: calc(-20 * var(--t-slide-sp-px));
    margin-left: calc(-20 * var(--t-slide-sp-px));
  }

  .t-slide__inner {
    width: 100%;
    padding: calc(120 * var(--t-slide-sp-px)) 0;
  }

  .t-slide__kicker {
    flex-direction: column-reverse;
    gap: calc(10 * var(--t-slide-sp-px));
  }

  .t-slide__kicker-en {
    font-size: calc(22 * var(--t-slide-sp-px));
  }

  .t-slide__title {
    margin: calc(32 * var(--t-slide-sp-px)) 0 calc(34 * var(--t-slide-sp-px));
    font-size: calc(54 * var(--t-slide-sp-px));
    line-height: 1.35;
  }

  .page-home .t-slide__title span {
    display: block;
  }

  .t-slide__lead {
    font-size: calc(17 * var(--t-slide-sp-px));
    line-height: 1.75;
  }

  .t-slide__slider {
    --t-slide-card-height: calc(826 * var(--t-slide-sp-px));
    margin-top: calc(40 * var(--t-slide-sp-px));
  }

  /*
   * SPではカードがトラックより狭い（中央寄せ）ため、トラック幅をカード幅に合わせて
   * 密着させる。こうしないとスライド遷移中、はみ出したカード下端がトラックの
   * 角丸クリップの外側で直角に切れ、2・3枚目の下角丸が消える。
   */
  .t-slide__track {
    width: min(100%, calc(360 * var(--t-slide-sp-px)));
    margin-inline: auto;
  }

  .t-slide__card {
    display: grid;
    grid-template-columns: 1fr;
    width: min(100%, calc(360 * var(--t-slide-sp-px)));
    min-height: calc(826 * var(--t-slide-sp-px));
    margin-inline: auto;
    padding: calc(42 * var(--t-slide-sp-px)) calc(20 * var(--t-slide-sp-px))
      calc(38 * var(--t-slide-sp-px));
    gap: 0;
    border-radius: calc(20 * var(--t-slide-sp-px));
  }

  .t-slide__content {
    display: contents;
  }

  .t-slide__number {
    order: 1;
    margin: 0;
    padding-bottom: calc(22 * var(--t-slide-sp-px));
    font-size: calc(22 * var(--t-slide-sp-px));
  }

  .t-slide__copy {
    order: 2;
    margin: calc(24 * var(--t-slide-sp-px)) 0 calc(38 * var(--t-slide-sp-px));
    font-size: calc(32 * var(--t-slide-sp-px));
    line-height: 1.42;
  }

  .t-slide__image {
    order: 3;
    width: calc(260 * var(--t-slide-sp-px));
    height: calc(369 * var(--t-slide-sp-px));
    margin: 0 auto calc(24 * var(--t-slide-sp-px));
  }

  .t-slide__position {
    order: 4;
    max-width: 100%;
    margin: 0 0 calc(24 * var(--t-slide-sp-px));
    padding: calc(7 * var(--t-slide-sp-px)) calc(12 * var(--t-slide-sp-px));
    border-radius: calc(6 * var(--t-slide-sp-px));
    font-size: calc(14 * var(--t-slide-sp-px));
    line-height: 1.6;
  }

  .t-slide__name {
    order: 5;
    font-size: calc(16 * var(--t-slide-sp-px));
  }

  .t-slide__card-link {
    display: block;
  }

  .t-slide__card-link::before,
  .t-slide__card-link::after,
  .t-slide__card-link svg {
    display: none;
  }

  .t-slide__pagination {
    top: 50%;
    right: calc(8 * var(--t-slide-sp-px));
    gap: calc(13 * var(--t-slide-sp-px));
  }

  .t-slide__dot {
    width: calc(10 * var(--t-slide-sp-px));
    height: calc(10 * var(--t-slide-sp-px));
  }

  .t-slide__button {
    margin: calc(40 * var(--t-slide-sp-px)) auto 0;
  }
}

@media (max-width: 899px) {
  .t-slide {
    min-height: 360svh;
    padding: 0 calc(20 * var(--t-slide-sp-px));
  }

  .t-slide__inner {
    padding: calc(124 * var(--t-slide-sp-px)) 0 calc(116 * var(--t-slide-sp-px));
  }

  .t-slide__kicker-ja {
    font-size: calc(30 * var(--t-slide-sp-px));
  }

  .t-slide__title {
    font-size: calc(52 * var(--t-slide-sp-px));
  }

  .t-slide__lead {
    font-size: calc(17 * var(--t-slide-sp-px));
  }
}

/* ================================================================
   index.html（トップページ）専用スタイル
   ※ 旧 index.html の <style> ブロックから移設。使用クラスはトップ専用。
   ================================================================ */
/* ========== ローディング ========== */
body.is-loading {
  overflow: hidden;
}

html.skip-home-loader body.is-loading {
  overflow: auto;
}

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #000;
  background: #fff;
  transition:
    transform 1100ms cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 1100ms;
  will-change: transform;
}

html.skip-home-loader .page-loader {
  display: none;
}

.page-loader::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: calc(1 * var(--fluid-px));
  content: "";
  background: rgba(0, 0, 0, 0.08);
  box-shadow: 0 calc(18 * var(--fluid-px)) calc(50 * var(--fluid-px))
    rgba(0, 0, 0, 0.08);
}

.page-loader.is-lift {
  visibility: hidden;
  transform: translate3d(0, -101%, 0);
  pointer-events: none;
}

.page-loader__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.page-loader__progress {
  position: relative;
  width: min(80vw, calc(500 * var(--fluid-px)));
  height: calc(4 * var(--fluid-px));
  overflow: hidden;
  background: #e9edf2;
}

.page-loader__progress-bar {
  position: absolute;
  inset: 0;
  display: block;
  background: linear-gradient(90deg, #3498db 0%, #00e5c3 100%);
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}

.page-loader__percent {
  margin-top: calc(25 * var(--fluid-px));
  font-family: "Poppins", sans-serif;
  font-size: max(14px, calc(16 * var(--fluid-px)));
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.1em;
}

@media (prefers-reduced-motion: reduce) {
  body.is-loading {
    overflow: auto;
  }

  .page-loader {
    display: none;
  }
}

/* ========== ヒーロー ========== */
.top-hero {
  position: relative;
  isolation: isolate;
  height: 71.875vw;
  min-height: calc(760 * var(--fluid-px));
  overflow: hidden;
  background: url("../img/fv_bg.webp") center / cover no-repeat;
  color: #fff;
}

.top-hero::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  background: url("../img/fv_bg.webp") center / cover no-repeat;
  transform: scale(1.22);
  transform-origin: center center;
  transition: transform 2200ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

body.is-fv-revealed .top-hero::before {
  transform: scale(1);
}

.top-hero__visuals,
.top-hero__content {
  opacity: 0;
  filter: blur(calc(18 * var(--fluid-px)));
  transform: translate3d(0, calc(18 * var(--fluid-px)), 0);
  transition:
    opacity 1350ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1350ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1350ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, filter, transform;
}

body.is-fv-revealed .top-hero__visuals,
body.is-fv-revealed .top-hero__content {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}

.top-hero__visuals {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
}

.top-hero__slider {
  position: absolute;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.18);
  box-shadow: 0 calc(24 * var(--fluid-px)) calc(70 * var(--fluid-px))
    rgba(18, 17, 12, 0.16);
}

.top-hero__slider--01 {
  top: 7.4305555556vw;
  left: 0;
  width: 25vw;
  aspect-ratio: 720 / 890;
}

.top-hero__slider--02 {
  top: 0;
  left: 28.9583333333vw;
  width: 22.6388888889vw;
  aspect-ratio: 652 / 736;
}

.top-hero__slider--03 {
  top: 29.7916666667vw;
  left: 50.7638888889vw;
  width: 11.1111111111vw;
  aspect-ratio: 320 / 200;
}

.top-hero__slider--04 {
  top: 8.3055555556vw;
  right: 0;
  width: 34.7222222222vw;
  aspect-ratio: 1000 / 1220;
}

.top-hero__track {
  display: flex;
  width: 100%;
  height: 100%;
  transform: translate3d(0, 0, 0);
  transition: transform 1500ms cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.top-hero__track.is-resetting {
  transition: none;
}

.top-hero__track img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-hero__content {
  position: absolute;
  z-index: 3;
  top: calc(46.6666666667vw - 5.4722222222vw);
  left: 3.4722222222vw;
  width: 60.4166666667vw;
  color: #fff;
}

.top-hero__title {
  width: 31.9444444444vw;
  margin: 0;
  font-size: min(3.75vw, calc(54 * var(--fluid-px)));
  font-weight: 500;
  line-height: clamp(
    calc(40 * var(--fluid-px)),
    calc(54 * 100vw / 1728),
    calc(58 * var(--fluid-px))
  );
  letter-spacing: clamp(
    calc(1.6 * var(--fluid-px)),
    calc(5.4 * 100vw / 1728),
    calc(6 * var(--fluid-px))
  );
  white-space: nowrap;
  font-feature-settings: "palt";
}

.top-hero__desc {
  width: 39.9444444444vw;
  margin: 1.3888888889vw 0 calc(30 * var(--fluid-px));
  font-size: clamp(
    calc(14 * var(--fluid-px)),
    calc(15 * 100vw / 1728),
    calc(18 * var(--fluid-px))
  );
  font-weight: 500;
  line-height: clamp(
    calc(15 * var(--fluid-px)),
    calc(19.5 * 100vw / 1728),
    calc(22.5 * var(--fluid-px))
  );
  letter-spacing: 0.1em;
  opacity: 0.9;
}

.btn-jobs {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 60px;
  padding: 24px 40px;
  border-radius: 999px;
  background: #12110c;
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  overflow: hidden;
  isolation: isolate;
}

/* aisaac風ホバー：下から円がせり上がって青く塗りつぶす（黒→青） */
.btn-jobs::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  transform: translate(-50%, -50%) scale(0.2);
  opacity: 0;
  z-index: -1;
  pointer-events: none;
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

/* aisaac風ホバー：ラベルが上へスライドして切り替わる */
.btn-jobs__label {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
}

.btn-jobs__label-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

.btn-jobs__label-def,
.btn-jobs__label-hover {
  display: block;
  height: 1.4em;
}

.btn-jobs svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-left: auto;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.2s ease;
}

.btn-jobs:focus-visible {
  outline: calc(3 * var(--fluid-px)) solid rgba(0, 229, 195, 0.7);
  outline-offset: calc(4 * var(--fluid-px));
}

@media (any-hover: hover) {
  .btn-jobs:hover::before {
    top: 50%;
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }

  .btn-jobs:hover .btn-jobs__label-inner {
    transform: translateY(-50%);
  }

  .btn-jobs:hover svg {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  .top-hero {
    height: 100svh;
    min-height: calc(680 * var(--fluid-px));
  }

  .top-hero__slider--01 {
    top: 0;
    left: 2.9333333333vw;
    width: 46.9333333333vw;
  }

  .top-hero__slider--02 {
    top: 6.1333333333vw;
    left: 62.4vw;
    right: auto;
    width: 28.8vw;
  }

  .top-hero__slider--03 {
    top: 88vw;
    left: 6.1333333333vw;
    width: 25.0666666667vw;
  }

  .top-hero__slider--04 {
    top: 52.5333333333vw;
    right: 0;
    width: 61.8666666667vw;
  }

  .top-hero__content {
    top: calc(128.5333333333vw + 6.4vw);
    left: 0;
    width: 100%;
    padding-inline: 5.4%;
  }

  .top-hero__title {
    width: 100%;
    font-size: calc(38 * var(--fluid-px));
    white-space: normal;
  }

  .top-hero__desc {
    width: 100%;
    margin-top: 2.6666666667vw;
  }
}

@media (max-width: 899px) {
  .top-hero {
    height: 247.0588235294vw;
    min-height: 247.0588235294vw;
  }

  .top-hero__slider {
    box-shadow: 0 calc(18 * var(--fluid-px)) calc(44 * var(--fluid-px))
      rgba(18, 17, 12, 0.14);
  }

  .top-hero__content {
    top: calc(128.5333333333vw + 6.4vw);
    left: 0;
    width: 100%;
    padding-inline: 5.5%;
  }

  .top-hero__title {
    font-size: calc(38 * var(--fluid-px));
  }

  .top-hero__desc {
    margin-bottom: calc(20 * var(--fluid-px));
    font-size: 12px;
    line-height: 1.75;
  }
}

/* ========== CEO MESSAGE ========== */
.ceo {
  padding: calc(120 * var(--fluid-px)) 5% calc(160 * var(--fluid-px));
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  margin: 0 auto;
}

.ceo__label {
  font-family: "Poppins", sans-serif;
  font-style: normal;
  font-weight: 600;
  font-size: 3.7037037037vw;
  line-height: 1.2;
  letter-spacing: 0;
  width: fit-content;
  background: linear-gradient(94deg, #3498db 0%, #00e5c3 86.33%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: calc(40 * var(--fluid-px));
}

.ceo__message {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(68 * var(--fluid-px));
  line-height: 1.6;
  letter-spacing: 0;
}

.ceo__message .line {
  --line-clip: 100%;
  display: block;
  position: relative;
  width: fit-content;
  white-space: nowrap;
  color: #cfd6df;
}

.ceo__message .line::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  background: linear-gradient(94.13deg, #3498db 0%, #00e5c3 86.33%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  clip-path: inset(0 var(--line-clip) 0 0);
  will-change: clip-path;
}

.ceo__message .line.is-visible::after {
  clip-path: inset(0 0% 0 0);
}

@media (prefers-reduced-motion: reduce) {
  .ceo__message .line::after {
    clip-path: inset(0 0% 0 0);
  }
}

@media (max-width: 899px) {
  .ceo__label {
    font-size: 9.5454545455vw;
    margin-bottom: calc(42 * var(--fluid-px));
  }

  .ceo__message {
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.8;
  }
}

/* ========== 共通：セクションラベル・グラデ見出し ========== */
.section-label {
  display: flex;
  align-items: baseline;
  gap: calc(12 * var(--fluid-px));
  margin-bottom: calc(24 * var(--fluid-px));
}

.section-label__ja {
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  letter-spacing: 0.1em;
}

.vision .section-label__ja,
.mission .section-label__ja {
  color: #000;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 2.7777777778vw;
  line-height: 1.4;
  letter-spacing: 0.1111111111vw;
}

.section-label__en {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: max(20px, calc(16 * var(--fluid-px)));
  color: #3498db;
  letter-spacing: 0.1em;
}

.gradient-heading {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: calc(72 * var(--fluid-px));
  line-height: 1.4;
  letter-spacing: 0;
  margin-bottom: calc(32 * var(--fluid-px));
  /* グラデ(background-clip:text)は上昇する内側 .home-heading-motion__text の1枚のみに集約。
     親にも掛けると親(静止)と子(transform)で二重描画される(iOS Safari)ため、ここでは掛けない。 */
}

.section-body {
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: #12110c;
}

.home-heading-motion__clip,
.home-heading-motion__line {
  display: block;
  overflow: hidden;
}

.home-heading-motion__text {
  display: inline-block;
}

.home-heading-motion__char {
  display: inline-block;
}

.gradient-heading .home-heading-motion__text,
.home-business__heading h2 .home-heading-motion__text {
  background: linear-gradient(94.13deg, #3498db 0%, #00e5c3 86.33%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.page-home .home-section-label > .home-heading-motion__clip--ja,
.page-home .home-section-label > .home-heading-motion__clip--ja span {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.page-home .t-slide__title .home-heading-motion__line {
  display: inline-block;
}

@media (prefers-reduced-motion: no-preference) {
  .home-heading-motion.is-heading-motion-ready
    .home-heading-motion__title
    .home-heading-motion__text,
  .home-heading-motion.is-heading-motion-ready
    .home-heading-motion__label
    .home-heading-motion__char,
  .home-heading-motion.is-heading-motion-ready.home-heading-motion__label
    .home-heading-motion__char {
    opacity: 0;
    filter: blur(12px);
    transform: translate3d(0, 115%, 0);
    transition:
      opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
      filter 1.1s cubic-bezier(0.22, 1, 0.36, 1),
      transform 1.15s cubic-bezier(0.19, 1, 0.22, 1);
    will-change: opacity, filter, transform;
  }

  .home-heading-motion.is-heading-motion-ready .home-heading-motion__body {
    opacity: 0;
    filter: blur(10px);
    transform: translate3d(0, 24px, 0);
    transition:
      opacity 1s cubic-bezier(0.22, 1, 0.36, 1),
      filter 1.05s cubic-bezier(0.22, 1, 0.36, 1),
      transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--home-heading-body-delay, 940ms);
    will-change: opacity, filter, transform;
  }

  .home-heading-motion.is-heading-motion-visible
    .home-heading-motion__title
    .home-heading-motion__text,
  .home-heading-motion.is-heading-motion-visible
    .home-heading-motion__label
    .home-heading-motion__char,
  .home-heading-motion.is-heading-motion-visible.home-heading-motion__label
    .home-heading-motion__char {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }

  .home-heading-motion.is-heading-motion-visible .home-heading-motion__body {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }

  .home-heading-motion__title
    .home-heading-motion__line:nth-child(1)
    .home-heading-motion__text {
    transition-delay: var(--home-heading-title-delay-1, 640ms);
  }

  .home-heading-motion__title
    .home-heading-motion__line:nth-child(2)
    .home-heading-motion__text {
    transition-delay: var(--home-heading-title-delay-2, 780ms);
  }

  /*
   * iOS Safari対策: background-clip:text の要素に will-change が付くと文字が二重描画される。
   * スライド等の動き(transform/opacity/filter)はそのまま維持し、will-change だけを外す。
   */
  .gradient-heading .home-heading-motion__text,
  .home-business__heading h2 .home-heading-motion__text {
    will-change: auto !important;
  }
}

/* ========== ビジョン ========== */
.vision {
  position: relative;
  isolation: isolate;
  padding: calc(80 * var(--fluid-px)) 5%;
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  margin: 0 auto;
}

.vision::before,
.vision::after,
.mission::before,
.mission::after,
.home-business::before {
  position: absolute;
  z-index: 0;
  width: calc(400 * var(--fluid-px));
  height: calc(400 * var(--fluid-px));
  background: url("../img/bg_deco_w400.webp") center / contain no-repeat;
  content: "";
  pointer-events: none;
}

.vision::before {
  top: calc(-40 * var(--fluid-px));
  right: 0;
}

.vision::after {
  display: none;
}

.vision__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: calc(80 * var(--fluid-px));
}

.vision__img {
  width: 48%;
  flex-shrink: 0;
  border-radius: calc(20 * var(--fluid-px));
  overflow: hidden;
}

.vision__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.vision__text {
  flex: 1;
}

/* ========== ミッション ========== */
.mission {
  position: relative;
  z-index: 0;
  isolation: isolate;
  padding: calc(80 * var(--fluid-px)) 5%;
  max-width: calc(calc(1600 * var(--fluid-px)) + 10%);
  margin: 0 auto;
}

.mission::before {
  top: calc(-37 * var(--fluid-px));
  left: calc(388 * var(--fluid-px));
  width: calc(600 * var(--fluid-px));
  height: calc(600 * var(--fluid-px));
  background-image: url("../img/bg_deco_w600.webp");
}

.mission::after {
  bottom: calc(-200 * var(--fluid-px));
  right: calc(-22 * var(--fluid-px));
}

.mission__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: calc(80 * var(--fluid-px));
}

.mission__text {
  width: 32%;
  flex-shrink: 0;
}

.mission__cards {
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(20 * var(--fluid-px));
}

.mission-card {
  display: flex;
  align-items: center;
  gap: calc(24 * var(--fluid-px));
  background: #fff;
  border-radius: calc(16 * var(--fluid-px));
  padding: calc(28 * var(--fluid-px)) calc(24 * var(--fluid-px));
}

.mission-card__num {
  flex: 0 0 auto;
  font-family: "Poppins", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.3888888889vw;
  line-height: 1.4;
  color: #3498db;
  letter-spacing: 0.1em;
  margin-bottom: 0;
}

.mission-card__text {
  flex: 1 1 auto;
  color: #000;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: 1.3888888889vw;
  line-height: 1.8;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

@media (max-width: 899px) {
  .section-label {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(4 * var(--fluid-px));
    margin-bottom: calc(22 * var(--fluid-px));
  }

  .section-label__en {
    order: -1;
    font-size: calc(20 * var(--fluid-px));
    line-height: 1.4;
  }

  .section-label__ja {
    font-size: calc(24 * var(--fluid-px));
    line-height: 1.4;
  }

  .vision .section-label__ja,
  .mission .section-label__ja {
    font-size: 7.2727272727vw;
    letter-spacing: 0.1em;
  }

  .gradient-heading {
    font-size: calc(46 * var(--fluid-px));
    line-height: 1.25;
    margin-bottom: calc(28 * var(--fluid-px));
  }

  .section-body {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.9;
  }

  .vision {
    padding: calc(60 * var(--fluid-px)) calc(20 * var(--fluid-px));
    max-width: none;
  }

  .vision::before,
  .vision::after,
  .mission::after {
    display: block;
    width: calc(240 * var(--fluid-px));
    height: calc(240 * var(--fluid-px));
    background-image: url("../img/bg_deco_w400.webp");
  }

  .vision::before {
    top: calc(88 * var(--fluid-px));
    right: calc(-88 * var(--fluid-px));
  }

  .vision::after {
    top: calc(690 * var(--fluid-px));
    left: calc(-80 * var(--fluid-px));
  }

  .vision__inner {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: calc(34 * var(--fluid-px));
  }

  .vision__img {
    width: 100%;
    border-radius: calc(8 * var(--fluid-px));
  }

  .vision__img img {
    aspect-ratio: auto;
  }

  .vision__text {
    width: 100%;
  }

  .mission {
    padding: calc(60 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(110 * var(--fluid-px));
    max-width: none;
  }

  .mission::before {
    display: none;
  }

  .mission::after {
    top: calc(807 * var(--fluid-px));
    right: calc(-59 * var(--fluid-px));
  }

  .mission__inner {
    flex-direction: column;
    align-items: stretch;
    gap: calc(34 * var(--fluid-px));
  }

  .mission__text {
    width: 100%;
  }

  .mission__cards {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8181818182vw;
  }

  .mission-card {
    display: flex;
    min-height: calc(86 * var(--fluid-px));
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    border-radius: calc(12 * var(--fluid-px));
    padding: calc(16 * var(--fluid-px)) calc(10 * var(--fluid-px));
    text-align: center;
  }

  .mission-card__num {
    font-size: 3.6363636364vw;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
    margin-bottom: calc(8 * var(--fluid-px));
  }

  .mission-card__text {
    font-size: 3.6363636364vw;
    line-height: 1.8;
    letter-spacing: 0.1em;
    text-align: center;
    white-space: normal;
  }
}

/* Header final alignment */
.header {
  position: fixed;
  isolation: isolate;
}

.header::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 0;
  height: calc(172 * var(--fluid-px));
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.98) 0%,
    rgba(255, 255, 255, 0.92) 44%,
    rgba(255, 255, 255, 0) 100%
  );
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity 240ms ease;
}

.header.is-scrolled::before {
  opacity: 1;
}

.header__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header__logo {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
}

.header__logo img {
  display: block;
  flex: 0 0 auto;
}

.header__nav {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
}

.btn-entry {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.btn-menu {
  display: inline-flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.btn-menu span {
  display: block;
  flex: 0 0 auto;
  margin: 0;
}

@media (max-width: 899px) {
  .header,
  .page-entry .header {
    height: calc(96 * var(--fluid-px));
  }

  .header::before,
  .page-entry .header::before {
    height: calc(128 * var(--fluid-px));
  }

  .header__inner,
  .page-entry .header__inner {
    height: calc(96 * var(--fluid-px));
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .header__logo img,
  .page-entry .header__logo img {
    width: min(calc(209 * var(--fluid-px)), 48vw);
    height: auto;
  }

  .header__nav,
  .page-entry .header__nav {
    gap: calc(16 * var(--fluid-px));
  }

  .btn-entry,
  .page-entry .btn-entry {
    width: calc(97 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
    padding: 0;
    gap: 0;
    font-size: calc(14 * var(--fluid-px));
  }

  .btn-entry .inline-arrow,
  .page-entry .btn-entry .inline-arrow {
    display: none;
  }

  .btn-menu,
  .page-entry .btn-menu {
    width: calc(48 * var(--fluid-px));
    height: calc(48 * var(--fluid-px));
    gap: calc(7 * var(--fluid-px));
  }

  .btn-menu span,
  .page-entry .btn-menu span {
    width: calc(24 * var(--fluid-px));
    height: calc(2 * var(--fluid-px));
    margin: 0;
  }
}

/* Site menu */
.site-menu[hidden] {
  display: none;
}

.site-menu {
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
}

.site-menu__panel {
  position: absolute;
  top: calc(164 * var(--fluid-px));
  right: calc(48 * var(--fluid-px));
  display: flex;
  width: calc(504 * var(--fluid-px));
  min-height: calc(708 * var(--fluid-px));
  flex-direction: column;
  padding: calc(42 * var(--fluid-px)) calc(60 * var(--fluid-px))
    calc(60 * var(--fluid-px)) calc(64 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: rgba(255, 255, 255, 0.8);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow: 0 calc(20 * var(--fluid-px)) calc(60 * var(--fluid-px))
    rgba(18, 17, 12, 0.08);
  color: var(--text);
  pointer-events: auto;
  animation: site-menu-panel-in 240ms ease both;
}

.site-menu__nav {
  display: grid;
  gap: calc(24 * var(--fluid-px));
}

.site-menu__link {
  position: relative;
  display: flex;
  width: fit-content;
  align-items: center;
  color: var(--text);
  font-size: calc(26 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  transition: color 180ms ease;
}

.site-menu__link.is-current {
  color: var(--blue);
}

.site-menu__link.is-current::before {
  position: absolute;
  top: 50%;
  left: calc(-26 * var(--fluid-px));
  width: calc(12 * var(--fluid-px));
  height: calc(12 * var(--fluid-px));
  border-radius: 50%;
  background: currentColor;
  content: "";
  transform: translateY(-50%);
}

.site-menu__actions {
  display: grid;
  gap: calc(12 * var(--fluid-px));
  margin-top: calc(58 * var(--fluid-px));
}

.site-menu__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  border-radius: calc(100 * var(--fluid-px));
  color: var(--white);
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  overflow: hidden;
  isolation: isolate;
}

.site-menu__button .inline-arrow {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.3s ease;
}

.site-menu__button--casual {
  background: var(--black);
  gap: 60px;
  padding: 24px 40px;
  border-radius: 999px;
  color: #fff;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.site-menu__button--casual::before {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: -1;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.2);
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

.site-menu__button-label {
  position: relative;
  display: block;
  height: 1.4em;
  overflow: hidden;
}

.site-menu__button-label-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

.site-menu__button-label-def,
.site-menu__button-label-hover {
  display: block;
  height: 1.4em;
}

.site-menu__button--entry {
  /* 上の黒ボタン(--casual)に合わせる：固定幅/高さを外し padding 24px40px / font 20px */
  padding: 24px 40px;
  font-size: 20px;
  background: linear-gradient(
    101deg,
    var(--aqua) 0%,
    var(--blue) 50%,
    var(--aqua) 100%
  );
  background-position: 100% 50%;
  background-size: 200% 100%;
  transition: background-position 500ms ease;
}

.site-menu__corp-link {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: calc(12 * var(--fluid-px));
  margin-top: calc(45 * var(--fluid-px));
  border-bottom: calc(1 * var(--fluid-px)) solid currentColor;
  padding-bottom: calc(5 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.4;
}

.site-menu__corp-link .external-icon {
  width: calc(13 * var(--fluid-px));
  height: calc(13 * var(--fluid-px));
  flex: 0 0 auto;
}

@keyframes site-menu-panel-in {
  from {
    opacity: 0;
    transform: translateY(calc(-10 * var(--fluid-px)));
  }

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

@media (hover: hover) {
  .site-menu__link:hover,
  .site-menu__corp-link:hover {
    color: var(--blue);
  }

  .site-menu__button--casual:hover::before {
    top: 50%;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .site-menu__button--casual:hover .site-menu__button-label-inner {
    transform: translateY(-50%);
  }

  .site-menu__button--entry:hover {
    background-position: 0% 50%;
  }

  .site-menu__button:hover .inline-arrow {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  body.menu-open .header::before {
    opacity: 0;
  }

  .site-menu {
    overflow-y: auto;
    background: rgba(255, 255, 255, 0.8);
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    pointer-events: auto;
  }

  .site-menu__panel {
    inset: 0;
    width: 100%;
    min-height: 100svh;
    padding: calc(151 * var(--fluid-px)) calc(48 * var(--fluid-px))
      calc(64 * var(--fluid-px));
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .site-menu__link {
    font-size: calc(22 * var(--fluid-px));
  }

  .page-home .site-menu__link[href="index.html"],
  .page-openings .site-menu__link[href="job-openings.html"],
  .page-detail .site-menu__link[href="job-openings.html"],
  .page-interviews .site-menu__link[href="employee-interviews.html"],
  .page-interview-detail .site-menu__link[href="employee-interviews.html"],
  .page-faq .site-menu__link[href="faq.html"],
  .page-data .site-menu__link[href="data.html"],
  .site-menu__link.is-current {
    color: var(--blue);
  }

  .page-home .site-menu__link[href="index.html"]::before,
  .page-openings .site-menu__link[href="job-openings.html"]::before,
  .page-detail .site-menu__link[href="job-openings.html"]::before,
  .page-interviews .site-menu__link[href="employee-interviews.html"]::before,
  .page-interview-detail
    .site-menu__link[href="employee-interviews.html"]::before,
  .page-faq .site-menu__link[href="faq.html"]::before,
  .page-data .site-menu__link[href="data.html"]::before,
  .site-menu__link.is-current::before {
    position: absolute;
    top: 50%;
    left: calc(-22 * var(--fluid-px));
    width: calc(8 * var(--fluid-px));
    height: calc(8 * var(--fluid-px));
    border-radius: 50%;
    background: currentColor;
    content: "";
    transform: translateY(-50%);
  }

  .site-menu__link.is-current::before {
    left: calc(-22 * var(--fluid-px));
    width: calc(8 * var(--fluid-px));
    height: calc(8 * var(--fluid-px));
  }

  .site-menu__actions {
    gap: calc(12 * var(--fluid-px));
    margin-top: calc(50 * var(--fluid-px));
  }

  .site-menu__button {
    font-size: calc(22 * var(--fluid-px));
  }

  .site-menu__button--entry {
    padding: 24px 40px;
    font-size: 20px;
  }

  .site-menu__button--casual {
    padding: 24px 40px;
    font-size: 20px;
    letter-spacing: 0.1em;
  }

  .site-menu__button .inline-arrow {
    width: calc(16 * var(--fluid-px));
    height: calc(16 * var(--fluid-px));
  }

  .site-menu__corp-link {
    gap: calc(8 * var(--fluid-px));
    margin-top: calc(62 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
  }

  .site-menu__corp-link .external-icon {
    width: calc(11 * var(--fluid-px));
    height: calc(11 * var(--fluid-px));
  }

  .btn-menu.is-open span:nth-child(1),
  .page-entry .btn-menu.is-open span:nth-child(1) {
    transform: translateY(calc(9 * var(--fluid-px))) rotate(45deg);
  }

  .btn-menu.is-open span:nth-child(3),
  .page-entry .btn-menu.is-open span:nth-child(3) {
    transform: translateY(calc(-9 * var(--fluid-px))) rotate(-45deg);
  }

  .btn-menu.is-open,
  .page-entry .btn-menu.is-open {
    background: transparent;
  }
}

/* Home FV final layout */
@media (min-width: 900px) {
  .page-home .top-hero {
    /* ボタン下に青背景の余白を残すため、FVの高さを下へ拡張（PCのみ） */
    height: 82vw;
    min-height: calc(760 * var(--fluid-px));
  }

  .page-home .top-hero__slider {
    box-shadow: none;
  }

  .page-home .top-hero__slider--01 {
    top: 10.12vw;
    left: 0;
    width: 25.55vw;
    aspect-ratio: 440 / 489;
  }

  .page-home .top-hero__slider--02 {
    top: 0;
    left: 29.65vw;
    width: 26.82vw;
    aspect-ratio: 464 / 557;
  }

  .page-home .top-hero__slider--03 {
    top: 34.86vw;
    left: 51.73vw;
    width: 18.03vw;
    aspect-ratio: 312 / 201;
  }

  .page-home .top-hero__slider--04 {
    top: 11.21vw;
    right: 0;
    width: 27.75vw;
    aspect-ratio: 480 / 730;
  }

  .page-home .top-hero__content {
    top: 41.85vw;
    left: 2.78vw;
    width: 60vw;
    padding: 0;
  }

  .page-home .top-hero__title {
    width: 100%;
    font-size: calc(68 * var(--fluid-px));
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  .page-home .top-hero__desc {
    width: 58vw;
    margin: calc(26 * var(--fluid-px)) 0 calc(46 * var(--fluid-px));
    font-size: calc(28 * var(--fluid-px));
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
    opacity: 1;
  }

  .page-home .btn-jobs svg {
    width: 16px;
    height: 16px;
  }
}

@media (max-width: 899px) {
  .page-home .top-hero {
    height: calc(1210 * var(--fluid-px));
    min-height: calc(1210 * var(--fluid-px));
  }

  .page-home .top-hero__slider {
    box-shadow: none;
  }

  .page-home .top-hero__slider--01 {
    top: 21.82vw;
    left: 0;
    width: 53vw;
    aspect-ratio: 232 / 272;
  }

  .page-home .top-hero__slider--02 {
    top: 28.18vw;
    left: 63.64vw;
    width: 27.05vw;
    aspect-ratio: 119 / 145;
  }

  .page-home .top-hero__slider--03 {
    top: 103.64vw;
    left: 3.18vw;
    width: 38vw;
    aspect-ratio: 3 / 2;
  }

  .page-home .top-hero__slider--04 {
    top: 68vw;
    right: 2.73vw;
    width: 53vw;
    aspect-ratio: 220 / 335;
  }

  .page-home .top-hero__content {
    top: 150.5vw;
    left: 0;
    width: 100%;
    padding-inline: 4.55vw;
  }

  .page-home .top-hero__title {
    width: 100%;
    font-size: calc(38 * var(--fluid-px));
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: 0.1em;
    white-space: nowrap;
  }

  .page-home .top-hero__desc {
    width: 100%;
    margin: calc(18 * var(--fluid-px)) 0 calc(30 * var(--fluid-px));
    font-size: calc(17 * var(--fluid-px));
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.1em;
    opacity: 1;
  }

  .page-home .btn-jobs svg {
    width: 16px;
    height: 16px;
  }
}

/* Home lower content final */
.page-home .t-slide {
  padding: 0 calc(48 * var(--fluid-px));
  background: var(--t-slide-bg);
}

.page-home .t-slide::before {
  position: sticky;
  z-index: 0;
  top: 0;
  display: block;
  width: calc(100% + calc(96 * var(--fluid-px)));
  height: 100svh;
  margin-right: calc(-48 * var(--fluid-px));
  margin-bottom: -100svh;
  margin-left: calc(-48 * var(--fluid-px));
  content: "";
  background: var(--t-slide-bg);
  pointer-events: none;
}

.page-home .t-slide__inner {
  position: sticky;
  top: var(--t-slide-sticky-top, 0);
  width: min(calc(1200 * var(--fluid-px)), 100%);
  min-height: 100svh;
  padding: calc(170 * var(--fluid-px)) 0 calc(160 * var(--fluid-px));
}

/* 「メンバー一覧を見る」ボタンを右寄せ（inline-flexだとauto余白が効かないためブロック化） */
.page-home .t-slide__button {
  display: flex;
  width: fit-content;
  margin-left: auto;
  margin-right: 0;
}

.page-home .t-slide__slider {
  margin-top: calc(62 * var(--fluid-px));
}

.page-home .t-slide__track {
  position: relative;
  height: var(--t-slide-card-height);
  overflow: hidden;
  border-radius: calc(20 * var(--fluid-px));
}

.page-home .t-slide__item {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: var(--t-slide-card-height);
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  will-change: transform;
}

.page-home .t-slide__item[aria-hidden="true"] {
  display: block;
}

.page-home .t-slide__item.is-active {
  pointer-events: auto;
}

.page-home .t-slide__card {
  min-height: calc(588 * var(--fluid-px));
}

.page-home .t-slide__pagination {
  right: calc(-44 * var(--fluid-px));
}

.page-home .home-data,
.page-home .home-benefits {
  position: relative;
  z-index: 2;
  padding-right: calc(48 * var(--fluid-px));
  padding-left: calc(48 * var(--fluid-px));
  background: var(--bg);
}

.page-home .home-data {
  padding-top: calc(160 * var(--fluid-px));
  padding-bottom: calc(88 * var(--fluid-px));
}

.page-home .home-benefits {
  padding-top: calc(88 * var(--fluid-px));
  padding-bottom: calc(154 * var(--fluid-px));
}

.page-home .home-data__inner,
.page-home .home-benefits__inner {
  width: min(var(--wide), 100%);
}

.page-home .home-data__heading,
.page-home .home-benefits__heading {
  width: 100%;
}

.page-home .home-data__heading h2,
.page-home .home-benefits__heading h2 {
  display: flex;
  align-items: baseline;
  gap: calc(16 * var(--fluid-px));
  margin: 0;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: var(--text);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
}

.page-home .home-heading-title {
  display: block;
}

.page-home .home-heading-en {
  display: block;
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
}

.page-home .home-data__heading > p:last-child,
.page-home .home-benefits__heading > p:last-child {
  width: 100%;
  margin: calc(62 * var(--fluid-px)) 0 0;
  color: var(--text);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
}

.page-home .home-data__stats {
  margin-top: calc(52 * var(--fluid-px));
}

.page-home .home-data__stats-grid.data-stats__grid {
  gap: calc(24 * var(--fluid-px));
}

.page-home .home-data .data-stat {
  min-height: calc(260 * var(--fluid-px));
  padding: calc(48 * var(--fluid-px)) calc(24 * var(--fluid-px))
    calc(36 * var(--fluid-px));
  border-radius: calc(14 * var(--fluid-px));
}

.page-home .home-data .data-stat h2 {
  margin-bottom: calc(24 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.5;
  text-align: center;
}

.page-home .home-data .data-stat__split,
.page-home .home-data .data-stat__single {
  align-items: center;
  gap: calc(24 * var(--fluid-px));
}

.page-home .home-data .data-stat span {
  margin-bottom: calc(6 * var(--fluid-px));
  font-size: calc(16 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.5;
}

.page-home .home-data .data-stat strong {
  font-size: calc(72 * var(--fluid-px));
  line-height: 1;
}

.page-home .home-data .home-more-button {
  margin-top: calc(64 * var(--fluid-px));
}

.page-home .home-benefits__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(24 * var(--fluid-px));
  margin-top: calc(52 * var(--fluid-px));
}

.page-home .home-benefit {
  display: flex;
  min-height: calc(300 * var(--fluid-px));
  flex-direction: column;
  align-items: center;
  padding: calc(34 * var(--fluid-px)) calc(38 * var(--fluid-px))
    calc(32 * var(--fluid-px));
  border: 0;
  border-radius: calc(14 * var(--fluid-px));
  background: var(--white);
  text-align: center;
}

.page-home .home-benefit__icon {
  display: block;
  width: calc(86 * var(--fluid-px));
  height: calc(86 * var(--fluid-px));
  margin: calc(22 * var(--fluid-px)) auto calc(28 * var(--fluid-px));
  border: 0;
  border-radius: 0;
  object-fit: contain;
}

.page-home .home-benefit h3 {
  order: -1;
  margin: 0;
  color: var(--blue);
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.5;
}

.page-home .home-benefit p {
  margin: 0;
  width: 100%;
  color: var(--text);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.8;
  text-align: left;
}

@media (max-width: 899px) {
  .page-home .t-slide {
    --t-slide-sp-px: var(--fluid-px);
    padding: 0 calc(20 * var(--fluid-px));
  }

  .page-home .t-slide::before {
    width: calc(100% + calc(40 * var(--fluid-px)));
    margin-right: calc(-20 * var(--fluid-px));
    margin-left: calc(-20 * var(--fluid-px));
  }

  .page-home .t-slide__inner {
    position: sticky;
    top: var(--t-slide-sticky-top, 0);
    width: 100%;
    min-height: 100svh;
    padding: calc(78 * var(--fluid-px)) 0 calc(70 * var(--fluid-px));
  }

  .page-home .t-slide__kicker {
    flex-direction: column-reverse;
    gap: calc(4 * var(--fluid-px));
  }

  .page-home .t-slide__kicker-ja {
    font-size: calc(18 * var(--fluid-px));
  }

  .page-home .t-slide__kicker-en {
    font-size: 12px;
  }

  .page-home .t-slide__title {
    margin: calc(24 * var(--fluid-px)) 0 calc(24 * var(--fluid-px));
    font-size: 12.2727272727vw;
    line-height: 1.2;
    letter-spacing: 0.4909090909vw;
  }

  .page-home .t-slide__lead {
    color: #fff;
    font-family: YakuHanJP, "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 500;
    font-size: 3.6363636364vw;
    line-height: 1.8;
    letter-spacing: 0.1em;
  }

  .page-home .t-slide__slider {
    --t-slide-card-height: calc(588 * var(--fluid-px));
    margin-top: calc(32 * var(--fluid-px));
  }

  .page-home .t-slide__track {
    width: min(100%, calc(340 * var(--fluid-px)));
    height: var(--t-slide-card-height);
    margin: 0 auto;
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-home .t-slide__card {
    width: min(100%, calc(340 * var(--fluid-px)));
    min-height: calc(588 * var(--fluid-px));
    margin: 0 auto;
    /* 中身を縦中央寄せ。フォント下限で中身が固定でも、余った高さを上下均等に配分し
       カード上下の余白を常に同じに保つ（狭い画面で下だけ詰まるのを防止）。 */
    align-content: center;
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-home .t-slide__number {
    padding-bottom: calc(13 * var(--fluid-px));
    font-size: 12px;
  }

  .page-home .t-slide__copy {
    margin: calc(18 * var(--fluid-px)) 0 calc(20 * var(--fluid-px));
    font-size: calc(21 * var(--fluid-px));
    line-height: 1.38;
  }

  .page-home .t-slide__image {
    width: calc(260 * var(--fluid-px));
    height: calc(260 * var(--fluid-px));
    margin-bottom: calc(16 * var(--fluid-px));
  }

  .page-home .t-slide__position {
    margin-bottom: calc(12 * var(--fluid-px));
    padding: calc(6 * var(--fluid-px)) calc(8 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
    line-height: 1.6;
  }

  .page-home .t-slide__name {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .page-home .t-slide__pagination {
    right: calc(3 * var(--fluid-px));
    gap: calc(7 * var(--fluid-px));
  }

  .page-home .t-slide__dot {
    width: calc(8 * var(--fluid-px));
    height: calc(8 * var(--fluid-px));
  }

  .page-home .t-slide__dot.is-active {
    outline-width: calc(1 * var(--fluid-px));
    outline-offset: calc(3 * var(--fluid-px));
  }

  .page-home .t-slide__button {
    margin: calc(30 * var(--fluid-px)) auto 0;
  }

  .page-home .home-data,
  .page-home .home-benefits {
    padding-right: calc(20 * var(--fluid-px));
    padding-left: calc(20 * var(--fluid-px));
  }

  .page-home .home-data {
    padding-top: calc(72 * var(--fluid-px));
    padding-bottom: calc(54 * var(--fluid-px));
  }

  .page-home .home-benefits {
    padding-top: calc(48 * var(--fluid-px));
    padding-bottom: calc(86 * var(--fluid-px));
  }

  .page-home .home-data__heading h2,
  .page-home .home-benefits__heading h2 {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: calc(4 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.5;
  }

  .page-home .home-heading-en {
    font-size: calc(20 * var(--fluid-px));
    line-height: 1.4;
  }

  .page-home .home-data__heading > p:last-child,
  .page-home .home-benefits__heading > p:last-child {
    margin-top: calc(20 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.8;
  }

  .page-home .home-data__stats {
    margin-top: calc(30 * var(--fluid-px));
  }

  .page-home .home-data__stats-grid.data-stats__grid {
    grid-template-columns: 1fr;
    gap: calc(12 * var(--fluid-px));
  }

  .page-home .home-data .data-stat {
    min-height: calc(151 * var(--fluid-px));
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-home .home-data .data-stat h2 {
    margin-bottom: calc(12 * var(--fluid-px));
    font-size: calc(24 * var(--fluid-px));
  }

  .page-home .home-data .data-stat span {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .page-home .home-data .data-stat strong {
    font-size: calc(80 * var(--fluid-px));
  }

  .page-home .home-data .home-more-button {
    margin-top: calc(34 * var(--fluid-px));
  }

  .page-home .home-benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(10 * var(--fluid-px));
    margin-top: calc(30 * var(--fluid-px));
  }

  .page-home .home-benefit {
    min-height: calc(156 * var(--fluid-px));
    padding: calc(18 * var(--fluid-px)) calc(13 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-home .home-benefit__icon {
    width: calc(60 * var(--fluid-px));
    height: calc(60 * var(--fluid-px));
    margin: calc(20 * var(--fluid-px)) auto calc(20 * var(--fluid-px));
  }

  .page-home .home-benefit h3 {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .page-home .home-benefit p {
    font-size: 12px;
    line-height: 1.75;
  }
}

.page-interview-detail .t-slide {
  padding: 0 calc(48 * var(--fluid-px));
  background: var(--t-slide-bg);
}

.page-interview-detail .t-slide__inner {
  position: sticky;
  top: var(--t-slide-sticky-top, 0);
  width: min(calc(1200 * var(--fluid-px)), 100%);
  min-height: 100svh;
  padding: calc(170 * var(--fluid-px)) 0 calc(160 * var(--fluid-px));
}

.page-interview-detail .t-slide__slider {
  margin-top: calc(62 * var(--fluid-px));
}

.page-interview-detail .t-slide__track {
  position: relative;
  height: var(--t-slide-card-height);
  overflow: hidden;
  border-radius: calc(20 * var(--fluid-px));
}

.page-interview-detail .t-slide__item {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: var(--t-slide-card-height);
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  will-change: transform;
}

.page-interview-detail .t-slide__card {
  min-height: calc(588 * var(--fluid-px));
}

@media (max-width: 899px) {
  .page-interview-detail .t-slide {
    --t-slide-sp-px: var(--fluid-px);
    padding: 0 calc(20 * var(--fluid-px));
  }

  .page-interview-detail .t-slide::before {
    width: calc(100% + calc(40 * var(--fluid-px)));
    margin-right: calc(-20 * var(--fluid-px));
    margin-left: calc(-20 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__track {
    width: min(100%, calc(340 * var(--fluid-px)));
    height: var(--t-slide-card-height);
    margin: 0 auto;
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__card {
    width: min(100%, calc(340 * var(--fluid-px)));
    min-height: calc(516 * var(--fluid-px));
    margin: 0 auto;
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__number {
    padding-bottom: calc(13 * var(--fluid-px));
    font-size: 12px;
  }

  .page-interview-detail .t-slide__copy {
    margin: calc(18 * var(--fluid-px)) 0 calc(20 * var(--fluid-px));
    font-size: calc(21 * var(--fluid-px));
    line-height: 1.38;
  }

  .page-interview-detail .t-slide__image {
    width: calc(300 * var(--fluid-px));
    height: calc(300 * var(--fluid-px));
    margin-bottom: calc(16 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__position {
    margin-bottom: calc(12 * var(--fluid-px));
    padding: calc(6 * var(--fluid-px)) calc(8 * var(--fluid-px));
    font-size: calc(9 * var(--fluid-px));
    line-height: 1.6;
  }

  .page-interview-detail .t-slide__name {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }
}

.wp-page-content {
  width: min(
    calc(1200 * var(--fluid-px)),
    calc(100% - calc(96 * var(--fluid-px)))
  );
  margin-inline: auto;
  padding: calc(180 * var(--fluid-px)) 0;
  font-size: calc(18 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.9;
}

.wp-page-content h1,
.wp-page-content h2 {
  margin: 0 0 calc(32 * var(--fluid-px));
  font-size: calc(42 * var(--fluid-px));
  line-height: 1.4;
}

.wp-page-content p + p,
.wp-page-content ul,
.wp-page-content ol {
  margin-top: calc(24 * var(--fluid-px));
}

@media (max-width: 899px) {
  .wp-page-content {
    width: calc(100% - calc(40 * var(--fluid-px)));
    padding: calc(120 * var(--fluid-px)) 0;
    font-size: calc(14 * var(--fluid-px));
  }

  .wp-page-content h1,
  .wp-page-content h2 {
    font-size: calc(28 * var(--fluid-px));
  }
}

.page-interview-detail .home-zoom,
.page-interview-detail .casual,
.page-interview-detail .cta,
.page-interview-detail .footer {
  position: relative;
  z-index: 2;
}

.page-interview-detail .casual {
  background: var(--bg);
}

/* Top page missing sections */
.page-home .ceo {
  max-width: none;
  padding: calc(120 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(108 * var(--fluid-px));
  /* background: var(--white); */
}

.home-section-label {
  display: flex;
  align-items: baseline;
  gap: calc(12 * var(--fluid-px));
  margin: 0 0 calc(18 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.6;
}

.home-section-label span {
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(14 * var(--fluid-px));
  font-weight: 600;
}

.home-section-label--white,
.home-section-label--white span {
  color: var(--white);
}

.home-value {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: calc(495 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(112 * var(--fluid-px));
  background:
    url("../img/values_bg_1.webp") top center / auto calc(616 * var(--fluid-px))
      no-repeat,
    url("../img/values_bg_2.webp") center bottom / cover no-repeat;
}

.home-value__inner {
  position: relative;
  width: min(calc(1200 * var(--fluid-px)), 100%);
  margin-inline: auto;
}

.home-value__panel {
  padding: calc(94 * var(--fluid-px)) calc(80 * var(--fluid-px))
    calc(78 * var(--fluid-px));
  border-radius: calc(20 * var(--fluid-px));
  background: var(--white);
}

.home-value__heading {
  display: flex;
  align-items: baseline;
  gap: calc(30 * var(--fluid-px));
  margin: 0 0 calc(62 * var(--fluid-px));
}

.home-value__heading h2 {
  margin: 0;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
}

.home-value__heading p {
  margin: 0;
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.home-value__lead {
  width: min(calc(980 * var(--fluid-px)), 100%);
  margin: 0 0 calc(62 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

.home-value__list {
  border-top: 0;
}

.home-value__item {
  border-bottom: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.45);
  interpolate-size: allow-keywords;
}

.home-value__item summary {
  position: relative;
  display: grid;
  min-height: calc(132 * var(--fluid-px));
  grid-template-columns: calc(156 * var(--fluid-px)) minmax(0, 1fr) calc(
      24 * var(--fluid-px)
    );
  gap: calc(28 * var(--fluid-px));
  align-items: center;
  padding: 0 calc(32 * var(--fluid-px));
  color: var(--blue);
  cursor: pointer;
}

.home-value__item summary::-webkit-details-marker {
  display: none;
}

.home-value__item summary::after {
  position: absolute;
  top: 50%;
  right: calc(30 * var(--fluid-px));
  width: calc(17 * var(--fluid-px));
  height: calc(17 * var(--fluid-px));
  border-right: calc(2 * var(--fluid-px)) solid currentColor;
  border-bottom: calc(2 * var(--fluid-px)) solid currentColor;
  content: "";
  transform: translateY(-65%) rotate(45deg);
  transition: transform 180ms ease;
}

.home-value__item[open] summary::after {
  transform: translateY(-30%) rotate(225deg);
}

.home-value__num {
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.1em;
}

.home-value__name {
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.home-value__item p {
  margin: calc(6 * var(--fluid-px)) 0 calc(48 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.1em;
}

/* アコーディオン開閉の高さ＋フェードのトランジション。
 * ::details-content 対応ブラウザで高さ(0⇔auto)とフェードをアニメーション。
 * 非対応ブラウザは即時開閉（フォールバックのみで破綻なし）。 */
.home-value__item::details-content {
  block-size: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    block-size 360ms cubic-bezier(0.25, 1, 0.5, 1),
    opacity 280ms ease,
    content-visibility 360ms allow-discrete;
}

.home-value__item[open]::details-content {
  block-size: auto;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .home-value__item::details-content {
    transition: none;
  }
}

.faq-item[data-accordion-enhanced="true"] > .accordion-motion,
.home-value__item[data-accordion-enhanced="true"] > .accordion-motion {
  height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    height 360ms cubic-bezier(0.25, 1, 0.5, 1),
    opacity 280ms ease;
  will-change: height, opacity;
}

/* 中身をBFC化：子要素の負マージンがcollapseして height:auto が不足し、
   アコーディオンの中身が欠けるのを防ぐ（特にFAQのアンサー margin-top: -8）。 */
.accordion-motion__inner {
  display: flow-root;
}

.faq-item[data-accordion-enhanced="true"][open] > .accordion-motion {
  margin-top: calc(-8 * var(--fluid-px));
}

.faq-item[data-accordion-enhanced="true"] .faq-answer {
  margin-top: 0;
}

.faq-item[data-accordion-enhanced="true"]::details-content,
.home-value__item[data-accordion-enhanced="true"]::details-content {
  block-size: auto;
  overflow: visible;
  opacity: 1;
  transition: none;
  content-visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
  .faq-item[data-accordion-enhanced="true"] > .accordion-motion,
  .home-value__item[data-accordion-enhanced="true"] > .accordion-motion {
    transition: none;
  }
}

.home-business,
.home-deck,
.home-data,
.home-benefits,
.home-faq {
  padding-right: calc(48 * var(--fluid-px));
  padding-left: calc(48 * var(--fluid-px));
}

.home-business {
  position: relative;
  isolation: isolate;
  padding-top: calc(120 * var(--fluid-px));
  padding-bottom: calc(90 * var(--fluid-px));
  background: var(--bg);
}

.home-business::before {
  top: calc(-40 * var(--fluid-px));
  right: 0;
}

.home-business__inner,
.home-deck__inner,
.home-data__inner,
.home-benefits__inner,
.home-faq__inner {
  width: min(calc(1320 * var(--fluid-px)), 100%);
  margin-inline: auto;
}

.home-deck__inner {
  width: min(var(--wide), 100%);
}

.home-business__heading,
.home-data__heading,
.home-benefits__heading {
  width: min(calc(960 * var(--fluid-px)), 100%);
}

.home-business__heading {
  position: relative;
  z-index: 1;
  width: min(var(--wide), 100%);
}

.home-business .home-section-label {
  gap: calc(20 * var(--fluid-px));
  margin-bottom: calc(60 * var(--fluid-px));
  color: #000;
  font-size: calc(48 * var(--fluid-px));
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.home-business .home-section-label span {
  color: var(--blue);
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.home-business__heading h2,
.home-data__heading h2,
.home-benefits__heading h2,
.home-faq__content h2 {
  margin: 0;
  background: linear-gradient(94.13deg, var(--blue) 0%, var(--aqua) 86.33%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.35;
}

.home-business__heading > p:last-child,
.home-data__heading > p:last-child,
.home-benefits__heading > p:last-child {
  margin: calc(24 * var(--fluid-px)) 0 0;
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.9;
}

.home-business__heading h2 {
  /* グラデは上昇する内側 .home-heading-motion__text の1枚のみに。親h2の重複クリップを解除して
     iOS Safariの二重描画を防ぐ（他のh2は共通ルールのグラデを維持）。 */
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  font-size: calc(100 * var(--fluid-px));
  line-height: 1.2;
  letter-spacing: 0.04em;
}

/* 私たちがやっていること：3領域スライダー
 * PC(≥900px)は左画像をピン留めし、スクロールで画像＋テキストをクロスフェード。
 * SP(≤899px)は各項目を「画像→ラベル→タイトル→説明」で普通に縦積み（下部@media）。
 * JS未実行時は縦積みのまま表示されるフォールバック。 */
.home-business__stage {
  position: relative;
  z-index: 1;
  margin-top: calc(70 * var(--fluid-px));
}

.home-business__viewport {
  position: relative;
}

.home-business-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: calc(76 * var(--fluid-px));
  align-items: center;
}

.home-business-item + .home-business-item {
  margin-top: calc(56 * var(--fluid-px));
}

.home-business-item__image img {
  width: 100%;
  aspect-ratio: 520 / 420;
  object-fit: cover;
  border-radius: calc(20 * var(--fluid-px));
}

.home-business-item__body {
  width: min(calc(520 * var(--fluid-px)), 100%);
}

.home-business-item__eyebrow {
  margin: 0 0 calc(20 * var(--fluid-px));
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(20 * var(--fluid-px));
  font-weight: 600;
  letter-spacing: 0.1em;
}

.home-business-item__body h3 {
  margin: 0 0 calc(24 * var(--fluid-px));
  font-size: calc(30 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.5;
}

.home-business-item__desc {
  margin: 0;
  font-size: calc(15 * var(--fluid-px));
  line-height: 1.9;
}

.home-business__counter {
  display: none;
  margin: 0;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(18 * var(--fluid-px));
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--text);
}

.home-business__counter span {
  color: var(--blue);
  font-size: calc(24 * var(--fluid-px));
}

/* PC：ピン留めクロスフェード（JSが is-enhanced を付与したときのみ有効） */
@media (min-width: 900px) {
  .home-business__stage.is-enhanced {
    width: calc(100% + calc(96 * var(--fluid-px)));
    height: 300vh;
    margin-right: calc(-48 * var(--fluid-px));
    margin-left: calc(-48 * var(--fluid-px));
  }

  .home-business__stage.is-enhanced .home-business__viewport {
    position: sticky;
    top: 0;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    height: 100vh;
    padding-top: calc(96 * var(--fluid-px));
  }

  .home-business__stage.is-enhanced .home-business-item {
    position: absolute;
    inset: 0;
    grid-template-columns:
      calc(1000 * var(--fluid-px))
      minmax(0, calc(600 * var(--fluid-px)));
    gap: calc(80 * var(--fluid-px));
    align-items: center;
    align-content: center;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      opacity 600ms ease,
      visibility 600ms ease;
  }

  .home-business__stage.is-enhanced .home-business-item__image img {
    height: 86vh;
    aspect-ratio: auto;
    border-radius: 0;
  }

  .home-business__stage.is-enhanced .home-business-item__body {
    width: 100%;
    max-width: 100%;
    transform: translateY(calc(24 * var(--fluid-px)));
    transition: transform 700ms cubic-bezier(0.19, 1, 0.22, 1);
  }

  .home-business__stage.is-enhanced .home-business-item__body h3 {
    font-size: calc(48 * var(--fluid-px));
    margin-bottom: calc(28 * var(--fluid-px));
  }

  .home-business__stage.is-enhanced .home-business-item__desc {
    font-size: calc(24 * var(--fluid-px));
  }

  .home-business__stage.is-enhanced .home-business-item.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .home-business__stage.is-enhanced
    .home-business-item.is-active
    .home-business-item__body {
    transform: translateY(0);
  }

  .home-business__stage.is-enhanced .home-business__counter {
    display: none;
    position: absolute;
    left: 0;
    bottom: calc(6vh);
    z-index: 2;
  }
}

.home-deck {
  padding-top: calc(50 * var(--fluid-px));
  padding-bottom: calc(112 * var(--fluid-px));
  background: var(--bg);
}

.home-deck .home-section-label {
  gap: calc(20 * var(--fluid-px));
  margin-bottom: calc(60 * var(--fluid-px));
  color: #000;
  font-size: calc(48 * var(--fluid-px));
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.home-deck .home-section-label span {
  color: var(--blue);
  font-size: calc(20 * var(--fluid-px));
  line-height: 1.6;
  letter-spacing: 0.1em;
}

.home-deck__embed {
  width: 100%;
  margin-top: 0;
  display: flex;
  justify-content: center;
}

/* 高さを70vhに収めつつ幅は16:9を維持する。
   width:auto はiPad Safari等でiframeが intrinsic幅(300px)に潰れて
   極端に小さくなるため使わない。width:100% を基本にし、
   「高さがちょうど70vhになる幅」を max-width の上限にすることで、
   ブラウザ非依存で決定的にサイズが決まり、親のflexで中央寄せされる。 */
.home-deck__embed .speakerdeck-iframe {
  display: block;
  width: 100%;
  max-width: min(100%, calc(70vh * 16 / 9));
  height: auto;
  aspect-ratio: 16 / 9;
}

.home-data {
  padding-top: calc(118 * var(--fluid-px));
  padding-bottom: calc(80 * var(--fluid-px));
  background: var(--bg);
}

.home-data .data-stats {
  padding: 0;
}

.home-data__stats {
  margin-top: calc(44 * var(--fluid-px));
}

.home-data__stats-grid.data-stats__grid {
  width: 100%;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(16 * var(--fluid-px));
}

.home-data .data-stat {
  min-height: calc(172 * var(--fluid-px));
  padding: calc(26 * var(--fluid-px)) calc(18 * var(--fluid-px))
    calc(22 * var(--fluid-px));
  border-radius: calc(4 * var(--fluid-px));
}

.home-data .data-stat h2 {
  color: var(--blue);
  font-size: max(14px, calc(16 * var(--fluid-px)));
  line-height: 1.5;
}

.home-data .data-stat span {
  font-size: calc(13 * var(--fluid-px));
  line-height: 1.5;
}

.home-data .data-stat strong {
  font-size: calc(58 * var(--fluid-px));
}

@media (min-width: 900px) {
  /* 4カードを同じ「補足行 + 数値行」の2段構成にして位置を揃える。 */
  .page-home .home-data .data-stat__split > p,
  .page-home .home-data .data-stat__single {
    display: grid;
    grid-template-rows: auto auto;
    align-content: center;
    row-gap: calc(5 * var(--fluid-px));
  }

  .page-home .home-data .data-stat__split > p > span,
  .page-home .home-data .data-stat__single > span {
    align-self: start;
    margin-bottom: 0;
  }

  .page-home .home-data .data-stat strong {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
}

@media (max-width: 899px) {
  /* SPも補足行と数値行を共通化し、間隔を5px相当に揃える。 */
  .page-home .home-data .data-stat__split > p,
  .page-home .home-data .data-stat__single {
    display: grid;
    grid-template-rows: auto auto;
    align-content: center;
    gap: 0;
    row-gap: calc(5 * var(--fluid-px));
  }

  .page-home .home-data .data-stat__split > p > span,
  .page-home .home-data .data-stat__single > span {
    align-self: start;
    margin-bottom: 0;
  }

  .page-home .home-data .data-stat strong {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
}

[data-roulette-stats] .data-stat strong {
  display: inline-block;
}

[data-roulette-stats] .data-stat .num-wrap {
  display: inline-block !important;
  overflow: hidden;
  vertical-align: bottom;
  margin-bottom: 0 !important;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: 1 !important;
}

[data-roulette-stats] .data-stat .num-inner {
  display: block !important;
  margin-bottom: 0 !important;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.home-more-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  margin-top: calc(36 * var(--fluid-px));
  padding: 24px 40px;
  border-radius: 999px;
  background: var(--black);
  color: var(--white);
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  white-space: nowrap;
  overflow: hidden;
  isolation: isolate;
}

.home-more-button::before {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: -1;
  width: 102%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--blue);
  content: "";
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.2);
  transition:
    transform 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    opacity 0.55s cubic-bezier(0.19, 1, 0.22, 1),
    top 0.55s cubic-bezier(0.19, 1, 0.22, 1);
}

.home-more-button .inline-arrow {
  width: 16px;
  height: 16px;
  transition: transform 0.3s ease;
}

.home-more-button--right {
  display: inline-flex;
  margin-left: auto;
}

.home-benefits {
  padding-top: calc(80 * var(--fluid-px));
  padding-bottom: calc(96 * var(--fluid-px));
  background: var(--bg);
}

.home-benefits__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: calc(16 * var(--fluid-px));
  margin-top: calc(44 * var(--fluid-px));
}

.home-benefit {
  min-height: calc(210 * var(--fluid-px));
  padding: calc(28 * var(--fluid-px)) calc(22 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid rgba(52, 152, 219, 0.2);
  background: var(--white);
  text-align: center;
}

.home-benefit__icon {
  position: relative;
  display: block;
  width: calc(46 * var(--fluid-px));
  height: calc(46 * var(--fluid-px));
  margin: 0 auto calc(20 * var(--fluid-px));
  border: calc(2 * var(--fluid-px)) solid rgba(52, 152, 219, 0.5);
  border-radius: calc(14 * var(--fluid-px));
}

.home-benefit__icon::before,
.home-benefit__icon::after {
  position: absolute;
  content: "";
}

.home-benefit__icon::before {
  inset: calc(11 * var(--fluid-px));
  border: calc(2 * var(--fluid-px)) solid rgba(52, 152, 219, 0.5);
  border-radius: 50%;
}

.home-benefit__icon::after {
  right: calc(7 * var(--fluid-px));
  bottom: calc(7 * var(--fluid-px));
  width: calc(12 * var(--fluid-px));
  height: calc(2 * var(--fluid-px));
  background: rgba(52, 152, 219, 0.55);
  transform: rotate(45deg);
}

.home-benefit h3 {
  margin: 0 0 calc(12 * var(--fluid-px));
  color: var(--blue);
  font-size: calc(18 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.5;
}

.home-benefit p {
  margin: 0;
  font-size: calc(13 * var(--fluid-px));
  line-height: 1.8;
}

.home-faq {
  padding-top: calc(160 * var(--fluid-px));
  padding-bottom: calc(96 * var(--fluid-px));
  background: var(--bg);
}

.home-faq__inner {
  display: block;
}

.home-faq__label {
  display: flex;
  align-items: baseline;
  gap: calc(16 * var(--fluid-px));
  margin: 0 0 calc(48 * var(--fluid-px));
  color: var(--text);
  font-size: calc(48 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
}

.home-faq__label span {
  flex: 0 0 auto;
  color: var(--blue);
  font-family: "Poppins", system-ui, sans-serif;
  font-size: max(20px, calc(16 * var(--fluid-px)));
  font-weight: 600;
}

.home-faq__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-faq__item {
  padding: calc(28 * var(--fluid-px)) 0;
  border-bottom: calc(1 * var(--fluid-px)) solid rgba(18, 17, 12, 0.14);
}

.home-faq__item:first-child {
  padding-top: 0;
}

.home-faq__q,
.home-faq__a {
  position: relative;
  margin: 0;
  padding-left: calc(54 * var(--fluid-px));
  line-height: 1.9;
  letter-spacing: 0.1em;
}

.home-faq__q::before,
.home-faq__a::before {
  position: absolute;
  left: 0;
  top: calc(3 * var(--fluid-px));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(30 * var(--fluid-px));
  height: calc(30 * var(--fluid-px));
  border-radius: 50%;
  font-family: "Poppins", system-ui, sans-serif;
  font-size: calc(15 * var(--fluid-px));
  font-weight: 600;
  line-height: 1;
}

.home-faq__q {
  /* PCは下限16px（設計サイズ）を確保して読みやすく。広い画面では等比拡大 */
  font-size: max(calc(16 * var(--fluid-px)), 16px);
  font-weight: 700;
}

.home-faq__q::before {
  content: "Q";
  border: calc(1 * var(--fluid-px)) solid var(--blue);
  color: var(--blue);
}

.home-faq__a {
  margin-top: calc(20 * var(--fluid-px));
  /* PCは下限15px（設計サイズ）を確保して読みやすく。広い画面では等比拡大 */
  font-size: max(calc(15 * var(--fluid-px)), 15px);
  font-weight: 500;
}

.home-faq__a::before {
  content: "A";
  background: var(--blue);
  color: var(--white);
}

/* ズームマスク：ロゴマーク型のマスクがスクロールで拡大し、画像が現れる。
 * .home-zoom を高くしてスクロール尺を確保し、__sticky をピン留め。
 * __mask はFigmaの画像フレーム高に合わせ、logo_mask.svg をインライン化したマスクサイズ(--zoom vw)を
 * JS がスクロール量に応じてフレーム外まで拡大する（画像スケールは一定・窓が広がる）。 */
.home-zoom {
  --home-zoom-frame-height: calc(774 * var(--fluid-px));
  --home-zoom-start: 28;
  position: relative;
  height: 250vh;
  background: var(--bg);
}

.home-zoom__sticky {
  position: sticky;
  top: max(0px, calc((100svh - var(--home-zoom-frame-height)) / 2));
  display: grid;
  place-items: center;
  width: 100%;
  height: var(--home-zoom-frame-height);
  overflow: hidden;
  background: var(--bg);
}

.home-zoom__mask {
  --zoom: var(--home-zoom-start);
  /* 外部SVGの初回取得・デコード待ちを避けるため、支給SVGをdata URIで保持する。 */
  --home-zoom-mask-image: url("data:image/svg+xml,%3Csvg%20width%3D%22500%22%20height%3D%22500%22%20viewBox%3D%220%200%20500%20500%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M492.32%20283.12C487.85%20293.68%20481.98%20302.39%20473.84%20310.53C470.16%20314.21%20466.46%20317.35%20462.52%20320.14C407.33%20359.18%20359.18%20407.32%20320.14%20462.52C317.35%20466.46%20314.21%20470.16%20310.54%20473.83C302.39%20481.98%20293.68%20487.85%20283.12%20492.32C272.04%20497.01%20261.68%20499.1%20249.55%20499.1C237.42%20499.1%20227.06%20497.01%20215.98%20492.32C205.42%20487.85%20196.71%20481.98%20188.56%20473.84C184.89%20470.16%20181.75%20466.46%20178.96%20462.52C139.92%20407.32%2091.77%20359.18%2036.58%20320.14C32.64%20317.35%2028.93%20314.21%2025.25%20310.53C17.12%20302.39%2011.24%20293.68%206.77997%20283.11C2.08997%20272.04%200%20261.69%200%20249.55C0%20237.41%202.08997%20227.06%206.77997%20215.98C11.24%20205.42%2017.12%20196.71%2025.26%20188.57C28.94%20184.89%2032.64%20181.75%2036.59%20178.95C91.78%20139.92%20139.92%2091.78%20178.95%2036.59C181.75%2032.64%20184.89%2028.94%20188.57%2025.26C196.71%2017.12%20205.42%2011.24%20215.98%206.78C227.06%202.09%20237.41%200%20249.55%200C261.69%200%20272.04%202.09%20283.12%206.78C293.68%2011.24%20302.39%2017.12%20310.53%2025.26C314.21%2028.93%20317.35%2032.64%20320.14%2036.58C359.18%2091.77%20407.32%20139.92%20462.52%20178.96C466.46%20181.75%20470.16%20184.89%20473.83%20188.56C481.98%20196.71%20487.86%20205.42%20492.32%20215.99C497.01%20227.06%20499.1%20237.41%20499.1%20249.55C499.1%20261.69%20497.01%20272.04%20492.32%20283.12Z%22%20fill%3D%22%23F4F6F9%22%2F%3E%0A%3C%2Fsvg%3E%0A");
  width: 100%;
  height: 100%;
  background: url("../img/logo_mask_bg.webp") center / cover no-repeat;
  -webkit-mask-image: var(--home-zoom-mask-image);
  mask-image: var(--home-zoom-mask-image);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: calc(var(--zoom, 28) * 1vw) calc(var(--zoom, 28) * 1vw);
  mask-size: calc(var(--zoom, 28) * 1vw) calc(var(--zoom, 28) * 1vw);
  will-change: -webkit-mask-size, mask-size;
}

.home-zoom--member-sato .home-zoom__mask {
  background-image: url("../img/member_logo_mask_sato.webp");
}

.home-zoom--member-seki .home-zoom__mask {
  background-image: url("../img/member_logo_mask_seki.webp");
}

.home-zoom--member-maeda .home-zoom__mask {
  background-image: url("../img/member_logo_mask_maeda.webp");
}

.home-zoom--member-yoshizawa .home-zoom__mask {
  background-image: url("../img/member_logo_mask_yoshizawa.webp");
}

.home-zoom--member-yamada .home-zoom__mask {
  background-image: url("../img/member_logo_mask_yamada.webp");
}

.home-zoom--member-mizowaki .home-zoom__mask {
  background-image: url("../img/member_logo_mask_mizowaki.webp");
}

.home-zoom--member-tanaka .home-zoom__mask {
  background-image: url("../img/member_logo_mask_tanaka.webp");
}

.page-interview-detail .home-zoom,
.page-interview-detail .home-zoom__sticky {
  background: #3498db;
}

@media (prefers-reduced-motion: reduce) {
  .home-zoom {
    height: auto;
  }

  .home-zoom__sticky {
    position: static;
  }

  .home-zoom__mask {
    --zoom: 260;
  }
}

@media (max-width: 899px) {
  .home-zoom {
    --home-zoom-frame-height: calc(645 * var(--fluid-px));
    --home-zoom-start: 42;
    height: 200vh;
  }

  .page-home .home-zoom {
    --home-zoom-frame-height: calc(645 * var(--fluid-px));
  }

  .page-home .home-zoom__mask {
    background-image: url("../img/logo_mask_bg-sp.webp");
  }
}

@media (hover: hover) {
  .home-more-button:hover::before {
    top: 50%;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .home-more-button:hover .inline-arrow {
    transform: rotate(45deg);
  }
}

@media (max-width: 899px) {
  .page-home .ceo {
    padding: calc(70 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(76 * var(--fluid-px));
  }

  .page-home .ceo__label {
    margin-bottom: calc(18 * var(--fluid-px));
    font-size: 9.5454545455vw;
  }

  .home-section-label {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(2 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .home-section-label span {
    order: -1;
    font-size: 12px;
  }

  /* 英語ラベル(What We Do等)を日本語の上に。日本語clipもspanなのでorderを戻して上下を確定させる */
  .home-section-label > .home-heading-motion__clip--ja {
    order: 0;
  }

  .home-value,
  .home-business,
  .home-deck,
  .home-data,
  .home-benefits,
  .home-faq {
    padding-right: calc(20 * var(--fluid-px));
    padding-left: calc(20 * var(--fluid-px));
  }

  .home-value {
    padding-top: calc(154 * var(--fluid-px));
    padding-bottom: calc(118 * var(--fluid-px));
    background:
      url("../img/values_bg_1.webp") top center / auto
        calc(316 * var(--fluid-px)) no-repeat,
      url("../img/values_bg_2.webp") center bottom / cover no-repeat;
  }

  .home-value__panel {
    width: 100%;
    padding: calc(61 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(80 * var(--fluid-px));
    border-radius: calc(20 * var(--fluid-px));
  }

  .home-value__heading {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(8 * var(--fluid-px));
    margin-bottom: calc(26 * var(--fluid-px));
  }

  .home-value__heading h2 {
    font-size: calc(31 * var(--fluid-px));
    line-height: 1.35;
  }

  .home-value__heading p {
    order: -1;
    font-size: calc(21 * var(--fluid-px));
    line-height: 1.4;
  }

  .home-value__lead {
    margin-bottom: calc(44 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.75;
  }

  .home-value__list {
    border-top: 0;
  }

  .home-value__item summary {
    min-height: calc(106 * var(--fluid-px));
    grid-template-columns: minmax(0, 1fr) calc(24 * var(--fluid-px));
    gap: calc(7 * var(--fluid-px));
    align-content: center;
    padding: calc(18 * var(--fluid-px)) calc(14 * var(--fluid-px))
      calc(18 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .home-value__item summary::after {
    right: calc(15 * var(--fluid-px));
    width: calc(14 * var(--fluid-px));
    height: calc(14 * var(--fluid-px));
  }

  .home-value__num,
  .home-value__name {
    grid-column: 1;
  }

  .home-value__num {
    font-size: calc(15 * var(--fluid-px));
    line-height: 1.3;
  }

  .home-value__name {
    font-size: calc(24 * var(--fluid-px));
    line-height: 1.35;
  }

  .home-value__item p {
    margin: 0 0 calc(24 * var(--fluid-px));
    padding: 0 calc(20 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.8;
  }

  .home-business {
    padding-top: calc(74 * var(--fluid-px));
    padding-bottom: calc(42 * var(--fluid-px));
  }

  .home-business::before {
    display: none;
  }

  .home-business .home-section-label {
    gap: calc(4 * var(--fluid-px));
    margin-bottom: calc(24 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.4;
  }

  .home-business .home-section-label span {
    font-size: calc(20 * var(--fluid-px));
    line-height: 1.6;
  }

  .home-business__heading h2,
  .home-data__heading h2,
  .home-benefits__heading h2,
  .home-faq__content h2 {
    font-size: calc(26 * var(--fluid-px));
    line-height: 1.45;
  }

  .home-business__heading > p:last-child,
  .home-data__heading > p:last-child,
  .home-benefits__heading > p:last-child {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .home-business__heading h2 {
    font-size: calc(54 * var(--fluid-px));
    line-height: 1.2;
    letter-spacing: 0.04em;
  }

  .home-business__heading h2 br {
    display: none;
  }

  .home-business__stage {
    margin-top: calc(38 * var(--fluid-px));
  }

  .home-business-item {
    grid-template-columns: 1fr;
    gap: calc(18 * var(--fluid-px));
  }

  .home-business-item + .home-business-item {
    margin-top: calc(80 * var(--fluid-px));
  }

  .home-business-item__image {
    width: calc(100% + calc(20 * var(--fluid-px)));
    margin-left: calc(-20 * var(--fluid-px));
  }

  .home-business-item__image img {
    aspect-ratio: 340 / 220;
    border-radius: 0 calc(20 * var(--fluid-px)) calc(20 * var(--fluid-px)) 0;
  }

  .home-business-item__body {
    width: 100%;
  }

  .home-business-item__eyebrow {
    margin-bottom: calc(12 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
  }

  .home-business-item__body h3 {
    margin-bottom: calc(12 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
  }

  .home-business-item__desc {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .home-deck {
    padding-top: calc(38 * var(--fluid-px));
    padding-bottom: calc(72 * var(--fluid-px));
    padding-left: calc(20 * var(--fluid-px));
    padding-right: calc(20 * var(--fluid-px));
  }

  .home-deck .home-section-label {
    gap: calc(4 * var(--fluid-px));
    margin-bottom: calc(24 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.4;
  }

  .home-deck .home-section-label span {
    font-size: calc(20 * var(--fluid-px));
    line-height: 1.6;
  }

  .home-deck__embed {
    margin-top: 0;
  }

  /* スマホは高さ制限を外し、コンテンツ幅（左右20px余白）いっぱいに表示 */
  .home-deck__embed .speakerdeck-iframe {
    width: 100%;
    max-width: 100%;
    max-height: none;
  }

  .home-data {
    padding-top: calc(72 * var(--fluid-px));
    padding-bottom: calc(58 * var(--fluid-px));
  }

  .home-data__stats-grid.data-stats__grid {
    grid-template-columns: 1fr;
    gap: calc(10 * var(--fluid-px));
  }

  .home-data .data-stat {
    min-height: calc(112 * var(--fluid-px));
    padding: calc(20 * var(--fluid-px));
  }

  .home-data .data-stat h2 {
    font-size: calc(13 * var(--fluid-px));
  }

  .home-data .data-stat strong {
    font-size: calc(50 * var(--fluid-px));
  }

  .home-benefits {
    padding-top: calc(54 * var(--fluid-px));
    padding-bottom: calc(64 * var(--fluid-px));
  }

  .home-benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: calc(10 * var(--fluid-px));
    margin-top: calc(28 * var(--fluid-px));
  }

  .home-benefit {
    min-height: calc(152 * var(--fluid-px));
    padding: calc(18 * var(--fluid-px)) calc(10 * var(--fluid-px));
  }

  .home-benefit__icon {
    width: calc(34 * var(--fluid-px));
    height: calc(34 * var(--fluid-px));
    margin-bottom: calc(12 * var(--fluid-px));
    border-radius: calc(10 * var(--fluid-px));
  }

  .home-benefit h3 {
    font-size: calc(13 * var(--fluid-px));
  }

  .home-benefit p {
    font-size: calc(10 * var(--fluid-px));
  }

  .home-faq {
    padding-top: calc(120 * var(--fluid-px));
    padding-bottom: calc(70 * var(--fluid-px));
  }

  .home-faq__label {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(4 * var(--fluid-px));
    margin-bottom: calc(28 * var(--fluid-px));
    font-size: calc(32 * var(--fluid-px));
  }

  .home-faq__label span {
    order: -1;
    font-size: calc(20 * var(--fluid-px));
  }

  .home-faq__item {
    padding: calc(24 * var(--fluid-px)) 0;
  }

  .home-faq__q,
  .home-faq__a {
    padding-left: calc(44 * var(--fluid-px));
    line-height: 1.85;
  }

  .home-faq__q::before,
  .home-faq__a::before {
    top: calc(2 * var(--fluid-px));
    width: calc(32 * var(--fluid-px));
    height: calc(32 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
  }

  .home-faq__q {
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .home-faq__a {
    margin-top: calc(16 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .home-faq .home-more-button--right {
    margin-inline: auto;
  }

  /* SP:「詳しく見る」「よくあるご質問一覧」を中央寄せ。
     共通ボタンルール(.home-more-button{display:inline-flex})が後方で上書きし、
     inline-flexだとauto余白が効かないため、.page-homeで詳細度を上げてブロック化する。 */
  .page-home .home-more-button {
    display: flex;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Interview detail: member interview slide uses the same scroll behavior as index.html */

.page-interview-detail .t-slide__item {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  display: block;
  height: var(--t-slide-card-height);
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  will-change: transform;
}

.page-interview-detail .t-slide__item[aria-hidden="true"] {
  display: block;
}

.page-interview-detail .t-slide__card {
  display: grid;
  width: auto;
  grid-template-columns: calc(328 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(80 * var(--fluid-px));
  height: 100%;
  min-height: calc(588 * var(--fluid-px));
  margin: 0;
  padding: calc(60 * var(--fluid-px)) calc(60 * var(--fluid-px))
    calc(60 * var(--fluid-px)) calc(80 * var(--fluid-px));
}

@media (max-width: 899px) {
  .page-interview-detail .t-slide__item {
    position: absolute;
    display: block;
    height: var(--t-slide-card-height);
    transform: translate3d(0, 100%, 0);
    pointer-events: none;
  }

  .page-interview-detail .t-slide__item[aria-hidden="true"] {
    display: block;
  }

  .page-interview-detail .t-slide__card {
    width: min(100%, calc(340 * var(--fluid-px)));
    min-height: calc(516 * var(--fluid-px));
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0 auto;
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }
}

/* Interview detail final Figma alignment */
.sp-only {
  display: none;
}

.page-interview-detail .interview-detail-hero__inner {
  width: 100%;
  padding: calc(200 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(158 * var(--fluid-px));
  display: grid;
  grid-template-columns: calc(420 * var(--fluid-px)) minmax(0, 1fr);
  grid-template-areas: "media content";
  gap: calc(80 * var(--fluid-px));
  align-items: start;
}

.page-interview-detail .interview-detail-hero__media {
  grid-area: media;
}

.page-interview-detail .interview-detail-hero__content {
  grid-area: content;
  padding-top: calc(6 * var(--fluid-px));
}

.page-interview-detail .interview-detail-hero__image {
  overflow: hidden;
  width: calc(420 * var(--fluid-px));
  border-radius: 0;
}

.page-interview-detail .interview-detail-hero__image img {
  width: 100%;
  aspect-ratio: 420 / 596;
  object-fit: cover;
}

.page-interview-detail .interview-detail-hero__label {
  margin-bottom: calc(12 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
}

.page-interview-detail .interview-detail-hero__title {
  max-width: calc(1040 * var(--fluid-px));
  font-size: calc(64 * var(--fluid-px));
  line-height: 1.45;
}

.page-interview-detail .interview-detail-hero__position {
  margin-top: calc(43 * var(--fluid-px));
  padding: calc(8 * var(--fluid-px)) calc(14 * var(--fluid-px));
  border-radius: calc(6 * var(--fluid-px));
  background: rgba(255, 255, 255, 0.22);
  color: var(--white);
  font-size: calc(26 * var(--fluid-px));
  line-height: 1.45;
}

.page-interview-detail .interview-detail-hero__name {
  margin-top: calc(28 * var(--fluid-px));
  color: var(--white);
  font-size: calc(28 * var(--fluid-px));
  line-height: 1.5;
}

.page-interview-detail .interview-detail-hero__name span {
  margin-left: calc(24 * var(--fluid-px));
  color: var(--white);
  font-size: calc(26 * var(--fluid-px));
}

.page-interview-detail .interview-detail-hero__lead {
  width: min(calc(1040 * var(--fluid-px)), 100%);
  margin-top: calc(48 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 1.85;
}

.page-interview-detail .interview-detail-hero__breadcrumb {
  width: fit-content;
  margin-top: calc(40 * var(--fluid-px));
}

.page-interview-detail .interview-story__inner {
  width: min(calc(1200 * var(--fluid-px)), 100%);
  padding: calc(160 * var(--fluid-px)) 0 calc(160 * var(--fluid-px));
}

.page-interview-detail .interview-block {
  display: grid;
  grid-template-columns: calc(580 * var(--fluid-px)) calc(540 * var(--fluid-px));
  gap: calc(80 * var(--fluid-px));
  align-items: start;
  margin: 0 0 calc(160 * var(--fluid-px));
  padding: 0;
  border-top: 0;
}

.page-interview-detail .interview-block:last-child {
  margin-bottom: 0;
}

.page-interview-detail .interview-block:nth-child(2) .interview-block__image {
  grid-column: 1;
  grid-row: 1;
}

.page-interview-detail .interview-block:nth-child(2) .interview-block__text {
  grid-column: 2;
  grid-row: 1;
}

.page-interview-detail .interview-block__text h2 {
  margin: 0;
  padding: calc(18 * var(--fluid-px)) 0 calc(18 * var(--fluid-px))
    calc(44 * var(--fluid-px));
  border-top: calc(1 * var(--fluid-px)) solid var(--blue);
  border-bottom: calc(1 * var(--fluid-px)) solid var(--blue);
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.55;
}

.page-interview-detail .interview-block__text h2::before {
  top: calc(18 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  line-height: 1.55;
}

.page-interview-detail .interview-block__text p {
  margin-top: calc(52 * var(--fluid-px));
  padding-left: 0;
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 2;
}

.page-interview-detail .interview-block__text p::before {
  content: none;
}

.page-interview-detail .interview-block__image {
  border-radius: 0;
}

.page-interview-detail .interview-block__image img {
  aspect-ratio: 400 / 442;
}

.page-interview-detail .interview-block--wide {
  grid-template-columns: 1fr;
  gap: calc(56 * var(--fluid-px));
}

.page-interview-detail .interview-block--wide .interview-block__image {
  grid-column: 1;
  grid-row: 1;
  width: calc(1200 * var(--fluid-px));
}

.page-interview-detail .interview-block--wide .interview-block__text {
  grid-column: 1;
  grid-row: 2;
}

.page-interview-detail .interview-block--wide .interview-block__image img {
  aspect-ratio: 1200 / 600;
}

.page-interview-detail .interview-message__visual {
  min-height: calc(660 * var(--fluid-px));
}

.page-interview-detail .interview-message__mask {
  width: calc(400 * var(--fluid-px));
}

.page-interview-detail .interview-message__body {
  width: min(calc(1200 * var(--fluid-px)), 100%);
  padding: 0 0 calc(160 * var(--fluid-px));
}

.page-interview-detail .interview-message__body h2 {
  width: 100%;
  font-size: calc(48 * var(--fluid-px));
  line-height: 1.55;
}

.page-interview-detail .interview-message__body p {
  width: 100%;
  margin-top: calc(20 * var(--fluid-px));
  font-size: calc(24 * var(--fluid-px));
  font-weight: 500;
  line-height: 2;
}

.page-interview-detail .t-slide {
  min-height: 0;
  padding: calc(170 * var(--fluid-px)) calc(48 * var(--fluid-px))
    calc(160 * var(--fluid-px));
  background: var(--t-slide-bg);
}

.page-interview-detail .t-slide::before {
  display: none;
}

.page-interview-detail .t-slide__inner {
  position: relative;
  top: auto;
  width: min(calc(1200 * var(--fluid-px)), 100%);
  min-height: 0;
  padding: 0;
}

.page-interview-detail .t-slide__kicker {
  gap: calc(26 * var(--fluid-px));
}

.page-interview-detail .t-slide__kicker-ja {
  font-size: calc(46 * var(--fluid-px));
}

.page-interview-detail .t-slide__title {
  margin: calc(76 * var(--fluid-px)) 0 calc(38 * var(--fluid-px));
  font-size: calc(86 * var(--fluid-px));
}

.page-interview-detail .t-slide__lead {
  font-size: calc(24 * var(--fluid-px));
}

.page-interview-detail .t-slide__slider {
  --t-slide-card-height: auto;
  margin-top: calc(64 * var(--fluid-px));
}

.page-interview-detail .t-slide__track {
  width: calc(1120 * var(--fluid-px));
  height: auto;
  overflow: visible;
  border-radius: calc(20 * var(--fluid-px));
}

.page-interview-detail .t-slide__item {
  display: none;
  position: static;
  height: auto;
  visibility: visible;
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.page-interview-detail .t-slide__item[aria-hidden="true"] {
  display: none;
}

.page-interview-detail .t-slide__item.is-active {
  display: block;
}

.page-interview-detail .t-slide__card {
  width: calc(1120 * var(--fluid-px));
  min-height: calc(540 * var(--fluid-px));
  height: auto;
  grid-template-columns: calc(328 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(80 * var(--fluid-px));
  padding: calc(60 * var(--fluid-px));
}

.page-interview-detail .t-slide__copy {
  font-size: calc(58 * var(--fluid-px));
}

.page-interview-detail .t-slide__pagination {
  right: calc(-54 * var(--fluid-px));
}

.page-interview-detail .t-slide__button {
  margin: calc(56 * var(--fluid-px)) calc(82 * var(--fluid-px)) 0 auto;
}

@media (max-width: 899px) {
  .sp-only {
    display: inline;
  }

  .page-interview-detail .interview-detail-hero__inner {
    padding: calc(142 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(72 * var(--fluid-px));
    grid-template-columns: 1fr;
    grid-template-areas:
      "content"
      "media";
    gap: calc(40 * var(--fluid-px));
  }

  .page-interview-detail .interview-detail-hero__content {
    padding-top: 0;
  }

  .page-interview-detail .interview-detail-hero__label {
    margin-bottom: calc(14 * var(--fluid-px));
    font-size: calc(18 * var(--fluid-px));
  }

  .page-interview-detail .interview-detail-hero__title {
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.45;
  }

  .page-interview-detail .interview-detail-hero__position {
    display: inline-block;
    margin-top: calc(34 * var(--fluid-px));
    padding: calc(6 * var(--fluid-px)) calc(12 * var(--fluid-px));
    font-size: 12px;
    line-height: 1.55;
  }

  .page-interview-detail .interview-detail-hero__name {
    margin-top: calc(22 * var(--fluid-px));
    font-size: calc(15 * var(--fluid-px));
  }

  .page-interview-detail .interview-detail-hero__name span {
    display: inline;
    margin-left: calc(10 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
  }

  .page-interview-detail .interview-detail-hero__lead {
    margin-top: calc(24 * var(--fluid-px));
    font-size: calc(15 * var(--fluid-px));
    line-height: 1.8;
  }

  .page-interview-detail .interview-detail-hero__image {
    width: calc(360 * var(--fluid-px));
    margin-inline: auto;
  }

  .page-interview-detail .interview-detail-hero__breadcrumb {
    margin-top: calc(40 * var(--fluid-px));
  }

  .page-interview-detail .interview-story__inner {
    width: 100%;
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .page-interview-detail .interview-block,
  .page-interview-detail .interview-block:nth-child(2),
  .page-interview-detail .interview-block--wide {
    grid-template-columns: 1fr;
    gap: calc(32 * var(--fluid-px));
    margin-bottom: calc(80 * var(--fluid-px));
  }

  .page-interview-detail .interview-block:nth-child(2) .interview-block__image,
  .page-interview-detail .interview-block:nth-child(2) .interview-block__text,
  .page-interview-detail .interview-block--wide .interview-block__image,
  .page-interview-detail .interview-block--wide .interview-block__text {
    grid-column: auto;
    grid-row: auto;
  }

  .page-interview-detail .interview-block__text h2 {
    padding: calc(12 * var(--fluid-px)) 0 calc(12 * var(--fluid-px))
      calc(33 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
    line-height: 1.75;
  }

  .page-interview-detail .interview-block__text h2::before {
    top: calc(12 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
    line-height: 1.75;
  }

  .page-interview-detail .interview-block__text p {
    margin-top: calc(24 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
    line-height: 1.9;
  }

  .page-interview-detail .interview-block--wide .interview-block__image {
    width: 100%;
  }

  .page-interview-detail .interview-block--wide .interview-block__image img {
    aspect-ratio: 400 / 200;
  }

  .page-interview-detail .interview-message__visual {
    min-height: calc(640 * var(--fluid-px));
  }

  .page-interview-detail .interview-message__mask {
    width: calc(148 * var(--fluid-px));
  }

  .page-interview-detail .interview-message__body {
    width: 100%;
    padding: 0 calc(20 * var(--fluid-px)) calc(68 * var(--fluid-px));
      calc(84 * var(--fluid-px));
  }

  .page-interview-detail .interview-message__body h2 {
    font-size: calc(32 * var(--fluid-px));
    line-height: 1.55;
  }

  .page-interview-detail .interview-message__body p {
    margin-top: calc(32 * var(--fluid-px));
    font-size: calc(16 * var(--fluid-px));
    line-height: 1.9;
  }

  .page-interview-detail .t-slide {
    min-height: 0;
    padding: calc(78 * var(--fluid-px)) calc(20 * var(--fluid-px))
      calc(92 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__inner {
    width: 100%;
    min-height: 0;
  }

  .page-interview-detail .t-slide__kicker {
    flex-direction: column-reverse;
    gap: calc(6 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__kicker-ja {
    font-size: calc(22 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__kicker-en {
    font-size: calc(14 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__title {
    margin: calc(26 * var(--fluid-px)) 0 calc(28 * var(--fluid-px));
    font-size: calc(40 * var(--fluid-px));
    line-height: 1.35;
  }

  .page-interview-detail .t-slide__lead {
    font-size: calc(14 * var(--fluid-px));
    line-height: 1.8;
  }

  .page-interview-detail .t-slide__slider {
    margin-top: calc(36 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__track,
  .page-interview-detail .t-slide__card {
    width: calc(360 * var(--fluid-px));
    margin-inline: auto;
  }

  .page-interview-detail .t-slide__card {
    min-height: calc(690 * var(--fluid-px));
    grid-template-columns: 1fr;
    gap: 0;
    padding: calc(30 * var(--fluid-px)) calc(24 * var(--fluid-px));
    border-radius: calc(16 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__number {
    order: 1;
    margin-top: 0;
    padding-bottom: calc(18 * var(--fluid-px));
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .page-interview-detail .t-slide__copy {
    order: 2;
    margin: calc(24 * var(--fluid-px)) 0 calc(28 * var(--fluid-px));
    font-size: calc(30 * var(--fluid-px));
    line-height: 1.45;
  }

  .page-interview-detail .t-slide__image {
    order: 3;
    width: calc(240 * var(--fluid-px));
    height: calc(240 * var(--fluid-px));
    margin: 0 auto calc(22 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__position {
    order: 4;
    margin-bottom: calc(14 * var(--fluid-px));
    padding: calc(7 * var(--fluid-px)) calc(10 * var(--fluid-px));
    font-size: calc(11 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__name {
    order: 5;
    font-size: calc(13 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__pagination {
    right: calc(-12 * var(--fluid-px));
    gap: calc(10 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__button {
    margin: calc(42 * var(--fluid-px)) auto 0;
  }
}

/* Final override: interview detail member slide behavior matches index.html */
.page-interview-detail .t-slide {
  position: relative;
  isolation: isolate;
  min-height: 320svh;
  padding: 0 calc(48 * var(--fluid-px));
  background: var(--t-slide-bg);
  color: var(--white);
}

.page-interview-detail .t-slide::before {
  position: sticky;
  z-index: 0;
  top: 0;
  display: block;
  width: calc(100% + calc(96 * var(--fluid-px)));
  height: 100svh;
  margin-right: calc(-48 * var(--fluid-px));
  margin-bottom: -100svh;
  margin-left: calc(-48 * var(--fluid-px));
  content: "";
  background: var(--t-slide-bg);
  pointer-events: none;
}

.page-interview-detail .t-slide__inner {
  position: sticky;
  z-index: 1;
  top: var(--t-slide-sticky-top, 0);
  width: min(calc(1200 * var(--fluid-px)), 100%);
  min-height: 100svh;
  margin-inline: auto;
  padding: calc(170 * var(--fluid-px)) 0 calc(160 * var(--fluid-px));
}

.page-interview-detail .t-slide__slider {
  --t-slide-card-height: calc(588 * var(--fluid-px));
  position: relative;
  z-index: 2;
  margin-top: calc(62 * var(--fluid-px));
}

.page-interview-detail .t-slide__track {
  position: relative;
  width: auto;
  height: var(--t-slide-card-height);
  overflow: hidden;
  border-radius: calc(20 * var(--fluid-px));
  isolation: isolate;
}

.page-interview-detail .t-slide__item,
.page-interview-detail .t-slide__item[aria-hidden="true"] {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  display: block;
  height: var(--t-slide-card-height);
  visibility: visible;
  opacity: 1;
  transform: translate3d(0, 100%, 0);
  pointer-events: none;
  will-change: transform;
}

.page-interview-detail .t-slide__item:nth-child(1) {
  z-index: 1;
  transform: translate3d(0, 0, 0);
}

.page-interview-detail .t-slide__item:nth-child(2) {
  z-index: 2;
}

.page-interview-detail .t-slide__item:nth-child(3) {
  z-index: 3;
}

.page-interview-detail .t-slide__item.is-active {
  pointer-events: auto;
}

.page-interview-detail .t-slide__card {
  width: auto;
  height: 100%;
  min-height: calc(588 * var(--fluid-px));
  margin: 0;
  grid-template-columns: calc(328 * var(--fluid-px)) minmax(0, 1fr);
  gap: calc(80 * var(--fluid-px));
  padding: calc(60 * var(--fluid-px)) calc(60 * var(--fluid-px))
    calc(60 * var(--fluid-px)) calc(80 * var(--fluid-px));
}

.page-interview-detail .t-slide__title {
  margin: calc(64 * var(--fluid-px)) 0 calc(34 * var(--fluid-px));
}

.page-interview-detail .t-slide__copy {
  margin: calc(28 * var(--fluid-px)) 0 calc(26 * var(--fluid-px));
  font-size: calc(62 * var(--fluid-px));
  line-height: 1.34;
}

.page-interview-detail .t-slide__content {
  display: flex;
}

.page-interview-detail .t-slide__card-link {
  display: inline-flex;
}

.page-interview-detail .t-slide__pagination {
  right: calc(-44 * var(--fluid-px));
}

.page-interview-detail .t-slide__button {
  display: flex;
  width: fit-content;
  margin: calc(64 * var(--fluid-px)) 0 0 auto;
}

@media (min-width: 900px) and (max-width: 1439px) {
  .page-interview-detail .t-slide {
    --t-slide-narrow-px: var(--pc-vw-px);
    padding: 0 calc(48 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide::before {
    width: calc(100% + calc(96 * var(--t-slide-narrow-px)));
    margin-right: calc(-48 * var(--t-slide-narrow-px));
    margin-left: calc(-48 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__inner {
    width: min(calc(1200 * var(--t-slide-narrow-px)), 100%);
    padding: calc(170 * var(--t-slide-narrow-px)) 0
      calc(160 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__kicker {
    gap: calc(32 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__kicker-ja {
    font-size: calc(46 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__kicker-en {
    font-size: calc(20 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__title {
    margin: calc(64 * var(--t-slide-narrow-px)) 0
      calc(34 * var(--t-slide-narrow-px));
    font-size: 5.787037037vw;
    line-height: 1.2;
    letter-spacing: 0.2314814815vw;
  }

  .page-interview-detail .t-slide__lead {
    font-size: 1.3888888889vw;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.1em;
  }

  .page-interview-detail .t-slide__slider {
    --t-slide-card-height: calc(588 * var(--t-slide-narrow-px));
    margin-top: calc(62 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__track {
    height: var(--t-slide-card-height);
    border-radius: calc(20 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__item,
  .page-interview-detail .t-slide__item[aria-hidden="true"] {
    height: var(--t-slide-card-height);
  }

  .page-interview-detail .t-slide__card {
    min-height: calc(588 * var(--t-slide-narrow-px));
    grid-template-columns: calc(328 * var(--t-slide-narrow-px)) minmax(0, 1fr);
    gap: calc(80 * var(--t-slide-narrow-px));
    padding: calc(60 * var(--t-slide-narrow-px))
      calc(60 * var(--t-slide-narrow-px)) calc(60 * var(--t-slide-narrow-px))
      calc(80 * var(--t-slide-narrow-px));
    border-radius: calc(20 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__image {
    width: calc(328 * var(--t-slide-narrow-px));
    height: calc(468 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__number {
    margin-top: calc(6 * var(--t-slide-narrow-px));
    padding-bottom: calc(22 * var(--t-slide-narrow-px));
    font-size: calc(24 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__copy {
    margin: calc(28 * var(--t-slide-narrow-px)) 0
      calc(26 * var(--t-slide-narrow-px));
    font-size: calc(62 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__position {
    max-width: min(100%, calc(520 * var(--t-slide-narrow-px)));
    margin-bottom: calc(18 * var(--t-slide-narrow-px));
    padding: calc(8 * var(--t-slide-narrow-px))
      calc(14 * var(--t-slide-narrow-px));
    border-radius: calc(6 * var(--t-slide-narrow-px));
    font-size: calc(18 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__name {
    font-size: calc(20 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__card-link::before,
  .page-interview-detail .t-slide__card-link::after {
    width: calc(80 * var(--t-slide-narrow-px));
    height: calc(80 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__card-link svg {
    right: calc(32 * var(--t-slide-narrow-px));
    bottom: calc(32 * var(--t-slide-narrow-px));
    width: calc(16 * var(--t-slide-narrow-px));
    height: calc(16 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__pagination {
    right: calc(-44 * var(--t-slide-narrow-px));
    gap: calc(14 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__dot {
    width: calc(12 * var(--t-slide-narrow-px));
    height: calc(12 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__dot.is-active {
    outline-width: calc(2 * var(--t-slide-narrow-px));
    outline-offset: calc(4 * var(--t-slide-narrow-px));
  }

  .page-interview-detail .t-slide__button {
    margin-top: calc(64 * var(--t-slide-narrow-px));
  }
}

@media (max-width: 899px) {
  .page-interview-detail .t-slide {
    --t-slide-sp-px: var(--fluid-px);
    min-height: 320svh;
    padding: 0 calc(20 * var(--fluid-px));
  }

  .page-interview-detail .t-slide::before {
    display: block;
    width: calc(100% + calc(40 * var(--fluid-px)));
    margin-right: calc(-20 * var(--fluid-px));
    margin-left: calc(-20 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__inner {
    position: sticky;
    top: var(--t-slide-sticky-top, 0);
    width: 100%;
    min-height: 100svh;
    padding: calc(78 * var(--fluid-px)) 0 calc(70 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__kicker {
    flex-direction: column-reverse;
    gap: calc(4 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__kicker-ja {
    font-size: calc(32 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__kicker-en {
    font-size: calc(20 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__title {
    margin: calc(24 * var(--fluid-px)) 0 calc(24 * var(--fluid-px));
    font-size: calc(54 * var(--fluid-px));
    line-height: 1.35;
  }

  .page-interview-detail .t-slide__lead {
    font-size: max(14px, calc(16 * var(--fluid-px)));
    line-height: 1.8;
  }

  .page-interview-detail .t-slide__slider {
    --t-slide-card-height: calc(588 * var(--fluid-px));
    margin-top: calc(32 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__track {
    width: min(100%, calc(340 * var(--fluid-px)));
    height: var(--t-slide-card-height);
    margin: 0 auto;
    overflow: hidden;
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__item,
  .page-interview-detail .t-slide__item[aria-hidden="true"] {
    position: absolute;
    display: block;
    height: var(--t-slide-card-height);
    transform: translate3d(0, 100%, 0);
    pointer-events: none;
  }

  .page-interview-detail .t-slide__card {
    width: min(100%, calc(340 * var(--fluid-px)));
    min-height: calc(588 * var(--fluid-px));
    margin: 0 auto;
    /* 中身を縦中央寄せ。トップ(.page-home)と統一し、カード上下の余白を常に均等に保つ。 */
    align-content: center;
    grid-template-columns: 1fr;
    gap: 0;
    padding: calc(24 * var(--fluid-px)) calc(20 * var(--fluid-px));
    border-radius: calc(8 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__content {
    display: contents;
  }

  .page-interview-detail .t-slide__number {
    order: 1;
    padding-bottom: calc(13 * var(--fluid-px));
    font-size: 12px;
  }

  .page-interview-detail .t-slide__copy {
    order: 2;
    margin: calc(18 * var(--fluid-px)) 0 calc(20 * var(--fluid-px));
    font-size: calc(21 * var(--fluid-px));
    line-height: 1.38;
  }

  .page-interview-detail .t-slide__image {
    order: 3;
    width: calc(260 * var(--fluid-px));
    height: calc(260 * var(--fluid-px));
    margin: 0 auto calc(16 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__position {
    order: 4;
    margin-bottom: calc(12 * var(--fluid-px));
    padding: calc(6 * var(--fluid-px)) calc(8 * var(--fluid-px));
    font-size: calc(14 * var(--fluid-px));
    line-height: 1.6;
  }

  .page-interview-detail .t-slide__name {
    order: 5;
    font-size: max(14px, calc(16 * var(--fluid-px)));
  }

  .page-interview-detail .t-slide__card-link {
    display: block;
  }

  .page-interview-detail .t-slide__pagination {
    right: calc(3 * var(--fluid-px));
    gap: calc(7 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__dot {
    width: calc(8 * var(--fluid-px));
    height: calc(8 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__dot.is-active {
    outline-width: calc(1 * var(--fluid-px));
    outline-offset: calc(3 * var(--fluid-px));
  }

  .page-interview-detail .t-slide__button {
    margin: calc(30 * var(--fluid-px)) auto 0;
  }
}
/* Subpage first-view reveal */
.page-openings .hero__label,
.page-detail .hero__eyebrow,
.interviews-hero__label,
.data-hero__label,
.faq-hero__label,
.entry-hero__label,
.interview-detail-hero__label {
  opacity: 0;
  filter: blur(calc(10 * var(--fluid-px)));
  transform: translate3d(0, calc(18 * var(--fluid-px)), 0);
  animation: subpage-soft-up 1800ms cubic-bezier(0.22, 0.8, 0.36, 1) 120ms both;
  will-change: opacity, filter, transform;
}

.page-openings .hero__title,
.page-detail .hero h1,
.interviews-hero__title,
.data-hero__title,
.faq-hero__title,
.entry-hero__title,
.interview-detail-hero__title {
  opacity: 0;
  filter: blur(calc(10 * var(--fluid-px)));
  clip-path: inset(100% 0 0 0);
  transform: translate3d(0, calc(22 * var(--fluid-px)), 0);
  animation: subpage-text-mask-up 1800ms cubic-bezier(0.22, 0.8, 0.36, 1) 120ms
    both;
  will-change: opacity, filter, clip-path, transform;
  letter-spacing: 0.05em;
}

.page-openings .hero__desc,
.interviews-hero__desc,
.data-hero__desc,
.faq-hero__desc,
.entry-hero__desc,
.interview-detail-hero__position,
.interview-detail-hero__name,
.interview-detail-hero__lead {
  opacity: 0;
  filter: blur(calc(10 * var(--fluid-px)));
  transform: translate3d(0, calc(18 * var(--fluid-px)), 0);
  animation: subpage-soft-up 1800ms cubic-bezier(0.22, 0.8, 0.36, 1) 120ms both;
  will-change: opacity, filter, transform;
}

.page-openings .breadcrumb,
.page-detail .breadcrumb,
.interviews-hero__breadcrumb,
.data-hero__breadcrumb,
.faq-hero__breadcrumb,
.entry-hero__breadcrumb,
.interview-detail-hero__breadcrumb {
  opacity: 0;
  filter: blur(calc(8 * var(--fluid-px)));
  transform: translate3d(0, calc(16 * var(--fluid-px)), 0);
  animation: subpage-soft-up 1800ms cubic-bezier(0.22, 0.8, 0.36, 1) 120ms both;
  will-change: opacity, filter, transform;
}

.main-visual,
.interviews-visual,
.data-visual,
.faq-visual,
.interview-detail-hero__image {
  opacity: 0;
  filter: blur(calc(10 * var(--fluid-px)));
  transform: translate3d(0, calc(28 * var(--fluid-px)), 0);
  animation: subpage-soft-up 1800ms cubic-bezier(0.22, 0.8, 0.36, 1) 120ms both;
  will-change: opacity, filter, transform;
}

@keyframes subpage-soft-up {
  from {
    opacity: 0;
    filter: blur(calc(10 * var(--fluid-px)));
    transform: translate3d(0, calc(20 * var(--fluid-px)), 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes subpage-text-mask-up {
  from {
    opacity: 0;
    filter: blur(calc(10 * var(--fluid-px)));
    clip-path: inset(100% 0 0 0);
    transform: translate3d(0, calc(22 * var(--fluid-px)), 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    clip-path: inset(0 0 0 0);
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-openings .hero__label,
  .page-detail .hero__eyebrow,
  .interviews-hero__label,
  .data-hero__label,
  .faq-hero__label,
  .entry-hero__label,
  .interview-detail-hero__label,
  .page-openings .hero__title,
  .page-detail .hero h1,
  .interviews-hero__title,
  .data-hero__title,
  .faq-hero__title,
  .entry-hero__title,
  .interview-detail-hero__title,
  .page-openings .hero__desc,
  .interviews-hero__desc,
  .data-hero__desc,
  .faq-hero__desc,
  .entry-hero__desc,
  .interview-detail-hero__position,
  .interview-detail-hero__name,
  .interview-detail-hero__lead,
  .page-openings .breadcrumb,
  .page-detail .breadcrumb,
  .interviews-hero__breadcrumb,
  .data-hero__breadcrumb,
  .faq-hero__breadcrumb,
  .entry-hero__breadcrumb,
  .interview-detail-hero__breadcrumb,
  .main-visual,
  .interviews-visual,
  .data-visual,
  .faq-visual,
  .interview-detail-hero__image {
    opacity: 1;
    filter: none;
    clip-path: inset(0 0 0 0);
    transform: none;
    animation: none;
  }
}

/* ============================================================
 * グラデーションボタン(.btn-entry)に黒ボタンの仕様
 * （font-size 20px / padding 24px 40px / 矢印 16px）を適用。
 * PC(900px〜)のみ＝ヘッダーのSP特殊仕様(矢印なし)や
 * その他SP表示は現状維持。ホバーアニメは対象外（背景・hoverは非変更）。
 * ============================================================ */
@media (min-width: 900px) {
  /* 詳細ページのエントリーボタン：黒/グラデーションボタンと同じく中身サイズの通常ボタンに。
     display:flex のままだと全幅化するため width:fit-content で中身＋padding(24px40px)の幅にし、
     中央寄せは .detail-entry の margin:… auto が担当。 */
  .detail-entry.btn-entry {
    width: fit-content;
    height: auto;
    padding: 24px 40px;
    font-size: 20px;
  }

  .detail-entry.btn-entry .inline-arrow {
    width: 16px;
    height: 16px;
  }

  /* ヘッダーのエントリーボタン：固定pxだと900px付近で大きくなりすぎるため、
     1728px時点で 20px / 24px40px / 矢印16px になるvw比率指定（周囲と等比縮小） */
  .header .btn-entry {
    width: auto;
    height: auto;
    padding: calc(24 * var(--fluid-px)) calc(40 * var(--fluid-px));
    font-size: calc(20 * var(--fluid-px));
  }

  .header .btn-entry .inline-arrow {
    width: calc(16 * var(--fluid-px));
    height: calc(16 * var(--fluid-px));
  }
}

/* ============================================================
 * 下限固定(--fluid-floor-width)だと 900px 付近で大きくなりすぎて崩れる
 * コンポーネントは、そこだけ下限を外して純vw（--pc-vw-px）に戻す。
 * ＝狭い画面では小さくなるが、レイアウトは崩れない（崩れ防止を優先）。
 * PC(900px〜)限定。SPは別変数のため影響なし。
 * ============================================================ */
@media (min-width: 900px) {
  .top-hero__content,  /* FV(ファーストビュー)のテキスト・ボタン（固定高さのFVからはみ出すため） */
  .home-business,          /* 私たちがやっていること（PCスライダーの画像カラムが固定幅） */
  .cta__cards,             /* フッター上の3枚カード（エントリー/カジュアル面談/募集要項） */
  .casual__content,        /* カジュアル面談パネル（画像＋テキスト＋ボタン） */
  .top-hero__content,      /* FVのテキスト：下限で縦に伸びてボタンを押し出し見切れるため下限なしに戻す */
  .page-home .t-slide__inner {
    /* メンバーインタビュー：セクション全体を丸ごとvw比率で統一。
                                  見出し・黒スライド・ボタンが同じ1200比率の中央列に揃う
                                  （1728pxで幅1200px、以降は等比縮小） */
    --fluid-px: var(--pc-vw-px);
  }
}

/* ============================================================
 * ボタン共通構造。
 * HTMLのクラスは変更せず、色・配置・hoverは各コンポーネント側に残す。
 * 1728px以下は固定px、1729px以上は1728基準で等比拡大。
 * ============================================================ */
:root {
  --shared-button-gap: 60px;
  --shared-button-padding-y: 24px;
  --shared-button-padding-x: 40px;
  --shared-button-font-size: 20px;
  --shared-button-letter-spacing: 0.1em;
  --shared-button-arrow-size: 16px;
}

@media (max-width: 899px) {
  :root {
    /* 440pxで20px、狭い画面では比例縮小し、可読性のため18pxを下限にする。 */
    --shared-button-font-size: clamp(18px, calc(20 * var(--sp-vw-px)), 20px);
  }
}

@media (min-width: 1729px) {
  :root {
    --shared-button-gap: calc(60 * var(--pc-vw-px));
    --shared-button-padding-y: calc(24 * var(--pc-vw-px));
    --shared-button-padding-x: calc(40 * var(--pc-vw-px));
    --shared-button-font-size: calc(20 * var(--pc-vw-px));
    --shared-button-letter-spacing: 0.1em;
    --shared-button-arrow-size: calc(16 * var(--pc-vw-px));
  }
}

.btn-casual,
.btn-jobs,
.home-more-button,
.t-slide__button,
.detail-entry.btn-entry,
.page-entry .entry-form__button,
.entry-complete-button--primary,
.site-menu__button--casual,
.site-menu__button--entry {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--shared-button-gap);
  padding: var(--shared-button-padding-y) var(--shared-button-padding-x);
  border-radius: 999px;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: var(--shared-button-font-size);
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.1em;
  overflow: hidden;
  isolation: isolate;
}

.btn-casual .inline-arrow,
.btn-jobs svg,
.home-more-button .inline-arrow,
.t-slide__button svg,
.detail-entry.btn-entry .inline-arrow,
.page-entry .entry-form__button svg,
.entry-complete-button--primary svg,
.site-menu__button--casual .inline-arrow,
.site-menu__button--entry .inline-arrow {
  flex: 0 0 auto;
  width: var(--shared-button-arrow-size);
  height: var(--shared-button-arrow-size);
}

.detail-entry.btn-entry {
  display: flex;
  width: fit-content;
  margin-right: auto;
  margin-left: auto;
}

/* ============================================================
 * スクロールでふわっと表示（サイト全体）。
 * .reveal はJSが付与し、ビューポートに入ると .is-revealed が付く。
 * JS未実行時は素の表示（＝クラスが付かず可視）。
 * prefers-reduced-motion 時は演出を無効化（常に可視）。
 * ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(32px);
    transition:
      opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
  }

  .reveal.is-revealed {
    opacity: 1;
    transform: none;
  }

  .home-deck__embed.reveal {
    opacity: 0;
    filter: blur(14px);
    transform: translate3d(0, 64px, 0) scale(0.975);
    transition:
      opacity 1.15s cubic-bezier(0.22, 1, 0.36, 1),
      filter 1.2s cubic-bezier(0.22, 1, 0.36, 1),
      transform 1.15s cubic-bezier(0.19, 1, 0.22, 1);
    will-change: opacity, filter, transform;
  }

  .home-deck__embed.reveal.is-revealed {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* ============================================================
 * Contact Form 7 互換（エントリーフォーム）
 * ショートコードに html_class="entry-form" を付与して既存スタイルを流用しつつ、
 * CF7が挿入するラッパー/検証メッセージ/送信ボタン(input)をデザインに馴染ませる。
 * フォーム内容のテンプレートはテーマ同梱 cf7-entry-form.txt を参照。
 * ============================================================ */
.entry-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  min-width: 0;
}

/* 同意チェック（acceptance）は中身サイズで横並び */
.entry-form__agree .wpcf7-form-control-wrap {
  display: inline-block;
  width: auto;
}

/* ファイル欄（履歴書/職務経歴書）: CF7のラッパーが width:100% で
   ボタン・ファイル名を下段へ押し出すため、レイアウトから外して
   項目名・ボタン・テキストの高さを1行に揃える（中のinputは非表示のまま） */
.page-entry .entry-form__file .wpcf7-form-control-wrap {
  display: contents;
}

/* 単一行になるので行内で上下中央に揃える */
.page-entry .entry-form__row--file {
  align-items: center;
}

.page-entry .entry-form__file {
  align-items: center;
}

/* CF7 autop等で <p>/<br> が混入しても段落ちさせない保険。
   <p> はレイアウトから外し、<br> は無効化して1行を維持する。 */
.page-entry .entry-form__file p {
  display: contents;
}

.page-entry .entry-form__file br {
  display: none;
}

.entry-form .wpcf7-list-item {
  margin: 0;
}

.entry-form__agree .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: calc(10 * var(--fluid-px));
}

/* 入力エラーメッセージ */
.entry-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: calc(8 * var(--fluid-px));
  color: #d0342c;
  font-size: calc(14 * var(--fluid-px));
  font-weight: 500;
}

/* 送信結果メッセージ（成功時はテーマJSがサンクスページへ遷移するため主にエラー用） */
.entry-form .wpcf7-response-output {
  margin: calc(28 * var(--fluid-px)) 0 0;
  padding: calc(14 * var(--fluid-px)) calc(18 * var(--fluid-px));
  border: calc(1 * var(--fluid-px)) solid #d0342c;
  border-radius: calc(4 * var(--fluid-px));
  color: #d0342c;
  font-size: calc(15 * var(--fluid-px));
}

/* 送信ボタン：CF7は<input>要素のため既存ボタンの見た目（黒＋矢印）を適用。
   矢印は子要素を置けないので、背景画像（SVGデータURI）で再現。
   フォームに付くクラス（.entry-form）に依存せずエントリーページなら必ず
   適用されるよう、body の .page-entry を基準にする。CF7フォームの[submit]に
   別クラス（.pill-button 等）が付いていても黒＋矢印が確実に優先される。 */
.page-entry .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 24px 96px 24px 40px;
  border: 0;
  border-radius: 999px;
  background-color: var(--black) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M1 17L17 1' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1 1H17V17' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat;
  background-position: right 40px center;
  background-size: 16px 16px;
  color: var(--white);
  font-size: calc(20 * var(--fluid-px));
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

@media (hover: hover) {
  .page-entry .wpcf7-submit:hover {
    opacity: 0.85;
  }
}

.page-entry .wpcf7-spinner {
  margin-left: calc(12 * var(--fluid-px));
}

/* メンバーインタビュー背景。
   PCは各 .t-slide の slide_bg.webp、SPはiOSのセーフエリアまで塗るためbodyに単色を出す。 */
@media (max-width: 899px) {
  :root {
    --t-slide-sp-bg-solid: #5296d4;
    --t-slide-sp-bg-gradient:
      radial-gradient(
        115% 95% at 6% 92%,
        #5cd6e8 0%,
        rgba(92, 214, 232, 0) 50%
      ),
      linear-gradient(
        180deg,
        rgba(19, 43, 88, 0.82) 0%,
        rgba(19, 43, 88, 0.48) 24%,
        rgba(19, 43, 88, 0) 46%
      ),
      linear-gradient(180deg, #3498db 0%, #3fa2dc 62%, #4aa6dd 100%);
    --t-slide-sp-bg-current: var(--t-slide-sp-bg-solid);
  }

  body.t-slide-bg-on {
    background: var(--t-slide-sp-bg-current);
  }

  /* セクション/擬似要素の背景は透過し、body のグラデーションを全面に見せる */
  .page-home .t-slide,
  .page-interview-detail .t-slide {
    background: transparent;
  }

  .page-home .t-slide::before,
  .page-interview-detail .t-slide::before {
    display: none;
  }

  /* ロゴマスクを停止した個人ページはbodyの背景を切り替えず、
     メンバーインタビューセクション自身に青背景を持たせる。 */
  body.page-interview-static-bg {
    background: var(--bg);
  }

  .page-interview-static-bg .t-slide {
    background: var(--t-slide-sp-bg-solid);
  }
}

/* Interview story: Figma two-image layout */
.page-interview-detail .interview-story--two-images .interview-story__inner {
  width: min(calc(1200 * var(--fluid-px)), 100%);
  padding: calc(160 * var(--fluid-px)) 0;
}

.page-interview-detail .interview-story--two-images .interview-block,
.page-interview-detail
  .interview-story--two-images
  .interview-block:nth-child(2),
.page-interview-detail .interview-story--two-images .interview-block--wide {
  display: block;
  margin: 0 0 calc(112 * var(--fluid-px));
  padding: 0;
  border: 0;
}

.page-interview-detail
  .interview-story--two-images
  .interview-block:last-child {
  margin-bottom: 0;
}

.page-interview-detail
  .interview-story--two-images
  .interview-block:nth-child(2)
  .interview-block__text,
.page-interview-detail
  .interview-story--two-images
  .interview-block:nth-child(2)
  .interview-block__image,
.page-interview-detail
  .interview-story--two-images
  .interview-block--wide
  .interview-block__text,
.page-interview-detail
  .interview-story--two-images
  .interview-block--wide
  .interview-block__image {
  width: 100%;
}

.page-interview-detail .interview-story--two-images .interview-block__text p {
  margin-top: calc(32 * var(--fluid-px));
}

.page-interview-detail .interview-story--two-images .interview-block__image {
  width: 100%;
  margin-top: calc(72 * var(--fluid-px));
  overflow: hidden;
}

.page-interview-detail .interview-story--two-images .interview-block__image img,
.page-interview-detail
  .interview-story--two-images
  .interview-block--wide
  .interview-block__image
  img {
  width: 100%;
  aspect-ratio: 1200 / 597;
  object-fit: cover;
}

@media (max-width: 899px) {
  .page-interview-detail .interview-story--two-images .interview-story__inner {
    width: 100%;
    padding: calc(80 * var(--fluid-px)) calc(20 * var(--fluid-px));
  }

  .page-interview-detail .interview-story--two-images .interview-block,
  .page-interview-detail
    .interview-story--two-images
    .interview-block:nth-child(2),
  .page-interview-detail .interview-story--two-images .interview-block--wide {
    margin-bottom: calc(72 * var(--fluid-px));
  }

  .page-interview-detail
    .interview-story--two-images
    .interview-block:last-child {
    margin-bottom: 0;
  }

  .page-interview-detail .interview-story--two-images .interview-block__text p {
    margin-top: calc(24 * var(--fluid-px));
  }

  .page-interview-detail .interview-story--two-images .interview-block__image {
    margin-top: calc(48 * var(--fluid-px));
  }

  .page-interview-detail
    .interview-story--two-images
    .interview-block__image
    img,
  .page-interview-detail
    .interview-story--two-images
    .interview-block--wide
    .interview-block__image
    img {
    aspect-ratio: 16 / 9;
  }
}
