/* ==========================================================================
   # Gutenberg custom blocks
   ========================================================================== */

.wp-block-nakayama-hero,
.wp-block-nakayama-strength-item,
.wp-block-nakayama-rd-section,
.wp-block-nakayama-stats,
.wp-block-nakayama-sample-section,
.wp-block-nakayama-products,
.wp-block-nakayama-technology,
.wp-block-nakayama-equipment,
.wp-block-nakayama-faq,
.wp-block-nakayama-materials,
.wp-block-nakayama-solution-nav,
.wp-block-nakayama-solution-needs,
.wp-block-nakayama-solution,
.wp-block-nakayama-quality,
.wp-block-nakayama-company,
.wp-block-nakayama-talk-chat {
  max-width: none;
}

.nk-media-placeholder,
.nk-media-edit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 180px;
  padding: 0;
  border: 0;
  background: #ecf1f5;
  cursor: pointer;
}

.nk-media-edit img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nk-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 377px;
  max-width: 100%;
  height: 60px;
  padding: 0 20px 0 30px;
  background: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
  color: #fff;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.0625em;
  line-height: 1.4375;
  border-radius: 4px;
  text-decoration: none;
}

.nk-cta:hover {
  opacity: 0.8;
  color: #fff;
}

.nk-cta[data-cta-roll]:hover,
.nk-cta[data-cta-roll]:focus-visible {
  opacity: 1;
}

.nk-cta[data-cta-roll] .nk-cta__label {
  min-width: 0;
  overflow: hidden;
}

.nk-cta::after {
  content: "";
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  background: #fff;
  border-radius: 50%;
}

.nk-cta--compact {
  width: 242px;
}

.nk-cta .nk-cta__label {
  min-width: 0;
}

.wp-block-nakayama-cta-button {
  max-width: 377px;
}

/* Hero
   ========================================================================== */

.nk-hero {
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: none;
  min-height: 517px;
  padding: 140px 0 140px;
  background-color: #fff;
  background-image: url("../images/custom-block-main-visual-background.svg?v=0.1.23");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% 100%;
}

.nk-hero .nk-hero__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--nk-header-width);
  margin-inline: auto;
  padding-inline: 0;
}

/* パンくずはヘッダー直下の右寄せ */
.nk-hero__breadcrumb {
  margin: 0 0 12px;
  padding-inline: 30px 57px;
  color: #333;
  font-size: 12px;
  line-height: 25px;
  letter-spacing: 0.1em;
  text-align: right;
}

.nk-hero .c-top-section-title__main {
  margin-top: 8px;
  font-size: clamp(42px, 27.92px + 3.76vw, 80px);
  line-height: 1.07;
  overflow: visible;
}

/* タイトルの下に説明文を置く */
.nk-hero__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 23px;
  padding-inline: 30px;
}

.nk-hero__lead {
  max-width: 760px;
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 29px;
  letter-spacing: 0.02em;
}

@media (max-width: 768px) {
  .nk-hero {
    min-height: 0;
    padding: 100px 0 88px;
  }

  .nk-hero__breadcrumb {
    margin-bottom: 20px;
    padding-inline: 0;
    text-align: left;
  }

  .nk-hero__head {
    gap: 16px;
    padding-inline: 0;
  }

  .nk-hero .c-top-section-title__main {
    font-size: 44px;
  }

  .nk-hero__lead {
    font-size: 14px;
    line-height: 1.8;
  }
}

.nk-hero + *,
.wp-block-nakayama-hero + * {
  margin-top: 40px;
}

@media (max-width: 480px) {
  .nk-hero + *,
  .wp-block-nakayama-hero + * {
    margin-top:0px;
  }
  
}
/* Strength item
   ========================================================================== */

.nk-strength-item {
  padding: 80px 0;
  /* ページ内リンクで固定ヘッダーに隠れないようにする */
  scroll-margin-top: 100px;
}

.nk-strength-item.is-muted {
  padding: 100px 0;
  background: #ecf1f5;
}

.nk-strength-item__inner {
  display: flex;
  align-items: flex-start;
  gap: 60px;
}

.nk-strength-item.is-right .nk-strength-item__body {
  order: 1;
}

.nk-strength-item.is-right .nk-strength-item__media {
  order: 2;
}

.nk-strength-item.is-left .nk-strength-item__body {
  order: 2;
}

.nk-strength-item.is-left .nk-strength-item__media {
  order: 1;
}

.nk-strength-item__body,
.nk-strength-item__media {
  flex: 1 1 0;
  min-width: 0;
}

.nk-strength-item__body p {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.75;
  letter-spacing: 0.006em;
}

.nk-strength-item__body .wp-block-nakayama-cta-button,
.nk-strength-item__body .nk-cta {
  margin-top: 16px;
}

.nk-strength-heading {
  display: flex;
  align-items: stretch;
  gap: 20px;
  margin-bottom: 40px;
}

.nk-strength-heading__number {
  flex-shrink: 0;
  /* 縦線と見出しの高さに対して、番号を上下中央に置く */
  align-self: center;
  color: #1a5eaa;
  font-family: "Figtree", sans-serif;
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.03125em;
}

.nk-strength-heading__copy {
  position: relative;
  padding-left: 20px;
}

.nk-strength-heading__copy::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5px;
  background: linear-gradient(180deg, #1a5eaa 0%, #39b54a 100%);
}

.nk-strength-heading__title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.286;
}

.nk-strength-heading__sub {
  margin: 4px 0 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

/* 本文の段落用の余白（.nk-strength-item__body p）が見出しに付かないようにする */
.nk-strength-item .nk-strength-heading .nk-strength-heading__title {
  margin: 0;
}

.nk-strength-item .nk-strength-heading .nk-strength-heading__sub {
  margin: 4px 0 0;
}

.nk-callout {
  padding: 32px 32px 40px;
  border-radius: 4px;
}

.nk-callout.is-muted {
  background: #ecf1f5;
}

.nk-callout.is-surface {
  background: #fff;
}

.nk-callout__label {
  display: inline-flex;
  align-items: center;
  margin: 0 0 12px;
  padding: 4px 20px 3px;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.03125em;
  line-height: 1.25;
}

.nk-callout.is-muted .nk-callout__label {
  background: #fff;
}

.nk-callout.is-surface .nk-callout__label {
  background: #ecf1f5;
}

.nk-callout__body p,
.nk-callout__body li {
  margin: 0;
  font-size: 14px;
  line-height: 1.4286;
  letter-spacing: 0.03125em;
}

.nk-callout__body p + p,
.nk-callout__body li + li {
  margin-top: 6px;
}

/* リストブロック：段落と同じ「・」付きの見た目にする */
.nk-callout__body ul,
.nk-callout__body ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-callout__body ul > li {
  position: relative;
  padding-left: 1em;
}

.nk-callout__body ul > li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

.nk-callout__body ol {
  counter-reset: nk-callout;
}

.nk-callout__body ol > li {
  position: relative;
  padding-left: 1.5em;
  counter-increment: nk-callout;
}

.nk-callout__body ol > li::before {
  content: counter(nk-callout) ".";
  position: absolute;
  left: 0;
  top: 0;
}

.nk-callout__body * + ul,
.nk-callout__body * + ol,
.nk-callout__body ul + *,
.nk-callout__body ol + * {
  margin-top: 8px;
}

/* リストブロックが続くときは、まとまりが分かるように間を広めにとる */
.nk-callout__body :is(ul, ol) + :is(ul, ol) {
  margin-top: 16px;
}

.nk-strength-item__media {
  position: relative;
}

.nk-strength-item.is-grid .nk-strength-item__media {
  flex: 1 1 530px;
  width: 100%;
  max-width: 530px;
  padding-top: 32px;
}

.nk-strength-item.is-grid .nk-strength-item__body {
  flex: 1 1 0;
}

.nk-strength-item.is-grid .nk-strength-heading__title {
  font-size: 24px;
  line-height: 36px;
}

.nk-strength-item.is-grid .nk-strength-heading__sub {
  margin-top: 4px;
  font-size: 16.8px;
  line-height: 28px;
}

.nk-strength-item__badge {
  position: absolute;
  top: -48px;
  left: 50%;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  margin: 0;
  padding: 10px 20px;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 4px 16px rgba(27, 93, 168, 0.08);
}

.nk-strength-item__badge::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 16px;
  height: 16px;
  background: #fff;
  transform: translateX(-50%) rotate(45deg);
}

.nk-strength-item.is-grid .nk-strength-item__badge {
  top: -5%;
  box-sizing: border-box;
  width: 355px;
  max-width: 100%;
  height: 52px;
  min-width: 0;
  padding: 0 28px 10px;
  color: #fff;
  background: url("../images/strengths/badge-bubble.svg") center / 100% 100% no-repeat;
  border-radius: 0;
  box-shadow: none;
  letter-spacing: 0.03125em;
  line-height: 1.375;
  white-space: nowrap;
}

.nk-strength-item.is-grid .nk-strength-item__badge::after {
  content: none;
}

.nk-strength-item.is-single .nk-strength-item__media-grid,
.nk-strength-item.is-stacked .nk-strength-item__media-grid,
.nk-strength-item.is-grid .nk-strength-item__media-grid {
  display: grid;
  gap: 12px;
}

.nk-strength-item.is-single .nk-strength-item__media-grid {
  grid-template-columns: 1fr;
}

.nk-strength-item.is-stacked .nk-strength-item__media-grid {
  grid-template-columns: 1fr;
}

.nk-strength-item.is-grid .nk-strength-item__media-grid {
  grid-template-columns: 1fr 1fr;
  gap: 13px 10px;
}

.nk-strength-item__figure {
  position: relative;
  overflow: hidden;
  margin: 0;
  background: #ecf1f5;
}

.nk-strength-item__figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nk-strength-item.is-single .nk-strength-item__figure,
.nk-strength-item.is-single .nk-strength-item__figure img,
.nk-strength-item.is-single .nk-media-edit {
  min-height: 370px;
}

.nk-strength-item.is-stacked .nk-strength-item__figure,
.nk-strength-item.is-stacked .nk-media-edit {
  min-height: 206px;
}

/* 1枚・2枚（縦）の画像：キャプションは画像の下に右揃え（4枚グリッドは画像の上に重ねる表示のまま） */
.nk-strength-item:not(.is-grid) .nk-strength-item__figure:has(figcaption) {
  overflow: visible;
  background: none;
}

.nk-strength-item.is-stacked .nk-strength-item__figure img {
  min-height: 206px;
}

.nk-strength-item:not(.is-grid) .nk-strength-item__figure img {
  background: #ecf1f5;
}

/* キャプションがあるときは、画像を枠いっぱいに伸ばさず、キャプションの分の高さを残す */
.nk-strength-item:not(.is-grid) .nk-strength-item__figure:has(figcaption) img {
  height: auto;
}

.nk-strength-item:not(.is-grid) figcaption {
  margin-top: 8px;
  color: #555;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.03em;
  text-align: right;
}

.nk-strength-item.is-grid .nk-strength-item__figure,
.nk-strength-item.is-grid .nk-media-edit {
  aspect-ratio: 260 / 206;
  min-height: 0;
  border: 2px solid #1b5da8;
  border-radius: 4px;
}

.nk-strength-item.is-grid figcaption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 8px 10px;
  background: #1b5da8;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0.03125em;
  text-align: center;
}

.nk-strength-item__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  margin-top: 40px;
}

.nk-strength-item__actions .nk-cta,
.nk-strength-item__actions .wp-block-nakayama-cta-button {
  margin-top: 0;
}

@media (max-width: 768px) {
  .nk-strength-item,
  .nk-strength-item.is-muted {
    padding: 56px 0;
  }

  .nk-strength-item__inner {
    flex-direction: column;
    gap: 32px;
  }

  .nk-strength-item.is-right .nk-strength-item__body,
  .nk-strength-item.is-right .nk-strength-item__media,
  .nk-strength-item.is-left .nk-strength-item__body,
  .nk-strength-item.is-left .nk-strength-item__media {
    order: 0;
  }

  .nk-strength-item.is-grid .nk-strength-item__media {
    order: -1;
    width: 100%;
    flex: none;
    padding-top: 0;
  }

  .nk-strength-item__actions {
    margin-top: 24px;
  }

  /* 本文・画像は画面の左右余白の内側に収める（ボタンの幅で画像の枠が右にはみ出さないように） */
  .nk-strength-item__inner {
    align-items: stretch;
  }

  .nk-strength-item__body,
  .nk-strength-item__media {
    width: 100%;
    flex: none;
  }

  .nk-strength-item.is-single .nk-strength-item__figure,
  .nk-strength-item.is-single .nk-strength-item__figure img,
  .nk-strength-item.is-single .nk-media-edit {
    min-height: 0;
  }

  .nk-strength-item.is-single .nk-strength-item__figure img {
    height: auto;
    aspect-ratio: 540 / 370;
  }

  /* 画像の下のボタンは、左右に余白をとって中央に */
  .nk-strength-item__actions {
    align-items: stretch;
    padding-inline: 12px;
  }

  .nk-strength-item__actions .nk-cta,
  .nk-strength-item__actions .wp-block-nakayama-cta-button {
    width: 100%;
    max-width: 100%;
  }

  .nk-strength-heading {
    gap: 12px;
    margin-bottom: 24px;
  }

  .nk-strength-heading__number {
    font-size: 36px;
  }

  .nk-strength-heading__title {
    font-size: 22px;
  }

  .nk-strength-heading__sub {
    font-size: 16px;
  }

  .nk-strength-item.is-grid .nk-strength-heading__title {
    font-size: 20px;
    line-height: 1.4;
  }

  .nk-strength-item.is-grid .nk-strength-heading__sub {
    font-size: 15px;
    line-height: 1.5;
  }

  .nk-callout {
    padding: 24px 20px 28px;
  }

  .nk-strength-item__badge {
    position: static;
    transform: none;
    margin-bottom: 16px;
  }

  .nk-strength-item.is-grid .nk-strength-item__badge {
    position: relative;
    left: auto;
    transform: none;
    margin: 0 auto 16px;
  }
}

/* R&D
   ========================================================================== */

.nk-rd-section {
  padding: 100px 0;
  background: #f7f9fb;
}

.nk-rd-section__head {
  max-width: 1068px;
  margin: 0 auto 48px;
  text-align: center;
}

.nk-rd-section__kicker {
  margin: 0 0 16px;
  background: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  font-family: "Figtree", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.333;
}

.nk-rd-section__title {
  margin: 0 0 28px;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0.016em;
}

.nk-rd-section__lead {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
}

.nk-rd-section__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.nk-rd-card {
  overflow: hidden;
  background: #ecf1f5;
  border-radius: 8px;
  padding: 40px ;
}

.nk-rd-card__image,
.nk-rd-card .nk-media-edit,
.nk-rd-card .nk-media-placeholder {
  width: 100%;
  height: 250px;
}

.nk-rd-card__image {
  display: block;
  object-fit: cover;
}

.nk-rd-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-top: 40px;
}

.nk-rd-card__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.55;
}

.nk-rd-card__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.75;
  min-height: 160px;
}

@media (max-width: 768px) {
  .nk-rd-section {
    padding: 64px 0;
  }

  .nk-rd-section__title {
    font-size: 24px;
  }

  .nk-rd-section__cards {
    grid-template-columns: 1fr;
  }
}

/* Stats
   ========================================================================== */

.nk-stats {
  padding: 100px 0;
  background: #ecf1f5;
}

.nk-stats__title {
  margin: 0 0 40px;
  color: #1b5da8;
  font-size: 28px;
  line-height: 1.32;
  letter-spacing: 0.043em;
  text-align: center;
}

.nk-stats__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.nk-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  padding: 24px 16px;
  background: #fff;
  border: 1px solid #d5d5d5;
  border-radius: 8px;
  text-align: center;
}

.nk-stat-item__value {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  margin: 0 0 12px;
  white-space: nowrap;
}

.nk-stat-item__number {
  color: #1b5da8;
  font-family: "Figtree", sans-serif;
  font-size: 72px;
  font-weight: 700;
  line-height: 0.9;
}

