@charset "UTF-8";
/* ---------------------------------------------
   基本設定
--------------------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*, *::before, *::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
}

/* ---------------------------------------------
   マージン／パディング初期化
--------------------------------------------- */
body, h1, h2, h3, h4, h5, h6, p,
ul, ol, li, dl, dt, dd,
figure, blockquote, pre,
fieldset, legend {
  margin: 0;
  padding: 0;
}

/* ---------------------------------------------
   ベース要素（値は持たせない）
--------------------------------------------- */
body {
  text-rendering: optimizeSpeed;
}

/* ---------------------------------------------
   タイポグラフィ初期化
--------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

strong, b {
  font-weight: inherit;
}

em, i {
  font-style: inherit;
}

/* ---------------------------------------------
   リスト／リンク
--------------------------------------------- */
ul, ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}

a:hover,
a:focus-visible {
  opacity: 0.8;
}

/* ---------------------------------------------
   メディア要素
--------------------------------------------- */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

svg {
  vertical-align: middle;
}

/* ---------------------------------------------
   テーブル
--------------------------------------------- */
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

/* ---------------------------------------------
   フォーム要素
--------------------------------------------- */
input, button, textarea, select {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  outline: none;
}

button {
  cursor: pointer;
}

textarea {
  resize: vertical;
}

/* ---------------------------------------------
   フォーカス（アクセシビリティ）
--------------------------------------------- */
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ---------------------------------------------
   WordPress固有要素対策
--------------------------------------------- */
.alignnone,
.aligncenter,
.alignright,
.alignleft {
  display: block;
  margin: 0 auto;
}

.wp-caption {
  max-width: 100%;
}

/* ---------------------------------------------
   電話番号リンク無効化（PCのみ）
--------------------------------------------- */
@media (hover: hover) {
  .tel-link {
    pointer-events: none;
    cursor: text;
  }
}
/* ---------------------------------------------
   body
--------------------------------------------- */
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 1.6vw, 0.9rem);
  line-height: 1.5;
  color: #1c1c1c;
  background-color: #f4f4f4;
  overflow-x: hidden;
}

/* ---------------------------------------------
   テキスト要素
--------------------------------------------- */
p {
  font-size: clamp(0.875rem, 1.6vw, 0.9rem);
}

small {
  font-size: clamp(0.75rem, 1.4vw, 0.75rem);
}

/* ---------------------------------------------
   リンク
--------------------------------------------- */
a {
  color: inherit;
}

/* ---------------------------------------------
   ページ内アンカーリンク
   固定ヘッダー（高さ70px）に見出しが隠れないよう、
   id属性を持つ要素全般にスクロール位置の余白を確保する
   （JS：initAnchorScroll と対で使用。JS未実行時のフォールバックにもなる）
--------------------------------------------- */
:where([id]) {
  scroll-margin-top: 70px;
}

/* ------------------------------------------------------------------------------
   Header（PC / SP 共通）
------------------------------------------------------------------------------ */
.l-header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 999999;
}
.l-header__pill {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 70px;
  padding: 0 0 0 25px;
  position: relative;
  z-index: 20;
  -webkit-transition: background-color 0.3s ease, border-color 0.3s ease;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}
