@charset "UTF-8";

@media screen and (max-width: 768px) {
  /* ==========================================================================
  ベース設定
  =========================================================================== */
  @font-face {
    font-family: "ShipporiAntique";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/ShipporiAntique-Regular.woff2") format("woff2");
    font-display: swap;
  }

  :root {
    /* カラー */
    --Main: #000;
    --Accent: #006699;
    --Back: #C1C1C1;

    /* フォント */
    --font_ja: "ShipporiAntique", sans-serif;
    --font_sans: sans-serif;
    --font_en: "futura-pt", sans-serif;
  }

  .html {
    font-size: 16px;
  }

  .body {
    padding-top: 4.5rem;
  }

  .body a:hover {
    opacity: 1;
  }

  .forPC {
    display: none;
  }
  
  .forPC-inline {
    display: none;
  }  

  .forSP {
    display: block;
  }
  
  .forSP-inline {
    display: inline;
  }
  

  /* ==========================================================================
  ヘッダー
  =========================================================================== */
  .header {
    display: flex;
    align-items: center;
    height: 4.5rem;
    padding: 0 3.73vw 0 1.33vw;
  }


  /* ========================================================
  ハンバーガーメニュー
  =========================================================*/
  .html:has(.js-hamburger-cont.is-active) {
    overflow: hidden;
  }

  /* ボタン */
  .hamburgerBtn {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    background-image: url(../img/menu_icon.svg);
    width: 3rem;
    aspect-ratio: 1;
    transition: all 0.3s;
    position: relative;
  }

  .hamburgerBtn.is-active {
    background-image: url(../img/close_icon.svg);
  }

  /* メニュー */
  .hamburgerContent {
    background: var(--Main);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    transform: translateX(100%);
    transition: all 0.5s;
    z-index: 100;
  }

  .hamburgerContent.is-active {
    overflow-y: auto;
    transform: translateX(0);
  }

  .hamburgerContent__wrap {
    padding-top: 19.05vh;
    height: 100%;
    overflow: hidden;
    position: relative;
  }

  .hamburgerContent__nav .menu {
    display: grid;
    place-items: center;
    grid-auto-rows: 1.25rem;
    gap: clamp(2.5rem, 7.94vh, 4rem);
  }

  .hamburgerContent__nav .menu a {
    font-family: var(--font_sans);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25rem;
    letter-spacing: 0.1em;
    display: inline-block;
  }

  .hamburgerContent__links {
    display: grid;
    place-items: center;
    gap: 1.5rem;
    margin-top: clamp(2.5rem, 7.94vh, 4rem);
  }

  .hamburgerContent__links-btn {
    font-family: var(--font_sans);
    font-weight: 700;
    font-size: 0.9375rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 20rem;
    height: 3.5rem;
  }

  .body a.hamburgerContent__links-btn--recruit {
    color: var(--Accent);
    background: #fff;
  }

  .body a.hamburgerContent__links-btn--contact {
    background: var(--Accent);
  }


  /* ==========================================================================
  トップページ
  =========================================================================== */
  .inner {
    width: 100%;
    padding: 0 5.33vw;
    margin: 0 auto;
  }

  .home__ttl {
    font-size: 2.5rem;
    line-height: 1.6875rem;
  }

  *.btn {
    width: 100%;
    margin-top: 2rem;
  }

  /* FV */
  .home__fv {
    height: auto;
    padding-bottom: 10.875rem;
  }

  .home__fv-img img {
    width: 100%;
    height: auto;
    min-height: auto;
    aspect-ratio: 375 / 207;
  }

  .home__fv-sideCatch {
    /* top: 37.57%; */
    top: 27%;
  }

  .home__fv-sideCatch svg,
  .home__fv-sideCatch image {
    width: 29.87vw;
  }

  .text svg:nth-of-type(2) {
    position: absolute;
    top: 2px;
  }

  .home__fv-centerCatch {
    width: 82.67vw;
    top: 49.47%;
    z-index: 1;
  }

  .home__fv-centerCatch svg {
  }

  .home__fv-centerCatch-ja {
    font-size: 0.75rem;
    margin-top: -0.625rem;
  }

  .home__fv-effect {
    width: 56.53vw;
  }

  .home__fv-line {
    height: 2.5rem;
    bottom: 4.0625rem;
  }

  /* MESSAGE */
  .home__message {
    padding-top: 0;
    padding-bottom: 4.625rem;
  }

  .home__message-content {
    flex-direction: column;
    gap: 2rem;
  }

  .home__message-slider {
    width: calc(100% + 5.33vw * 2);
    height: auto;
    margin: 0 -5.33vw;
  }

  .home__message-content-wrap {
    width: 100%;
    padding: 0 5.33vw;
  }

  .home__home__message-txt {
    text-align: justify;
    margin-top: 2rem;
  }

  /* WORKS */
  .home__works {
    padding: 2.5rem 0 2.125rem;
  }

  .home__works-imgs {
    flex-wrap: wrap;
    gap: 1rem;
    padding: 0;
  }

  .home__works-imgs > img {
    width: calc((100% - 1rem) / 2);
  }

  .home__works-txt {
    width: 100%;
    margin-top: 1.5rem;
  }

  .home__works a.btn {
    margin-top: 1.5rem;
  }

  .home__works02 .home__works-content {
    flex-direction: column;
  }

  .home__works02 .home__works-txt {
    text-align: justify;
    width: 100%;
    margin-top: 1.5rem;
  }

  .home__works02 .home__works-sliderWrap {
    width: calc(100% + 5.33vw * 2);
    flex-direction: column;
    gap: 1rem;
    position: static;
    transform: translateY(0);
    margin: 2.5rem -5.33vw 0;
  }

  .home__works-slider01,
  .home__works-slider02 {
    width: 100%;
  }


  .home__works-slider01 .swiper-wrapper,
  .home__works-slider02 .swiper-wrapper {
    width: 100%;
    height: auto;
  }

  .home__works-slider01 .swiper-slide,
  .home__works-slider02 .swiper-slide {
    width: 160px;
    height: 160px;
  }

  .home__works-slider01 .swiper-slide img,
  .home__works-slider02 .swiper-slide img {
    width: 160px;
    height: 160px;
    object-fit: cover;
  }


  /* FACTORY */
  .home__factory {
    padding: 5rem 0 4rem;
  }

  .home__factory .home__ttl {
    font-size: 3.5rem;
  }

  .home__factory-box {
    background-image: url(../img/home_factory_bg_sp.jpg);
    background-position: center top;
    background-size: 100% auto;
    background-color: transparent;
    width: 100%;
    padding: calc(44.53% + 2rem) 5.33vw 0;
    margin-top: 3.5rem;
  }

  .home__factory-box-txt {
    text-align: left;
  }

  /* RECRUIT */
  .home__recruit {
    text-align: left;
    z-index: 0;
  }
  
  .home__recruit-content {
    padding: 9.25rem 5.33vw 2.125rem;
  }

  .home__recruit-txt {
    margin-top: 8rem;
  }

  .home__recruit-content img {
    width: calc(100% - (9.125rem + 5.33vw));
    height: 17.5rem;
    object-fit: cover;
    z-index: -1;
  }

  .home__recruit-effect {
    top: 0;
    z-index: -1;
  }

  .home__recruit a.btn {
    margin-top: 1.5rem;
  }

  /* contact */
  .home__contact {
    padding: 3.5rem 0 6rem;
  }

  .home__contact-content {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }


  /* ==========================================================================
  固定ページ
  =========================================================================== */
  .page:not(.home) .inner {
    width: 100%;
    padding: 0 5.33vw;
  }

  .page__top {
    height: 10rem;
    padding-left: 2.25rem;
  }

  .page__top-bg {
    background-image: url(../img/page_top_bg_sp.png);
  }

  .page__top img {
    width: 7.25rem;
    top: 0;
    right: -0.1875rem;
  }

  .page__top-ttl {
    font-size: 2.5rem;
    line-height: 1.6875rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
  }

  .page__top-ttl::after {
    font-size: 1rem;
    line-height: 0.75rem;
  }

  .page__heading {
    height: 7.5rem;
  }


  /* ==========================================================================
  WORKS - 製作加工・実績
  =========================================================================== */
  .works__list {
    grid-template-columns: repeat(1, 1fr);
    gap: 3.4375rem 0;
    margin-top: 2rem;
  }

  .works__results {
    margin-top: 6rem;
  }

  .works__results-grid {
    grid-template-columns: 1fr;
    border: 1px solid #fff;
    width: calc(100% - 5.33vw * 2);
    margin-top: 2rem;
  }

  .works__results-grid-ttl,
  .works__results-grid-item {
    grid-column: span 1;
  }

  .works__results-grid-item > div:empty {
    display: none;
  }

  .works__results-grid-item:first-of-type > div:first-of-type {
    border-top: none;
  }

  .works__results-grid-item > div:first-of-type {
    border-top: 1px solid #fff;
  }

  .works__results-grid-item > div:nth-of-type(n+2) {
    border-left: none;
  }


  /* ==========================================================================
  FACTORY - 製作工場
  =========================================================================== */
  .factory__img {
    margin: 0 -5.33vw;
  }

  .factory__box {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 1.5rem;
    margin-top: 2.5rem;
  }

  .factory__box + .factory__box {
    margin-top: 3.5rem;
  }

  .factory__box01 .factory__box-heading,
  .factory__box02 .factory__box-heading {
    grid-column: 1;
    grid-row: 1;
  }

  .factory__box01 img:nth-of-type(1),
  .factory__box02 img:nth-of-type(1) {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    height: auto;
    aspect-ratio: 335 / 447;
  }

  .factory__box01 img:nth-of-type(2),
  .factory__box02 img:nth-of-type(2) {
    grid-column: 1;
    grid-row: 3;
    width: 100%;
    height: auto;
  }

  .factory__box .page__ttl {
    margin-top: 0;
  }

  .factory__machines {
    margin-top: 5rem;
  }

  .factory__machines-list {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 2rem;
  }

  .factory__machines-list-item-txt {
    margin-top: 0.5rem;
  }


  /* ==========================================================================
  COMPANY - 会社案内
  =========================================================================== */
  .company__message {
    flex-direction: column;
    gap: 2.125rem;
    margin-top: 2.8125rem;
  }

  .company__message-txt {
    width: 100%;
    margin-top: 0;
  }

  .company__philosophy {
    flex-direction: column;
    gap: 2rem;
    margin-top: 4rem;
  }

  .company__philosophy-box {
    font-size: 1.625rem;
    width: 100%;
    height: 6.375rem;
  }

  .company__philosophy + img {
    margin-top: 1.25rem;
  }

  .company__info {
    margin-top: 5rem;
  }

  .dl {
    grid-template-columns: 6.5rem 1fr;
    width: 100%;
  }

  .company__info-dl {
    margin-top: 2rem;
  }


  .company__info-dl dd > dl {
    grid-template-columns: 12.5rem 1fr;
  }

  .company__access {
    margin-top: 5rem;
  }

  .company__access-inner {
    width: 100%;
    padding: 0 5.33vw;
  }

  .company__access-txt {
    margin-top: 2rem;
  }

  .company__access-map {
    padding-top: 23.625rem;
    margin-top: 1.25rem;
  }


  /* ==========================================================================
  RECRUIT - 採用情報
  =========================================================================== */
  .recruit .page__top {
    height: 12.5rem;
    padding-top: 2.625rem;
    padding-left: 2.25rem;
  }
  
  .recruit .page__top-bg {
    background-image: url(../img/recruit_top_bg_sp.jpg);
  }

  .recruit .page__top-ttl {
    font-size: 2.5rem;
    line-height: 1.6875rem;
    gap: 1.5rem;
  }

  .recruit .page__top-ttl::after {
    font-size: 1rem;
    line-height: 0.75rem;
  }

  .recruit__txt {
    margin-top: 2.375rem;
  }

  .recruit__dl {
    grid-template-columns: 1fr;
    margin-top: 2.5rem;
  }

  .recruit__dl dt {
    border-bottom: none;
    padding-bottom: 0;
  }

  .recruit__dl dd {
    padding-top: 0.5rem;
  }

  .recruit .btn {
    width: 100%;
    margin-top: 2.5rem;
  }


  /* ==========================================================================
  PRIVACY POLICY - プライバシーポリシー
  =========================================================================== */
  .privacy-policy__content {
    width: 100%;
    padding: 0 5.33vw;
    margin-top: 2.5rem;
  }

  .privacy-policy__txt {
    font-weight: 700;
    text-align: center;
  }

  .privacy-policy__txt + h2 {
    margin-top: 2.5rem;
  }


  /* ==========================================================================
  CONTACT - お問い合わせ
  =========================================================================== */
  .contact form {
    width: calc(100% - 5.33vw * 2);
    margin-top: 2.5rem;
  }

  .contact-confirm .wpcf7-turnstile.cf-turnstile {
    width: 100%;
  }

  /* 確認画面 */
  .contact-confirm__txt,
  .contact-thanks__txt {
    margin-top: 2.5rem;
  }

  .contact-confirm__dl {
    grid-template-columns: 1fr;
    margin-top: 2.5rem;
  }

  .contact-confirm__dl dt {
    border-bottom: none;
    padding-bottom: 0;
  }

  .contact-confirm__dl dd {
    padding-top: 0.5rem;
  }

  /* 完了 */
  .contact-thanks .btn {
    margin-top: 2.5rem;
  }


  /* ==========================================================================
  フッター
  =========================================================================== */
  .footer {
    border-top: 1px solid #fff;
    padding: 1.25rem 0;
  }

  .page .footer {
    margin-top: 5rem;
  }

  .home .footer {
    margin-top: 0;
  }

  .footer__content {
    flex-direction: column;
    width: 100%;
    padding: 0 5.33vw;
  }

  .footer__info-flex {
    flex-direction: column;
  }

  .footer__info-address {
    text-align: center;
  }

  .footer__nav {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
  }

  .footer__nav > div {
    display: inline-block;
  }

  .footer__nav .menu {
    grid-template-rows: repeat(4, 1.5625rem);
    gap: 1rem 2.5rem;
  }

  .footer__nav .menu a {
    font-size: 0.875rem;
    line-height: 1.5625rem;
  }

  .footer__copyright {
    text-align: center;
    margin-top: 2rem;
  }

}