/*
Theme Name: はてなベースHP（Redesign）
Theme URI: https://hatenabase.jp/
Description: はてなベースHP のリデザイン版テーマ。NYT/Economist 風の編集マガジンレイアウト + variant-D ローダーで構成。/blog/, /recruit/, /about-us/ を再構成し、ブログセクション管理（人気/入門/業界別/編集部の選）を WP 管理画面に提供。
Author: はてなベース
Version: 2.0.0
Text Domain: hatena-redesign
Tags: editorial, magazine, redesign
*/

body {
  color: #545454;
  background-color: #F2F2F2;
  font-family: "Zen Kaku Gothic New", sans-serif;
  line-height: 1.5;
  overflow-x: hidden;
}

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

section {
  padding: 6rem 0;

  @media (max-width: 767px) {
    padding: 3rem 0;
  }
}

main,
footer {
  position: relative;
  z-index: 0;
}

body.no-scroll {
  overflow: hidden;
}

/* 共通パーツ */
.l-container {
  max-width: 960px;
  margin: 0 auto;

  @media (max-width: 991px) {
    padding: 0 1.5rem;
  }
}

.heading {
  color: #2A5772;
  font-size: 2rem;
  font-family: "Jost", sans-serif;
  font-weight: 400;

  .heading__lead {
    font-size: 0.625rem;
    display: block;
    font-family: "Zen Kaku Gothic New", sans-serif;
  }
}

.page__highlight-area {
  background-color: #EBEBEB;
  max-width: 1260px;
  margin: 0 max(calc((100% - 1260px) / 2), 0.75rem);
  padding: 4rem 0;
}

.page__dark-area {
  background-color: #EBEBEB;
}

.page-heading {
  margin-right: auto;

  .page-heading__title {
    font-size: 2rem;
    font-weight: 400;
    letter-spacing: 0.14rem;
  }

  .page-heading__title--center {
    text-align: center;
  }

  .page-heading__subtile {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
  }

  .page-heading__description {
    margin-top: 2rem;
    line-height: 2;
  }

  .page-heading__description--bold {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 0.5rem;
  }

  .page-heading__description--regular {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
  }

  .page-heading__description--upper {
    margin-bottom: 1.5rem;
  }

  @media (max-width: 767px) {
    .page-heading__title {
      font-size: 1.5rem;
    }

    .page-heading__subtile {
      font-size: 0.75rem;
    }
  }
}

.page-subheading {
  color: #2A5772;
  font-size: 2rem;
  font-family: "Jost", sans-serif;
  font-weight: 500;
}

.page-subheading--center {
  text-align: center;
}