.l-header__logo {
  width: 139px;
  max-width: 139px;
  margin-right: auto;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.l-header__logo a {
  position: relative;
  display: block;
  width: 139px;
  max-width: 139px;
  height: 35px;
  overflow: hidden;
  line-height: 0;
}
.l-header__logo-img {
  width: 139px;
  max-width: 139px;
  max-height: 35px;
  height: auto;
  display: block;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.l-header__logo-img--dark {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.l-header {
  /* スクロール後（白系コンテンツ上） */
}
.l-header.is-scrolled .l-header__pill {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom-color: rgba(0, 0, 0, 0.06);
}
.l-header.is-scrolled .l-header__menu-item:not(.l-header__contact) > a,
.l-header.is-scrolled .l-header__menu-item:not(.l-header__contact) .l-header__menu-label {
  color: #1a1a1a;
}
.l-header.is-scrolled .l-header__contact > a {
  color: #fff;
}
.l-header.is-scrolled .l-header__logo-img--light {
  opacity: 0;
}
.l-header.is-scrolled .l-header__logo-img--dark {
  opacity: 1;
}
.l-header__nav {
  position: static;
  z-index: 20;
  height: 100%;
}
.l-header__menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 40px;
  height: 100%;
}
.l-header__menu-item {
  position: relative;
  font-size: 0.875rem;
  font-weight: 500;
}
.l-header__menu-item > a,
.l-header__menu-item .l-header__menu-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 70px;
  padding: 0;
  color: #fff;
  cursor: pointer;
  white-space: nowrap;
}
.l-header__menu-item--sp {
  display: none;
}
.l-header {
  /* --------------------------------------------------------------------------
     Mega menu（PC）
  -------------------------------------------------------------------------- */
}
.l-header__mega {
  position: fixed;
  top: 70px;
  left: 0;
  width: 100%;
  background: rgba(31, 31, 31, 0.95);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  -webkit-box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
          box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  display: none;
  z-index: 10;
  padding: 40px 0 60px;
}
.l-header__mega-inner {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
}
.l-header__mega-title {
  margin-bottom: 30px;
}
@media (max-width: 980px) {
  .l-header__mega-title {
    display: none;
  }
}
.l-header__mega-title-en {
  display: block;
  font-size: 2rem;
  font-family: "Figtree", sans-serif;
  font-weight: 600;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.05em;
}
.l-header__mega-title-ja {
  display: block;
  font-size: 0.875rem;
  color: #fff;
  margin-top: 8px;
  font-weight: 500;
  opacity: 0.7;
}
.l-header__mega-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 30px 20px;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.l-header__mega-item {
  width: calc((100% - 60px) / 4);
  opacity: 0;
}
.l-header__mega-item a {
  display: block;
  color: #fff;
  text-align: center;
}
.l-header__mega-thumb {
  width: 100%;
  aspect-ratio: 1.9927536232;
  overflow: hidden;
  margin-bottom: 15px;
  background: #000;
  border-radius: 2px;
}
.l-header__mega-thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.l-header__mega-item:hover .l-header__mega-thumb img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.l-header__mega-text {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
}
.l-header {
  /* Keyframes for Mega Menu */
}
@-webkit-keyframes megaFadeIn {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes megaFadeIn {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.l-header {
  /* hoverでメガメニュー表示・フェードイン（PC専用 981px以上） */
}
@media (min-width: 981px) {
  .l-header__menu-item--has-children:hover > .l-header__mega {
    display: block;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item {
    -webkit-animation: megaFadeIn 1.6s cubic-bezier(0.22, 1, 0.36, 1) both;
            animation: megaFadeIn 1.6s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(1) {
    -webkit-animation-delay: 0.08s;
            animation-delay: 0.08s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(2) {
    -webkit-animation-delay: 0.16s;
            animation-delay: 0.16s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(3) {
    -webkit-animation-delay: 0.24s;
            animation-delay: 0.24s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(4) {
    -webkit-animation-delay: 0.32s;
            animation-delay: 0.32s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(5) {
    -webkit-animation-delay: 0.4s;
            animation-delay: 0.4s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(6) {
    -webkit-animation-delay: 0.48s;
            animation-delay: 0.48s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(7) {
    -webkit-animation-delay: 0.56s;
            animation-delay: 0.56s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(8) {
    -webkit-animation-delay: 0.64s;
            animation-delay: 0.64s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(9) {
    -webkit-animation-delay: 0.72s;
            animation-delay: 0.72s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(10) {
    -webkit-animation-delay: 0.8s;
            animation-delay: 0.8s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(11) {
    -webkit-animation-delay: 0.88s;
            animation-delay: 0.88s;
  }
  .l-header__menu-item--has-children:hover .l-header__mega-item:nth-child(12) {
    -webkit-animation-delay: 0.96s;
            animation-delay: 0.96s;
  }
}
.l-header__contact {
  margin-left: 0;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}
.l-header__contact > a {
  background: #006be8;
  color: #fff;
  height: 70px;
  padding: 0 30px;
  border-radius: 0;
  font-size: 0.875rem;
  font-weight: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  line-height: 1;
  white-space: nowrap;
}
.l-header__contact-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 20px;
  height: 20px;
  line-height: 0;
}
.l-header__contact-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  display: block;
}
.l-header__hamburger {
  display: none;
}

/* ------------------------------------------------------------------------------
   Mask
------------------------------------------------------------------------------ */
.l-header__mask {
  position: fixed;
  inset: 0;
  background: #000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.4s;
  transition: opacity 0.4s;
  z-index: 15;
}

@media (min-width: 981px) {
  .l-header:has(.l-header__menu-item--has-children:hover) .l-header__mask {
    opacity: 0.8;
    visibility: visible;
    pointer-events: auto;
  }
}
/* ------------------------------------------------------------------------------
   Tablet Landscape / Narrow PC（1100px〜981px）
------------------------------------------------------------------------------ */
@media (max-width: 1100px) and (min-width: 981px) {
  .l-header__pill {
    padding-left: 20px;
  }
  .l-header__logo {
    width: 120px;
    max-width: 120px;
  }
  .l-header__logo a {
    width: 120px;
    max-width: 120px;
    height: 30px;
  }
  .l-header__logo-img {
    width: 120px;
    max-width: 120px;
    max-height: 30px;
  }
  .l-header__nav {
    min-width: 0;
  }
  .l-header__menu {
    gap: 20px;
  }
  .l-header__menu-item {
    font-size: 0.8125rem;
  }
  .l-header__menu-item > a,
  .l-header__menu-item .l-header__menu-label {
    white-space: nowrap;
  }
  .l-header__contact > a {
    padding: 0 20px;
  }
}
/* ==============================================================================
   SP（〜980px）
============================================================================== */
@media (max-width: 980px) {
  .l-header__pill {
    padding-left: 20px;
  }
  .l-header__logo {
    width: 110px;
    max-width: 110px;
  }
  .l-header__logo a {
    width: 110px;
    max-width: 110px;
    height: 28px;
  }
  .l-header__logo-img {
    width: 110px;
    max-width: 110px;
    max-height: 28px;
  }
  .l-header__nav {
    width: 80%;
    height: 100vh;
    height: 100dvh;
    position: fixed;
    top: 0;
    left: -120%;
    background: #0f1113;
    -webkit-transition: left 0.6s ease;
    transition: left 0.6s ease;
    z-index: 20;
    overflow-y: hidden;
    pointer-events: none;
  }
  .l-header__nav.active {
    left: 0;
    overflow-y: auto;
    -ms-scroll-chaining: none;
        overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
  }
  .l-header__menu {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 0;
    padding: 0 0 calc(env(safe-area-inset-bottom) + 24px);
    height: auto;
    overflow: visible;
  }
  .l-header__menu > li {
    width: 100%;
  }
  .l-header__menu {
    /* border-top 込みで 70px に収め、内側リンクは li の高さに追従 */
  }
  .l-header__menu > li:not(.l-header__contact):not(.l-header__tel) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 70px;
    min-height: 70px;
    max-height: 70px;
    margin: 0;
    padding: 0;
    border-top: 1px solid #1f1f1f;
    border-bottom: none;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    overflow: hidden;
    /* 製品一覧：開いたときは下層メニュー分まで伸ばす */
  }
  .l-header__menu > li:not(.l-header__contact):not(.l-header__tel).l-header__menu-item--has-children.is-spOpen {
    height: auto;
    min-height: 70px;
    max-height: none;
    overflow: visible;
  }
  .l-header__menu > li:not(.l-header__contact):not(.l-header__tel) > a,
  .l-header__menu > li:not(.l-header__contact):not(.l-header__tel) > .l-header__menu-label {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    line-height: 1;
    text-align: left;
  }
  .l-header__menu {
    /* 製品一覧ラベルは1行固定（flex:1 による下層との間隔拡大を防ぐ） */
    /* 直上セレクタと同等以上の詳細度にして min-height: 0 の上書きを確実に効かせる */
  }
  .l-header__menu > li.l-header__menu-item--has-children:not(.l-header__contact):not(.l-header__tel) > .l-header__menu-label {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    min-height: 69px;
  }
  .l-header__menu-item > a,
  .l-header__menu-item > .l-header__menu-label {
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .l-header__menu-item--sp {
    display: list-item;
  }
  .l-header {
    /* ----------------------------------------------------------------------
       2階層メニュー（SP）
       ※ PCドロップダウンの影響を完全に無効化
    ---------------------------------------------------------------------- */
  }
  .l-header__menu-item--has-children.is-spOpen > .l-header__mega {
    -ms-grid-rows: 1fr;
    grid-template-rows: 1fr;
    -webkit-transition: grid-template-rows 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    transition: grid-template-rows 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    transition: grid-template-rows 0.8s cubic-bezier(0.22, 1, 0.36, 1), -ms-grid-rows 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .l-header__menu-item--has-children .l-header__menu-label {
    position: relative;
    -ms-flex-negative: 0;
        flex-shrink: 0;
  }
  .l-header__menu-item--has-children .l-header__menu-label::before {
    content: "";
    width: 15px;
    height: 1px;
    background: #f0f0f0;
    position: absolute;
    top: 50%;
    right: 20px;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .l-header__menu-item--has-children .l-header__menu-label::after {
    content: "";
    width: 1px;
    height: 15px;
    background: #f0f0f0;
    position: absolute;
    top: 50%;
    right: 27px;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .l-header__menu-item--has-children .l-header__menu-label.active::after {
    display: none;
  }
  .l-header__menu-item--has-children .l-header__mega {
    position: static;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: 0fr;
    grid-template-rows: 0fr;
    overflow: hidden;
    -webkit-transition: grid-template-rows 0.3s ease-in;
    transition: grid-template-rows 0.3s ease-in;
    transition: grid-template-rows 0.3s ease-in, -ms-grid-rows 0.3s ease-in;
    padding: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
    border: none;
    background: transparent;
    width: 100%;
  }
  .l-header__menu-item--has-children .l-header__mega-inner {
    overflow: hidden;
    min-height: 0;
    padding: 0;
    max-width: none;
  }
  .l-header__menu-item--has-children .l-header__mega-list {
    display: block;
    gap: 0;
  }
  .l-header__menu-item--has-children .l-header__mega-item {
    width: 100%;
    max-width: none;
    border-top: 1px solid #1f1f1f;
  }
  .l-header__menu-item--has-children .l-header__mega-item a {
    width: 100%;
    height: 70px;
    min-height: 70px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    padding: 0 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    text-align: left;
    text-indent: 1em;
  }
  .l-header__menu-item--has-children .l-header__mega-thumb {
    display: none;
  }
  .l-header__menu-item--has-children .l-header__mega-item {
    opacity: 1;
  }
  .l-header__menu-item--has-children .l-header__mega-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    font-weight: normal;
  }
  .l-header {
    /* Contact（SP） */
  }
  .l-header__contact {
    display: block;
    width: 90%;
    margin: 30px auto 0;
    padding: 0 20px;
    -ms-flex-item-align: auto;
        -ms-grid-row-align: auto;
        align-self: auto;
    border-top: none;
  }
  .l-header__contact > a {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    max-width: 320px;
    width: 100%;
    height: 48px;
    min-height: 48px;
    max-height: none;
    margin: 0 auto;
    padding: 0 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important;
    gap: 8px;
    line-height: 1;
    background: #006be8;
    border-radius: 0;
  }
  .l-header {
    /* スマホ：問い合わせボタン下の電話番号（footer-cta と同内容） */
  }
  .l-header__tel {
    display: block;
    width: 90%;
    margin: 20px auto 0;
    padding: 0 20px 8px;
    height: auto;
    min-height: 0;
    max-height: none;
    border-top: none;
    text-align: center;
  }
  .l-header__tel-link {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 8px;
    width: 100%;
    color: #fff;
  }
  .l-header__tel-icon {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 18px;
    height: 18px;
    line-height: 0;
  }
  .l-header__tel-icon img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    display: block;
  }
  .l-header__tel-number {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1;
  }
  .l-header__tel-note {
    margin: 6px 0 0;
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
  }
  .l-header {
    /* hamburger */
  }
  .l-header__hamburger {
    display: block;
    position: fixed;
    top: 10px;
    right: 10px;
    width: 50px;
    height: 50px;
    z-index: 30;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    -ms-touch-action: manipulation;
        touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .l-header__hamburger span {
    width: 30px;
    height: 2px;
    background: #f0f0f0;
    position: absolute;
    left: 10px;
    pointer-events: none;
    -webkit-transition: background-color 0.3s ease, top 0.4s, opacity 0.4s, -webkit-transform 0.4s;
    transition: background-color 0.3s ease, top 0.4s, opacity 0.4s, -webkit-transform 0.4s;
    transition: background-color 0.3s ease, transform 0.4s, top 0.4s, opacity 0.4s;
    transition: background-color 0.3s ease, transform 0.4s, top 0.4s, opacity 0.4s, -webkit-transform 0.4s;
  }
  .l-header__hamburger span:nth-of-type(1) {
    top: 16px;
  }
  .l-header__hamburger span:nth-of-type(2) {
    top: 25px;
  }
  .l-header__hamburger span:nth-of-type(3) {
    top: 34px;
  }
  .l-header__hamburger.active span {
    background: #fff;
  }
  .l-header__hamburger.active span:nth-of-type(1) {
    top: 24px;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
  .l-header__hamburger.active span:nth-of-type(2) {
    opacity: 0;
  }
  .l-header__hamburger.active span:nth-of-type(3) {
    top: 24px;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .l-header__mask.active {
    opacity: 0.8;
    visibility: visible;
    pointer-events: auto;
  }
  /* 980px以下：スクロール後はロゴ・ハンバーガーのみ切替（pill・ドロワーメニューは変更しない） */
  .l-header.is-scrolled .l-header__pill {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom-color: transparent;
  }
  .l-header.is-scrolled .l-header__menu-item:not(.l-header__contact) > a,
  .l-header.is-scrolled .l-header__menu-item:not(.l-header__contact) .l-header__menu-label {
    color: #fff;
  }
  .l-header.is-scrolled .l-header__contact > a {
    color: #fff;
  }
  .l-header.is-scrolled .l-header__logo-img--light {
    opacity: 0;
  }
  .l-header.is-scrolled .l-header__logo-img--dark {
    opacity: 1;
  }
  .l-header.is-scrolled .l-header__hamburger:not(.active) span {
    background: #1a1a1a;
  }
  .l-header.is-scrolled .l-header__hamburger.active span {
    background: #fff;
  }
}
/* ------------------------------------------------------------------------------
  すりガラス：非対応ブラウザ / 視差効果オフ
------------------------------------------------------------------------------ */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .l-header__pill {
    background: rgba(255, 255, 255, 0.98);
  }
  .l-header.is-scrolled .l-header__pill {
    background: rgba(255, 255, 255, 0.98);
  }
  @media (max-width: 980px) {
    .l-header__pill {
      background: rgba(255, 255, 255, 0.98);
    }
    .l-header.is-scrolled .l-header__pill {
      background: rgba(255, 255, 255, 0.98);
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  .l-header__pill,
  .l-header__logo-img {
    -webkit-transition: none;
    transition: none;
  }
}
/* ------------------------------------------------------------------------------
  スマホ固定フッターCTA
------------------------------------------------------------------------------ */
.l-footer-fixed {
  display: none;
}

@media (max-width: 768px) {
  /* 固定CTAが本文に被らないように下余白を確保 */
  body {
    padding-bottom: calc(60px + env(safe-area-inset-bottom));
  }
  .l-footer-fixed {
    display: block;
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 9999;
    padding-bottom: env(safe-area-inset-bottom);
    background: #1f1f1f;
    -webkit-box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.2);
            box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.2);
  }
  .l-footer-fixed__inner {
    height: 60px;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    list-style: none;
  }
  .l-footer-fixed__item {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
  }
  .l-footer-fixed__item:last-child {
    border-right: none;
  }
  .l-footer-fixed__item--contact {
    background: #006be8;
  }
  .l-footer-fixed__item--tel {
    background: #282828;
  }
  .l-footer-fixed__link {
    width: 100%;
    height: 100%;
    text-decoration: none;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 8px;
  }
  .l-footer-fixed__link--tel {
    color: #fff;
  }
  .l-footer-fixed__icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    line-height: 0;
  }
  .l-footer-fixed__icon img {
    width: 20px;
    height: 20px;
    display: block;
    -o-object-fit: contain;
       object-fit: contain;
  }
  .l-footer-fixed__text {
    font-size: clamp(0.625rem, 2.8vw, 0.75rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .l-footer-fixed__link--tel .l-footer-fixed__text {
    font-size: clamp(1.015625rem, 4.5vw, 1.171875rem);
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.02em;
  }
  /* メニュー展開中は固定CTAを非表示（ドロワー内の問い合わせ・電話と重複防止） */
  html.is-header-menu-open .l-footer-fixed {
    display: none;
  }
  html.is-header-menu-open body {
    padding-bottom: 0;
  }
}
@media (max-width: 768px) and (max-width: 480px) {
  .l-footer-fixed__link--tel .l-footer-fixed__text {
    font-size: clamp(0.8125rem, 3.8vw, 0.9375rem);
  }
}
/* ------------------------------------------------------------------------------
  レイアウト : フッター（sec-footer）
------------------------------------------------------------------------------ */
/* 最長行「ADVANCING MANUFACTURING」（sec-fv は 16・フッターはほんの少し小さく 17） */
.sec-footer {
  position: relative;
  z-index: 1;
  background: #1f1f1f;
  color: #fff;
  /* 末尾要素のマージン相殺で下に隙間が空くのを防ぐ */
  display: flow-root;
}

/* footer-cta 直下：余白なく接続（980px以下で margin-top は mq 内で上書き） */
.sec-contact + .sec-footer {
  margin-top: 0;
}

.sec-footer__bg {
  display: none;
}

.sec-footer__inner {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
  padding: 80px 20px 32px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.sec-footer__title {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: clamp(2rem, 4.44vw, 4rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.sec-footer__title.u-text-split .u-text-split__line + .u-text-split__line {
  margin-top: 0;
}
.sec-footer__title.u-text-split .u-text-split__line {
  line-height: 1;
}
.sec-footer__title.u-text-split .u-text-split__char {
  line-height: 1;
}

.sec-footer__title-line {
  display: block;
}

.sec-footer__line {
  width: 100vw;
  height: 0;
  margin: 68px 0 0;
  margin-left: calc(50% - 50vw);
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

/* 下層：お問い合わせ → フッター間の区切り線 */
.sec-footer__line--boundary {
  margin-top: 0;
}

.sec-footer__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 40px;
  margin-top: 95px;
}

.sec-footer__info {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: min(100%, 314px);
}

.sec-footer__logo {
  display: block;
  line-height: 0;
  text-decoration: none;
}
.sec-footer__logo img {
  width: 139px;
  height: auto;
  display: block;
}

.sec-footer__address {
  margin: 23px 0 0;
  font-size: 0.875rem;
  font-weight: 400;
  font-style: normal;
  line-height: 1.8571428571;
  letter-spacing: 0;
}
.sec-footer__address a {
  color: inherit;
  text-decoration: none;
}

.sec-footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: clamp(48px, 11vw, 212px);
  margin-left: auto;
}

.sec-footer__nav-col {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.sec-footer__nav-head {
  margin: 0;
}
.sec-footer__nav-head a {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 3.1428571429;
  color: #fff;
  text-decoration: none;
}

.sec-footer__nav-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.sec-footer__nav-list a {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 3.1428571429;
  color: #fff;
  text-decoration: none;
}

.sec-footer__nav-list--sub {
  margin-top: 5px;
}
.sec-footer__nav-list--sub a {
  font-weight: 400;
  line-height: 2.1428571429;
  color: rgba(255, 255, 255, 0.8);
}

.sec-footer__body + .sec-footer__line {
  margin-top: 93px;
}

.sec-footer__copyright {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 26px;
  min-height: 26px;
  max-height: 26px;
  margin: 32px 0 0;
  padding: 0;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

/* トップページ：sec-fv 固定動画を透過表示 */
.sec-footer--video {
  min-height: 876px;
  margin-top: -1px;
  /* 下端で固定動画が素通しにならないよう、フッター自体にも同色の透過背景を敷く */
  background: rgba(31, 31, 31, 0.52);
  /* min-height 余剰をコピーライト下ではなく、下線〜コピーライト上に回す */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.sec-footer--video .sec-footer__bg {
  display: block;
  position: absolute;
  top: -1px;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.sec-footer--video .sec-footer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(31, 31, 31, 0.52);
}
.sec-footer--video {
  /* コピーライト下余白は下層と同じ（.sec-footer__inner の padding-bottom を継承） */
}
.sec-footer--video .sec-footer__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  width: 100%;
}
.sec-footer--video {
  /* 余った高さは下線の上に吸収し、コピーライトをフッター下端へ寄せる */
}
.sec-footer--video .sec-footer__body + .sec-footer__line {
  margin-top: auto;
}

/* ヘッダー（ハンバーガー）と同じ 980px でレイアウト切替 */
@media (max-width: 980px) {
  .sec-contact + .sec-footer {
    margin-top: -1px;
  }
  .sec-contact + .sec-footer .sec-footer__line--boundary {
    display: block;
    margin: 0;
    margin-left: calc(50% - 50vw);
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }
  .sec-contact + .sec-footer .sec-footer__inner {
    padding-top: 32px;
  }
  .sec-footer--video {
    min-height: auto;
  }
  .sec-footer__inner {
    padding: 64px 20px 24px;
  }
  .sec-footer__line {
    margin-top: 48px;
  }
  .sec-footer__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 48px;
    margin-top: 64px;
    /* 980px以下：フッターメニュー（body）下の余白 ※次要素marginと相殺しないようpadding */
    padding-bottom: 30px;
    min-width: 0;
  }
  .sec-footer__info {
    width: 100%;
  }
  .sec-footer__nav {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 32px;
    margin-left: 0;
    width: 100%;
    min-width: 0;
  }
  .sec-footer__nav-col {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    min-width: 0;
  }
  .sec-footer__nav-list--sub {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: minmax(0, 1fr) clamp(24px, 6vw, 48px) minmax(0, 1fr);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -webkit-column-gap: clamp(24px, 6vw, 48px);
       -moz-column-gap: clamp(24px, 6vw, 48px);
            column-gap: clamp(24px, 6vw, 48px);
    row-gap: 0;
  }
  .sec-footer__nav-list a,
  .sec-footer__nav-head a {
    line-height: 2.4;
  }
  .sec-footer__nav-list--sub a {
    line-height: 2;
  }
  .sec-footer__body + .sec-footer__line {
    margin-top: 48px;
  }
  .sec-footer__copyright {
    height: 26px;
    min-height: 26px;
    max-height: 26px;
    margin-top: 24px;
  }
}
@media (max-width: 768px) {
  .sec-footer__inner {
    padding: 48px 20px 24px;
  }
  .sec-footer__title {
    /* 左右余白（20px）を保ちつつブラウザ幅いっぱいに広げる */
    width: calc(100% + 40px);
    margin-left: -20px;
    padding-inline: 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    container-type: inline-size;
    font-size: clamp(0.875rem, 100cqw / 17, 5.375rem);
    line-height: 1;
    letter-spacing: 0.02em;
  }
  .sec-footer__title.u-text-split .u-text-split__line {
    white-space: nowrap;
  }
  .sec-footer__title.u-text-split .u-text-split__char {
    letter-spacing: inherit;
  }
  .sec-footer__title.u-text-split .u-text-split__line + .u-text-split__line {
    margin-top: 0.12em;
  }
  .sec-footer__title-line {
    white-space: nowrap;
  }
  .sec-footer__title-line + .sec-footer__title-line {
    margin-top: 0.12em;
  }
  .sec-footer__body {
    margin-top: 48px;
    gap: 40px;
  }
  .sec-footer__copyright {
    height: 26px;
    min-height: 26px;
    max-height: 26px;
    margin-top: 24px;
  }
}
/* Smartphone */
@media (max-width: 480px) {
  .sec-contact + .sec-footer .sec-footer__inner {
    padding-top: 24px;
  }
  .sec-footer__inner {
    padding: 40px 16px 20px;
  }
  .sec-footer__line {
    margin-top: 32px;
  }
  .sec-footer__title {
    width: calc(100% + 32px);
    margin-left: -16px;
    padding-inline: 16px;
    line-height: 1;
    letter-spacing: 0.015em;
  }
  .sec-footer__body {
    margin-top: 36px;
    gap: 32px;
  }
  .sec-footer__logo img {
    width: 110px;
  }
  .sec-footer__address {
    margin-top: 16px;
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-footer__nav {
    gap: 28px;
  }
  .sec-footer__nav-list a,
  .sec-footer__nav-head a {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 2.2;
  }
  .sec-footer__nav-list--sub {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
  }
  .sec-footer__nav-list--sub a {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-footer__body + .sec-footer__line {
    margin-top: 32px;
  }
  .sec-footer__copyright {
    height: 18px;
    min-height: 18px;
    max-height: 18px;
    margin-top: 20px;
    font-size: 0.6875rem;
    letter-spacing: 0.06em;
    line-height: 1;
  }
}
/* ------------------------------------------------------------------------------
  お問い合わせ（sec-contact）
------------------------------------------------------------------------------ */
.sec-contact {
  position: relative;
  z-index: 1;
  overflow: hidden;
  min-height: 644px;
  background: #1f1f1f;
  color: #fff;
}

.sec-contact__inner {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
  padding: 160px 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.sec-contact__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 61px;
}

.sec-contact__head .c-index-title {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  min-width: 144px;
}

.sec-contact__lead {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  max-width: 588px;
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.02em;
}

.sec-contact__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: 40px;
  margin-top: 60px;
}

.sec-contact__box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(50% - 20px);
          flex: 0 0 calc(50% - 20px);
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  width: calc(50% - 20px);
  min-width: 0;
  height: 200px;
  padding: 60px 50px;
  background: #282828;
  border: 1px solid #3f3f3f;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-decoration: none;
  color: #fff;
}

.sec-contact__box--form {
  padding-right: 70px;
}

.sec-contact__box-head {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  line-height: 1;
}

.sec-contact__box-icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  width: 25px;
  height: 25px;
  line-height: 0;
}
.sec-contact__box-icon img {
  width: 25px;
  height: 25px;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
  display: block;
}

.sec-contact__box--tel .sec-contact__box-icon img {
  -webkit-transform: translateY(3px);
          transform: translateY(3px);
}

.sec-contact__box-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.sec-contact__box-number {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 2.25rem;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.sec-contact__box-note {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

.sec-contact__box-arrow {
  position: absolute;
  top: 50%;
  right: 24px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.sec-contact__box-arrow .c-view-more__arrow-box {
  border: none;
  border-radius: 0;
}
.sec-contact__box-arrow .c-view-more__arrow img {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}

.sec-contact__marquee {
  position: absolute;
  left: 50%;
  bottom: -25px;
  z-index: 0;
  width: 100vw;
  height: auto;
  margin-left: -50vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  overflow: hidden;
  pointer-events: none;
}

.sec-contact__marquee-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-animation: sec-contact-marquee-left 22s linear infinite;
          animation: sec-contact-marquee-left 22s linear infinite;
}

.sec-contact.is-marquee-gsap .sec-contact__marquee-track {
  -webkit-animation: none;
          animation: none;
  will-change: transform;
}

.sec-contact__marquee-text {
  margin: 0;
  padding-right: 0.4em;
  font-family: "Figtree", sans-serif;
  font-size: clamp(6.25rem, 16.275vw, 19.53125rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.03);
  white-space: nowrap;
}

@-webkit-keyframes sec-contact-marquee-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-33.333%);
            transform: translateX(-33.333%);
  }
}

@keyframes sec-contact-marquee-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-33.333%);
            transform: translateX(-33.333%);
  }
}
@media (hover: hover) {
  .sec-contact__box--form:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* ヘッダー（ハンバーガー）と同じ 980px でレイアウト切替 */
@media (max-width: 980px) {
  .sec-contact {
    min-height: auto;
    overflow: visible;
    margin-bottom: -1px;
  }
  .sec-contact__inner {
    padding: clamp(80px, 12vw, 100px) 20px clamp(3rem, 10vw, 5rem);
  }
  .sec-contact__head {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: clamp(24px, 4vw, 32px);
  }
  .sec-contact__head .c-index-title {
    min-width: 0;
  }
  .sec-contact__lead {
    max-width: 100%;
    line-height: 1.9;
  }
  .sec-contact__actions {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: clamp(24px, 4vw, 32px);
    margin-top: clamp(40px, 5vw, 48px);
  }
  .sec-contact__box {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    height: auto;
    min-height: clamp(160px, 22vw, 200px);
    padding: clamp(36px, 5vw, 48px) clamp(32px, 5vw, 48px);
  }
  .sec-contact__box--form {
    padding-right: clamp(56px, 8vw, 70px);
  }
  .sec-contact__box--tel {
    padding-inline: clamp(24px, 4vw, 40px);
  }
  .sec-contact__box-number {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
    font-weight: 600;
  }
  .sec-contact__box-note {
    white-space: normal;
  }
  .sec-contact__marquee {
    bottom: 0;
  }
  .sec-contact__marquee-track {
    -webkit-animation-duration: 18s;
            animation-duration: 18s;
  }
  .sec-contact__marquee-text {
    font-size: clamp(4.375rem, 22.5vw, 7.5rem);
  }
}
/* 2列表示時（981〜1100px）：ボックス内余白を詰める・下余白はマーキーに合わせる */
@media (max-width: 1100px) and (min-width: 981px) {
  .sec-contact__inner {
    padding-top: clamp(100px, 12vw, 140px);
    padding-bottom: clamp(4rem, 10vw, 7rem);
  }
  .sec-contact__head {
    gap: clamp(32px, 4vw, 48px);
  }
  .sec-contact__marquee {
    bottom: 0;
  }
  .sec-contact__marquee-text {
    font-size: clamp(5rem, 13.75vw, 10rem);
  }
  .sec-contact__box {
    padding: clamp(40px, 4vw, 60px) clamp(24px, 3vw, 40px);
  }
  .sec-contact__box--form {
    padding-right: clamp(48px, 6vw, 70px);
  }
  .sec-contact__box-number {
    font-size: clamp(1.75rem, 2.2vw, 2.25rem);
  }
}
@media (max-width: 768px) {
  .sec-contact__inner {
    padding: 80px 20px clamp(4.5rem, 16vw, 7rem);
  }
  .sec-contact__head {
    gap: 28px;
  }
  .sec-contact__lead {
    font-size: 0.9375rem;
    line-height: 1.85;
  }
  .sec-contact__actions {
    gap: 32px;
    margin-top: 44px;
  }
  .sec-contact__box {
    min-height: 120px;
  }
  .sec-contact__box--form {
    padding: 26.6666666667px 64px 26.6666666667px 32px;
  }
  .sec-contact__box--tel {
    padding: 26.6666666667px 24px;
  }
  .sec-contact__marquee {
    bottom: 0;
  }
}
/* Smartphone */
@media (max-width: 480px) {
  .sec-contact__inner {
    padding: 64px 16px clamp(4rem, 18vw, 5.5rem);
  }
  .sec-contact__head {
    gap: 24px;
  }
  .sec-contact__head .c-index-title__ja {
    font-size: 1.25rem;
  }
  .sec-contact__lead {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-contact__actions {
    gap: 24px;
    margin-top: 40px;
  }
  .sec-contact__box {
    min-height: 106.6666666667px;
    padding: 21.3333333333px 24px;
  }
  .sec-contact__box--form {
    padding: 21.3333333333px 52px 21.3333333333px 24px;
  }
  .sec-contact__box--tel {
    padding: 21.3333333333px 20px;
  }
  .sec-contact__box-head {
    gap: 8px;
  }
  .sec-contact__box-number {
    font-size: clamp(1.5rem, 7.5vw, 1.75rem);
    font-weight: 600;
  }
  .sec-contact__box-label {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
  .sec-contact__box-note {
    font-size: 0.6875rem;
    line-height: 1.5;
  }
  .sec-contact__box-arrow {
    right: 16px;
  }
  .sec-contact__marquee {
    bottom: 0;
  }
  .sec-contact__marquee-text {
    font-size: clamp(3.4375rem, 27.5vw, 4.375rem);
  }
}
/* ------------------------------------------------------------------------------
  Layout : Under Page
------------------------------------------------------------------------------ */
.l-under {
  width: 100%;
}

/* ------------------------------------------------------------------------------
  MailformPro｜フォーム上書き（外部依存）
------------------------------------------------------------------------------ */
#mailformpro input,
#mailformpro select,
#mailformpro textarea {
  margin: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  border-radius: 0;
}
#mailformpro {
  /* input（フォームUI側のクラスに合わせて上書き） */
}
#mailformpro .c-form-input {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 38px;
  padding: 8px 12px;
  font-size: 0.9375rem;
  border: 1px solid #bdbdbd;
  background-color: #ffffff;
  border-radius: 2px !important;
}
#mailformpro {
  /* select（フォームUI側のクラスに合わせて上書き） */
}
#mailformpro .c-form-select {
  padding: 10px 16px;
  font-size: 0.875rem;
  border: 1px solid #cccccc;
  background-color: #ffffff;
}
#mailformpro {
  /* 生年月日（birthday.js生成セレクト） */
}
#mailformpro select[data-birthday-parent] + select[data-birthday-parent] {
  margin-left: 20px;
}
#mailformpro {
  /* textarea（フォームUI側のクラスに合わせて上書き） */
}
#mailformpro .c-form-textarea {
  width: 100% !important;
  height: auto !important;
  min-height: 160px;
  padding: 14px 16px;
  font-size: 0.875rem;
  border: 1px solid #bdbdbd;
  background-color: #ffffff;
  border-radius: 2px !important;
}

/* ------------------------------------------------------------------------------
  MailformPro｜入力画面 送信ボタン（mfp_buttons）
------------------------------------------------------------------------------ */
#mailformpro .mfp_buttons {
  width: 100%;
  margin-top: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
#mailformpro {
  /* 送信ボタン（MFPデフォルトを完全に上書き） */
}
#mailformpro .mfp_buttons .mfp_element_submit {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 320px;
  /*min-height: 64px;*/
  padding: 18px 56px;
  border: none;
  border-radius: 9999px;
  background: #c5d800 !important;
  color: #1c1c1c !important;
  font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  -webkit-box-shadow: none;
          box-shadow: none;
  cursor: pointer;
}
#mailformpro {
  /* 左ダミースペース（視覚センター補正） */
}
#mailformpro .mfp_buttons .mfp_element_submit::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  width: 12px;
  height: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
#mailformpro {
  /* 右矢印（黒） */
}
#mailformpro .mfp_buttons .mfp_element_submit::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 12px;
  height: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("/images/cmn_img/icon_arrow.svg");
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

@media (hover: hover) {
  #mailformpro .mfp_buttons .mfp_element_submit:hover::after {
    -webkit-transform: translateY(-50%) translateX(5px);
            transform: translateY(-50%) translateX(5px);
  }
}
/* ------------------------------------------------------------------------------
  MailformPro｜確認画面 ボタン制御（常時）
------------------------------------------------------------------------------ */
#mfp_phase_confirm .mfp_buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
#mfp_phase_confirm {
  /* 共通ボタン土台（確認画面は2ボタン想定） */
}
#mfp_phase_confirm .mfp_element_button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 320px;
  min-height: 56px;
  padding: 16px 24px;
  border-radius: 9999px;
  font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  font-weight: 700;
  line-height: 1;
  border: none;
  cursor: pointer;
  -webkit-box-shadow: none;
          box-shadow: none;
}
#mfp_phase_confirm {
  /* 送信 */
}
#mfp_phase_confirm .mfp_element_submit {
  max-width: 500px;
  min-height: 64px;
  border-radius: 4px;
  background: #006be8;
  color: #ffffff;
  font-weight: 500;
}
#mfp_phase_confirm {
  /* 戻る/キャンセル */
}
#mfp_phase_confirm .mfp_element_reset {
  max-width: 500px;
  min-height: 64px;
  border-radius: 4px;
  background: #f0f0f0;
  color: #666666;
}

