@media (max-width: 1112px) {
  .pc {
    display: none !important;
  }

  .sp {
    display: block !important;
  }

  body {
    font-size: 14px;
  }

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

  header .contact-header {
    display: none;
  }

  header {
    height: var(--header-sp);
    padding: 0 var(--gap-sp);
  }

  .logo {
    top: calc((var(--header-sp) - var(--logo-sp)) / 2);
    left: var(--gap-sp);
    width: auto;
    height: var(--logo-sp);
  }

  .nav-toggle {
    display: block;
  }

  main {
    margin-top: var(--header-sp);
  }

  .nav-toggle {
    cursor: pointer;
    overflow: hidden;
    position: relative;
    width: 33px;
    height: 20px;
    background-color: transparent;
    display: block;
    padding: 20px 0;
    z-index: 12;
  }

  .nav-toggle::after,
  .nav-toggle::before {
    position: absolute;
    top: calc(50% - 1px);
    content: "";
    width: 33px;
    height: 2px;
    display: block;
    background: var(--color-primary);
  }

  .mobile-header.active {
    top: var(--header-sp);
  }

  .mobile-header {
    height: calc(100vh - var(--header-sp));
  }

  .mobile-header nav.footer-nav ul li {
    line-height: 44px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0;
  }

  .mobile-header .icon_plus {
    top: 5px;
  }

  .mobile-header .contact-header {
    height: 55px;
    margin-top: 44px;
  }

  .mobile-header .contact-header a {
    gap: 0 5.5px;
    margin-top: 0px;
  }

  .contact-header-image {
    overflow: hidden;
    position: relative;
    width: 24px;
    height: auto;
  }

  .contact-header-text {
    width: max-content;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .mobile-header .submenu-item {
    letter-spacing: 0 !important;
  }

  .mobile-header .other-links {
    margin-top: 5.5px;
    margin-bottom: 0;
    font-size: 13px;
    padding: 1em 0;
  }

  .mobile-header .icon_instagram {
    overflow: hidden;
    position: relative;
    width: 27.5px;
    height: auto;
  }

  .mobile-header .copyright {
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 375px;
    margin: 0 auto;
    height: auto;
    padding: 0 var(--gap-sp);
    margin-top: 22px;
    margin-bottom: 22px;
    font-size: 11px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0;
  }

  .mobile-container {
    width: 100%;
    max-width: 375px;
    margin: 0 auto;
    height: auto;
    padding: 0 var(--gap-sp);
  }

  .copyright-mobile {
    display: block;
  }

  section.key-visual {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .slider {
    display: block;
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
  }

  .control-panel {
    overflow: visible;
    position: relative;
    bottom: auto;
    left: auto;
    width: 100%;
    height: 44px;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1;
    order: 2;
    opacity: 1;
  }

  .play-number {
    display: none;
  }

  .slick-prev {
    cursor: pointer;
    overflow: hidden;
    position: absolute;
    bottom: -32px;
    left: calc(50% - 105px);
    width: max-content;
    height: auto;
    z-index: 2;
    padding-left: 28px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    z-index: 3;
    opacity: 1;
  }

  .slick-prev::before {
    content: '';
    overflow: hidden;
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    background-image: url(../images/common/movie_prev.svg);
    background-position: 0% 50%;
    background-size: 18px 18px;
    background-repeat: no-repeat;
  }

  .slick-next {
    cursor: pointer;
    overflow: hidden;
    position: absolute;
    bottom: -32px;
    left: calc(50% + 39px);
    width: max-content;
    height: auto;
    z-index: 2;
    padding-right: 28px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    text-align: right;
    z-index: 3;
    opacity: 1;
  }

  .slick-next::before {
    content: '';
    overflow: hidden;
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    background-image: url(../images/common/movie_next.svg);
    background-position: 100% 50%;
    background-size: 18px 18px;
    background-repeat: no-repeat;
  }

  .play-button {
    cursor: pointer;
    overflow: hidden;
    position: absolute;
    top: 17px;
    left: 0;
    right: 0;
    margin: auto;
    width: 14px;
    height: 14px;
    background-image: url(../images/common/movie_play.svg);
    background-position: 5% 50%;
    background-size: contain;
    background-repeat: no-repeat;
  }

  section.footer-contact {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    color: #fff;
    margin-top: 0;
    padding-bottom: 0;
    z-index: 1;
  }

  ection.footer-contact .section-heading {
    background-color: var(--color-primary);
    color: #fff;
    height: auto;
    padding: 55px var(--gap-sp);
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: 33px;
  }

  section.footer-contact .container {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 100%;
    padding: 0;
    margin: 0 auto;
  }

  section.footer-contact .section-heading {
    background-color: var(--color-primary);
    color: #fff;
    height: auto;
    padding: 55px var(--gap-sp);
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
  }

  section.footer-contact .section-title {
    overflow: hidden;
    position: relative;
    width: 331px;
    height: auto;
  }

  section h2 {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
  }

  section h3 {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 5.5px;
  }

  section h4 {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 11px;
  }

  button.read-more {
    width: 331px;
    height: 55px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    border: solid 1px var(--color-primary);
    width: 331px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 11px;
    margin: 0 auto;
  }

  .section-heading button.read-more {
    border: solid 1px #fff;
    margin-top: 11px;
  }

  button.read-more img.sp {
    overflow: hidden;
    position: relative;
    width: 27.5px;
    height: auto;
  }

  footer {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 0;
  }

  .footer-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-direction: column;
  }

  .footer-left {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-image: url(../images/common/footer_bg.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding-top: 0;
    min-height: auto;
    padding: 33px 0 77px 0;
    order: 2;
  }

  .footer-right {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-secondary);
    padding: 55px var(--gap-sp);
    color: #fff;
    order: 1;
  }

  .footer-right-contact {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 331px;
    margin: 0 auto;
  }

  .footer-right-heading {
    font-size: 14px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.05em;
    margin: 0 auto 5.5px auto;
    max-width: 331px;
  }

  .footer-right-contact-tel {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 11px;
    background-color: var(--color-primary);
    color: #fff;
    margin-bottom: 11px;
  }

  p {
    font-size: 14px;
    line-height: 1.75;
  }

  .footer-right p {
    font-size: 13px;
  }

  .footer-right-hr {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 1px;
    background-color: #fff;
    margin: 22px auto;
    max-width: 331px;
  }

  .footer-right-partners {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    border: solid 1px #fff;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 11px;
    margin-bottom: 22px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    max-width: 331px;
    margin: 0 auto 22px auto;
  }

  .footer-right-instagram {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    border: solid 1px #fff;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 11px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    max-width: 331px;
    margin: 0 auto;
  }

  footer .container {
    padding: 0 var(--gap-sp);
    max-width: 375px;
    margin: 0 auto;
  }

  .footer-company {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 0;
  }

  footer nav.footer-nav {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: none;
  }

  .footer-company-logo {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    float: none;
  }

  .footer-left p {
    font-size: 12px;
  }

  .footer-company-logo em {
    font-size: 18px;
    font-weight: 700;
    font-style: normal;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .footer-company-address {
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    float: none;
    margin-right: 0;
    margin-top: 11px;
  }

  .footer-company-hr {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 1px;
    background-color: var(--color-font);
    margin: 22px auto;
    max-width: 331px;
    display: none;
  }

  .copyright-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    padding-right: 0;
    flex-direction: column;
    margin-bottom: 22px;
  }

  .copyright-wrapper {
    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 22px;
  }

  .copyright {
    order: 2;
    margin-top: 11px;
  }

  .other-links {
    order: 1;
    font-size: 13px;
  }

  .page-top {
    display: flex;
  }

  section.overview h2 {
    font-size: 48px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-gray);
    margin-top: 0;
    margin-bottom: 22px;
  }

  section.overview h3 {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 0;
    margin-bottom: 11px;
  }

  section.overview h4 {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-top: 0;
  }

  section.overview h5 {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 16.5px;
  }

  ul.anchor-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    min-width: 331px;
    flex-wrap: wrap;
    margin: 33px auto 0 auto;
  }

  .home ul.anchor-list {
    margin-top: 33px;
  }

  ul.anchor-list a {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: 55px;
    font-size: 15px;
    font-weight: 700;
    border: solid 1px var(--color-primary);
    background-color: #fff;
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 331px;
  }

  section#news {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .container {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    max-width: var(--container);
    padding: 0 var(--gap-sp);
    margin: 0 auto;
  }

  section#news h2 {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
  }

  section#news h3 {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 5.5px;
  }

  section#news p {
    margin-top: 14px;
  }

  ul.news-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 22px;
    margin-bottom: 33px;
  }

  ul.news-list li {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    border-bottom: solid 1px var(--color-border);
    box-sizing: border-box;
    padding: 14px 22px 14px 0;
    background-image: url(../images/common/list_next.svg);
    background-position: 100% center;
    background-repeat: no-repeat;
    background-size: 16.5px 16.5px;
  }

  ul.news-list li time {
    display: block;
    overflow: hidden;
    position: relative;
    width: max-content;
    height: auto;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
    float: left;
    margin-top: 3px;
    margin-right: 14px;
  }

  ul.news-list li .news-term-link {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: auto;
    display: block;
  }

  ul.news-list li .news-term {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: 22px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    background-color: var(--color-primary);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 0;
    float: left;
    padding: 5.5px 11px;
  }

  ul.news-list li .news-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-left: 0;
    float: none;
    margin-top: 0;
    padding-top: 11px;
  }

  section#products {
    background-color: var(--color-alternate);
    padding: 55px 0;
  }

  ul.products-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 33px;
    margin-bottom: 33px;
  }

  ul.products-list li {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: auto;
  }

  ul.products-list li .products-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  section#rebuild {
    background-color: #fff;
    padding: 33px 0;
  }

  section#rebuild-overview {
    padding: 33px 0 0 0;
  }

  section#rebuild-overview .container {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    flex-direction: column;
  }

  .rebuild-overview-graph {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 0;
    max-width: 331px;
    margin: 0 auto 11px auto;
  }

  .rebuild-overview-point {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 11px;
    margin-bottom: 33px;
  }

  .rebuild-overview-point-panel {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 11px 22px;
    background-color: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
  }

  .rebuild-overview-point-key {
    overflow: hidden;
    position: relative;
    width: 88px;
    height: auto;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
  }

  .rebuild-overview-point-key p {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
  }

  .rebuild-overview-point-value {
    overflow: hidden;
    position: relative;
    width: calc(100% - 88px);
    height: auto;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
  }

  .rebuild-overview-point-value p {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
  }

  .rebuild-overview-point-panel:hover {
    transform: scale(1);
    z-index: 2;
  }

  .rebuild-overview-point:hover .rebuild-overview-point-panel:not(:hover) {
    transform: scale(1);
    filter: brightness(0.82);
  }

  ul.rebuild-section-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 33px;
    margin-top: 33px;
    margin-bottom: 33px;
  }

  .rebuild-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 44px;
    border-left: solid 6px var(--color-primary);
    box-sizing: border-box;
    padding-left: 14px;
    color: var(--color-primary);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .rebuild-section-workflow {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-alternate);
    padding: 22px 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 22px;
  }

  .graph-next {
    overflow: hidden;
    position: relative;
    width: 8px;
    height: auto;
  }

  .rebuild-section-workflow-panel {
    overflow: hidden;
    position: relative;
    width: 92px;
    height: 92px;
    border: solid 1px var(--color-primary);
    box-sizing: border-box;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-align: center;
  }

  .rebuild-section-workflow-panel p {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .rebuild-section-workflow-number {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .rebuild-section-images {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 33px 11px;
    margin-top: 22px;
  }

  .rebuild-section-image {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: auto;
    padding-bottom: 11px;
    border-bottom: solid 1px var(--color-border);
    box-sizing: border-box;
  }

  .rebuild-section-image-caption {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .triangle_down {
    overflow: hidden;
    position: relative;
    width: 27.5px !important;
    height: 11px !important;
    aspect-ratio: none !important;
    margin: 11px auto;
    object-fit: contain !important;
  }

  section#rebuild-section {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: #fff;
    padding: 0 0 55px 0;
  }

  section#seismic-countermeasures {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-alternate);
    padding: 55px 0;
  }

  section#research {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: #fff;
    padding: 55px 0;
  }

  .research-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    border-left: solid 6px var(--color-primary);
    box-sizing: border-box;
    padding-left: 14px;
    color: var(--color-primary);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 11px;
  }

  .research-section-title span br {
    display: none;
  }

  section#development {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-alternate);
    padding: 55px 0;
  }

  .rebuild-section-description h5 {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.05em;
    color: var(--color-font);
  }

  .footer-recruit {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    background-image: none;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    display: block;
  }

  .footer-recruit-label {
    overflow: hidden;
    position: relative;
    width: auto;
    height: auto;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
  }

  .footer-recruit-title {
    overflow: hidden;
    position: relative;
    width: auto;
    height: auto;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 5.5px;
  }

  .footer-recruit-panel {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: #fff;
    padding: 55px 22px 33px 22px;
    margin-left: calc((100% - 375px) / 2);
    margin-right: 137px;
    max-width: 375px;

  }

  section.footer-recruit {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    background-image: none;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    display: block;
    background-image: url(../images/home/home_47_sp.png);
    background-size: contain;
    background-position: 100% center;
    background-repeat: no-repeat;
  }

  section.footer-recruit button.read-more {
    width: 100%;
    max-width: 331px;
    margin: 22px 0;
  }

  section.visual {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 220px;
    background-size: cover;
    background-position: center center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .visual-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 0 var(--gap-sp);
  }

  section.visual h1 {
    font-size: 32px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
  }

  .visual-rebuild h1 span {
    font-size: 36px;
  }

  .visual-rebuild h1 small {
    font-size: 28px;
    vertical-align: text-top;
    line-height: 1;
  }

  section.summary {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 33px 0;
  }

  .wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: 0 auto;
  }

  section.summary h2 {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .page-id-96 section#rebuild-overview {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-alternate);
    padding: 33px 0 0 0;
  }

  .page-id-96 ul.anchor-list a {
    width: 100%;
  }

  ul.anchor-list li span {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    display: block;
    overflow: hidden;
    position: absolute;
    top: calc(50% - 9px);
    left: 22px;
  }

  section.number-section1 .number-section-title,
  section.number-section2 .number-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16.5px;
  }

  section.number-section1 .number-section-title h2,
  section.number-section2 .number-section-title h2 {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 7px;
  }

  section.number-section1 .number-section-title span,
  section.number-section2 .number-section-title span {
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-primary);
  }

  .page-id-96 .rebuild-section-image {
    width: 325px;
  }

  .rebuild-section-image:nth-child(n+4) .research-section-description p {
    min-height: auto;
  }

  .research-section-description p {
    min-height: auto;
    margin-bottom: 14px;
  }

  .page-id-96 .rebuild-section-image {
    padding-bottom: 11px;
  }

  .page-id-96 .rebuild-section-image img {
    overflow: hidden;
    position: absolute;
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3/2;
    bottom: 11px;
  }

  section.number-section2 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
    background-color: var(--color-alternate);
  }

  section.number-section2 .container {
    padding: 0;
  }

  section.number-section2 .container.normal-container {
    padding: 0 var(--gap-sp);
  }

  section.number-section2 .number-section-title {
    padding: 0 var(--gap-sp);
  }

  .number-section2-graph-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    overflow-x: scroll;
    margin-bottom: 33px;
    margin-top: 22px;
  }

  .number-section2-graph {
    overflow: hidden;
    position: relative;
    width: Max(100%, 660px);
    max-width: Max(100%, 660px) !important;
    height: auto;
    margin-left: 22px;
    padding-bottom: 0;
  }

  .number-section2-column-left-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    border-left: solid 6px var(--color-primary);
    box-sizing: border-box;
    padding-left: 14px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-bottom: 22px;
  }

  .number-section2-column {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: space-between;
    gap: 33px;
    padding-top: 33px;
    border-top: solid 1px var(--color-border);
    box-sizing: border-box;
    flex-direction: column;
  }

  .number-section2-column-left {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
  }

  .number-section2-column-right {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
    gap: 11px;
  }

  .number-section2-column-right-caption-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 11px;
  }

  .number-section2-column-right-caption {
    overflow: hidden;
    position: relative;
    width: Max(calc(50% - 5.5px), 331px);
    height: auto;
    color: #fff;
    background-color: var(--color-primary);
    padding: 22px;
    min-height: auto;
  }

  .number-section2-column-right-caption em {
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
    display: block;
  }

  .number-section2-column-right-caption br {
    display: none;
  }

  .number-section2-column-right-caption p {
    margin-top: 14px;
  }

  section.number-section3 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .number-section3-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 33px;
    flex-direction: column;
  }

  section.number-section3 .number-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: initial;
    gap: 16.5px;
    align-items: center;
  }

  section.number-section3 .number-section-title span {
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-primary);
  }

  section.number-section3 .number-section-title h2 {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 7px;
  }

  .number-section3-content {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 33px;
  }

  .number-section3-content-panel-images {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 22px;
  }

  .number-section3-content-panel-image {
    overflow: hidden;
    position: relative;
    width: calc(50% - 5.5px);
    height: auto;
  }

  .number-section3-content-panel {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding-bottom: 11px;
    border-bottom: solid 1px var(--color-border);
    box-sizing: border-box;
  }

  .number-section3-content-panel-captions {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1px;
    margin-top: 22px;
  }

  .number-section3-content-panel-caption {
    overflow: hidden;
    position: relative;
    width: Max(calc(33.3333% - 0.667px), 331px);
    height: auto;
    min-height: auto;
    padding: 22px;
    box-sizing: border-box;
    background-color: var(--color-primary);
    color: #fff;
  }

  .number-section3-content-panel-caption em {
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
    display: block;
  }

  .number-section3-content-panel-caption br {
    display: none;
  }

  .number-section3-content-panel-caption p {
    margin-top: 14px;
  }

  .number-section3-content-panel-item p::before {
    content: '';
    position: absolute;
    top: 7px;
    left: 0;
    margin: auto;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--color-primary);
  }

  .number-section3-content-panel-item p {
    padding-left: 16.5px;
  }

  .breadcrumbs {
    display: flex;
    align-items: center;
    gap: 0;
    width: auto;
    height: auto;
    background-color: #fff;
    color: var(--color-font);
    font-size: 12px;
    float: right;
    margin-top: 0;
    margin-bottom: 0;
  }

  .footer-space {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 22px;
  }

  .page-id-130 ul.anchor-list a {
    width: 100%;
  }

  .seismic-section-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    padding-bottom: 0;
    flex-direction: column;
    max-width: 331px;
    margin: 0 auto;
  }

  .seismic-section-flow {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .seismic-section-flow-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 55px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    margin-top: 33px;
  }

  .seismic-section-content {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding-bottom: 22px;
    border-bottom: solid 1px var(--color-border);
    box-sizing: border-box;
    flex-direction: column;
  }

  .seismic-section-arrow {
    overflow: visible;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 1px;
    height: 22px;
    background-color: var(--color-primary);
  }

  .seismic-section-content-image {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
  }

  .seismic-section-content-description {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
  }

  .seismic-section-content-description h3 {
    display: none;
  }

  .seismic-section-content-description p {
    margin-top: 14px;
  }

  .seismic-section-wrapper:first-child .seismic-section-flow-title {
    margin-top: 22px;
  }

  .seismic-section-wrapper:first-child .seismic-section-arrow {
    display: none;
  }

  .seismic-section-flow-title-last {
    display: none;
  }

  section#method .normal-p {
    margin-top: 14px;
    padding: 0 var(--gap-sp);
  }

  .page-id-130 .rebuild-section-image {
    width: 331px;
  }

  section.seismic-section3 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .seismic-section-title-wrapper-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-direction: column;
  }

  .seismic-section-title-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding-right: 0;
  }

  .seismic-section-title-wrapper-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16.5px;
    margin-bottom: 14px;
  }

  .seismic-section-title-wrapper-title span {
    font-size: 64px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-primary);
  }

  .seismic-section-title-wrapper-title h2 {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-top: 7px;
  }

  .seismic-section-title-image-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 331px;
    margin: 22px auto 0 auto;
  }

  section.seismic-section3 h6 {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-top: 55px;
    margin-bottom: 11px;
  }

  .seismic-section-images {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 33px 11px;
  }

  .seismic-section-image {
    overflow: hidden;
    position: relative;
    width: 331px;
    height: auto;
  }

  .seismic-section-image img {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3/2;
    margin-bottom: 11px;
  }

  .seismic-section-label {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: auto;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: auto;
    padding: 2.25px 5.5px;
  }

  .seismic-section-label span {
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: auto;
    display: block;
  }

  .seismic-section-title span {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-top: 11px;
    color: var(--color-font);
  }

  .page-id-154 ul.anchor-list {
    margin-top: 0;
  }

  .page-id-154 ul.anchor-list a {
    width: 100%;
  }

  section#purpose {
    padding-top: 33px !important;
    padding-bottom: 55px !important;
  }

  section#purpose .seismic-section-title-wrapper {
    width: 100%;
  }

  section#purpose .seismic-section-title-image-wrapper {
    width: 100%;
    margin-top: 22px;
  }

  section.number-section1 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  section#process {
    background-color: var(--color-alternate);
    margin-bottom: 55px;
  }

  .page-id-292 ul.anchor-list {
    margin-top: 0;
  }

  .page-id-292 ul.anchor-list a {
    width: 100%;
  }

  .page-id-292 .rebuild-section-image {
    width: 100%;
    max-width: 331px;
  }

  section.example-section1 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  section.example-section2 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
    background-color: var(--color-alternate);
  }

  section.example-section3 {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 33px 0 55px 0;
  }

  section.seismic-section3 .read-more,
  section.example-section3 .read-more {
    margin-top: 33px !important;
  }

  .flex-container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 33px 11px !important;
  }

  .area-map-list li {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
  }

  ul.area-map-list.left {
    position: relative;
    top: 0 !important;
    left: 0 !important;
    width: calc(50% - 5.5px);
    order: 2;
    justify-content: flex-end;
    gap: 11px;
  }

  ul.area-map-list.right {
    position: relative;
    bottom: auto;
    right: auto;
    width: calc(50% - 5.5px);
    order: 3;
    justify-content: flex-start;
    gap: 11px;
  }

  .area-map-list li {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: auto;
  }

  .area-map-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    padding-right: 0;
    order: 1;
  }

  .area-map-wrapper .area-map-image {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 331px;
    margin: 0 auto;
  }

  .area-name {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 33px;
    line-height: 33px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #fff;
    background-color: var(--color-tertiary);
    text-align: center;
  }

  .area-number span {
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
  }

  .section02-last-update p {
    font-size: 12px;
  }

  .visual-single h2 {
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.05em;
    color: #fff;
  }

  section.achievements-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .achievements-list .container {
    padding: 0;
    overflow-x: scroll !important;
  }

  .achievements-list .container.no-scroll {
    overflow-x: hidden !important;
  }

  table.achievements-tbl {
    width: max-content;
    max-width: max-content;
    min-width: calc(100% - var(--gap-sp) * 2);
    margin-left: var(--gap-sp);
  }

  table.achievements-tbl th {
    border: solid 1px var(--color-border);
    box-sizing: border-box;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
    padding: 5.5px 11px;
  }

  table.achievements-tbl td {
    border: solid 1px var(--color-border);
    box-sizing: border-box;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    padding: 11px;
  }

  .visual-single h1 {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    letter-spacing: 0;
    color: #fff;
  }

  article {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .achievements-images {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 11px;
    margin-bottom: 33px;
  }

  .achievements-title {
    overflow: hidden;
    position: relative;
    width: 110px;
    height: auto;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0;
    color: #fff;
    background-color: var(--color-primary);
    border-left: solid 1px var(--color-border);
    box-sizing: border-box;
    padding: 11px;
  }

  .achievements-description {
    overflow: hidden;
    position: relative;
    width: calc(100% - 110px);
    height: auto;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
    border-right: solid 1px var(--color-border);
    box-sizing: border-box;
    padding: 11px;
  }

  .single article button.read-more,
  .recruit-section button.read-more {
    margin: 33px auto 0 auto !important;
    display: block;
  }

  section.company-info {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 0 0 55px 0;
  }

  section.company-info .container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 33px;
    padding: 0;
  }

  .sidebar {
    overflow: hidden;
    position: relative;
    top: auto;
    width: 100%;
    height: auto;
    float: none;
    padding-top: 0;
    padding: 55px var(--gap-sp) 0 var(--gap-sp);
    left: 0;
  }

  .sidebar-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    justify-content: center;
    gap: 11px;
  }

  .sidebar-title {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: 44px;
    background-color: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .sidebar-detail {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: 44px;
    line-height: 44px;
    padding-left: 22px;
    border-bottom: solid 1px var(--color-border);
    box-sizing: border-box;
  }

  .sidebar-detail::before {
    content: '';
    position: absolute;
    top: 20.5px;
    left: 0;
    width: 11px;
    height: 2px;
    background-color: var(--color-primary);
  }

  .sidebar-detail a {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding-left: 16.5px;
    font-size: 14px;
  }

  .sidebar-item {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: auto;
  }

  .content {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    float: none;
    margin-left: 0;
    padding-left: 0;
  }

  .greetings {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px var(--gap-sp) 0 var(--gap-sp);
  }

  .company-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    padding-bottom: 5.5px;
    border-bottom: solid 1px var(--color-primary);
    box-sizing: border-box;
    margin-bottom: 5.5px;
  }

  .company-title h3 {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .content h4 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-top: 18px;
    margin-bottom: 14px;
  }

  .content p {
    font-size: 14px;
  }

  .sign {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 22px;
  }

  .compny-name {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .position {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .name {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .name-en {
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }

  .philosophy {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0 0 0;
  }

  .philosophy .company-philosophy {
    padding-top: 0;
  }

  .company-philosophy-key {
    overflow: hidden;
    position: relative;
    width: 110px;
    height: auto;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    border-right: solid 2px var(--color-border);
    box-sizing: border-box;
  }

  .company-philosophy-value {
    overflow: hidden;
    position: relative;
    width: calc(100% - 110px);
    height: auto;
    padding-left: var(--gap-sp);
  }

  .company-philosophy-value strong {
    font-family: 'Barlow', 'YuGothicFix', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-size: 21px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .company-philosophy {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    padding-bottom: 33px;
  }

  .company-philosophy-value em {
    font-family: 'Barlow', 'YuGothicFix', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', Meiryo, 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif;
    font-style: normal;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .profile {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .profile .company-heading {
    padding-top: 0;
  }

  .company-heading {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-bottom: 22px;
  }

  table.company-profile th {
    overflow: hidden;
    position: relative;
    width: 110px;
    height: auto;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    padding: 11px 11px 11px 0;
    text-align: left;
  }

  table.company-profile td {
    overflow: hidden;
    position: relative;
    width: auto;
    height: auto;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    padding: 11px 0;
    text-align: left;
  }

  .company-map-title {
    font-size: 18px;
    margin-top: 55px;
  }

  .company-map {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 0;
    padding-top: 56.25%;
    margin-top: 11px;
  }

  .company-access {
    margin-top: 22px;
  }

  .history {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .history .company-heading {
    padding-top: 0;
  }

  .qualification {
    overflow: visible;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .qualification-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 22px;
    flex-direction: column;
    max-width: 100%;
    margin: 0 auto 33px auto;
  }

  .qualification-content {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
  }

  .qualification-image {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 331px;
    margin: 0 auto;
  }

  ul.qualification-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    gap: 11px;
    margin-bottom: 0;
  }

  ul.qualification-list li {
    overflow: hidden;
    position: relative;
    width: 160px;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5.5px;
    border: solid 1px var(--color-border);
    box-sizing: border-box;
  }

  .qualification-list-name {
    width: max-content;
    height: auto;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    display: block;
    justify-content: center;
    align-items: baseline;
    text-align: center;
  }

  .qualification-list-number {
    width: max-content;
    height: auto;
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .qualification-list-number small {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
  }

  small {
    font-size: 12px;
    line-height: 2;
    letter-spacing: 0;
  }

  section.news {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .wp-pagenavi {
    clear: both;
    text-align: center;
    margin-top: 33px;
  }

  article.news-single time {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: auto;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: var(--color-font);
    float: left;
    margin-top: 3px;
    margin-right: 14px;
  }

  article.news-single .news-term-link {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: auto;
    display: block;
  }

  article.news-single .news-term {
    overflow: hidden;
    position: relative;
    width: max-content;
    height: 22px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.05em;
    color: #fff;
    background-color: var(--color-primary);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 33px;
    float: left;
    padding: 5.5px 11px;
  }

  article.news-single h1 {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-top: 11px;
  }

  .news-single-hr {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 1px;
    background-color: var(--color-primary);
    margin-top: 11px;
    margin-bottom: 33px;
  }

  .news-single-content {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-bottom: auto;
    padding-bottom: auto;
  }

  .news-single-content p {
    font-size: 14px;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .recruit-section-panel-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 11.75px 55px 11.75px 14px;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    background-color: var(--color-primary);
    color: #fff;
    margin-bottom: 22px;
    background-image: url(../images/common/icon_minus.svg);
    background-position: calc(100% - 14px) center;
    background-repeat: no-repeat;
    background-size: 21px 21px;
    cursor: pointer;
  }

  .recruit-section-panel-slogan {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0 22px;
    margin-top: 11px;
    margin-bottom: 14px;
  }

  .recruit-section-panel-slogan label {
    display: block;
    overflow: hidden;
    position: relative;
    width: auto;
    height: 27.5px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    border: solid 1px var(--color-primary);
    box-sizing: border-box;
    color: var(--color-primary);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 88px;
    padding: 0 11px;
  }

  .recruit-section-panel-slogan p {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .recruit-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    margin-top: 33px;
    margin-bottom: 14px;
    padding-bottom: 5.5px;
    border-bottom: solid 1px var(--color-primary);
    box-sizing: border-box;
  }

  .recruit-section-contact {
    display: block;
    margin-bottom: 0;
  }

  section.recruit-section-interview {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 220px;
    padding: 0;
    background-color: var(--color-primary);
    margin-top: 55px;
    margin-bottom: 55px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .recruit-section-interview-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
    margin-bottom: 5.5px;
  }

  .recruit-section-interview-content p {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
    padding-bottom: 5.5px;
    border-bottom: solid 1px #fff;
    box-sizing: border-box;
  }

  section.company {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 55px 0;
  }

  .partner .partner-section:not(:first-child) {
    margin-top: 33px;
  }

  .page-id-298 .company-title {
    margin-bottom: 14px;
  }

  .page-id-298 .company-title h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-primary);
  }

  .partner-section-title {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    border-left: solid 4px var(--color-primary);
    box-sizing: border-box;
    padding: 4.5px 0 4.5px 11px;
    color: var(--color-font);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin-top: 55px;
  }

  .partner-section-download {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    border: solid 2px var(--color-border);
    box-sizing: border-box;
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    margin: 14px auto 0 auto;
    max-width: 331px;
  }

  .partner-section-download img {
    overflow: hidden;
    position: relative;
    width: 33px;
    height: auto;
  }

  .partner-section-download span {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: var(--color-font);
    margin-bottom: 5.5px;
  }

  .partner-section-download a {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
  }

  section.form {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 0;
    background-color: #fff;
  }

  section.form .container .form-wrapper {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    max-width: 900px;
    margin: 0 auto;
    padding: 55px 0;
  }

  .form-area {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 22px;
  }

  .contact-key {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin-top: 14px;
    margin-bottom: 5.5px;
  }

  .contact-key p {
    font-size: 14px;
    font-weight: 700;
    line-height: 2;
    letter-spacing: 0.05em;
  }

  .contact-key span {
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0;
    color: #fff;
    background-color: var(--color-primary);
    padding: 2px 8px 2px 8px;
    box-sizing: border-box;
    display: inline-block;
    top: -1px;
    position: relative;
    margin-left: 2px;
  }

  textarea,
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="file"],
  select {
    width: 100%;
    height: auto;
    border: solid 1px var(--color-border);
    box-sizing: border-box;
    padding: 6.5px;
    border-radius: 0;
  }

  textarea {
    height: 154px;
  }

  .contact-privacy {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    background-color: var(--color-alternate);
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
  }

  input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    position: relative;
    width: 22px;
    height: 22px;
    border: 2px solid var(--color-border);
    overflow: hidden;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
    top: 6px;
    margin-right: -7px;
  }

  input[type="submit"],
  button.submit {
    cursor: pointer;
    width: 100%;
    height: 55px;
    max-width: 331px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    border: 2px solid var(--color-primary);
    box-sizing: border-box;
    background-color: var(--color-primary);
    transition: all 0.3s;
    display: block;
    margin: 33px auto 0 auto;
  }

  .page-id-303 section.footer-contact {
    display: none;
  }

  .page-id-305 .company-title {
    margin-bottom: 22px;
  }

  ol.privacy-policy-list li {
    font-size: 14px;
    list-style-type: decimal;
    list-style-position: inside;
    line-height: 2;
    letter-spacing: 0.05em;
    color: var(--color-font);
    text-indent: -24px;
    padding-left: 24px !important;
  }

  .privacy-policy h5 {
    margin-top: 55px;
    margin-bottom: 22px;
  }

  .privacy-policy h5 {
    margin-top: 55px;
    margin-bottom: 5.5px;
    font-size: 18px;
  }

  .achievements-image.施工前::after {
    content: '▶︎';
    display: block;
    width: auto;
    height: auto;
    position: absolute;
    top: calc(50% - 7px);
    right: -12px;
    z-index: 1;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--color-tertiary);
  }

  .achievements-image span {
    display: none;
    overflow: hidden;
    position: absolute;
    width: auto;
    height: auto;
    top: 0;
    left: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: var(--color-tertiary);
    padding: 5.5px 11px;
    box-sizing: border-box;
  }

  .news-single-images {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 33px;
  }

  .pdf-list {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 33px;
  }

  section.search-section {
    overflow: hidden;
    position: relative;
    width: 100%;
    height: auto;
    padding: 33px 0;
    background-color: var(--color-alternate);
    font-size: 14px;
  }

  .radio-btn-area {
    max-width: 331px;
    margin: 0 auto 11px auto;
  }

  .radio-btn {
    width: 103px;
    height: 44px;
    text-align: center;
  }

  .select-btn-area {
    max-width: 331px;
    margin: 0 auto 11px auto;
  }

  .keyword-btn-area {
    overflow: hidden;
    position: relative;
    width: 100%;
    max-width: 331px;
    margin: 0 auto 11px auto;
  }

  section.search-section select {
    width: 160px;
    font-weight: 700;
    padding: 6.5px 14px;
    color: var(--color-primary);
  }

  #youto {
    width: 100%;
  }

  section.search-section input[type="submit"] {
    margin: 22px auto 0 auto;
    max-width: 331px;
  }

  .footer-recruit-slideshow {
    display: none;
  }
}

@media (max-width: 650px) {
  .footer-recruit-panel {
    width: auto;
  }
}