/* ==========================================================================
   Responsive — SP専用スタイル（max-width: 767px）
   (Logical-property conversion from JP site + new page rules)
   ========================================================================== */

@media screen and (max-width: 767px) {

  /* Fluid Typography SP基準: デザイン幅 400px */
  html {
    font-size: calc(100vw / 40);
  }

  /* 形状変数（SPインナー） */
  :root {
    --border-radius-inner: 0.6rem;
  }

  /* コンテナ */
  .l-container {
    padding: 0 2rem;
  }

  /* ヘッダー */
  .l-header {
    height: 6rem;
    padding: 0 2rem;
  }

  .l-nav {
    display: none;
  }

  .l-header__cta-pc {
    display: none;
  }

  .l-header__logo img {
    height: 4.4rem;
  }

  .l-header-burger {
    display: flex;
  }

  .l-sp-nav {
    display: flex;
  }

  /* 言語スイッチャーSP */
  .lang-switcher__dropdown {
    inset-inline-start: auto;
    inset-inline-end: 0;
  }

  /* セクションタイトル */
  .section-title-svg {
    height: 7.6rem;
  }

  .section-title-ja {
    font-size: 1.2rem;
  }

  /* --------------------------------------------------------------------------
     #mv SP
     -------------------------------------------------------------------------- */
  .section-mv {
    padding: 12rem 0 8rem;
    text-align: start;
  }

  .mv__content {
    max-width: 100%;
  }

  .mv__main-copy {
    font-size: 2.6rem;
    font-weight: var(--font-weight-semi-bold);
    line-height: 1.8;
    letter-spacing: 0.06em;
  }

  .mv__sub-copy {
    font-size: 1.4rem;
  }

  .mv__cta-group {
    flex-direction: column;
    align-items: flex-start;
  }

  .mv-illust-pc {
    display: none;
  }

  .mv-illust-sp {
    display: block;
  }

  /* SP イラスト配置（10体） */
  .mv-illust-sp .c-illust:nth-child(1)  { inset-inline-start: 5%;  top: 8%;  width: 22%; }
  .mv-illust-sp .c-illust:nth-child(2)  { inset-inline-start: 70%; top: 5%;  width: 25%; }
  .mv-illust-sp .c-illust:nth-child(3)  { inset-inline-start: 40%; top: 3%;  width: 18%; }
  .mv-illust-sp .c-illust:nth-child(4)  { inset-inline-start: -5%; top: 35%; width: 20%; }
  .mv-illust-sp .c-illust:nth-child(5)  { inset-inline-start: 75%; top: 30%; width: 22%; }
  .mv-illust-sp .c-illust:nth-child(6)  { inset-inline-start: 10%; top: 60%; width: 18%; }
  .mv-illust-sp .c-illust:nth-child(7)  { inset-inline-start: 65%; top: 55%; width: 20%; }
  .mv-illust-sp .c-illust:nth-child(8)  { inset-inline-start: 35%; top: 75%; width: 22%; }
  .mv-illust-sp .c-illust:nth-child(9)  { inset-inline-start: 80%; top: 75%; width: 16%; }
  .mv-illust-sp .c-illust:nth-child(10) { inset-inline-start: 0%;  top: 85%; width: 18%; }

  /* --------------------------------------------------------------------------
     #service SP
     -------------------------------------------------------------------------- */
  .section-service {
    padding: 8rem 0 10rem;
  }

  .service-item-link {
    height: auto;
    min-height: 36.8rem;
    padding: 3.2rem 3rem 12rem;
  }

  .service-item__heading {
    font-size: 2.2rem;
  }

  .service-item__icon {
    bottom: 3rem;
    inset-inline-start: 3rem;
  }

  .service-item__illust {
    inset-inline-end: -1rem;
    bottom: -1rem;
    width: 18rem;
  }

  /* --------------------------------------------------------------------------
     #strength SP
     -------------------------------------------------------------------------- */
  .section-strength {
    padding: 8rem 0;
  }

  .strength-item {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .strength-item__heading {
    font-size: 2.4rem;
  }

  .strength-item__text {
    font-size: 1.4rem;
  }

  .strength-item__image {
    border-radius: 1.6rem;
  }

  /* --------------------------------------------------------------------------
     #company SP
     -------------------------------------------------------------------------- */
  .section-company {
    padding: 8rem 0;
  }

  .company-table__row {
    flex-direction: column;
    gap: 0.4rem;
  }

  .company-table__label {
    width: 100%;
    font-size: 1.4rem;
  }

  .company-table__value {
    width: 100%;
    font-size: 1.4rem;
  }

  /* --------------------------------------------------------------------------
     #message SP
     -------------------------------------------------------------------------- */
  .section-message {
    padding: 8rem 0;
  }

  .message__grid {
    grid-template-columns: 1fr;
    gap: 4rem;
  }

  .message__image {
    margin-bottom: 2.4rem;
    border-radius: 0.8rem;
  }

  .message__heading {
    font-size: 2.4rem;
  }

  .message__text {
    font-size: 1.4rem;
    line-height: var(--leading-loose);
  }

  /* --------------------------------------------------------------------------
     #contact SP
     -------------------------------------------------------------------------- */
  .section-contact {
    padding: 8rem 0;
  }

  .contact__heading {
    font-size: 2.4rem;
  }

  .contact__cta-group {
    flex-direction: column;
    align-items: center;
  }

  .contact-form-wrapper {
    padding: 3.2rem;
  }

  .form-group__input,
  .form-group__textarea {
    font-size: 1.6rem;
  }

  .form-radio-group {
    flex-direction: column;
  }

  /* --------------------------------------------------------------------------
     Featured Products / Latest Articles SP
     -------------------------------------------------------------------------- */
  .product-card-grid,
  .post-card-grid,
  .post-grid {
    grid-template-columns: 1fr;
  }

  /* --------------------------------------------------------------------------
     フッター SP
     -------------------------------------------------------------------------- */
  .l-footer {
    padding: 6rem 0;
  }

  .l-footer__wow-text {
    font-size: 5rem;
  }

  .l-footer__nav {
    flex-direction: column;
    gap: 0.8rem;
  }

  /* --------------------------------------------------------------------------
     Products Page SP
     -------------------------------------------------------------------------- */
  .products-layout {
    grid-template-columns: 1fr;
    padding: 0 2rem;
  }

  .products-filter {
    position: static;
  }

  .products-grid {
    grid-template-columns: 1fr;
  }

  .products-grid--list .product-listing-card {
    grid-template-columns: 1fr;
  }

  .products-grid--list .product-listing-card__image {
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    aspect-ratio: 16 / 9;
    height: auto;
  }

  .product-detail__layout {
    grid-template-columns: 1fr;
    gap: 4rem;
  }

  .product-gallery {
    position: static;
  }

  .product-info__title {
    font-size: 2.4rem;
  }

  .product-related__grid,
  .product-blog__grid {
    grid-template-columns: 1fr;
  }

  .product-detail__inner {
    padding: 0 2rem;
  }

  /* --------------------------------------------------------------------------
     Blog Archive SP
     -------------------------------------------------------------------------- */
  .section-blog-header {
    padding: 12rem 0 4rem;
  }

  .blog-illust-pc {
    display: none;
  }

  .blog-categories__list {
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.8rem;
    justify-content: flex-start;
  }

  /* Featured Post SP */
  .featured-post__link {
    grid-template-columns: 1fr;
  }

  .featured-post__body {
    padding: 2.4rem;
  }

  .featured-post__title {
    font-size: 2rem;
  }

  /* Blog Newsletter SP */
  .blog-newsletter {
    padding: 4rem 2rem;
  }

  .blog-newsletter__form {
    flex-direction: column;
  }

  .blog-newsletter__title {
    font-size: 2rem;
  }

  /* --------------------------------------------------------------------------
     Blog Single SP
     -------------------------------------------------------------------------- */
  .article-hero {
    aspect-ratio: 16 / 9;
  }

  .article-layout {
    grid-template-columns: 1fr;
    padding: 0 2rem;
  }

  .article-toc {
    position: static;
    order: -1;
    margin-bottom: 3.2rem;
  }

  .article-header__title {
    font-size: 2.4rem;
  }

  .inline-product-cta {
    grid-template-columns: 1fr;
  }

  .related-articles {
    padding: 0 2rem;
  }

  .article-cta {
    padding: 4rem 2rem;
    margin-inline: 2rem;
  }

  .article-cta__title {
    font-size: 2rem;
  }

  .article-cta__buttons {
    flex-direction: column;
    align-items: center;
  }

  /* --------------------------------------------------------------------------
     Static Pages SP
     -------------------------------------------------------------------------- */
  .static-page__inner {
    padding: 0 2rem;
  }

  .about-hero__title {
    font-size: 2.6rem;
  }

  .about-company__row {
    flex-direction: column;
    gap: 0.4rem;
  }

  .about-company__label {
    width: 100%;
    font-size: 1.4rem;
  }

  .about-company__value {
    width: 100%;
    font-size: 1.4rem;
  }

  .about-export__grid {
    grid-template-columns: 1fr;
  }

  .about-certs__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-message__heading {
    font-size: 2.4rem;
  }

  .about-message__image {
    border-radius: 0.8rem;
  }

  .buyers-offer-item {
    height: auto;
    min-height: 36.8rem;
    padding: 3.2rem 3rem 12rem;
  }

  .buyers-offer-item__icon {
    bottom: 3rem;
    inset-inline-start: 3rem;
  }

  .buyers-offer-item__illust {
    inset-inline-end: -1rem;
    bottom: -1rem;
    width: 18rem;
  }

  .buyers-step {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }

  .buyers-moq__table th,
  .buyers-moq__table td {
    padding: 1rem 1.2rem;
    font-size: 1.3rem;
  }

  .buyers-regions__legend {
    flex-direction: column;
    align-items: start;
    gap: 1.2rem;
  }

  .buyers-regions__tag {
    font-size: 1.2rem;
  }

  .buyers-faq-item__question {
    font-size: 1.4rem;
    padding: 1.6rem 2rem;
  }

  .section-cta__heading {
    font-size: 2.4rem;
  }

  .section-cta__actions {
    flex-direction: column;
    align-items: center;
  }

  .contact-page__inner {
    padding: 0 2rem;
  }

  .contact-page__title {
    font-size: 2.4rem;
  }

  /* Privacy Policy SP */
  .pp-page {
    padding-top: 8rem;
    padding-bottom: 4.8rem;
  }

  .pp-container {
    padding: 0 1.6rem;
  }

  .pp-page__title {
    font-size: 2.4rem;
    margin-bottom: 3.2rem;
    padding-bottom: 1.6rem;
  }

  .pp-page__content {
    font-size: 1.4rem;
  }

  .pp-page__content h2 {
    font-size: 1.9rem;
    margin-top: 3.6rem;
  }

  .pp-page__content h3 {
    font-size: 1.6rem;
    margin-top: 2.4rem;
  }

  .pp-page__content h4 {
    font-size: 1.5rem;
  }

  .pp-page__content table {
    font-size: 1.3rem;
  }

  .pp-page__content th,
  .pp-page__content td {
    padding: 0.8rem 1.2rem;
  }

  /* --------------------------------------------------------------------------
     404 Page SP
     -------------------------------------------------------------------------- */
  .section-404__title { font-size: 8rem; }
  .section-404__message { font-size: 1.5rem; }
  .section-404__actions { flex-direction: column; align-items: center; }

  /* --------------------------------------------------------------------------
     Search Results SP
     -------------------------------------------------------------------------- */
  .section-heading__en { font-size: 2rem; }
  .search-results__grid { grid-template-columns: 1fr; }
  .search-results__actions { flex-direction: column; align-items: center; }
  .search-form { flex-direction: column; }

  /* --------------------------------------------------------------------------
     Contact Info Cards SP
     -------------------------------------------------------------------------- */
  .contact-info__grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .contact-info__card { padding: 2.4rem 2rem; }
}