/* ------------------------------------------------------------------------------
  MailformPro｜HTML submitボタン（c-button）を強制適用
------------------------------------------------------------------------------ */
#mailformpro button[type=submit].c-button {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  /* MFPのグラデ等を潰す（background-colorだけだと残る） */
  background: #c5d800 !important;
  background-image: none !important;
  color: #1c1c1c !important;
  border: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  /* MFP側の角丸/余白/文字サイズに勝つ */
  border-radius: 50px !important;
  padding: 16px 48px !important;
  font-size: clamp(0.75rem, 1.4vw, 0.75rem) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-shadow: none !important;
  cursor: pointer;
}
#mailformpro {
  /* contact：青ボタン（10_CONTACT） */
}
#mailformpro button[type=submit].c-button.c-button--contact-submit {
  width: 100%;
  max-width: 500px;
  min-height: 64px;
  padding: 16px 24px !important;
  border-radius: 4px !important;
  background: #006be8 !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
}
#mailformpro button[type=submit].c-button.c-button--contact-submit::before {
  display: none !important;
}

/* ------------------------------------------------------------------------------
  SP（900px以下想定：mq(tb)）
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  #mailformpro .mfp_buttons {
    margin-top: 20px;
  }
  #mailformpro .mfp_buttons .mfp_element_submit {
    max-width: 100%;
    min-height: 56px;
  }
  #mailformpro button[type=submit].c-button.c-button--contact-submit {
    max-width: 100%;
    min-height: 56px;
  }
  #mfp_phase_confirm .mfp_buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 32px;
  }
  #mfp_phase_confirm .mfp_element_button {
    max-width: 100%;
    min-height: 56px;
  }
}
@media (max-width: 480px) {
  #mailformpro button[type=submit].c-button.c-button--contact-submit {
    min-height: 52px;
    font-size: 0.9375rem !important;
  }
  #mailformpro .mfp_buttons .mfp_element_submit {
    min-height: 52px;
    font-size: 0.9375rem;
  }
  #mfp_phase_confirm .mfp_element_button {
    min-height: 52px;
    font-size: 0.9375rem;
  }
}
/* ------------------------------------------------------------------
  Component : Button
------------------------------------------------------------------ */
.c-button {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  max-width: 300px;
  width: 100%;
  padding: 16px 48px;
  border-radius: 28px;
  font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  /* button要素でも同じ見た目にする */
  border: none;
  cursor: pointer;
}

/* 左ダミースペース（視覚センター補正） */
.c-button::before {
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  width: 12px;
  height: 10px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

/* Primary Button */
.c-button--primary {
  background-color: #c5d800;
  color: #1c1c1c;
}

/* Contact送信ボタン（10_CONTACT） */
.c-button--contact-submit {
  max-width: 500px;
  min-height: 64px;
  padding: 16px 24px;
  border-radius: 4px;
  background-color: #006be8;
  color: #ffffff;
  font-size: 1rem;
  font-weight: 500;
}
.c-button--contact-submit::before {
  display: none;
}

@media (hover: hover) {
  .c-button--contact-submit:hover {
    opacity: 0.85;
  }
}
.c-button--contact-submit:focus-visible {
  outline: none;
  -webkit-box-shadow: 0 0 0 3px rgba(0, 107, 232, 0.3);
          box-shadow: 0 0 0 3px rgba(0, 107, 232, 0.3);
}

a.c-button--contact-submit {
  text-decoration: none;
}

/* Icon（右端固定・位置のみ） */
.c-button__icon {
  position: absolute;
  right: 20px;
  top: 50%;
}

/* Arrow（Y補正＋アニメーション担当） */
.c-arrow {
  width: 12px;
  height: 10px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}

/* Arrow : Dark */
.c-arrow--dark {
  background-image: url("/images/cmn_img/icon_arrow.svg");
}

/* hover */
@media (hover: hover) {
  .c-button:hover .c-arrow {
    -webkit-transform: translateY(-50%) translateX(5px);
            transform: translateY(-50%) translateX(5px);
  }
}
/* ------------------------------------------------------------------------------
  コンポーネント : 電話リンク
------------------------------------------------------------------------------ */
.c-tel {
  text-decoration: none;
  color: inherit;
  pointer-events: none; /* PCはクリック無効 */
}

.c-tel__num {
  white-space: nowrap;
}

@media (max-width: 768px) {
  .c-tel {
    pointer-events: auto; /* SPはクリック有効 */
  }
}
/* ------------------------------------------------------------------------------
  コンポーネント｜フォームUI（テーブル・入力要素）
------------------------------------------------------------------------------ */
/* フォームテーブル */
.c-form-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #dcdcdc;
  /* テーブル行 */
}
.c-form-table__row {
  border-bottom: 1px solid #dcdcdc;
}
.c-form-table__row:last-child {
  border-bottom: none;
}
.c-form-table {
  /* 見出しセル */
}
.c-form-table__head {
  width: 260px;
  padding: 25px 16px 25px 24px;
  text-align: left;
  vertical-align: top;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.4;
  color: #1a1a1a;
  background-color: #f5f5f5;
}
.c-form-table {
  /* データセル */
}
.c-form-table__data {
  padding: 20px 24px;
  vertical-align: middle;
  background-color: #ffffff;
}
.c-form-table {
  /* 必須ラベル */
}
.c-form-table__required {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 6px;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  background-color: #cc0000;
  border-radius: 2px;
  float: right;
}
.c-form-table {
  /* 任意ラベル */
}
.c-form-table__optional {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 6px;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  background-color: #888888;
  border-radius: 2px;
  float: right;
}

/* 入力要素 */
.c-form-input {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 38px;
  padding: 8px 12px;
  font-size: 0.9375rem;
  border: 1px solid #bdbdbd;
  background-color: #ffffff;
  border-radius: 2px;
}
.c-form-input:focus {
  outline: none;
  border-color: #bdbdbd;
}
.c-form-input--max {
  max-width: 100%;
}
.c-form-input--min {
  max-width: 100px !important;
}
.c-form-input--postal {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 160px;
          flex: 0 0 160px;
  width: 160px;
  max-width: 160px;
}

.c-form-select {
  width: 100%;
  max-width: 300px !important;
  padding: 8px 10px;
  font-size: 0.875rem;
  border: 1px solid #cccccc;
  border-radius: 5px;
}
.c-form-select:focus {
  outline: none;
  border-color: #cccccc;
}

.c-form-textarea {
  width: 100%;
  padding: 10px;
  font-size: 0.875rem;
  border: 1px solid #cccccc;
  border-radius: 2px;
  resize: vertical;
}
.c-form-textarea:focus {
  outline: none;
  border-color: #cccccc;
}
.c-form-textarea--max {
  max-width: 100%;
}
.c-form-textarea--lg {
  min-height: 160px;
}

/* ファイル添付欄 */
.c-form-file-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 10px;
}

.c-form-input--file {
  max-width: 100%;
  font-size: 0.9375rem;
  color: #1a1a1a;
}

/* 添付ファイルの注意書き */
.c-form-note {
  margin: 16px 0 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7142857143;
  color: #505050;
}

/* 住所（郵便番号＋住所） */
.c-form-address-field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.c-form-address-field__mark {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-size: 0.9375rem;
  line-height: 1;
  color: #333333;
}

/* 住所関連補助ラベル */
.c-form-address-label {
  margin: 16px 0 4px;
  font-size: 0.8125rem;
}

/* チェックボックス */
.c-form-checkbox {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
}

form#mailformpro label,
form#mailformpro label.mfp_checked {
  outline: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}

.c-form-checkbox input[type=checkbox] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid #bdbdbd;
  border-radius: 2px;
  background-color: #ffffff;
}

#mailformpro .c-form-checkbox,
#mailformpro .c-form-checkbox input[type=checkbox] {
  outline: none !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}

/* ------------------------------------------------------------------------------
  メールフォームプロ：確認画面 ボタン制御（常時）
------------------------------------------------------------------------------ */
#mfp_phase_confirm .mfp_buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
#mfp_phase_confirm {
  /* 共通ボタン土台 */
}
#mfp_phase_confirm .mfp_element_button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  max-width: 500px;
  min-height: 64px;
  padding: 16px 24px;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  background: #006be8;
  color: #ffffff;
  border: none;
  cursor: pointer;
  position: relative;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
#mfp_phase_confirm .mfp_element_button::after {
  display: none;
}
#mfp_phase_confirm .mfp_element_button:hover {
  opacity: 0.85;
}
#mfp_phase_confirm .mfp_element_button:focus-visible {
  outline: none;
  -webkit-box-shadow: 0 0 0 3px rgba(0, 107, 232, 0.3);
          box-shadow: 0 0 0 3px rgba(0, 107, 232, 0.3);
}
#mfp_phase_confirm {
  /* 送信ボタン */
}
#mfp_phase_confirm .mfp_element_submit {
  background-color: #006be8;
  color: #ffffff;
}
#mfp_phase_confirm .mfp_element_submit:hover {
  background-color: #006be8;
  opacity: 0.85;
}
#mfp_phase_confirm {
  /* キャンセル */
}
#mfp_phase_confirm .mfp_element_reset {
  background-color: #f0f0f0;
  color: #666666;
}
#mfp_phase_confirm .mfp_element_reset:hover {
  background-color: #e0e0e0;
  opacity: 1;
}