.page-subheading--lead {
  font-size: 0.625rem;
  display: block;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.page-strong {
  color: #2A5772;
  font-weight: 600;
  font-size: 1rem;
}

.page-list {
  display: flex;
  gap: 0.5rem;

  .page-list__number {
    background-color: #2A5772;
    color: #FFFFFF;
    font-size: 0.875rem;
    font-family: "Jost", sans-serif;
    text-align: center;
    line-height: 1.875rem;
    border-radius: 50%;
    width: 1.875rem;
    height: 1.875rem;
  }

  .page-list__body {
    flex: 1;
  }

  .page-list__title {
    color: #2A5772;
    margin: 0.25rem 0 0.5rem;
  }

  .page-list__description {
    font-size: 0.875rem;
    line-height: 1.7;
  }
}

.breadcrumb {
  width: 100%;
  display: flex;
  justify-content: flex-end;

  .breadcrumb__inner {
    font-size: 0.75rem;
  }

  .breadcrumb__item {
    display: inline-block;
  }

  .breadcrumb__item--current {
    text-decoration: underline;
  }

  .breadcrumb__link {
    text-decoration: none;
    color: #A0A0A0;

    &:hover {
      text-decoration: underline;
    }
  }

  .breadcrumb__separator {
    margin: 0 5px;
  }

  @media (max-width: 767px) {
    display: none;
  }
}

.pagination {
  display: flex;
  justify-content: center;
  gap: 1rem;
  font-family: "Jost", sans-serif;
  font-size: 0.875rem;
  color: #2A5772;

  .current {
    color: #989FA4;
    text-decoration: underline;
  }
}

.date {
  font-family: "Jost", sans-serif;
  font-size: 0.75rem;
}

.category {
  font-family: "Jost", sans-serif;
  font-size: 0.625rem;
  color: #2A5772;
  background-color: #FFFFFF;
  padding: 0.125rem 0.75rem;
  border-radius: 0.625rem;
}

.contact-list {
  overflow: hidden;
  background-color: #FFFFFF;
  padding: 4rem 0 10rem;

  .contact-list__container {
    position: relative;
  }

  .contact-list__heading {
    margin-bottom: 3rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .contact-list__inner {
    width: 50%;
  }

  .contact-list__image--pc {
    position: absolute;
    top: 5%;
    left: 55%;
  }

  .contact-list__image--sp {
    width: 55%;
    display: none;
  }

  .contact-list__item {
    display: flex;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  .contact-item__outer {
    padding-right: 1rem;
    width: 100%;
  }

  .contact-item__logo--image {
    width: 10.5rem;
  }

  .contact-item__body {
    display: flex;
    justify-content: space-between;
    align-self: center;
    margin-bottom: 0.5rem;
  }

  .contact-item__description {
    font-size: 0.875rem;
  }

  .contact-item__link-outer--sp {
    display: none;
  }

  @media (max-width: 991px) {
    .contact-list__heading {
      margin-bottom: 1.5rem;
    }

    .contact-list__inner {
      width: 100%;
    }

    .contact-list__image--pc {
      display: none;
    }

    .contact-list__image--sp {
      display: block;
    }

    .contact-item__link-outer--pc {
      display: none;
    }

    .contact-item__link-outer--sp {
      display: block;
    }
  }

  @media (max-width: 767px) {
    padding: 2rem 0 4rem;
  }
}

.contact-panel {
  padding-top: 0;

  .contact-panel__container {
    display: flex;
    column-gap: 3rem;
  }

  .contact-panel__item {
    width: 50%;
  }

  .contact-panel-item__body {
    color: #2A5772;
    background-color: #EBEBEB;
    aspect-ratio: 1 / 1;
    padding: 1.5rem 0 2.5rem;
    display: flex;
    flex-flow: column;
    justify-content: space-around;
  }

  .contact-panel-item__heading {
    font-weight: bold;
    letter-spacing: 0.14rem;
    text-align: center;
  }

  .contact-panel-item__illust {
    display: flex;
    justify-content: center;
    height: 50%;
  }

  .contact-panel-item__illust--image {
    height: 100%;
    margin: 0 auto;
  }

  .contact-panel-item__link {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    font-size: 1.25rem;
    font-weight: bold;
    letter-spacing: 0.14rem;
  }

  @media (max-width: 767px) {
    .contact-panel__container {
      flex-direction: column;
    }

    .contact-panel__item {
      width: 100%;
    }

    .contact-panel-item__body {
      margin-bottom: 1.5rem;
    }
  }
}

.coming-soon {
  background-color: #EBEBEB;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 3rem 0;

  .coming-soon__text {
    font-size: 2rem;
    color: #2A5772;
    font-family: "Jost", sans-serif;
  }

  .coming-soon__subtext {
    font-size: 0.75rem;
  }

  @media (max-width: 767px) {
    .coming-soon__text {
      font-size: 1.5rem;
    }
  }
}

.office {
  .office__body {
    margin-top: 2rem;
    line-height: 1.7;

    p {
      font-size: 0.875rem;
    }
  }

  .office__inner {
    overflow: hidden;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
  }

  .office__gallery {
    margin-top: 1.5rem;
    padding-bottom: 2rem;
    overflow: visible;
  }

  .office__picture--image {
    display: block;
    width: 100%;
  }
}

.faq {
  .faq__block {
    margin-top: 2rem;
  }

  .faq__category {
    font-weight: 600;
    margin-bottom: 1rem;
  }

  .faq__list {
    display: flex;
    flex-direction: column;
  }

  .faq__item {
    background-color: #EBEBEB;
    border-bottom: solid 3px #F2F2F2;
    padding: 0.75rem 2rem calc(0.75rem + 3px);
  }

  .faq__question,
  .faq__answer {
    display: flex;
    gap: 2rem;
  }

  .faq__answer {
    margin-top: 0.75rem;
  }

  .faq-question__q,
  .faq-answer__a {
    color: #2A5772;
    font-size: 1.5rem;
    font-family: "Jost", sans-serif;
  }

  .faq-question__body,
  .faq-answer__body {
    flex: 1;
    font-size: 0.875rem;
    line-height: 1.7;
    padding-top: 0.375rem;
  }

  summary.faq__question::-webkit-details-marker {
    display: none;
  }

  .faq-question__icon {
    padding: 0.125rem 0;
  }

  .faq-question__icon::after {
    font-family: "Font Awesome 6 Free";
    content: "\2b";
    font-size: 1.25rem;
    font-weight: 900;
  }

  .faq__item::details-content {
    opacity: 0;
    block-size: 0;
    transition: .3s;
    transition-property: display, opacity, block-size, padding;
    transition-behavior: allow-discrete;
  }

  .faq__item[open]::details-content {
    opacity: 1;
    block-size: auto;
    block-size: calc-size(auto, size);
  }

  .faq__item[open] .faq-question__icon::after {
    content: "\f068";
  }
}

/* ヘッダー */
.header {
  position: fixed;
  width: 100%;
  height: 6rem;
  transition: background-color 0.3s ease;
  background-color: transparent;
  z-index: 1000;
}

.header.scrolled {
  background-color: #f2f2f2;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.header .header__inner {
  width: min(1260px, calc(100% - 1.5rem));
  margin: 0 max(calc((100% - 1260px) / 2), 0.75rem);
  padding: 1rem 0;
}

.header .header__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.header .header-nav__logo {
  flex: 1;
  height: 100%;
}

.header .header-nav__logo--image {
  height: 4rem;
}

.header .header-nav__list {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.header .header-nav__dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  padding: 0.25rem 0.5rem;
}

.header .header-nav__link {
  font-family: "Jost", sans-serif;
  font-weight: 500;
  line-height: 0;
}

.header .header-nav__link:hover {
  color: #2A5772;
}

.header .header-nav__link--dropdown::after {
  font-family: "Font Awesome 6 Free";
  content: "\f078";
  margin-left: 0.25rem;
  font-size: 0.75rem;
  font-weight: 900;
  display: inline-block;
}

.header .header-nav__item {
  position: relative;
  padding: 0.5rem;
}

.header .header-nav__item:hover {
  background-color: #FFFFFF;
}

.header .header-nav__item:hover .header-nav__dropdown-menu {
  display: block;
  background-color: #FFFFFF;
}

.header .header-nav__item:hover .header-nav__link--dropdown::after {
  content: "\f077";
}

.header .header-nav__subitem {
  margin-bottom: 0.5rem;
}

.header .header-nav__sublink {
  font-size: 0.875rem;
  white-space: nowrap;
}

.header .header-nav__sublink:hover {
  color: #2A5772;
}

.header .header-nav__subtext {
  font-size: 0.625rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.header .header-nav__hamburger-menu {
  display: none;
  cursor: pointer;
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10000;
}

.header .header-nav__hamburger-menu span {
  display: block;
  width: 30px;
  height: 2px;
  background: #333333;
  margin: 5px;
  transition: 0.3s;
}

.header .header-nav__hamburger-menu span:nth-of-type(1) {
  -webkit-animation: bar01 .75s forwards;
  animation: bar01 .75s forwards;
}

.header .header-nav__hamburger-menu span:nth-of-type(2) {
  transition: all .25s .25s;
  opacity: 1;
}

.header .header-nav__hamburger-menu span:nth-of-type(3) {
  -webkit-animation: bar03 .75s forwards;
  animation: bar03 .75s forwards;
}

.header .header-nav__hamburger-menu.active span {
  background: #FFFFFF;
}

.header .header-nav__hamburger-menu.active span:nth-of-type(1) {
  -webkit-animation: active-bar01 .75s forwards;
  animation: active-bar01 .75s forwards;
}

.header .header-nav__hamburger-menu.active span:nth-of-type(2) {
  opacity: 0;
}

.header .header-nav__hamburger-menu.active span:nth-of-type(3) {
  -webkit-animation: active-bar03 .75s forwards;
  animation: active-bar03 .75s forwards;
}

.header .header-sp {
  position: fixed;
  top: 0;
  right: 0;
  width: 0;
  height: 100vh;
  overflow: hidden;
  transition: width 0.5s ease;
  display: flex;
  z-index: 9999;
}

.header .header-sp.active {
  width: min(100%, 400px);
  overflow-y: auto;
}

.header .header-sp__tab {
  z-index: 9999;
  background-color: transparent;
  padding-left: 0.5rem;
}

.header .header-sp__content {
  flex: 1;
  z-index: 9999;
}

.header .header-sp-tab__name {
  writing-mode: vertical-rl;
}

.header .header-sp-tab__item {
  margin-bottom: 0.5rem;
}

.header .header-sp-tab__button {
  padding: 1.5rem 0.5rem;
  border: none;
  background-color: transparent;
  font-size: 0.875rem;
  color: #FFFFFF;
}

.header .header-sp-panal__logo--image {
  width: min(150px, 30vw);
  margin-bottom: 0.5rem;
}

.header .header-sp__panel {
  display: none;
  color: #FFFFFF;
  padding: 2.5rem 3rem 2.5rem 1rem;
  min-height: 100%;
}

.header .header-sp__panel.active {
  display: block;
}

.header .header-sp-tab__item--hatena,
.header .header-sp__panel--hatena {
  background-color: #2B5671;
}

.header .header-sp-tab__item--tamura,
.header .header-sp__panel--tamura {
  background-color: #545454;
}

.header .header-sp-tab__logo--image {
  width: 1rem;
}

.header .header-sp-panel__name {
  font-size: 1.125rem;
  margin-bottom: 0.5rem;
}

.header .header-sp-panal__description {
  font-size: 0.875rem;
  line-height: 1.7;
}

.header .header-sp-panal__menu {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-top: 1.5rem;
}

.header .header-sp-panal__item {
  margin-bottom: 0.5rem;
}

.header .header-sp-panal__link {
  font-family: "Jost", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  display: inline-block;
  width: fit-content;
  line-height: 1.2;
}

.header .header-sp-panal__dropdown-menu {
  margin-left: 1rem;
}

.header .header-sp-panal__sublink {
  font-size: 0.875rem;
}

.header .header-sp-panal__subtext {
  font-size: 0.625rem;
  font-family: "Zen Kaku Gothic New", sans-serif;
}

.header .header-sp__term--sp {
  font-size: 0.875rem;
}

.header .header-sp-term__item {
  text-align: end;
  margin-bottom: 0.5rem;
}

.header .header-sp-social__social {
  margin-top: 0.5rem;
}

.header .header-sp-social__link-list {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 0.875rem;
  margin-bottom: 0.5rem;
}

.header .header-sp-social__link--icon {
  width: 1.25rem;
}

.header .header-sp-social__text {
  line-height: 1.2;
}

.header .header-sp-social__subtext {
  font-size: 0.5rem;
}

.header .header-sp-social__url {
  border-bottom: 1px solid #FFFFFF;
  display: block;
}

.header .header-sp__overlay {
  display: none;
  background-color: #00000033;
  height: 100%;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9998;
}

.header .header-sp__overlay.active {
  display: block;
}

@media (max-width: 991px) {
  .header {
    height: 3rem;
  }

  .header .header__inner {
    padding: 0.5rem 0;
  }

  .header .header-nav__logo--image {
    height: 2rem;
  }

  .header .header__nav {
    justify-content: center;
  }

  .header .header-nav__right {
    display: none;
  }

  .header .header-nav__logo {
    flex: 0;
  }

  .header .header-nav__hamburger-menu {
    display: block;
  }
}

/* フッター */
.footer {
  color: #FFFFFF;
  background-color: #545454;
  padding-top: 2.5rem;
  padding-bottom: 0.75rem;

  /* モバイル: 縦長を回避するためトップ padding を圧縮 */
  @media (max-width: 767px) {
    padding-top: 1.5rem;
    padding-bottom: 0.75rem;
  }

  .footer__item {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
  }

  .footer__column--left {
    width: 30%;
  }

  .footer__column--right {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .footer__logo {
    margin-bottom: 1rem;
  }

  .footer__name {
    font-size: 1.125rem;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .footer__logo--image {
    width: 10.5rem;
  }

  .footer__text {
    font-size: 0.875rem;
    line-height: 1.4;
    letter-spacing: 0.14rem;
    margin-bottom: 1.5rem;
  }

  .footer__contact {
    font-size: 0.625rem;
    line-height: 1.7;

    p {
      margin-bottom: 0;
    }
  }

  .footer__nav {
    display: flex;
    column-gap: 1.5rem;
    row-gap: 0.5rem;
  }

  .footer__menu {
    display: flex;
    flex-direction: row;
    column-gap: 1.5rem;
    row-gap: 0.5rem;
  }

  .footer-menu__item {
    font-family: "Jost", sans-serif;
  }

  .footer-menu__subtext {
    font-size: 0.5rem;
    display: block;
    font-family: "Zen Kaku Gothic New", sans-serif;
  }

  .footer-menu__sublist {
    font-size: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.5rem;
    font-family: "Zen Kaku Gothic New", sans-serif;
  }

  .footer-social__link-list {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 0.875rem;
    margin-bottom: 0.5rem;
  }

  .footer-social__link--icon {
    width: 1.25rem;
  }

  .footer-social__text {
    line-height: 1.2;
  }

  .footer-social__subtext {
    font-size: 0.5rem;
  }

  .footer-social__url {
    border-bottom: 1px solid #FFFFFF;
    display: block;
  }

  .footer__term--sp {
    display: none;
  }

  .footer-term__link-list {
    display: flex;
    justify-content: flex-end;

    .footer-term__link {
      display: flex;
      font-size: 0.875rem;

      &::before, &:last-child::after {
        content: "";
        width: 1px;
        margin: 0 1rem;
        transform: rotate(30deg);
        background-color: #FFFFFF30;
      }
    }
  }

  .footer__partition {
    margin-bottom: 2rem;
    display: flex;
    align-items: center;

    &::after {
      content: "";
      flex: 1;
      height: 1px;
      background-color: #FFFFFF30;
      margin-left: 15px;
    }
  }

  .footer-partition__text {
    font-size: 1.25rem;
    font-family: "Jost", sans-serif;
  }

  .footer-partition__subtext {
    font-size: 0.625rem;
    font-family: "Zen Kaku Gothic New", sans-serif;
    display: block;
  }

  .footer__copyright {
    font-size: 0.75rem;
    text-align: center;
  }

  @media (max-width: 991px) {
    .footer__item {
      flex-direction: column;
      margin-bottom: 1.25rem;
    }

    .footer__name--br {
      display: none;
    }

    .footer__column--left {
      width: 100%;
      margin-bottom: 1rem;
    }

    /* ロゴ・タグライン・住所などの上余白を圧縮 (縦長化を抑える) */
    .footer__logo {
      margin-bottom: 0.5rem;
    }
    .footer__text {
      margin-bottom: 0.75rem;
    }
  }

  @media (max-width: 767px) {
    /* モバイルは 2 カラム維持。 .footer__nav は flex-row のまま (デフォルト) で
       .footer__menu 同士を左右並列。各 menu の中身は flex-direction: column で縦積み。
       元の width:50% より flex: 1 1 0 にすることで 50/50 を厳格に保つ。 */
    .footer__nav {
      display: flex;
      flex-direction: row;
      column-gap: 1rem;
      row-gap: 0;
    }

    .footer__menu {
      flex: 1 1 0;
      min-width: 0;
      flex-direction: column;
      row-gap: 1rem;
    }

    .footer-menu__sublist {
      padding-left: 0.75rem;
      margin-top: 0.4rem;
    }

    .footer-social__link-list {
      justify-content: flex-start;
      margin-top: 1.25rem;
    }

    .footer__term--pc {
      display: none;
    }

    .footer__term--sp {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      font-size: 0.75rem;
      text-align: left;
      margin-top: 1.25rem;
      padding-top: 0.875rem;
      border-top: 1px solid rgba(255, 255, 255, 0.15);
    }

    .footer__social {
      margin-top: 1rem;
    }
  }
}

/* ホーム */
.home {
  overflow: hidden;

  .home__heading {
    padding-top: 1rem;
  }

  .home__description {
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .home-heading__outer {
    display: flex;
    align-items: center;
  }

  .home-heading__illust--image {
    display: block;
    height: 100%;
    margin: 0 auto;
  }

  .home-heading__body {
    flex: 1;
    position: relative;
  }

  .home-heading__illust {
    position: relative;
    width: 52%;
    aspect-ratio: 9 / 10
  }

  .home-heading__swiper {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(50vw - max(calc((100vw - 1260px) / 2), 0.75rem));
    height: 100%;
    overflow: visible;
    z-index: -1;

    .swiper-slide {
      display: flex;
      justify-content: center;
      align-items: center;
      margin: 0 auto;

      .home-heading__illust--image {
        transform: scale(0.8);
        transition: all 0.5s ease-out;
      }
    }

    .swiper-slide-active {
      .home-heading__illust--image {
        transform: scale(1);
      }
    }

    &::after {
      content: "";
      width: 200%;
      height: 6rem;
      display: block;
      background: linear-gradient(rgba(255, 255, 255, 0) 0, #F2F2F2 50%);
      position: absolute;
      top: 100%;
      left: -50%;
      z-index: 10;
    }
  }

  .home-heading__link {
    margin: 1.5rem 0;
  }

  .home-link__list {
    display: flex;
    gap: 2rem;
    margin-top: 2rem;
  }

  .home-link__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .home-link__title {
    color: #2A5772;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: 0.14rem;
  }

  .home-solve__body {
    display: flex;
    gap: 2rem;
  }

  .home-solve__illust {
    width: 100%;
    margin: 2rem 0;
  }

  .home-solve__illust--image {
    display: block;
    max-width: 100%;
    margin: 0 auto;
  }

  .home-solve__item {
    flex: 1;
  }

  .home-business__description {
    font-size: 0.875rem;
    margin: 2rem 0;
  }

  .home-business-item__outer {
    display: flex;
    align-items: center;
    gap: 8%;
  }

  .home-business-item__head--sp {
    display: none;
  }

  .home-business-item__head--upper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.5rem;
  }

  .home-business-item__space {
    flex: 1;
  }

  .home-business-item__body {
    flex: 1;
  }

  .home-business-item__name {
    font-family: "Jost", sans-serif;
    line-height: 1.7;
  }

  .home-business-item__name--bi {
    color: #298699;
  }

  .home-business-item__name--dx {
    color: #F10196;
  }

  .home-business-item__name--content {
    color: #FF8A00;
  }

  .home-business__logo--image {
    width: 54px;
    height: 54px;
  }

  .home-business-item__title {
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: 0.06rem;
  }

  .home-business-item__title--right {
    text-align: end;
  }

  .home-business-item__description {
    font-size: 0.875rem;
    line-height: 2.1;
  }

  .home-business-item__link--pc {
    margin-top: 0.5rem;
  }

  .home-business-item__picture {
    display: flex;
    align-items: center;
    background-color: #E4EAEB;
    width: 46%;
    aspect-ratio: 1 / 1;
    padding: 0 3.5%;
    overflow-y: hidden;
  }

  .home-business__picture--image {
    width: 100%;
  }

  .home-recruitment__outer {
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: 1.5rem;
  }

  .home-recruitment__body {
    flex: 1;
  }

  .home-recruitment__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  .home-recruitment__list {
    display: flex;
    align-items: center;
    gap: 2rem;
    margin: 1.5rem 0;
  }

  .home-recruitment__item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .home-recruitment-item__title {
    color: #2B5671;
  }

  .home-recruitment-item__title--br {
    display: none;
  }

  .home-recruitment__link--sp {
    display: none;
  }

  .home-recruitment__picture--image {
    width: 50%;
  }

  .home-company__outer {
    display: flex;
    justify-content: center;
    align-items: center;
    row-gap: 2rem;
  }

  .home-company__body {
    flex: 1;
  }

  .home-company__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  .home-company__link--pc {
    margin-top: 2rem;
  }

  .home-company__link--sp {
    display: none;
  }

  .home-company__illust--image {
    width: 60%;
  }

  .home-news__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  .home-achievements__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  @media (max-width: 767px) {
    .home-heading__illust {
      width: 100%;
      aspect-ratio: 4 / 3;
    }

    .home-heading__swiper {
      width: 100%;

      &::after {
        display: none;
      }
    }

    .home-heading__outer {
      flex-direction: column-reverse;
    }

    .home-heading__illust {
      width: 100%;
    }

    .home-heading__illust--image {
      width: 100%;
    }

    .home-link__list {
      gap: 1rem;
    }

    .home-link__title {
      font-size: 1rem;
      letter-spacing: 0;
    }

    .home-solve__body {
      flex-direction: column;
    }

    .home-business-item__head--sp {
      display: block;
      margin: 2rem 0 1rem;
    }

    .home-business-item__head--pc,
    .home-business-item__link--pc {
      display: none;
    }

    .home-recruitment__outer {
      flex-direction: column;
      align-items: normal;
    }

    .home-recruitment__picture--image {
      width: 100%;
    }

    .home-recruitment__link--sp {
      display: block;
    }

    .home-recruitment__link--pc {
      display: none;
    }

    .home-company__outer {
      flex-direction: column;
      align-items: normal;
    }

    .home-company__illust--image {
      display: block;
      width: 100%;
      max-width: 400px;
      margin: 0 auto;
    }

    .home-company__link--sp {
      display: block;
    }

    .home-company__link--pc {
      display: none;
    }
  }

  @media (max-width: 575px) {
    .home-recruitment-item__title--br {
      display: block;
    }
  }
}

/* はてなベース税理士事務所 */
.tax-accountant {
  .tax-accountant-about-us__outer {
    display: flex;
    align-items: center;
    margin-top: 2rem;
    column-gap: 4%;
    row-gap: 1.5rem;
  }

  .tax-accountant-about-us__illust--image {
    width: 50%;
  }

  .tax-accountant-about-us__body {
    flex: 1;
  }

  .tax-accountant-about-us__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 0.5rem;
  }

  .tax-accountant-about-us__description {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1rem;
  }

  .tax-accountant-about-us__link {
    display: flex;
    justify-content: end;
  }

  .tax-accountant-reason__outer {
    display: flex;
    gap: 2rem;
    justify-content: center;
    align-items: center;
    row-gap: 2rem;
  }

  .tax-accountant-reason__body {
    flex: 1;
  }

  .tax-accountant-reason__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
  }

  .tax-accountant-reason__description {
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .tax-accountant-reason__illust--image {
    width: 50%;
  }

  .tax-accountant-feedback__body {
    display: flex;
    column-gap: 4%;
    margin-top: 2rem;
  }

  .tax-accountant-feedback__block {
    width: 48%;
    padding-right: 2.5rem;
  }

  .tax-accountant-feedback__block--right {
    padding-top: 3rem;
  }

  .tax-accountant-feedback__item-wrapper {
    width: 100%;
  }

  .tax-accountant-feedback__item {
    position: relative;
    display: inline-block;
    width: 100%;
    margin-bottom: 4.75rem;
    padding: 1rem 2.5rem 1rem 1.5rem;
    border: 1px solid #545454;
    border-radius: 1.25rem;

    &::before {
      content: "";
      position: absolute;
      bottom: 0;
      left: 20%;
      border-style: solid;
      border-width: 1.75rem 0 0 2.5rem;
      border-color: #545454 transparent transparent;
      translate: -50% 100%;
    }

    &::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 20%;
      border-style: solid;
      border-width: 1.63rem 0 0 2.33rem;
      border-color: #EBEBEB transparent transparent;
      translate: calc(-50% + 0.4px) 100%;
    }
  }

  .tax-accountant-feedback-item__star {
    color: #2A5772;
    font-size: 1.25rem;
    margin-bottom: 0.25rem;
  }

  .tax-accountant-feedback-item__content {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 0.5rem;
  }

  .tax-accountant-feedback-item__content--link {
    text-decoration: underline;
  }

  .tax-accountant-feedback-item__content--strong {
    font-weight: 500;
    mix-blend-mode: multiply;
    background: linear-gradient(transparent 60%, #EBEBEB 30%);
  }

  .tax-accountant-feedback-item__customer{
    display: flex;
    gap: 0.25rem;
    justify-content: end;
    align-items: end;
  }

  .tax-accountant-feedback-item__picture--image {
    width: 3rem;
    aspect-ratio: 1;
    border-radius: 50%;
  }

  .tax-accountant-feedback-item__name {
    text-align: end;
    font-size: 0.875rem;
    white-space: nowrap;
  }

  .tax-accountant-feedback-item__business {
    font-size: 0.75rem;
    color: #B4B4B4;
    text-align: end;
  }

  .tax-accountant-feedback-item__illust--image {
    position: absolute;
    height: 170px;
    left: calc(100% - 1.5rem);
    bottom: -1.75rem;
  }

  .tax-accountant-feedback-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .tax-accountant-feedback-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  .tax-accountant-tool__body {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: 5%;
    row-gap: 1.5rem;
    margin-top: 2rem;
  }

  .tax-accountant-tool__logo--image {
    width: 120px;
  }

  .tax-accountant-certified__body {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: 5%;
    row-gap: 1.5rem;
    margin-top: 2rem;
  }

  .tax-accountant-certified__logo--image {
    max-height: 105px;
  }

  .tax-accountant-can-do__body {
    display: flex;
    column-gap: 4%;
    row-gap: 3rem;
    flex-wrap: wrap;
    margin: 3rem 0 2rem;
  }

  .tax-accountant-can-do__item {
    width: 48%;
  }

  .tax-accountant-can-do-item__wrapper {
    background-color: #EBEBEB;
    padding: 1.5rem;
    margin-bottom: 0.75rem;
  }

  .tax-accountant-can-do-item__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    text-align: center;
  }

  .tax-accountant-can-do-item__illust--image {
    display: block;
    height: 220px;
    margin: 0 auto;
  }

  .tax-accountant-can-do__link {
    display: flex;
    justify-content: end;
  }

  @media (max-width: 767px) {
    .tax-accountant-about-us__outer {
      flex-direction: column;
    }

    .tax-accountant-about-us__illust--image {
      display: block;
      width: 100%;
      max-width: 400px;
      margin: 0 auto;
    }

    .tax-accountant-about-us__link {
      display: none;
    }

    .tax-accountant-reason__outer {
      flex-direction: column;
    }

    .tax-accountant-reason__illust--image {
      width: 100%;
      max-width: 400px;
    }

    .tax-accountant-feedback__body {
      flex-direction: column;
    }

    .tax-accountant-feedback__block {
      width: 100%;
      padding-right: 1rem;
    }

    .tax-accountant-feedback__block--right {
      padding-top: 0;
    }

    .tax-accountant-feedback__item-wrapper--left {
      padding-right: 15%;
    }

    .tax-accountant-feedback__item-wrapper--right {
      padding-left: 15%;
    }

    .tax-accountant-can-do__body {
      row-gap: 2rem;
      margin-top: 1.5rem;
    }

    .tax-accountant-can-do__item {
      width: 100%;
    }
  }
}

/* DX */
.dx {
  padding-bottom: 0;
  z-index: -2;

  .dx__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    row-gap: 2rem;
    margin-bottom: 3rem;
  }

  .dx__illust--image {
    max-width: 45%;
  }

  .dx__body {
    margin-top: 2rem;
  }

  .dx-kintone__head {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 6rem;
    z-index: 1;

    p {
      font-size: 0.875rem;
      line-height: 1.7;
      text-align: center;
    }

    &::before {
      content: "";
      position: absolute;
      top: -4rem;
      width: min(25rem, 110%);
      aspect-ratio: 1/1;
      background-color: #FFFFFF;
      border-radius: 50%;
      z-index: -1;
    }
  }

  .dx-kintone__logo--image {
    margin: 1.5rem 0 1rem;
    max-width: 70%;
  }

  .dx-kintone__foot {
    position: relative;
    z-index: 1;
  }

  .dx-kintone-foot__list {
    display: flex;
    margin-top: 2rem;
    gap: 1.5rem;
  }

  .dx-kintone-foot__list--left,
  .dx-kintone-foot__list--right {
    flex: 1;
    display: flex;
    gap: 1.5rem;
  }

  .dx-kintone-foot__item {
    flex: 1;
  }

  .dx-kintone__example--image {
    width: 100%;
    height: 12.5rem;
    object-fit: contain;
  }

  .dx-plan__description {
    margin: 2rem 0;
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .dx-plan__body {
    p {
      font-size: 0.875rem;
      line-height: 1.7;
    }
  }

  .dx-plan-base__description {
    margin: 1rem 0;
  }

  .dx-plan-base__inner {
    display: flex;
    gap: 1.5rem;
  }

  .dx-plan-base__item {
    flex: 1;
    background-color: #EBEBEB;
    padding: 1.25rem 1.75rem;
  }

  .dx-plan-base__title {
    margin-bottom: 0.5rem;
  }

  .dx-plan__icon {
    text-align: center;
    padding: 1rem 0;

    &::after {
      font-family: "Font Awesome 6 Free";
      content: "\2b";
      font-size: 1rem;
      font-weight: 900;
      color: #2A5772;
    }
  }

  .dx-plan__option {
    position: relative;
  }

  .dx-plan-option__inner {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
    background-color: #EBEBEB;
    padding: 2rem;
  }

  .dx-plan-option__description {
    flex: 1;
  }

  .dx-plan-option__example {
    background-color: #F2F2F2;
    padding: 2rem;
    flex: 1.2;
  }

  .dx-plan-option__title {
    font-size: 0.875rem;
    font-weight: 600;
  }

  .dx-plan-option__illust--image {
    position: absolute;
    bottom: 0.5rem;
    right: 55%;
  }

  .dx-feedback__body {
    display: flex;
    flex-wrap: wrap;
    column-gap: 30px;
    row-gap: 2rem;
    justify-content: center;
    margin: 3rem 0;
  }

  .dx-feedback__item {
    width: 300px;
    position: relative;
  }

  .dx-feedback__item--upper {
    margin-bottom: 1.75rem;
  }

  .dx-feedback__item--lower {
    margin-top: 1.75rem;
  }

  .dx-feedback-item__bubble--image {
    width: 268px;
  }

  .dx-feedback-item__feedback {
    font-size: 0.875rem;
    line-height: 1.7;
    position: absolute;
    top: 0;
    left: 0;
    right: calc(100% - 268px);
    bottom: 1.5rem;
    padding: 1.75rem;
  }

  .dx-feedback-item__feedback--strong {
    font-weight: 500;
    mix-blend-mode: multiply;
    background: linear-gradient(transparent 60%, #EBEBEB 30%);
  }

  .dx-feedback-item__customer {
    margin-top: 1rem;
    text-align: end;
  }

  .dx-feedback-item__customer--image {
    position: absolute;
    left: calc(268px - 1.5rem);
    bottom: 0;
    max-width: calc(10% + 1.5rem);
    max-height: 55%;
  }

  .dx-feedback__link {
    display: flex;
    justify-content: center;
    row-gap: 1.5rem;
    column-gap: 3rem;
  }

  .dx-feedback-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem
  }

  .dx-feedback-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .dx__heading {
      flex-direction: column-reverse;
    }

    .dx__illust--image {
      max-width: 100%;
    }

    .dx-kintone-foot__subheading {
      display: none;
    }

    .dx-kintone-foot__list--left,
    .dx-kintone-foot__list--right {
      flex-direction: column;
    }

    .dx-plan__body {
      padding-bottom: 7rem;
    }

    .dx-plan-base__inner {
      flex-direction: column;
    }

    .dx-plan-option__inner {
      flex-direction: column;
    }

    .dx-plan-option__illust--image {
      bottom: -7.5rem;
      left: 0;
    }

    .dx-feedback__link {
      flex-direction: column;
    }

    .dx-feedback__item--upper {
      margin-bottom: 0;
      margin-right: 10%;
    }

    .dx-feedback__item--lower {
      margin-top: 0;
      margin-left: 10%;
    }
  }
}

/* Content */
.content {
  padding-bottom: 0;

  .content__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    row-gap: 2rem;
    margin-bottom: 3rem;
  }

  .content__illust--image {
    max-width: 45%;
  }

  .content__body {
    margin-top: 2rem;
  }

  .content-feature__body {
    margin-top: 2rem;
  }

  .content-feature--body__list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .content-feature-body__item {
    display: flex;
    align-items: center;
    row-gap: 0.25rem;
    width: 80%;

    .page-list {
      flex: 1;
    }
  }

  .content-feature-body__item--center {
    margin: 0 10%;
  }

  .content-feature-body__item--bottom {
    margin-left: 20%;
  }

  .content-feature__item--image {
    width: 160px;
    height: 160px;
    object-fit: contain;
  }

  .content-program__body {
    margin-top: 2rem;
  }

  .content-program__description {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .content-program__swiper {
    display: none;
    overflow: hidden;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
  }

  .content-program__list {
    display: flex;
    gap: 3.5%;
    margin-top: 1.5rem;
  }

  .content-program__item--image {
    width: 31%
  }

  .swiper-wrapper {
    width: 100%;
  }

  .swiper-slide {
    width: 100%;
  }

  .swiper-pagination-bullet-active {
    background: #2A5772;
  }

  .content-offering__body {
    margin: 3rem 0;
  }

  .content-offering__link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    row-gap: 1.5rem;
    column-gap: 3rem;
  }

  .content-offering-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem
  }

  .content-offering-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .content__heading {
      flex-direction: column-reverse;
    }

    .content__illust--image {
      max-width: 100%;
    }

    .content-program__swiper {
      display: block;
    }

    .content-program__list--pc {
      display: none;
    }

    .content-program__list--sp {
      padding-bottom: 1.75rem;
      overflow: visible;
    }

    .content-feature-body__item {
      flex-direction: column;
      width: 100%;
    }

    .content-program__item--image {
      width: 100%;
    }

    .content-feature-body__item--center {
      margin: 0;
    }

    .content-feature-body__item--bottom {
      margin-left: 0;
    }
  }
}

/* BI */
.bi {
  padding-bottom: 0;

  .bi__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    row-gap: 2rem;
    margin-bottom: 3rem;
  }

  .bi__illust--image {
    max-width: 45%;
  }

  .bi__body {
    margin-top: 2rem;
  }

  .bi-achieve__body {
    display: flex;
    justify-content: space-between;
    row-gap: 1.5rem;
    margin-top: 3rem;
  }

  .bi-achieve__item {
    width: 31%
  }

  .bi-achieve__item--image {
    display: block;
    height: 13.75rem;
    margin: 0 auto 2rem;
  }

  .bi-service__body {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-top: 2rem;
  }

  .bi-service__list {
    flex: 1;
    display: flex;
    gap: 3rem;
  }

  .bi-service__item {
    flex: 1;
  }

  .bi-service-item__inner {
    background-color: #EBEBEB;
    width: 100%;
    padding: 1.5rem 0;
    margin-bottom: 1rem;
  }

  .bi-service__item--image {
    height: 230px;
    display: block;
    margin: 0 auto;
  }

  .bi-service-item__title {
    text-align: center;
  }

  .bi-price__outer {
    display: flex;
    column-gap: 4rem;
    row-gap: 3rem;
  }

  .bi-price__body {
    flex: 1;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .bi-price__table {
    width: 100%;
    font-size: 0.875rem;
    border-collapse: separate;
    border-spacing: 0.5rem;

    th {
      font-weight: 500;
    }

    th,
    td {
      padding: 0.875rem 0.875rem;
      text-align: center;
      white-space: nowrap;
    }

    tr:nth-child(even) {
      background-color: #EBEBEB;
    }

    thead {
      tr {
        background-color: #EBEBEB;
      }

      th:nth-child(2) {
        background-color: #E4EAEB;
      }

      th:nth-child(3) {
        background-color: #D0DFE1;
      }

      th:nth-child(4) {
        background-color: #B5CDD1;
      }

      th:nth-child(5) {
        background-color: #9CBCC1;
      }
    }

    .sticky-odd,
    .sticky-even {
      position: sticky;
      left: 0;
      z-index: 1;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: calc(100% + 0.5rem);
        height: calc(100% + 0.5rem);
        border-right: 0.5rem solid #f2f2f2;
        border-bottom: 0.5rem solid #f2f2f2;
        z-index: -1;
      }
    }

    .sticky-odd {
      background-color: #f2f2f2;
    }

    .sticky-even {
      background-color: #EBEBEB;
    }
  }

  .bi-flow__body {
    margin-top: 1.5rem;
  }

  .bi-flow__description {
    line-height: 1.7;
    font-size: 0.875rem;
  }

  .bi-flow__chart {
    position: relative;
    margin: 8rem 0 3rem;
    z-index: 0;
  }

  .bi-flow-chart__arrow {
    width: 100%;
    height: 180px;
    display: flex;
    column-gap: 1rem;
    padding-top: 4rem;
    padding-bottom: 1.5rem;

    p {
      padding-top: 0.25rem;
      font-size: 0.875rem;
    }
  }

  .bi-flow-chart__arrow--first {
    position: absolute;
    left: 0;
    bottom: 0;
    padding-left: 4%;
    padding-right: calc((95% * 2 / 3) + 5%);
    background-color: #EAF5F7;
    clip-path: polygon(31.6% 0, 36.6% 50%, 31.6% 100%, 0 100%, 0 0);
    z-index: 3;
  }

  .bi-flow-chart__arrow--second {
    position: absolute;
    left: 0;
    bottom: 0;
    padding-left: calc((95% / 3) + 6%);
    padding-right: calc((95% / 3) + 5%);
    clip-path: polygon(63.3% 0, 69.3% 50%, 63.3% 100%, 0 100%, 0 0);
    background-color: #F4FBFC;
    z-index: 2;
  }

  .bi-flow-chart__arrow--third {
    position: relative;
    width: 100%;
    background-color: #FFFFFF;
    padding-left: calc((95% * 2 / 3) + 7%);
    padding-right: 5%;
    clip-path: polygon(95% 0, 100% 50%, 95% 100%, 0 100%, 0 0);
    z-index: 1;
  }

  .bi-flow__capture--image {
    position: absolute;
    bottom: calc(100% - 3rem);
    z-index: 4;
    width: 27%;
    aspect-ratio: 12/7;
    object-fit: contain;
  }

  .bi-flow__capture--first {
    left: 4%;
  }

  .bi-flow__capture--second {
    left: 37.6%;
  }

  .bi-flow__capture--third {
    left: 69.3%;
  }

  .bi-flow-chart__number {
    font-size: 1.375rem;
    font-weight: 500;
    color: #2A5772;
  }

  .bi-flow__demonstration {
    background-color: #F2F2F2;
    padding: 3rem 10%;
  }

  .bi-flow-demonstration__subheading {
    text-align: center;
  }

  .bi-flow-demonstration__body {
    margin-top: 2rem;
  }

  .bi-flow-demonstration__video {
    width: 100%;
    aspect-ratio: 13 / 7
  }

  .bi-case-study__body {
    background-color: #F2F2F2;
    margin: 3rem 0;
  }

  .bi-case-study__link {
    display: flex;
    justify-content: center;
    row-gap: 1.5rem;
    column-gap: 3rem;
  }

  .bi-case-study-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem
  }

  .bi-case-study-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .bi__heading {
      flex-direction: column-reverse;
    }

    .bi__illust--image {
      max-width: 100%;
    }

    .bi-achieve__body {
      flex-direction: column;
    }

    .bi-achieve__item {
      width: 100%
    }

    .bi-service__list {
      flex-direction: column;
    }

    .bi-flow__chart {
      margin-top: 2rem;
    }

    .bi-flow-chart__arrow {
      width: 210px;
      height: 500px;
      flex-direction: column;
      padding-left: 0.75rem;
      padding-right: 1.75rem;
      left: max(50% - 200px, 0%);
    }

    .bi-flow-chart__arrow--first {
      padding-top: 20px;
      padding-bottom: 340px;
      clip-path: polygon(100% 0, 100% 32%, 50% 36%, 0 32%, 0 0);
    }

    .bi-flow-chart__arrow--second {
      padding-top: 190px;
      padding-bottom: 180px;
      clip-path: polygon(100% 0, 100% 64%, 50% 68%, 0 64%, 0 0);
    }

    .bi-flow-chart__arrow--third {
      padding-top: 350px;
      padding-bottom: 20px;
      clip-path: polygon(100% 0, 100% 96%, 50% 100%, 0 96%, 0 0);
    }

    .bi-flow__capture--image {
      left: max(48%, 190px);
      width: 45%;
      max-height: 110px
    }

    .bi-flow__capture--first {
      top: 30px;
    }

    .bi-flow__capture--second {
      top: 200px;
    }

    .bi-flow__capture--third {
      top: 360px;
    }

    .bi-price__outer {
      flex-direction: column;
    }

    .bi-case-study__link {
      flex-direction: column;
    }
  }
}