.nk-stat-item__unit {
  padding-bottom: 6px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

.nk-stat-item__label {
  margin: 0;
  font-size: 16px;
  letter-spacing: 0.0625em;
}

@media (max-width: 768px) {
  .nk-stats {
    padding: 64px 0;
  }

  .nk-stats__list {
    grid-template-columns: 1fr 1fr;
  }

  .nk-stat-item {
    padding: 24px 8px;
  }

  /* 「±0.5μm」のように桁の多い値も1行に収める */
  .nk-stat-item__number {
    font-size: min(48px, 10.5vw);
  }

  .nk-stat-item__unit {
    font-size: 20px;
  }
}

/* Sample gallery
   ========================================================================== */

.nk-sample-section {
  --nk-sample-grid-gap-top: 50px;
  --nk-sample-card-image-h: 240px;
  position: relative;
  overflow-x: hidden;
  padding: 0 0 100px 0;
  background-color: #f6f6f6;
  background-image: url("../images/strengths/manufacturing-track-record_body_background.svg");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto;
}

.nk-sample-section__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.nk-sample-section__heading {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 32px 0 0;
}

.nk-sample-section__balloon {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;
  width: 100vw;
  height: calc(100% + var(--nk-sample-grid-gap-top) + var(--nk-sample-card-image-h));
  transform: translateX(-50%);
  pointer-events: none;
}

.nk-sample-section__balloon img {
  display: block;
  width: 100%;
  height: 100%;
}

.nk-sample-section__heading > img,
.nk-sample-section__heading .nk-media-edit img {
  display: block;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: min(930px, 100%);
  height: auto;
}

.nk-sample-section__heading .nk-media-edit {
  width: min(930px, 100%);
  min-height: 0;
  background: transparent;
}

.nk-sample-section__intro {
  position: relative;
  z-index: 1;
  max-width: 1080px;
  width: 100%;
  margin: 26px 0 0;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 31px;
  letter-spacing: 0.006em;
  text-align: center;
}

.nk-sample-section__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px 40px;
  width: 100%;
  margin-top: var(--nk-sample-grid-gap-top);
  margin-bottom: 40px;
}

.nk-sample-card {
  min-width: 0;
}

.nk-sample-card__image,
.nk-sample-card .nk-media-edit,
.nk-sample-card .nk-media-placeholder {
  width: 100%;
  height: var(--nk-sample-card-image-h, 240px);
  overflow: hidden;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-sample-card__image {
  display: block;
  object-fit: cover;
}

.nk-sample-card__caption {
  margin: 24px 0 0;
}

.nk-sample-card__name,
.nk-sample-card__detail {
  display: block;
}

.nk-sample-card__name {
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.nk-sample-card__detail {
  color: #4b5563;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

.nk-sample-section .nk-cta {
  width: 377px;
}

@media (max-width: 768px) {
  .nk-sample-section {
    --nk-sample-grid-gap-top: 32px;
    padding: 56px 0 64px;
  }

  .nk-sample-section__heading {
    padding: 24px 0 0;
  }

  .nk-sample-section__intro {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.75;
  }

  .nk-sample-section__grid {
    grid-template-columns: 1fr;
  }
}

/* Products
   ========================================================================== */

.nk-products {
  padding: 80px 0 0;
}

.nk-products__inner {
  display: grid;
  grid-template-columns: 199px minmax(0, 880px);
  justify-content: space-between;
  align-items: start;
  column-gap: 80px;
}

.nk-products-nav {
  position: sticky;
  top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
  z-index: 4;
  align-self: start;
}

.nk-products-nav__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-products-nav__link {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  column-gap: 16px;
  align-items: start;
  color: #666;
  font-size: 14.6px;
  font-weight: 500;
  line-height: 20.4px;
  letter-spacing: 0;
  text-decoration: none;
}

.nk-products-nav__link.is-active,
.nk-products-nav__link:hover {
  color: #1b5da8;
}

.nk-products-nav__number {
  font-family: "Figtree", sans-serif;
  font-weight: 500;
}

.nk-products-nav__label {
  max-width: 159px;
}

.nk-products-nav--editor {
  color: #666;
  font-size: 12px;
  line-height: 1.6;
}

.nk-products-nav__hint {
  margin: 0;
}

.nk-products__main {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-product-item {
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-product-item__head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 30px;
}

.nk-product-item__title-row {
  display: flex;
  gap: 24px;
  align-items: center;
}

.nk-product-item__number {
  flex-shrink: 0;
  color: #1a5eaa;
  font-family: "Figtree", sans-serif;
  font-size: 48px;
  font-weight: 800;
  line-height: 48px;
  letter-spacing: 0.03125em;
}

.nk-product-item__title {
  margin: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.018em;
}

.nk-product-item__fields {
  display: flex;
  gap: 6px;
  align-items: center;
  min-height: 25px;
}

.nk-product-item__fields-label {
  flex-shrink: 0;
  color: #333;
  font-size: 14px;
  line-height: 15px;
}

.nk-product-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-product-item__tags li {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(27, 93, 168, 0.1);
  color: #036eb8;
  font-size: 12px;
  font-weight: 400;
  line-height: 15px;
}

.nk-product-item__tags .is-placeholder {
  background: transparent;
  color: #999;
}

.nk-product-item__intro {
  display: grid;
  grid-template-columns: minmax(0, 368px) minmax(0, 462px);
  justify-content: space-between;
  gap: 50px;
  align-items: start;
}

.nk-product-item__copy,
.nk-product-item__copy p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-product-item__copy p + p {
  margin-top: 16px;
}

.nk-product-item__media {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-product-item__media img,
.nk-product-item__media .nk-media-edit,
.nk-product-item__media .nk-media-placeholder {
  display: block;
  width: 462px;
  max-width: 100%;
  height: 282px;
  object-fit: cover;
}

.nk-product-item__panels {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 30px;
}

.nk-product-spec {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px 30px 24px;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-product-spec.is-wrap,
.nk-product-spec.is-stack,
.nk-product-spec.is-text {
  gap: 18px;
  padding: 20px 15px 30px 30px;
}

.nk-product-spec__heading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0;
  padding: 4px 20px 3px;
  border-radius: 30px;
  background: #fff;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.nk-product-spec__table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.nk-product-spec__table th,
.nk-product-spec__table td {
  margin: 0;
  padding: 0;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.03125em;
  text-align: left;
  vertical-align: top;
}

.nk-product-spec__table th {
  width: 107px;
  padding-right: 12px;
  font-weight: 700;
}

.nk-product-spec__table .nk-spec-row:not(:last-child) th,
.nk-product-spec__table .nk-spec-row:not(:last-child) td {
  padding-bottom: 10px;
  border-bottom: 1px dotted #c8c8c8;
}

.nk-product-spec__table .nk-spec-row + .nk-spec-row th,
.nk-product-spec__table .nk-spec-row + .nk-spec-row td {
  padding-top: 10px;
}

.nk-product-spec__body .nk-spec-row {
  display: grid;
  grid-template-columns: 107px minmax(0, 1fr);
  align-items: start;
}

.nk-product-spec__body .nk-spec-row:not(:last-child) {
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px dotted #c8c8c8;
}

.nk-spec-row__label,
.nk-spec-row__value {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.03125em;
}

.nk-spec-row__label {
  font-weight: 700;
}

.nk-product-spec__body p,
.nk-product-spec__body li {
  margin: 0;
  color: #333;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.03125em;
}

.nk-product-spec__body p + p,
.nk-product-spec__body h3 + p,
.nk-product-spec__body p + ul,
.nk-product-spec__body ul + p,
.nk-product-spec__body ul + ul {
  margin-top: 10px;
}

.nk-product-spec__body h3,
.nk-product-spec__body strong {
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
}

.nk-product-spec.is-wrap .nk-product-spec__body ul,
.nk-product-spec.is-stack .nk-product-spec__body ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-product-spec.is-stack .nk-product-spec__body ul {
  flex-direction: column;
  gap: 4px;
}

.nk-product-spec.is-wrap .nk-product-spec__body li,
.nk-product-spec.is-stack .nk-product-spec__body li {
  position: relative;
  padding-left: 1em;
}

.nk-product-spec.is-wrap .nk-product-spec__body li::before,
.nk-product-spec.is-stack .nk-product-spec__body li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.nk-product-spec.is-text .nk-product-spec__body p {
  line-height: 23px;
}

.nk-faq {
  padding: 32px 40px 40px;
  border: 1px solid #d5d5d5;
  border-radius: 8px;
}

.nk-faq__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 20px;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  line-height: 20px;
}

.nk-faq__title::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 22px;
  background: #1b5da8;
}

.nk-faq__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nk-faq-item {
  margin: 0;
  border: 1px solid #d5d5d5;
  border-radius: 4px;
  background: #f5f5f5;
}

.nk-faq-item__summary,
.nk-faq-item.is-editor .nk-faq-item__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 16px 18px 14px 19px;
  list-style: none;
  cursor: pointer;
}

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

.nk-faq-item__question {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.03125em;
}

.nk-faq-item__mark {
  flex-shrink: 0;
}

.nk-faq-item__icon {
  position: relative;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #1b5da8;
}

.nk-faq-item__icon::before,
.nk-faq-item__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.nk-faq-item__icon::before {
  width: 13px;
  height: 2px;
}

.nk-faq-item__icon::after {
  width: 2px;
  height: 13px;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.32s ease;
}

.nk-faq-item[open] .nk-faq-item__icon::after,
.nk-faq-item.is-editor .nk-faq-item__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}

.nk-faq-item__answer {
  overflow: hidden;
}

.nk-faq-item.is-editor .nk-faq-item__answer {
  overflow: visible;
}

.nk-faq-item__answer-panel {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 0 48px 16px 19px;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.03125em;
}

.nk-faq-item__mark--answer {
  color: #1a5eaa;
}

.nk-faq-item__answer-body {
  min-width: 0;
  flex: 1;
}

.nk-faq-item__answer-body p {
  margin: 0;
}

.nk-faq-item__answer-body p + p {
  margin-top: 0.75em;
}

.nk-faq.has-background:not([class*="gradient-background"]) {
  background-color: inherit;
}

.nk-faq.is-style-section {
  padding-block: 40px 48px;
  border: 0;
  border-radius: 0;
}

.nk-faq.is-style-section:not(.has-background) {
  background-color: var(--wp--preset--color--light-gray, #ecf1f5);
}

.nk-faq.is-style-section .nk-faq__title {
  display: block;
  margin: 0 auto 30px;
  color: var(--wp--preset--color--blue, #1b5da8);
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 1.2px;
  text-align: center;
}

.nk-faq.is-style-section .nk-faq__title::before {
  content: none;
}

.nk-faq.is-style-section .nk-faq__list {
  max-width: 1000px;
  margin-inline: auto;
  gap: 10px;
}

.nk-faq.is-style-section .nk-faq-item {
  border: 0;
  background: #fff;
}

.wp-block-group.alignfull,
.wp-block-group.is-style-nk-full-bg,
.nk-faq.alignfull,
.nk-materials.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-inline: max(20px, calc((100vw - 1200px) / 2));
}

.wp-block-group.is-style-nk-full-bg {
  padding-block: 80px;
}

.wp-block-group.is-style-nk-faq,
.wp-block-accordion.is-style-nk-faq {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 32px 40px 40px;
  border: 1px solid #D5D5D5;
  border-radius: 8px;
  background: #ffffff;
}

.wp-block-group.is-style-nk-faq > h2,
.wp-block-group.is-style-nk-faq > .wp-block-heading,
.wp-block-accordion.is-style-nk-faq > .wp-block-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  line-height: 20px;
}

.wp-block-group.is-style-nk-faq > h2::before,
.wp-block-group.is-style-nk-faq > .wp-block-heading::before,
.wp-block-accordion.is-style-nk-faq > .wp-block-heading::before {
  content: "";
  flex-shrink: 0;
  width: 4px;
  height: 22px;
  background: #1b5da8;
}

.wp-block-details.is-style-nk-faq,
.wp-block-accordion-item.is-style-nk-faq,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-item,
.wp-block-group.is-style-nk-faq .wp-block-accordion-item {
  margin: 0;
  border: 1px solid #d5d5d5;
  border-radius: 4px;
  background: #f5f5f5;
}

.wp-block-details.is-style-nk-faq summary,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-heading__toggle,
.wp-block-group.is-style-nk-faq .wp-block-accordion-heading__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 54px;
  padding: 16px 52px 14px 19px;
  list-style: none;
  border: 0;
  background: transparent;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.03125em;
  text-align: left;
  cursor: pointer;
}

.wp-block-details.is-style-nk-faq summary::-webkit-details-marker {
  display: none;
}

.wp-block-details.is-style-nk-faq,
.wp-block-group.is-style-nk-faq .wp-block-accordion-heading,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-heading {
  position: relative;
}

.wp-block-details.is-style-nk-faq summary::after,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-heading__toggle-icon,
.wp-block-group.is-style-nk-faq .wp-block-accordion-heading__toggle-icon {
  position: absolute;
  right: 18px;
  top: 50%;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 0;
  color: transparent;
  background:
    linear-gradient(#fff, #fff) center / 13px 2px no-repeat,
    linear-gradient(#fff, #fff) center / 2px 13px no-repeat,
    #1b5da8;
  transform: translateY(-50%);
}

.wp-block-details.is-style-nk-faq summary::after {
  content: "";
}

.wp-block-details.is-style-nk-faq[open] summary::after,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon,
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-item[open] .wp-block-accordion-heading__toggle-icon,
.wp-block-group.is-style-nk-faq .wp-block-accordion-heading__toggle[aria-expanded="true"] .wp-block-accordion-heading__toggle-icon,
.wp-block-group.is-style-nk-faq .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon {
  background:
    linear-gradient(#fff, #fff) center / 13px 2px no-repeat,
    #1b5da8;
}

.wp-block-details.is-style-nk-faq > *:not(summary) {
  padding: 0 48px 16px 19px;
  color: #333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
}

.wp-block-accordion.is-style-nk-faq .wp-block-accordion-panel,
.wp-block-group.is-style-nk-faq .wp-block-accordion-panel {
  padding: 0 48px 16px 19px;
}

.wp-block-group.is-style-nk-faq .wp-block-accordion-heading {
  margin: 0;
}

.wp-block-group.is-style-nk-faq .wp-block-accordion-panel p::before {
  content: "A. ";
  color: #1a5eaa;
}

/* 開いたときも＋/−アイコンの上下中央を保つ（WordPress 標準の rotate(45deg) で translateY が消えて下にずれるのを防ぐ） */
.wp-block-accordion.is-style-nk-faq .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon,
.wp-block-group.is-style-nk-faq .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon,
.wp-block-accordion-item.is-style-nk-faq.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
  transform: translateY(-50%);
}

/* アコーディオン：項目が続くときは上下に余白をとる（FAQ スタイルの margin: 0 より優先） */
.wp-block-accordion > .wp-block-accordion-item + .wp-block-accordion-item,
.wp-block-accordion-item.wp-block-accordion-item + .wp-block-accordion-item {
  margin-top: 12px;
}

/* マウスオーバーで見出しに下線を付けない（WordPress 標準の下線を打ち消す） */
.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title,
.wp-block-accordion-heading__toggle:focus .wp-block-accordion-heading__toggle-title {
  text-decoration: none;
}

.nk-materials {
  margin-top: 80px;
  padding: 86px 0 88px;
}

.nk-materials:not(.has-background) {
  background-color: #ecf1f5;
}

.nk-tech + .nk-materials {
  margin-top: 0;
}

.nk-materials__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 36px;
}

.nk-materials__title {
  margin: 0;
  color: #1b5da8;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.043em;
}

.nk-materials__note {
  margin: 0;
  color: #4b5563;
  font-size: 14px;
  line-height: 26px;
  letter-spacing: 0.03125em;
}

.nk-materials__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

.nk-material-card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-height: 237px;
  padding: 30px 40px;
  border-radius: 8px;
  background: #fff;
}

.nk-materials.has-white-background-color .nk-material-card {
  background: #ecf1f5;
}

.nk-material-card__title {
  margin: 0;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.05em;
  text-align: center;
}

.nk-material-card__body {
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.006em;
}

@media (max-width: 1100px) {
  .nk-products__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .nk-products-nav {
    position: sticky;
    top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
    z-index: 4;
    padding-top: 0;
    overflow-x: auto;
    background: #fff;
  }

  .nk-products-nav__list {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 20px;
    min-width: max-content;
  }

  .nk-products-nav__label {
    max-width: none;
    white-space: nowrap;
  }

  .nk-product-item__intro,
  .nk-materials__cards {
    grid-template-columns: 1fr;
  }

  .nk-product-item__fields {
    padding-left: 0;
  }

  .nk-product-item__media img,
  .nk-product-item__media .nk-media-edit,
  .nk-product-item__media .nk-media-placeholder {
    width: 100%;
    height: auto;
    aspect-ratio: 462 / 282;
  }
}

@media (max-width: 768px) {
  .nk-products {
    padding: 48px 0 0;
  }

  .nk-products__main {
    gap: 64px;
  }

  .nk-product-item {
    scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
  }

  .nk-product-item__title-row {
    align-items: flex-start;
    gap: 12px;
  }

  .nk-product-item__number {
    font-size: 36px;
    line-height: 1;
  }

  .nk-product-item__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-faq {
    padding: 24px 16px 28px;
  }

  .nk-faq.is-style-section {
    padding: 40px 0 48px;
  }

  .nk-faq.is-style-section .nk-faq__title {
    font-size: 20px;
    line-height: 1.4;
    letter-spacing: 0.5px;
  }

  .nk-faq-item__question {
    font-size: 14px;
    line-height: 1.4;
  }

  .nk-materials {
    margin-top: 48px;
    padding: 56px 0;
  }

  .nk-materials__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 24px;
  }

  .nk-materials__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-material-card {
    min-height: 0;
    padding: 24px 20px;
  }
}