/* ------------------------------------------------------------------------------
  SP（768px以下想定：mq(tb-wide)）
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .c-form-table {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
  .c-form-table__head {
    padding: 20px 16px 20px 20px;
  }
  .c-form-table__data {
    padding: 16px 20px;
  }
}
/* ------------------------------------------------------------------------------
  SP（768px以下想定：mq(tb)）
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-form-table,
  .c-form-table tbody,
  .c-form-table tr {
    display: block;
    width: 100%;
  }
  .c-form-table__row {
    border-bottom: 1px solid #dcdcdc;
  }
  /* th 単体指定より詳細度を上げて flex を有効化 */
  .c-form-table th.c-form-table__head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 12px;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 16px;
    border-bottom: 1px solid #e8e8e8;
  }
  .c-form-table td.c-form-table__data {
    display: block;
    width: 100%;
    padding: 16px;
  }
  .c-form-table__required,
  .c-form-table__optional {
    float: none;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    margin-left: auto;
  }
  .c-form-input--postal {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    width: auto;
    max-width: none;
  }
  .c-form-textarea--lg {
    min-height: 140px;
  }
  #mfp_phase_confirm .mfp_buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    margin-top: 32px;
  }
  #mfp_phase_confirm .mfp_element_button {
    max-width: 100%;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone（480px以下）
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-form-table th.c-form-table__head {
    padding: 14px 12px;
    font-size: 0.875rem;
  }
  .c-form-table td.c-form-table__data {
    padding: 12px;
  }
  .c-form-input {
    min-height: 44px;
    font-size: 1rem;
  }
  .c-form-textarea {
    font-size: 1rem;
  }
  .c-form-textarea--lg {
    min-height: 120px;
  }
  .c-form-address-field {
    margin-bottom: 8px;
  }
  .c-form-input--file {
    font-size: 0.875rem;
  }
  .c-form-note {
    font-size: 0.8125rem;
  }
}
/* ------------------------------------------------------------------------------
  コンポーネント : 下層見出し H2（Heading/H2）
  ※ __bg の高さに対し __title を重ねる（PC: top 54px / bg 100px = 54%）
  ※ min-height + grid + align-self:end は余白全体の下端に揃うため使用しない
------------------------------------------------------------------------------ */
.c-under-h2 {
  --under-h2-bg-size: clamp(3.5rem, 6.94vw, 6.25rem);
  --under-h2-title-size: clamp(1.5rem, 2.5vw, 2.25rem);
  position: relative;
  padding-bottom: 3.75rem;
  overflow: hidden;
}

.c-under-h2__bg {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: var(--under-h2-bg-size);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #f2f2f2;
  white-space: nowrap;
  pointer-events: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.c-under-h2__title {
  position: absolute;
  top: calc(var(--under-h2-bg-size) * 0.54);
  left: 8px;
  z-index: 1;
  margin: 0;
  font-size: var(--under-h2-title-size);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  コンポーネント : 下層見出し H3（Heading/H3）
------------------------------------------------------------------------------ */
.c-under-h3 {
  margin: 48px 0 0;
  font-size: clamp(1.125rem, 1.53vw, 1.375rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  コンポーネント : 下層見出し H4（Heading/H4）
------------------------------------------------------------------------------ */
.c-under-h4 {
  position: relative;
  margin: 48px 0 0;
  padding-left: 26px;
  min-height: 42px;
}

.c-under-h4__mark {
  position: absolute;
  top: 0;
  left: 0;
  font-family: "Figtree", sans-serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  color: #2e82f5;
}

.c-under-h4__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2__bg {
    font-size: calc(var(--under-h2-bg-size) * 0.8);
  }
  .c-under-h2__title {
    left: 4px;
  }
  .c-under-h3 {
    margin-top: 40px;
  }
  .c-under-h4 {
    margin-top: 40px;
    padding-left: 22px;
    min-height: 36px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 {
    padding-bottom: clamp(2rem, 8vw, 2.5rem);
  }
  .c-under-h2__title {
    left: 0;
  }
  .c-under-h3 {
    margin-top: 32px;
    font-size: clamp(1.0625rem, 4vw, 1.125rem);
  }
  .c-under-h4 {
    margin-top: 32px;
    padding-left: 20px;
    min-height: 32px;
  }
  .c-under-h4__mark {
    font-size: 0.875rem;
  }
  .c-under-h4__title {
    font-size: 0.875rem;
    line-height: 1.4;
  }
}
/* ------------------------------------------------------------------------------
  コンポーネント : セクション見出し
------------------------------------------------------------------------------ */
.c-index-title {
  position: relative;
  min-height: 61px;
  color: #1f1f1f;
}

.c-index-title__dot {
  position: absolute;
  top: 8px;
  left: 0;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #1f1f1f;
}

.c-index-title__en {
  position: absolute;
  top: 9.5px;
  left: 10px;
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.c-index-title__ja {
  position: absolute;
  top: 21px;
  left: 0;
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.67;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* 白文字バリアント */
.c-index-title--white {
  color: #fff;
}
.c-index-title--white .c-index-title__dot {
  background: #fff;
}

/* ------------------------------------------------------------------------------
  コンポーネント : View more
------------------------------------------------------------------------------ */
.c-view-more {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  text-decoration: none;
  line-height: 1;
}

.c-view-more__text {
  font-family: "Figtree", sans-serif;
  font-size: 1rem;
  font-weight: 500;
}

.c-view-more__icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 32px;
  height: 32px;
}

.c-view-more__arrow-box {
  display: block;
  width: 32px;
  height: 32px;
  border: 1px solid #999999;
  border-radius: 3px;
  overflow: hidden;
}

.c-view-more__arrow-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 200%;
  height: 100%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

.c-view-more__arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  width: 50%;
  height: 100%;
}
.c-view-more__arrow img {
  width: 12px;
  height: auto;
  display: block;
}

.c-view-more--dark {
  color: #1f1f1f;
}

.c-view-more--white {
  color: #fff;
}
.c-view-more--white .c-view-more__arrow-box {
  border-color: currentColor;
}
.c-view-more--white .c-view-more__arrow img {
  -webkit-filter: brightness(0) invert(1);
          filter: brightness(0) invert(1);
}

/* 矢印を囲う罫線が不要な場合の修飾子（矢印スライドアニメーションのみ利用） */
.c-view-more--frameless .c-view-more__arrow-box {
  border: none;
  border-radius: 0;
}

@media (hover: hover) {
  .c-view-more:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* ------------------------------------------------------------------------------
  コンポーネント : タグ
------------------------------------------------------------------------------ */
.c-tag-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.c-tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 10px 20px;
  border-radius: 5px;
  background-color: #1f1f1f;
  color: #fff;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 480px) {
  .c-tag {
    padding: 8px 14px;
    font-size: 0.75rem;
  }
}
/* ------------------------------------------------------------------------------
  Page : Guide（08_USAGE）
------------------------------------------------------------------------------ */
.p-guide {
  width: 100%;
}

.p-guide__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  padding: 56px 0;
  margin: 0;
}
.p-guide__item .c-under-h3 {
  margin: 0;
  line-height: 1.4;
}

.c-under-h2 + .p-guide > .p-guide__item:first-child {
  padding-top: 0;
}

.p-guide__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12px;
}

.p-guide__text {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #333;
}

.p-guide__text a {
  color: #06c;
  text-decoration: underline;
}

.p-guide__text a:hover {
  text-decoration: none;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-guide__item {
    padding: clamp(40px, 5vw, 56px) 0;
  }
  .c-under-h2 + .p-guide > .p-guide__item:first-child {
    padding-top: 0;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-guide > .p-guide__item:first-child {
    padding-top: 0;
    border-top: none;
  }
  .p-guide__item {
    padding: 32px 0;
    gap: 12px;
    border-top: 1px solid #e5e5e5;
  }
  .p-guide__item:last-child {
    padding-bottom: 0;
  }
  .p-guide__body {
    gap: 10px;
  }
  .p-guide__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-guide > .p-guide__item:first-child {
    padding-top: 0;
  }
  .p-guide__item {
    padding: 24px 0;
    gap: 10px;
  }
  .p-guide__item .c-under-h3 {
    font-size: clamp(1rem, 4.2vw, 1.0625rem);
  }
  .p-guide__body {
    gap: 8px;
  }
  .p-guide__text {
    letter-spacing: 0.01em;
  }
  .p-guide__text a {
    overflow-wrap: anywhere;
  }
}
/* ------------------------------------------------------------------------------
  Page : Privacy（09_PRIVACY）
------------------------------------------------------------------------------ */
.p-privacy {
  width: 100%;
}

.p-privacy__lead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  padding: 0 0 56px;
}

.p-privacy__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 16px;
  padding: 56px 0;
  margin: 0;
}
.p-privacy__item .c-under-h3 {
  margin: 0;
  line-height: 1.4;
}

.p-privacy__text {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #333;
}

.p-privacy__text a {
  color: inherit;
  text-decoration: underline;
}

.p-privacy__text a:hover {
  text-decoration: none;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-privacy__lead {
    padding: 0 0 clamp(40px, 5vw, 56px);
  }
  .p-privacy__item {
    padding: clamp(40px, 5vw, 56px) 0;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-privacy .p-privacy__lead {
    padding-top: 0;
  }
  .p-privacy__lead {
    padding-bottom: 32px;
    gap: 12px;
  }
  .p-privacy__item {
    padding: 32px 0;
    gap: 12px;
    border-top: 1px solid #e5e5e5;
  }
  .p-privacy__item:last-child {
    padding-bottom: 0;
  }
  .p-privacy__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-privacy .p-privacy__lead {
    padding-top: 0;
  }
  .p-privacy__lead {
    padding-bottom: 24px;
    gap: 10px;
  }
  .p-privacy__item {
    padding: 24px 0;
    gap: 10px;
  }
  .p-privacy__item .c-under-h3 {
    font-size: clamp(1rem, 4.2vw, 1.0625rem);
  }
  .p-privacy__text {
    letter-spacing: 0.01em;
  }
}
/* ------------------------------------------------------------------------------
  お問い合わせページ（10_CONTACT）
------------------------------------------------------------------------------ */
.p-contact {
  width: 100%;
  /* リード */
}
.p-contact__lead {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
  margin: 0 0 40px;
}
.p-contact__lead-text {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.7142857143;
  color: #505050;
}
.p-contact__lead-text a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-contact {
  /* 送信ボタンエリア */
}
.p-contact__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 64px;
  margin-top: 40px;
}
.p-contact {
  /* サンクスページ */
}
.p-contact--thanks .c-under-h3 {
  margin-top: 0;
}
.p-contact__thanks-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12px;
  margin-top: 40px;
}
.p-contact__thanks-text {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #333333;
}

/* 下層コンテンツ内のフォーム調整 */
.sec-under-content:has(.p-contact) .sec-under-content__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
}
.sec-under-content:has(.p-contact) .c-under-h2 {
  padding-bottom: 0;
}
.sec-under-content:has(.p-contact) .c-under-h2 + .p-contact {
  margin-top: 0;
}

/* MailformPro：入力欄の上書き（contact） */
.p-contact #mailformpro .c-form-input {
  padding: 8px 12px;
  font-size: 0.9375rem;
  border: 1px solid #bdbdbd;
  background-color: #ffffff;
  border-radius: 2px;
}
.p-contact #mailformpro .c-form-textarea {
  min-height: 160px;
  padding: 14px 16px;
  font-size: 0.875rem;
  border: 1px solid #bdbdbd;
  background-color: #ffffff;
  border-radius: 2px;
}
.p-contact #mailformpro button[type=submit].c-button.c-button--contact-submit,
.p-contact #mailformpro a.c-button.c-button--contact-submit {
  width: 100%;
  max-width: 500px;
  min-height: 64px;
  padding: 16px 24px !important;
  border-radius: 4px !important;
  background: #006be8 !important;
  background-image: none !important;
  color: #ffffff !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}
.p-contact #mailformpro button[type=submit].c-button.c-button--contact-submit::before,
.p-contact #mailformpro a.c-button.c-button--contact-submit::before {
  display: none !important;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .sec-under-content:has(.p-contact) .sec-under-content__inner {
    gap: clamp(32px, 4vw, 40px);
  }
  .p-contact__lead {
    margin-bottom: clamp(32px, 4vw, 40px);
  }
  .p-contact__actions {
    margin-top: clamp(32px, 4vw, 40px);
  }
  .p-contact__thanks-body {
    margin-top: clamp(32px, 4vw, 40px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（900px以下）
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .c-under-h2 + .p-contact .p-contact__lead {
    margin-bottom: 32px;
  }
  .p-contact__lead-text {
    line-height: 1.85;
  }
  .p-contact__actions {
    margin-top: 32px;
  }
  .p-contact__thanks-body {
    margin-top: 32px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet（768px以下）
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-contact .p-contact__lead {
    margin-bottom: 24px;
  }
  .p-contact__lead {
    gap: 8px;
    margin-bottom: 24px;
  }
  .p-contact__lead-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.85;
  }
  .p-contact__actions {
    min-height: 56px;
    margin-top: 24px;
  }
  .p-contact__thanks-body {
    margin-top: 24px;
    gap: 10px;
  }
  .p-contact__thanks-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-under-content:has(.p-contact) .sec-under-content__inner {
    gap: 12px;
  }
  .sec-under-content:has(.p-contact) {
    /* c-under-h2__bgのフォントサイズ縮小により、
       padding-bottom: 0のままだとタイトル(c-under-h2__title)が
       overflow: hiddenで見切れるため最低限の余白を確保する
       （gap側を同じ分減らし合計の余白は変更しない） */
  }
  .sec-under-content:has(.p-contact) .c-under-h2 {
    padding-bottom: 12px;
  }
  .p-contact #mailformpro button[type=submit].c-button.c-button--contact-submit,
  .p-contact #mailformpro a.c-button.c-button--contact-submit {
    max-width: 100%;
    min-height: 56px;
  }
  #mailformpro .c-form-table__data select {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }
  #mailformpro .c-form-table__data select + select {
    margin-top: 8px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone（480px以下）
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-contact .p-contact__lead {
    margin-bottom: 16px;
  }
  .p-contact__lead {
    gap: 6px;
    margin-bottom: 16px;
  }
  .p-contact__lead-text {
    letter-spacing: 0.01em;
  }
  .p-contact__actions {
    min-height: 52px;
    margin-top: 20px;
  }
  .p-contact--thanks .c-under-h3 {
    font-size: clamp(1rem, 4.2vw, 1.0625rem);
  }
  .p-contact__thanks-body {
    margin-top: 20px;
    gap: 8px;
  }
  .p-contact__thanks-text {
    letter-spacing: 0.01em;
  }
  .sec-under-content:has(.p-contact) .sec-under-content__inner {
    gap: 8px;
  }
  .p-contact #mailformpro button[type=submit].c-button.c-button--contact-submit,
  .p-contact #mailformpro a.c-button.c-button--contact-submit {
    min-height: 52px;
    font-size: 0.9375rem !important;
  }
}
/* ------------------------------------------------------------------------------
  下層 : ヒーロー（sec-hero）
------------------------------------------------------------------------------ */
.sec-hero {
  position: relative;
  width: 100%;
  height: 450px;
  overflow: hidden;
  background: #1f1f1f;
}

.sec-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
}
.sec-hero__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}

.sec-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}

.sec-hero__inner {
  position: relative;
  z-index: 2;
  height: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 180px 20px 40px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.sec-hero__breadcrumb-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.6875rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.85);
}

.sec-hero__breadcrumb-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.sec-hero__breadcrumb-item::after {
  content: "/";
  margin: 0 0.6em;
  letter-spacing: 0;
}
.sec-hero__breadcrumb-item:last-child::after {
  content: none;
  margin: 0;
}
.sec-hero__breadcrumb-item a {
  color: inherit;
  text-decoration: none;
}

.sec-hero__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: 22px;
  margin-top: 30px;
}

.sec-hero__accent {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  width: 2px;
  min-height: 80px;
  background: rgba(255, 255, 255, 0.9);
}