/* 料金・サービス */
.service {
  padding-bottom: 0;

  .service__heading {
    margin-top: 3rem;
    margin-bottom: 1rem;
  }

  .service__outer {
    padding-top: 3rem;
  }

  .service__list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
    row-gap: 2.5rem;
  }

  .service__item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 48%;
    background-color: #EBEBEB;
    padding: 2.5rem;
  }

  .service-item__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: #2A5772;
    margin-bottom: 0.5rem;
  }

  .service-item__number {
    font-family: "Jost", sans-serif;
    font-size: 2rem;
    font-weight: 400;
  }

  .service-item__title {
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: 0.14rem;
  }

  .service-item__description {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
  }

  .service-item__description--strong {
    color: #2A5772;
    font-weight: 600;
  }

  .service-item__illust--image {
    display: block;
    margin: 0 auto 1.5rem;
    height: 220px;
    max-width: 100%;
  }

  .service-item__link {
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 1rem;
    margin-top: auto;
  }

  .service-item__view-more {
    font-family: "Jost", sans-serif;
    font-size: 0.75rem;
    color: #2A5772;
  }

  .service-flow-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-top: 2rem;
  }

  .service-flow-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .service__heading {
      margin-bottom: 0;
    }

    .service__item {
      width: 100%;
      padding: 2.5rem 1rem;
    }
  }
}

