@charset "UTF-8";
@media screen and (max-width: 767px){
  .u-desktop {
    display: none;
  }
  .u-mobile {
    display: block;
  }
  a[href^="tel:"] {
    cursor: pointer;
    pointer-events: auto;
  }
  html {
    font-size: 16px;
  }
  .about-mv__image {
    aspect-ratio: 4/5;
    height: 28.125rem;
  }
  .about-mv__body {
    padding-inline: 20px;
    top: 3rem;
  }
  .about-mv__title {
    font-size: 1.75rem;
  }
  .about-mv__title-lg {
    font-size: 2.125rem;
  }
  .about-mv__title-xl {
    font-size: 2.25rem;
  }
  .about-mv__text {
    font-size: 0.875rem;
    margin-top: 1.25rem;
  }
  .pride {
    padding-block: 4rem;
  }
  .pride__inner {
    padding-inline: 20px;
  }
  .pride__lead {
    font-size: 1.5rem;
  }
  .pride__texts {
    margin-top: 1.5rem;
  }
  .pride__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .pride__text + .pride__text {
    margin-top: 1.5rem;
  }
  .pride__photos {
    aspect-ratio: 46/62;
  }
  .pride__photo--01 {
    width: 46%;
  }
  .pride__photo--02 {
    left: 52%;
    top: 18%;
    width: 48%;
  }
  .pride__photo--03 {
    left: 4%;
    top: 52%;
    width: 52%;
  }
  .pride__photo--04 {
    left: 62%;
    top: 70%;
    width: 38%;
  }
  .strengs {
    padding-block: 4rem;
  }
  .strengs__item + .strengs__item {
    margin-top: 4.5rem;
  }
  .strengs__label-text {
    font-size: 1.0625rem;
  }
  .strengs__label-num {
    font-size: 1rem;
  }
  .strengs__title {
    font-size: 1.625rem;
  }
  .strengs__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .strengs__steps {
    gap: 0.625rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .strengs__step-num {
    font-size: 0.875rem;
  }
  .strengs__step-title {
    font-size: 1.0625rem;
  }
  .strengs__step-text {
    font-size: 0.75rem;
  }
  .strengs__note {
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    margin-top: 1.75rem;
  }
  .strengs__button {
    margin-top: 2rem;
  }
  .strengs .button.strengs__button-link {
    max-width: 20rem;
    min-height: 3.5rem;
    width: 100%;
  }
  .about-factory__image {
    aspect-ratio: 3/2;
  }
  .future {
    padding-block: 4rem;
  }
  .future__lead {
    font-size: 1.625rem;
    margin-top: 1.75rem;
  }
  .future__text {
    font-size: 0.8125rem;
    letter-spacing: 0.06em;
  }
  .future__text + .future__text {
    margin-top: 1.5rem;
  }
  .future__photos {
    aspect-ratio: 46/50;
    display: block;
    grid-template-columns: none;
    height: auto;
    margin-top: 2.5rem;
    padding-inline: 20px;
    position: relative;
  }
  .future__photo {
    position: absolute;
  }
  .future__photo--01 {
    left: 20px;
    top: 0;
    width: calc((100% - 20px * 2) * 0.4);
  }
  .future__photo--02 {
    left: auto;
    right: 20px;
    top: 12%;
    width: calc((100% - 20px * 2) * 0.54);
  }
  .future__photo--03 {
    left: calc(20px + (100% - 20px * 2) * 0.06);
    top: 46%;
    width: calc((100% - 20px * 2) * 0.48);
  }
  .future__photo--04 {
    left: auto;
    right: 20px;
    top: 68%;
    width: calc((100% - 20px * 2) * 0.44);
  }
  .coating-detail {
    padding-bottom: 3rem;
    padding-top: 3rem;
  }
  .coating-detail__head {
    margin-bottom: 2rem;
  }
  .coating-detail__name {
    font-size: 1.625rem;
  }
  .coating-detail__note {
    font-size: 0.875rem;
  }
  .coating-detail__main {
    flex-direction: column;
    gap: 2rem;
  }
  .coating-detail__swatch {
    flex: none;
  }
  .coating-detail__info {
    flex: none;
    width: 100%;
  }
  .coating-detail__desc {
    font-size: 0.875rem;
    padding-left: 1rem;
  }
  .coating-detail__specs {
    padding: 1rem;
  }
  .coating-detail__specs-label {
    font-size: 0.75rem;
    width: 5.25rem;
  }
  .coating-detail__specs-value {
    font-size: 0.875rem;
  }
  .coating-detail .button.coating-detail__contact-btn {
    margin-top: 1.75rem;
    min-height: 3.5rem;
    width: 100%;
  }
  .coating-detail-works {
    padding-bottom: 3.5rem;
    padding-top: 3.5rem;
  }
  .coating-detail-works__list {
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 1.5rem;
  }
  .coating-detail-others {
    padding-bottom: 3.5rem;
    padding-top: 3.5rem;
  }
  .coating-detail-others__slider {
    margin-top: 2rem;
  }
  .coating-detail-others__list {
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    padding-left: 20px;
    padding-right: 20px;
  }
  .coating-detail-others__arrow {
    height: 2.25rem;
    width: 2.25rem;
  }
  .coating-detail-others__arrow--prev {
    left: 0.75rem;
  }
  .coating-detail-others__arrow--next {
    right: 0.75rem;
  }
  .coating-sample {
    padding-bottom: 4rem;
    padding-top: 3rem;
  }
  .coating-sample__title {
    font-size: 1.5rem;
  }
  .coating-sample__lead {
    font-size: 0.875rem;
  }
  .coating-sample__list {
    gap: 1.5rem 1rem;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 2rem;
  }
  .coating-sample__name {
    font-size: 1rem;
    margin-top: 0.875rem;
  }
  .coating-sample__code {
    font-size: 0.75rem;
  }
  .coating-sample__pager {
    margin-top: 2.5rem;
  }
  .coating-sample__pager-list {
    gap: 1.5rem;
  }
  .coating-sample__pager-link {
    font-size: 1rem;
  }
  .coating-list {
    padding-block: 3rem 4rem;
  }
  .coating-list__lead {
    font-size: 0.875rem;
  }
  .coating-list__title {
    font-size: 1.5rem;
    margin-top: 2.5rem;
  }
  .coating-list__note {
    font-size: 0.875rem;
  }
  .coating-caution {
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    margin-top: 0.5rem;
  }
  .coating-list__cards {
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2rem;
  }
  .coating-list__card-title {
    font-size: 1rem;
    margin-top: 0.75rem;
  }
  .coating-list__card-text {
    font-size: 0.8125rem;
    margin-top: 0.5rem;
  }
  .coating-list__card-more {
    margin-top: 0.5rem;
  }
  .coating-list__card-more-text {
    font-size: 0.875rem;
  }
  .coating-list__pager {
    margin-top: 2.5rem;
  }
  .coating-list__pager-list {
    gap: 1.5rem;
  }
  .coating-list__pager-link {
    font-size: 1rem;
  }
  .company-mv__image {
    aspect-ratio: 4/5;
  }
  .company-mv__body {
    padding-inline: 20px;
    top: 3rem;
  }
  .company-mv__title {
    font-size: 1.625rem;
  }
  .company-mv__title-lg {
    font-size: 2rem;
  }
  .company-mv__text {
    font-size: 0.875rem;
    margin-top: 1.25rem;
  }
  .message {
    padding-block: 4rem;
  }
  .message__lead {
    font-size: 1.25rem;
    margin-top: 2.5rem;
  }
  .message__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .message__sign {
    font-size: 0.875rem;
  }
  .band {
    height: 8.75rem;
  }
  .band__text {
    font-size: 3.25rem;
  }
  .band__photo {
    height: 4rem;
    width: 6rem;
  }
  .profile {
    padding-block: 4rem;
  }
  .profile__table-wrap {
    margin-top: 2.5rem;
  }
  .profile__table th,
  .profile__table td {
    font-size: 0.875rem;
  }
  .history {
    padding-bottom: 4rem;
    /* PC は .history__head の padding-top で上の余白を作っているが、
       SP はそれを 0 にしているため、セクション側で余白を持たせる */
    padding-top: 4rem;
  }
  .history__list::before {
    content: none;
  }
  .history__item {
    /* 縦積みにすると align-items: flex-start が横幅の縮小として効いてしまい、
       本文と区切り線が半分ほどの幅になるので伸ばし直す */
    align-items: stretch;
    flex-direction: column;
  }
  .history__item + .history__item {
    margin-top: 2rem;
  }
  .history__year {
    font-size: 0.875rem;
    margin-right: 0;
    min-height: 1.75rem;
    width: 4.75rem;
  }
  .history__events {
    margin-top: 0.75rem;
  }
  .history__event {
    align-items: stretch;
    flex-direction: column;
  }
  .history__event + .history__event {
    margin-top: 1.5rem;
  }
  .history__month {
    font-size: 0.875rem;
    margin-right: 0;
  }
  .history__text {
    font-size: 0.875rem;
    margin-top: 0.25rem;
  }
  .history__event:last-child .history__text {
    padding-bottom: 1.5rem;
  }
  .access {
    padding-block: 4rem;
  }
  .access__line {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .access__map {
    aspect-ratio: auto;
    /* SP はカンプ比率だと 190px 程度にしかならず地図として操作しづらいため高さを固定する
       （aspect-ratio と min-height を併用すると幅が 551px に膨らむため aspect-ratio は解除） */
    height: 17.5rem;
  }
  .contact-form__inner {
    padding-bottom: 6.25rem;
    padding-top: 4rem;
  }
  .contact-form__lead {
    font-size: 0.875rem;
  }
  .contact-form__form {
    margin-top: 2.5rem;
  }
  .contact-form__row {
    align-items: stretch;
    flex-direction: column;
  }
  .contact-form__row--top {
    align-items: stretch;
  }
  .contact-form__row--privacy {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1rem 0;
  }
  .contact-form__label {
    flex: none;
    padding: 1rem 0 0.5rem;
    width: 100%;
  }
  .contact-form__label--top {
    padding-bottom: 0.5rem;
    padding-top: 1rem;
  }
  .contact-form__label-text {
    font-size: 0.9375rem;
  }
  .contact-form__field {
    padding: 0.5rem 0 1rem;
  }
  .contact-form__radio-text {
    font-size: 0.9375rem;
  }
  .contact-form__privacy {
    align-items: flex-start;
  }
  .contact-form__privacy-label {
    font-size: 0.875rem;
  }
  .contact-form__turnstile {
    margin-top: 2rem;
  }
  .contact-form__submit-wrap {
    margin-top: 2.5rem;
  }
  .contact-form__turnstile + .contact-form__submit-wrap {
    margin-top: 1.5rem;
  }
  .contact-form__submit {
    font-size: 0.9375rem;
    min-height: 3.5rem;
    padding-inline: 1rem;
    width: 100%;
  }
  .contact-form__submit::after {
    right: 1rem;
  }
  .thanks__inner {
    padding-bottom: 5rem;
    padding-top: 4rem;
  }
  .thanks__heading {
    font-size: 1.125rem;
    padding-left: 0.875rem;
  }
  .thanks__lead {
    font-size: 0.9375rem;
    letter-spacing: 0.05em;
    margin-top: 1.75rem;
  }
  .thanks__note {
    font-size: 0.875rem;
    letter-spacing: 0.05em;
    margin-top: 1.25rem;
  }
  .thanks__action {
    margin-top: 2.5rem;
  }
  .privacy__inner {
    padding-bottom: 5rem;
    padding-top: 4rem;
  }
  .privacy__lead {
    font-size: 0.9375rem;
    letter-spacing: 0.05em;
  }
  .privacy__body {
    margin-top: 2.5rem;
  }
  .privacy__section + .privacy__section {
    margin-top: 2.5rem;
  }
  .privacy__heading {
    font-size: 1.125rem;
    padding-left: 0.875rem;
  }
  .privacy__section p,
  .privacy__section ul,
  .privacy__contact {
    font-size: 0.875rem;
    letter-spacing: 0.05em;
    margin-top: 0.875rem;
  }
  .privacy__contact-row {
    flex-direction: column;
    gap: 0;
    padding-block: 0.625rem;
  }
  .privacy__contact-row dt {
    width: auto;
  }
  .privacy__date {
    font-size: 0.8125rem;
    margin-top: 2.5rem;
  }
  .recruit-fv {
    background-image: url("/assets/images/recruit/fv_bg_sp.webp");
    background-position: center top;
    grid-template-rows: minmax(6.25rem, 127fr) auto minmax(2.5rem, 112fr) auto minmax(1.5rem, 74fr);
    min-height: 100vh;
    min-height: 100svh;
    padding: 0 0.625rem 0 0.875rem;
  }
  .recruit-fv__title-en {
    font-size: 3.125rem;
  }
  .recruit-fv__title-ja {
    font-size: 1.25rem;
  }
  .recruit-fv__catch-sub {
    gap: 0.5625rem;
    margin-bottom: -0.375rem;
  }
  .recruit-fv__catch-line {
    width: 5rem;
  }
  .recruit-fv__catch-sub-text {
    font-size: 2.25rem;
  }
  .recruit-fv__catch-main {
    font-size: 4.875rem;
    line-height: 0.9;
  }
  .recruit-fv__catch-word {
    display: block;
  }
  .recruit-fv__catch-note {
    font-size: 1.3125rem;
    margin-top: 1.0625rem;
  }
  .recruit-fv__breadcrumb {
    display: none;
  }
  .recruit-nav {
    display: none;
  }
  .recruit-nav__list {
    padding-inline: 20px;
    width: -moz-max-content;
    width: max-content;
  }
  .recruit-nav__link {
    padding-inline: 1.25rem;
  }
  .recruit-message__quote-line {
    font-size: 1.5rem;
  }
  .recruit-message__quote-line--02 {
    padding-left: 0.9375rem;
  }
  .recruit-message__paragraph {
    font-size: 0.8125rem;
  }
  .recruit-message__slide {
    width: 16.25rem;
  }
  .recruit-work {
    padding-top: 3rem;
  }
  .recruit-work__inner {
    padding-inline: 20px;
  }
  .recruit-work__quote-line {
    font-size: 1.25rem;
    padding: 0.375rem 0.25rem;
  }
  .recruit-work__lead {
    font-size: 0.8125rem;
  }
  .recruit-work__body {
    border-radius: 0.75rem;
    padding: 2rem 1rem 3rem;
  }
  .recruit-work__intro-q {
    font-size: 1.1875rem;
  }
  .recruit-work__intro-a {
    font-size: 0.8125rem;
    text-align: left;
  }
  .recruit-work__block-title {
    font-size: 1.25rem;
  }
  .recruit-work__block-desc {
    font-size: 0.8125rem;
  }
  .recruit-work__product-list {
    grid-template-columns: minmax(0, 1fr);
  }
  .recruit-work__place-list {
    gap: 1.75rem;
  }
  .recruit-work__place-item {
    flex-basis: 100%;
    max-width: none;
  }
  .recruit-work__place-title {
    font-size: 1.125rem;
  }
  .recruit-process__title {
    font-size: 1.1875rem;
  }
  .recruit-process__lead {
    font-size: 0.8125rem;
    text-align: left;
  }
  .recruit-process__bg {
    height: 23.75rem;
  }
  .recruit-process__list {
    flex-direction: column;
    gap: 0.625rem;
    margin-right: 0;
    overflow: visible;
    scroll-snap-type: none;
  }
  .recruit-process__item {
    width: 100%;
  }
  .recruit-process__arrow {
    height: 2.125rem;
    justify-content: center;
    padding-left: 0;
    width: 100%;
  }
  .recruit-process__arrow img {
    transform: rotate(90deg);
  }
  .recruit-process__card-title {
    font-size: 1.25rem;
  }
  .recruit-process__card-desc {
    font-size: 0.8125rem;
  }
  .recruit-process__closing {
    font-size: 1rem;
  }
  .recruit-career__title {
    font-size: 1.25rem;
  }
  .recruit-career__catch {
    font-size: 1.625rem;
  }
  .recruit-career__catch-em {
    font-size: 3.5rem;
  }
  .recruit-career__lead {
    font-size: 0.8125rem;
  }
  .recruit-career__list {
    gap: 3rem;
    padding-inline: 20px;
  }
  .recruit-career__step {
    font-size: 1rem;
  }
  .recruit-career__step-title {
    font-size: 1.625rem;
  }
  .recruit-career__step-desc {
    font-size: 0.8125rem;
  }
  .recruit-culture__quote {
    font-size: 1.1875rem;
    padding: 0.375rem 0.25rem;
  }
  .recruit-culture__note-line {
    display: none;
  }
  .recruit-culture__item {
    width: 100%;
  }
  .recruit-culture__item:nth-child(n+4) {
    width: 100%;
  }
  .recruit-culture__num {
    font-size: 2.25rem;
    height: 6rem;
    padding: 0.625rem 0 0 2.5rem;
    width: 6rem;
  }
  .recruit-culture__item-title {
    font-size: 1.3125rem;
  }
  .recruit-staff__head-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .recruit-staff__lead-line {
    font-size: 1.125rem;
    padding-inline: 0.625rem;
  }
  .recruit-staff__nav {
    align-self: flex-end;
    gap: 0.75rem;
  }
  .recruit-staff__arrow {
    height: 3.5rem;
    width: 3.5rem;
  }
  .recruit-staff__arrow::before {
    height: 0.9375rem;
    width: 1.125rem;
  }
  .recruit-staff__card {
    bottom: 0;
    padding: 0.75rem 0.875rem;
    top: auto;
    width: 100%;
  }
  .recruit-staff__dept {
    font-size: 1.25rem;
  }
  .recruit-staff__meta-date {
    font-size: 0.6875rem;
  }
  .recruit-staff__meta-name {
    font-size: 0.875rem;
  }
  .recruit-staff__desc {
    display: none;
  }
  .recruit-staff__quotes {
    display: none;
  }
  .recruit-staff__more {
    gap: 0.625rem;
    left: auto;
    right: 0.625rem;
    top: 0.625rem;
  }
  .recruit-staff__more-text {
    display: none;
  }
  .recruit-staff__more-icon {
    height: 2.5rem;
    width: 2.5rem;
  }
  .recruit-modal__inner {
    gap: 1rem;
    margin-block: 1.5rem 2.5rem;
    max-width: calc(100% - 40px);
  }
  .recruit-modal__close {
    height: 3.25rem;
    width: 3.25rem;
  }
  .recruit-modal__close::before {
    height: 1rem;
    width: 1rem;
  }
  .recruit-modal__body {
    padding: 2rem 1rem 2.5rem;
  }
  .recruit-modal__quote-line {
    font-size: 1.375rem;
  }
  .recruit-modal__dept {
    font-size: 1rem;
  }
  .recruit-modal__meta {
    gap: 1rem;
  }
  .recruit-modal__date {
    font-size: 0.8125rem;
  }
  .recruit-modal__name {
    font-size: 1.25rem;
  }
  .recruit-modal__photo {
    margin-top: 1.5rem;
  }
  .recruit-modal__sections {
    gap: 2rem;
    margin-top: 2rem;
  }
  .recruit-modal__heading {
    font-size: 1.125rem;
    padding-left: 0.875rem;
  }
  .recruit-modal__text {
    font-size: 0.875rem;
  }
  .recruit-recruitment__tabs {
    flex-direction: column;
  }
  .recruit-recruitment__tab {
    font-size: 0.9375rem;
    letter-spacing: 0.05em;
    min-height: 3.5rem;
  }
  .recruit-recruitment__table th,
  .recruit-recruitment__table td {
    font-size: 0.875rem;
  }
  .recruit-join {
    background-image: url("/assets/images/recruit/join_bg_sp.webp");
    background-position: center top;
    padding: 6.625rem 0.9375rem 5.125rem;
  }
  .recruit-join__card {
    background-image: linear-gradient(-79.49deg, #0d1263 14.415%, #0d4794 97.402%);
    max-width: 100%;
    min-height: 30.5rem;
    padding-top: 4rem;
  }
  .recruit-join__watermark {
    font-size: 3.9375rem;
    top: -1.875rem;
  }
  .recruit-join__body {
    width: 19.1875rem;
  }
  .recruit-join__en {
    font-size: 2.5rem;
  }
  .recruit-join__title {
    font-size: 1.375rem;
    margin-top: 1.1875rem;
  }
  .recruit-join__text {
    font-size: 0.9375rem;
  }
  .recruit-join__br-sp {
    display: inline;
  }
  .recruit-join__button {
    margin-top: 1.5rem;
    width: 100%;
  }
  .service-mv__image {
    aspect-ratio: 4/5;
  }
  .service-mv__body {
    padding-inline: 20px;
    top: 3rem;
  }
  .service-mv__title {
    font-size: 1.75rem;
  }
  .service-mv__title-strong {
    font-size: 2.125rem;
  }
  .service-mv__title-lg {
    font-size: 2.125rem;
  }
  .service-mv__text {
    font-size: 0.875rem;
    margin-top: 1.25rem;
  }
  .business {
    padding-block: 4rem;
  }
  .business__lead {
    font-size: 1.625rem;
  }
  .business__photo {
    margin-top: 1.5rem;
  }
  .business__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .business__box {
    margin-top: 1.5rem;
    padding: 1.25rem;
  }
  .business__box-title {
    font-size: 1.125rem;
    letter-spacing: 0.08em;
  }
  .business__box-text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .photo-collage {
    padding-block: 0 2.5rem;
  }
  .photo-collage__group {
    aspect-ratio: 48/55;
    padding-inline: 20px;
  }
  .photo-collage__photo {
    --band-left: 20px;
    --band-width: calc(100% - 20px * 2);
  }
  .photo-collage__photo--01 {
    left: var(--band-left);
    top: 14%;
    width: calc(var(--band-width) * 0.44);
  }
  .photo-collage__photo--02 {
    left: calc(var(--band-left) + var(--band-width) * 0.52);
    top: 0;
    width: calc(var(--band-width) * 0.42);
  }
  .photo-collage__photo--03 {
    left: calc(var(--band-left) + var(--band-width) * 0.74);
    top: 24%;
    width: calc(var(--band-width) * 0.26);
  }
  .photo-collage__photo--04 {
    left: calc(var(--band-left) + var(--band-width) * 0.08);
    top: 54%;
    width: calc(var(--band-width) * 0.28);
  }
  .photo-collage__photo--05 {
    left: calc(var(--band-left) + var(--band-width) * 0.46);
    top: 68%;
    width: calc(var(--band-width) * 0.46);
  }
  .service-detail {
    padding-block: 4rem;
  }
  .service-detail__list {
    margin-top: 3rem;
  }
  .service-detail__item + .service-detail__item {
    margin-top: 3rem;
  }
  .service-detail__label-text {
    font-size: 1.0625rem;
  }
  .service-detail__label-num {
    font-size: 1rem;
  }
  .service-detail__title {
    font-size: 1.375rem;
  }
  .service-detail__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .flow {
    padding-block: 0 4rem;
  }
  .flow__head {
    padding-top: 4rem;
  }
  .flow__lead {
    font-size: 1.5rem;
  }
  .flow__item {
    gap: 1rem;
    min-height: 4.5rem;
  }
  .flow__item-text {
    font-size: 1rem;
  }
  .flow__note {
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    margin-top: 1.75rem;
  }
  .flow__button {
    margin-top: 2.5rem;
  }
  .flow .button.flow__button-link {
    max-width: 20rem;
    min-height: 3.5rem;
    width: 100%;
  }
  .capability {
    padding-block: 4rem;
  }
  .capability__tag {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    padding-inline: 0.875rem;
  }
  .equipment {
    padding-block: 4rem;
  }
  .equipment__group {
    margin-top: 2.5rem;
  }
  .equipment__group + .equipment__group {
    margin-top: 3.5rem;
  }
  .equipment__label {
    font-size: 1.5rem;
  }
  .equipment__item {
    gap: 1rem;
  }
  .equipment__photo {
    flex: 0 0 7.5rem;
    width: 7.5rem;
  }
  .equipment__info {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.5rem;
  }
  .equipment__name {
    font-size: 1.25rem;
  }
  .equipment__info--location .equipment__name {
    font-size: 1.5rem;
  }
  .equipment__caption {
    font-size: 0.8125rem;
  }
  .equipment__count-num {
    font-size: 1.75rem;
  }
  .fv {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: calc(100vh - var(--news-bar-height, 5rem));
    min-height: calc(100svh - var(--news-bar-height, 5rem));
    padding-block: 6.875rem 3rem;
  }
  .fv__catch {
    margin-left: 0;
    padding-inline: 20px;
    width: 100%;
  }
  .fv__photo {
    --fv-band-left: 20px;
    --fv-band-width: calc(100% - 20px * 2);
  }
  .fv__lead {
    font-size: 0.75rem;
    margin-left: 20px;
    margin-top: 2rem;
  }
  .fv__scroll {
    bottom: 1.5rem;
    right: 20px;
    width: 4.5rem;
  }
  .news-bar__inner {
    align-items: flex-start;
    padding-inline: 20px;
  }
  .news-bar__label {
    font-size: 0.9375rem;
  }
  .news-bar__text {
    font-size: 0.75rem;
  }
  .about__visual-image {
    aspect-ratio: 4/3;
  }
  .about__visual-body {
    top: 3rem;
  }
  .about__visual-title {
    font-size: 1.75rem;
  }
  .about__visual-en {
    font-size: 0.875rem;
    margin-top: 1rem;
  }
  .about__body {
    padding-block: 4rem 4rem;
  }
  .about__features {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2rem;
  }
  .about__feature {
    font-size: 0.875rem;
  }
  .about__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1.75rem;
  }
  .about__button {
    margin-top: 2.5rem;
  }
  .about__photos {
    aspect-ratio: 48/43;
    display: block;
    height: auto;
    padding-inline: 20px;
    position: relative;
  }
  .about__photo {
    --band-left: 20px;
    --band-width: calc(100% - 20px * 2);
    flex: none;
    max-width: none;
    position: absolute;
  }
  .about__photo--01 {
    left: var(--band-left);
    top: 0;
    width: calc(var(--band-width) * 0.52);
  }
  .about__photo--02 {
    left: calc(var(--band-left) + var(--band-width) * 0.66);
    top: 22%;
    width: calc(var(--band-width) * 0.3);
  }
  .about__photo--03 {
    left: calc(var(--band-left) + var(--band-width) * 0.08);
    top: 58%;
    width: calc(var(--band-width) * 0.58);
  }
  .onestop {
    padding-block: 4rem 4rem;
  }
  .onestop__en {
    font-size: 1.25rem;
  }
  .onestop__title {
    font-size: 1.625rem;
  }
  .onestop__sub {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1.25rem;
  }
  .onestop__steps {
    /* 行をまたいでも全カードが一番背の高いものに揃うようにする */
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2.25rem;
  }
  .onestop__step {
    /*
      SP は文字が小さくなるぶん 229px が余って背が高く見えるので、
      高さの指定を外して中身なりにする。
      全カードの高さは .onestop__steps の grid-auto-rows: 1fr で揃う。
    */
    min-height: 0;
    padding: 1.5rem 0.5rem 1.25rem;
  }
  .onestop__step-num {
    font-size: 0.9375rem;
  }
  .onestop__step-title {
    font-size: 1.1875rem;
  }
  .onestop__step-text {
    font-size: 0.8125rem;
  }
  .onestop__note {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 2rem;
  }
  .service {
    padding-block: 4rem 4rem;
  }
  .service__head {
    align-items: center;
  }
  .service__lead {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1.5rem;
  }
  .service__cards {
    gap: 1.25rem;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 1.75rem;
  }
  .service__card-title {
    font-size: 1.25rem;
  }
  .service__card-text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
  .works {
    padding-block: 4rem 4rem;
  }
  .works__head {
    align-items: center;
  }
  .works__more {
    margin-top: 0;
  }
  .works__lead {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1rem;
  }
  .works__cards {
    gap: 1.25rem 1rem;
    margin-top: 2.25rem;
  }
  .works__card-tag {
    font-size: 0.75rem;
  }
  .works__card-title {
    font-size: 0.9375rem;
  }
  .company {
    padding-block: 4rem 4rem;
  }
  .company__title {
    font-size: 1.5rem;
    margin-top: 2.5rem;
  }
  .company__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1rem;
  }
  .company__stats {
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 2rem;
  }
  .company__stat-value {
    font-size: 3rem;
  }
  .company__stat-unit {
    font-size: 1.25rem;
  }
  .company__stat-label {
    font-size: 0.8125rem;
  }
  .company__button {
    margin-top: 2.5rem;
  }
  .recruit {
    padding-block: 4rem 4rem;
  }
  .recruit__title {
    font-size: 1.625rem;
    line-height: 1.6;
    margin-top: 2.25rem;
  }
  .recruit__title-lg {
    font-size: 1.875rem;
    /* 幅が狭いと画面外にはみ出すので、SP では食い込ませない */
    margin-left: 0;
  }
  .recruit__text {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1.25rem;
  }
  .recruit__features {
    gap: 0.625rem;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2rem;
  }
  .recruit__feature {
    font-size: 0.8125rem;
  }
  .recruit__button {
    margin-top: 2.5rem;
  }
  .recruit__photos {
    aspect-ratio: 48/52;
    display: block;
    grid-template-columns: none;
    height: auto;
    padding-inline: 20px;
    position: relative;
  }
  .recruit__photo {
    --band-left: 20px;
    --band-width: calc(100% - 20px * 2);
    max-width: none;
    position: absolute;
  }
  .recruit__photo--01 {
    left: var(--band-left);
    top: 0;
    width: calc(var(--band-width) * 0.58);
  }
  .recruit__photo--02 {
    left: calc(var(--band-left) + var(--band-width) * 0.68);
    top: 24%;
    width: calc(var(--band-width) * 0.34);
  }
  .recruit__photo--03 {
    left: calc(var(--band-left) + var(--band-width) * 0.1);
    top: 48%;
    width: calc(var(--band-width) * 0.46);
  }
  .recruit__photo--04 {
    left: calc(var(--band-left) + var(--band-width) * 0.58);
    top: 72%;
    width: calc(var(--band-width) * 0.38);
  }
  .topics {
    padding-block: 4rem 4rem;
  }
  .topics__head {
    align-items: center;
  }
  .topics__more {
    margin-top: 0;
  }
  .topics__list {
    margin-top: 2rem;
  }
  .topics__link {
    align-items: center;
    gap: 0.375rem 0.75rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding-block: 1rem;
    padding-left: 0;
  }
  .topics__date {
    font-size: 0.8125rem;
  }
  .topics__cat {
    font-size: 0.75rem;
    min-height: 1.375rem;
    min-width: 5.25rem;
    padding-inline: 0.75rem;
  }
  .topics__title {
    font-size: 0.875rem;
    grid-column: 1/-1;
    letter-spacing: 0.04em;
  }
  .social {
    padding-top: 4rem;
  }
  .social__items {
    gap: 2.5rem;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2.5rem;
  }
  .social__button {
    font-size: 0.9375rem;
    margin-top: 1.5rem;
    min-height: 3.5rem;
    width: 18.125rem;
  }
  .coating-lineup {
    padding-block: 4rem;
  }
  .coating-lineup__head {
    align-items: center;
  }
  .coating-lineup__more {
    margin-top: 0;
  }
  .coating-lineup__lead {
    font-size: 0.875rem;
    letter-spacing: 0.08em;
    margin-top: 1rem;
  }
  .coating-lineup__cards {
    gap: 1.5rem 1rem;
    margin-top: 2rem;
  }
  .coating-lineup__name {
    font-size: 1rem;
    margin-top: 0.75rem;
  }
  .topics-detail {
    padding-bottom: 4rem;
    padding-top: 3rem;
  }
  .topics-detail__inner {
    padding-left: 20px;
    padding-right: 20px;
    row-gap: 2.5rem;
  }
  .topics-detail__content {
    row-gap: 2.5rem;
  }
  .topics-detail__head {
    padding-bottom: 1rem;
    row-gap: 1rem;
  }
  .topics-detail__date {
    font-size: 0.75rem;
  }
  .topics-detail__cat {
    font-size: 0.75rem;
  }
  .topics-detail__title {
    font-size: 1.375rem;
  }
  .topics-detail__body {
    font-size: 0.9375rem;
  }
  .topics-detail__body > * + * {
    margin-top: 2rem;
  }
  .topics-detail__body h2 {
    font-size: 1.25rem;
    padding-left: 0.875rem;
  }
  .topics-detail__body h3 {
    font-size: 1.125rem;
  }
  .topics-detail__body h4 {
    font-size: 1.0625rem;
  }
  .topics-detail__body h5 {
    font-size: 1rem;
  }
  .topics-detail__body blockquote {
    padding: 1rem 1.25rem;
  }
  .topics-list {
    padding-block: 3.5rem 6.25rem;
  }
  .topics-list__tab {
    font-size: 0.75rem;
    min-height: 1.5rem;
    padding-inline: 1rem;
  }
  .topics-list__list {
    margin-top: 3rem;
  }
  .topics-list__link {
    align-items: center;
    gap: 0.375rem 0.75rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding-block: 1rem;
    padding-inline: 0;
  }
  .topics-list__date {
    font-size: 0.8125rem;
  }
  .topics-list__cat {
    font-size: 0.75rem;
    min-height: 1.375rem;
    min-width: 5.25rem;
    padding-inline: 0.75rem;
  }
  .topics-list__title {
    font-size: 0.875rem;
    grid-column: 1/-1;
    letter-spacing: 0.04em;
  }
  .topics-list__pager {
    margin-top: 2.5rem;
  }
  .topics-list__pager-list {
    gap: 1.5rem;
  }
  .topics-list__pager-link {
    font-size: 1rem;
  }
  .works-detail {
    padding-bottom: 4rem;
    padding-top: 2rem;
  }
  .works-detail__inner {
    row-gap: 2.5rem;
  }
  .works-detail__title {
    font-size: 1.625rem;
  }
  .works-detail__lead {
    font-size: 0.875rem;
  }
  .works-detail__thumb {
    max-width: 70%;
  }
  .works-detail__thumbs-arrow {
    height: 2rem;
    width: 2rem;
  }
  .works-detail__spec-wrap {
    padding: 1rem;
  }
  .works-detail__nav {
    align-items: flex-start;
    flex-direction: column;
    padding-top: 0;
  }
  .works-detail__nav-link {
    font-size: 0.9375rem;
  }
  .works-detail__nav-link--next {
    margin-left: 0;
  }
  .works-detail__nav-icon {
    height: 1.75rem;
    width: 3.5rem;
  }
  .works-list {
    padding-block: 2.75rem 3.5rem;
  }
  .works-list__lead {
    font-size: 0.875rem;
    line-height: 1.8;
  }
  .works-list__body {
    margin-top: 3rem;
  }
  .works-list__head {
    margin-bottom: 2rem;
  }
  .works-list__heading {
    font-size: 1.5rem;
  }
  .works-list__note {
    font-size: 0.8125rem;
    margin-top: 0.625rem;
  }
  .works-list__tabs {
    gap: 0.625rem;
    margin-bottom: 2rem;
  }
  .works-list__tab {
    font-size: 0.75rem;
    min-height: 1.5rem;
    padding-inline: 0.75rem;
  }
  .works-list__grid {
    grid-template-columns: 1fr;
    row-gap: 2.5rem;
  }
  .works-list__cat {
    font-size: 0.75rem;
    min-height: 1.5rem;
    padding-inline: 0.75rem;
  }
  .works-list__title {
    font-size: 1rem;
  }
  .works-list__paint {
    font-size: 0.75rem;
  }
  .works-list__pager {
    margin-top: 2.5rem;
  }
  .works-list__pager-list {
    gap: 1.5rem;
  }
  .works-list__pager-link {
    font-size: 1rem;
  }
  .button {
    font-size: 0.9375rem;
    min-height: 3.5rem;
    padding-left: 2rem;
    padding-right: 1rem;
    width: 18.125rem;
  }
  .button::after {
    margin-left: 1.5rem;
  }
  .contact {
    padding-block: 4rem 4rem;
  }
  .contact--top {
    padding-top: 4rem;
  }
  .contact__card {
    padding: 3rem 1.25rem;
  }
  .contact__title {
    font-size: 2.375rem;
  }
  .contact__lead {
    font-size: 1.1875rem;
    margin-top: 1rem;
  }
  .contact__text {
    font-size: 0.8125rem;
    margin-top: 1.25rem;
  }
  .contact__buttons {
    gap: 1rem;
    margin-top: 2.25rem;
  }
  .contact__button {
    font-size: 0.8125rem;
    min-height: 3.5rem;
    padding-left: 1.25rem;
    padding-right: 2.75rem;
    width: 18.75rem;
  }
  .footer {
    padding-block: 4rem 1.5rem;
  }
  .footer__logo-image {
    width: 15rem;
  }
  .footer__name {
    font-size: 1.1875rem;
  }
  .footer__address {
    font-size: 0.8125rem;
    max-width: 100%;
  }
  .footer__url {
    font-size: 0.8125rem;
  }
  .footer__nav {
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
  }
  .footer__link {
    font-size: 0.9375rem;
  }
  .footer__copyright {
    font-size: 0.75rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
  }
  .header__inner {
    min-height: 4.5rem;
    padding-left: 20px;
    padding-right: 20px;
  }
  .header.is-compact .header__inner {
    min-height: 3.5rem;
  }
  .header__logo {
    width: 10rem;
  }
  .header.is-compact .header__logo {
    width: 8.25rem;
  }
  .inner {
    padding-left: 20px;
    padding-right: 20px;
  }
  .more-link__text {
    font-size: 0.9375rem;
  }
  .more-link__icon {
    height: 1.625rem;
    width: 3.25rem;
  }
  .other-page {
    padding-block: 3.5rem;
  }
  .other-page__title {
    font-size: 2rem;
  }
  .other-page__list {
    gap: 0.75rem;
    grid-template-columns: minmax(0, 1fr);
    margin-top: 1.5rem;
  }
  .other-page__link {
    font-size: 0.875rem;
    min-height: 3.5rem;
  }
  .page-back {
    padding: 6.25rem 20px 1.5rem;
  }
  .page-back__inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
  .page-back__icon {
    height: 1.625rem;
    width: 3.25rem;
  }
  .page-back__text {
    font-size: 0.875rem;
    margin-left: 0.75rem;
  }
  .page-head {
    padding: 6.875rem 20px 1.75rem;
  }
  .page-head__inner {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
  .page-head__en {
    font-size: 2.25rem;
  }
  .page-head__ja {
    font-size: 0.875rem;
  }
  .breadcrumb__item {
    font-size: 0.6875rem;
  }
  .breadcrumb__item + .breadcrumb__item {
    padding-left: 1.75rem;
  }
  .breadcrumb__item + .breadcrumb__item::before {
    left: 0.5625rem;
  }
  .sec-title__en {
    font-size: 2.25rem;
  }
  .sec-title__ja {
    font-size: 0.9375rem;
  }
}

@media (max-width: 375px){
  html {
    font-size: 4.2666666667vw;
  }
}
@media screen and (max-width: 767px){
  .contact-form__field .wpcf7-list-item-label {
    font-size: 0.9375rem;
  }
  .contact-form__privacy .wpcf7-list-item-label {
    font-size: 0.875rem;
  }
  .contact-form__privacy .wpcf7-list-item label {
    align-items: flex-start;
  }
  .contact-form__form .wpcf7-response-output {
    font-size: 0.875rem;
    margin-top: 1.5rem;
  }
}