.sec-hero__title-en {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: clamp(2.5rem, 5.56vw, 5rem);
  font-weight: 600;
  line-height: 1.025;
  letter-spacing: 0.03em;
  color: #fff;
}

.sec-hero__title-line {
  display: block;
}

.sec-hero__title-ja {
  margin: 8px 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.85);
}

/* ------------------------------------------------------------------------------
  下層 : ヒーロー読み込み時アニメーション（背景 → 英字タイトル → その他要素の順）
  ※ PCのみ演出。スマホは読み込みタイミングでそのまま表示（非表示制御なし）
  ※ 英字タイトル（sec-hero__title-en）は u-text-split--blur（js/config.js）で別途制御
  ※ transitionプロパティは「消える側（is-loaded）」にも必ず持たせること
    （:not(.is-loaded)側だけに書くと、is-loaded付与時にtransitionごと消えて発火しない）
------------------------------------------------------------------------------ */
@media (min-width: 769px) {
  .sec-hero__bg img {
    -webkit-transition: opacity 1s ease-out, -webkit-transform 1.25s cubic-bezier(0.19, 1, 0.22, 1);
    transition: opacity 1s ease-out, -webkit-transform 1.25s cubic-bezier(0.19, 1, 0.22, 1);
    transition: opacity 1s ease-out, transform 1.25s cubic-bezier(0.19, 1, 0.22, 1);
    transition: opacity 1s ease-out, transform 1.25s cubic-bezier(0.19, 1, 0.22, 1), -webkit-transform 1.25s cubic-bezier(0.19, 1, 0.22, 1);
  }
  .sec-hero:not(.is-loaded) .sec-hero__bg img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
    opacity: 0;
  }
  .sec-hero.is-loaded .sec-hero__bg img {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  .sec-hero__breadcrumb,
  .sec-hero__accent,
  .sec-hero__title-ja {
    -webkit-transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;
    transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out, -webkit-transform 0.6s ease-out;
  }
  .sec-hero__breadcrumb {
    -webkit-transition-delay: 0.1s;
            transition-delay: 0.1s;
  }
  .sec-hero__accent {
    -webkit-transition-delay: 0.2s;
            transition-delay: 0.2s;
  }
  .sec-hero__title-ja {
    -webkit-transition-delay: 0.9s;
            transition-delay: 0.9s;
  }
  .sec-hero:not(.is-loaded) .sec-hero__breadcrumb,
  .sec-hero:not(.is-loaded) .sec-hero__accent,
  .sec-hero:not(.is-loaded) .sec-hero__title-ja {
    opacity: 0;
    -webkit-transform: translateY(16px);
            transform: translateY(16px);
  }
  .sec-hero.is-loaded .sec-hero__breadcrumb,
  .sec-hero.is-loaded .sec-hero__accent,
  .sec-hero.is-loaded .sec-hero__title-ja {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.sec-hero.is-loaded .u-text-split {
  opacity: 1;
}
.sec-hero.is-loaded .u-text-split__char {
  opacity: 1;
  -webkit-filter: none;
          filter: none;
  -webkit-transform: none;
          transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .sec-hero__bg img,
  .sec-hero__breadcrumb,
  .sec-hero__accent,
  .sec-hero__title-ja {
    -webkit-transition: none !important;
    transition: none !important;
  }
}
/* ------------------------------------------------------------------------------
  下層 : メインコンテンツ（sec-under-content）
------------------------------------------------------------------------------ */
.sec-under-content {
  background: #fff;
}

.sec-under-content__inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 80px 20px 120px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .sec-hero__inner {
    padding: clamp(140px, 18vw, 180px) 20px clamp(32px, 4vw, 40px);
  }
  .sec-under-content__inner {
    padding: clamp(64px, 8vw, 80px) 20px clamp(96px, 10vw, 120px);
  }
}
@media (max-width: 768px) {
  .sec-hero {
    height: clamp(320px, 52vw, 400px);
  }
  .sec-hero__inner {
    padding: 120px 20px 32px;
  }
  .sec-hero__head {
    gap: 16px;
    margin-top: 24px;
  }
  .sec-hero__accent {
    min-height: 64px;
  }
  .sec-hero__title-line {
    white-space: normal;
  }
  .sec-under-content__inner {
    padding: 56px 20px 96px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .sec-hero {
    height: clamp(280px, 72vw, 320px);
  }
  .sec-hero__inner {
    padding: 104px 16px 24px;
  }
  .sec-hero__breadcrumb-list {
    font-size: 0.625rem;
    letter-spacing: 0.12em;
  }
  .sec-hero__head {
    gap: 12px;
    margin-top: 16px;
  }
  .sec-hero__accent {
    width: 2px;
    min-height: 48px;
  }
  .sec-hero__title-ja {
    margin-top: 6px;
    font-size: 0.75rem;
    letter-spacing: 0.16em;
  }
  .sec-under-content__inner {
    padding: 48px 16px 80px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Company（06_COMPANY）
------------------------------------------------------------------------------ */
.p-company {
  width: 100%;
}

/* ごあいさつ */
.p-company__greeting {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 40px;
  margin-top: 0;
}

.p-company__greeting-media {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 460px;
          flex: 0 0 460px;
  width: 460px;
  overflow: hidden;
}
.p-company__greeting-media img {
  display: block;
  width: 100%;
  height: 374px;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-company__greeting-body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  padding-top: 50px;
}
.p-company__greeting-body .c-under-h3 {
  margin-top: 0;
}

.p-company__greeting-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}

.p-company__text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: #505050;
}

/* 会社概要テーブル */
.p-company__overview {
  margin-top: 48px;
}
.p-company__overview .c-under-h3 {
  margin-top: 0;
}

.p-company__table {
  margin: 40px 0 0;
  padding: 0;
  border-top: 1px solid #e5e5e5;
}

.p-company__table-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 64px;
  min-height: 62.5px;
  padding: 16.25px 32px;
  margin: 0;
  border-bottom: 1px solid #e5e5e5;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.p-company__table-head {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 196px;
          flex: 0 0 196px;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-company__table-data {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #3c3c3c;
}

.p-company__table-row--multi {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.p-company__table-row--multi .p-company__table-data {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.p-company__table-row--multi .p-company__text {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: #3c3c3c;
}

/* 納入先 */
.p-company__clients .c-under-h3 {
  margin-top: 0;
}

.p-company__clients-group {
  margin-top: 48px;
}
.p-company__clients-group + .p-company__clients-group {
  margin-top: 152px;
}

.p-company__clients-subhead {
  margin: 0;
  padding-bottom: 19px;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  border-bottom: 1px solid #e5e5e5;
}

/* 1つのulで列優先の横並び（CSS columns） */
.p-company__clients-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  -webkit-columns: 4;
     -moz-columns: 4;
          columns: 4;
  -webkit-column-gap: 65px;
     -moz-column-gap: 65px;
          column-gap: 65px;
}

.p-company__clients-item {
  -webkit-column-break-inside: avoid;
     -moz-column-break-inside: avoid;
          break-inside: avoid;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 2.4;
  letter-spacing: 0.02em;
  color: #3c3c3c;
}

/* 下層コンテンツ余白調整 */
.sec-under-content:not(.sec-under-content--company-clients) .sec-under-content__inner:has(.p-company) {
  padding-bottom: 80px;
}

.sec-under-content--company-clients .sec-under-content__inner {
  padding-top: 80px;
  padding-bottom: 160px;
}

/* ------------------------------------------------------------------------------
  フォトギャラリー
------------------------------------------------------------------------------ */
.p-company-photos {
  overflow: hidden;
  height: 520px;
  padding: 80px 0;
  background-color: #fff;
}

.p-company-photos__viewport {
  overflow: hidden;
  width: 100%;
}

.p-company-photos__track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-animation: p-company-photos-slide-left 80s linear infinite;
          animation: p-company-photos-slide-left 80s linear infinite;
  will-change: transform;
}

.p-company-photos__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 466px;
          flex: 0 0 466px;
  width: 466px;
  height: 360px;
  overflow: hidden;
}
.p-company-photos__item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@-webkit-keyframes p-company-photos-slide-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

@keyframes p-company-photos-slide-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-company-photos__track {
    -webkit-animation: none;
            animation: none;
  }
}
/* ------------------------------------------------------------------------------
  納入先：1150px以下で3列均等
------------------------------------------------------------------------------ */
@media (max-width: 1150px) {
  .p-company__clients-list {
    -webkit-columns: 3;
       -moz-columns: 3;
            columns: 3;
    -webkit-column-gap: 32px;
       -moz-column-gap: 32px;
            column-gap: 32px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .c-under-h2 + .p-company > .p-company__greeting {
    margin-top: 0;
  }
  .p-company__greeting {
    gap: clamp(28px, 4vw, 40px);
  }
  .p-company__greeting-media {
    -ms-flex-preferred-size: clamp(280px, 36vw, 460px);
        flex-basis: clamp(280px, 36vw, 460px);
    width: clamp(280px, 36vw, 460px);
  }
  .p-company__greeting-media img {
    height: auto;
    aspect-ratio: 460/374;
  }
  .p-company__greeting-body {
    padding-top: clamp(24px, 4vw, 50px);
  }
  .p-company__overview {
    margin-top: clamp(40px, 5vw, 48px);
  }
  .p-company__table-row {
    gap: clamp(32px, 5vw, 64px);
    padding-inline: clamp(16px, 2vw, 32px);
  }
  .p-company__clients-list {
    -webkit-columns: 2;
       -moz-columns: 2;
            columns: 2;
    -webkit-column-gap: 24px;
       -moz-column-gap: 24px;
            column-gap: 24px;
  }
  .p-company__clients-group + .p-company__clients-group {
    margin-top: clamp(64px, 8vw, 152px);
  }
  .p-company-photos {
    height: auto;
    padding: clamp(48px, 8vw, 80px) 0;
  }
  .p-company-photos__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 clamp(320px, 45vw, 466px);
            flex: 0 0 clamp(320px, 45vw, 466px);
    width: clamp(320px, 45vw, 466px);
    height: clamp(248px, 35vw, 360px);
  }
  .sec-under-content:not(.sec-under-content--company-clients) .sec-under-content__inner:has(.p-company) {
    padding-bottom: clamp(64px, 8vw, 80px);
  }
  .sec-under-content--company-clients .sec-under-content__inner {
    padding-top: clamp(64px, 8vw, 80px);
    padding-bottom: clamp(96px, 12vw, 160px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（900px以下：ごあいさつ縦並び）
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .p-company__greeting {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 32px;
  }
  .p-company__greeting-media {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    max-width: none;
  }
  .p-company__greeting-body {
    padding-top: 0;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-company > .p-company__greeting {
    margin-top: 0;
  }
  .p-company__greeting-text {
    margin-top: 16px;
  }
  .p-company__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-company__overview {
    margin-top: 40px;
  }
  .p-company__table {
    margin-top: 32px;
  }
  .p-company__table-row {
    gap: 24px;
    padding-inline: 16px;
  }
  .p-company__table-data,
  .p-company__table-row--multi .p-company__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-company__clients-group {
    margin-top: 40px;
  }
  .p-company__clients-subhead {
    padding-bottom: 16px;
    font-size: 1.0625rem;
  }
  .p-company__clients-item {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 2.2;
  }
  .sec-under-content:not(.sec-under-content--company-clients) .sec-under-content__inner:has(.p-company) {
    padding-bottom: 96px;
  }
  .sec-under-content--company-clients .sec-under-content__inner {
    padding-top: clamp(56px, 8vw, 80px);
    padding-bottom: clamp(80px, 10vw, 120px);
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-company > .p-company__greeting {
    margin-top: 0;
  }
  .p-company__greeting {
    gap: 24px;
  }
  .p-company__greeting-text {
    gap: 16px;
    margin-top: 12px;
  }
  .p-company__text {
    letter-spacing: 0.01em;
  }
  .p-company__overview {
    margin-top: 32px;
  }
  .p-company__overview .c-under-h3 {
    margin-top: 0;
  }
  .p-company__table {
    margin-top: 24px;
  }
  .p-company__table-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 8px;
    min-height: 0;
    padding: 20px 16px;
  }
  .p-company__table-head {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
  .p-company__table-data,
  .p-company__table-row--multi .p-company__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-company__clients-group {
    margin-top: 32px;
  }
  .p-company__clients-group + .p-company__clients-group {
    margin-top: 64px;
  }
  .p-company__clients-subhead {
    font-size: 1rem;
    padding-bottom: 12px;
  }
  .p-company__clients-list {
    -webkit-columns: 1;
       -moz-columns: 1;
            columns: 1;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    margin-top: 16px;
  }
  .p-company__clients-item {
    line-height: 2.2;
    letter-spacing: 0.01em;
  }
  .p-company-photos {
    padding: clamp(40px, 10vw, 64px) 0;
  }
  .p-company-photos__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 clamp(260px, 72vw, 466px);
            flex: 0 0 clamp(260px, 72vw, 466px);
    width: clamp(260px, 72vw, 466px);
    height: clamp(200px, 55vw, 360px);
  }
  .sec-under-content:not(.sec-under-content--company-clients) .sec-under-content__inner:has(.p-company) {
    padding-bottom: 80px;
  }
  .sec-under-content--company-clients .sec-under-content__inner {
    padding-top: 48px;
    padding-bottom: 80px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Strengths（02_STRENGTHES）
------------------------------------------------------------------------------ */
.p-strengths {
  width: 100%;
}

/* sec-intro（スクロールテキスト＋ロゴ透かし）
   ※ id="sec-intro" は他ページ（製品詳細等）でも別要素に使われているため、
     .p-strengths と組み合わせて強みページのみに限定する */
.p-strengths#sec-intro {
  position: relative;
  overflow: visible;
  display: -ms-grid;
  display: grid;
}

.sec-under-content:has(.p-strengths#sec-intro) {
  overflow: visible;
}

.sec-under-content__inner:has(.p-strengths#sec-intro) {
  overflow: visible;
}

/* Figma logo-large: 1501×382・右へはみ出し／縦位置はテキスト群の中心 */
.p-strengths__logo-bg {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  grid-area: 1/1;
  position: relative;
  z-index: 0;
  -ms-grid-row-align: center;
      align-self: center;
  -ms-grid-column-align: start;
      justify-self: start;
  margin-left: clamp(400px, 704px + 120px, 920px);
  width: clamp(520px, 104.2vw, 1501px);
  max-width: none;
  aspect-ratio: 1501/382;
  pointer-events: none;
}
.p-strengths__logo-bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: left center;
     object-position: left center;
}

/* リード文 */
.p-strengths__intro {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  grid-area: 1/1;
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
  max-width: 704px;
  margin-top: 78px;
}

.p-strengths__intro-head {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 100%;
  max-width: none;
  min-width: 0;
}

.p-strengths__lead-title {
  margin: 0;
  font-size: clamp(1.75rem, 3.33vw, 3rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
}
.p-strengths__lead-title > .p-strengths__scroll-text + .p-strengths__scroll-text {
  margin-top: 0.15em;
}

.p-strengths__intro-body {
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: 100%;
  min-width: 0;
  margin-top: 78px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 40px;
}

/* スクロールテキスト（txt-first → txt-active） */
.p-strengths__scroll-text {
  display: block;
  position: relative;
}

.p-strengths__scroll-text-first,
.p-strengths__scroll-text-active {
  display: block;
}

.p-strengths__scroll-text-first {
  color: #ccc;
}

.p-strengths__scroll-text-active {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  clip-path: inset(0 100% 0 0);
  will-change: clip-path;
}

.p-strengths__lead-title .p-strengths__scroll-text-active {
  color: #1a1a1a;
}

.p-strengths__intro-body .p-strengths__scroll-text-active {
  color: #505050;
}

.p-strengths__text {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  letter-spacing: 0.02em;
  color: #505050;
}

.p-strengths__intro-body .p-strengths__text {
  font-size: clamp(1rem, 1.53vw, 1.375rem);
  line-height: 2.0909090909;
}

@media (prefers-reduced-motion: reduce) {
  .js-strengths-scroll-text .p-strengths__scroll-text-active {
    display: none;
  }
  .js-strengths-scroll-text .p-strengths__lead-title .p-strengths__scroll-text-first {
    color: #1a1a1a;
  }
  .js-strengths-scroll-text .p-strengths__intro-body .p-strengths__scroll-text-first {
    color: #505050;
  }
  .p-strengths__scroll-text-active {
    will-change: auto;
  }
}
/* 強み一覧 */
.p-strengths__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-strengths__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 115px;
  padding-block: 50px;
  padding-inline: 25px;
  border-bottom: 1px solid #ccc;
}
.p-strengths__item:first-child {
  border-top: 1px solid #ccc;
}

.p-strengths__number {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-family: "Figtree", sans-serif;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(31, 31, 31, 0.2);
}

.p-strengths__item-title {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 322px;
          flex: 0 0 322px;
  margin: 0;
  /* 最長タイトル（16文字＋字間）が322px幅で1行に収まるよう上限を調整 */
  font-size: clamp(1.125rem, 1.35vw, 1.1875rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-strengths__item-text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  max-width: 750px;
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: #505050;
}

/* メッセージ（背景画像＋オーバーレイ） */
.p-strengths-message {
  position: relative;
  overflow: hidden;
  background-color: #fff;
}

.p-strengths-message__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.p-strengths-message__bg img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.p-strengths-message__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(255, 255, 255, 0.7);
  pointer-events: none;
}

.p-strengths-message__inner {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  margin: 0 auto;
  padding-block: 123px;
  padding-inline: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
}

.p-strengths-message__title {
  margin: 0;
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

.p-strengths-message__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
  max-width: 630px;
  margin: 51px auto 0;
}
.p-strengths-message__text .p-strengths__text {
  color: #1f1f1f;
  text-align: center;
}

/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-strengths) .sec-under-content__inner {
  padding-bottom: 80px;
}

.sec-under-content--strengths-list .sec-under-content__inner {
  padding-top: 0;
  padding-bottom: 80px;
}

/* ------------------------------------------------------------------------------
  フォトギャラリー
------------------------------------------------------------------------------ */
.p-strengths-photos {
  overflow: hidden;
  height: 520px;
  padding: 80px 0;
  background-color: #fff;
}

.p-strengths-photos__viewport {
  overflow: hidden;
  width: 100%;
}

.p-strengths-photos__track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-animation: p-strengths-photos-slide-left 80s linear infinite;
          animation: p-strengths-photos-slide-left 80s linear infinite;
  will-change: transform;
}

.p-strengths-photos__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 466px;
          flex: 0 0 466px;
  width: 466px;
  height: 360px;
  overflow: hidden;
}
.p-strengths-photos__item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@-webkit-keyframes p-strengths-photos-slide-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

