/* ==========================================================
 * Home：トップ
 * ======================================================= */

.c-section-heading__en--lg {
  font-size: 80px;
}

@media (max-width: 767px) {
  .c-section-heading__en--lg {
    font-size: 56px;
  }
}

.p-home {
  position: relative;
}

.p-home-intro {
  --hero_content_w: min(
    var(--content_width_xl),
    calc(100vw - (var(--page_gutter) * 2))
  );
  --hero_company_gap: 180px;
  --hero_compose_h: calc(
    190px + var(--hero_content_w) * 590 / 1200 + var(--hero_company_gap)
  );
  --hero_offset_y: max(0px, calc((100svh - var(--hero_compose_h)) / 2));
  position: relative;
  padding-bottom: 80px;
}

.p-home-intro__sticky {
  position: relative;
}

.p-home-intro__copy {
  position: absolute;
  top: 0;
  bottom: 0;
  left: max(var(--page_gutter), calc((100% - var(--content_width_xl)) / 2));
  right: max(var(--page_gutter), calc((100% - var(--content_width_xl)) / 2));
  z-index: 2;
  width: auto;
  margin-inline: 0;
  pointer-events: none;
}

.p-home-hero {
  position: relative;
  min-height: 100svh;
}

.p-home-hero > .l-container {
  position: relative;
  min-height: 100svh;

  padding-bottom: calc(var(--hero_offset_y) + var(--hero_compose_h));
}

.p-home-hero__copy {
  --hero_pad_top: 130px;
  --hero_pad_bottom: 40px;
  --hero_gap_base: calc(var(--hero_content_w) * 195 / 1200);
  --hero_title_h: calc(var(--hero_content_w) * 108 * 1.1 * 2 / 1200);
  --hero_lead_h: calc(var(--hero_content_w) * 36 * 1.7 * 3 / 1200);
  --hero_gap: max(
    0px,
    min(
      var(--hero_gap_base),
      calc(
        100svh - var(--hero_pad_top) - var(--hero_title_h) - var(--hero_lead_h) -
          var(--hero_pad_bottom)
      )
    )
  );
  position: sticky;
  top: calc(-1 * var(--hero_offset_y));
  z-index: 2;
  display: grid;
  gap: var(--hero_gap);
  max-width: calc(var(--hero_content_w) * 546 / 1200);
  margin-left: calc(var(--hero_content_w) * -6 / 1200);
  padding: calc(var(--hero_pad_top) + var(--hero_offset_y)) 0 0;
  pointer-events: auto;
}

.p-home-hero__title {
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: calc(var(--hero_content_w) * 108 / 1200);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
}

.p-home-hero__title-line,
.p-home-hero__title .js-hero-char,
.p-home-hero__title .js-hero-line,
.p-home-hero__title .js-hero-line-mask {
  letter-spacing: 0;
}

.p-home-hero__title-line {
  display: block;
  overflow: clip;
}

.p-home-hero__lead {
  max-width: calc(var(--hero_content_w) * 409 / 1200);
  padding-left: calc(var(--hero_content_w) * 6 / 1200);
  font-size: calc(var(--hero_content_w) * 36 / 1200);
  font-weight: 700;
  line-height: 1.7;
}

.p-home-hero__lead--sp {
  display: none;
}

.p-home-hero__media {
  position: absolute;
  top: calc(var(--hero_offset_y) + 190px);
  left: calc(var(--hero_content_w) * 146 / 1200);
  right: 0;
  z-index: 1;
  overflow: visible;
}

.p-home-hero__media > picture,
.p-home-hero__media > picture img {
  display: block;
  width: 100%;
  height: auto;
}

.p-home-hero__media > picture {
  overflow: hidden;
}

.p-home-hero__media > picture img {
  transform-origin: center center;
}

html.js .js-hero-intro {
  opacity: 0;
}

html.js .c-contact-fab.js-hero-intro {
  pointer-events: none;
}

.p-home-hero__title .js-hero-line,
.p-home-hero__lead .js-hero-line {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  html.js .js-hero-intro {
    opacity: 1;
  }

  html.js .c-contact-fab.js-hero-intro {
    pointer-events: auto;
  }
}

.p-home-hero__tag {
  position: absolute;
  top: calc(var(--hero_offset_y) + 168px);
  right: 0;
  z-index: 2;
  color: var(--color_primary);
  font-family: var(--font_en_sub);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}

a[href].c-contact-fab {
  color: #ffffff;
  transition: transform var(--transition_arrow);
}

.c-contact-fab {
  position: absolute;
  top: calc(var(--hero_content_w) * 410 / 1200);
  right: -40px;
  z-index: var(--z_fab);
  display: block;
  box-sizing: border-box;
  width: calc(var(--hero_content_w) * 140 / 1200);
  height: calc(var(--hero_content_w) * 140 / 1200);
  overflow: hidden;
  border-radius: 999px;
  text-decoration: none;
  transform: scale(1);
}

.c-contact-fab > img {
  display: block;
  width: 100%;
  height: 100%;
}

@media (any-hover: hover) {
  a[href].c-contact-fab:hover,
  a[href].c-contact-fab:focus-visible {
    transform: scale(1.08);
    transition: transform var(--transition_arrow);
  }
}


@media (max-width: 1023px) and (min-width: 768px) {
  .p-home-intro {
    --hero_offset_y: 0px;
    --hero_company_gap: 80px;
  }

  .p-home-hero,
  .p-home-hero > .l-container {
    min-height: 0;
  }

  .p-home-hero__copy {
    position: relative;
    top: auto;
  }

  .c-contact-fab {
    top: auto;
    right: -12px;
    bottom: 16px;
  }
}

@media (max-width: 767px) {
  .p-home-intro {
    --hero_content_w: min(var(--content_width_xl), calc(100vw - 32px));
    --hero_offset_y: 0px;
    --hero_sp_title_size: 56px;
    --hero_sp_title_h: calc(var(--hero_sp_title_size) * 1.1 * 2);
    --hero_sp_lead_h: calc(24px * 1.7 * 3);
    --hero_sp_media_h: calc(100vw * 300 / 390);
    --hero_sp_below_media: calc(8px + 10px + 24px + var(--hero_sp_lead_h));
    --hero_sp_bottom_pad: 16px;
    --hero_sp_slack: calc(
      100svh - var(--header_height_sp) - var(--hero_sp_bottom_pad) -
        var(--hero_sp_title_h) - var(--hero_sp_media_h) - var(--hero_sp_below_media)
    );
    --hero_sp_title_top: clamp(8px, calc(var(--hero_sp_slack) - 24px), 40px);
    --hero_sp_gap: clamp(
      -100px,
      calc(var(--hero_sp_slack) - var(--hero_sp_title_top)),
      24px
    );
    padding-top: var(--header_height_sp);
    padding-bottom: 100px;
  }

  .p-home-intro__sticky {
    display: flow-root;
  }

  .p-home-hero,
  .p-home-hero > .l-container {
    min-height: 0;
  }

  .p-home-intro__copy {
    left: 16px;
    right: 16px;
  }

  .p-home-hero > .l-container {
    padding-bottom: 0;
  }

  .c-contact-fab {
    top: auto;
    right: 16px;
    bottom: -130px;
    width: 80px;
    height: 80px;
  }

  .p-home-hero__copy {
    position: relative;
    top: auto;
    gap: 0;
    max-width: none;
    margin-left: 0;
    padding-top: var(--hero_sp_title_top);
  }

  .p-home-hero__title {
    font-size: var(--hero_sp_title_size);
    line-height: 1.1;
  }

  .p-home-hero__lead {
    display: none;
    font-size: 24px;
    line-height: 1.7;
  }

  .p-home-hero__lead--sp {
    display: block;
    max-width: 273px;
    margin-top: 24px;
    padding-left: 0;
    font-size: 24px;
    line-height: 1.7;
  }

  .p-home-hero {
    margin-top: 0;
    padding-bottom: 80px;
  }

  .p-home-hero__media {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: calc(100% + 32px);
    margin-top: calc(
      var(--hero_sp_title_top) + var(--hero_sp_title_h) + var(--hero_sp_gap)
    );
    margin-left: -16px;
  }

  .p-home-hero__media > picture img {
    aspect-ratio: 390 / 300;
  }

  .p-home-hero__tag {
    display: block;
    position: relative;
    top: auto;
    right: auto;
    width: max-content;
    margin-top: 8px;
    font-size: 10px;
    letter-spacing: 0.1em;
  }
}

@media (max-width: 375px) {
  .p-home-intro {
    --hero_sp_title_size: 48px;
  }
}

.p-home-company > .l-container {
  container-type: inline-size;
}

.p-home-company__grid {
  display: grid;
  gap: 60px;
  max-width: clamp(470px, 50cqw, 600px);
  margin-left: auto;
}

.p-home-company__content {
  display: grid;
  gap: 40px;
}

.p-home-company__title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 2;
}

.p-home-company__text {
  font-size: 15px;
  font-weight: 500;
  line-height: 3;
}

.p-home-company__photos {
  position: relative;
  width: 100%;
  max-width: 600px;
  aspect-ratio: 600 / 747;
}

.p-home-company__photo {
  position: absolute;
  display: block;
  object-fit: cover;
}

.p-home-company__photo--1 {
  top: 0;
  left: 0;
  width: calc(330 / 600 * 100%);
  height: calc(248 / 747 * 100%);
}

.p-home-company__photo--2 {
  top: calc(267 / 747 * 100%);
  left: calc(180 / 600 * 100%);
  width: calc(420 / 600 * 100%);
  height: calc(280 / 747 * 100%);
}

.p-home-company__photo--3 {
  top: calc(567 / 747 * 100%);
  left: calc(60 / 600 * 100%);
  width: calc(270 / 600 * 100%);
  height: calc(180 / 747 * 100%);
}

@media (max-width: 1023px) {
  .p-home-company__grid {
    max-width: none;
    margin-left: 0;
    gap: 48px;
  }
}

@media (max-width: 767px) {
  .p-home-company__content {
    gap: 32px;
  }

  .p-home-company__title {
    font-size: 18px;
    line-height: 2;
  }

  .p-home-company__text {
    font-size: 13px;
  }
}

@media (max-width: 1023px) and (min-width: 768px) {
  .p-home-company__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
  }
}

.p-home-service {
  padding-block: 0 80px;
}

.p-home-service__panel {
  display: grid;
  gap: 16px;
  padding: 16px;
  border-radius: var(--radius_lg);
  background: rgba(0, 204, 136, 0.8);
}

.p-home-service__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  padding: 40px 44px;
  text-decoration: none;
}

.p-home-service__intro {
  display: grid;
  gap: 24px;
  align-content: center;
}

.p-home-service__heading-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.p-home-service__heading-row .c-section-heading {
  flex: 1;
  min-width: 0;
}

.p-home-service__media {
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-home-service__media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 512 / 289;
  object-fit: cover;
}

.p-home-service__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.p-home-service__card {
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 24px;
  height: 100%;
  padding: 40px 44px;
  border-radius: var(--radius_md);
  background: rgba(255, 255, 255, 0.3);
  text-decoration: none;
}

.p-home-service__card-text {
  display: grid;
  gap: 24px;
  align-content: start;
}

.p-home-service__card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.p-home-service__card-head .c-section-heading {
  flex: 1;
  min-width: 0;
}

.p-home-service__card-head .c-section-heading__ja {
  font-size: 32px;
  letter-spacing: 0.05em;
}

.p-home-service__card-body {
  font-size: 14px;
  font-weight: 500;
  line-height: 2;
}