/* Technology
   ========================================================================== */

.wp-block-nakayama-technology,
.wp-block-nakayama-tech-item,
.wp-block-nakayama-coating-lineup,
.wp-block-nakayama-works-panel,
.wp-block-nakayama-analysis-section,
.wp-block-nakayama-cae-section {
  max-width: none;
}

.nk-tech {
  padding: 80px 0 0;
}

.nk-tech__inner {
  display: grid;
  grid-template-columns: 199px minmax(0, 880px);
  justify-content: space-between;
  align-items: start;
  column-gap: 80px;
}

.nk-tech-nav {
  position: sticky;
  top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
  z-index: 4;
  align-self: start;
}

.nk-tech-nav__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-tech-nav__link {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  column-gap: 16px;
  align-items: start;
  color: #666;
  font-size: 14.6px;
  font-weight: 500;
  line-height: 20.4px;
  text-decoration: none;
}

.nk-tech-nav__link.is-active,
.nk-tech-nav__link:hover {
  color: #1b5da8;
}

.nk-tech-nav__number {
  font-family: "Figtree", sans-serif;
  font-weight: 500;
}

.nk-tech-nav--editor {
  color: #666;
  font-size: 12px;
  line-height: 1.6;
}

.nk-tech-nav__hint {
  margin: 0;
}