@keyframes p-strengths-photos-slide-left {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-strengths-photos__track {
    -webkit-animation: none;
            animation: none;
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .c-under-h2 + .p-strengths > .p-strengths__intro {
    margin-top: clamp(48px, 6vw, 64px);
  }
  /* ロゴの横幅がGrid最小幅を押し広げないよう、テキスト幅は親コンテナ基準に固定 */
  .p-strengths#sec-intro {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .p-strengths__logo-bg {
    position: absolute;
    top: 50%;
    left: 0;
    -ms-flex-item-align: auto;
        -ms-grid-row-align: auto;
        align-self: auto;
    -ms-grid-column-align: auto;
        justify-self: auto;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    margin-left: clamp(320px, 704px + 48px, 820px);
    width: clamp(420px, 92vw, 1200px);
  }
  .p-strengths__intro {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .p-strengths__intro-head {
    max-width: 100%;
  }
  .p-strengths__lead-title,
  .p-strengths__scroll-text,
  .p-strengths__text {
    overflow-wrap: break-word;
  }
  .p-strengths__intro-body {
    margin-top: clamp(40px, 5vw, 78px);
    gap: clamp(20px, 2.5vw, 40px);
  }
  .p-strengths__lead-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  }
  .p-strengths__intro-body .p-strengths__text {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
  }
  .p-strengths__item {
    gap: clamp(32px, 5vw, 80px);
    padding-inline: clamp(16px, 2vw, 25px);
  }
  .p-strengths__item-title {
    -ms-flex-preferred-size: clamp(200px, 22vw, 322px);
        flex-basis: clamp(200px, 22vw, 322px);
  }
  .p-strengths-photos {
    height: auto;
    padding: clamp(48px, 8vw, 80px) 0;
  }
  .p-strengths-photos__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 clamp(320px, 45vw, 466px);
            flex: 0 0 clamp(320px, 45vw, 466px);
    width: clamp(320px, 45vw, 466px);
    height: clamp(248px, 35vw, 360px);
  }
  .sec-under-content:has(.p-strengths) .sec-under-content__inner {
    padding-bottom: clamp(64px, 8vw, 80px);
  }
  .sec-under-content--strengths-list .sec-under-content__inner {
    padding-bottom: clamp(64px, 8vw, 80px);
  }
  .p-strengths-message__inner {
    padding-block: clamp(80px, 10vw, 123px);
  }
  .p-strengths-message__text {
    margin-top: clamp(40px, 5vw, 51px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（900px以下：リード文縦並び）
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .p-strengths__logo-bg {
    margin-left: clamp(280px, 100% - 120px, 720px);
    width: clamp(360px, 85vw, 960px);
  }
  .p-strengths__intro {
    min-height: 0;
  }
  .p-strengths__intro-body {
    margin-top: clamp(32px, 4vw, 48px);
    gap: clamp(14px, 2vw, 20px);
  }
  .p-strengths__lead-title {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }
  .p-strengths__intro-body .p-strengths__text {
    font-size: clamp(0.9375rem, 2.5vw, 1.125rem);
    line-height: 1.9;
  }
  .p-strengths-photos {
    padding-top: clamp(24px, 4vw, 40px);
    padding-bottom: clamp(48px, 8vw, 80px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-strengths > .p-strengths__intro {
    margin-top: 24px;
  }
  /* 768px以下：intro-body幅100%・下付け＋下方向へ2/3はみ出し */
  .sec-under-content:has(.p-strengths#sec-intro),
  .sec-under-content__inner:has(.p-strengths#sec-intro) {
    overflow-x: clip;
    overflow-y: visible;
  }
  .p-strengths#sec-intro {
    overflow-x: clip;
    overflow-y: visible;
  }
  .p-strengths__logo-bg {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    margin-left: 0;
    -webkit-transform: translateY(66.6666666667%);
            transform: translateY(66.6666666667%);
    width: 100%;
    max-width: 100%;
  }
  .p-strengths__logo-bg img {
    -o-object-position: center center;
       object-position: center center;
  }
  .p-strengths__intro-body {
    margin-top: 28px;
    gap: 12px;
  }
  .p-strengths__lead-title {
    font-size: clamp(1.375rem, 4.5vw, 1.75rem);
  }
  .p-strengths__intro-body .p-strengths__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  /* SP・タブレット：スクロール演出なし、activeカラーで表示 */
  .js-strengths-scroll-text .p-strengths__scroll-text-active {
    display: none;
  }
  .js-strengths-scroll-text .p-strengths__lead-title .p-strengths__scroll-text-first {
    color: #1a1a1a;
  }
  .js-strengths-scroll-text .p-strengths__intro-body .p-strengths__scroll-text-first {
    color: #505050;
  }
  .p-strengths__item {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 24px;
    padding-block: 32px;
    padding-inline: 16px;
  }
  .p-strengths__number {
    font-size: 2.5rem;
  }
  .p-strengths__item-title {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 calc(100% - 80px);
            flex: 1 1 calc(100% - 80px);
    min-width: 0;
  }
  .p-strengths__item-text {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: none;
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-under-content:has(.p-strengths) .sec-under-content__inner {
    padding-bottom: 96px;
  }
  .sec-under-content--strengths-list .p-strengths__item {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .sec-under-content--strengths-list .sec-under-content__inner {
    padding-bottom: 96px;
  }
  .p-strengths-message__inner {
    padding-block: clamp(64px, 10vw, 96px);
    padding-inline: 20px;
  }
  .p-strengths-message__title {
    font-size: clamp(1.375rem, 3.5vw, 1.75rem);
  }
  .p-strengths-message__text {
    margin-top: clamp(32px, 5vw, 40px);
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-strengths > .p-strengths__intro {
    margin-top: 16px;
  }
  .p-strengths__intro-body {
    margin-top: 20px;
    gap: 10px;
  }
  .p-strengths__lead-title {
    font-size: clamp(1.25rem, 4.5vw, 1.375rem);
  }
  .p-strengths__intro-body .p-strengths__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-strengths__text,
  .p-strengths__item-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-strengths__item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 12px;
    padding-block: 24px;
    padding-inline: 16px;
  }
  .sec-under-content--strengths-list .p-strengths__item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .p-strengths__number {
    font-size: 2rem;
  }
  .p-strengths__item-title {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    font-size: clamp(1.0625rem, 4vw, 1.125rem);
  }
  .p-strengths-photos {
    padding-top: clamp(20px, 5vw, 32px);
    padding-bottom: clamp(40px, 10vw, 64px);
  }
  .p-strengths-photos__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 clamp(260px, 72vw, 466px);
            flex: 0 0 clamp(260px, 72vw, 466px);
    width: clamp(260px, 72vw, 466px);
    height: clamp(200px, 55vw, 360px);
  }
  .sec-under-content:has(.p-strengths) .sec-under-content__inner {
    padding-bottom: 80px;
  }
  .sec-under-content--strengths-list .sec-under-content__inner {
    padding-bottom: 80px;
  }
  .p-strengths-message__inner {
    padding-block: clamp(48px, 12vw, 64px);
    padding-inline: 16px;
  }
  .p-strengths-message__title {
    font-size: clamp(1.25rem, 4.5vw, 1.5rem);
    line-height: 1.5;
  }
  .p-strengths-message__text {
    margin-top: 24px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Product Index（03_PRODUCT_INDEX）
------------------------------------------------------------------------------ */
.p-product {
  width: 100%;
  margin-top: 0;
}

.p-product__grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 100px 80px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-product__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc((100% - 80px) * 0.5);
          flex: 0 0 calc((100% - 80px) * 0.5);
  max-width: 680px;
  min-width: 0;
}

/* カード（トップ sec-product 構造を下層用にスコープ） */
.p-product .sec-product__card {
  height: 100%;
}

.p-product__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 32px;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.p-product .sec-product__card-media {
  margin: 0;
  aspect-ratio: 1.6214285714;
  overflow: hidden;
  background: #f0f0f0;
}
.p-product .sec-product__card-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

/* ボックス炉のみ枠線（Figma card_03） */
.p-product__item:nth-child(3) .sec-product__card-media {
  border: 1px solid #ccc;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.p-product .sec-product__card-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
}

.p-product .sec-product__card-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.67;
  color: #1f1f1f;
}

.p-product .sec-product__card-title-en {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  color: #1f1f1f;
}

.p-product .sec-product__card-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: #1f1f1f;
}

.p-product .sec-product__card .c-view-more {
  margin-top: auto;
}

/* ホバー（画像ズーム・View more矢印） */
@media (hover: hover) {
  .p-product__link:hover .sec-product__card-media img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .p-product__link:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-product) .sec-under-content__inner {
  padding-bottom: 160px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .c-under-h2 + .p-product {
    margin-top: 0;
  }
  .p-product__grid {
    gap: 72px 40px;
  }
  .p-product__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc((100% - 40px) * 0.5);
            flex: 0 0 calc((100% - 40px) * 0.5);
    max-width: none;
  }
  .sec-under-content:has(.p-product) .sec-under-content__inner {
    padding-bottom: 120px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-product {
    margin-top: 0;
  }
  .p-product__grid {
    gap: 64px;
  }
  .p-product__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: none;
  }
  .p-product__link {
    gap: 28px;
  }
  .p-product .sec-product__card-title {
    font-size: clamp(1.375rem, 3.5vw, 1.5rem);
  }
  .p-product .sec-product__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-under-content:has(.p-product) .sec-under-content__inner {
    padding-bottom: 96px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-product {
    margin-top: 0;
  }
  .p-product__grid {
    gap: 48px;
  }
  .p-product__link {
    gap: 24px;
  }
  .p-product .sec-product__card-head {
    gap: 4px;
  }
  .p-product .sec-product__card-title {
    font-size: clamp(1.25rem, 4.5vw, 1.375rem);
    line-height: 1.5;
  }
  .p-product .sec-product__card-title-en {
    font-size: 0.6875rem;
  }
  .p-product .sec-product__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-product .sec-product__card .c-view-more__text {
    font-size: 0.875rem;
  }
  .p-product .sec-product__card .c-view-more__icon {
    width: 28px;
    height: 28px;
  }
  .p-product .sec-product__card .c-view-more__arrow-box {
    width: 28px;
    height: 28px;
  }
  .sec-under-content:has(.p-product) .sec-under-content__inner {
    padding-bottom: 80px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Product Detail（03_PRODUCT_*）
------------------------------------------------------------------------------ */
.p-product-detail {
  width: 100%;
}

.p-product-detail__text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  sec-intro
------------------------------------------------------------------------------ */
.p-product-detail__intro {
  width: 100%;
}

.p-product-detail__intro-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 78px;
}

.p-product-detail__intro-media {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 680px;
          flex: 0 0 680px;
  width: 680px;
  max-width: 47.22%;
  min-width: 0;
}

.p-product-detail__swiper {
  width: 100%;
  overflow: hidden;
}

.p-product-detail__intro-figure {
  margin: 0;
  aspect-ratio: 1.619047619;
  overflow: hidden;
  background: #f0f0f0;
}
.p-product-detail__intro-figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-product-detail__swiper-pagination {
  /* Swiper標準の .swiper-pagination（position: absolute）を確実に上書きするため !important を付与 */
  position: static !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  margin-top: 13px;
  line-height: 0;
}

.p-product-detail__swiper-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  /* Swiper標準の水平方向バレットmargin（4px）を打ち消し、gapのみで間隔を制御 */
  margin: 0 !important;
  background: #ccc;
  opacity: 1;
}

.p-product-detail__swiper-pagination .swiper-pagination-bullet-active {
  background: #1f1f1f;
}

.p-product-detail__intro-head {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  padding-top: 0;
}

.p-product-detail__intro-accent {
  display: block;
  width: 60px;
  height: 1px;
  background: #1a1a1a;
  margin-bottom: 33px;
}

.p-product-detail__intro-catch {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: clamp(1.5rem, 2.78vw, 2.5rem);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-product-detail__intro-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
  margin-top: 56px;
}

.p-product-detail__intro-text .p-product-detail__text + .p-product-detail__intro-text .p-product-detail__text {
  margin-top: 0;
}

/* ------------------------------------------------------------------------------
  sec-kadai
------------------------------------------------------------------------------ */
.p-product-detail__kadai {
  margin-top: 128px;
  padding-bottom: 160px;
}

.p-product-detail__kadai .c-under-h3 {
  margin-top: 0;
}

.p-product-detail__kadai-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 45px;
  margin: 21px 0 0;
  padding: 0;
  list-style: none;
}

.p-product-detail__kadai-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 450px;
          flex: 0 0 450px;
  width: 450px;
  max-width: calc((100% - 90px) / 3);
  min-width: 0;
}

.p-product-detail__kadai-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-product-detail__kadai-number {
  z-index: 1;
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin: 0 28px -22px 0;
  font-family: "Figtree", sans-serif;
  font-size: 2.25rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1;
  color: #1a1a1a;
}

.p-product-detail__kadai-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  margin: 0;
  aspect-ratio: 3;
  padding: 0 24px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: rgba(0, 107, 232, 0.05);
}

.p-product-detail__kadai-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  text-align: center;
}

/* ------------------------------------------------------------------------------
  sec-features
------------------------------------------------------------------------------ */
.p-product-detail__features {
  padding-bottom: 160px;
}

.p-product-detail__features-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 80px 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-product-detail__features-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 700px;
          flex: 0 0 700px;
  width: 700px;
  max-width: calc((100% - 40px) * 0.5);
  min-width: 0;
}

.p-product-detail__feature {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
}

.p-product-detail__feature-line {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 3px;
}

.p-product-detail__feature-line-accent {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100px;
          flex: 0 0 100px;
  width: 100px;
  height: 100%;
  background: #006be8;
}

.p-product-detail__feature-line-base {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  height: 100%;
  background: rgba(31, 31, 31, 0.2);
}

.p-product-detail__feature-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}

.p-product-detail__feature-label-en {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  color: #1f1f1f;
}

.p-product-detail__feature-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