.p-home-service__card-media {
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-home-service__card-media img {
  display: block;
  width: 100%;
  aspect-ratio: 492 / 277;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .p-home-service__main,
  .p-home-service__cards {
    grid-template-columns: 1fr;
  }

  .p-home-service__main,
  .p-home-service__card {
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-home-service {
    padding-block: 0;
  }

  .p-home-service__panel {
    gap: 16px;
    padding: 8px;
  }

  .p-home-service__main {
    gap: 24px;
    padding: 20px 16px;
  }

  .p-home-service__intro {
    gap: 24px;
  }

  .p-home-service__heading-row .c-section-heading__en {
    font-size: 44px;
    letter-spacing: 0.02em;
  }

  .p-home-service__heading-row .c-section-heading__ja {
    font-size: 20px;
    letter-spacing: 0.1em;
  }

  .p-home-service__card {
    gap: 24px;
    padding: 20px 16px;
  }

  .p-home-service__card-text {
    gap: 24px;
  }

  .p-home-service__card-head .c-section-heading__ja {
    font-size: 32px;
  }

  .p-home-service__card-body {
    font-size: 13px;
    line-height: 2;
  }
}

.p-home-news {
  padding-block: 40px 80px;
}

.p-home-news__layout {
  display: grid;
  grid-template-columns: clamp(140px, 23.33cqi, 280px) minmax(0, 1fr);
  gap: clamp(40px, 6.67cqi, 80px);
  align-items: start;
}

.p-home-news > .l-container {
  container-type: inline-size;
}

.p-home-news__head {
  display: grid;
  gap: clamp(24px, 3.33cqi, 40px);
  justify-items: start;
  min-width: 0;
}

.p-home-news__list {
  display: grid;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-home-news__list > li {
  min-width: 0;
}

@media (max-width: 1023px) {
  .p-home-news__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(24px, 4vw, 32px);
  }
}

@media (max-width: 767px) {
  .p-home-news {
    padding-block: 80px 0;
  }

  .p-home-news__layout {
    gap: 48px;
  }

  .p-home-news__head {
    gap: 40px;
  }

  .p-home-news .c-section-heading__en {
    font-size: 44px;
    letter-spacing: 0.02em;
  }

  .p-home-news .c-section-heading__ja {
    font-size: 20px;
    letter-spacing: 0.1em;
  }
}

.p-home-recruit {
  padding-block: 0 80px;
}

.c-section-heading--recruit {
  position: relative;
  padding-bottom: 35px;
}

.c-section-heading__marker {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 205px;
  height: auto;
  pointer-events: none;
}

.c-section-heading__marker img {
  display: block;
  width: 100%;
  height: auto;
}

.p-home-recruit__stack {
  display: grid;
  gap: 8px;
}

.p-home-recruit__banner {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1200 / 440;
  overflow: hidden;
  border-radius: var(--radius_lg);
  background: var(--color_primary_soft);
  text-decoration: none;
}

.p-home-recruit__heading {
  position: absolute;
  top: 50%;
  left: 60px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 32px;
  transform: translateY(-50%);
}

.p-home-recruit__heading .c-section-heading__en--lg {
  letter-spacing: 0;
}

.p-home-recruit__media {
  position: absolute;
  top: calc(-43.809 / 440 * 100%);
  left: calc(369 / 1200 * 100%);
  width: calc(831 / 1200 * 100%);
}

.p-home-recruit__media > picture,
.p-home-recruit__media img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 1023px) {
  .p-home-recruit {
    padding-block: 80px 0;
  }

  .p-home-recruit__stack {
    gap: 8px;
    min-width: 0;
  }

  .p-home-recruit__banner {
    display: flex;
    flex-direction: column;
    aspect-ratio: auto;
    min-width: 0;
    max-width: 100%;
    min-height: 0;
    overflow: hidden;
    padding: 0;
  }

  .p-home-recruit__heading {
    position: relative;
    top: auto;
    left: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 28px 24px 0;
    transform: none;
  }

  .p-home-recruit__heading .c-section-heading--recruit {
    padding-bottom: 23px;
  }

  .p-home-recruit__heading .c-section-heading__en--lg {
    font-size: 44px;
  }

  .p-home-recruit__heading .c-section-heading__ja--lg {
    font-size: 20px;
  }

  .p-home-recruit__heading .c-section-heading__marker {
    width: 136px;
  }

  .p-home-recruit__heading .c-button--circle {
    width: 36px;
    height: 36px;
  }

  .p-home-recruit__heading .c-button--circle img {
    width: 36px;
    height: 36px;
  }

  .p-home-recruit__media {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
  }

  .p-home-recruit__media img {
    aspect-ratio: 358 / 227;
  }
}

@media (max-width: 767px) {
  .c-footer-contact {
    min-height: 406px;
  }

  .c-footer-contact__heading {
    gap: 4px;
  }

  .c-footer-contact__en {
    font-size: 44px;
    letter-spacing: 0.02em;
  }

  .c-footer-contact__ja {
    font-size: 20px;
    letter-spacing: 0.05em;
  }

  .c-footer-contact__lead {
    margin-top: 0;
    font-size: 13px;
    line-height: 2;
  }
}

/* ==========================================================
 * Service：事業紹介
 * ======================================================= */

.p-service-intro {
  margin-top: 120px;
}

.p-service-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}

.p-service-intro__content {
  display: grid;
  gap: 40px;
  padding-right: 40px;
}

.p-service-intro__title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-service-intro__text {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-service-intro__media {
  overflow: hidden;
}

.p-service-intro__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 600 / 440;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .p-service-intro {
    margin-top: 64px;
  }

  .p-service-intro__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .p-service-intro__content {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .p-service-intro__content {
    gap: 24px;
  }

  .p-service-intro__title {
    font-size: 22px;
    line-height: 1.7;
  }

  .p-service-intro__text {
    font-size: 14px;
    line-height: 2;
  }

  .p-service-intro__text br {
    display: none;
  }
}

.p-service-units {
  margin-top: 120px;
}

.p-service-units__list {
  display: grid;
  gap: 8px;
}

.p-service-unit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  padding: 40px 60px;
  border-radius: var(--radius_lg);
  background: var(--color_primary_mid);
  text-decoration: none;
}

.p-service-unit__body {
  display: grid;
  gap: 24px;
  align-content: center;
  min-width: 0;
}

.p-service-unit__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.p-service-unit__head .c-section-heading {
  flex: 1;
  min-width: 0;
}

.p-service-unit__head .c-section-heading__ja {
  letter-spacing: 0.05em;
}