/* 税務顧問 */
.tax-advisor {
  .tax-advisor__heading {
    margin-top: 3rem;
  }

  .tax-advisor-description {
    padding-top: 5rem;
    padding-bottom: 0;
  }

  .tax-advisor-description__body {
    display: flex;
    column-gap: 15%;
  }

  .tax-advisor-description__inner {
    flex: 1;
  }

  .tax-advisor-description__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .tax-advisor-description__illust--image {
    max-width: 400px;
  }

  .tax-advisor-price__body {
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.2500%;
    padding-bottom: 0;
    box-shadow: 0 2px 8px 0 rgba(63, 69, 81, 0.16);
    margin-top: 1.6em;
    margin-bottom: 0.9em;
    overflow: hidden;
    border-radius: 8px;
    will-change: transform;
  }

  .tax-advisor-price__content {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: none;
    padding: 0;
    margin: 0;
  }

  .tax-advisor-flow__body {
    display: flex;
    justify-content: space-between;
    margin-top: 3rem;
  }

  .tax-advisor-flow__block--before {
    width: 36.5%;
  }

  .tax-advisor-flow__block--after {
    width: 61.5%;
  }

  .tax-advisor-flow-block__title {
    width: 100%;
    font-size: 0.875rem;
    font-weight: 500;
    text-align: center;
    padding: 0.75rem;
    margin-bottom: 1.75rem;
  }

  .tax-advisor-flow-block__title--before {
    background-color: #D0DFE1;
  }

  .tax-advisor-flow-block__title--after {
    background-color: #2B5671;
    color: #FFFFFF;
  }

  .tax-advisor-flow-block__list {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1rem;
  }

  .tax-advisor-flow-block__step {
    flex: 1;
  }

  .tax-advisor-flow-block__text {
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .tax-advisor-flow-block__text--medium {
    font-family: "Jost", sans-serif;
    color: #2A5772;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.2;
  }

  .tax-advisor-flow__illust {
    display: flex;
    justify-content: space-between;
    column-gap: 1rem;
    max-height: 160px;
    width: 100%;
  }

  .tax-advisor-flow__illust--image {
    display: block;
    height: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0 auto;
  }

  .tax-advisor-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .tax-advisor-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .tax-advisor-description {
      padding-top: 2rem;
    }

    .tax-advisor-description__body {
      flex-direction: column;
      row-gap: 1rem;
    }

    .tax-advisor-description__illust--image {
      width: 100%;
      display: block;
      margin: 0 auto;
    }

    .tax-advisor-flow__body {
      flex-direction: column;
      row-gap: 0.5rem;
      margin-top: 2rem;
      max-width: 360px;
      margin: 2rem auto 0;
    }

    .tax-advisor-flow__block {
      display: flex;
      justify-content: space-between;
      gap: 1rem;
    }

    .tax-advisor-flow__block--before,
    .tax-advisor-flow__block--after {
      width: 100%;
    }

    .tax-advisor-flow-block__title {
      width: auto;
      text-align: center;
      margin-bottom: 0;
      writing-mode: vertical-rl;
      letter-spacing: 0.24rem;
    }

    .tax-advisor-flow-block__list {
      flex-direction: column;
      row-gap: 2rem;
      margin: 0.5rem 0;
    }

    .tax-advisor-flow-block__text {
      white-space: nowrap;
    }

    .tax-advisor-flow__illust {
      flex-direction: column;
      justify-content: center;
      row-gap: 0.5rem;
      width: 150px;
      max-height: none;
    }

    .tax-advisor-flow__illust--image {
      height: auto;
    }
  }
}

/* 決算・確定申告 */
.settlement {
  .settlement__heading {
    margin-top: 3rem;
  }

  .settlement-description {
    padding-top: 5rem;
    padding-bottom: 0;
  }

  .settlement-description__body {
    display: flex;
    column-gap: 15%;
  }

  .settlement-description__inner {
    flex: 1;
  }

  .settlement-description__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .settlement-description__description {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1rem;
  }

  .settlement-description__description--strong {
    color: #2A5772;
    font-weight: 600;
  }

  .settlement-description__illust--image {
    max-width: 400px;
  }

  .settlement-price__outer {
    display: flex;
    column-gap: 4rem;
    row-gap: 3rem;
  }

  .settlement-price__body {
    flex: 1;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .settlement-price__table {
    width: 100%;
    font-size: 0.875rem;
    border-collapse: separate;
    border-spacing: 0.5rem;

    th {
      font-weight: 500;
    }

    th,
    td {
      padding: 0.875rem 0.875rem;
      text-align: center;
      white-space: nowrap;
    }

    tr:nth-child(even) {
      background-color: #EBEBEB;
    }

    thead {
      tr {
        background-color: #EBEBEB;
      }

      th:nth-child(2) {
        background-color: #E4EAEB;
      }

      th:nth-child(3) {
        background-color: #D0DFE1;
      }

      th:nth-child(4) {
        background-color: #B5CDD1;
      }

      th:nth-child(5) {
        background-color: #9CBCC1;
      }
    }

    .sticky-odd,
    .sticky-even {
      position: sticky;
      left: 0;
      z-index: 1;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: calc(100% + 0.5rem);
        height: calc(100% + 0.5rem);
        border-right: 0.5rem solid #f2f2f2;
        border-bottom: 0.5rem solid #f2f2f2;
        z-index: -1;
      }
    }

    .sticky-odd {
      background-color: #f2f2f2;
    }

    .sticky-even {
      background-color: #EBEBEB;
    }
  }

  .settlement-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .settlement-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .settlement-description {
      padding-top: 2rem;
    }

    .settlement-description__body {
      flex-direction: column;
      row-gap: 1rem;
    }

    .settlement-description__illust--image {
      width: 100%;
      display: block;
      margin: 0 auto;
    }

    .settlement-price__outer {
      flex-direction: column;
    }
  }
}

/* 決算・確定申告 */
.financing-support {
  .financing-support__heading {
    margin-top: 3rem;
  }

  .financing-support-description {
    padding-top: 5rem;
    padding-bottom: 0;
  }

  .financing-support-description__body {
    display: flex;
    column-gap: 15%;
  }

  .financing-support-description__inner {
    flex: 1;
  }

  .financing-support-description__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .financing-support-description__description {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1rem;
  }

  .financing-support-description__illust--image {
    max-width: 400px;
  }

  .financing-support-slide {
    padding-bottom: 2rem;
  }

  .financing-support-slide__illust--image {
    width: 100%;
  }

  .financing-support-plan {
    padding-bottom: 0;
  }

  .financing-support-plan__body {
    display: flex;
    column-gap: 4%;
    font-size: 0.875rem;
    margin-top: 3rem;
    margin-bottom: 1rem;
  }

  .financing-support-plan__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
  }

  .financing-support-plan__recommend {
    position: absolute;
    bottom: calc(100% + 0.125rem);
    left: 50%;
    transform: translateX(-50%);
    color: #2B5671;
    font-weight: 500;
  }

  .financing-support-plan__recommend--image {
    position: absolute;
    bottom: calc(100% + 0.375rem);
    left: 50%;
    transform: translateX(-50%);
    width: 10.5rem;
  }

  .financing-support-plan-item__name {
    font-weight: 500;
    text-align: center;
    padding: 0.75rem;
  }

  .financing-support-plan-item__name--left {
    background-color: #D0DFE1;
  }

  .financing-support-plan-item__name--right {
    background-color: #2A5772;
    color: #FFFFFF;
  }

  .financing-support-plan-item__description {
    line-height: 1.7;
    text-align: center;
    padding: 0.5rem 0;
  }

  .financing-support-plan-item__price {
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    padding: 0.5rem 0 1.625rem;
  }

  .financing-support-plan-item__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: #EBEBEB;
    padding: 1.25rem;
  }

  .financing-support-plan-item__service {
    flex: 1;
    background-color: #F2F2F2;
    line-height: 1.7;
    padding: 1.5rem 2.5rem;

    ul{
      padding-left: 1rem;
    }

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-137%);
      font-family: "Font Awesome 6 Free";
      content: "\f00c";
      font-weight: 900;
      color: #2B5671;
    }
  }

  .financing-support-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .financing-support-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .financing-support-description {
      padding-top: 2rem;
    }

    .financing-support-description__body {
      flex-direction: column;
      row-gap: 1rem;
    }

    .financing-support-description__illust--image {
      width: 100%;
      display: block;
      margin: 0 auto;
    }

    .financing-support-plan__body {
      flex-direction: column;
      row-gap: 2rem;
    }
  }
}