.p-product-detail__feature-text {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.43;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

/* ------------------------------------------------------------------------------
  sec-movie / sec-use-case（2カラム）
  ※片方がコメントアウト等でDOMから消えた場合は残りを100%にする
------------------------------------------------------------------------------ */
.p-product-detail__movie,
.p-product-detail__use-case {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding-bottom: 160px;
}

.p-product-detail__movie {
  float: left;
  width: calc((100% - 40px) * 0.5);
  margin-right: 40px;
}

.p-product-detail__use-case {
  float: left;
  width: calc((100% - 40px) * 0.5);
}

/* use-case 単独（直前に movie がない） */
.p-product-detail__use-case:not(.p-product-detail__movie + .p-product-detail__use-case) {
  float: none;
  width: 100%;
}

/* movie 単独（直後に use-case がない） */
.p-product-detail__movie:not(:has(+ .p-product-detail__use-case)) {
  width: 100%;
  margin-right: 0;
}

.p-product-detail__our-service {
  clear: both;
  padding-bottom: 160px;
}

.p-product-detail__movie-body {
  width: 100%;
}

.p-product-detail__movie-embed {
  position: relative;
  width: 100%;
  padding-top: calc(100% / 1.6786570743);
  background: #c4c4c4;
}

.p-product-detail__movie-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.p-product-detail__use-case .c-under-h3 {
  margin-top: 0;
  font-size: clamp(1.125rem, 1.53vw, 1.375rem);
  line-height: 1.5;
}

.p-product-detail__use-case-list,
.p-product-detail__our-service-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 16px;
  margin: 33px 0 0;
  padding: 0;
  list-style: none;
}

.p-product-detail__use-case-item,
.p-product-detail__our-service-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 10px 20px;
  border-radius: 5px;
  background: #1f1f1f;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #fff;
}

/* ------------------------------------------------------------------------------
  sec-our-service
------------------------------------------------------------------------------ */
.p-product-detail__our-service-media {
  margin: 0;
  aspect-ratio: 3.4285714286;
  overflow: hidden;
  background: #f0f0f0;
}
.p-product-detail__our-service-media img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-product-detail__our-service-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0;
  margin-top: 39px;
}

/* ------------------------------------------------------------------------------
  sec-project
------------------------------------------------------------------------------ */
.p-product-detail__project {
  padding-bottom: 0;
}

.p-product-detail__project-text {
  margin-top: -12px;
}

.p-product-detail__project-lead {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-product-detail) .sec-under-content__inner {
  padding-bottom: 160px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .c-under-h2 + .p-product-detail > .p-product-detail__intro {
    margin-top: clamp(24px, 4vw, 40px);
  }
  .p-product-detail__intro-body {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: clamp(32px, 4vw, 78px);
  }
  .p-product-detail__intro-media {
    -ms-flex-preferred-size: clamp(280px, 42vw, 680px);
        flex-basis: clamp(280px, 42vw, 680px);
    width: clamp(280px, 42vw, 680px);
    max-width: none;
  }
  .p-product-detail__intro-text {
    margin-top: clamp(40px, 5vw, 56px);
  }
  .p-product-detail__kadai {
    margin-top: clamp(64px, 8vw, 128px);
    padding-bottom: clamp(96px, 10vw, 160px);
  }
  .p-product-detail__kadai-list {
    gap: clamp(32px, 4vw, 45px);
  }
  .p-product-detail__kadai-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 calc((100% - 45px) * 0.5);
            flex: 0 1 calc((100% - 45px) * 0.5);
    width: auto;
    max-width: calc((100% - 45px) * 0.5);
  }
  .p-product-detail__features {
    padding-bottom: clamp(96px, 10vw, 160px);
  }
  .p-product-detail__features-list {
    gap: clamp(48px, 6vw, 80px) clamp(24px, 3vw, 40px);
  }
  .p-product-detail__features-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 calc((100% - 40px) * 0.5);
            flex: 0 1 calc((100% - 40px) * 0.5);
    width: auto;
    max-width: calc((100% - 40px) * 0.5);
  }
  .p-product-detail__movie,
  .p-product-detail__use-case {
    float: none;
    width: 100%;
    margin-right: 0;
    padding-bottom: clamp(64px, 8vw, 96px);
  }
  .p-product-detail__our-service {
    clear: both;
    padding-bottom: clamp(96px, 10vw, 160px);
  }
  .p-product-detail__our-service-text {
    margin-top: clamp(28px, 4vw, 39px);
  }
  .sec-under-content:has(.p-product-detail) .sec-under-content__inner {
    padding-bottom: clamp(96px, 10vw, 160px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet wide（900px以下：イントロ縦並び）
------------------------------------------------------------------------------ */
@media (max-width: 900px) {
  .p-product-detail__intro-body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 32px;
  }
  .p-product-detail__intro-media {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    max-width: none;
  }
  .p-product-detail__intro-head {
    width: 100%;
    padding-top: 0;
  }
  .p-product-detail__intro-accent {
    margin-bottom: clamp(20px, 3vw, 33px);
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .c-under-h2 + .p-product-detail > .p-product-detail__intro {
    margin-top: 24px;
  }
  .p-product-detail__intro-body {
    gap: 28px;
  }
  .p-product-detail__intro-media {
    max-width: none;
  }
  .p-product-detail__intro-accent {
    margin-bottom: 20px;
  }
  .p-product-detail__intro-catch {
    font-size: clamp(1.375rem, 4.5vw, 1.75rem);
    line-height: 1.45;
  }
  .p-product-detail__intro-text {
    margin-top: 32px;
  }
  .p-product-detail__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-product-detail__kadai {
    margin-top: 56px;
    padding-bottom: 96px;
  }
  .p-product-detail__kadai-list {
    margin-top: 24px;
    gap: 13px;
  }
  .p-product-detail__kadai-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    width: 100%;
    max-width: none;
  }
  .p-product-detail__kadai-media {
    aspect-ratio: 9;
  }
  .p-product-detail__kadai-number {
    margin: 0 20px -18px 0;
    font-size: 1.875rem;
  }
  .p-product-detail__kadai-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.5;
  }
  .p-product-detail__features,
  .p-product-detail__movie,
  .p-product-detail__use-case,
  .p-product-detail__our-service {
    padding-bottom: 96px;
  }
  .p-product-detail__features-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    width: 100%;
    max-width: none;
  }
  .p-product-detail__feature-title {
    font-size: clamp(1.125rem, 3vw, 1.25rem);
  }
  .p-product-detail__feature-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.75;
  }
  .p-product-detail__use-case .c-under-h3 {
    font-size: clamp(1.0625rem, 3vw, 1.125rem);
    line-height: 1.6;
  }
  .p-product-detail__use-case-list,
  .p-product-detail__our-service-list {
    margin-top: 28px;
    gap: 12px;
  }
  .p-product-detail__use-case-item,
  .p-product-detail__our-service-item {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
  .p-product-detail__project-lead {
    font-size: clamp(1.0625rem, 3vw, 1.125rem);
    line-height: 1.75;
  }
  .p-product-detail__project-text {
    margin-top: 0;
  }
  .sec-under-content:has(.p-product-detail) .sec-under-content__inner {
    padding-bottom: 96px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .c-under-h2 + .p-product-detail > .p-product-detail__intro {
    margin-top: 16px;
  }
  .p-product-detail__intro-body {
    gap: 24px;
  }
  .p-product-detail__intro-catch {
    font-size: clamp(1.25rem, 4.5vw, 1.375rem);
    line-height: 1.5;
  }
  .p-product-detail__intro-text {
    margin-top: 24px;
  }
  .p-product-detail__swiper-pagination {
    margin-top: 10px;
    gap: 8px;
  }
  .p-product-detail__kadai {
    margin-top: 40px;
    padding-bottom: 80px;
  }
  .p-product-detail__features,
  .p-product-detail__movie,
  .p-product-detail__use-case,
  .p-product-detail__our-service {
    padding-bottom: 80px;
  }
  .p-product-detail__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-product-detail__kadai-list {
    margin-top: 20px;
    gap: 11px;
  }
  .p-product-detail__kadai-number {
    margin: 0 16px -14px 0;
    font-size: 1.625rem;
  }
  .p-product-detail__kadai-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.6;
  }
  .p-product-detail__features-list {
    gap: 48px;
  }
  .p-product-detail__feature {
    gap: 16px;
  }
  .p-product-detail__feature-label-en {
    font-size: 0.8125rem;
  }
  .p-product-detail__feature-title {
    font-size: clamp(1.0625rem, 4vw, 1.125rem);
    line-height: 1.5;
  }
  .p-product-detail__feature-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.75;
    letter-spacing: 0.01em;
  }
  .p-product-detail__use-case-list,
  .p-product-detail__our-service-list {
    margin-top: 20px;
    gap: 10px;
  }
  .p-product-detail__use-case-item,
  .p-product-detail__our-service-item {
    padding: 8px 14px;
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
  .p-product-detail__our-service-text {
    margin-top: 24px;
  }
  .p-product-detail__project-lead {
    font-size: 1rem;
    line-height: 1.75;
    letter-spacing: 0.01em;
  }
  .p-product-detail__project-text {
    margin-top: 0;
  }
  .sec-under-content:has(.p-product-detail) .sec-under-content__inner {
    padding-bottom: 80px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Recruit（07_RECRUIT）
------------------------------------------------------------------------------ */
.p-recruit {
  width: 100%;
}

.p-recruit__text {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #3c3c3c;
}

/* 原文の空行（項目の区切り）を表現する余白 */
.p-recruit__text--spaced {
  margin-top: 16px;
}

/* 採用情報テーブル（会社概要テーブルレイアウトを流用） */
.p-recruit__table {
  margin: 0;
  padding: 0;
  border-top: 1px solid #e5e5e5;
}

.p-recruit__table-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 64px;
  min-height: 62.5px;
  padding: 16.25px 32px;
  margin: 0;
  border-bottom: 1px solid #e5e5e5;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.p-recruit__table-head {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 196px;
          flex: 0 0 196px;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-recruit__table-data {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #3c3c3c;
}

.p-recruit__table-row--multi {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.p-recruit__table-row--multi .p-recruit__table-data {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-recruit) .sec-under-content__inner {
  padding-bottom: 160px;
}

/* ------------------------------------------------------------------------------
  採用ページ専用の電話問い合わせ案内（サイト共通のsec-contactとは別要素）
------------------------------------------------------------------------------ */
.p-recruit__contact {
  margin-top: 80px;
}

.p-recruit__contact .c-under-h2 {
  margin: 0;
}

.p-recruit__contact-lead {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-recruit__contact-actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: 40px;
  margin-top: 24px;
}

.p-recruit__contact-tel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(50% - 20px);
          flex: 0 0 calc(50% - 20px);
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: calc(50% - 20px);
  min-width: 0;
}

.p-recruit__contact-entry {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(50% - 20px);
          flex: 0 0 calc(50% - 20px);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: calc(50% - 20px);
  min-width: 0;
}
.p-recruit__contact-entry .c-button--contact-submit {
  width: 100%;
  max-width: 500px;
  min-height: 64px;
}

.p-recruit__contact-tel-link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  text-decoration: none;
}

.p-recruit__contact-tel-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 25px;
  height: 25px;
  margin-top: 5px;
}
.p-recruit__contact-tel-icon img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-recruit__contact-tel-num {
  font-size: 2.25rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

.p-recruit__contact-tel-note {
  margin: 16px 0 0;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #1f1f1f;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：footer-cta と同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-recruit__contact-actions {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: clamp(24px, 4vw, 32px);
    margin-top: clamp(20px, 3vw, 24px);
  }
  .p-recruit__contact-tel,
  .p-recruit__contact-entry {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .p-recruit__contact-entry {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .p-recruit__contact-entry .c-button--contact-submit {
    max-width: 100%;
    min-height: 56px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .p-recruit__table-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
    min-height: 0;
    padding-inline: 16px;
  }
  .p-recruit__table-head {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .p-recruit__contact {
    margin-top: 64px;
  }
  .p-recruit__contact-lead {
    font-size: 1.125rem;
  }
  .p-recruit__contact-tel-num {
    font-size: 1.75rem;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .p-recruit__text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-recruit__table-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 8px;
    min-height: 0;
    padding: 20px 16px;
  }
  .p-recruit__table-head {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
  }
  .p-recruit__contact {
    margin-top: 48px;
  }
  .p-recruit__contact-lead {
    font-size: 1rem;
  }
  .p-recruit__contact-entry .c-button--contact-submit {
    min-height: 52px;
    font-size: 0.9375rem;
  }
  .p-recruit__contact-tel-num {
    font-size: 1.5rem;
  }
  .p-recruit__contact-tel-note {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
  }
}
/* ------------------------------------------------------------------------------
  Page : Works Top（04_WORKS）
------------------------------------------------------------------------------ */
.p-works-top__lead {
  margin-top: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  color: #1a1a1a;
}

.p-works-top {
  width: 100%;
  margin-top: 48px;
}

.p-works-top__grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 100px 80px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-works-top__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc((100% - 80px) * 0.5);
          flex: 0 0 calc((100% - 80px) * 0.5);
  max-width: 680px;
  min-width: 0;
}

.p-works-top__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.p-works-top__card-media {
  margin: 0;
  aspect-ratio: 1.619047619;
  overflow: hidden;
  background: #f0f0f0;
}
.p-works-top__card-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

.p-works-top__card-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 6px;
}

.p-works-top__card-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.67;
  color: #1f1f1f;
}

.p-works-top__card-title-en {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  color: #1f1f1f;
}

.p-works-top__card-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: #1f1f1f;
}

.p-works-top__card .c-view-more {
  margin-top: auto;
}

/* ホバー（画像ズーム・View Works矢印） */
@media (hover: hover) {
  .p-works-top__link:hover .p-works-top__card-media img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .p-works-top__link:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-works-top) .sec-under-content__inner {
  padding-bottom: 160px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-works-top {
    margin-top: 32px;
  }
  .p-works-top__grid {
    gap: 72px 40px;
  }
  .p-works-top__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc((100% - 40px) * 0.5);
            flex: 0 0 calc((100% - 40px) * 0.5);
    max-width: none;
  }
  .sec-under-content:has(.p-works-top) .sec-under-content__inner {
    padding-bottom: 120px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .p-works-top__lead {
    font-size: 1rem;
    line-height: 1.8;
  }
  .p-works-top {
    margin-top: 24px;
  }
  .p-works-top__grid {
    gap: 64px;
  }
  .p-works-top__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: none;
  }
  .p-works-top__link {
    gap: 16px;
  }
  .p-works-top__card-title {
    font-size: clamp(1.375rem, 3.5vw, 1.5rem);
  }
  .p-works-top__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .sec-under-content:has(.p-works-top) .sec-under-content__inner {
    padding-bottom: 96px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .p-works-top {
    margin-top: 16px;
  }
  .p-works-top__grid {
    gap: 48px;
  }
  .p-works-top__card-head {
    gap: 4px;
  }
  .p-works-top__card-title {
    font-size: clamp(1.25rem, 4.5vw, 1.375rem);
    line-height: 1.5;
  }
  .p-works-top__card-title-en {
    font-size: 0.6875rem;
  }
  .p-works-top__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-works-top__card .c-view-more__text {
    font-size: 0.875rem;
  }
  .p-works-top__card .c-view-more__icon {
    width: 28px;
    height: 28px;
  }
  .p-works-top__card .c-view-more__arrow-box {
    width: 28px;
    height: 28px;
  }
  .sec-under-content:has(.p-works-top) .sec-under-content__inner {
    padding-bottom: 80px;
  }
}
/* ------------------------------------------------------------------------------
  Page : Works Category List（04_WORKS_LIST）
------------------------------------------------------------------------------ */
.p-works-category__lead {
  margin-top: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  color: #1a1a1a;
}

.p-works-category {
  width: 100%;
  margin-top: 48px;
}

.p-works-category__grid {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 100px 80px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-works-category__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 calc((100% - 80px) * 0.5);
          flex: 0 0 calc((100% - 80px) * 0.5);
  max-width: 680px;
  min-width: 0;
}

.p-works-category__card {
  height: 100%;
}

.p-works-category__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.p-works-category__card-media {
  margin: 0;
  aspect-ratio: 1.619047619;
  overflow: hidden;
  background: #f0f0f0;
}
.p-works-category__card-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

.p-works-category__card-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.67;
  color: #1f1f1f;
}

.p-works-category__card-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: #1f1f1f;
}

.p-works-category__card .c-view-more {
  margin-top: auto;
}