.p-service-unit__text {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-service-unit__media {
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-service-unit__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 520 / 318;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .p-service-units {
    margin-top: 80px;
  }

  .p-service-unit {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-service-units {
    margin-top: 64px;
  }

  .p-service-unit {
    padding: 24px 16px;
  }

  .p-service-unit__head .c-section-heading__en {
    font-size: 44px;
  }

  .p-service-unit__head .c-section-heading__ja {
    font-size: 28px;
  }

  .p-service-unit__text {
    font-size: 13px;
    line-height: 2;
  }

  .p-service-unit__text br {
    display: none;
  }
}

.p-service-strengths {
  margin-top: 136px;
}

.p-service-strengths > .l-container {
  display: grid;
  gap: 80px;
}

.p-service-strengths__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  align-items: stretch;
}

.p-service-strengths__item {
  display: grid;
  gap: 28px;
  align-content: start;
  height: 100%;
  padding: 40px 60px;
  border-radius: var(--radius_md);
  background: var(--color_bg_subtle);
}

.p-service-strengths__item-head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.p-service-strengths__num {
  color: var(--color_primary);
  font-family: var(--font_en_sub);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-service-strengths__item-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-service-strengths__item-text {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

@media (max-width: 1023px) {
  .p-service-strengths {
    margin-top: 96px;
  }

  .p-service-strengths > .l-container {
    gap: 48px;
  }

  .p-service-strengths__item {
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-service-strengths {
    margin-top: 80px;
  }

  .p-service-strengths > .l-container {
    gap: 40px;
  }

  .p-service-strengths__list {
    grid-template-columns: 1fr;
  }

  .p-service-strengths__item {
    gap: 16px;
    padding: 24px 20px;
  }

  .p-service-strengths__num {
    font-size: 28px;
  }

  .p-service-strengths__item-title {
    font-size: 20px;
  }

  .p-service-strengths__item-text {
    font-size: 13px;
  }
}

.p-service-marquee {
  position: relative;
  display: grid;
  width: 100%;
  margin-top: 120px;
  height: 450px;
  align-items: center;
  overflow: hidden;
  background: var(--color_bg);
}

.p-service-marquee__swiper {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.p-service-marquee__swiper .swiper-wrapper {
  transition-timing-function: linear !important;
  align-items: stretch;
}

.p-service-marquee__slide {
  width: auto;
  height: 100%;
}

.p-service-marquee__slide img {
  display: block;
  width: auto;
  height: 100%;
  max-width: none;
}

.p-service-marquee__title {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  margin: 0;
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 108px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  text-align: center;
  pointer-events: none;
}

@media (max-width: 1023px) {
  .p-service-marquee {
    margin-top: 80px;
    height: 320px;
  }

  .p-service-marquee__title {
    font-size: 64px;
  }
}

@media (max-width: 767px) {
  .p-service-marquee {
    margin-top: 64px;
    height: 240px;
  }

  .p-service-marquee__title {
    font-size: 48px;
  }
}

.p-service-contact {
  margin-block: 120px;
}

@media (max-width: 1023px) {
  .p-service-contact {
    margin-block: 80px;
  }
}

@media (max-width: 767px) {
  .p-service-contact {
    margin-block: 64px;
  }
}

/* ==========================================================
 * Service — LPG：LPガス部
 * ======================================================= */

.p-lpg-overview,
.p-lpg-features,
.p-lpg-about,
.p-lpg-cert,
.p-lpg-locations {
  scroll-margin-top: calc(var(--header_height) + 24px);
}

.p-lpg-overview {
  margin-top: 120px;
}

.p-lpg-overview__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}

.p-lpg-overview__content {
  display: grid;
  gap: 40px;
  padding-right: 40px;
}

.p-lpg-overview__title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-lpg-overview__body {
  display: grid;
  gap: 32px;
}

.p-lpg-overview__body p {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-lpg-overview__photos {
  position: relative;
  width: 100%;
  aspect-ratio: 600 / 800;
}

.p-lpg-overview__photo {
  position: absolute;
  display: block;
  object-fit: cover;
}

.p-lpg-overview__photo--1 {
  top: 0;
  left: 0;
  width: calc(394 / 600 * 100%);
  height: calc(295 / 800 * 100%);
}

.p-lpg-overview__photo--2 {
  top: calc(328 / 800 * 100%);
  left: calc(322 / 600 * 100%);
  width: calc(278 / 600 * 100%);
  height: calc(208 / 800 * 100%);
}

.p-lpg-overview__photo--3 {
  top: calc(560 / 800 * 100%);
  left: calc(120 / 600 * 100%);
  width: calc(320 / 600 * 100%);
  height: calc(240 / 800 * 100%);
}

@media (max-width: 1023px) {
  .p-lpg-overview {
    margin-top: 64px;
  }

  .p-lpg-overview__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .p-lpg-overview__content {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .p-lpg-overview,
  .p-lpg-features,
  .p-lpg-about,
  .p-lpg-cert,
  .p-lpg-locations {
    scroll-margin-top: calc(var(--header_height_sp) + 16px);
  }

  .p-lpg-overview__content {
    gap: 24px;
  }

  .p-lpg-overview__title {
    font-size: 22px;
  }

  .p-lpg-overview__body {
    gap: 20px;
  }

  .p-lpg-overview__body p {
    font-size: 14px;
    line-height: 2;
  }

  .p-lpg-overview__body br {
    display: none;
  }
}

.p-lpg-features {
  margin-top: 160px;
}

.p-lpg-features > .l-container {
  display: grid;
  gap: 80px;
}

.p-lpg-features__list {
  display: grid;
  gap: 8px;
}

.p-lpg-features__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: center;
  padding: 40px 60px;
  background: var(--color_bg_subtle);
}

.p-lpg-features__item-head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.p-lpg-features__num {
  color: var(--color_primary);
  font-family: var(--font_en_sub);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-lpg-features__item-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-lpg-features__item-text {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

@media (max-width: 1023px) {
  .p-lpg-features {
    margin-top: 96px;
  }

  .p-lpg-features > .l-container {
    gap: 48px;
  }

  .p-lpg-features__item {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-lpg-features {
    margin-top: 80px;
  }

  .p-lpg-features > .l-container {
    gap: 40px;
  }

  .p-lpg-features__item {
    padding: 24px 20px;
  }

  .p-lpg-features__num {
    font-size: 28px;
  }

  .p-lpg-features__item-title {
    font-size: 20px;
  }

  .p-lpg-features__item-text {
    font-size: 13px;
  }

  .p-lpg-features__item-text br {
    display: none;
  }
}

.p-lpg-about {
  margin-top: 160px;
}

.p-lpg-about__panel {
  display: grid;
  gap: 60px;
  justify-items: center;
  padding: 60px 60px 80px;
  border-radius: var(--radius_lg);
  background: rgba(0, 200, 138, 0.1);
}

.p-lpg-about__heading {
  display: grid;
  gap: 8px;
  width: fit-content;
  justify-items: center;
  text-align: center;
}

.p-lpg-about__title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-lpg-about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: start;
  width: 100%;
}

.p-lpg-about__content {
  display: grid;
  gap: 32px;
  padding-right: 40px;
}

.p-lpg-about__content p {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-lpg-about__media {
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-lpg-about__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 540 / 405;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .p-lpg-about {
    margin-top: 96px;
  }

  .p-lpg-about__panel {
    gap: 40px;
    padding: 40px 32px;
  }

  .p-lpg-about__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .p-lpg-about__content {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .p-lpg-about {
    margin-top: 80px;
  }

  .p-lpg-about__panel {
    gap: 32px;
    padding: 32px 20px;
  }

  .p-lpg-about__title {
    font-size: 24px;
  }

  .p-lpg-about__content {
    gap: 20px;
  }

  .p-lpg-about__content p {
    font-size: 13px;
    line-height: 2;
  }

  .p-lpg-about__content br {
    display: none;
  }
}

.p-lpg-cert {
  margin-top: 160px;
}

.p-lpg-cert > .l-container {
  display: grid;
  gap: 80px;
  justify-items: center;
}

.p-lpg-cert__table-wrap {
  width: 100%;
  max-width: 960px;
  overflow-x: auto;
}

.p-lpg-cert__table {
  width: 100%;
  border-collapse: collapse;
}

.p-lpg-cert__table th,
.p-lpg-cert__table td {
  padding: 30px 0;
  border-bottom: 1px solid rgba(31, 37, 71, 0.15);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
  text-align: left;
  vertical-align: middle;
}

.p-lpg-cert__table th {
  width: 300px;
  padding-right: 20px;
  color: rgba(31, 37, 71, 0.6);
  font-weight: 500;
}

.p-lpg-cert__table td {
  width: auto;
  color: var(--color_text);
}

.p-lpg-cert__list {
  display: grid;
  gap: 8px;
}

.p-lpg-cert__list li {
  display: flex;
  gap: 16px;
  align-items: baseline;
  justify-content: space-between;
}

.p-lpg-cert__name {
  flex: 1;
  min-width: 0;
}

.p-lpg-cert__count {
  flex-shrink: 0;
}

@media (max-width: 1023px) {
  .p-lpg-cert {
    margin-top: 96px;
  }

  .p-lpg-cert > .l-container {
    gap: 48px;
  }

  .p-lpg-cert__table th,
  .p-lpg-cert__table td {
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: 0;
  }

  .p-lpg-cert__table th {
    padding-bottom: 8px;
    font-weight: 500;
  }

  .p-lpg-cert__table td {
    padding-bottom: 0;
  }

  .p-lpg-cert__table tr {
    display: block;
    padding-block: 24px;
    border-bottom: 1px solid rgba(31, 37, 71, 0.15);
  }

  .p-lpg-cert__table tr:first-child {
    padding-top: 0;
  }

  .p-lpg-cert__table tr:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
}

@media (max-width: 767px) {
  .p-lpg-cert {
    margin-top: 80px;
  }

  .p-lpg-cert > .l-container {
    gap: 40px;
  }

  .p-lpg-cert__table th,
  .p-lpg-cert__table td {
    font-size: 13px;
  }
}

.p-lpg-locations {
  margin-top: 160px;
}

.p-lpg-locations > .l-container {
  display: grid;
  gap: 80px;
}

.p-lpg-locations__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.p-lpg-locations__item {
  position: relative;
  display: grid;
  border-bottom: 1px solid rgba(31, 37, 71, 0.15);
}

.p-lpg-locations__item:nth-child(odd)::after {
  content: "";
  position: absolute;
  top: 40px;
  right: 0;
  bottom: 40px;
  width: 1px;
  background: rgba(31, 37, 71, 0.15);
}

.p-lpg-locations__body {
  display: grid;
  gap: 16px;
  align-content: space-between;
  height: 100%;
  padding: 40px 60px;
}

.p-lpg-locations__info {
  display: grid;
  gap: 20px;
  padding-bottom: 20px;
}

.p-lpg-locations__name {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-lpg-locations__address {
  display: grid;
  gap: 8px;
}

.p-lpg-locations__address p,
.p-lpg-locations__tel {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-lpg-locations__tel a {
  color: inherit;
  text-decoration: none;
}

.p-lpg-locations__maps {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 4px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--color_primary);
  color: var(--color_text);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
}

.p-lpg-locations__maps img {
  display: block;
  width: 20px;
  height: 20px;
}

.p-lpg-locations__detail {
  display: inline-flex;
  box-sizing: border-box;
  width: 180px;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border: 0;
  border-radius: var(--radius_pill);
  background: var(--color_primary);
  color: #ffffff;
  cursor: pointer;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.p-lpg-locations__detail-label {
  padding-inline: 8px;
}

.p-lpg-locations__detail-icon {
  display: block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  pointer-events: none;
  transition: transform var(--transition_arrow);
}

@media (any-hover: hover) {
  .p-lpg-locations__detail:hover .p-lpg-locations__detail-icon {
    transform: scale(var(--arrow_hover_scale));
  }
}

@media (max-width: 1023px) {
  .p-lpg-locations {
    margin-top: 96px;
  }

  .p-lpg-locations > .l-container {
    gap: 48px;
  }

  .p-lpg-locations__item:nth-child(odd)::after {
    top: 32px;
    bottom: 32px;
  }

  .p-lpg-locations__body {
    padding: 32px 40px;
  }
}

@media (max-width: 767px) {
  .p-lpg-locations {
    margin-top: 80px;
  }

  .p-lpg-locations > .l-container {
    gap: 40px;
  }

  .p-lpg-locations__list {
    grid-template-columns: 1fr;
  }

  .p-lpg-locations__item:nth-child(odd)::after {
    content: none;
  }

  .p-lpg-locations__body {
    padding: 24px 0;
  }

  .p-lpg-locations__name {
    font-size: 20px;
  }

  .p-lpg-locations__address p,
  .p-lpg-locations__tel {
    font-size: 13px;
  }
}

.p-lpg-related {
  margin-top: 160px;
}

.p-lpg-related__card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  padding: 40px 60px;
  border-radius: var(--radius_lg);
  background: var(--color_primary_mid);
  text-decoration: none;
}

.p-lpg-related__body {
  display: grid;
  gap: 24px;
  align-content: center;
  min-width: 0;
}

.p-lpg-related__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.p-lpg-related__head .c-section-heading {
  flex: 1;
  min-width: 0;
}

.p-lpg-related__head .c-section-heading__ja {
  letter-spacing: 0.05em;
}

.p-lpg-related__text {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-lpg-related__media {
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-lpg-related__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 520 / 318;
  object-fit: cover;
}

@media (max-width: 1023px) {
  .p-lpg-related {
    margin-top: 96px;
  }

  .p-lpg-related__card {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-lpg-related {
    margin-top: 80px;
  }

  .p-lpg-related__card {
    padding: 24px 16px;
  }

  .p-lpg-related__head .c-section-heading__en {
    font-size: 44px;
  }

  .p-lpg-related__head .c-section-heading__ja {
    font-size: 28px;
  }

  .p-lpg-related__text {
    font-size: 13px;
  }

  .p-lpg-related__text br {
    display: none;
  }
}

.p-lpg-contact {
  margin-top: 8px;
  margin-bottom: 120px;
}

@media (max-width: 1023px) {
  .p-lpg-contact {
    margin-top: 8px;
    margin-bottom: 80px;
  }
}

@media (max-width: 767px) {
  .p-lpg-contact {
    margin-top: 8px;
    margin-bottom: 64px;
  }
}

/* ==========================================================
 * Service — Locations modal：事業所詳細（LPG / Logistics）
 * ======================================================= */

.c-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z_modal);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition_base), visibility var(--transition_base);
}

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

.c-modal__overlay {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: column;
  align-items: center;
  padding: 0 0 40px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.8);
  outline: none;
}

.c-modal__top {
  display: flex;
  width: 100%;
  max-width: 1440px;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-end;
  padding: 32px 24px 16px;
}

.c-modal__container {
  box-sizing: border-box;
  width: min(100% - 48px, 1200px);
  max-height: calc(100svh - 120px);
  margin-inline: auto;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-radius: var(--radius_lg);
  background: var(--color_bg);
  outline: none;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(31, 37, 71, 0.35) rgba(31, 37, 71, 0.08);
}

@media (min-width: 768px) {
  .c-modal__container::-webkit-scrollbar {
    width: 8px;
  }

  .c-modal__container::-webkit-scrollbar-track {
    margin: 12px 0;
    background: rgba(31, 37, 71, 0.06);
    border-radius: 8px;
  }

  .c-modal__container::-webkit-scrollbar-thumb {
    background: rgba(31, 37, 71, 0.35);
    border-radius: 8px;
  }

  .c-modal__container::-webkit-scrollbar-thumb:hover {
    background: rgba(31, 37, 71, 0.5);
  }
}

.c-modal__body {
  display: grid;
  gap: 40px;
  padding: 60px 80px;
}

.c-modal__intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}

.c-modal__media {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding-right: 40px;
}

.c-modal__title-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 0;
  min-height: 48px;
}

.c-modal__title-row .c-brand-line {
  width: 4px;
  height: 32px;
}

.c-modal__title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.c-modal__photo {
  display: grid;
  gap: 16px;
  margin-block: auto;
  overflow: hidden;
}

.c-modal__photo img {
  display: block;
  width: 100%;
  max-width: 400px;
  height: auto;
}

.c-modal__caption {
  max-width: 400px;
  margin-top: 8px;
  color: var(--color_muted);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

.c-modal__copy p {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.c-modal__copy p + p {
  margin-top: 16px;
}

.c-modal__sign {
  text-align: right;
}

.c-modal__rule {
  width: 100%;
  height: 0;
  margin: 0;
  border: 0;
  border-top: 1px solid rgba(31, 37, 71, 0.15);
}

.c-modal__access {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
}

.c-modal__access-info {
  display: grid;
  gap: 32px;
}

.c-modal__access-heading {
  display: flex;
  align-items: center;
  gap: 16px;
}

.c-modal__access-heading .c-brand-line {
  width: 4px;
  height: 24px;
}

.c-modal__access-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.c-modal__access-body {
  display: grid;
  gap: 20px;
  padding-bottom: 20px;
}

.c-modal__address {
  display: grid;
  gap: 8px;
}

.c-modal__address p,
.c-modal__tel {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.c-modal__tel a {
  color: inherit;
  text-decoration: none;
}

.c-modal__maps {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 4px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--color_primary);
  color: var(--color_text);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
}

.c-modal__maps img {
  display: block;
  width: 20px;
  height: 20px;
}

.c-modal__map {
  overflow: hidden;
  aspect-ratio: 504 / 300;
  background: rgba(31, 37, 71, 0.06);
}

.c-modal__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 1023px) {
  .c-modal__body {
    padding: 40px 32px;
  }

  .c-modal__container {
    width: min(100% - 48px, 700px);
  }

  .c-modal__intro,
  .c-modal__access {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .c-modal__media {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .c-modal__top {
    padding: 16px;
  }

  .c-modal__container {
    width: min(100% - 32px, 700px);
  }

  .c-modal__body {
    gap: 32px;
    padding: 32px 20px;
  }

  .c-modal__media {
    gap: 20px;
  }

  .c-modal__title {
    font-size: 24px;
  }

  .c-modal__access-title {
    font-size: 20px;
  }

  .c-modal__copy p,
  .c-modal__address p,
  .c-modal__tel {
    font-size: 13px;
    line-height: 2;
  }

  .c-modal__caption {
    font-size: 12px;
  }
}

/* ==========================================================
 * Service — Logistics：物流部
 * ======================================================= */

.p-logistics-overview,
.p-logistics-medical,
.p-logistics-center {
  scroll-margin-top: calc(var(--header_height) + 24px);
}

.p-logistics-overview {
  margin-top: 120px;
}

.p-logistics-overview__grid {
  display: grid;
  grid-template-columns: minmax(0, 510fr) minmax(0, 690fr);
  align-items: start;
}

.p-logistics-overview__content {
  display: grid;
  gap: 40px;
  padding-right: 40px;
}

.p-logistics-overview__title {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-logistics-overview__body {
  display: grid;
  gap: 32px;
}

.p-logistics-overview__body p {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-logistics-overview__photos {
  position: relative;
  width: 100%;
  aspect-ratio: 690 / 800;
}

.p-logistics-overview__photo {
  position: absolute;
  display: block;
  object-fit: cover;
}

.p-logistics-overview__photo--1 {
  top: 0;
  left: calc(130 / 690 * 100%);
  width: calc(494 / 690 * 100%);
  height: calc(370 / 800 * 100%);
}

.p-logistics-overview__photo--2 {
  top: calc(416 / 800 * 100%);
  left: 0;
  width: calc(300 / 690 * 100%);
  height: calc(225 / 800 * 100%);
}

.p-logistics-overview__photo--3 {
  top: calc(545 / 800 * 100%);
  left: calc(350 / 690 * 100%);
  width: calc(340 / 690 * 100%);
  height: calc(255 / 800 * 100%);
}

@media (max-width: 1023px) {
  .p-logistics-overview {
    margin-top: 64px;
  }

  .p-logistics-overview__grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .p-logistics-overview__content {
    padding-right: 0;
  }
}

@media (max-width: 767px) {
  .p-logistics-overview,
  .p-logistics-medical,
  .p-logistics-center {
    scroll-margin-top: calc(var(--header_height_sp) + 16px);
  }

  .p-logistics-overview__content {
    gap: 24px;
  }

  .p-logistics-overview__title {
    font-size: 22px;
  }

  .p-logistics-overview__body {
    gap: 20px;
  }

  .p-logistics-overview__body p {
    font-size: 14px;
    line-height: 2;
  }

  .p-logistics-overview__body br,
  .p-logistics-overview__title br {
    display: none;
  }
}

.p-logistics-medical {
  margin-top: 160px;
}

.p-logistics-medical > .l-container {
  display: grid;
  gap: 80px;
}

.p-logistics-medical__body {
  display: grid;
  gap: 60px;
}

.p-logistics-medical__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.p-logistics-medical__item {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 112px;
  padding: 40px 60px;
  background: var(--color_bg_subtle);
}

.p-logistics-medical__num {
  flex-shrink: 0;
  color: var(--color_primary);
  font-family: var(--font_en_sub);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-logistics-medical__item-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.p-logistics-quote {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 2;
  text-align: center;
  text-decoration: underline;
  text-decoration-color: var(--color_primary_mid);
  text-decoration-thickness: 4px;
  text-decoration-skip-ink: none;
  text-underline-offset: 8px;
}

@media (max-width: 1023px) {
  .p-logistics-medical {
    margin-top: 96px;
  }

  .p-logistics-medical > .l-container {
    gap: 48px;
  }

  .p-logistics-medical__body {
    gap: 40px;
  }

  .p-logistics-medical__item {
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-logistics-medical {
    margin-top: 80px;
  }

  .p-logistics-medical > .l-container {
    gap: 40px;
  }

  .p-logistics-medical__body {
    gap: 32px;
  }

  .p-logistics-medical__list {
    grid-template-columns: 1fr;
  }

  .p-logistics-medical__item {
    min-height: 0;
    padding: 24px 20px;
  }

  .p-logistics-medical__num {
    font-size: 28px;
  }

  .p-logistics-medical__item-title {
    font-size: 16px;
  }

  .p-logistics-quote {
    font-size: 16px;
    line-height: 1.8;
    text-decoration-thickness: 3px;
    text-underline-offset: 6px;
  }

  .p-logistics-quote br {
    display: none;
  }
}

.p-logistics-center {
  margin-top: 160px;
}

.p-logistics-center > .l-container {
  display: grid;
  gap: 60px;
}

.p-logistics-center__lead {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-logistics-center__blocks {
  display: grid;
  gap: 8px;
}

.p-logistics-center__dept {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: center;
  padding: 40px 60px;
  background: var(--color_bg_subtle);
}

.p-logistics-center__dept-title {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-logistics-center__dept-text {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-logistics-center__gift {
  display: grid;
  gap: 40px;
  padding: 40px 60px;
  background: var(--color_bg_subtle);
}

.p-logistics-center__gift-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: center;
}

.p-logistics-center__cards {
  display: grid;
  gap: 8px;
}

.p-logistics-center__card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-items: center;
  padding: 40px 48px;
  background: #ffffff;
}

.p-logistics-center__card-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-logistics-center__card-text {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

@media (max-width: 1023px) {
  .p-logistics-center {
    margin-top: 96px;
  }

  .p-logistics-center > .l-container {
    gap: 48px;
  }

  .p-logistics-center__dept,
  .p-logistics-center__gift {
    padding: 32px 24px;
  }

  .p-logistics-center__card {
    padding: 32px 24px;
  }
}

@media (max-width: 767px) {
  .p-logistics-center {
    margin-top: 80px;
  }

  .p-logistics-center > .l-container {
    gap: 40px;
  }

  .p-logistics-center__lead {
    font-size: 14px;
    line-height: 2;
  }

  .p-logistics-center__dept,
  .p-logistics-center__gift-head,
  .p-logistics-center__card {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .p-logistics-center__dept,
  .p-logistics-center__gift {
    padding: 24px 20px;
  }

  .p-logistics-center__gift {
    gap: 24px;
  }

  .p-logistics-center__dept-title {
    font-size: 22px;
  }

  .p-logistics-center__dept-text,
  .p-logistics-center__card-text {
    font-size: 13px;
  }

  .p-logistics-center__dept-text br,
  .p-logistics-center__card-text br {
    display: none;
  }

  .p-logistics-center__card {
    padding: 24px 20px;
  }

  .p-logistics-center__card-title {
    font-size: 18px;
  }
}

/* ==========================================================
 * News：新着情報（一覧・詳細）
 * ======================================================= */

.c-news-item {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 3.33vw, 40px);
  min-width: 0;
  padding: 28px 8px 28px 0;
  border-bottom: 1px solid var(--color_border);
  text-decoration: none;
}

.c-news-item__body {
  display: flex;
  flex: 1;
  min-width: 0;
  align-items: flex-start;
  gap: clamp(16px, 3.33vw, 40px);
}

.c-news-item__date {
  flex-shrink: 0;
  color: var(--color_text);
  font-family: var(--font_en);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}

.c-news-item__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.c-news-item__arrow {
  display: grid;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  place-items: center;
  color: var(--color_primary);
  transition: transform var(--transition_arrow);
}

.c-news-item__arrow img {
  width: 24px;
  height: 24px;
}

@media (any-hover: hover) {
  .c-news-item__date,
  .c-news-item__title {
    transition-property: opacity;
    transition-duration: 0.1s;
    transition-timing-function: ease;
  }

  .c-news-item:hover .c-news-item__date,
  .c-news-item:hover .c-news-item__title {
    transition-duration: 0.2s;
    opacity: 0.8;
  }

  .c-news-item:hover .c-news-item__arrow {
    transform: scale(var(--arrow_hover_scale));
  }
}

@media (max-width: 767px) {
  .c-news-item {
    gap: 16px;
    padding: 20px 8px 20px 0;
  }

  .c-news-item__body {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .c-news-item__arrow {
    margin-top: calc(14px * 1.5 + 8px);
  }
}

.c-pagination {
  display: flex;
  justify-content: center;
}

.c-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 3px;
}

.c-pagination__item {
  display: inline-grid;
  width: 45px;
  height: 50px;
  place-items: center;
  border-radius: 3px;
  background: var(--color_bg_subtle);
  color: var(--color_text);
  font-family: var(--font_en_sub);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  text-decoration: none;
}

.c-pagination__item.is-current {
  background: var(--color_primary);
  color: #fff;
  pointer-events: none;
}

.c-pagination__item--prev img,
.c-pagination__item--next img {
  display: block;
  width: 24px;
  height: 24px;
}

.c-pagination__item--prev img {
  transform: rotate(180deg);
}

.c-pagination__item.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}

@media (max-width: 767px) {

  .c-pagination__item {
    width: 36px;
    height: 44px;
    font-size: 14px;
  }

  .c-pagination__item--prev img,
  .c-pagination__item--next img {
    width: 20px;
    height: 20px;
  }
}

.c-entry__header {
  display: grid;
  gap: 16px;
}

.c-entry__date {
  color: var(--color_text);
  font-family: var(--font_en);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.c-entry__title {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.c-entry__content {
  margin-top: 40px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.c-entry__content > *:first-child {
  margin-top: 0;
}

.c-entry__content > *:last-child {
  margin-bottom: 0;
}

.c-entry__content h2 {
  margin: 40px 0 16px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.c-entry__content h3 {
  margin: 32px 0 12px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.c-entry__content h4 {
  margin: 24px 0 8px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.c-entry__content p {
  margin: 0 0 1.5em;
}

.c-entry__content a {
  color: var(--color_primary_dark);
  text-decoration: underline;
}

.c-entry__content ul,
.c-entry__content ol {
  margin: 0 0 1.5em;
  padding-left: 1.5em;
}

.c-entry__content ul {
  list-style: disc;
}

.c-entry__content ol {
  list-style: decimal;
}

.c-entry__content li + li {
  margin-top: 0.25em;
}

.c-entry__content blockquote {
  margin: 0 0 1.5em;
  padding: 16px 20px;
  border-left: 4px solid var(--color_primary);
  background: var(--color_bg_subtle);
}

.c-entry__content blockquote p:last-child {
  margin-bottom: 0;
}

.c-entry__content img,
.c-entry__content .wp-block-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.c-entry__content figure,
.c-entry__content .wp-block-image {
  margin: 0 0 1.5em;
}

.c-entry__content figcaption {
  margin-top: 8px;
  color: var(--color_muted);
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.6;
  text-align: center;
}

.c-entry__content table {
  width: 100%;
  margin: 0 0 1.5em;
  border-collapse: collapse;
  font-size: 14px;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.c-entry__content th,
.c-entry__content td {
  padding: 12px 16px;
  border: 1px solid var(--color_border);
  text-align: left;
  vertical-align: top;
}

/* セル単位の寄せ指定を優先（デフォルト左寄せより強く） */
.c-entry__content th.has-text-align-left,
.c-entry__content td.has-text-align-left {
  text-align: left;
}

.c-entry__content th.has-text-align-center,
.c-entry__content td.has-text-align-center {
  text-align: center;
}

.c-entry__content th.has-text-align-right,
.c-entry__content td.has-text-align-right {
  text-align: right;
}

.c-entry__content thead th {
  background: var(--color_bg_subtle);
  font-weight: 700;
}

.c-entry__content tbody th {
  width: 30%;
  background: var(--color_bg_subtle);
  font-weight: 700;
}

.c-entry__content .wp-block-table {
  margin: 1em 0;
}

.c-entry__content .wp-block-table thead {
  border-bottom: 1px solid;
}

.c-entry__content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: #fcfcfc;
}

.c-entry__content .wp-block-image {
  margin-top: 1em;
  margin-bottom: 1.75em;
}

.c-entry__content .wp-block-gallery {
  margin: 1em 0;
}

.c-entry__content .wp-block-columns {
  margin-top: 1em;
}

.c-entry__content .wp-block-column > * {
  margin-top: 0;
  margin-bottom: 0;
}

.c-entry__content .wp-block-separator,
.c-entry__content hr {
  margin: 2em 0;
  border: 0;
  border-top: 1px solid var(--color_border);
}

.c-entry__content .wp-block-embed,
.c-entry__content .wp-block-video {
  margin: 1em auto 1.75em;
  max-width: 700px;
}

/* レスポンシブ埋め込みの height:100% を壊さないよう、iframe には height:auto を当てない */
.c-entry__content .wp-block-embed iframe,
.c-entry__content .wp-block-video video {
  display: block;
  max-width: 100%;
  border: 0;
}

.c-entry__content .wp-block-video video {
  width: 100%;
  height: auto;
}

.c-entry__content .wp-block-file:not(.wp-element-button) {
  font-size: 1em;
}

.c-entry__content .wp-block-file__button {
  display: inline-block;
  padding: 0.6em 1.2em;
  border-radius: var(--radius_md);
  background-color: var(--color_primary);
  color: #fff;
  text-decoration: none;
  transition: opacity 0.1s;
}

.c-entry__content .wp-block-file__button:hover {
  color: #fff;
  text-decoration: none;
  opacity: 0.85;
}

.c-entry__content pre,
.c-entry__content code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9em;
  letter-spacing: 0;
}

.c-entry__content :not(pre) > code {
  padding: 0.1em 0.35em;
  border-radius: var(--radius_sm);
  background: linear-gradient(transparent 60%, rgba(0, 200, 138, 0.25) 60%);
}

.c-entry__content pre {
  margin: 0 0 1.5em;
  padding: 16px 20px;
  overflow-x: auto;
  border-radius: var(--radius_md);
  background: var(--color_bg_subtle);
}

.c-entry__content pre code {
  padding: 0;
  background: transparent;
}

.c-entry__content .has-small-font-size {
  font-size: 0.85em;
}

.c-entry__content .has-regular-font-size {
  font-size: 1em;
}

.c-entry__content .has-large-font-size {
  font-size: 1.25em;
}

.c-entry__content .has-xlarge-font-size {
  font-size: 1.5em;
}

.c-entry__footer {
  display: flex;
  justify-content: center;
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid rgba(31, 37, 71, 0.15);
}

@media (max-width: 767px) {
  .c-entry__title {
    font-size: 20px;
  }

  .c-entry__content {
    margin-top: 32px;
    font-size: 14px;
  }

  .c-entry__content h2 {
    margin-top: 32px;
    font-size: 17px;
  }

  .c-entry__content h3 {
    margin-top: 24px;
    font-size: 15px;
  }

  .c-entry__content th,
  .c-entry__content td {
    padding: 10px 12px;
  }

  .c-entry__footer {
    margin-top: 48px;
    padding-top: 32px;
  }
}

.c-button__icon--prev {
  transform: scaleX(-1);
}

.p-news-archive {
  margin-top: 80px;
}

.p-news-archive__list {
  display: grid;
}

.p-news-archive .c-pagination {
  margin-top: 80px;
}

.p-news-single__entry {
  display: block;
  margin-top: 80px;
}

.p-news-contact {
  margin-top: 160px;
  margin-bottom: 120px;
}

@media (max-width: 1023px) {
  .p-news-archive {
    margin-top: 64px;
  }

  .p-news-archive .c-pagination {
    margin-top: 64px;
  }

  .p-news-single__entry {
    margin-top: 64px;
  }

  .p-news-contact {
    margin-top: 96px;
    margin-bottom: 80px;
  }
}

@media (max-width: 767px) {
  .p-news-archive {
    margin-top: 48px;
  }

  .p-news-archive .c-pagination {
    margin-top: 48px;
  }

  .p-news-single__entry {
    margin-top: 48px;
  }

  .p-news-contact {
    margin-top: 64px;
    margin-bottom: 0;
  }
}


/* ==========================================================
 * Company：企業情報
 * ======================================================= */

.p-company-philosophy,
.p-company-message,
.p-company-outline,
.p-company-access,
.p-company-history {
  scroll-margin-top: calc(var(--header_height) + 24px);
}

.p-company-philosophy,
.p-company-message,
.p-company-outline,
.p-company-access,
.p-company-history {
  margin-top: 160px;
}

.p-company-philosophy {
  margin-top: 60px;
}

.p-company-philosophy > .l-container,
.p-company-message > .l-container,
.p-company-outline > .l-container,
.p-company-access > .l-container,
.p-company-history > .l-container {
  display: grid;
  gap: 80px;
  justify-items: center;
}

.p-company-philosophy__body,
.p-company-message__body,
.p-company-outline__table-wrap,
.p-company-history__list {
  width: 100%;
  max-width: var(--content_width_md);
}

.p-company-access__map {
  width: 100%;
  overflow: hidden;
  aspect-ratio: 1200 / 400;
  background: rgba(31, 37, 71, 0.06);
}

.p-company-philosophy__body {
  display: grid;
  gap: 80px;
}

.p-company-philosophy__intro {
  display: grid;
  gap: 32px;
}

.p-company-philosophy__lead {
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-company-philosophy__text {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-company-philosophy__list {
  display: grid;
  gap: 80px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-company-philosophy__item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: start;
}

.p-company-philosophy__num {
  color: var(--color_primary);
  font-family: var(--font_en_sub);
  font-size: 36px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.3;
}

.p-company-philosophy__item-body {
  display: grid;
  gap: 24px;
  min-width: 0;
}

.p-company-philosophy__item-title {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-company-philosophy__item-text {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-company-message__body {
  display: grid;
  gap: 40px;
}

.p-company-message__text {
  display: grid;
  gap: 40px;
}

.p-company-message__text p {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
}

.p-company-message__sign {
  margin-top: 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2.5;
  text-align: right;
}

.p-company-outline__table {
  width: 100%;
  border-collapse: collapse;
}

.p-company-outline__table th,
.p-company-outline__table td {
  padding: 30px 0;
  border-bottom: 1px solid rgba(31, 37, 71, 0.15);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 2;
  text-align: left;
  vertical-align: middle;
}

.p-company-outline__table th {
  width: 300px;
  padding-right: 20px;
  color: rgba(31, 37, 71, 0.6);
  font-weight: 400;
}

.p-company-outline__table td {
  color: var(--color_text);
}

.p-company-outline__link {
  color: var(--color_text);
  text-decoration: underline;
  text-underline-offset: var(--link_underline_offset);
}

.p-company-outline__officers,
.p-company-outline__vehicles,
.p-company-outline__business,
.p-company-outline__partners {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-company-outline__officers li {
  display: grid;
  grid-template-columns: 12em 1fr;
  gap: 0 1em;
}

.p-company-outline__sites {
  display: grid;
  gap: 16px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-company-outline__sites li {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 16px;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(31, 37, 71, 0.15);
}

.p-company-outline__sites li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}


.p-company-outline__site-name,
.p-company-outline__site-addr {
  display: block;
}

.p-company-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.p-company-history__list {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-company-history__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  min-height: 76px;
}

.p-company-history__date {
  position: relative;
  display: flex;
  align-items: center;
  align-self: stretch;
  padding-block: 24px;
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-company-history__date::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  width: 1px;
  background: var(--color_primary);
  transform: translateX(50%);
  content: "";
}

.p-company-history__date::after {
  position: absolute;
  right: 0;
  top: 50%;
  z-index: 1;
  width: 8px;
  height: 8px;
  border-radius: var(--radius_circle);
  background: var(--color_primary);
  transform: translate(50%, -50%);
  content: "";
}

.p-company-history__text {
  display: flex;
  align-items: center;
  align-self: stretch;
  margin: 0;
  padding: 22px 0 22px 40px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-company-contact {
  margin-block: 160px 120px;
}

@media (max-width: 1023px) {
  .p-company-philosophy,
  .p-company-message,
  .p-company-outline,
  .p-company-access,
  .p-company-history {
    margin-top: 96px;
  }

  .p-company-philosophy {
    margin-top: 48px;
  }

  .p-company-philosophy > .l-container,
  .p-company-message > .l-container,
  .p-company-outline > .l-container,
  .p-company-access > .l-container,
  .p-company-history > .l-container {
    gap: 48px;
  }

  .p-company-philosophy__body {
    gap: 48px;
  }

  .p-company-philosophy__list {
    gap: 48px;
  }

  .p-company-philosophy__lead {
    font-size: 32px;
  }

  .p-company-philosophy__text {
    font-size: 16px;
    line-height: 2;
  }

  .p-company-philosophy__item-title {
    font-size: 22px;
  }

  .p-company-philosophy__item-title br {
    display: none;
  }

  .p-company-outline__table th,
  .p-company-outline__table td {
    display: block;
    width: 100%;
    padding: 0;
    border-bottom: 0;
  }

  .p-company-outline__table th {
    padding-bottom: 8px;
  }

  .p-company-outline__table td {
    padding-bottom: 0;
  }

  .p-company-outline__table tr {
    display: block;
    padding-block: 24px;
    border-bottom: 1px solid rgba(31, 37, 71, 0.15);
  }

  .p-company-outline__table tr:first-child {
    padding-top: 0;
  }

  .p-company-outline__table tr:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .p-company-outline__sites li {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .p-company-outline__officers li {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .p-company-history__item {
    grid-template-columns: 110px 1fr;
  }

  .p-company-history__date {
    font-size: 22px;
  }

  .p-company-history__text {
    padding-left: 24px;
    font-size: 14px;
  }

  .p-company-access__map {
    aspect-ratio: 4 / 3;
  }

  .p-company-contact {
    margin-block: 96px 80px;
  }
}

@media (max-width: 767px) {
  .p-company-philosophy,
  .p-company-message,
  .p-company-outline,
  .p-company-access,
  .p-company-history {
    scroll-margin-top: calc(var(--header_height_sp) + 16px);
    margin-top: 80px;
  }

  .p-company-philosophy {
    margin-top: 40px;
  }

  .p-company-philosophy > .l-container,
  .p-company-message > .l-container,
  .p-company-outline > .l-container,
  .p-company-access > .l-container,
  .p-company-history > .l-container {
    gap: 40px;
  }

  .p-company-philosophy__body {
    gap: 40px;
  }

  .p-company-philosophy__intro {
    gap: 24px;
  }

  .p-company-philosophy__list {
    gap: 40px;
  }

  .p-company-philosophy__lead {
    font-size: 24px;
  }

  .p-company-philosophy__lead br {
    display: none;
  }

  .p-company-philosophy__text {
    font-size: 14px;
  }

  .p-company-philosophy__item {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .p-company-philosophy__num {
    font-size: 28px;
  }

  .p-company-philosophy__item-body {
    gap: 16px;
  }

  .p-company-philosophy__item-title {
    font-size: 18px;
  }

  .p-company-philosophy__item-text {
    font-size: 13px;
    line-height: 2;
  }

  .p-company-message__text p,
  .p-company-message__sign {
    font-size: 14px;
    line-height: 2;
  }

  .p-company-outline__table th,
  .p-company-outline__table td {
    font-size: 13px;
  }

  .p-company-history__item {
    grid-template-columns: 88px 1fr;
    min-height: 64px;
  }

  .p-company-history__date {
    padding-block: 16px;
    font-size: 18px;
  }

  .p-company-history__text {
    padding: 16px 0 16px 16px;
    font-size: 13px;
    line-height: 1.7;
  }

  .p-company-contact {
    margin-block: 80px 64px;
  }
}

/* ==========================================================
 * Contact：お問い合わせ・送信完了
 * ======================================================= */

.p-contact__content {
  margin-top: 80px;
  padding-bottom: 160px;
}

.p-contact__intro {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-contact__intro a,
.p-contact-form__recaptcha a,
.p-contact-form__actions a {
  text-decoration: underline;
  text-underline-offset: var(--link_underline_offset);
}

.p-contact-form {
  margin-top: 60px;
}

.p-contact-form__required-note {
  box-sizing: border-box;
  min-height: 55px;
  padding-block: 15px;
  box-shadow: inset 0 -1px rgba(31, 37, 71, 0.1);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.75;
  text-align: right;
}

.p-contact-form__required {
  color: #ff4d4d;
}

.p-contact-form__row {
  display: grid;
  box-sizing: border-box;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 40px;
  align-items: center;
  min-width: 0;
  min-height: 100px;
  margin: 0;
  padding: 20px 0;
  border: 0;
  box-shadow: inset 0 -1px rgba(31, 37, 71, 0.15);
}

.p-contact-form__row--textarea {
  align-items: start;
  min-height: 220px;
}

.p-contact-form__label {
  display: block;
  width: 100%;
  padding: 15px 0;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 2;
  white-space: nowrap;
}

.p-contact-form__label .p-contact-form__required {
  margin-left: 6px;
}

.p-contact-form .wpcf7-form-control-wrap {
  display: block;
  min-width: 0;
}

.p-contact-form input[type="text"],
.p-contact-form input[type="email"],
.p-contact-form input[type="tel"],
.p-contact-form textarea {
  display: block;
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(31, 37, 71, 0.3);
  border-radius: 6px;
  background: #fff;
  color: var(--color_text);
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-contact-form input[type="text"],
.p-contact-form input[type="email"],
.p-contact-form input[type="tel"] {
  height: 60px;
  padding: 14px 24px;
}

.p-contact-form textarea {
  height: 180px;
  min-height: 180px;
  padding: 14px 24px;
  resize: vertical;
}

.p-contact-form input::placeholder,
.p-contact-form textarea::placeholder {
  color: rgba(31, 37, 71, 0.3);
  opacity: 1;
}

.p-contact-form input[type="text"]:focus,
.p-contact-form input[type="email"]:focus,
.p-contact-form input[type="tel"]:focus,
.p-contact-form textarea:focus {
  outline: none;
  border-color: var(--color_primary);
}

.p-contact-form input[type="radio"]:focus-visible,
.p-contact-form input[type="checkbox"]:focus-visible {
  outline: none;
  border-color: var(--color_primary);
}

.p-contact-form input[type="submit"]:focus-visible {
  outline: 2px solid var(--color_primary_dark);
  outline-offset: 3px;
}

.p-contact-form__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  align-items: center;
}

.p-contact-form__choices .wpcf7-list-item {
  margin: 0;
}

.p-contact-form__choices label,
.p-contact-form__actions label {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}

.p-contact-form input[type="radio"],
.p-contact-form input[type="checkbox"] {
  display: block;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  margin: 0;
  border: 1px solid rgba(31, 37, 71, 0.3);
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.p-contact-form input[type="radio"] {
  border-radius: var(--radius_circle);
}

.p-contact-form input[type="checkbox"] {
  border-radius: var(--radius_sm);
}

.p-contact-form input[type="radio"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='6' fill='%2300c88a'/%3E%3C/svg%3E");
  background-size: 12px 12px;
}

.p-contact-form input[type="checkbox"]:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8.5 6 12l7.5-8' fill='none' stroke='%2300c88a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 16px 16px;
}

.p-contact-form__choices .wpcf7-list-item-label {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-contact-form__actions .wpcf7-list-item-label {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.75;
}

.p-contact-form__recaptcha {
  padding-block: 30px;
  color: rgba(51, 46, 36, 0.6);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 1.75;
  text-align: center;
}

.p-contact-form__actions {
  display: grid;
  gap: 32px;
  justify-items: center;
  margin-top: 60px;
}

.p-contact-form__actions .wpcf7-list-item {
  margin: 0;
}

.p-contact-form__actions > .wpcf7-form-control-wrap {
  display: flex;
}

.p-contact-form__submit {
  position: relative;
  display: block;
  width: 200px;
}

.p-contact-form input[type="submit"] {
  display: block;
  width: 100%;
  height: 63px;
  padding: 16px 68px 16px 32px;
  border: 0;
  border-radius: 60px;
  background: var(--color_primary);
  color: #fff;
  font: inherit;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
  text-align: left;
  cursor: pointer;
}

/* CF7 の spinner は visibility:hidden でも領域を取るため、絶対配置でボタン高さを崩さない */
.p-contact-form__submit .wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: -48px;
  margin: 0;
  transform: translateY(-50%);
}

.p-contact-form__submit-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: 24px;
  height: 24px;
  pointer-events: none;
  transform: translateY(-50%);
  transition: transform var(--transition_arrow);
}

.p-contact-form__submit-icon img {
  display: block;
  width: 100%;
  height: 100%;
}

@media (any-hover: hover) {
  .p-contact-form__submit:hover .p-contact-form__submit-icon,
  .p-contact-form input[type="submit"]:focus-visible ~ .p-contact-form__submit-icon {
    transform: translateY(-50%) scale(var(--arrow_hover_scale));
  }
}

/* CF7 バリデーション（palgreen 準拠） */
.p-contact-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
  display: none;
}

.p-contact-form .wpcf7-form-control-wrap.is-show .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: rgb(216, 0, 11);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.p-contact-form .wpcf7-form-control-wrap.is-show .wpcf7-not-valid {
  border-color: rgb(216, 0, 11) !important;
  background-color: rgb(255, 247, 247) !important;
}

.p-contact-form .wpcf7-form-control-wrap.is-show .wpcf7-not-valid:focus {
  border-color: rgb(216, 0, 11) !important;
}

.p-contact-form .wpcf7-form-control-wrap.is-show .wpcf7-form-control.wpcf7-radio.wpcf7-not-valid,
.p-contact-form .wpcf7-form-control-wrap.is-show .wpcf7-form-control.wpcf7-checkbox.wpcf7-not-valid {
  display: flex !important;
  flex-wrap: wrap;
  gap: 16px 40px;
  align-items: center;
  width: 100%;
  padding: 10px;
  border: 1px solid rgb(216, 0, 11) !important;
  border-radius: 6px;
  background-color: rgb(255, 247, 247) !important;
}

.p-contact-form .wpcf7 form .wpcf7-response-output {
  margin: 2em 0 1em;
  padding: 0.2em 0;
  border: none;
  font-size: 15px;
  letter-spacing: 0.1em;
  line-height: 1.7;
  text-align: center;
}

.p-contact-form .wpcf7 form.invalid .wpcf7-response-output,
.p-contact-form .wpcf7 form.unaccepted .wpcf7-response-output,
.p-contact-form .wpcf7 form.payment-required .wpcf7-response-output,
.p-contact-form .wpcf7 form.failed .wpcf7-response-output,
.p-contact-form .wpcf7 form.aborted .wpcf7-response-output,
.p-contact-form .wpcf7 form.spam .wpcf7-response-output {
  color: rgb(216, 0, 11);
}

.p-contact-form .wpcf7 form.sent .wpcf7-response-output {
  display: none;
}

.p-contact-form .wpcf7-response-output:empty {
  display: none;
}

.p-contact-thanks__content {
  margin-top: 80px;
  padding-bottom: 160px;
}

.p-contact-thanks__body {
  display: grid;
  gap: 48px;
  justify-items: center;
  padding: 80px 60px;
  background: var(--color_bg_subtle);
  text-align: center;
}

.p-contact-thanks__title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-contact-thanks__text {
  display: grid;
  gap: 24px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

/* ==========================================================
 * 404
 * ======================================================= */

.p-404 {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  min-height: 700px;
  padding-block: 80px;
}

.p-404__content {
  width: 100%;
}

.p-404__body {
  display: grid;
  gap: 32px;
  justify-items: center;
  text-align: center;
}

.p-404__title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.7;
}

.p-404__text {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

@media (max-width: 1023px) {
  .p-contact__content,
  .p-contact-thanks__content {
    margin-top: 64px;
    padding-bottom: 96px;
  }

  .p-404 {
    min-height: 560px;
    padding-block: 64px;
  }

  .p-contact-form__row {
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 24px;
  }

  .p-contact-thanks__body {
    padding: 64px 40px;
  }
}

@media (max-width: 767px) {
  .p-contact__content,
  .p-contact-thanks__content {
    margin-top: 48px;
    padding-bottom: 80px;
  }

  .p-404 {
    min-height: 560px;
    padding-block: 48px;
  }

  .p-contact__intro {
    font-size: 13px;
    line-height: 2;
  }

  .p-contact__intro br {
    display: none;
  }

  .p-contact-form {
    margin-top: 40px;
  }

  .p-contact-form__required-note {
    min-height: 0;
    padding-block: 12px;
    font-size: 12px;
  }

  .p-contact-form__row {
    grid-template-columns: 1fr;
    gap: 8px;
    min-height: 0;
    padding-block: 20px;
  }

  .p-contact-form__row--textarea {
    min-height: 0;
  }

  .p-contact-form__label {
    padding: 0;
    font-size: 14px;
    white-space: normal;
  }

  .p-contact-form input[type="text"],
  .p-contact-form input[type="email"],
  .p-contact-form input[type="tel"] {
    height: 52px;
    padding: 10px 16px;
    font-size: 16px;
  }

  .p-contact-form textarea {
    height: 160px;
    min-height: 160px;
    padding: 10px 16px;
    font-size: 16px;
  }

  .p-contact-form__choices {
    display: grid;
    gap: 12px;
  }

  .p-contact-form__recaptcha {
    padding-block: 24px;
    font-size: 10px;
    text-align: left;
  }

  .p-contact-form__actions {
    gap: 24px;
    margin-top: 16px;
  }

  .p-contact-form__actions label {
    align-items: flex-start;
  }

  .p-contact-form__actions .wpcf7-list-item-label {
    font-size: 13px;
  }

  .p-contact-form__submit {
    width: 180px;
  }

  .p-contact-form input[type="submit"] {
    height: 58px;
    font-size: 16px;
  }

  .p-contact-thanks__body {
    gap: 32px;
    padding: 48px 20px;
  }

  .p-contact-thanks__title {
    font-size: 22px;
  }

  .p-contact-thanks__text {
    gap: 20px;
    font-size: 14px;
    line-height: 2;
  }

  .p-contact-thanks__text br {
    display: none;
  }

  .p-404__body {
    gap: 24px;
  }

  .p-404__title {
    font-size: 22px;
  }

  .p-404__text {
    gap: 12px;
    margin-bottom: 8px;
    font-size: 14px;
  }

  .p-404__text br {
    display: none;
  }
}

/* ==========================================================
 * Recruit：採用情報
 * ======================================================= */

.c-section-heading--wave .c-section-heading__ja {
  position: relative;
  padding-inline: 12px;
  padding-bottom: 28px;
}

.c-section-heading__wave {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 28px;
  pointer-events: none;
}

@media (max-width: 767px) {
  .c-section-heading--wave .c-section-heading__ja {
    font-size: 20px;
  }
}

.c-accordion {
  display: grid;
  gap: 8px;
}

.c-accordion__item {
  overflow: hidden;
  border-radius: var(--radius_md);
  background: #ffffff;
}

.c-accordion__trigger {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 40px 60px;
  border: 0;
  background: transparent;
  color: var(--color_text);
  cursor: pointer;
  font-family: inherit;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: left;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}

.c-accordion__trigger:focus,
.c-accordion__trigger:focus-visible {
  outline: none;
}

@media (hover: hover) and (pointer: fine) {
  .c-accordion__trigger:focus-visible {
    outline: 2px solid var(--color_primary);
    outline-offset: 3px;
  }
}

.c-accordion__icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  place-items: center;
  border-radius: var(--radius_circle);
  background: var(--color_primary);
  transition: transform var(--transition_base);
}

.c-accordion__icon img {
  display: block;
  width: 20px;
  height: 20px;
}

.c-accordion__item.is-active .c-accordion__icon {
  transform: rotate(180deg);
}

.c-accordion__panel {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease;
}

.c-accordion__body {
  padding: 0 60px;
}

@media (max-width: 767px) {
  .c-accordion__trigger {
    padding: 28px 24px;
    font-size: 16px;
  }

  .c-accordion__icon {
    width: 24px;
    height: 24px;
  }

  .c-accordion__icon img {
    width: 16px;
    height: 16px;
  }

  .c-accordion__body {
    padding: 0 24px;
  }
}

.p-recruit {
  background: rgba(0, 200, 138, 0.1);
}

.p-recruit-hero {
  position: relative;
  container-type: inline-size;
}

.p-recruit-hero > .l-container {
  --hero_unit: min(1px, calc((100cqw - (var(--page_gutter) * 2)) / 1200));
  position: relative;
  height: calc(800 * var(--hero_unit));
}

.p-recruit-hero__media {
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(1440 * var(--hero_unit));
  transform: translateX(-50%);
}

.p-recruit-hero__media picture,
.p-recruit-hero__media img {
  display: block;
  width: 100%;
  height: auto;
}

.p-recruit-hero__media > picture {
  overflow: hidden;
}

.p-recruit-hero__media img {
  width: min(100%, calc((100cqw - (var(--page_gutter) * 2)) / 0.875));
  margin-inline: auto;
  transform-origin: center center;
}

.p-recruit-hero__title {
  position: relative;
  padding-top: calc(280 * var(--hero_unit));
}

.p-recruit-hero__title .c-page-title__en {
  font-size: calc(108 * var(--hero_unit));
  overflow: clip;
}

.p-recruit-hero__title .c-page-title__row {
  position: relative;
  gap: calc(16 * var(--hero_unit));
  padding-inline: calc(6 * var(--hero_unit)) calc(36 * var(--hero_unit));
  padding-bottom: calc(37 * var(--hero_unit));
}

.p-recruit-hero__title .c-page-title__ja {
  font-size: calc(36 * var(--hero_unit));
  overflow: clip;
}

.p-recruit-hero__title .c-brand-line {
  width: calc(4 * var(--hero_unit));
  height: calc(36 * var(--hero_unit));
}

.p-recruit-hero__ja-inner {
  display: block;
}

.p-recruit-hero__marker {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  pointer-events: none;
}

.p-recruit-hero__marker .js-recruit-marker-path {
  fill: none;
}

html.js .p-recruit-hero .js-recruit-intro {
  opacity: 0;
}

.p-recruit-hero__title .js-recruit-char {
  letter-spacing: 0;
}

@media (prefers-reduced-motion: reduce) {
  html.js .p-recruit-hero .js-recruit-intro {
    opacity: 1;
  }
}

.p-recruit-intro {
  padding-block: 120px 60px;
}

.p-recruit-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}

.p-recruit-intro__title {
  position: relative;
  display: inline-block;
  isolation: isolate;
  padding-left: 10px;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.7;
}

.p-recruit-intro__marker {
  position: absolute;
  top: -22px;
  left: 0;
  z-index: -1;
  display: block;
  width: 414px;
  height: 290px;
  pointer-events: none;
}

.p-recruit-intro__body {
  display: grid;
  gap: 32px;
  font-size: 18px;
  font-weight: 700;
  line-height: 2.5;
}

.p-recruit-links {
  padding-block: 60px 80px;
}

.p-recruit-links__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.p-recruit-link {
  display: grid;
  height: 100%;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border-radius: var(--radius_lg);
  background: #ffffff;
  color: inherit;
  text-decoration: none;
}

.p-recruit-link__media {
  display: block;
  padding: 16px 16px 0;
}

.p-recruit-link__frame {
  display: block;
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-recruit-link__frame img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.p-recruit-link__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 32px;
}

.p-recruit-link__title {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-link__icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  place-items: center;
  transition: transform var(--transition_arrow);
}

.p-recruit-link__icon img {
  display: block;
  width: 36px;
  height: 36px;
}

@media (any-hover: hover) {
  .p-recruit-link:hover .p-recruit-link__icon {
    transform: scale(var(--arrow_hover_scale));
  }
}

.p-recruit-interview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 52px;
  padding-block: 80px;
}

.p-recruit-interview__band {
  padding-block: 80px 49px;
  background: rgba(0, 200, 138, 0.2);
}

.p-recruit-interview__slider {
  --slide_width: clamp(390px, calc(100vw * 390 / 1440), 520px);
  padding-inline: max(
    var(--page_gutter),
    calc((100% - (var(--slide_width) * 3 + 30px)) / 2)
  );
}

.p-recruit-interview__slide {
  width: var(--slide_width);
  height: auto;
  container-type: inline-size;
}

.p-interview-card {
  display: grid;
  height: 100%;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border-radius: var(--radius_lg);
  background: #ffffff;
  color: inherit;
  text-decoration: none;
}

.p-interview-card__media {
  position: relative;
  padding: 12px 12px 0;
}

.p-interview-card__frame {
  display: block;
  overflow: hidden;
  border-radius: var(--radius_sm);
}

.p-interview-card__frame img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.p-interview-card__catch {
  --catch_unit: min(1px, calc(100cqw / 390));
  position: absolute;
  top: calc(38 * var(--catch_unit));
  left: calc(32 * var(--catch_unit));
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: calc(8 * var(--catch_unit));
}

.p-interview-card__catch span {
  display: block;
  padding: calc(6 * var(--catch_unit));
  background: var(--color_primary);
  color: #ffffff;
  font-size: calc(24 * var(--catch_unit));
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  writing-mode: vertical-rl;
}

.p-interview-card__body {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 24px 32px;
}

.p-interview-card__num {
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.p-interview-card__meta {
  display: grid;
  gap: 4px;
}

.p-interview-card__role {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-interview-card__name {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-interview-card__year {
  color: rgba(31, 37, 71, 0.6);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-benefits {
  padding-block: 80px;
}

.p-recruit-benefits > .l-container,
.p-recruit-requirements > .l-container {
  display: grid;
  gap: 52px;
}

.p-recruit-benefits__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.p-recruit-benefit {
  display: grid;
  align-content: start;
  gap: 28px;
  padding: 40px 60px;
  border-radius: var(--radius_md);
  background: #ffffff;
}

.p-recruit-benefit__head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.p-recruit-benefit__icon {
  display: grid;
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  place-items: center;
}

.p-recruit-benefit__icon img {
  display: block;
  width: 64px;
  height: 64px;
}

.p-recruit-benefit__title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-benefit__items {
  display: grid;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
}

.p-recruit-benefit__items li {
  position: relative;
  padding-left: 20px;
}

.p-recruit-benefit__items li::before {
  position: absolute;
  left: 0;
  color: var(--color_primary);
  content: "・";
  letter-spacing: 0.1em;
}

.p-recruit-requirements {
  padding-block: 80px 160px;
}

.p-recruit-table {
  width: 100%;
  border-collapse: collapse;
}

.p-recruit-table th,
.p-recruit-table td {
  padding: 30px 0;
  border-top: 1px solid rgba(31, 37, 71, 0.15);
  font-size: 15px;
  font-weight: 400;
  line-height: 2;
  text-align: left;
  vertical-align: middle;
}

.p-recruit-table th {
  width: 300px;
  padding-right: 20px;
  color: rgba(31, 37, 71, 0.6);
  font-weight: 400;
}

.p-recruit-table__blocks {
  display: grid;
  gap: 30px;
}

.p-recruit-entry {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--color_primary);
}

.p-recruit-entry__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.p-recruit-entry__bg img {
  position: absolute;
  top: -150px;
  left: 50%;
  width: 1440px;
  height: auto;
  mix-blend-mode: luminosity;
  opacity: 0.15;
  transform: translateX(-50%);
}

.p-recruit-entry__inner {
  position: relative;
  display: grid;
  min-height: 500px;
  align-content: center;
  justify-items: center;
  gap: 32px;
  color: #ffffff;
  text-align: center;
}

.p-recruit-entry__en {
  font-family: var(--font_en);
  font-size: 108px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
}

.p-recruit-entry__lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 2;
}

.p-recruit-entry__button {
  min-width: 320px;
  min-height: 74px;
  gap: 0;
  padding: 22px 24px;
  border: 2px solid #ffffff;
  font-size: 20px;
  letter-spacing: 0.07em;
  line-height: 1.5;
  transition:
    color var(--transition_hover),
    background-color var(--transition_hover);
}

html.js .p-recruit-entry__button.js-reveal.is-revealed.is-reveal-done {
  transition:
    color var(--transition_hover),
    background-color var(--transition_hover);
}

@media (any-hover: hover) {
  a[href].p-recruit-entry__button:hover,
  .p-recruit-entry__button:hover {
    background: var(--color_primary_dark);
    color: #ffffff;
  }

  .p-recruit-entry__button:hover .c-button__char {
    transform: translateY(-100%);
  }
}

.p-recruit-entry__button .c-button__chars {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 1.5em;
}

.p-recruit-entry__button .c-button__chars-row {
  display: flex;
  flex-shrink: 0;
  height: 1.5em;
  align-items: center;
}

.p-recruit-entry__button .c-button__char {
  display: inline-block;
  letter-spacing: 0.07em;
  transition: transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .p-recruit-entry__button .c-button__char {
    transition: none;
    transform: none;
  }
}

@media (max-width: 1023px) {
  .p-recruit-hero__media img {
    width: 100%;
  }

  .p-recruit-intro {
    padding-block: 80px 48px;
  }

  .p-recruit-intro__grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .p-recruit-intro__title {
    font-size: 40px;
  }

  .p-recruit-intro__marker {
    top: -18px;
    width: 345px;
    height: 242px;
  }

  .p-recruit-links {
    padding-block: 48px 64px;
  }

  .p-recruit-link__body {
    padding: 24px;
  }

  .p-recruit-link__title {
    font-size: 22px;
  }

  .p-recruit-interview {
    gap: 40px;
    padding-block: 64px;
  }

  .p-recruit-interview__band {
    padding-block: 56px 40px;
  }

  .p-recruit-interview__slide {
    width: min(390px, calc((100% - 15px) / 2));
  }

  .p-recruit-benefits {
    padding-block: 64px;
  }

  .p-recruit-benefits > .l-container,
  .p-recruit-requirements > .l-container {
    gap: 40px;
  }

  .p-recruit-benefit {
    padding: 32px 24px;
  }

  .p-recruit-benefit__icon,
  .p-recruit-benefit__icon img {
    width: 48px;
    height: 48px;
  }

  .p-recruit-benefit__title {
    font-size: 20px;
  }

  .p-recruit-requirements {
    padding-block: 64px 120px;
  }

  .p-recruit-table th {
    width: 220px;
  }

  .p-recruit-entry__en {
    font-size: 80px;
  }

  .p-recruit-entry__lead {
    font-size: 18px;
  }
}

@media (max-width: 767px) {
  .p-recruit-hero > .l-container {
    --hero_unit: calc(100cqw / 390);
    height: calc(844 * var(--hero_unit));
  }

  .p-recruit-hero__media {
    width: calc(100% + 32px);
  }

  .p-recruit-hero__title {
    padding-top: calc(322 * var(--hero_unit));
    padding-left: calc((24 * var(--hero_unit)) - 16px);
  }

  .p-recruit-hero__title .c-page-title__en {
    font-size: calc(64 * var(--hero_unit));
  }

  .p-recruit-hero__title .c-page-title__ja {
    font-size: calc(24 * var(--hero_unit));
  }

  .p-recruit-hero__title .c-page-title__row {
    padding-bottom: calc(28 * var(--hero_unit));
  }

  .p-recruit-intro {
    padding-block: 48px;
  }

  .p-recruit-intro__grid {
    padding-inline: 8px;
  }

  .p-recruit-intro__head {
    text-align: center;
  }

  .p-recruit-intro__title {
    font-size: 32px;
  }

  .p-recruit-intro__marker {
    top: -13px;
    width: 269px;
    height: 189px;
  }

  .p-recruit-intro__body {
    gap: 32px;
    font-size: 15px;
  }

  .p-recruit-links {
    padding-block: 32px 40px;
  }

  .p-recruit-links__list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .p-recruit-link__media {
    padding: 8px 8px 0;
  }

  .p-recruit-link__body {
    padding: 20px 24px;
  }

  .p-recruit-link__title {
    font-size: 20px;
  }

  .p-recruit-interview {
    gap: 28px;
    padding-block: 40px;
  }

  .p-recruit-interview__band {
    padding-block: 40px 41px;
  }

  .p-recruit-interview__slider {
    padding-inline: 0;
  }

  .p-recruit-interview__slide {
    width: 280px;
  }

  .p-interview-card__catch {
    top: 27px;
    left: 23px;
    gap: 8px;
  }

  .p-interview-card__catch span {
    padding: 6px;
    font-size: 16px;
  }

  .p-interview-card__body {
    padding: 16px 24px;
  }

  .p-interview-card__num {
    font-size: 16px;
  }

  .p-interview-card__role {
    font-size: 20px;
  }

  .p-interview-card__name {
    font-size: 16px;
  }

  .p-interview-card__year {
    font-size: 13px;
  }

  .p-recruit-benefits {
    padding-block: 40px;
  }

  .p-recruit-benefits > .l-container,
  .p-recruit-requirements > .l-container {
    gap: 28px;
  }

  .p-recruit-benefits__list {
    grid-template-columns: 1fr;
  }

  .p-recruit-benefit {
    gap: 20px;
    padding: 28px 24px;
  }

  .p-recruit-benefit__icon,
  .p-recruit-benefit__icon img {
    width: 48px;
    height: 48px;
  }

  .p-recruit-benefit__title {
    font-size: 20px;
  }

  .p-recruit-benefit__items {
    font-size: 14px;
  }

  .p-recruit-requirements {
    padding-block: 40px 80px;
  }

  .p-recruit-table th,
  .p-recruit-table td {
    display: block;
    width: 100%;
    padding: 0;
    border-top: 0;
    font-size: 13px;
  }

  .p-recruit-table tr {
    display: block;
    padding-block: 24px;
    border-top: 1px solid rgba(31, 37, 71, 0.15);
  }

  .p-recruit-table th {
    padding-bottom: 8px;
  }

  .p-recruit-table__blocks {
    gap: 26px;
  }

  .p-recruit-entry__bg img {
    top: -172px;
    width: max(390px, 100%);
  }

  .p-recruit-entry__en {
    font-size: 56px;
  }

  .p-recruit-entry__lead {
    font-size: 14px;
  }

  .p-recruit-entry__button {
    min-width: 250px;
    min-height: 68px;
    padding: 22px 32px;
    font-size: 16px;
  }

  .p-recruit .c-brand-line--sm.c-brand-line--horizontal {
    width: 54px;
    height: 3px;
  }
}

/* ==========================================================
 * Policy：個人情報保護方針
 * ======================================================= */

.p-policy__content {
  margin-top: 80px;
  padding-bottom: 160px;
}

.p-policy__body {
  display: grid;
  gap: 22px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-policy__body h2 {
  margin: 0;
  padding-top: 30px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.5;
}

.p-policy__body p {
  margin: 0;
}

.p-policy__body a {
  color: var(--color_text);
  text-decoration: underline;
  text-underline-offset: var(--link_underline_offset);
  overflow-wrap: anywhere;
}

@media (max-width: 1023px) {
  .p-policy__content {
    margin-top: 64px;
    padding-bottom: 120px;
  }
}

@media (max-width: 767px) {
  .p-policy__content {
    margin-top: 48px;
    padding-bottom: 80px;
  }

  .p-policy__body {
    font-size: 14px;
  }

  .p-policy__body h2 {
    padding-top: 24px;
    font-size: 16px;
  }
}


/* ==========================================================
 * Recruit Workplace：部門別の働き方
 * ======================================================= */

.p-recruit-lpg-point {
  padding-block: 80px;
}

.p-recruit-lpg-point > .l-container {
  display: grid;
  gap: 52px;
}

.p-recruit-lpg-point__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.p-recruit-logistics .p-recruit-lpg-point__list {
  grid-template-columns: 1fr;
}

.p-recruit-lpg-point__item {
  display: grid;
  align-content: start;
  gap: 28px;
  padding: 40px 60px;
  border-radius: var(--radius_md);
  background: #ffffff;
}

.p-recruit-lpg-point__head {
  display: flex;
  align-items: center;
  gap: 16px;
}

.p-recruit-lpg-point__num {
  flex-shrink: 0;
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
}

.p-recruit-lpg-point__title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-lpg-point__text {
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-recruit-lpg-interview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 52px;
  padding-block: 80px 0;
}

.p-recruit-lpg-interview__band {
  padding-block: 80px;
  background: rgba(0, 141, 103, 0.08);
}

.p-recruit-lpg-interview__list {
  display: grid;
  gap: 120px;
}

.p-recruit-voice {
  --voice_separator: 0px;
  --voice_anchor_offset: calc(var(--header_height) + 24px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  scroll-margin-top: calc(var(--voice_anchor_offset) - var(--voice_separator));
}

.p-recruit-voice + .p-recruit-voice {
  --voice_separator: 120px;
  padding-top: var(--voice_separator);
  border-top: 1px solid var(--color_primary);
}

.p-recruit-voice__profile {
  display: grid;
  gap: 40px;
  padding-right: 80px;
  align-content: start;
}

.p-recruit-voice__intro {
  display: grid;
  gap: 28px;
}

.p-recruit-voice__num {
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.p-recruit-voice__catch {
  display: grid;
  gap: 8px;
}

.p-recruit-voice__catch span {
  display: inline-block;
  width: fit-content;
  padding: 6px;
  background: var(--color_primary);
  color: #ffffff;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.14;
}

.p-recruit-voice__meta {
  display: grid;
  gap: 4px;
}

.p-recruit-voice__role {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-voice__name {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-voice__year {
  color: rgba(31, 37, 71, 0.6);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-voice__media img {
  display: block;
  width: 100%;
  height: auto;
}

.p-recruit-voice__qa {
  display: grid;
  gap: 30px;
  align-content: start;
}

.p-recruit-voice__item {
  display: grid;
  gap: 30px;
}

.p-recruit-voice__q {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-voice__q-mark {
  display: grid;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  place-items: center;
  border-radius: var(--radius_circle);
  background: #ffffff;
  color: var(--color_primary);
  font-family: var(--font_en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
}

.p-recruit-voice__a {
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

.p-recruit-lpg-flow {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 80px;
  padding-block: 80px;
  background-color: var(--color_primary);
  background-image: repeating-linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0.4) 0 40px,
    rgba(255, 255, 255, 0.25) 40px 80px
  );
}

.p-recruit-lpg-flow__heading .c-section-heading__en {
  color: #ffffff;
}

.p-recruit-lpg-flow__heading .c-section-heading__ja {
  color: var(--color_text);
}

.p-recruit-lpg-flow__track {
  min-width: 0;
}

html.js .p-recruit-lpg-flow__track.js-reveal.is-revealed.is-reveal-done {
  transform: none;
}

.p-recruit-lpg-flow__slider {
  width: 100%;
  padding-inline: var(--page_gutter);
  overflow: visible;
  user-select: none;
}

.p-recruit-lpg-flow__slider.swiper-css-mode {
  padding-inline: 0;
  overflow: hidden;
  touch-action: pan-x pan-y;
}

.p-recruit-lpg-flow__slider.swiper-css-mode .swiper-wrapper {
  box-sizing: border-box;
  width: 100%;
  padding-inline: var(--page_gutter);
  overflow-x: auto;
  overflow-y: hidden;
  transform: none;
  scroll-snap-type: none;
  -webkit-overflow-scrolling: touch;
}

.p-recruit-lpg-flow__slide {
  position: relative;
  width: 320px;
  height: auto;
  box-sizing: border-box;
}

.p-recruit-lpg-flow__slide--first {
  width: 360px;
}

.p-recruit-lpg-flow__slide:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -34px;
  width: 19px;
  height: 34px;
  background: url("../images/recruit-lpg/flow-arrow.svg") center / contain no-repeat;
  content: "";
  transform: translateY(-50%);
  pointer-events: none;
}

.p-recruit-flow-card {
  display: grid;
  align-content: start;
  gap: 24px;
  height: 100%;
  padding: 32px 24px;
  border-radius: var(--radius_lg);
  background: #ffffff;
}

.p-recruit-flow-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
}

.p-recruit-flow-card__num {
  display: grid;
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  place-items: center;
  border-radius: var(--radius_circle);
  background: var(--color_primary);
  color: #ffffff;
  font-family: var(--font_en);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
}

.p-recruit-flow-card__title {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}

.p-recruit-flow-card__text {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.15em;
  line-height: 2;
}

@media (max-width: 1023px) {
  .p-recruit-lpg-point {
    padding-block: 64px;
  }

  .p-recruit-lpg-point > .l-container {
    gap: 40px;
  }

  .p-recruit-lpg-point__item {
    padding: 32px 24px;
  }

  .p-recruit-lpg-point__title {
    font-size: 18px;
  }

  .p-recruit-lpg-interview {
    gap: 40px;
    padding-block: 64px 0;
  }

  .p-recruit-lpg-interview__band {
    padding-block: 56px;
  }

  .p-recruit-lpg-interview__list {
    gap: 80px;
  }

  .p-recruit-voice {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .p-recruit-voice + .p-recruit-voice {
    --voice_separator: 80px;
  }

  .p-recruit-voice__profile {
    padding-right: 0;
  }

  .p-recruit-voice__catch span {
    font-size: 22px;
  }

  .p-recruit-voice__role {
    font-size: 22px;
  }

  .p-recruit-voice__q {
    font-size: 18px;
  }

  .p-recruit-lpg-flow {
    gap: 64px;
    padding-block: 64px;
  }

  .p-recruit-lpg-flow__slide,
  .p-recruit-lpg-flow__slide--first {
    width: 280px;
  }
}

@media (max-width: 767px) {
  .p-recruit-lpg-point {
    padding-block: 40px;
  }

  .p-recruit-lpg-point > .l-container {
    gap: 28px;
  }

  .p-recruit-lpg-point__list {
    grid-template-columns: 1fr;
  }

  .p-recruit-lpg-point__item {
    gap: 20px;
    padding: 28px 24px;
  }

  .p-recruit-lpg-point__num {
    font-size: 28px;
  }

  .p-recruit-lpg-point__title {
    font-size: 16px;
  }

  .p-recruit-lpg-point__text {
    font-size: 13px;
  }

  .p-recruit-lpg-interview {
    gap: 28px;
    padding-block: 40px 0;
  }

  .p-recruit-lpg-interview__band {
    padding-block: 40px;
  }

  .p-recruit-lpg-interview__list {
    gap: 64px;
  }

  .p-recruit-voice {
    --voice_anchor_offset: calc(var(--header_height_sp) + 16px);
  }

  .p-recruit-voice + .p-recruit-voice {
    --voice_separator: 64px;
  }

  .p-recruit-voice__intro {
    gap: 20px;
  }

  .p-recruit-voice__num {
    font-size: 20px;
  }

  .p-recruit-voice__catch span {
    font-size: 18px;
  }

  .p-recruit-voice__role {
    font-size: 18px;
  }

  .p-recruit-voice__name {
    font-size: 16px;
  }

  .p-recruit-voice__year {
    font-size: 13px;
  }

  .p-recruit-voice__qa {
    gap: 24px;
  }

  .p-recruit-voice__q {
    font-size: 15px;
  }

  .p-recruit-voice__q-mark {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }

  .p-recruit-voice__a {
    font-size: 13px;
  }

  .p-recruit-lpg-flow {
    gap: 40px;
    padding-block: 40px;
  }

  .p-recruit-lpg-flow__slider {
    padding-inline: 16px;
  }

  .p-recruit-lpg-flow__slider.swiper-css-mode .swiper-wrapper {
    padding-inline: 16px;
  }

  .p-recruit-lpg-flow__slide,
  .p-recruit-lpg-flow__slide--first {
    width: 280px;
  }

  .p-recruit-flow-card {
    padding: 24px 20px;
  }

  .p-recruit-flow-card__title {
    font-size: 16px;
  }

  .p-recruit-flow-card__text {
    font-size: 13px;
  }
}

.grecaptcha-badge {
  visibility: hidden;
}