/* 決算・確定申告 */
.consulting {
  .consulting__heading {
    margin-top: 3rem;
  }

  .consulting-description {
    padding-top: 5rem;
    padding-bottom: 0;
  }

  .consulting-description__body {
    display: flex;
    column-gap: 15%;
  }

  .consulting-description__inner {
    flex: 1;
  }

  .consulting-description__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .consulting-description__description {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1rem;
  }

  .consulting-description__illust--image {
    max-width: 400px;
  }

  .consulting-slide {
    padding-bottom: 2rem;
  }

  .consulting-slide__illust--image {
    width: 100%;
  }

  .consulting-achieve__body {
    display: flex;
    justify-content: space-between;
    row-gap: 1.5rem;
    margin-top: 3rem;
    margin-bottom: 4rem;
  }

  .consulting-achieve__item {
    width: 31%
  }

  .consulting-achieve__item--image {
    display: block;
    height: 13.75rem;
    margin: 0 auto 2rem;
  }

  .consulting-achieve__note {
    font-size: 0.875rem;
    line-height: 1.7;
  }

  .consulting-metrics__body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-top: 2rem;
  }

  .consulting-metrics__table {
    width: 100%;
    font-size: 0.875rem;
    border-collapse: separate;
    border-spacing: 0.5rem;

    th {
      font-weight: 500;
    }

    th,
    td {
      padding: 0.875rem 1.5rem;
      text-align: start;
      vertical-align: middle;
    }

    tr td:first-child {
      white-space: nowrap;
    }

    tr:nth-child(even) {
      background-color: #EBEBEB;
    }

    thead {
      tr {
        background-color: #EBEBEB;
      }

      th {
        background-color: #D0DFE1;
      }

      th:last-child {
        min-width: 600px;
      }
    }
  }

  .consulting-price__body {
    display: flex;
    column-gap: 4%;
    font-size: 0.875rem;
    margin-top: 3rem;
    margin-bottom: 1rem;
  }

  .consulting-price__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
  }

  .consulting-price__recommend {
    position: absolute;
    bottom: calc(100% + 0.125rem);
    left: 50%;
    transform: translateX(-50%);
    color: #2B5671;
    font-weight: 500;
  }

  .consulting-price__recommend--image {
    position: absolute;
    bottom: calc(100% + 0.375rem);
    left: 50%;
    transform: translateX(-50%);
    width: 10.5rem;
  }

  .consulting-price-item__name {
    font-weight: 500;
    text-align: center;
    padding: 0.75rem;
  }

  .consulting-price-item__name--left {
    background-color: #D0DFE1;
  }

  .consulting-price-item__name--right {
    background-color: #2A5772;
    color: #FFFFFF;
  }

  .consulting-price-item__description {
    line-height: 1.7;
    text-align: center;
    padding: 0.5rem 0;
  }

  .consulting-price-item__price {
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    padding: 0.5rem 0 1.625rem;
  }

  .consulting-price-item__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: #EBEBEB;
    padding: 1.25rem;
  }

  .consulting-price-item__service {
    flex: 1;
    background-color: #F2F2F2;
    line-height: 1.7;
    padding: 1.5rem 2.5rem;

    ul{
      padding-left: 1rem;
    }

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-137%);
      font-family: "Font Awesome 6 Free";
      content: "\f00c";
      font-weight: 900;
      color: #2B5671;
    }
  }

  .consulting-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .consulting-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .consulting-description {
      padding-top: 2rem;
    }

    .consulting-description__body {
      flex-direction: column;
      row-gap: 1rem;
    }

    .consulting-description__illust--image {
      width: 100%;
      display: block;
      margin: 0 auto;
    }

    .consulting-achieve__body {
      flex-direction: column;
      margin-bottom: 2rem;
    }

    .consulting-achieve__item {
      width: 100%
    }

    .consulting-price__body {
      flex-direction: column;
      row-gap: 2rem;
    }
  }
}

/* スポット申告 */
.spot-report {
  .spot-report__heading {
    margin-top: 3rem;
  }

  .spot-report-description {
    padding-top: 5rem;
    padding-bottom: 0;
  }

  .spot-report-description__body {
    display: flex;
    column-gap: 15%;
  }

  .spot-report-description__inner {
    flex: 1;
  }

  .spot-report-description__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .spot-report-description__illust--image {
    max-width: 400px;
  }

  .spot-report-individual__head,
  .spot-report-corporation__head {
    color: #2A5772;
    font-weight: 600;
    text-align: center;
    background-color: #EBEBEB;
    width: 100%;
    padding: 0.75rem 0;
    margin-bottom: 1.75rem;
  }

  .spot-report-individual__partition {
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;

    &::after {
      content: "";
      flex: 1;
      height: 1px;
      margin-left: 15px;
    }
  }

  .spot-report-individual__partition--all::after {
    background-color: #9CBCC1;
  }

  .spot-report-individual__partition--self::after {
    background-color: #2A5772;
  }

  .spot-report-individual-partition__text--all {
    color: #9CBCC1;
  }

  .spot-report-individual-partition__text--self::after {
    color: #9CBCC1;
  }

  .spot-report-individual__inner {
    font-size: 0.875rem;
    display: flex;
    column-gap: 4%;
    row-gap: 2rem;
  }

  .spot-report-individual__plan,
  .spot-report-individual__price {
    flex: 1;
  }

  .spot-report-individual__plan {
    display: flex;
    flex-direction: column;
  }

  .spot-report-individual__title {
    margin-bottom: 2rem;
  }

  .spot-report-individual__title--all {
    color: #9CBCC1;
  }

  .spot-report-individual__title--self {
    color: #2A5772;
  }

  .spot-report-individual-plan__item-wrapper {
    margin-top: 0.5rem;
    flex: 1;
  }

  .spot-report-individual-plan__item {
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 7rem;
    margin-bottom: 3rem;
  }

  .spot-report-individual-plan__recommend {
    position: absolute;
    bottom: calc(100% + 0.125rem);
    left: 50%;
    transform: translateX(-50%);
    color: #2B5671;
    font-weight: 500;
  }

  .spot-report-individual-plan__recommend--image {
    position: absolute;
    bottom: calc(100% + 0.375rem);
    left: 50%;
    transform: translateX(-50%);
    width: 10.5rem;
  }

  .spot-report-individual-plan__name {
    font-weight: 500;
    text-align: center;
    padding: 0.75rem;
  }

  .spot-report-individual-plan__name--all {
    background-color: #D0DFE1;
  }

  .spot-report-individual-plan__name--self {
    color: #FFFFFF;
    background-color: #2A5772;
  }

  .spot-report-individual-plan__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    background-color: #EBEBEB;
    padding: 1.25rem;
  }

  .spot-report-individual-plan__description {
    line-height: 1.7;
    text-align: center;
    padding: 0.5rem 0;
    margin-bottom: 1.5rem;
  }

  .spot-report-individual-plan__service {
    flex: 1;
    background-color: #F2F2F2;
    line-height: 1.7;
    padding: 1.5rem 2.5rem;
  }

  .spot-report-individual-plan-service__title {
    font-size: 1rem;
    font-weight: 600;
  }

  .spot-report-individual-plan-service__body {
    padding-left: 1rem;

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-137%);
      font-family: "Font Awesome 6 Free";
      content: "\f00c";
      font-weight: 900;
      color: #2B5671;
    }
  }

  .spot-report-individual-plan-service__note {
    font-size: 0.75rem;
    padding-left: 0.675rem;
    margin-top: 0.75rem;

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-105%);
      content: "※";
    }
  }

  .spot-report-individual-price__description {
    font-size: 0.75rem;
    text-align: center;
    margin-bottom: 1rem;
  }

  .spot-report-individual-price__block {
    margin-bottom: 3rem;
  }

  .spot-report-individual-price__block-title {
    font-weight: 500;
    margin-bottom: 0.5rem;

    &::before {
      display: inline-block;
      vertical-align: middle;
      content: "";
      border-radius: 50%;
      width: 0.875rem;
      aspect-ratio: 1 / 1;
      margin: 0 0.5rem 0.125rem 0.5rem;
    }
  }

  .spot-report-individual-price__block-title--all::before {
    background-color: #D0DFE1;
  }

  .spot-report-individual-price__block-title--self::before {
    background-color: #2A5772;
  }

  .spot-report-individual-price__block-body {
    margin-left: 1.875rem;

    .spot-report-individual-price__block-note {
      padding-left: 0.75rem;
    }
  }

  .spot-report-individual-price__block-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0.5rem;

    th,
    td {
      padding: 0.875rem 1.25rem;
      vertical-align: middle;
    }

    tr {
      margin: 0 -0.5rem;
    }

    tr:nth-child(odd) {
      background-color: #EBEBEB;
    }

    tr td:first-child {
      font-weight: 500;
    }

    tr td:nth-child(2) {
      white-space: nowrap;
    }
  }

  .spot-report-individual-price__block-thead--all {
    background-color: #D0DFE1;
  }

  .spot-report-individual-price__block-thead--self {
    color: #FFFFFF;
    background-color: #2A5772;
  }

  .spot-report-individual-price__block-td--center {
    text-align: center;
  }

  .spot-report-individual-price__block-note {
    font-size: 0.75rem;
    padding-left: 1.25rem;

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-105%);
      content: "※";
    }
  }

  .spot-report-individual-price__block-table--note {
    font-size: 0.75rem;
    text-align: end;
    margin-right: 0.5rem;
    margin-bottom: -0.5rem;
  }

  .spot-report-corporation__body {
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 2rem;
  }

  .spot-report-corporation__block {
    margin-top: 3rem;
  }

  .spot-report-corporation__block-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
  }

  .spot-report-corporation-service__list {
    line-height: 2;
    padding-left: 1.375rem;
    margin-bottom: 2rem;

    dt {
      list-style: none;
    }

    dd {
      margin-bottom: 0.75rem;
    }

    dt:before {
      position: absolute;
      transform: translateX(-150%);
      font-family: "Font Awesome 6 Free";
      content: "\f00c";
      font-weight: 900;
      color: #2B5671;
    }
  }

  .spot-report-corporation-service__list-note {
    font-size: 0.75rem;
    padding-left: 0.8rem;

    li {
      list-style: none;
    }

    li:before {
      position: absolute;
      transform: translateX(-105%);
      content: "※";
    }
  }

  .spot-report-corporation-block__table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 1rem;
  }

  .spot-report-corporation-block__table {
    width: calc(960px + 0.5rem);
    margin: 0 -0.5rem;
    border-collapse: separate;
    border-spacing: 0.5rem;
    table-layout: fixed;

    th {
      font-weight: 500;
    }

    th,
    td {
      padding: 0.875rem 0;
      text-align: center;
    }

    tr:nth-child(even) {
      background-color: #EBEBEB;
    }

    thead {
      tr {
        background-color: #EBEBEB;
      }

      th:first-child {
        width: 4rem;
      }

      th:nth-child(2) {
        background-color: #E4EAEB;
      }

      th:nth-child(3) {
        background-color: #D0DFE1;
      }

      th:nth-child(4) {
        background-color: #B5CDD1;
      }

      th:nth-child(5) {
        background-color: #9CBCC1;
      }

      th:nth-child(6) {
        background-color: #77A6AD;
      }
    }

    .sticky-odd,
    .sticky-even {
      position: sticky;
      left: 0;
      z-index: 1;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: calc(100% + 0.5rem);
        height: calc(100% + 0.5rem);
        border-right: 0.5rem solid #f2f2f2;
        border-bottom: 0.5rem solid #f2f2f2;
        z-index: -1;
      }
    }

    .sticky-odd {
      background-color: #f2f2f2;
    }

    .sticky-even {
      background-color: #EBEBEB;
    }
  }

  .spot-report-corporation-block__td-note {
    display: block;
    font-size: 0.75rem;
  }

  .spot-report-corporation-block__table-description {
    margin-bottom: 1rem;
  }

  .spot-report-corporation-block__table-note {
    font-size: 0.75rem;
    padding-left: 1.5rem;
    counter-reset: listnum;

    > li {
      list-style: none;
      margin-bottom: 0.75rem;
    }

    > li:before {
      counter-increment: listnum;
      position: absolute;
      transform: translateX(-150%);
      content: "※" counter(listnum);
    }
  }

  .spot-report-corporation-block__table-note--list {
    padding-left: 0.875rem;

    > li {
      list-style: none;
    }

    > li:before {
      position: absolute;
      transform: translateX(-120%);
      content: "・";
    }
  }

  .spot-report-corporation-caution__block {
    margin-bottom: 1.5rem;
  }

  .spot-report-corporation-caution__title {
    margin-bottom: 1rem;
  }

  .spot-report-corporation-caution__list {
    padding-left: 1.25rem;

    li {
      list-style: none;
      margin-bottom: 0.75rem;
    }

    li:before {
      position: absolute;
      transform: translateX(-150%);
      content: "・";
    }
  }

  .spot-report-corporation-option__description {
    margin-bottom: 1.5rem;
  }

  .spot-report-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
  }

  .spot-report-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  @media (max-width: 767px) {
    .spot-report-description {
      padding-top: 2rem;
    }

    .spot-report-description__body {
      flex-direction: column;
      row-gap: 1rem;
    }

    .spot-report-description__illust--image {
      width: 100%;
      display: block;
      margin: 0 auto;
    }

    .spot-report-individual__inner {
      flex-direction: column;
    }

    .spot-report-individual-plan__item {
      position: relative;
      top: auto;
      margin-bottom: auto;
    }

    .spot-report-individual-price__block {
      margin-bottom: 2rem;
    }
  }
}