/* ホバー（画像ズーム・View more矢印） */
@media (hover: hover) {
  .p-works-category__link:hover .p-works-category__card-media img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .p-works-category__link:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* ------------------------------------------------------------------------------
  ページネーション（Figma Pagination 171:3728）
  静的HTML：.p-works-category__pagination
  WordPress：.p-works-category__pager + WP-PageNavi
------------------------------------------------------------------------------ */
.p-works-category__pagination,
.p-works-category__pager {
  margin-top: 80px;
}

.p-works-category__pagination-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-works-category__pagination-item a,
.p-works-category__pagination-item span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #bcbcbc;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 700;
  color: #bcbcbc;
  text-decoration: none;
  -webkit-transition: border-color 0.3s ease, color 0.3s ease, background-color 0.3s ease;
  transition: border-color 0.3s ease, color 0.3s ease, background-color 0.3s ease;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-works-category__pagination-item.is-current span {
  background-color: #185bc3;
  border-color: #185bc3;
  color: #fff;
}

@media (hover: hover) {
  .p-works-category__pagination-item a:hover {
    border-color: #185bc3;
    color: #185bc3;
  }
}
/* WP-PageNavi */
.p-works-category__pager .wp-pagenavi {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
}
.p-works-category__pager .wp-pagenavi a,
.p-works-category__pager .wp-pagenavi span {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid #bcbcbc;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 700;
  color: #bcbcbc;
  text-decoration: none;
  -webkit-transition: border-color 0.3s ease, color 0.3s ease, background-color 0.3s ease;
  transition: border-color 0.3s ease, color 0.3s ease, background-color 0.3s ease;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-works-category__pager .wp-pagenavi span.current {
  background-color: #185bc3;
  border-color: #185bc3;
  color: #fff;
}

@media (hover: hover) {
  .p-works-category__pager .wp-pagenavi a:hover {
    border-color: #185bc3;
    color: #185bc3;
  }
}
/* 下層コンテンツ余白調整 */
.sec-under-content:has(.p-works-category) .sec-under-content__inner {
  padding-bottom: 100px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下：ヘッダーと同幅）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-works-category {
    margin-top: 32px;
  }
  .p-works-category__grid {
    gap: 72px 40px;
  }
  .p-works-category__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc((100% - 40px) * 0.5);
            flex: 0 0 calc((100% - 40px) * 0.5);
    max-width: none;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .p-works-category__lead {
    font-size: 1rem;
    line-height: 1.8;
  }
  .p-works-category {
    margin-top: 24px;
  }
  .p-works-category__grid {
    gap: 64px;
  }
  .p-works-category__item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: none;
  }
  .p-works-category__link {
    gap: 16px;
  }
  .p-works-category__card-title {
    font-size: clamp(1.375rem, 3.5vw, 1.5rem);
  }
  .p-works-category__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-works-category__pagination,
  .p-works-category__pager {
    margin-top: 56px;
  }
  .p-works-category__pagination-list {
    gap: 10px;
  }
  .p-works-category__pagination-item a,
  .p-works-category__pagination-item span {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  .p-works-category__pager .wp-pagenavi {
    gap: 10px;
  }
  .p-works-category__pager .wp-pagenavi a,
  .p-works-category__pager .wp-pagenavi span {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .p-works-category {
    margin-top: 16px;
  }
  .p-works-category__grid {
    gap: 48px;
  }
  .p-works-category__card-title {
    font-size: clamp(1.25rem, 4.5vw, 1.375rem);
    line-height: 1.5;
  }
  .p-works-category__card-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
    letter-spacing: 0.01em;
  }
  .p-works-category__card .c-view-more__text {
    font-size: 0.875rem;
  }
  .p-works-category__card .c-view-more__icon {
    width: 28px;
    height: 28px;
  }
  .p-works-category__card .c-view-more__arrow-box {
    width: 28px;
    height: 28px;
  }
  .p-works-category__pagination-list {
    gap: 8px;
  }
  .p-works-category__pagination-item a,
  .p-works-category__pagination-item span {
    width: 36px;
    height: 36px;
    font-size: 0.875rem;
  }
  .p-works-category__pager .wp-pagenavi {
    gap: 8px;
  }
  .p-works-category__pager .wp-pagenavi a,
  .p-works-category__pager .wp-pagenavi span {
    width: 36px;
    height: 36px;
    font-size: 0.875rem;
  }
}
/* ------------------------------------------------------------------------------
  Page : Works Detail（04_WORKS_DETAIL）
------------------------------------------------------------------------------ */
.p-works-detail {
  width: 100%;
}

/* ------------------------------------------------------------------------------
  sec-intro（メイン画像＋導入設備情報）
------------------------------------------------------------------------------ */
.p-works-detail__intro {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 80px;
}

.p-works-detail__intro-media {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 680px;
          flex: 0 0 680px;
  width: 680px;
  max-width: 47.22%;
  min-width: 0;
}

.p-works-detail__swiper {
  width: 100%;
  overflow: hidden;
}

.p-works-detail__intro-figure {
  margin: 0;
  aspect-ratio: 1.619047619;
  overflow: hidden;
  background: #f0f0f0;
}
.p-works-detail__intro-figure img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-works-detail__swiper-pagination {
  /* Swiper標準の .swiper-pagination（position: absolute）を確実に上書きするため !important を付与 */
  position: static !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  margin-top: 13px;
  line-height: 0;
}
.p-works-detail__swiper-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 !important;
  background: #ccc;
  opacity: 1;
}
.p-works-detail__swiper-pagination .swiper-pagination-bullet-active {
  background: #1f1f1f;
}

.p-works-detail__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

.p-works-detail__field + .p-works-detail__field {
  margin-top: 32px;
}

.p-works-detail__field-label {
  margin: 0 0 12px;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-works-detail__field-value {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-works-detail__meta-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 24px 48px;
  margin: 32px 0 0;
  padding: 0;
}

.p-works-detail__meta-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 12px;
  margin: 0;
}

.p-works-detail__meta-label {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #767676;
}

.p-works-detail__meta-value {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  導入背景／課題／提案／導入後／アフターフォロー
------------------------------------------------------------------------------ */
.p-works-detail__blocks {
  margin-top: 128px;
}

.p-works-detail__block + .p-works-detail__block {
  margin-top: 64px;
}
.p-works-detail__block .c-under-h3 {
  margin-top: 0;
}

.p-works-detail__block-text {
  margin: 20px 0 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* ------------------------------------------------------------------------------
  カテゴリ一覧へ戻る
------------------------------------------------------------------------------ */
.p-works-detail__back {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 96px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-works-detail__intro {
    gap: 40px;
  }
}
/* ------------------------------------------------------------------------------
  Tablet
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .p-works-detail__intro {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 11px;
  }
  .p-works-detail__intro-media {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: 100%;
    max-width: none;
  }
  .p-works-detail__info {
    width: 100%;
    margin-top: 30px;
  }
  .p-works-detail__field-value {
    font-size: 1.5rem;
  }
  .p-works-detail__blocks {
    margin-top: 96px;
  }
  .p-works-detail__block + .p-works-detail__block {
    margin-top: 48px;
  }
  .p-works-detail__back {
    margin-top: 64px;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .p-works-detail__field-value {
    font-size: 1.25rem;
  }
  .p-works-detail__meta-list {
    gap: 16px 32px;
  }
  .p-works-detail__blocks {
    margin-top: 64px;
  }
  .p-works-detail__block + .p-works-detail__block {
    margin-top: 40px;
  }
  .p-works-detail__back {
    margin-top: 48px;
  }
  .p-works-detail__back .c-button {
    max-width: none;
  }
}
/* ------------------------------------------------------------------------------
  Page : Solution（05_SOLUTION）
------------------------------------------------------------------------------ */
.p-solution {
  width: 100%;
}

/* ------------------------------------------------------------------------------
  sec-intro
------------------------------------------------------------------------------ */
.p-solution__intro-lead {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
  color: #1a1a1a;
}

.p-solution__intro-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 45px;
  margin: 48px 0 0;
  padding: 0 0 80px;
  list-style: none;
}

.p-solution__intro-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 450px;
          flex: 0 0 450px;
  width: 450px;
  max-width: calc((100% - 90px) / 3);
  min-width: 0;
}

.p-solution__intro-link {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  padding: 30px 0;
  border-bottom: 1px solid #666;
}

.p-solution__intro-link .c-view-more__text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 500;
}

.p-solution__intro-link .c-view-more__icon {
  position: absolute;
  right: 20px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

/* ------------------------------------------------------------------------------
  sec-labor-saving / sec-quality / sec-productivity / sec-automation / sec-custom / sec-maintainability
  （6セクション共通：.p-solution__section）
------------------------------------------------------------------------------ */
/* 導入文（画像 + リード文 + 本文） */
.p-solution__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 80px;
  padding-bottom: 80px;
}

.p-solution__main-media {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 490px;
          flex: 0 0 490px;
  width: 490px;
  aspect-ratio: 1.384180791;
  overflow: hidden;
}
.p-solution__main-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-solution__main-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 11px;
  min-width: 0;
}

.p-solution__main-title {
  margin: 0;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

.p-solution__main-text {
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: #1a1a1a;
}
.p-solution__main-text p {
  margin: 0;
}

/* 解決できる課題例（課題番号カード） */
.p-solution__kadai .c-under-h3 {
  margin-top: 0;
}

.p-solution__kadai-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 45px;
  margin: 21px 0 0;
  padding: 0 0 80px;
  list-style: none;
}

.p-solution__kadai-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 450px;
          flex: 0 0 450px;
  width: 450px;
  max-width: calc((100% - 90px) / 3);
  min-width: 0;
}

.p-solution__kadai-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-solution__kadai-number {
  z-index: 1;
  -ms-flex-item-align: end;
      align-self: flex-end;
  margin: 0 28px -22px 0;
  font-family: "Figtree", sans-serif;
  font-size: 2.25rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1;
  color: #1a1a1a;
}

.p-solution__kadai-media {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  aspect-ratio: 3;
  padding: 0 24px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: rgba(0, 107, 232, 0.05);
}

.p-solution__kadai-text {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  text-align: center;
}

/* 対応製品例（製品カードグリッド） */
.p-solution__product .c-under-h3 {
  margin-top: 0;
}

.p-solution__product-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 40px;
  margin: 21px 0 0;
  padding: 0 0 160px;
  list-style: none;
}

.p-solution__product-item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 330px;
          flex: 0 0 330px;
  width: 330px;
  max-width: calc((100% - 120px) / 4);
  min-width: 0;
}

.p-solution__product-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  text-decoration: none;
}

.p-solution__product-media {
  margin: 0;
  aspect-ratio: 1.6176470588;
  overflow: hidden;
  background: #f0f0f0;
}
.p-solution__product-media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

.p-solution__product-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.p-solution__product-title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.67;
  color: #1f1f1f;
}

.p-solution__product-title-en {
  margin: 0;
  font-family: "Figtree", sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  color: #1f1f1f;
}

@media (hover: hover) {
  .p-solution__product-link:hover .p-solution__product-media img {
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
  .p-solution__product-link:hover .c-view-more__arrow-track {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
/* ------------------------------------------------------------------------------
  sec-project（導入をご検討の方へ）
------------------------------------------------------------------------------ */
.p-solution__project-lead {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
  color: #1a1a1a;
}

.p-solution__project-text {
  margin-top: 24px;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: #1a1a1a;
}
.p-solution__project-text p + p {
  margin-top: 24px;
}

/* ------------------------------------------------------------------------------
  Tablet wide（980px以下）
------------------------------------------------------------------------------ */
@media (max-width: 980px) {
  .p-solution__product-list {
    padding-bottom: clamp(96px, 12vw, 160px);
  }
  .p-solution__kadai-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 calc((100% - 45px) * 0.5);
            flex: 0 1 calc((100% - 45px) * 0.5);
    width: auto;
    max-width: calc((100% - 45px) * 0.5);
  }
  .p-solution__main {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 32px;
    padding-bottom: 56px;
  }
  .p-solution__main-media {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 100%;
  }
}
/* ------------------------------------------------------------------------------
  Tablet（768px以下：intro 2カラム）
------------------------------------------------------------------------------ */
@media (max-width: 768px) {
  .p-solution__intro-lead {
    font-size: 1rem;
    line-height: 1.8;
  }
  .p-solution__intro-list {
    gap: 20px;
    margin-top: 24px;
    padding-bottom: 56px;
  }
  .p-solution__intro-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc(50% - 10px);
            flex: 0 0 calc(50% - 10px);
    width: calc(50% - 10px);
    max-width: calc(50% - 10px);
  }
  .p-solution__intro-link {
    padding: 24px 0;
  }
  .p-solution__main-title {
    font-size: clamp(1.125rem, 2.8vw, 1.25rem);
  }
  .p-solution__main-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
  .p-solution__kadai-list {
    margin-top: 24px;
    gap: 13px;
    padding-bottom: 56px;
  }
  .p-solution__kadai-media {
    aspect-ratio: 8;
  }
  .p-solution__kadai-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    width: 100%;
    max-width: none;
  }
  .p-solution__kadai-number {
    margin: 0 20px -18px 0;
    font-size: 1.875rem;
  }
  .p-solution__kadai-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.5;
  }
  .p-solution__product-list {
    margin-top: 24px;
    gap: 24px;
    padding-bottom: 96px;
  }
  .p-solution__product-item {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 calc(50% - 12px);
            flex: 0 0 calc(50% - 12px);
    width: calc(50% - 12px);
    max-width: calc(50% - 12px);
  }
  .p-solution__product-title {
    font-size: clamp(1.1rem, 2.8vw, 1.2rem);
  }
  .p-solution__project-lead {
    font-size: 1.125rem;
  }
  .p-solution__project-text {
    font-size: clamp(0.75rem, 1.4vw, 0.75rem);
    line-height: 1.9;
  }
}
/* ------------------------------------------------------------------------------
  Smartphone
------------------------------------------------------------------------------ */
@media (max-width: 480px) {
  .p-solution__intro-list {
    margin-top: 16px;
    padding-bottom: 40px;
  }
  .p-solution__intro-link {
    padding: 20px 0;
  }
  .p-solution__intro-link .c-view-more__icon {
    right: 12px;
  }
  .p-solution__main {
    gap: 24px;
    padding-bottom: 40px;
  }
  .p-solution__main-title {
    font-size: 1.125rem;
  }
  .p-solution__kadai-list {
    margin-top: 20px;
    gap: 11px;
    padding-bottom: 40px;
  }
  .p-solution__kadai-number {
    margin: 0 16px -14px 0;
    font-size: 1.625rem;
  }
  .p-solution__product-list {
    margin-top: 20px;
    padding-bottom: 80px;
  }
  .p-solution__product-link {
    gap: 16px;
  }
  .p-solution__product-title {
    font-size: clamp(1rem, 3.6vw, 1.1rem);
    line-height: 1.5;
  }
  .p-solution__product-title-en {
    font-size: 0.6875rem;
  }
}
/* ------------------------------------------------------------------------------
  スクロール出現アニメーション（共通・汎用）
  ※ 初期状態(opacity/transform)はCSSではなくjs/config.jsの initScrollReveal() が
    GSAPで付与する（JS未実行時に要素が消えたままにならないようにするため）
  ※ will-changeはページ読み込み時に全要素へ一括指定せず、アニメーション開始直前～
    完了直後だけjs/config.js側でインラインstyleとして付与/解除する
    （1ページ内に .u-reveal 対象が多数あるページで、画面外の要素までまとめて
      コンポジットレイヤー化され続けることによるスクロール時のもたつきを防ぐため）
  単体要素   : .u-reveal（既定=フェードアップ） / .u-reveal--fade / .u-reveal--scale
  グループ   : .u-reveal-group（既定=フェードアップ） / .u-reveal-group--scale
             直下の子要素が自動でスタガー登場する（子要素側の変更は不要）
------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
  テキスト分割アニメーション（共通）
------------------------------------------------------------------------------ */
.u-text-split {
  display: block;
}
.u-text-split:not([data-text-split=true]) {
  opacity: 0;
}
.u-text-split[data-text-split=true] {
  opacity: 1;
}

.u-text-split__line {
  display: block;
  margin: 0;
  padding: 0;
  line-height: inherit;
  letter-spacing: inherit;
}

.u-text-split__char {
  display: inline-block;
  line-height: inherit;
  letter-spacing: inherit;
  vertical-align: top;
  will-change: transform, opacity;
  opacity: 0;
}

.u-text-split--blur .u-text-split__char {
  will-change: filter, opacity, transform;
}

.u-text-split--scale .u-text-split__char {
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}

.u-text-split.is-text-split-ready .u-text-split__char {
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .u-text-split__char {
    will-change: auto;
  }
}