.nk-tech__main {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-tech-item {
  position: relative;
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-tech-item.has-background,
.nk-tech-item.is-muted {
  isolation: isolate;
  padding: 88px 0;
}

.nk-tech-item.is-muted:not(.has-background) {
  background-color: #ecf1f5;
}

.nk-tech-item.has-background::before,
.nk-tech-item.is-muted::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -100vmax;
  background-color: inherit;
  background-image: inherit;
}

.nk-tech-item__head {
  display: flex;
  gap: 24px;
  align-items: center;
  margin-bottom: 30px;
}

.nk-tech-item__number {
  flex-shrink: 0;
  color: #1a5eaa;
  font-family: "Figtree", sans-serif;
  font-size: 48px;
  font-weight: 800;
  line-height: 48px;
  letter-spacing: 0.03125em;
}

.nk-tech-item__title {
  margin: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.018em;
}

.nk-tech-item__intro {
  display: grid;
  grid-template-columns: minmax(0, 370px) minmax(0, 458px);
  justify-content: space-between;
  gap: 50px;
  align-items: start;
}

.nk-tech-item.is-split .nk-tech-item__intro {
  grid-template-columns: minmax(0, 383px) minmax(0, 485px);
}

.nk-tech-item.is-split .nk-tech-item__media {
  order: -1;
}

.nk-tech-item.is-triple .nk-tech-item__intro {
  grid-template-columns: 1fr;
  gap: 30px;
}

.nk-tech-item.is-none .nk-tech-item__intro {
  grid-template-columns: 1fr;
}

.nk-tech-item__subtitle {
  margin: 0 0 12px;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-tech-item__body,
.nk-tech-item__body p {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-tech-item__body p + p {
  margin-top: 16px;
}

.nk-tech-item.is-single .nk-tech-item__body,
.nk-tech-item.is-single .nk-tech-item__body p {
  color: #374151;
}

.nk-tech-item__intro-spec {
  margin-top: 24px;
}

.nk-tech-item__intro-spec .nk-product-spec {
  width: 100%;
}

.nk-tech-item__media {
  display: grid;
  gap: 7px 15px;
  margin: 0;
}

.nk-tech-item.is-triple .nk-tech-item__media {
  order: -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nk-tech-item__figure {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-tech-item__figure img,
.nk-tech-item__media .nk-media-edit,
.nk-tech-item__media .nk-media-placeholder {
  display: block;
  width: 100%;
  height: auto;
}

.nk-tech-item.is-single .nk-tech-item__figure img {
  width: 458px;
  max-width: 100%;
  object-fit: cover;
}

.nk-tech-item.is-split .nk-tech-item__figure img {
  width: 383px;
  max-width: 100%;
  height: 236px;
  object-fit: cover;
}

.nk-tech-item.is-triple .nk-tech-item__figure img {
  width: 279px;
  max-width: 100%;
  height: 186px;
  object-fit: cover;
}

.nk-tech-item__panels {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 30px;
}

.nk-section-rule,
.nk-coating-lineup__heading,
.nk-analysis-section__heading,
.nk-cae-section__case-heading,
.nk-cae-section__movie-heading {
  position: relative;
}

.nk-coating-lineup__heading,
.nk-works-panel__heading,
.nk-analysis-section__heading,
.nk-cae-section__case-heading,
.nk-cae-section__movie-heading {
  margin: 0;
  color: #333;
  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
  letter-spacing: 0.07em;
}

.nk-coating-lineup__heading::after,
.nk-works-panel__heading::after,
.nk-analysis-section__heading::after,
.nk-cae-section__case-heading::after,
.nk-cae-section__movie-heading::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  margin-top: 12px;
  background: linear-gradient(90deg, #1b5da8 0 254px, #c8c8c8 254px 100%);
}

.nk-coating-lineup__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 24px;
  margin-top: 24px;
}

.nk-coating-card {
  display: flex;
  flex-direction: column;
  min-height: 190px;
  padding: 20px 30px;
  border-radius: 8px;
  background: #fff;
}

.nk-coating-card__title {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  color: #111827;
  font-size: 17px;
  font-weight: 700;
  line-height: 24px;
}

.nk-coating-card__sub {
  color: #6b7280;
  font-size: 12px;
  font-weight: 400;
  line-height: 24px;
}

.nk-coating-card__body {
  margin: 4px 0 0;
  color: #4b5563;
  font-size: 14px;
  font-weight: 400;
  line-height: 19px;
}

.nk-coating-card__specs {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 14px 0 0;
}

.nk-coating-card__row {
  display: grid;
  grid-template-columns: 77px minmax(0, 1fr);
  gap: 0 8px;
  align-items: baseline;
}

.nk-coating-card__row dt,
.nk-coating-card__row dd {
  margin: 0;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.03125em;
}

.nk-coating-card__row dt {
  color: #1b5da8;
  font-weight: 500;
}

.nk-coating-card__row dd {
  color: #374151;
  font-weight: 400;
}

.nk-works-panel {
  padding: 30px;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-works-panel__lead {
  margin: 20px 0 0;
  color: #111827;
  font-size: 14px;
  line-height: 20px;
}

.nk-works-panel__cols {
  display: grid;
  grid-template-columns: minmax(0, 326px) minmax(0, 1fr);
  gap: 40px 36px;
  margin-top: 30px;
  align-items: start;
}

.nk-works-panel__col {
  display: flex;
  flex-direction: column;
  gap: 42px;
}

.nk-works-group__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0 0 16px;
  padding: 3px 20px;
  border-radius: 30px;
  background: #fff;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.nk-works-group.is-list .nk-works-group__body ul,
.nk-works-group.is-list .nk-works-group__body .wp-block-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-works-group.is-list .nk-works-group__body li {
  position: relative;
  padding-left: 1em;
  color: #333;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0.03125em;
}

.nk-works-group.is-list .nk-works-group__body li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.nk-works-group.is-features .nk-works-group__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nk-works-feature__title {
  margin: 0;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
}

.nk-works-feature__body {
  margin: 8px 0 0;
  color: #333;
  font-size: 14px;
  line-height: 22px;
}

.nk-works-feature__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 4px;
  color: #000;
  font-size: 13px;
  line-height: 22px;
  letter-spacing: 0.077em;
  text-decoration: none;
  border-bottom: 1px solid #1b5da8;
}

.nk-works-feature__link::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #1b5da8;
}

/* 画像があるときのボタン（見た目はリンクと同じ） */
button.nk-works-feature__link {
  padding: 0;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  background: none;
  font-family: inherit;
  font-weight: inherit;
  cursor: pointer;
  transition: opacity 0.3s;
}

button.nk-works-feature__link:hover {
  opacity: 0.6;
}

/* 装置画像のポップアップ */
.nk-works-modal {
  width: min(832px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
}

.nk-works-modal::backdrop {
  background: rgba(10, 25, 50, 0.75);
}

.nk-works-modal[open] {
  animation: nk-works-modal-in 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.nk-works-modal[open]::backdrop {
  animation: nk-works-backdrop-in 0.4s ease;
}

@keyframes nk-works-modal-in {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes nk-works-backdrop-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.nk-works-modal__inner {
  position: relative;
  padding: 16px;
  border-radius: 8px;
  background: #fff;
}

.nk-works-modal__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: calc(100dvh - 140px);
  object-fit: contain;
  border-radius: 4px;
}

.nk-works-modal__title {
  margin: 12px 0 0;
  color: #1b5da8;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.nk-works-modal__close {
  position: absolute;
  top: -18px;
  right: -18px;
  z-index: 1;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #1b5da8;
  cursor: pointer;
  transition: opacity 0.3s;
}

.nk-works-modal__close:hover {
  opacity: 0.8;
}

.nk-works-modal__close::before,
.nk-works-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 2px;
  background: #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.nk-works-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media (max-width: 768px) {
  .nk-works-modal__inner {
    padding: 10px;
  }

  .nk-works-modal__close {
    top: -14px;
    right: -8px;
    width: 38px;
    height: 38px;
  }

  .nk-works-modal__title {
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nk-works-modal[open],
  .nk-works-modal[open]::backdrop {
    animation: none;
  }
}

.nk-tech-process {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.nk-tech-process-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  /* padding: 14px; */
  border-radius: 8px;
  background: #fff;
  text-align: center;
}

.nk-tech-item.is-muted .nk-tech-process-item,
.nk-tech-item.has-light-gray-background-color .nk-tech-process-item {
  background: #fff;
  border-color: transparent;
}

.nk-tech-item:not(.is-muted):not(.has-light-gray-background-color) .nk-tech-process-item {
  background: #fff;
  border: 1px solid #9B9FA2;
}

.nk-tech-process-item__title {
  margin: 0;
  color: #1b5da8;
  font-size: 20px;
  font-weight: 700;
  line-height: 16px;
}

.nk-tech-process-item__body {
  margin: 12px 0 0;
  color: #333;
  font-size: 14px;
  line-height: 20px;
}

.nk-tech-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 10px;
  background: #1b5da8;
}

.nk-tech-banner__text,
.nk-tech-banner__text p {
  margin: 0;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.03125em;
  text-align: center;
}

.nk-analysis-section__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 24px;
}

.nk-analysis-card {
  overflow: hidden;
  border-radius: 8px;
  background: transparent;
  border: 0;
}

.nk-analysis-card[open] {
  background: #fff;
  border: 1px solid #c8c8c8;
}

.nk-analysis-card__head {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 56px;
  padding: 16px 20px 16px 30px;
  list-style: none;
  border: 0;
  border-radius: 8px;
  background: #1b5da8;
  cursor: pointer;
}

.nk-analysis-card[open] .nk-analysis-card__head {
  border-radius: 7px 7px 0 0;
}

.nk-analysis-card__head::-webkit-details-marker {
  display: none;
}

.nk-analysis-card__number {
  color: #fff;
  font-family: "Figtree", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 16px;
}

.nk-analysis-card__title {
  margin: 0;
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: 0.05em;
}

.nk-analysis-card__toggle {
  flex-shrink: 0;
  margin-left: auto;
  width: 28px;
  height: 28px;
  border: 1.5px solid #fff;
  border-radius: 50%;
  background:
    linear-gradient(#fff, #fff) center / 12px 2px no-repeat,
    linear-gradient(#fff, #fff) center / 2px 12px no-repeat;
}

.nk-analysis-card[open] .nk-analysis-card__toggle {
  background: linear-gradient(#fff, #fff) center / 12px 2px no-repeat;
}

.nk-analysis-card__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px 30px 28px;
}

.nk-analysis-card__lead {
  margin: 0;
  color: #333;
  font-size: 15px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0.067em;
}

.nk-analysis-card__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nk-analysis-card.is-columns .nk-analysis-card__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 40px;
}

.nk-analysis-card.is-report .nk-analysis-card__content {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.nk-analysis-card__aside {
  margin: 0;
  overflow: hidden;
  background: #ecf1f5;
}

.nk-analysis-card__aside img,
.nk-analysis-card__aside .nk-media-edit,
.nk-analysis-card__aside .nk-media-placeholder {
  display: block;
  width: 250px;
  max-width: 100%;
  height: 390px;
  object-fit: cover;
}

.nk-analysis-card.is-stack .nk-analysis-item {
  display: grid;
  grid-template-columns: 123px minmax(0, 1fr);
  gap: 16px 28px;
  align-items: start;
}

.nk-analysis-card.is-stack .nk-analysis-card__items {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nk-analysis-item__media {
  display: flex;
  gap: 8px;
}

.nk-analysis-item__media img,
.nk-analysis-item__media .nk-media-edit,
.nk-analysis-item__media .nk-media-placeholder {
  display: block;
  width: 123px;
  height: 99px;
  object-fit: cover;
  background: #ecf1f5;
}

.nk-analysis-item.has-multi .nk-analysis-item__media img {
  width: 122px;
  height: 118px;
}

.nk-analysis-card.is-columns .nk-analysis-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.nk-analysis-card.is-columns .nk-analysis-item__media img {
  width: auto;
  max-width: 100%;
  height: 118px;
  flex: 1;
}

.nk-analysis-card.is-report .nk-analysis-item__media {
  display: none;
}

.nk-analysis-card.is-report .nk-analysis-card__items {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nk-analysis-item__title {
  margin: 0;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
}

.nk-analysis-item__body {
  margin: 8px 0 0;
  color: #374151;
  font-size: 14px;
  line-height: 22px;
}

.nk-analysis-card__machines {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  min-height: 41px;
  margin: 0;
  padding: 10px 20px;
  background: #ecf1f5;
  color: #000;
  font-size: 11px;
  line-height: 16px;
}

.nk-analysis-card__machines:empty,
.nk-analysis-card__machines:not(:has(span)) {
  display: none;
}

.nk-analysis-card__machines-label {
  font-weight: 700;
  letter-spacing: 0.03125em;
}

.nk-cae-section {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.nk-cae-section__intro {
  display: grid;
  grid-template-columns: minmax(0, 541px) minmax(0, 356px);
  justify-content: space-between;
  gap: 24px;
  align-items: start;
}

.nk-cae-section__heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px;
  color: #111827;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
}

.nk-cae-section__heading::before {
  content: "";
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  background: url("../images/recruit/double-color-circle.svg") center / 34px 34px no-repeat;
}

.nk-cae-section__text,
.nk-cae-section__case-body,
.nk-cae-section__case-body p,
.nk-cae-section__movie-body {
  margin: 0;
  color: #374151;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.006em;
}

.nk-cae-section__case-body p + p {
  margin-top: 8px;
}

.nk-cae-section__intro-media,
.nk-cae-section__figure,
.nk-cae-section__movie-media {
  margin: 0;
}

.nk-cae-section__intro-media img {
  display: block;
  width: 356px;
  max-width: 100%;
  height: 179px;
  object-fit: cover;
}

.nk-cae-section__case {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.nk-cae-section__figures {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 430px);
  gap: 24px 32px;
  align-items: start;
}

.nk-cae-section__pair {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.nk-cae-section__arrow {
  align-self: center;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 13px 0 13px 27px;
  border-color: transparent transparent transparent #1b5da8;
}

.nk-cae-section__figure img {
  display: block;
  width: 100%;
  height: auto;
}

.nk-cae-section__figure figcaption,
.nk-cae-section__caption {
  margin-top: 8px;
  color: #000;
  font-size: 14px;
  line-height: 28px;
  letter-spacing: 0.1em;
  text-align: center;
}

.nk-cae-section__caption--pair {
  flex-basis: 100%;
  text-align: left;
}

.nk-cae-section__figure--result figcaption {
  text-align: left;
}

.nk-cae-section__movie {
  padding: 20px 30px 30px;
  border-radius: 8px;
  background: #fff;
}

.nk-cae-section__movie-media {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin: 20px auto 0;
}

.nk-cae-section__movie-media img {
  display: block;
  width: 517px;
  max-width: 100%;
  height: auto;
}

.nk-cae-section__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 67px;
  height: 67px;
  border-radius: 50%;
  background: rgba(27, 93, 168, 0.88);
  transform: translate(-50%, -50%);
}

.nk-cae-section__play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 12px 0 12px 20px;
  border-color: transparent transparent transparent #fff;
  transform: translate(-40%, -50%);
}

.nk-coating-lineup__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-coating-lineup__grid.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.nk-tech-process > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-tech-process.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.nk-analysis-section__list > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-analysis-section__list.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.nk-tech__main > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-tech__main.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-equipment__main > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-equipment__main.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.nk-equipment-table__body > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-equipment-table__body.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
}

.editor-styles-wrapper .nk-equipment-table__head,
.editor-styles-wrapper .nk-equipment-row {
  display: grid;
  grid-template-columns: 259px minmax(120px, 1fr) 88px minmax(200px, 2fr);
}

.editor-styles-wrapper .nk-equipment-table__head {
  padding: 24px 16px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.093em;
  background: #1b5da8;
}

.editor-styles-wrapper .nk-equipment-row {
  padding: 20px 16px;
  border: 1px solid #9b9fa2;
  border-top: 0;
  background: #fff;
}

.editor-styles-wrapper .nk-equipment-row .nk-equipment-row__name {
  background: #ecf1f5;
  margin: -20px 0 -20px -16px;
  padding: 20px 16px;
}

@media (max-width: 1100px) {
  .nk-tech__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .nk-tech-nav {
    overflow-x: auto;
    background: #fff;
  }

  .nk-tech-nav__list {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 20px;
    min-width: max-content;
  }

  .nk-tech-item__intro,
  .nk-tech-item.is-split .nk-tech-item__intro,
  .nk-works-panel__cols,
  .nk-analysis-card.is-columns .nk-analysis-card__items,
  .nk-analysis-card.is-report .nk-analysis-card__content,
  .nk-cae-section__intro,
  .nk-cae-section__figures,
  .nk-coating-lineup__grid {
    grid-template-columns: 1fr;
  }

  .nk-tech-item.is-split .nk-tech-item__media {
    order: 0;
  }

  .nk-tech-item.is-single .nk-tech-item__figure img,
  .nk-tech-item.is-split .nk-tech-item__figure img,
  .nk-tech-item.is-triple .nk-tech-item__figure img,
  .nk-analysis-card__aside img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .nk-tech-process,
  .nk-cae-section__pair {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .nk-tech {
    padding: 48px 0 0;
  }

  .nk-tech__main {
    gap: 64px;
  }

  .nk-tech-item__head {
    align-items: flex-start;
    gap: 12px;
  }

  .nk-tech-item__number {
    font-size: 36px;
    line-height: 1;
  }

  .nk-tech-item__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-analysis-card.is-stack .nk-analysis-item {
    gap: 12px 16px;
  }

  .nk-tech-item.is-triple .nk-tech-item__media {
    grid-template-columns: 1fr;
  }
}

/* Equipment
   ========================================================================== */

.nk-equipment:not(.has-background) {
  background-color: #fff;
}

.nk-equipment {
  padding: 80px 0 0;
}

.nk-equipment__inner {
  display: grid;
  grid-template-columns: 199px minmax(0, 880px);
  justify-content: space-between;
  align-items: start;
  column-gap: 80px;
  padding-bottom: 80px;
}

.nk-equipment__main {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

.nk-equipment-item {
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-equipment-item__head {
  margin: 0 0 16px;
}

.nk-equipment-item__title {
  position: relative;
  margin: 0;
  padding-left: 26px;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.018em;
}

.nk-equipment-item__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 5px;
  height: 29px;
  background: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
}

.nk-equipment-item__body {
  margin: 0 0 40px;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-equipment-item__body p {
  margin: 0;
}

.nk-equipment-item__media {
  display: grid;
  grid-template-columns: repeat(var(--nk-equipment-cols, 2), minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 40px;
}

/* 写真が 1 枚のときは横いっぱいに引き伸ばさず、デザインどおりの幅にする */
.nk-equipment-item__media[style*="--nk-equipment-cols: 1;"] {
  grid-template-columns: minmax(0, 420px);
}

.nk-equipment-item__figure {
  margin: 0;
  height: 350px;
  overflow: hidden;
  background: #ecf1f5;
}

.nk-equipment-item__figure img,
.nk-equipment-item__figure .nk-media-edit,
.nk-equipment-item__figure .nk-media-placeholder {
  display: block;
  width: 100%;
  height: 350px;
  object-fit: cover;
}

.nk-equipment-table {
  width: 100%;
}

.nk-equipment-table__table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border: 1px solid #9b9fa2;
}

.nk-equipment-table__table th,
.nk-equipment-table__table td {
  padding: 20px 16px;
  color: #333;
  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.013em;
  text-align: left;
  vertical-align: middle;
  overflow-wrap: break-word;
  word-break: normal;
}

.nk-equipment-table__table thead th:nth-child(1),
.nk-equipment-table__table tbody th {
  width: 29.43%;
}

.nk-equipment-table__table thead th:nth-child(2),
.nk-equipment-table__table tbody td:nth-child(2) {
  width: 19.55%;
}

.nk-equipment-table__table thead th:nth-child(3),
.nk-equipment-table__table tbody td:nth-child(3) {
  width: 10%;
}

.nk-equipment-table__table thead th {
  padding: 24px 16px;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  line-height: 22px;
  letter-spacing: 0.093em;
  background: #1b5da8;
  border: 0;
}

.nk-equipment-table__table tbody th,
.nk-equipment-table__table tbody td {
  border-top: 1px solid #9b9fa2;
}

.nk-equipment-table__table tbody th {
  background: #ecf1f5;
  font-weight: 500;
}

.nk-equipment-row__label,
.nk-equipment-row__model {
  display: block;
}

.nk-equipment-row__label {
  font-size: 15px;
  font-weight: 500;
  line-height: 24px;
}

.nk-equipment-row__model {
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
}

.nk-equipment-download .wp-block-heading {
  margin: 0 0 16px;
  color: #333;
  font-size: 30px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.016em;
}

.nk-equipment-download p {
  margin: 0 0 28px;
  color: #333;
  font-size: 16px;
  line-height: 22px;
  letter-spacing: 0.02em;
}

.nk-equipment-download .nk-cta,
.nk-equipment-download .wp-block-nakayama-cta-button {
  margin-inline: auto;
}

.nk-jump-nav__toggle {
  display: none;
}

@media (max-width: 1100px) {
  .nk-equipment__inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .nk-jump-nav {
    position: sticky;
    top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 8px + var(--wp-admin--admin-bar--height, 0px));
    z-index: 5;
    overflow: visible;
    padding-top: 8px;
    padding-bottom: 8px;
    background: #fff;
    box-shadow: 0 -16px 0 #fff;
  }

  .nk-jump-nav__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 12px 16px;
    border: 1px solid #d2d6db;
    border-radius: 8px;
    background: #fff;
    color: #1b5da8;
    font-size: 14.6px;
    font-weight: 500;
    line-height: 20.4px;
    text-align: left;
    cursor: pointer;
  }

  .nk-jump-nav__toggle-current {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    column-gap: 12px;
    align-items: center;
    min-width: 0;
  }

  .nk-jump-nav__toggle-current .nk-tech-nav__label,
  .nk-jump-nav__toggle-current .nk-products-nav__label,
  .nk-jump-nav__toggle-current .nk-company-nav__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .nk-jump-nav__toggle-current:not(:has(.nk-tech-nav__number, .nk-products-nav__number, .nk-company-nav__number)) {
    grid-template-columns: minmax(0, 1fr);
  }

  .nk-jump-nav__toggle-current:has(.nk-company-nav__label) {
    grid-template-columns: 6px minmax(0, 1fr);
    column-gap: 16px;
  }

  .nk-jump-nav__toggle-current:has(.nk-company-nav__label)::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
  }

  .nk-jump-nav__toggle-icon {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-right: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 0.2s ease;
  }

  .nk-jump-nav.is-open .nk-jump-nav__toggle-icon {
    transform: translateY(2px) rotate(225deg);
  }

  .nk-jump-nav > ol {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 8px);
    flex-direction: column;
    gap: 0;
    min-width: 0;
    z-index: 6;
    max-height: min(70vh, 480px);
    overflow-x: hidden;
    overflow-y: auto;
    padding: 16px 16px 8px;
    background: #ecf1f5;
    border: 0;
    border-radius: 8px;
    box-shadow: none;
  }

  .nk-jump-nav.is-open > ol {
    display: flex;
  }

  .nk-jump-nav.is-open .nk-jump-nav__toggle {
    position: relative;
    z-index: 7;
  }

  .nk-product-item,
  .nk-tech-item,
  .nk-equipment-item {
    scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 72px + var(--wp-admin--admin-bar--height, 0px));
  }

  .nk-jump-nav li:not(:last-child) {
    border-bottom: 1px dotted #c8c8c8;
  }

  .nk-jump-nav a {
    padding: 12px 8px;
  }

  .nk-jump-nav a.is-active {
    background: transparent;
    color: #1b5da8;
  }
}

@media (max-width: 768px) {
  .nk-equipment {
    padding: 48px 0 0;
  }

  .nk-equipment__main {
    gap: 64px;
  }

  .nk-equipment-item__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-equipment-item__media {
    grid-template-columns: 1fr;
  }

  .nk-equipment-item__figure,
  .nk-equipment-item__figure img,
  .nk-equipment-item__figure .nk-media-edit,
  .nk-equipment-item__figure .nk-media-placeholder {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  /* 4 列すべてを表示し、画面に収まらない分は表だけを横にスクロールする */
  .nk-equipment-table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }

  .nk-equipment-table__table {
    min-width: 720px;
  }

  .nk-equipment-table__table th,
  .nk-equipment-table__table td,
  .nk-equipment-table__table thead th {
    padding: 16px 12px;
  }

  .nk-equipment-download .wp-block-heading {
    font-size: 24px;
  }
}

/* Solution
   ========================================================================== */

.nk-solution-nav {
  padding: 0 0 80px;
  background: transparent;
}

.nk-solution-nav__inner {
  display: flex;
  justify-content: center;
  gap: 16px;
}

.nk-solution-nav__link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 440px;
  max-width: calc(50% - 8px);
  min-height: 108px;
  padding: 22px 16px 26px;
  border: 1.5px solid #d1d5db;
  border-radius: 4px;
  background: #fff;
  color: #1b5da8;
  text-align: center;
  text-decoration: none;
}

.nk-solution-nav__link.is-current {
  border-color: #1b5da8;
  background: #1b5da8;
  color: #fff;
}

.nk-solution-nav__link.is-current::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 20px;
  height: 20px;
  background: #1b5da8;
  transform: translateX(-50%) rotate(45deg);
}

.nk-solution-nav__title {
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 0.5px;
}

.nk-solution-nav__sub {
  margin-top: 6px;
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0.5px;
  opacity: 0.7;
}

.nk-solution-nav__link:not(.is-current) .nk-solution-nav__sub {
  color: rgba(27, 93, 168, 0.9);
  opacity: 0.7;
}

.nk-solution-needs {
  padding: 0 0 100px;
  background-color: #fff;
}

.nk-solution-needs__inner {
  max-width: 1030px;
}

.nk-solution-needs__heading {
  margin: 0 0 60px;
  color: #333;
  font-size: 30px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.5px;
  text-align: center;
}

.nk-solution-needs__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.nk-solution-need-card {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 116px;
  padding: 16px 17px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #f9fafb;
  text-decoration: none;
  color: #333;
  box-sizing: border-box;
}

.nk-solution-need-card__media {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 82px;
  height: 82px;
}

.nk-solution-need-card__icon,
.nk-solution-need-card__media .nk-media-edit,
.nk-solution-need-card__media .nk-media-placeholder {
  display: block;
  width: 80px;
  height: 80px;
  object-fit: contain;
}

.nk-solution-need-card__label {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  letter-spacing: 0;
}

.nk-solution {
  padding: 0 0 100px;
  background-color: #fff;
}

.nk-solution__inner {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-solution-item {
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-solution-item__intro {
  display: grid;
  grid-template-columns: minmax(0, 611px) minmax(0, 540px);
  justify-content: space-between;
  gap: 49px;
  align-items: start;
}

.nk-solution-item.is-none .nk-solution-item__intro,
.nk-solution-item.is-none .nk-solution-item__copy {
  grid-template-columns: minmax(0, 611px);
}

.nk-solution-item__copy {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.nk-solution-item__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}

.nk-solution-item__title {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding-left: 32px;
  min-height: 34px;
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: 0.5px;
}

.nk-solution-item__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1b5da8 50%, #6eb83f 50%);
}

.nk-solution-item__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-solution-item__labels li {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 4px;
  background: rgba(27, 93, 168, 0.1);
  color: #036eb8;
  font-size: 12px;
  font-weight: 400;
  line-height: 15px;
}

.nk-solution-item__subtitle {
  margin: 0;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.nk-solution-item__body,
.nk-solution-item__body p {
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.nk-solution-item__body p + p {
  margin-top: 0;
}

.nk-solution-item__media {
  display: grid;
  width: 540px;
  max-width: 100%;
  overflow: hidden;
}

.nk-solution-item.is-single .nk-solution-item__media {
  grid-template-columns: 1fr;
  border: 1px solid #ccc;
}

.nk-solution-item.is-pair .nk-solution-item__media {
  grid-template-columns: minmax(0, 264px) minmax(0, 273px);
}

.nk-solution-item.is-pair.is-dark .nk-solution-item__media {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  height: 282px;
  padding: 6px 1px;
  background: #202020;
  border: 1px solid #202020;
  box-sizing: border-box;
}

.nk-solution-item.is-quad .nk-solution-item__media {
  grid-template-columns: minmax(0, 270px) minmax(0, 280px);
  width: 550px;
}

.nk-solution-item__figure {
  margin: 0;
  overflow: hidden;
}

.nk-solution-item.is-single .nk-solution-item__figure img,
.nk-solution-item.is-single .nk-solution-item__media .nk-media-edit,
.nk-solution-item.is-single .nk-solution-item__media .nk-media-placeholder {
  display: block;
  width: 540px;
  max-width: 100%;
  height: 282px;
  object-fit: cover;
}

.nk-solution-item.is-pair .nk-solution-item__figure img,
.nk-solution-item.is-pair .nk-solution-item__media .nk-media-edit,
.nk-solution-item.is-pair .nk-solution-item__media .nk-media-placeholder {
  display: block;
  width: 273px;
  max-width: 100%;
  height: 282px;
  object-fit: cover;
}

.nk-solution-item.is-pair.is-dark .nk-solution-item__figure img,
.nk-solution-item.is-pair.is-dark .nk-solution-item__media .nk-media-edit,
.nk-solution-item.is-pair.is-dark .nk-solution-item__media .nk-media-placeholder {
  width: 238px;
  height: 270px;
  margin-inline: auto;
  object-fit: contain;
}

.nk-solution-item.is-quad .nk-solution-item__figure img,
.nk-solution-item.is-quad .nk-solution-item__media .nk-media-edit,
.nk-solution-item.is-quad .nk-solution-item__media .nk-media-placeholder {
  display: block;
  width: 280px;
  max-width: 100%;
  height: 141px;
  object-fit: cover;
}

.nk-solution-item__panels {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-top: 40px;
}

.nk-solution-item__panels .nk-faq,
.nk-solution-item__panels .wp-block-group.is-style-nk-faq {
  width: 100%;
}

.nk-solution-case {
  position: relative;
  padding: 60px 60px 32px;
  border-radius: 8px;
  background-color: var(--wp--preset--color--light-gray, #ecf1f5);
}

.nk-solution-case__heading {
  position: absolute;
  left: 30%;
  top: 0;
  z-index: 1;
  box-sizing: border-box;
  margin: 0;
  padding: 13px 24px;
  min-height: 46px;
  border-radius: 18px;
  background: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.5px;
  text-align: center;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}

.nk-solution-case__grid {
  display: grid;
  grid-template-columns: minmax(0, 390px) minmax(0, 1fr) minmax(0, 266px);
  justify-content: space-between;
  gap: 24px 24px;
  align-items: start;
}

.nk-solution-case__hero-media,
.nk-solution-case__shot,
.nk-solution-case__machine {
  margin: 0;
}

.nk-solution-case__hero-media img,
.nk-solution-case__hero-media .nk-media-edit,
.nk-solution-case__hero-media .nk-media-placeholder {
  display: block;
  width: 390px;
  max-width: 100%;
  height: 279px;
  object-fit: cover;
}

.nk-solution-case__note {
  margin: 16px 0 0;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.5px;
}

.nk-solution-case__step-title {
  margin: 0 0 8px;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
}

.nk-solution-case__step-body {
  margin: 0;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
}

.nk-solution-case__compare {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
}

.nk-solution-case__shot {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: 154px;
  background-color: #fff;
}

.nk-solution-case__shot img,
.nk-solution-case__shot .nk-media-edit,
.nk-solution-case__shot .nk-media-placeholder {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 154 / 104;
  object-fit: cover;
}

.nk-solution-case__shot-label,
.nk-solution-case__shot-value {
  margin: 0;
  color: #333;
  font-size: 13px;
  font-weight: 400;
  line-height: 28px;
  text-align: center;
}

.nk-solution-case__shot-label {
  font-size: 14px;
}

.nk-solution-case__arrow {
  display: block;
  width: 28px;
  height: 32px;
  flex-shrink: 0;
  background: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.nk-solution-case__machine {
  margin-top: 16px;
}

.nk-solution-case__machine img,
.nk-solution-case__machine .nk-media-edit,
.nk-solution-case__machine .nk-media-placeholder {
  display: block;
  width: 266px;
  max-width: 100%;
  height: 160px;
  object-fit: cover;
}

.nk-solution-case__lead {
  margin: 24px 0 0;
  padding-top: 16px;
  border-top: 1px solid #d1d5db;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.5px;
}

@media (max-width: 1100px) {
  .nk-solution-item__intro,
  .nk-solution-item.is-none .nk-solution-item__intro {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .nk-solution-item__media,
  .nk-solution-item.is-quad .nk-solution-item__media {
    width: 100%;
  }

  .nk-solution-item.is-pair .nk-solution-item__media,
  .nk-solution-item.is-quad .nk-solution-item__media {
    grid-template-columns: 1fr 1fr;
  }

  .nk-solution-item.is-single .nk-solution-item__figure img,
  .nk-solution-item.is-pair .nk-solution-item__figure img,
  .nk-solution-item.is-quad .nk-solution-item__figure img {
    width: 100%;
  }

  .nk-solution-case {
    padding: 48px 24px 24px;
  }

  .nk-solution-case__heading {
    width: calc(100% - 32px);
    white-space: normal;
  }

  .nk-solution-case__grid {
    grid-template-columns: 1fr;
  }

  .nk-solution-case__hero-media img,
  .nk-solution-case__hero-media .nk-media-edit,
  .nk-solution-case__hero-media .nk-media-placeholder,
  .nk-solution-case__machine img,
  .nk-solution-case__machine .nk-media-edit,
  .nk-solution-case__machine .nk-media-placeholder {
    width: 100%;
    height: auto;
    aspect-ratio: 390 / 279;
  }

  .nk-solution-case__machine img,
  .nk-solution-case__machine .nk-media-edit,
  .nk-solution-case__machine .nk-media-placeholder {
    aspect-ratio: 266 / 160;
  }
}

@media (max-width: 768px) {
  .nk-solution-nav {
    padding: 0 0 48px;
  }

  /* トップページの「課題・ニーズ／業界・産業から探す」タブ（.top-solution-tabs）と同じ見た目 */
  .nk-solution-nav__inner {
    flex-direction: row;
    align-items: stretch;
    gap: 12px;
  }

  .nk-solution-nav__link {
    flex: 104;
    width: auto;
    max-width: none;
    min-height: 0;
    padding: 14px 4px;
    border: 1px solid #1b5da8;
    border-radius: 8px;
    transition: background-color 0.3s, color 0.3s;
  }

  .nk-solution-nav__link.is-current {
    flex: 210;
  }

  .nk-solution-nav__link.is-current::after {
    bottom: -14px;
    width: 14px;
    height: 14px;
    transform: translateX(-50%);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
  }

  .nk-solution-nav__title {
    font-size: clamp(14px, 4vw, 16px);
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .nk-solution-nav__title-tail {
    display: block;
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.14;
  }

  .nk-solution-nav__sub {
    display: none;
  }

  .nk-solution-needs {
    padding: 0 0 64px;
  }

  .nk-solution-needs__heading {
    margin-bottom: 32px;
    font-size: 22px;
    line-height: 30px;
  }

  .nk-solution-needs__grid {
    grid-template-columns: 1fr;
  }

  .nk-solution {
    padding: 0 0 64px;
  }

  .nk-solution__inner {
    gap: 64px;
  }

  .nk-solution-item__title {
    font-size: 20px;
    line-height: 28px;
    padding-left: 36px;
    min-height: 28px;
  }

  .nk-solution-item__subtitle {
    font-size: 18px;
    line-height: 26px;
  }

  .nk-solution-item.is-pair .nk-solution-item__media,
  .nk-solution-item.is-quad .nk-solution-item__media {
    grid-template-columns: 1fr;
  }

  .nk-solution-item.is-pair.is-dark .nk-solution-item__media {
    height: auto;
  }

  .nk-solution-item.is-pair .nk-solution-item__figure img,
  .nk-solution-item.is-quad .nk-solution-item__figure img,
  .nk-solution-item.is-pair.is-dark .nk-solution-item__figure img {
    width: 100%;
    height: auto;
    aspect-ratio: 540 / 282;
  }

  .nk-solution-item.is-quad .nk-solution-item__figure img {
    aspect-ratio: 270 / 141;
  }
}

/* Editor canvas
   ========================================================================== */

.editor-styles-wrapper .wp-block-nakayama-hero,
.editor-styles-wrapper .wp-block-nakayama-strength-item,
.editor-styles-wrapper .wp-block-nakayama-rd-section,
.editor-styles-wrapper .wp-block-nakayama-stats,
.editor-styles-wrapper .wp-block-nakayama-sample-section,
.editor-styles-wrapper .wp-block-nakayama-products,
.editor-styles-wrapper .wp-block-nakayama-technology,
.editor-styles-wrapper .wp-block-nakayama-equipment,
.editor-styles-wrapper .wp-block-nakayama-faq,
.editor-styles-wrapper .wp-block-nakayama-materials,
.editor-styles-wrapper .wp-block-nakayama-solution-nav,
.editor-styles-wrapper .wp-block-nakayama-solution-needs,
.editor-styles-wrapper .wp-block-nakayama-solution,
.editor-styles-wrapper .wp-block-nakayama-quality,
.editor-styles-wrapper .wp-block-nakayama-company {
  max-width: none;
}

.editor-styles-wrapper .nk-hero,
.editor-styles-wrapper .nk-strength-item,
.editor-styles-wrapper .nk-rd-section,
.editor-styles-wrapper .nk-stats,
.editor-styles-wrapper .nk-sample-section,
.editor-styles-wrapper .nk-products,
.editor-styles-wrapper .nk-tech,
.editor-styles-wrapper .nk-equipment,
.editor-styles-wrapper .nk-materials,
.editor-styles-wrapper .nk-solution-nav,
.editor-styles-wrapper .nk-solution-needs,
.editor-styles-wrapper .nk-solution,
.editor-styles-wrapper .nk-contact-form {
  margin-left: -12px;
  margin-right: -12px;
}

.editor-styles-wrapper .nk-analysis-card {
  background: #fff;
  border: 1px solid #c8c8c8;
}

.editor-styles-wrapper .nk-analysis-card__head {
  border-radius: 7px 7px 0 0;
}

.editor-styles-wrapper .nk-analysis-card__toggle {
  background: linear-gradient(#fff, #fff) center / 12px 2px no-repeat;
}

.nk-rd-section__cards > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-rd-section__cards.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
}

.nk-stats__list > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-stats__list.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.nk-sample-section__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-sample-section__grid.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 20px;
}

.nk-materials__cards > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-materials__cards.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}

.nk-products__main > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-products__main.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-solution-needs__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-solution-needs__grid.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.nk-solution__inner > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-solution__inner.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

@media (max-width: 768px) {
  .nk-rd-section__cards > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-rd-section__cards.block-editor-block-list__layout,
  .nk-sample-section__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-sample-section__grid.block-editor-block-list__layout {
    grid-template-columns: 1fr;
  }

  .nk-stats__list > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-stats__list.block-editor-block-list__layout {
    grid-template-columns: 1fr 1fr;
  }

  .nk-materials__cards > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-materials__cards.block-editor-block-list__layout,
  .nk-solution-needs__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-solution-needs__grid.block-editor-block-list__layout {
    grid-template-columns: 1fr;
  }
}

.nk-quality {
  padding-bottom: 40px;
  background: #fff;
}

.nk-quality__inner {
  display: flex;
  flex-direction: column;
}

.nk-quality-item {
  position: relative;
  padding: 80px 0 80px 0;
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-quality-item.has-background {
  isolation: isolate;
  padding: 100px 0 80px;
}

.nk-quality-item.has-background:not([class*="gradient-background"]) {
  background-color: inherit;
}

.nk-quality-item.has-background::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 -100vmax;
  background-color: inherit;
  background-image: inherit;
}

.nk-quality-item__head {
  display: flex;
  gap: 24px;
  align-items: center;
  margin-bottom: 30px;
}

.nk-quality-item__number {
  flex-shrink: 0;
  color: var(--wp--preset--color--blue, #1a5eaa);
  font-family: "Figtree", sans-serif;
  font-size: 48px;
  font-weight: 800;
  line-height: 48px;
  letter-spacing: 0.03125em;
}

.nk-quality-item__title {
  margin: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.5px;
}

.nk-quality-item__intro {
  display: grid;
  grid-template-columns: minmax(0, 689px) minmax(0, 479px);
  justify-content: space-between;
  gap: 24px 32px;
  align-items: start;
}

.nk-quality-item.is-none .nk-quality-item__intro {
  grid-template-columns: 1fr;
}

.nk-quality-item__copy {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nk-quality-item__subtitle {
  margin: 0;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.nk-quality-item__body,
.nk-quality-item__body p {
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.096px;
}

.nk-quality-item__body p + p {
  margin-top: 1em;
}

.nk-quality-item__intro-spec {
  margin-top: 18px;
}

.nk-quality-item__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.nk-quality-item__badges li {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 240px;
  min-height: 50px;
  padding: 11px 24px;
  border: 1px solid #9b9fa2;
  border-radius: 4px;
  color: #333;
  font-family: "Figtree", sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.nk-quality-item__media {
  display: grid;
  gap: 12px;
}

.nk-quality-item.is-stack .nk-quality-item__media {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.nk-quality-item.is-stack .nk-quality-item__figure:first-child {
  grid-column: 1 / -1;
}

.nk-quality-item__figure {
  margin: 0;
}

.nk-quality-item__figure img,
.nk-quality-item__figure .nk-media-edit,
.nk-quality-item__figure .nk-media-placeholder {
  display: block;
  width: 100%;
  height: 315px;
  object-fit: cover;
}

.nk-quality-item.is-stack .nk-quality-item__figure:first-child img,
.nk-quality-item.is-stack .nk-quality-item__figure:first-child .nk-media-edit,
.nk-quality-item.is-stack .nk-quality-item__figure:first-child .nk-media-placeholder {
  height: 241px;
}

.nk-quality-item.is-stack .nk-quality-item__figure:not(:first-child) img,
.nk-quality-item.is-stack .nk-quality-item__figure:not(:first-child) .nk-media-edit,
.nk-quality-item.is-stack .nk-quality-item__figure:not(:first-child) .nk-media-placeholder {
  height: 166px;
}

.nk-quality-item:has(.nk-quality-item__badges) .nk-quality-item__figure img,
.nk-quality-item:has(.nk-quality-item__badges) .nk-quality-item__figure .nk-media-edit,
.nk-quality-item:has(.nk-quality-item__badges) .nk-quality-item__figure .nk-media-placeholder {
  height: 252px;
}

.nk-quality-item__panels {
  margin-top: 32px;
}

.nk-quality-item__panel-title {
  position: relative;
  margin: 0 0 32px;
  padding-bottom: 12px;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.5px;
}

.nk-quality-item__panel-title::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--wp--preset--color--blue, #1a5eaa) 0,
    var(--wp--preset--color--blue, #1a5eaa) min(346.67px, 28.8889%),
    #c8c8c8 min(346.67px, 28.8889%),
    #c8c8c8 100%
  );
}

.nk-quality-item__panel-title:empty {
  display: none;
}

.nk-quality-cards,
.nk-quality-cards__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-quality-cards__grid.block-editor-block-list__layout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 21px;
}

.nk-quality-card {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 280px;
  padding: 30px;
  border-radius: 8px;
  background: #fff;
}

.nk-quality-card__heading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0;
  padding: 4px 20px 3px;
  border-radius: 30px;
  background: var(--wp--preset--color--light-gray, #ecf1f5);
  color: var(--wp--preset--color--blue, #1b5da8);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.nk-quality-card__kicker {
  margin: 0;
  color: var(--wp--preset--color--blue, #1b5da8);
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.5px;
}

.nk-quality-card__kicker:empty {
  display: none;
}

.nk-quality-card.is-text .nk-quality-card__kicker {
  padding-bottom: 16px;
  border-bottom: 1px dotted #c8c8c8;
}

.nk-quality-card__body,
.nk-quality-card__body p {
  margin: 0;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.5px;
}

.nk-quality-card__table {
  width: 100%;
  border-collapse: collapse;
}

.nk-quality-card__table th,
.nk-quality-card__table td,
.nk-quality-card__table-edit .nk-spec-row__label,
.nk-quality-card__table-edit .nk-spec-row__value {
  padding: 0 0 10px;
  color: #333;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: 0.5px;
  border-bottom: 1px dotted #c8c8c8;
  vertical-align: top;
}

.nk-quality-card__table th,
.nk-quality-card__table-edit .nk-spec-row__label {
  width: auto;
  padding-right: 12px;
  text-align: left;
  white-space: nowrap;
}

.nk-quality-card__table td,
.nk-quality-card__table-edit .nk-spec-row__value {
  text-align: right;
}

.nk-quality-card__table-edit .nk-spec-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  margin: 0 0 10px;
}

.nk-quality-card__list {
  margin: 0;
  padding: 12px 16px;
  border: 1px solid #a1a1a1;
  border-radius: 4px;
  list-style: none;
}

.nk-quality-card__list li {
  position: relative;
  padding-left: 1em;
  color: #333;
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 0.5px;
}

.nk-quality-card__list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

.nk-quality__inner > .block-editor-inner-blocks > .block-editor-block-list__layout,
.nk-quality__inner.block-editor-block-list__layout {
  display: flex;
  flex-direction: column;
}

@media (max-width: 1100px) {
  .nk-quality-item__intro {
    grid-template-columns: 1fr;
  }

  .nk-quality-cards,
  .nk-quality-cards__grid > .block-editor-inner-blocks > .block-editor-block-list__layout,
  .nk-quality-cards__grid.block-editor-block-list__layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .nk-quality-item {
    padding-top: 48px;
  }

  .nk-quality-item.has-background {
    padding: 56px 0 48px;
  }

  .nk-quality-item__number {
    font-size: 36px;
    line-height: 1;
  }

  .nk-quality-item__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-quality-item__badges li {
    min-width: 0;
    flex: 1 1 140px;
  }

  .nk-quality-item.is-stack .nk-quality-item__media {
    grid-template-columns: 1fr;
  }
}

/* ===== 会社紹介（company） ===== */
.nk-company__inner {
  display: grid;
  grid-template-columns: 199px minmax(0, 880px);
  justify-content: space-between;
  align-items: start;
  column-gap: 80px;
  padding-bottom: 80px;
}

.nk-company__main {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

.nk-company-nav {
  position: sticky;
  top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
  z-index: 4;
  align-self: start;
}

.nk-company-nav__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-company-nav__item {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-company-nav__link {
  display: grid;
  grid-template-columns: 6px minmax(0, 1fr);
  column-gap: 16px;
  align-items: center;
  color: #666;
  font-size: 14.6px;
  font-weight: 500;
  line-height: 20.4px;
  text-decoration: none;
}

.nk-company-nav__link::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}

.nk-company-nav__link.is-active,
.nk-company-nav__link:hover {
  color: #1b5da8;
}

.nk-company-nav--editor,
.nk-company-nav__hint {
  margin: 0;
  color: #666;
  font-size: 12px;
  line-height: 1.6;
}

.nk-company-section {
  scroll-margin-top: calc(30px + clamp(48px, 34.62px + 3.57vw, 86px) + 16px + var(--wp-admin--admin-bar--height, 0px));
}

.nk-company-section__head {
  margin: 0 0 32px;
}

.nk-company-section__en {
  margin: 0 0 4px;
  color: #1b5da8;
  font-family: "Figtree", sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.nk-company-section__title {
  margin: 0;
  color: #333;
  font-size: 28px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.018em;
}

.nk-company-section__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.nk-company-section__title-row .nk-company-section__title {
  flex: 1;
  min-width: 0;
}

.nk-company-slider__nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.nk-company-slider__prev,
.nk-company-slider__next {
  position: relative;
  width: 50px;
  height: 50px;
  padding: 0;
  background-color: transparent;
  border: 1px solid #a1a1a1;
  border-radius: 4px;
  cursor: pointer;
  transition:
    border-color 0.4s,
    opacity 0.4s;
}

.nk-company-slider__prev:hover,
.nk-company-slider__next:hover {
  border-color: #1b5da8;
}

.nk-company-slider__prev:hover::after,
.nk-company-slider__next:hover::after {
  border-color: #1b5da8;
}

.nk-company-slider__prev::after,
.nk-company-slider__next::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  border-top: 1.5px solid #a1a1a1;
  border-right: 1.5px solid #a1a1a1;
  transition: border-color 0.4s;
}

.nk-company-slider__prev::after {
  transform: translate(-30%, -50%) rotate(-135deg);
}

.nk-company-slider__next::after {
  transform: translate(-70%, -50%) rotate(45deg);
}

.nk-company-slider__prev.swiper-button-disabled,
.nk-company-slider__next.swiper-button-disabled {
  opacity: 0.3;
  pointer-events: none;
}

.nk-company-section__body {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* 会社概要テーブル */
.nk-company-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

.nk-company-table .nk-spec-row__label,
.nk-company-table .nk-spec-row__value {
  margin: 0;
  padding: 18px 0;
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
  text-align: left;
  vertical-align: top;
  background: transparent;
  border: 0;
}

.nk-company-table .nk-spec-row__label {
  width: 200px;
  padding-right: 40px;
  font-weight: 700;
}

.nk-company-table .nk-spec-row:not(:last-child) {
  background-image:
    linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%),
    linear-gradient(#c8c8c8, #c8c8c8);
  background-size: 200px 1px, calc(100% - 200px) 1px;
  background-position: 0 100%, 200px 100%;
  background-repeat: no-repeat;
}

/* 拠点一覧 */
#offices .nk-company-section__body {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.nk-company-group {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.nk-company-group__title {
  margin: 0;
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.02em;
}

#movie .nk-company-section__body {
  display: block;
}

#image-song .nk-company-section__body {
  display: block;
}

.nk-company-office {
  display: grid;
  grid-template-columns: 274px minmax(0, 1fr);
  column-gap: 39px;
  align-items: start;
}

.nk-company-office__media {
  margin: 0;
  width: 274px;
  height: 183px;
  overflow: hidden;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-company-office__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nk-company-office__body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.nk-company-office__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.02em;
}

.nk-company-office__title::before {
  content: "";
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  background: url("../images/recruit/double-color-circle.svg") center / 34px 34px no-repeat;
}

.nk-company-office__copy {
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-company-office__map {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: 8px;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-decoration: none;
}

/* 別ウィンドウで開くアイコン（四角が 2 つ重なった形） */
.nk-company-office__map::after {
  content: "";
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Crect x='3.6' y='0.6' width='8.8' height='8.8' rx='1'/%3E%3Cpath d='M0.6 3.6v7.8a1 1 0 0 0 1 1h7.8'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 13' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Crect x='3.6' y='0.6' width='8.8' height='8.8' rx='1'/%3E%3Cpath d='M0.6 3.6v7.8a1 1 0 0 0 1 1h7.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

.nk-company-office__map:hover {
  text-decoration: underline;
}

/* 理念・社訓 */
#philosophy .nk-company-section__body {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.nk-company-quote {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 40px 60px;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-company-quote__kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0;
  padding: 4px 20px 3px;
  border-radius: 30px;
  background: #fff;
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.nk-company-quote.is-text .nk-company-quote__title {
  margin: 0;
  color: #333;
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.nk-company-quote__body {
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-company-quote__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
  counter-reset: precept;
}

.nk-company-quote__list li {
  position: relative;
  padding-left: 22px;
  color: #333;
  font-family: "Noto Serif JP", serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

/* 社訓は青い点の箇条書き */
.nk-company-quote__list li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 11px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #1b5da8;
}

/* トップメッセージ */
.nk-company-message {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.nk-company-message__hero {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: #ecf1f5;
}

.nk-company-message__image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.nk-company-message__overlay {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  padding: 40px;
  color: #333333;
}

/* PC：デザインどおり、写真の右半分の上下中央に置く（社長名は右寄せ） */
@media (min-width: 769px) {
  .nk-company-message__overlay {
    top: 0;
    align-items: center;
    justify-content: flex-start;
    padding: 24px 40px 24px 47.5%;
  }

  .nk-company-message__quote {
    font-size: clamp(18px, 1.6vw, 23px);
    font-feature-settings: "palt";
    line-height: 1.65;
    letter-spacing: 0.04em;
  }

  .nk-company-message__person {
    justify-content: flex-end;
    text-align: right;
  }

  .nk-company-message__copy {
    flex: 0 1 auto;
    align-items: stretch;
  }
}

.nk-company-message__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
}

.nk-company-message__quote {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
}

.nk-company-message__person {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.nk-company-message__name {
  font-size: 20px;
  font-weight: 700;
}

.nk-company-message__role {
  font-size: 14px;
  font-weight: bold;
}

.nk-company-message__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: #333;
  font-size: 16px;
  line-height: 30px;
}

.nk-company-message__body p {
  margin: 0;
}

/* 沿革スライダー */
.nk-company-history__swiper {
  overflow: hidden;
  padding-bottom: 40px;
}

.nk-company-history__track {
  display: flex;
  align-items: stretch;
}

/* ムービースライダー */
.nk-company-movie__swiper {
  overflow: hidden;
}

.nk-company-movie__track {
  display: flex;
  align-items: stretch;
}

.nk-company-media.swiper-slide {
  box-sizing: border-box;
  width: 360px;
  max-width: 85%;
  height: auto;
}

.nk-company-era.swiper-slide {
  box-sizing: border-box;
  width: 713px;
  max-width: 85%;
  height: auto;
  padding: 30px 40px 40px;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-company-era__head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 20px;
  padding-bottom: 19px;
  background-image: var(--wp--preset--gradient--key-color, linear-gradient(90deg, #185baa 0%, #348daa 49%, #6eb83f 100%));
  background-size: 100% 1px;
  background-position: 0 100%;
  background-repeat: no-repeat;
}

.nk-company-era__title {
  margin: 0;
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.083em;
}

.nk-company-era__years {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin: 0;
  padding: 4px 20px 3px;
  border-radius: 30px;
  background: #fff;
  color: #1b5da8;
  font-family: "Figtree", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.nk-company-era__list {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nk-company-era__list::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 6px;
  bottom: 6px;
  border-left: 1px dashed #6eb83f;
}

.nk-company-era__event {
  position: relative;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) 189px;
  column-gap: 20px;
  align-items: start;
}

.nk-company-era__event:not(:has(.nk-company-era__figure)) {
  grid-template-columns: 10px minmax(0, 1fr);
}

.nk-company-era__marker {
  display: block;
  width: 10px;
  height: 10px;
  margin-top: 6px;
  border-radius: 50%;
  background: #1b5da8;
}

.nk-company-era__date {
  margin: 0 0 10px;
  color: #1b5da8;
  font-family: "Figtree", sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
}

.nk-company-era__text {
  color: #333;
  font-size: 14px;
  line-height: 25px;
  letter-spacing: 0.006em;
}

.nk-company-era__figure {
  margin: 0;
  width: 189px;
  height: 126px;
  overflow: hidden;
  background: #d9d9d9;
}

.nk-company-era__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nk-company-era__figure.is-portrait {
  height: auto;
}

.nk-company-era__figure.is-portrait img {
  height: auto;
  object-fit: contain;
}

/* 縦長の写真は幅を抑えて中央に（背景のグレーは付けない） */
.nk-company-era__figure.is-portrait {
  display: flex;
  justify-content: center;
  background: none;
}

.nk-company-era__figure.is-portrait img {
  width: auto;
  max-width: 132px;
  max-height: 176px;
}

/* カードの高さは最大 600px。それを超える分は一覧部分を縦スクロール */
.nk-company-era.swiper-slide {
  position: relative;
  display: flex;
  flex-direction: column;
  max-height: 600px;
}

/* スクロールできることを知らせる：下端のぼかしと「SCROLL」の案内（最後まで読むと消える） */
.nk-company-era__hint {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 96px;
  padding-bottom: 14px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(180deg, rgb(236 241 245 / 0%) 0%, #ecf1f5 70%);
  pointer-events: none;
  transition: opacity 0.3s;
}

.nk-company-era.is-scroll-end .nk-company-era__hint {
  opacity: 0;
}

.nk-company-era__hint-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 30px;
  background: #1b5da8;
  color: #fff;
  font-family: "Figtree", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
  box-shadow: 0 4px 12px rgb(27 93 168 / 25%);
}

.nk-company-era__hint-label::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  animation: nk-era-hint 1.4s ease-in-out infinite;
}

@keyframes nk-era-hint {
  0%, 100% { transform: translateY(0) rotate(45deg); }
  50% { transform: translateY(4px) rotate(45deg); }
}

@media (prefers-reduced-motion: reduce) {
  .nk-company-era__hint-label::after {
    animation: none;
  }
}

.nk-company-era__head {
  flex-shrink: 0;
}

.nk-company-era__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-right: -16px;
  padding-right: 16px;
  scrollbar-width: thin;
  scrollbar-color: #9bb5d3 transparent;
}

.nk-company-era__scroll::-webkit-scrollbar {
  width: 6px;
}

.nk-company-era__scroll::-webkit-scrollbar-thumb {
  border-radius: 3px;
  background: #9bb5d3;
}

.nk-company-era__scroll:focus-visible {
  outline: 2px solid #1b5da8;
  outline-offset: 2px;
}

/* マネジメント・環境 */
.nk-company-feature {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.nk-company-feature__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #333;
  font-size: 24px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.02em;
}

.nk-company-feature__title::before {
  content: "";
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  background: url("../images/recruit/double-color-circle.svg") center / 34px 34px no-repeat;
}

.nk-company-feature__body {
  color: #333;
  font-size: 16px;
  line-height: 28px;
}

.nk-company-feature__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nk-company-feature__badges li {
  padding: 8px 20px;
  border: 1px solid #9B9FA2;
  border-radius: 4px;
  color: #333333;
  font-size: 14px;
  font-weight: 600;
  min-width: 240px;
  text-align: center;
}

.nk-company-feature__media {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 8px;
}

/* メディアカード */
.nk-company-media {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nk-company-media__figure {
  display: block;
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  background: #ecf1f5;
}

.nk-company-media__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

a.nk-company-media__figure:hover img {
  transform: scale(1.04);
}

.nk-company-media__embed {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  background: #000;
}

.nk-company-media__embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.nk-company-media__title {
  margin: 0;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.nk-company-media__body {
  color: #555;
  font-size: 14px;
  line-height: 24px;
}

/* イメージソング */
.nk-company-media.is-image-song {
  width: 100%;
}

.nk-company-media__song {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 40px 60px;
  border-radius: 8px;
  background: #ecf1f5;
  text-align: center;
}

.nk-company-media__song-title {
  margin: 0;
  color: #1b5da8;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}

.nk-company-media__song-credit,
.nk-company-media__song-body {
  margin: 0;
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-company-media__song .nk-company-media__embed {
  width: 100%;
  max-width: 667px;
  margin-top: 8px;
}

/* エディタ内の出来事リスト */
.nk-era-event-editor {
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
}

@media (max-width: 1100px) {
  .nk-company__inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .nk-company__main {
    gap: 72px;
  }

  .nk-jump-nav > ol {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0;
    min-width: 0;
    padding: 8px 16px;
    background: #ecf1f5;
    border: 0;
    border-radius: 8px;
    box-shadow: none;
  }

  .nk-jump-nav > ol > li:not(:last-child) {
    border-bottom: 1px dotted #c8c8c8;
  }

  .nk-jump-nav > ol a.is-active {
    background: transparent;
  }
}

@media (max-width: 767px) {
  .nk-company-section__title {
    font-size: 22px;
    line-height: 1.3;
  }

  .nk-company-section__title-row {
    flex-wrap: wrap;
    gap: 16px;
  }

  .nk-company-slider__prev,
  .nk-company-slider__next {
    width: 40px;
    height: 40px;
  }

  .nk-company-media__song {
    padding: 28px 24px;
  }

  .nk-company-media.swiper-slide {
    width: 300px;
  }

  .nk-company-table .nk-spec-row__label,
  .nk-company-table .nk-spec-row__value {
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .nk-company-table .nk-spec-row__label {
    width: 96px;
    padding-right: 8px;
    white-space: nowrap;
  }

  .nk-company-table .nk-spec-row:not(:last-child) {
    background-size: 96px 1px, calc(100% - 96px) 1px;
    background-position: 0 100%, 96px 100%;
  }

  .nk-company-office {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .nk-company-office__media {
    width: 100%;
    max-width: 274px;
  }

  .nk-company-quote {
    padding: 28px 24px;
  }

  .nk-company-quote.is-text .nk-company-quote__title {
    font-size: 22px;
  }

  .nk-company-message__overlay {
    padding: 20px;
  }

  .nk-company-message__quote {
    font-size: 20px;
  }

  .nk-company-era.swiper-slide {
    width: 320px;
    padding: 24px 20px 28px;
  }

  .nk-company-era__event,
  .nk-company-era__event:not(:has(.nk-company-era__figure)) {
    grid-template-columns: 10px minmax(0, 1fr);
  }

  .nk-company-era__figure {
    grid-column: 2;
    max-width: 189px;
    width: 100%;
    height: auto;
  }

  .nk-company-era__figure:not(.is-portrait) {
    aspect-ratio: 189 / 126;
  }
}

/* Contact form
   ========================================================================== */

.nk-hero + .nk-contact-form,
.wp-block-nakayama-hero + .wp-block-nakayama-contact-form {
  margin-top: 50px;
}

.nk-contact-form {
  background-color: #fff;
  padding-block: 0 80px;
}

.nk-contact-form__inner {
  box-sizing: border-box;
  max-width: 960px;
}

.nk-contact-form__missing,
.nk-contact-form__editor-note {
  margin: 0 0 24px;
  padding: 12px 16px;
  background: #ecf1f5;
  font-size: 14px;
  line-height: 1.7;
  border-radius: 4px;
}

.nk-contact-form .wpcf7 {
  margin: 0;
}

/* お問い合わせフォームのメンテナンス中の案内（inc/contact.php の nakayama_contact_maintenance_html） */
.nk-contact-maintenance {
  padding: 40px;
  background: #ecf1f5;
  border-radius: 8px;
  text-align: left;
}

.nk-contact-maintenance__title {
  margin: 0 0 16px;
  color: #1b5da8;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
}

.nk-contact-maintenance__text {
  margin: 0 0 24px;
  font-size: 15px;
  line-height: 1.9;
}

.nk-contact-maintenance__list {
  margin: 0;
  padding: 20px 24px;
  background: #fff;
  border-radius: 4px;
  font-size: 15px;
  line-height: 2;
  list-style: none;
}

.nk-contact-maintenance__list a {
  color: #1b5da8;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 768px) {
  .nk-contact-maintenance {
    padding: 24px 20px;
  }

  .nk-contact-maintenance__title {
    font-size: 17px;
  }

  .nk-contact-maintenance__text,
  .nk-contact-maintenance__list {
    font-size: 14px;
  }

  .nk-contact-maintenance__list {
    padding: 16px;
  }
}

.nk-contact-form__section {
  margin: 0 0 50px;
}

.nk-contact-form__legend,
.nk-contact-form__heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 22px;
  color: #333;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.016em;
}

.nk-contact-form__heading {
  margin-bottom: 30px;
  font-size: 24px;
}

.nk-contact-form__label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.016em;
}

.nk-contact-form__label + .wpcf7-form-control-wrap,
.nk-contact-form__help + .wpcf7-form-control-wrap,
.nk-contact-form__label + .nk-contact-form__input {
  display: block;
  margin-bottom: 30px;
}

.nk-contact-form__section .wpcf7-form-control-wrap:last-child,
.nk-contact-form__section .nk-contact-form__input:last-child {
  margin-bottom: 0;
}

.nk-contact-form__help {
  margin: -12px 0 10px;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.03125em;
}

.nk-contact-form__required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 39px;
  height: 20px;
  padding: 0 11px;
  background-color: #6eb83f;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.016em;
  border-radius: 4px;
}

.nk-contact-form__types .wpcf7-radio,
.nk-contact-form__type-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.nk-contact-form__types .wpcf7-list-item {
  display: block;
  margin: 0;
}

.nk-contact-form__option-group[hidden] {
  display: none !important;
}

.nk-contact-form__option-group .nk-contact-form__legend {
  margin-bottom: 22px;
}

.nk-contact-form__types .wpcf7-list-item label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 92px;
  padding: 18px 12px;
  background-color: #fff;
  color: #185baa;
  text-align: center;
  border: 1.5px solid #d5d5d5;
  border-radius: 4px;
  cursor: pointer;
  user-select: none;
}

.nk-contact-form__types .wpcf7-list-item input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

.nk-contact-form__types .wpcf7-list-item-label {
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 0.016em;
}

.nk-contact-form__types .wpcf7-list-item-label::after {
  display: block;
  margin-top: 7px;
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: 0.03125em;
  opacity: 0.7;
}

.nk-contact-form__types .wpcf7-list-item:nth-child(1) .wpcf7-list-item-label::after {
  content: var(--nk-contact-sub-1);
}

.nk-contact-form__types .wpcf7-list-item:nth-child(2) .wpcf7-list-item-label::after {
  content: var(--nk-contact-sub-2);
}

.nk-contact-form__types .wpcf7-list-item:nth-child(3) .wpcf7-list-item-label::after {
  content: var(--nk-contact-sub-3);
}

.nk-contact-form__types .wpcf7-list-item:nth-child(4) .wpcf7-list-item-label::after {
  content: var(--nk-contact-sub-4);
}

/* 種別が 4 つのときは 4 列 */
.nk-contact-form__types .wpcf7-radio:has(.wpcf7-list-item:nth-child(4)),
.nk-contact-form__type-list:has(.wpcf7-list-item:nth-child(4)) {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nk-contact-form__types .wpcf7-list-item-label::after {
  white-space: pre-line;
}

.nk-contact-form__types .wpcf7-list-item.is-active label,
.nk-contact-form__types .wpcf7-list-item:has(input:checked) label {
  background-color: #185baa;
  color: #fff;
  border-color: #185baa;
}

.nk-contact-form__check,
.nk-contact-form .wpcf7-checkbox,
.nk-contact-form .wpcf7-acceptance {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nk-contact-form .wpcf7-checkbox .wpcf7-list-item,
.nk-contact-form .wpcf7-acceptance {
  margin: 0;
}

.nk-contact-form .wpcf7-checkbox .wpcf7-list-item label,
.nk-contact-form .wpcf7-acceptance label,
.nk-contact-form__check label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.03125em;
  cursor: pointer;
}

.nk-contact-form .wpcf7-checkbox input,
.nk-contact-form .wpcf7-acceptance input,
.nk-contact-form__check input {
  appearance: none;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  margin: 0;
  background-color: #ecf1f5;
  border: 1.5px solid #d5d5d5;
  border-radius: 4px;
  flex-shrink: 0;
}

.nk-contact-form .wpcf7-checkbox input:checked,
.nk-contact-form .wpcf7-acceptance input:checked {
  background-color: #185baa;
  border-color: #185baa;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M1 5l3.2 3.2L11 1'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 10px;
}

.nk-contact-form .wpcf7-acceptance a {
  color: #333;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.nk-contact-form__input,
.nk-contact-form input.wpcf7-text,
.nk-contact-form input.wpcf7-email,
.nk-contact-form input.wpcf7-tel,
.nk-contact-form input.wpcf7-file,
.nk-contact-form textarea.wpcf7-textarea,
.nk-contact-form__area {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 54px;
  padding: 0 19px;
  background-color: #f5f5f5;
  color: #333;
  font-family: inherit;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
  border: 1px solid #d5d5d5;
  border-radius: 4px;
}

.nk-contact-form textarea.wpcf7-textarea,
.nk-contact-form__area {
  height: 322px;
  padding: 16px 18px 14px 19px;
  resize: vertical;
}

.nk-contact-form input::placeholder,
.nk-contact-form textarea::placeholder {
  color: #9b9fa2;
}

.nk-contact-form input[type="file"] {
  padding: 12px 19px;
}

.nk-contact-form__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  margin-top: 10px;
}

.nk-contact-form .wpcf7-submit,
.nk-contact-form__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 280px;
  height: 60px;
  padding: 17px 20px;
  background-color: #185baa;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.56;
  letter-spacing: 0.0625em;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  transition: opacity 0.4s;
}

.nk-contact-form .wpcf7-submit:hover,
.nk-contact-form__submit:hover {
  opacity: 0.8;
}

.nk-contact-form__submit[data-cta-roll]:hover,
.nk-contact-form__submit[data-cta-roll]:focus-visible,
.nk-contact-form .wpcf7-submit[data-cta-roll]:hover,
.nk-contact-form .wpcf7-submit[data-cta-roll]:focus-visible {
  opacity: 1;
}

.nk-contact-form__submit[data-cta-roll] .nk-cta__label,
.nk-contact-form .wpcf7-submit[data-cta-roll] .nk-cta__label {
  display: block;
  width: 100%;
  overflow: hidden;
}

/* ---------- 確認画面・送信完了（blocks/contact-form/view.js） ---------- */

.nk-contact-form .is-confirming .wpcf7-response-output,
.nk-contact-form .is-done .wpcf7-response-output {
  display: none;
}

.nk-contact-confirm {
  outline: none;
}

.nk-contact-confirm__title {
  color: #185baa;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  text-align: center;
}

.nk-contact-confirm__lead {
  margin-top: 16px;
  color: #333;
  font-size: 15px;
  line-height: 1.9;
  text-align: center;
}

.nk-contact-confirm__list {
  margin: 40px 0 0;
  border-top: 1px solid #d5dde5;
}

.nk-contact-confirm__row {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 24px;
  padding: 20px 8px;
  border-bottom: 1px solid #d5dde5;
}

.nk-contact-confirm__row dt {
  color: #185baa;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
}

.nk-contact-confirm__row dd {
  margin: 0;
  color: #333;
  font-size: 15px;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.nk-contact-confirm__empty {
  color: #999;
}

.nk-contact-confirm__actions {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin-top: 48px;
}

.nk-contact-confirm__edit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 280px;
  height: 60px;
  padding: 0 20px;
  border: 1px solid #185baa;
  border-radius: 4px;
  background: #fff;
  color: #185baa;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.0625em;
  cursor: pointer;
  transition: background-color 0.3s;
}

.nk-contact-confirm__edit:hover {
  background: #ecf1f5;
}

.nk-contact-confirm__send:disabled {
  opacity: 0.6;
  cursor: wait;
}

.nk-contact-confirm__done {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 0 20px;
}

.nk-contact-confirm__done .nk-contact-confirm__lead {
  margin-bottom: 40px;
}

.nk-contact-confirm__back {
  text-decoration: none;
}

@media (max-width: 768px) {
  .nk-contact-confirm__title {
    font-size: 20px;
  }

  .nk-contact-confirm__lead {
    font-size: 14px;
    text-align: left;
  }

  .nk-contact-confirm__list {
    margin-top: 28px;
  }

  .nk-contact-confirm__row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 16px 4px;
  }

  .nk-contact-confirm__row dt,
  .nk-contact-confirm__row dd {
    font-size: 14px;
  }

  .nk-contact-confirm__actions {
    flex-direction: column-reverse;
    gap: 16px;
    margin-top: 32px;
  }

  .nk-contact-confirm__edit {
    width: 100%;
    max-width: 280px;
  }

  .nk-contact-confirm__done .nk-contact-confirm__lead {
    text-align: center;
  }
}

.nk-contact-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #c00;
  font-size: 14px;
}

.nk-contact-form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 16px;
  border-radius: 4px;
}

/* 設備一覧表ダウンロード（inc/equipment-download.php） */
.nk-contact-form.nk-equipment-dl-form {
  padding-top: 170px;
  background-color: var(--wp--preset--color--light-gray, #ecf1f5);
}

.nk-equipment-dl-form .nk-contact-form__inner {
  max-width: 720px;
}

.nk-equipment-dl-form__card {
  padding: 48px 60px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgb(24 91 170 / 8%);
}

.nk-equipment-dl-form__head {
  margin: 0 0 32px;
  text-align: center;
}

.nk-equipment-dl-form__head .c-top-section-title {
  align-items: center;
  gap: 8px;
}

.nk-equipment-dl-form__head .c-top-section-title__main {
  font-size: 48px;
}

.nk-equipment-dl-form__desc {
  margin: 20px 0 0;
  font-size: 15px;
  line-height: 1.9;
}

.nk-equipment-dl-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 24px;
  margin-bottom: 32px;
}

.nk-equipment-dl-form__field--full {
  grid-column: 1 / -1;
}

.nk-equipment-dl-form .nk-contact-form__label {
  margin-bottom: 6px;
  font-size: 14px;
  line-height: 24px;
}

.nk-equipment-dl-form .nk-contact-form__label + .wpcf7-form-control-wrap {
  margin-bottom: 0;
}

.nk-equipment-dl-form .nk-contact-form__input {
  height: 48px;
}

.nk-equipment-dl-form .nk-contact-form__footer {
  position: relative;
  gap: 24px;
  margin-top: 0;
}

/* 送信中のアイコンは場所を取らないよう、ボタンの右に重ねる */
.nk-equipment-dl-form .nk-contact-form__footer .wpcf7-spinner {
  position: absolute;
  right: 0;
  bottom: 18px;
  margin: 0;
}

.nk-equipment-dl__lead {
  margin: 0 0 28px;
  font-size: 15px;
  line-height: 1.9;
  text-align: center;
}

@media (max-width: 768px) {
  .nk-contact-form.nk-equipment-dl-form {
    padding-top: 130px;
  }

  .nk-equipment-dl-form__card {
    padding: 32px 20px;
  }

  .nk-equipment-dl-form__head .c-top-section-title__main {
    font-size: 36px;
  }

  .nk-equipment-dl-form__desc {
    text-align: left;
  }

  .nk-equipment-dl-form__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .nk-equipment-dl__lead {
    text-align: left;
  }
}

.nk-equipment-dl__notice {
  margin: 0 0 32px;
  padding: 16px;
  background: #ecf1f5;
  font-size: 15px;
  line-height: 1.7;
  border-radius: 4px;
}

.nk-equipment-dl {
  text-align: center;
}

.nk-equipment-dl__title {
  margin: 0 0 16px;
  font-weight: 700;
  font-size: 20px;
}

.nk-equipment-dl__text {
  margin: 0 0 32px;
  font-size: 15px;
  line-height: 1.9;
}

.nk-equipment-dl__button {
  margin-inline: auto;
  border: 0;
  font-family: inherit;
  cursor: pointer;
}

@media (max-width: 768px) {
  .nk-contact-form {
    padding-block: 0 64px;
  }

  .nk-contact-form__types .wpcf7-radio,
  .nk-contact-form__type-list {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .nk-contact-form__legend,
  .nk-contact-form__heading {
    font-size: 18px;
  }

.nk-contact-form .wpcf7-submit,
.nk-contact-form__submit {
    width: 100%;
    max-width: 280px;
  }
}

/* 吹き出し */
.nk-talk-chat {
  display: flex;
  align-items: flex-start;
  gap: 44px;
}

.nk-talk-chat.is-right {
  flex-direction: row-reverse;
}

.nk-talk-chat__person {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 110px;
  gap: 8px;
}

.nk-talk-chat__photo {
  width: 110px;
  height: 110px;
  overflow: hidden;
  border-radius: 50%;
  background-color: #ecf1f5;
}

.nk-talk-chat__photo img {
  display: block;
  width: 110px;
  height: 110px;
  object-fit: cover;
}

.nk-talk-chat__name {
  margin: 0;
  color: #1b5da8;
  font-size: 16px;
  font-weight: 900;
  line-height: 20px;
  letter-spacing: 0.0875em;
  text-align: center;
}

.nk-talk-chat__bubble {
  position: relative;
  flex: 1 1 auto;
  max-width: 926px;
  padding: 24px 50px;
  border-radius: 10px;
  background-color: #e4f4d4;
}

.nk-talk-chat__bubble::before {
  content: "";
  position: absolute;
  top: 32px;
  width: 16px;
  height: 16px;
  background-color: inherit;
  transform: rotate(45deg);
  border-radius: 1px;
}

.nk-talk-chat.is-left .nk-talk-chat__bubble::before {
  left: -7px;
}

.nk-talk-chat.is-right .nk-talk-chat__bubble::before {
  right: -7px;
}

.nk-talk-chat__bubble::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: inherit;
  border-radius: inherit;
  pointer-events: none;
}

.nk-talk-chat__text {
  position: relative;
  z-index: 1;
  margin: 0;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.006em;
}

.nk-talk-chat__text p {
  margin: 0;
}

.nk-talk-chat .nk-media-placeholder,
.nk-talk-chat .nk-media-edit {
  width: 110px;
  min-height: 110px;
  border-radius: 50%;
}

@media (max-width: 768px) {
  .nk-talk-chat,
  .nk-talk-chat.is-right {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  .nk-talk-chat__photo,
  .nk-talk-chat__photo img {
    width: 64px;
    height: 64px;
  }

  .nk-talk-chat__person {
    width: auto;
  }

  .nk-talk-chat__name {
    font-size: 12px;
    letter-spacing: 0.04em;
  }

  .nk-talk-chat__bubble {
    width: 100%;
    max-width: none;
    padding: 16px 18px;
  }

  .nk-talk-chat.is-left .nk-talk-chat__bubble::before,
  .nk-talk-chat.is-right .nk-talk-chat__bubble::before {
    top: -8px;
    left: 50%;
    right: auto;
    width: 20px;
    height: 20px;
    transform: translateX(-50%) rotate(45deg);
  }
}

/* Flexible Table Block（記事・固定ページ用。設備一覧の専用表とは別） */
.wp-block-flexible-table-block-table {
  width: 100%;
  border-collapse: collapse;
}

.wp-block-flexible-table-block-table th,
.wp-block-flexible-table-block-table td {
  padding: 16px;
  border: 1px solid #9b9fa2;
  font-size: 15px;
  line-height: 1.6;
  text-align: left;
  vertical-align: top;
}

.wp-block-flexible-table-block-table thead th {
  background: #1b5da8;
  color: #fff;
  font-weight: 500;
}


/* ==========================================================================
   事業案内ブロック（編集画面のみ）
   ========================================================================== */

.editor-styles-wrapper .nk-biz-editor-image {
  cursor: pointer;
}

.editor-styles-wrapper .nk-biz-editor-note {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 1200px;
  margin: 40px auto;
  padding: 28px 32px;
  border: 2px dashed #1b5da8;
  border-radius: 8px;
  background: #f3f7fb;
  color: #363d40;
  font-size: 14px;
}

.editor-styles-wrapper .nk-biz-editor-note strong {
  color: #1b5da8;
  font-size: 16px;
}

/* 編集画面ではスライダーを動かさず、4 枚を並べて表示する */
.editor-styles-wrapper .nk-biz-editor-tech-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* ==========================================================================
   お問い合わせ：選択肢の 3 列表示・ラジオ・図面の有無／材質・業界／きっかけ
   ========================================================================== */

.nk-contact-form__legend--note {
  margin-bottom: 16px !important;
  color: #555;
  font-size: 14px !important;
  font-weight: 400;
}

.nk-contact-form .nk-contact-form__check--grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 24px;
}

.nk-contact-form .nk-contact-form__radio {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
}

.nk-contact-form .nk-contact-form__radio--grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nk-contact-form .nk-contact-form__radio .wpcf7-list-item {
  margin: 0;
}

.nk-contact-form .nk-contact-form__radio label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #333;
  font-size: 16px;
  line-height: 28px;
  letter-spacing: 0.03125em;
  cursor: pointer;
}

.nk-contact-form .nk-contact-form__radio input {
  appearance: none;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  background-color: #ecf1f5;
  border: 1.5px solid #d5d5d5;
  border-radius: 50%;
}

.nk-contact-form .nk-contact-form__radio input:checked {
  border-color: #185baa;
  background: radial-gradient(circle, #185baa 0 4.5px, #fff 5px);
}

.nk-contact-form__sub-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 24px 76px;
  margin-top: 56px;
}

.nk-contact-form__sub-field .nk-contact-form__label {
  margin-bottom: 12px;
}

.nk-contact-form__sub-field--material {
  width: 238px;
  max-width: 100%;
}

.nk-contact-form__survey {
  margin-top: 40px;
}

.nk-contact-form__survey .nk-contact-form__label {
  margin-bottom: 14px;
}

@media (max-width: 768px) {
  .nk-contact-form .nk-contact-form__check--grid,
  .nk-contact-form .nk-contact-form__radio--grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nk-contact-form__types .wpcf7-radio:has(.wpcf7-list-item:nth-child(4)),
  .nk-contact-form__type-list:has(.wpcf7-list-item:nth-child(4)) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nk-contact-form__sub-fields {
    margin-top: 32px;
  }

  .nk-contact-form__sub-field--material {
    width: 100%;
  }
}

/* 課題・業界別ソリューション（スマホ）：よくあるご質問の枠の左右余白を詰めて、中を広く使う */
@media (max-width: 768px) {
  .nk-solution-item__panels {
    gap: 24px;
    margin-top: 28px;
  }

  .nk-solution-item__panels .wp-block-group.is-style-nk-faq,
  .nk-solution-item__panels .wp-block-accordion.is-style-nk-faq {
    padding: 20px 12px 14px;
  }

  .nk-solution-item__panels .wp-block-group.is-style-nk-faq > .wp-block-heading,
  .nk-solution-item__panels .wp-block-group.is-style-nk-faq > h2 {
    margin-bottom: 4px;
    font-size: 16px;
  }

  .nk-solution-item__panels .wp-block-group.is-style-nk-faq .wp-block-accordion-heading__toggle,
  .nk-solution-item__panels .wp-block-accordion.is-style-nk-faq .wp-block-accordion-heading__toggle {
    padding: 14px 44px 14px 14px;
    font-size: 15px;
  }

  .nk-solution-item__panels .wp-block-group.is-style-nk-faq .wp-block-accordion-heading__toggle-icon,
  .nk-solution-item__panels .wp-block-accordion.is-style-nk-faq .wp-block-accordion-heading__toggle-icon {
    right: 12px;
  }

  .nk-solution-item__panels .wp-block-group.is-style-nk-faq .wp-block-accordion-panel,
  .nk-solution-item__panels .wp-block-accordion.is-style-nk-faq .wp-block-accordion-panel {
    padding: 0 14px 14px;
  }
}

/* ボタン（スマホ）：文言は改行せず、文字を小さくして 1 行に収める */
@media (max-width: 768px) {
  .nk-cta {
    padding: 0 16px 0 20px;
    font-size: clamp(12px, 3.75vw, 16px);
    letter-spacing: 0.03em;
  }

  .nk-cta .nk-cta__label,
  .nk-cta .nk-cta__line {
    white-space: nowrap;
  }
}

/* お問い合わせ種別のカード：すべて同じ高さにそろえる（PC・スマホとも） */
.nk-contact-form__types .wpcf7-radio,
.nk-contact-form__type-list {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.nk-contact-form__types .wpcf7-list-item {
  display: flex;
}

.nk-contact-form__types .wpcf7-list-item label {
  flex: 1;
  min-height: 0;
  height: 100%;
}

.nk-contact-form__types .wpcf7-list-item-label {
  font-size: 18px;
  line-height: 1.4;
}

.nk-contact-form__types .wpcf7-list-item-label::after {
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.45;
}

@media (max-width: 768px) {
  .nk-contact-form__types .wpcf7-list-item label {
    padding: 14px 8px;
  }

  .nk-contact-form__types .wpcf7-list-item-label {
    font-size: 16px;
  }

  .nk-contact-form__types .wpcf7-list-item-label::after {
    font-size: 11px;
  }
}

/* ---------- 添付ファイル（Drag and Drop Multiple File Upload） ---------- */
.nk-contact-form .codedropz-upload-wrapper {
  margin: 0;
}

.nk-contact-form .codedropz-upload-handler {
  margin: 0;
  border: 1.5px dashed #9bb5d3;
  border-radius: 4px;
  background-color: #f5f8fb;
}

.nk-contact-form .codedropz-upload-container {
  padding: 28px 16px;
}

.nk-contact-form .codedropz-upload-inner h3 {
  margin: 0 0 4px;
  color: #333;
  font-size: 15px;
  font-weight: 700;
}

.nk-contact-form .codedropz-upload-inner span {
  display: block;
  margin-bottom: 6px;
  color: #666;
  font-size: 13px;
}

.nk-contact-form .codedropz-btn-wrap a.cd-upload-btn {
  color: #1b5da8;
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nk-contact-form .dnd-upload-counter {
  color: #666;
  font-size: 12px;
}

/* ---------- 英語フォーム ---------- */
.nk-contact-form__required-text {
  margin-left: 12px;
  color: #e30000;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.nk-contact-form select.nk-contact-form__select,
.nk-contact-form .nk-contact-form__select select {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 380px;
  height: 46px;
  padding: 0 52px 0 18px;
  border: 1px solid #d5d5d5;
  border-radius: 4px;
  background:
    linear-gradient(#d5d5d5, #d5d5d5) right 46px center / 1px 100% no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 9'%3E%3Cpath d='M0 0h12L6 9z' fill='%23333'/%3E%3C/svg%3E") right 17px center / 12px 9px no-repeat,
    #f5f5f5;
  color: #333;
  font-family: inherit;
  font-size: 15px;
  appearance: none;
  cursor: pointer;
}

/* 「To Our Global Customers」：見出しの左に青い線、白背景の案内 */
.lang-en .nk-contact-form__inner > .nk-callout {
  padding: 0;
  background: none;
}

.lang-en .nk-contact-form__inner > .nk-callout .nk-callout__label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  border-radius: 0;
  background: none;
  color: #333;
  font-size: 22px;
}

.lang-en .nk-contact-form__inner > .nk-callout .nk-callout__label::before {
  content: "";
  width: 4px;
  height: 24px;
  background-color: #1b5da8;
}

.lang-en .nk-contact-form__inner > .nk-callout .nk-callout__body p {
  margin: 0 0 16px;
  padding-left: 4px;
  color: #555;
  font-size: 13px;
  line-height: 1.75;
}

.lang-en .nk-contact-form__inner > .nk-callout .nk-callout__body p strong {
  display: inline-block;
  margin-bottom: 4px;
  color: #333;
  font-size: 15px;
}

/* ==========================================================================
   ページ内ナビ（製品情報・会社紹介・設備紹介・技術）
   PC：これまでどおり左のリスト／スマホ：画面下に追従するプルダウン
   ========================================================================== */

.nk-jump-nav__select-wrap {
  display: none;
}

@media (max-width: 768px) {
  .nk-jump-nav {
    position: fixed;
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    z-index: 240;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgb(255 255 255 / 96%);
    box-shadow: 0 -4px 16px rgb(0 0 0 / 10%);
  }

  .nk-jump-nav__toggle,
  .nk-jump-nav > ol,
  .nk-jump-nav.is-open > ol {
    display: none;
  }

  .nk-jump-nav__select-wrap {
    display: block;
  }

  .nk-jump-nav__select {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: 48px;
    padding: 0 44px 0 16px;
    border: 1px solid #1b5da8;
    border-radius: 8px;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231b5da8' stroke-width='2'/%3E%3C/svg%3E") right 16px center / 12px 8px no-repeat,
      #fff;
    color: #1b5da8;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    appearance: none;
    cursor: pointer;
  }

  /* 下のバーで本文の最後が隠れないように */
  body:has(.nk-jump-nav) {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px));
  }

  .nk-product-item,
  .nk-tech-item,
  .nk-equipment-item,
  .nk-company-section {
    scroll-margin-top: calc(clamp(48px, 34.62px + 3.57vw, 86px) + 16px);
  }
}

/* 社長メッセージ（スマホ）：文字入りの画像を使うときは、上に重ねる文字を出さない */
@media (max-width: 768px) {
  .nk-company-message__hero.has-sp-image .nk-company-message__overlay {
    display: none;
  }

  .nk-company-message__hero picture,
  .nk-company-message__hero picture img {
    display: block;
    width: 100%;
    height: auto;
  }
}

/* 英語版の会社概要表（スマホ）：項目名の下に内容を出す */
@media (max-width: 768px) {
  .lang-en .nk-company-table,
  .lang-en .nk-company-table tbody,
  .lang-en .nk-company-table .nk-spec-row,
  .lang-en .nk-company-table .nk-spec-row__label,
  .lang-en .nk-company-table .nk-spec-row__value {
    display: block;
    width: 100%;
  }

  .lang-en .nk-company-table .nk-spec-row {
    padding: 14px 0;
  }

  .lang-en .nk-company-table .nk-spec-row__label {
    padding: 0 0 4px;
    color: #1b5da8;
    font-size: 14px;
    line-height: 1.5;
    white-space: normal;
  }

  .lang-en .nk-company-table .nk-spec-row__value {
    padding: 0;
    font-size: 15px;
    line-height: 1.7;
  }

  .lang-en .nk-company-table .nk-spec-row:not(:last-child) {
    background-size: 96px 1px, calc(100% - 96px) 1px;
    background-position: 0 100%, 96px 100%;
  }
}

/* スマホのメニューを開いている間は、画面下に追従するボタン・ナビを隠す */
@media (max-width: 768px) {
  body:has(.p-drawer.is-open) :is(.recruit-float-entry, .nk-jump-nav) {
    visibility: hidden;
    opacity: 0;
  }
}

/* CAE の動画 */
.nk-cae-section__movie-media.is-video {
  width: 100%;
  max-width: 720px;
}

.nk-cae-section__movie-media video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  background: #000;
}

/* ==========================================================================
   規約・ポリシーなどの文章ページ（プライバシーポリシー）
   ========================================================================== */

.nk-legal {
  width: min(960px, calc(100% - 40px));
  margin: 0 auto;
  padding-block: 40px 120px;
  color: #333;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.04em;
}

.nk-legal > * + * {
  margin-top: 16px;
}

.nk-legal h2 {
  position: relative;
  margin-top: 56px;
  padding: 0 0 12px 20px;
  border-bottom: 1px solid #d5dde5;
  color: #1b5da8;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.nk-legal h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em;
  bottom: calc(12px + 0.3em);
  width: 4px;
  border-radius: 2px;
  background: linear-gradient(180deg, #185baa 0%, #348daa 49%, #6eb83f 100%);
}

.nk-legal h2 + * {
  margin-top: 20px;
}

.nk-legal ul {
  padding: 20px 28px;
  border-radius: 8px;
  background: #f2f6f9;
  list-style: none;
}

.nk-legal li {
  position: relative;
  padding-left: 1.2em;
}

.nk-legal li + li {
  margin-top: 4px;
}

.nk-legal li::before {
  content: "";
  position: absolute;
  left: 0.2em;
  top: 0.85em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #1b5da8;
}

.nk-legal a {
  color: #1b5da8;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nk-legal a:hover {
  text-decoration: none;
}

@media (max-width: 768px) {
  .nk-legal {
    width: calc(100% - 32px);
    padding-block: 24px 80px;
    font-size: 15px;
    line-height: 1.9;
  }

  .nk-legal h2 {
    margin-top: 40px;
    font-size: 18px;
  }

  .nk-legal ul {
    padding: 16px 18px;
  }
}

.nk-contact-form__fields[hidden],
.nk-contact-confirm[hidden] {
  display: none !important;
}

/* 確認前のブラウザ側チェックでエラーがあったとき（Contact Form 7 は初期状態ではメッセージ欄を隠すため表示する） */
.nk-contact-form form.is-invalid .wpcf7-response-output {
  display: block;
  border-color: #ffb900;
}