/* 私たちについて */
.about-us {
  .about-us__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    row-gap: 2rem;
    margin-bottom: 1rem;
  }

  .about-us__illust--image {
    max-width: 55%;
  }

  .about-us-company__outer {
    position: relative;
    display: flex;
  }

  .about-us-company__subheading {
    width: 35%;
  }

  .about-us-company__body {
    flex: 1;
  }

  .about-us-company__table {
    font-size: 0.875rem;
    width: 100%;

    tr {
      border-top: solid 1px #CECECE;
    }

    tr:last-child {
      border-bottom: solid 1px #CECECE;
    }

    th, td {
      padding: 1rem 0 1rem 1rem;
    }

    th {
      font-weight: 500;
      width: 0;
      white-space: nowrap;
      text-align: start;
      padding-right: 3rem;
    }
  }

  /* Google mapを白黒で表示する */
  .about-us-company__map {
    width: 100%;
    margin-top: 1rem;
    filter: grayscale(80%);
  }

  .about-us-company__illust--image {
    position: absolute;
    right: 67%;
    bottom: 1.5rem;
    width: 60%;
  }

  .about-us-company-link__item {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-top: 2rem;
  }

  .about-us-company-link__title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2A5772;
  }

  .about-us-member__body {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    column-gap: 6%;
    row-gap: 2rem;
  }

  .about-us-member__item {
    width: 47%;
  }

  .about-us-member__item--left {
    margin-bottom: 90px;
  }

  .about-us-member__item--right {
    margin-top: 90px;
  }

  .about-us-member__picture--image {
    display: block;
    width: 260px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 0.75rem;
  }

  .about-us-member__position {
    color: #2A5772;
    font-size: 0.875rem;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.14rem;
    margin-bottom: 0.5rem;
  }

  .about-us-member__name {
    color: #2A5772;
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.14rem;
  }

  .about-us-member__name-kana {
    color: #2A5772;
    font-size: 0.625rem;
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.14rem;
    margin-bottom: 1rem;
  }

  .about-us-member__description {
    font-size: 0.875rem;
    line-height: 1.7;
    text-align: center;
  }

  .about-us-member__social {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 0.5rem;
  }

  .about-us-history__outer {
    position: relative;
    display: flex;
  }

  .about-us-history__subheading {
    width: 30%;
  }

  .about-us-history__body {
    flex: 1;
  }

  .about-us-history__table {
    font-size: 0.875rem;
    line-height: 1.7;
    width: 100%;

    p {
      margin-bottom: 0.5rem;
    }

    th, td {
      padding: 0.5rem 0.5rem 0;
    }

    tr td:first-child {
      font-size: 1.125rem;
      font-weight: 600;
      letter-spacing: 0.14rem;
      width: 0;
      white-space: nowrap;
      padding-right: 1rem;
      border-right: solid 2px #CECECE;
    }

    tr td:nth-child(2) {
      position: relative;
      width: 0;
      white-space: nowrap;
      padding-left: 1rem;

      &::before {
        position: absolute;
        top: 1.35rem;
        left: calc(0px - 6px);
        content: "";
        display: inline-block;
        width: 10px;
        height: 10px;
        background-color: #545454;
        border-radius: 50%;
      }
    }
  }

  .about-us-history__illust--image {
    position: absolute;
    right: 72%;
    bottom: 0;
    width: 50%;
  }

  .about-us-message__title {
    color: #2A5772;
    font-weight: 600;
    letter-spacing: 0.14rem;
    margin-bottom: 1.5rem;
  }

  .about-us-message__paragraph {
    font-size: 0.875rem;
    line-height: 2.1;
    margin-bottom: 1rem;
  }

  .about-us-message__illust--image {
    width: 100%;
    margin-top: 2.5rem;
  }

  .about-us-working__description {
    line-height: 1.7;
    font-size: 0.875rem;
    margin-top: 2rem;
  }

  .about-us-working__outer {
    display: flex;
    align-items: end;
    gap: 1.5rem;
    margin-top: 2rem;
    line-height: 1.7;

    p {
      font-size: 0.875rem;
    }
  }

  .about-us-working__body {
    flex: 1;
  }

  .about-us-working__list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
    row-gap: 1.5rem;
    margin-top: 2rem;
  }

  .about-us-working__item {
    width: 48%;
  }

  .about-us-working-item__title {
    color: #2A5772;
    letter-spacing: 0.14rem;
    font-weight: 600;
  }

  .about-us-working__illust--image {
    width: 33%;
  }

  @media (max-width: 767px) {
    .about-us-company__outer {
      flex-direction: column;
      row-gap: 2rem;
    }

    .about-us-company__subheading {
      width: 100%;
    }

    .about-us-company__table {
      th, td {
        padding-left: 0.5rem;
      }

      th {
        padding-right: 0;
      }
    }

    .about-us-company__illust--image {
      position: static;
      display: block;
      width: 100%;
      max-width: 500px;
      margin: 0 auto;
    }

    .about-us-member__item {
      width: 100%;
    }

    .about-us-member__item--left {
      margin-bottom: 0;
      margin-right: 20%;
    }

    .about-us-member__item--right {
      margin-top: 0;
      margin-left: 20%;
    }

    .about-us-member__picture--image {
      width: 200px;
    }

    .about-us-history__outer {
      flex-direction: column;
      row-gap: 2rem;
    }

    .about-us-history__subheading {
      width: 100%;
    }

    .about-us-history__illust--image {
      position: static;
      display: block;
      width: 100%;
      max-width: 500px;
      margin: 0 auto;
    }

    .about-us-message__paragraph {
      margin-bottom: 0;
    }

    .about-us-message__illust--image {
      width: 100vw;
      position: relative;
      left: 50%;
      right: 50%;
      margin-top: 1.5rem;
      margin-left: -50vw;
      margin-right: -50vw;
    }

    .about-us-working__outer {
      align-items: center;
      flex-direction: column;
    }

    .about-us-working__item {
      width: 100%;
    }

    .about-us-working__illust--image {
      max-width: 400px;
      width: 100%;
    }
  }
}

/* 採用情報 */
.recruit {
  overflow: hidden;

  .recruit__heading {
    position: relative;
    margin-bottom: 3rem;
  }

  .recruit__heading--tamura {
    padding-top: 2rem;
  }

  .recruit-heading__inner {
    display: flex;
    align-items: end;
    gap: 4%;
  }

  .recruit__pc--image {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-55%, -50%);
    z-index: -1;
  }

  .recruit__sp-head--image,
  .recruit__sp-foot--image {
    display: none;
  }

  .recruit__header--image {
    width: 48%;
  }

  .recruit-message--hatena {
    width: 55%;
  }

  .recruit-message--tamura {
    flex: 1;
  }

  .recruit-message__title {
    margin-bottom: 1.5rem;
  }

  .recruit-message__title--blue {
    font-weight: 600;
    font-size: 1rem;
    color: #2A5772;
    margin-top: 2rem;
  }

  .recruit-message__subtitle,
  .recruit-message__body,
  .recruit-message__name {
    font-size: 0.875rem;
    line-height: 2.4;
  }

  .recruit-message__subtitle {
    font-family: "Jost", sans-serif;
  }

  .recruit-message__body {
    margin-bottom: 1rem;
  }

  .recruit-message__name {
    text-align: end;
  }

  .recruit__circle {
    position: relative;
    height: 100%;
    padding-top: 4rem;
    padding-bottom: 6rem;
  }

  .recruit__circle--background {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #EBEBEB;
    content: "";
    height: 100%;
    aspect-ratio: 1 / 1;
    z-index: -1;
    border-radius: 50%;
  }

  .recruit-recruitment__outer {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .recruit-recruitment__illust--image {
    width: 45%;
  }

  .recruit-recruitment__body {
    flex: 1;
    line-height: 1.7;
  }

  .recruit-recruitment__title {
    color: #2A5772;
    letter-spacing: 0.14rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
  }

  .recruit-recruitment__description {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
  }

  .recruit-recruitment__link {
    display: flex;
    justify-content: end;
  }

  .recruit-working__outer {
    display: flex;
    align-items: end;
    gap: 1.5rem;
    margin-top: 2rem;
    line-height: 1.7;

    p {
      font-size: 0.875rem;
    }
  }

  .recruit-working__body {
    flex: 1;
  }

  .recruit-working__list {
    display: flex;
    flex-wrap: wrap;
    column-gap: 4%;
    row-gap: 1.5rem;
    margin-top: 2rem;
  }

  .recruit-working__item {
    width: 48%;
  }

  .recruit-working-item__title {
    color: #2A5772;
    letter-spacing: 0.14rem;
    font-weight: 600;
  }

  .recruit-working__illust--image {
    width: 33%;
  }

  .recruit-slide__body {
    margin-top: 2rem;
  }

  .recruit-material__body {
    margin-top: 2rem;
  }

  .recruit-wantedly {
    padding-top: 0;
  }

  .recruit-wantedly__body {
    position: relative;
    background-color: #EBEBEB;
    padding: 3rem;
  }

  .recruit-wantedly__description {
    display: flex;
    gap: 2rem;
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 2rem;
  }

  .recruit-wantedly__link {
    display: flex;
    justify-content: center;
    column-gap: 4rem;
    row-gap: 2rem;
  }

  .recruit-wantedly-link__item {
    display: flex;
    align-items: center;
    gap: 2rem;
  }

  .recruit-wantedly-link__title {
    color: #2A5772;
    font-size: 1.25rem;
    font-weight: 600;
    justify-content: center;
  }

  .recruit-wantedly__illust--image {
    position: absolute;
    right: 10px;
    bottom: -100px;
  }

  @media (max-width: 767px) {
    .recruit__heading {
      margin-bottom: 4rem;
    }

    .recruit-heading__inner {
      flex-direction: column;
      align-items: center;
      row-gap: 1rem;
    }

    .recruit__pc--image{
      display: none;
    }

    .recruit__sp-head--image{
      display: block;
      position: absolute;
      width: 100%;
      top: 50px;
      left: 50%;
      transform: translate(-50%, -80%);
      z-index: -1;
    }

    .recruit-heading__title {
      padding: 1.5rem 0;
    }

    .recruit__sp-foot--image {
      display: block;
      position: absolute;
      width: 100%;
      bottom: 0;
      left: 50%;
      transform: translate(-50%, 80%);
      z-index: -1;
    }

    .recruit__header--image {
      width: 100%;
      max-width: 400px;
    }

    .recruit-message {
      width: 100%;
    }

    .recruit-recruitment__outer {
      flex-direction: column;
    }

    .recruit-recruitment__illust--image {
      max-width: 400px;
      width: 100%;
    }

    .recruit-working__outer {
      align-items: center;
      flex-direction: column;
    }

    .recruit-working__item {
      width: 100%;
    }

    .recruit-working__illust--image {
      max-width: 400px;
      width: 100%;
    }

    .recruit-wantedly {
      padding-bottom: 6rem;
    }

    .recruit-wantedly__body {
      padding-bottom: 4rem;
    }

    .recruit-wantedly__description,
    .recruit-wantedly__link {
      flex-direction: column;
      align-items: center;
    }

    .recruit-wantedly__logo--image {
      max-width: 400px;
      width: 100%;
    }
  }
}

/* ニュース一覧 */
.news-archive {
  padding-bottom: 3rem;

  .news-archive__heading{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
  }

  .news-archive__illust--image {
    width: 55%;
  }

  .news-archive__body {
    margin: 2rem 0 4rem;
  }

  @media (max-width: 991px) {
    .news-archive__body {
      margin-bottom: 2rem;
    }
  }
}

.news-list {
  .news-list__item {
    align-items: center;
    padding: 1rem 1.5rem;
    font-size: 0.875rem;
    border-bottom: 1px solid #CECECE;

    &:first-child {
      border-top: 1px solid #CECECE;
    }
  }

  .news-list-item__head {
    display: flex;
    gap: 1rem;
    align-self: center;
    margin-bottom: 0.25rem;
  }
}

/* ニュース投稿 */
.news {
  padding: 6rem 0 1.5rem;

  .news__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.25rem 0 1.5rem;
  }

  .news__title {
    margin-bottom: 3rem;
  }

  .news__content {
    margin-bottom: 3rem;
    line-height: 1.7;
  }

  .news__back-link {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.875rem;
  }

  @media (max-width: 767px) {
    .news__title {
      margin-bottom: 1.5rem;
    }
  }
}

/* 実績一覧 */
.achievements-archive {
  padding-bottom: 3rem;

  .achievements-archive__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
  }

  .achievements-archive__illust--image {
    width: 65%;
  }

  .achievements-archive__body {
    margin: 2rem 0 4rem;
  }

  @media (max-width: 991px) {
    .achievements-archive__body {
      margin-bottom: 2rem;
    }
  }
}

.achievements-others {
  margin-top: 4rem;
  background-color: #FFFFFF;
  border-radius: 1.25rem;
  padding: 3rem;
  box-shadow: 0 24px 60px rgba(42, 87, 114, 0.08);

  .achievements-others__heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
    margin-bottom: 2.5rem;
  }

  .achievements-others__title {
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: 0.08rem;
    color: #2A5772;
  }

  .achievements-others__lead {
    flex: 0 0 35%;
    font-size: 0.875rem;
    line-height: 1.8;
    color: #545454;
  }

  .achievements-others__list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .achievements-others__item {
    background-color: #F8FBFD;
    border-radius: 1rem;
    border: 1px solid rgba(42, 87, 114, 0.12);
    overflow: hidden;
  }

  .achievements-others__toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 2rem;
    background: none;
    border: none;
    border-radius: 1rem;
    color: #2A5772;
    font-size: 1rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
  }

  .achievements-others__toggle:hover,
  .achievements-others__toggle:focus-visible {
    background-color: rgba(42, 87, 114, 0.08);
    outline: none;
    box-shadow: 0 0 0 4px rgba(42, 87, 114, 0.12);
  }

  .achievements-others__item-title {
    flex: 1;
  }

  .achievements-others__icon {
    position: relative;
    width: 1.5rem;
    height: 1.5rem;
    flex-shrink: 0;
  }

  .achievements-others__icon-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 2px;
    background-color: currentColor;
    border-radius: 999px;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .achievements-others__icon-bar--horizontal {
    transform: translate(-50%, -50%);
  }

  .achievements-others__icon-bar--vertical {
    transform: translate(-50%, -50%) rotate(90deg);
  }

  .achievements-others__toggle.is-open .achievements-others__icon-bar--vertical {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scaleX(0.2);
  }

  .achievements-others__content {
    background-color: #FFFFFF;
    border-top: 1px solid transparent;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.35s ease, opacity 0.35s ease, border-top-color 0.35s ease;
  }

  .achievements-others__content.is-open {
    border-top-color: rgba(42, 87, 114, 0.12);
    opacity: 1;
  }

  .achievements-others__content-body {
    padding: 1.75rem 2rem 2rem;
    font-size: 0.9375rem;
    line-height: 1.9;
    color: #545454;
  }

  .achievements-others__content-body p {
    margin: 0 0 1rem;
  }

  .achievements-others__content-body p:last-child {
    margin-bottom: 0;
  }

  @media (max-width: 991px) {
    padding: 2.5rem;

    .achievements-others__heading {
      flex-direction: column;
      align-items: flex-start;
      gap: 1.5rem;
    }

    .achievements-others__lead {
      width: 100%;
      flex: none;
    }
  }

  @media (max-width: 767px) {
    margin-top: 3rem;
    padding: 2rem;

    .achievements-others__toggle {
      padding: 1.25rem 1.5rem;
      font-size: 0.9375rem;
    }

    .achievements-others__content-body {
      padding: 1.5rem 1.5rem 1.75rem;
      font-size: 0.875rem;
    }
  }
}

.achievements-list {
  display: flex;
  justify-content: space-between;
  row-gap: 3rem;
  flex-wrap: wrap;

  .achievements-list__item {
    font-size: 0.875rem;
  }

  .achievements-list__item--medium {
    width: 48%;
  }

  .achievements-list__item--small {
    width: 32%;
  }

  .achievements-list-item__thumbnail {
    margin-bottom: 0.5rem;
  }

  .achievements-list-item__thumbnail--image {
    width: 100%;
    aspect-ratio: 300 / 169;
    object-fit: cover;
  }

  .achievements-list-item__title {
    margin-bottom: 0.5rem;
  }

  .achievements-list-item__foot {
    display: flex;
    gap: 1rem;
    align-items: center;
  }

  @media (max-width: 767px) {
    .achievements-list__item--medium,
    .achievements-list__item--small {
      width: 100%;
    }
  }
}

/* 実績投稿 */
.achievement {
  padding: 6rem 0 1.5rem;

  .achievement__head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.25rem 0 1.5rem;
  }

  .achievement__title {
    margin-bottom: 3rem;
    font-weight: 500;
  }

  .achievement__thumbnail {
    width: 75%;
    margin: 0 auto 3rem;

    img {
      width: 100%;
      aspect-ratio: 300 / 169;
      object-fit: cover;
    }
  }

  .achievement__content {
    margin-bottom: 3rem;
    line-height: 1.7;
  }

  .achievement__back-link {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.875rem;
  }

  @media (max-width: 767px) {
    .achievement__title {
      margin-bottom: 1.5rem;
    }

    .achievement__thumbnail {
      width: 100%;
    }
  }
}

/* お問い合わせ */
.contact {
  .contact__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
  }

  .contact__illust--image {
    width: 50%;
  }

  .contact__content {
    padding: 0 3rem;
    font-size: 0.875rem;
  }

  .contact-form__item {
    padding: 0.75rem 0;

    p {
      display: flex;
    }
  }

  .contact-form__item--agreement p {
    display: flex;
    justify-content: center;
    align-items: center;

    * {
      width: auto;
    }
  }

  .contact-form__label {
    width: 40%;
    padding-top: 0.375rem;
  }

  .contact-form__label--required::after {
    content: "必須";
    display: inline-block;
    font-size: 0.625rem;
    border-radius: 0.625rem;
    padding: 0.125rem 0.625rem;
    margin-left: 0.5rem;
    color: #2B5671;
    background: #FFFFFF;
  }

  .contact-form__label--checkbox {
    text-align: center;
  }

  .contact-form__button {
    cursor: pointer;
    background-color: transparent;
  }

  .wpcf7-form-control-wrap {
    width: 60%;
  }

  .contact-form__input {
    /* -webkit-appearance: none;
    appearance: none; */
    width: 100%;
    padding: 0.375rem 1rem;
    border: none;

    &:focus-visible {
      outline: none;
    }

    &::placeholder {
      color: #A0A0A0;
    }
  }

  .contact-form__input--checkbox input[type=checkbox] {
    block-size: 1.5em;
    inline-size: 1.5em;
    vertical-align: top;
  }

  .contact__privacy {
    background-color: #FFFFFF;
    padding: 2rem;
    line-height: 2.5;
    margin: 1.5rem 0;
    height: 12rem;
    overflow-y: scroll;
  }

  .contact-form__submit {
    -webkit-appearance: none;
    appearance: none;
    display: flex;
    gap: 1rem;
    justify-content: center;
    align-items: center;
    font-size: 1.25rem;
    color: #2B5671;
    font-weight: 600;
    margin-top: 1.5rem;
  }

  span.wpcf7-spinner {
    display: none;
  }

  @media (max-width: 991px) {
    .contact__content {
      padding: 0;
    }
  }

  @media (max-width: 767px) {
    .contact__content {
      padding: 0 1rem;
    }

    .contact-form__label {
      padding-bottom: 0.75rem;
    }

    .contact-form__item p {
      flex-direction: column;
    }

    .contact-form__label {
      width: 100%;
    }

    .wpcf7-form-control-wrap {
      width: 100%;
    }
  }
}

/* 利用規約 */
.terms {
  h2, li {
    padding: 0.25rem 0;
  }

  ul, ol {
    padding-left: 2rem;
  }

  .terms__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
  }

  .terms__illust--image {
    width: 50%;
    padding-right: 20%;
  }

  .terms__body {
    font-size: 0.875rem;
    line-height: 2.14;
  }
}

/* 資料請求 */
.document-request {
  .document-request__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
  }

  .document-request__illust--image {
    width: 50%;
  }

  .document-request__content {
    padding: 0 3rem;
    font-size: 0.875rem;
  }

  .document-request-form__item {
    padding: 0.75rem 0;

    p {
      display: flex;
    }
  }

  .document-request-form__item--agreement p {
    display: flex;
    justify-content: center;
    align-items: center;

    * {
      width: auto;
    }
  }

  .document-request-form__label {
    width: 40%;
    padding-top: 0.375rem;
  }

  .document-request-form__label--required::after {
    content: "必須";
    display: inline-block;
    font-size: 0.625rem;
    border-radius: 0.625rem;
    padding: 0.125rem 0.625rem;
    margin-left: 0.5rem;
    color: #2B5671;
    background: #FFFFFF;
  }

  .document-request-form__label--checkbox {
    text-align: center;
  }

  .document-request-form__button {
    cursor: pointer;
    background-color: transparent;
  }

  .wpcf7-form-control-wrap {
    width: 60%;
  }

  .document-request-form__input {
    /* -webkit-appearance: none;
    appearance: none; */
    width: 100%;
    padding: 0.375rem 1rem;
    border: none;

    &:focus-visible {
      outline: none;
    }

    &::placeholder {
      color: #A0A0A0;
    }
  }

  .document-request-form__input--checkbox input[type=checkbox] {
    block-size: 1.5em;
    inline-size: 1.5em;
    vertical-align: top;
  }

  .document-request__privacy {
    background-color: #FFFFFF;
    padding: 2rem;
    line-height: 2.5;
    margin: 1.5rem 0;
    height: 12rem;
    overflow-y: scroll;
  }

  .document-request-form__submit {
    -webkit-appearance: none;
    appearance: none;
    display: flex;
    gap: 1rem;
    justify-content: center;
    align-items: center;
    font-size: 1.25rem;
    color: #2B5671;
    font-weight: 600;
    margin-top: 1.5rem;
  }

  span.wpcf7-spinner {
    display: none;
  }

  @media (max-width: 991px) {
    .document-request__content {
      padding: 0;
    }
  }

  @media (max-width: 767px) {
    .document-request__content {
      padding: 0 1rem;
    }

    .document-request-form__label {
      padding-bottom: 0.75rem;
    }

    .document-request-form__item p {
      flex-direction: column;
    }

    .document-request-form__label {
      width: 100%;
    }

    .wpcf7-form-control-wrap {
      width: 100%;
    }
  }
}

/* コンテンツクリエイター向け */
.for-content-creaters {
  .for-content-creaters__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
  }

  .for-content-creaters__illust--image {
    max-width: 50%;
  }

  .for-content-creaters__body {
    margin-top: 3rem;
  }

  .for-content-creaters__subheading {
    font-size: 1.875rem;
    font-weight: 600;
    color: #2B5671;
    text-align: center;
    margin-bottom: 4rem;
  }

  .for-content-creaters__subheading--lead {
    font-weight: 600;
    color: #2B5671;
    letter-spacing: 0.14rem;
    text-align: center;
    word-break: keep-all;
    margin-bottom: 2rem;
  }

  .for-content-creaters-strength__inner {
    display: flex;
    justify-content: space-between;
    row-gap: 1.5rem;
  }

  .for-content-creaters-strength__item {
    width: 31%
  }

  .for-content-creaters-strength__item--image {
    display: block;
    height: 13.75rem;
    margin: 0 auto 2rem;
  }

  .for-content-creaters-support {
    padding-bottom: 2rem;
  }

  .for-content-creaters-support__inner {
    display: flex;
    gap: 1rem;
  }

  .for-content-creaters-support__description {
    flex: 1;

    ul {
      list-style-type: none;
    }

    li {
      margin-bottom: 0.75rem;
      display: flex;
    }

    li::before {
      font-family: "Font Awesome 6 Free";
      content: "\f00c";
      margin-right: 0.75rem;
      color: #2B5671;
      font-weight: 900;
    }

    .for-content-creaters-support__item--title {
      font-weight: 600;
      color: #2B5671;
    }

    li p {
      font-size: 0.875rem;
      margin-top: 0.5rem;
    }

    .for-content-creaters-support__item--supplement {
      font-size: 0.875rem;
    }
  }

  .for-content-creaters-support__illust {
    width: 25%;
  }

  .for-content-creaters-support__illust--image {
    width: 100%;
  }

  .for-content-creaters-service__inner {
    display: flex;
    justify-content: space-between;
  }

  .for-content-creaters-service__item {
    width: 30%;
    position: relative;

    &::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      margin: 0 auto;
      background-color: #FFFFFF;
      width: min(15rem, 100%);
      aspect-ratio: 1/1;
      border-radius: 50%;
      z-index: -1;
    }

    p {
      font-size: 0.875rem;
      line-height: 1.7;
    }
  }

  .for-content-creaters-service-item__number {
    position: absolute;
    top: 0.75rem;
    left: calc(50% - (min(15rem, 100%) / 2));
    font-size: 2.5rem;
    font-family: "Jost", sans-serif;
    color: #2B5671;
  }

  .for-content-creaters-service-item__title {
    font-weight: 600;
    color: #2B5671;
    letter-spacing: 0.14rem;
    text-align: center;
    margin: 1.75rem 0 1rem;
  }

  .for-content-creaters-service__item--image {
    display: block;
    width: 90%;
    height: 13.75rem;
    margin: 0 auto 2rem;
    object-fit: contain;
  }

  .for-content-creaters-service-item__icon {
    margin-top: 5.5rem;

    &::before {
      font-family: "Font Awesome 6 Free";
      content: "\f0da";
      font-size: 2rem;
      margin: auto;
      color: #2B5671;
      font-weight: 900;
    }
  }

  .for-content-creaters-price__inner {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
  }

  .for-content-creaters-price__body {
    flex: 1;

    p {
      font-size: 0.875rem;
      line-height: 2.4;
    }

    .for-content-creaters-price__note {
      font-size: 0.75rem;
      line-height: 1.5;
      margin-bottom: 0.125rem;
    }
  }

  .for-content-creaters-price__unit {
    margin-bottom: 1rem;
  }

  .for-content-creaters-price__unit--flex {
    display: flex;
    gap: 1rem;
  }

  .for-content-creaters-price__subunit {
    width: 50%;
  }

  .for-content-creaters-price__label {
    text-align: center;
    padding: 0.75rem 0;
    margin-bottom: 0.5rem;
    font-weight: 500;
    font-size: 0.875rem;
  }

  .for-content-creaters-price__label--primary {
    background-color: #2B5671;
    color: #FFFFFF;
  }

  .for-content-creaters-price__label--secondary {
    background-color: #EBEBEB;
  }

  .for-content-creaters-price__item--image {
    display: block;
    width: 40%;
    margin: auto 0;
  }

  @media (max-width: 991px) {
    .for-content-creaters-price__item--image {
      width: 50%;
    }
  }

  @media (max-width: 767px) {
    .for-content-creaters__heading {
      flex-direction: column-reverse;
    }

    .for-content-creaters__illust--image {
      max-width: 100%;
    }

    .for-content-creaters__subheading {
      font-size: 1.25rem;
      margin-bottom: 1rem;
    }

    .for-content-creaters-strength__inner {
      flex-direction: column;
      margin-top: 3rem;
    }

    .for-content-creaters-strength__item {
      width: 100%
    }

    .for-content-creaters-support__illust {
      display: none;
    }

    .for-content-creaters-service__inner {
      flex-direction: column;
    }

    .for-content-creaters-service__item {
      width: 100%
    }

    .for-content-creaters-service-item__icon {
      margin: 0 auto;

      &::before {
        content: "\f0d7";
      }
    }

    .for-content-creaters-price__inner {
      flex-direction: column;
    }

    .for-content-creaters-price__item--image {
      width: 100%;
    }
  }
}

/* 404 */
.not-found{
  padding-top: 10rem;

  .not-found__outer {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin-top: 3rem;
    row-gap: 1.5rem;
  }

  .not-found__subheading {
    color: #2A5772;
    margin-bottom: 1.5rem;
  }

  .not-found__description {
    font-size: 0.875rem;
    line-height: 2;
  }

  .not-found__link-list {
    margin-left: auto;
  }

  .not-found__link {
    font-size: 1.125rem;
    font-weight: 600;
    text-align: end;
    color: #2A5772;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
  }
}

.view-more-link {
  width: 5rem;
  height: 5rem;
  font-size: 0.75rem;

  @media (max-width: 767px) {
    scale: 0.7;
  }
}

.view-more-link-simple {
  width: 2.5rem;
  height: 2.5rem;
}

.view-more-link,
.view-more-link-simple {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: 1px solid #2A5772;
  border-radius: 50%;
  color: #2A5772;
  text-decoration: none;

  .arrow {
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0 0 0 16px;
    vertical-align: middle;
    text-decoration: none;
  }

  .arrow::before,
  .arrow::after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
  }

  .arrow::after {
    left: 56%;
    top: -45%;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 1.5px solid #2A5772;
    border-right: 1.5px solid #2A5772;
  }

  .arrow::before {
    width: 1.5rem;
    height: 1px;
    background: #2A5772;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
  }

  .icon {
    overflow: hidden;
    position: relative;
    width: 1.42rem;
    height: 1.42rem;
    line-height: 1;
    margin-bottom: 0.125rem;
  }

  .arrow-before,
  .arrow-after {
    position: absolute;
    top: 0;
    right: 0;
    animation-fill-mode: both;
    animation-duration: 0.6s;
  }

  .arrow-after {
    transform: translate(-100%, 100%);
  }

  &:hover .arrow-before {
    animation-name: transformTopRightBottomLeft;
    animation-delay: 0s;
  }

  &:hover .arrow-after {
    animation-name: transformBottomLeftTopRight;
    animation-delay: 0.2s;
  }
}

@-webkit-keyframes bar01 {
  0% {
    -webkit-transform: translateY(7px) rotate(30deg);
  }

  50% {
    -webkit-transform: translateY(7px) rotate(0);
  }

  100% {
    -webkit-transform: translateY(0) rotate(0);
  }
}

@keyframes bar01 {
  0% {
    transform: translateY(7px) rotate(30deg);
  }

  50% {
    transform: translateY(7px) rotate(0);
  }

  100% {
    transform: translateY(0) rotate(0);
  }
}

@-webkit-keyframes bar03 {
  0% {
    -webkit-transform: translateY(-7px) rotate(-30deg);
  }

  50% {
    -webkit-transform: translateY(-7px) rotate(0);
  }

  100% {
    -webkit-transform: translateY(0) rotate(0);
  }
}

@keyframes bar03 {
  0% {
    transform: translateY(-7px) rotate(-30deg);
  }

  50% {
    transform: translateY(-7px) rotate(0);
  }

  100% {
    transform: translateY(0) rotate(0);
  }
}

@-webkit-keyframes active-bar01 {
  0% {
    -webkit-transform: translateY(0) rotate(0);
  }

  50% {
    -webkit-transform: translateY(7px) rotate(0);
  }

  100% {
    -webkit-transform: translateY(7px) rotate(30deg);
  }
}

@keyframes active-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }

  50% {
    transform: translateY(7px) rotate(0);
  }

  100% {
    transform: translateY(7px) rotate(30deg);
  }
}

@-webkit-keyframes active-bar03 {
  0% {
    -webkit-transform: translateY(0) rotate(0);
  }

  50% {
    -webkit-transform: translateY(-7px) rotate(0);
  }

  100% {
    -webkit-transform: translateY(-7px) rotate(-30deg);
  }
}

@keyframes active-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }

  50% {
    transform: translateY(-7px) rotate(0);
  }

  100% {
    transform: translateY(-7px) rotate(-30deg);
  }
}

@keyframes transformBottomLeftTopRight {
  0% {
    transform: translate(-100%, 100%);
  }

  100% {
    transform: translate(0, 0);
  }
}

@keyframes transformTopRightBottomLeft {
  0% {
    transform: translate(0, 0);
  }

  100% {
    transform: translate(100%, -100%);
  }
}

  .bi-case-study__list {
    margin-top: 3rem; /* 見出しとのスペース */
  }

  .bi-case-study__item {
    display: flex;
    /* flex-wrap: wrap; PCでは折り返さないようにするためコメントアウトまたは削除 */
    gap: 40px; /* テキストと画像の間のスペース */
    margin-bottom: 4rem; /* 各事例間のスペース */
    align-items: center;
  }

  /* テキストコンテンツ部分 */
  .bi-case-study__text-content {
    flex: 1 1 55%; /* テキスト側の幅を少し広めに (調整可能) */
    order: 1; /* 表示順序 (テキストが左) */
  }

  /* 画像コンテンツ部分 */
  .bi-case-study__image-content {
    flex: 1 1 40%; /* 画像側の幅 (調整可能) */
    order: 2; /* 表示順序 (画像が右) */
    display: flex;
    justify-content: center;
    align-items: flex-start;
  }

  .bi-case-study__number {
    font-size: 2.5rem; /* 番号のサイズ */
    font-weight: bold;
    color: #ccc; /* 番号の色 (デザインに合わせて変更) */
    margin-bottom: 0.5rem;
    line-height: 1;
  }

  .bi-case-study__company-name {
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
  }

  .bi-case-study__title {
    font-size: 1.2rem;
    font-weight: bold;
    margin-bottom: 1rem;
    line-height: 1.6;
  }

  .bi-case-study__description {
    font-size: 0.9rem;
    line-height: 1.8;
  }

  .bi-case-study__image {
    max-width: 100%; /* 親要素の幅を超えないようにする */
    height: auto;    /* アスペクト比を維持 */
    display: block;
    /* object-fit: contain; /* 画像がコンテナに収まるように、必要に応じて */
    /* max-height: 400px; /* 画像の最大高さを指定する場合 (例) */
  }

  .bi-case-study__image-placeholder {
    width: 100%;
    min-height: 200px; /* プレースホルダーの最小高さ */
    aspect-ratio: 16 / 9; /* 画像がない場合の比率 */
    background-color: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    border: 1px dashed #ccc;
  }

  /* iframeを横並びにするためのコンテナ */
  .canva-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 20px;
    margin-top: 1.6em;
    margin-bottom: 3rem;
  }

  .canva-embed-wrapper {
    position: relative;
    width: 100%;
    padding-top: 56.25%; /* 16:9 Aspect Ratio */
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 2px 8px 0 rgba(63,69,81,0.16);
    will-change: transform;
  }

  .canva-embed-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
  }


  /* スマホ表示用の調整 */
  @media (max-width: 767px) {
    .bi-case-study__item {
      flex-direction: column; /* 縦積みに変更 */
      gap: 20px;
      margin-bottom: 3rem;
    }
    /* スマホではテキストの後に画像が来るように変更 */
    .bi-case-study__text-content {
      order: 1; /* テキストを先に */
      flex-basis: 100%; /* 幅を100%に */
    }
    .bi-case-study__image-content {
      order: 2; /* 画像を後に */
      flex-basis: 100%; /* 幅を100%に */
      margin-top: 1.5rem; /* テキストと画像の間にスペースを追加 */
    }
    .bi-case-study__number {
      font-size: 2rem;
    }
    .bi-case-study__title {
      font-size: 1.1rem;
    }
    .canva-row {
       grid-template-columns: 1fr; /* スマホでは常に1カラム */
       gap: 1.6em; /* 縦の隙間 */
    }
  }


  /* ブログ */
.section-blog {
  padding: 3rem 0;

  @media (max-width: 767px) {
    padding: 3rem 0;
  }
}

.blog-card__content {
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  /* ↓ 既存のスタイルがあれば、それに追加・調整 */
}

.blog-card__categories {
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.blog-card__category.category {
  font-size: 0.75rem; /* デザイン案のタグは小さめ */
  padding: .5rem .7rem;
  background-color: #0176d3;
  color: white; /* デザイン案の青みがかったタグの文字色 */
  border-radius: 4px;
  font-weight: 800; /* 少し太字に */
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  border-radius: .25rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  letter-spacing: .05rem;
  line-height: 1;
  -webkit-text-decoration: none;
  text-decoration: none;
}

.blog-card__title { /* .achievements-list-item__title と共通化している場合あり */
  font-size: 1.15rem; /* デザイン案から少し小さめに調整 */
  font-weight: 700;
  line-height: 1.4;
  color: #2A5772;
  margin-bottom: 0.5rem; /* タイトルとメタ情報の間の余白を調整 */
}

.blog_thumbnail {
  width: 100%; /* 親要素 (achievements-list__item) の幅に合わせる */
  overflow: hidden; /* 画像がはみ出さないように */
  background-color: #f0f0f0; /* 画像がない場合や読み込み中の背景色 */
  /* アスペクト比を維持する方法1: padding-top トリック (高さを幅に対する割合で指定) */
  position: relative;
  height: 0;
  padding-top: 56.25%; /* 16:9 の場合 (9 / 16 * 100%) */
  border-radius: 1rem;
  margin-bottom: 1.25rem !important;
  /* padding-top: 75%; */ /* 4:3 の場合 (3 / 4 * 100%) */
  /* padding-top: 100%; */ /* 1:1 の場合 (正方形) */
}

.blog__thumbnail--image {
  /* アスペクト比を維持する方法1: padding-top トリックを使う場合 */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog__title {
  gap: 1.5rem;
  font-size: 1.25rem;
  font-weight: bold;
  letter-spacing: 0.14rem;
}

.blog-card__excerpt {
  font-size: 0.875rem; /* デザイン案の本文に近いサイズ */
  line-height: 1.7;   /* ★ご要望の行間 */
  color: #545454;     /* 本文色 */
  margin-top: auto;   /* 残りのスペースを埋めて、フッター要素が下に来るようにする（カードの高さを揃えたい場合） */
}

.blog-card__meta {
  display: flex;
  align-items: center;
  margin-bottom: 0.75rem; /* メタ情報と抜粋の間の余白 */
}

.blog-card__author {
  display: flex;
  align-items: center;
}

.blog-card__author-avatar {
  height: 2rem;
  margin-right: .75rem;
  width: 2rem;
  border-radius: 50%;
}

.blog-card__author-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: #032d60;
  letter-spacing: .07px;
  line-height: 1.4;
  margin-right: .5rem;
  position: relative;
  -webkit-text-decoration: underline;
  text-decoration: underline;
  text-decoration-color: #0d9dda;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  white-space: nowrap;
}

/* DXページ内の関連LPセクションのタイトル下などに適度なマージン */
.related-lp-section .page-subheading {
  margin-bottom: 2.5rem; /* 例 */
}

/* DXページ内LP一覧の3カラム表示用グリッドスタイル */
.lp-grid.achievements-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* PCでは3カラム */
  gap: 1.5rem; /* アイテム間の隙間 (実績一覧より少し狭くする例) */
}

/* DXページ内LP一覧の各カードアイテムのスタイル */
.lp-grid .blog-card.achievements-list__item {
  /* 既存の .blog-card や .achievements-list__item のスタイルを継承しつつ、
     必要であればここで上書きや微調整を行います。
     例えば、実績一覧とカードのデザインを少し変えたい場合など。
     基本的には既存のスタイルが適用されるはずです。 */
}

/* DXページ内LP一覧のサムネイル画像のコンテナ */
.lp-grid .blog-card__thumbnail {
  width: 100%;
  aspect-ratio: 16 / 9; /* 画像のアスペクト比を16:9に固定 */
  overflow: hidden;
  background-color: #f0f0f0; /* 画像読み込み中の背景 */
  border-top-left-radius: 8px; /* カードの角丸に合わせる */
  border-top-right-radius: 8px;
}

/* DXページ内LP一覧のサムネイル画像自体 */
.lp-grid .blog-card__thumbnail-image {
  width: 100%;
  height: 100%;
  object-fit: cover; /* アスペクト比を保ちつつコンテナを埋める */
  display: block;
}

/* レスポンシブ対応 (タブレットで2カラム、スマホで1カラムなど) */
@media (max-width: 991px) { /* タブレットサイズ例 */
  .lp-grid.achievements-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
}

@media (max-width: 767px) { /* スマホサイズ例 */
  .lp-grid.achievements-list {
    grid-template-columns: 1fr; /* 1カラム */
    gap: 1.5rem;
  }
  /* スマホではカード内の余白を少し調整するなどの対応も可能 */
  .lp-grid .blog-card__content {
    padding: 0.8rem 1rem;
  }
  .lp-grid .blog-card__title {
    font-size: 1rem;
  }
}

.blog-page-title {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .1em;
}

/* 取引先ロゴ セクション */
.home-clients {
  padding: 4rem 0; /* 他の home セクションと同様のパディング量に調整 */
  /* background-color: #your-desired-bg-color; /* 必要であれば背景色を指定 */
}

.home-clients__head {
  /* display: flex; */ /* 右側にリンクがない場合は不要かもしれません */
  /* justify-content: space-between; */
  /* align-items: center; */
  margin-bottom: 2rem; /* 見出しの下のスペース */
}

/* もし「Solve the problem」のように見出しを中央揃えにしたい場合 */
.home-clients__head .page-subheading {
  text-align: center; /* page-subheading--center を使っても良いでしょう */
}
/* .home-clients__head .page-subheading--lead は既に block になっているはずです */


.client-logos__list {
  display: flex;
  flex-wrap: wrap; /* ロゴが画面幅に応じて折り返すようにする */
  justify-content: center; /* ロゴ群を中央揃え（他には flex-start, space-around など） */
  align-items: center; /* ロゴの縦方向の中央揃え */
  gap: 2rem 3rem; /* ロゴ間のスペース（縦 横）*/
}

.client-logos__item {
  /* ロゴのサイズ調整のため、flex-basis や max-width を指定することも可能です */
  /* 例：大きな画面で横に5つ程度並べる場合 */
  /* flex-basis: calc(20% - 3rem); */ /* (100% / 5) - 横gap */
  text-align: center; /* 画像を中央に配置 */
}

.client-logos__image {
  max-height: 60px; /* ロゴの高さを制御（幅は自動調整されます）*/
  max-width: 180px; /* 横長のロゴが幅を取りすぎないように制限 */
  width: auto;
  height: auto; /* アスペクト比を保つため */
  object-fit: contain; /* ロゴ全体が欠けることなく表示されるように */
  vertical-align: middle; /* 他の要素と並んだ際の縦位置調整 */
}

/* ロゴのレスポンシブ対応（必要に応じて調整） */
@media (max-width: 767px) {
  .home-clients {
    padding: 2.5rem 0;
  }
  .client-logos__list {
    gap: 1.5rem 2rem;
  }
  /* .client-logos__item { */
    /* 例：モバイルで1行に2～3個のロゴを表示する場合 */
    /* flex-basis: calc(33.33% - 2rem); */
  /* } */
  .client-logos__image {
    max-height: 45px;
  }
}

@media (max-width: 480px) {
  /* .client-logos__item { */
    /* flex-basis: calc(50% - 2rem); */ /* 特に小さい画面で1行に2個など */
  /* } */
   .client-logos__image {
    max-height: 40px;
  }
}

/* ブログの検索フォーム */
/* style.css または <style> タグ内に追記 */
.blog-search-bg {
  background-color: #f8f9fa;
  padding: 40px 20px 0px 20px;
}
.blog-search-form-container {
    padding-top: 20px;
    max-width: 600px; /* フォームの最大幅 */
    margin-left: auto;
    margin-right: auto;
}

.blog-search-form {
    position: relative;
    display: flex;
}

.blog-search-form .search-field {
    width: 100%;
    padding: 12px 45px 12px 20px; /* 右側にボタンのスペースを確保 */
    font-size: 16px;
    border: 1px solid #ccc;
    border-radius: 30px; /* 角を丸くする */
    -webkit-appearance: none;
    appearance: none;
}
.blog-search-form .search-field:focus {
    outline: none;
    border-color: #1976d2; /* フォーカス時の色 */
    box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2);
}

.blog-search-form .search-submit {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 45px; /* ボタンの幅 */
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    color: #757575;
    font-size: 16px;
}
.blog-search-form .search-submit:hover {
    color: #1976d2;
}
