@charset "UTF-8";
/* ブレークポイント
------------------------------------------------------------*/
/* vw変換関数
------------------------------------------------------------*/
/* カラー変数
------------------------------------------------------------*/
/* フォントサイズ変数（clamp使用・$fs16以降は4の倍数のみ）
------------------------------------------------------------*/
/* 余白変数
------------------------------------------------------------*/
/* フォントファミリー
------------------------------------------------------------*/
/* Reset
------------------------------------------------------------*/
body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
pre, code, form, fieldset, legend,
input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: 400;
}

li {
  list-style-type: none;
}

img, fieldset {
  border: 0;
}

article, aside, footer, header, nav, section {
  display: block;
}

/* 基本設定
------------------------------------------------------------*/
html {
  font-size: 62.5%;
}

body {
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
  background: #ffffff;
  -webkit-text-size-adjust: 100%;
}

*, *::before, *::after {
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
}

/* sectionの既定の余白（.craft・.cta等クラス固有のpaddingがあればそちらが優先される）
------------------------------------------------------------*/
section {
  padding: 8.3333333333vw 0;
}

section + section {
  padding-top: 0;
}

section section {
  padding: 0;
}

/* リンク・ボタン・バナーの基本ホバー
------------------------------------------------------------*/
a,
button {
  cursor: pointer;
  transition-duration: 0.3s;
}
@media (hover: hover) {
a:hover,
button:hover {
  opacity: 0.6;
}
}

/* PC / SP 出し分け
------------------------------------------------------------*/
.pc {
  display: block;
}

.sp {
  display: none;
}

@media screen and (max-width: 834px) {
  .pc {
    display: none;
  }
  .sp {
    display: block;
  }
}
/* $inc13（1366px）以下でのみ改行させる<br>
------------------------------------------------------------*/
.br-inc13 {
  display: none;
}

@media screen and (max-width: 1366px) {
  .br-inc13 {
    display: block;
  }
}
/* $sp（600px）以下でのみ改行させる<br>（他セクションでも使い回せる汎用クラス）
------------------------------------------------------------*/
.br-sp {
  display: none;
}

@media screen and (max-width: 600px) {
  .br-sp {
    display: block;
  }
}
/* 374px以下でのみ改行させる<br>（小さいスマホで、ボタンの文字が中途半端な位置で折り返されないようにする）
------------------------------------------------------------*/
.br-xs {
  display: none;
}

@media screen and (max-width: 374px) {
  .br-xs {
    display: block;
  }
}
/* $tab（834px）以下でのみ改行させる<br>（タブレット・スマホで、文章が中途半端な位置で折り返されないようにする）
------------------------------------------------------------*/
.br-tab {
  display: none;
}

@media screen and (max-width: 834px) {
  .br-tab {
    display: block;
  }
}
/* セクション幅の共通ラッパー（各セクションのmax-width/paddingをここに集約する）
------------------------------------------------------------*/
.inner {
  max-width: calc(1400px + 8vw);
  width: 100%;
  padding: 0 4vw;
  margin: 0 auto;
}

/* Flexbox
------------------------------------------------------------*/
/* 2列レイアウト
------------------------------------------------------------*/
/* 3列レイアウト
------------------------------------------------------------*/
/* 全面カバー画像（backgroundの代わりにimgで敷く場合用）
------------------------------------------------------------*/
/* テキスト2行省略などに使う行数制限
------------------------------------------------------------*/
/* Loader
------------------------------------------------------------*/
#loader {
  width: 100%;
  height: 100%;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
#loader.loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
#loader .loader__icon {
  width: 64px;
  height: 64px;
  border: 1px solid #dde0df;
  border-top: 1px solid #821c22;
  border-radius: 50%;
  animation: loaderRotate 1s linear infinite;
}

@keyframes loaderRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Header
------------------------------------------------------------*/
.header {
  --headerColor: #f8f8f8;
  width: 100%;
  padding: 0 2.0833333333vw 16px;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  transition: background-color 0.3s, padding 0.3s;
}
.header.scroll, .header--solid {
  background: rgba(0, 0, 0, 0.8);
  padding-bottom: 8px;
}
.header.scroll .header__logo, .header--solid .header__logo {
  width: 48px;
  height: 51px;
  margin: 8px 0 16px;
}
.header.scroll .header__logo:only-child, .header--solid .header__logo:only-child {
  margin: 8px 0 0;
}
.header.scroll .header__contact, .header--solid .header__contact {
  padding: 8px 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.header__logo {
  width: 72px;
  height: 77px;
  flex-shrink: 0;
  display: block;
  transition-property: width, height, margin, opacity;
}
.header__logo img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

#menuBtn {
  display: none;
}

.header__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}

.header__utility {
  display: flex;
  align-items: center;
  gap: 16px;
}
.header__utility-btn {
  height: 32px;
  background: #f8f8f8;
  color: #1a1a1a;
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-radius: 0 0 2px 2px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  white-space: nowrap;
}
.header__utility-btn:nth-child(2) {
  width: 138px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}

.header__main {
  display: flex;
  align-items: center;
  gap: 48px;
}

nav .nav__link {
  display: flex;
  align-items: center;
  gap: 0 2.0833333333vw;
}
nav .nav__item {
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
}
nav .nav__item > a {
  color: var(--headerColor);
  font-size: clamp(1.4rem, 1.2rem + 0.05vw, 1.6rem);
  white-space: nowrap;
}
nav .nav__item.current > a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 8px;
}
nav .nav__item .nav__arrow {
  width: 8px;
  height: 4px;
  display: inline-flex;
  flex-shrink: 0;
  color: var(--headerColor);
}
nav .nav__arrow {
  position: relative;
}
nav .nav__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-right: 1.2px solid currentColor;
  border-bottom: 1.2px solid currentColor;
  transform: translate(-50%, -60%) rotate(45deg);
  transition-duration: 0.3s;
}
nav .subMenu {
  width: -moz-max-content;
  width: max-content;
  max-width: 260px;
  background: #ffffff;
  padding: 4px 16px;
  position: absolute;
  top: 100%;
  left: 50%;
  box-shadow: 0 16px 40px 0 rgba(0, 0, 0, 0.2);
  visibility: hidden;
  opacity: 0;
  z-index: 1000;
  transform: translateX(-50%);
  transition-duration: 0.3s;
}
nav .subMenu li {
  text-align: center;
}
nav .subMenu li:not(:last-of-type) {
  border-bottom: 1px solid #dde0df;
}
nav .subMenu li a,
nav .subMenu li span {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #1a1a1a;
  padding: 8px;
  display: inline-block;
}
nav .subMenu li.current a {
  font-weight: 700;
  color: #821c22;
}
nav .hasChild {
  position: relative;
}
@media (hover: hover) {
nav .hasChild:hover .subMenu {
  visibility: visible;
  opacity: 1;
}
}

.header__contact {
  background: #f8f8f8;
  color: #821c22;
  cursor: default;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.7rem + 0.05vw, 1.8rem);
  white-space: nowrap;
  transition: padding 0.3s, font-size 0.3s;
}
.header__contact .nav__arrow {
  width: 8px;
  height: 4px;
  display: inline-flex;
  flex-shrink: 0;
}

/* Footer
------------------------------------------------------------*/
.footer {
  background: #f8f8f8;
}
.footer__wrap {
  padding: 112px 4.1666666667vw 80px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 64px;
  flex-wrap: wrap;
}
.footer__txt {
  display: flex;
  flex-direction: column;
  gap: 42px;
}
.footer__logo {
  width: 224px;
}
.footer__logo img {
  width: 100%;
}
.footer__company {
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-weight: 500;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
}
.footer__addr {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 24px;
}
.footer__sns {
  display: flex;
  gap: 16px;
}
.footer__sns a {
  height: 44px;
  background: #ffffff;
  border: 1px solid #1a1a1a;
  color: #1a1a1a;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border-radius: 2px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  white-space: nowrap;
}
.footer__sns a:nth-child(2) {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}
.footer__link {
  display: flex;
  flex-wrap: wrap;
  gap: 56px;
  max-width: 1200px;
}
.footer__item {
  width: 240px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.footer__item > p {
  padding-bottom: 16px;
  border-bottom: 1px solid #dde0df;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-weight: 500;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.footer__item ul {
  display: flex;
  flex-direction: column;
  gap: 24px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 16px;
}
.footer__item ul small {
  display: block;
  margin-top: 4px;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
}
.footer__copy {
  width: 100%;
  padding: 32px 4.1666666667vw;
  border-top: 1px solid #f8f8f8;
  text-align: center;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}
.footer__privacy {
  margin-bottom: 12px;
  display: inline-block;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.footer--min .footer__wrap {
  justify-content: center;
}
.footer--min .footer__txt {
  align-items: center;
}
.footer--min .footer__logo {
  margin: 0 auto;
}
.footer--min .footer__company,
.footer--min .footer__addr {
  text-align: center;
}

/* 外部リンク（別タブで開く）のアイコン
------------------------------------------------------------*/
a[target=_blank]::after {
  content: "";
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: url(../../assets/img/common/i_outlink.svg) no-repeat center/contain;
  mask: url(../../assets/img/common/i_outlink.svg) no-repeat center/contain;
  vertical-align: middle;
}

.subMenu a[target=_blank]::after,
.footer__item a[target=_blank]::after {
  margin-left: 4px;
}

/* Pagetop
------------------------------------------------------------*/
.pagetop {
  width: 56px;
  height: 56px;
  background: #1a1a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  right: 2.0833333333vw;
  bottom: 40px;
  border-radius: 50%;
  z-index: 500;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
  cursor: pointer;
}
.pagetop__arrow {
  width: 17px;
  height: 20px;
  overflow: hidden;
  position: relative;
}
.pagetop__arrow::before, .pagetop__arrow::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../../assets/img/common/i_arrow-btn-wh.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 0;
  rotate: -90deg;
  scale: 1 -1;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.pagetop__arrow::after {
  translate: 0 100%;
}
@media (hover: hover) {
.pagetop:hover .pagetop__arrow::before {
  animation-name: pagetopArrowOut;
  animation-delay: 0s;
}
.pagetop:hover .pagetop__arrow::after {
  animation-name: pagetopArrowIn;
  animation-delay: 0.2s;
}
}
.pagetop.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* 動画ポップアップ（サムネイルをクリックすると、画面中央に動画を重ねて表示する）
------------------------------------------------------------*/
.videoModal {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.8);
  position: fixed;
  inset: 0;
  z-index: 20000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.videoModal.show {
  opacity: 1;
  visibility: visible;
}
.videoModal__box {
  width: min(960px, 100%);
  position: relative;
}
.videoModal__movie {
  aspect-ratio: 16/9;
  background: #1a1a1a;
}
.videoModal__movie iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.videoModal__close {
  width: 48px;
  height: 48px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  position: absolute;
  top: -56px;
  right: 0;
}
.videoModal__close::before, .videoModal__close::after {
  content: "";
  width: 32px;
  height: 2px;
  background: #ffffff;
  position: absolute;
  top: 50%;
  left: 50%;
}
.videoModal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.videoModal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* モーダル（故障診断・標準使用期間などの内容を、画面中央に白いパネルで重ねて表示する）
------------------------------------------------------------*/
.modal {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.8);
  position: fixed;
  inset: 0;
  z-index: 19000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.modal.show {
  opacity: 1;
  visibility: visible;
}
.modal__box {
  width: min(1040px, 100%);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 2px;
  position: relative;
}
.modal__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 64px 56px 40px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.modal__close {
  width: 48px;
  height: 48px;
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
}
.modal__close::before, .modal__close::after {
  content: "";
  width: 24px;
  height: 2px;
  background: #1a1a1a;
  position: absolute;
  top: 50%;
  left: 50%;
}
.modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.modal__ttl {
  margin-bottom: 40px;
  padding: 0 48px 16px 0;
  border-bottom: 1px solid #1a1a1a;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.modal__foot {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  padding: 16px 48px;
  border-top: 1px solid #dde0df;
}
.modal__foot .repair__btn {
  width: auto;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}
.modal__foot .modal__foot-close {
  width: 200px;
  gap: 12px;
}
.modal__foot .modal__foot-close::after {
  content: "";
  --s: 12px;
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 1l10 10M11 1L1 11' stroke='%231a1a1a' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") 0 0/12px 12px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M1 1l10 10M11 1L1 11' stroke='%231a1a1a' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") -12px 0/12px 12px no-repeat;
}
@media (hover: hover) {
.modal__foot .modal__foot-close:hover::after {
  animation: iconSlide 0.8s linear forwards;
}
}
.modal__foot a.repair__btn {
  width: 280px;
}
.modal__label {
  padding: 0 8px;
  background: #ffffff;
  border: 1px solid #1a1a1a;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-weight: 400;
  line-height: 22px;
  color: #1a1a1a;
}
.modal__sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin: 56px 0 24px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.5;
  color: #1a1a1a;
}

@keyframes iconSlide {
  0% {
    background-position: 0 0, calc(var(--s) * -1) 0;
  }
  25% {
    background-position: calc(var(--s) * 0.33) 0, calc(var(--s) * -1) 0;
  }
  75% {
    background-position: var(--s) 0, calc(var(--s) * -0.33) 0;
  }
  100% {
    background-position: var(--s) 0, 0 0;
  }
}
body.is-modal {
  overflow: hidden;
}

/* 共通タイトル（英字ラベル＋和文見出し）
------------------------------------------------------------*/
.ttl {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.ttl__en {
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #821c22;
  letter-spacing: 0.02em;
}
.ttl__en--white {
  color: #ffffff;
}
.ttl__jp {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.3;
  color: #1a1a1a;
}
.ttl__jp--l {
  font-size: clamp(4.4rem, 4.8rem + 1.6vw, 6.4rem);
}
.ttl__jp--s {
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
}
.ttl__jp--xs {
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.5;
}
.ttl__jp--xxs {
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
}
.ttl__jp--white {
  color: #ffffff;
}
.ttl__phrase {
  display: inline-block;
}
.ttl__hang {
  margin-left: max(-1em, -4vw + 16px);
}

/* 下層ページ共通ヘッダー
------------------------------------------------------------*/
.pageHead {
  width: 100%;
  height: 70vh;
  min-height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 6.25vw;
  position: relative;
  overflow: hidden;
}
.pageHead__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.pageHead__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.pageHead__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.pageHead__ttl {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.pageHead__ttl .ttl__jp.ttl__jp--white:not(.history__intro-ttl) {
  font-size: clamp(5.6rem, 6.4rem + 2vw, 8rem);
}
.pageHead__lead {
  max-width: 800px;
  margin-top: 8px;
  text-align: center;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #ffffff;
  letter-spacing: 0.04em;
}
.pageHead__breadcrumb {
  position: absolute;
  right: 2.0833333333vw;
  bottom: 24px;
  z-index: 1;
  max-width: calc(100% - 4.1666666667vw);
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #ffffff;
  white-space: nowrap;
}
.pageHead__breadcrumb::-webkit-scrollbar {
  display: none;
}
.pageHead__breadcrumb li {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.pageHead__breadcrumb li:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-right: 1.2px solid currentColor;
  border-bottom: 1.2px solid currentColor;
  transform: rotate(-45deg);
  opacity: 0.6;
}
.pageHead__breadcrumb a {
  color: #ffffff;
}

.pageHead.pageHead--form {
  height: auto;
  min-height: 0;
  justify-content: center;
  padding: 160px 6.25vw 56px;
  background: #ffffff;
}
.pageHead.pageHead--form .pageHead__ttl {
  align-items: center;
  gap: 16px;
  padding: 0;
  text-align: center;
}
.pageHead.pageHead--form .pageHead__breadcrumb {
  right: 2.0833333333vw;
  left: 2.0833333333vw;
  max-width: none;
  justify-content: center;
}
.pageHead.pageHead--form .ttl__en.ttl__en--white {
  color: #821c22;
}
.pageHead.pageHead--form .ttl__jp.ttl__jp--white {
  color: #1a1a1a;
}
.pageHead.pageHead--form .pageHead__breadcrumb,
.pageHead.pageHead--form .pageHead__breadcrumb a {
  color: #1a1a1a;
}
.pageHead.pageHead--form .pageHead__ttl .ttl__jp.ttl__jp--white:not(.history__intro-ttl) {
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
}
.pageHead.pageHead--form + .reserveForm {
  padding-top: 40px;
}

.pageHead.pageHead--center {
  justify-content: center;
}
.pageHead.pageHead--center .pageHead__ttl {
  align-items: center;
  padding-left: 0;
  text-align: center;
}

@media screen and (min-width: 601px) {
  .pageHead.pageHead--short {
    height: 60vh;
  }
}
.pageHead-pin {
  position: relative;
  height: 200vh;
}
.pageHead-pin .pageHead {
  height: 100vh;
  min-height: 100vh;
  justify-content: center;
  position: sticky;
  top: 0;
  z-index: 0;
}
.pageHead-pin .pageHead__ttl {
  align-items: center;
  text-align: center;
  padding-left: 0;
  padding-bottom: 0;
}
.pageHead-pin .pageHead__ttl__jp {
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
}

/* 共通ボタン
------------------------------------------------------------*/
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px 32px 24px 40px;
  border-radius: 2px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  white-space: nowrap;
}
.btn__zoom {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  background: url(../../assets/img/common/i_zoom.svg) no-repeat center/contain;
  transition: transform 0.3s;
}
@media (hover: hover) {
.btn:hover .btn__zoom {
  transform: scale(1.3);
}
}
.btn__arrow {
  width: 17px;
  height: 10px;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}
.btn__arrow::before, .btn__arrow::after {
  content: "";
  width: 100%;
  height: 100%;
  background: var(--arrow-icon) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.btn__arrow::after {
  translate: -100% 0;
}
@media (hover: hover) {
.btn:hover {
  opacity: 1;
}
.btn:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.btn:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.btn--dark {
  background: #1a1a1a;
  color: #ffffff;
}
.btn--accent {
  background: #821c22;
  color: #ffffff;
}
.btn--outline {
  background: #821c22;
  border: 1px solid #821c22;
  color: #ffffff;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  width: 100%;
  max-width: 365px;
}
.btn--outline .btn__arrow {
  --arrow-icon: url(../../assets/img/common/i_arrow-btn-wh.svg) !important;
}
.btn--line {
  background: #ffffff;
  border: 1px solid #1a1a1a;
  color: #1a1a1a;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.btn--text {
  background: none;
  padding: 0;
  color: #1a1a1a;
}
.btn--outline-white {
  background: none;
  border: 1px solid #ffffff;
  color: #ffffff;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}

@keyframes btnArrowOut {
  100% {
    translate: 100% 0;
  }
}
@keyframes btnArrowIn {
  100% {
    translate: 0 0;
  }
}
@media (hover: hover) {
a[target=_blank]:hover::after {
  animation: outlinkSlide 0.6s;
}

.header a[target=_blank]:hover::after,
.footer a[target=_blank]:hover::after {
  animation: none;
}
}

@keyframes outlinkSlide {
  0% {
    translate: 0 0;
    opacity: 1;
  }
  45% {
    translate: 100% -100%;
    opacity: 0;
  }
  46% {
    translate: -100% 100%;
    opacity: 0;
  }
  100% {
    translate: 0 0;
    opacity: 1;
  }
}
@keyframes pagetopArrowOut {
  100% {
    translate: 0 -100%;
  }
}
@keyframes pagetopArrowIn {
  100% {
    translate: 0 0;
  }
}
@keyframes downloadArrowOut {
  100% {
    translate: 0 100%;
  }
}
@keyframes downloadArrowIn {
  100% {
    translate: 0 0;
  }
}
/* 写真バナー
------------------------------------------------------------*/
.linkBnr {
  width: 100%;
  aspect-ratio: 1128/392;
  border-radius: 2px;
  overflow: hidden;
  display: block;
  position: relative;
}
@media (hover: hover) {
.linkBnr:hover {
  opacity: 1;
}
.linkBnr:hover .linkBnr__img img {
  transform: scale(1.05);
}
.linkBnr:hover .linkBnr__img::after {
  background: rgba(0, 0, 0, 0.5);
}
.linkBnr:hover .linkBnr__icon::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.linkBnr:hover .linkBnr__icon::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.linkBnr__img {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.linkBnr__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
}
.linkBnr__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
  pointer-events: none;
}
.linkBnr__icon {
  width: 40px;
  aspect-ratio: 40/16;
  overflow: hidden;
  position: absolute;
  right: 2.5vw;
  bottom: 2.0833333333vw;
  z-index: 1;
}
.linkBnr__icon::before, .linkBnr__icon::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../../assets/img/common/i_arrow-btn-wh-l.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.linkBnr__icon::after {
  translate: -100% 0;
}
.linkBnr__cont {
  width: 45%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: absolute;
  top: 50%;
  left: 2.5vw;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.9);
  padding: 2.9166666667vw;
  border-radius: 2px;
}
.linkBnr__en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #821c22;
  letter-spacing: 0.04em;
}
.linkBnr__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  color: #1a1a1a;
}
.linkBnr__sub {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 700;
  color: #1a1a1a;
}
.linkBnr__lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.linkBnr__btn {
  align-self: flex-start;
  margin-top: 8px;
}
@media (hover: hover) {
.linkBnr:hover .linkBnr__btn .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.linkBnr:hover .linkBnr__btn .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}

/* sal.js カスタムアニメーション（ブラー＋フェード）
------------------------------------------------------------*/
.blur-in {
  opacity: 0;
  filter: blur(20px);
  transition-property: opacity, filter;
}
.blur-in.sal-animate {
  opacity: 1;
  filter: blur(0);
}

/* 共通テーブル（table__basic：dl/dt/ddの項目表、table__box：tableタグの表）
------------------------------------------------------------*/
.table__basic {
  width: 100%;
}
.table__basic > dl {
  display: flex;
}
.table__basic > dl > dt,
.table__basic > dl > dd {
  padding: 16px 24px;
  border-bottom: 1px solid #dde0df;
  text-align: left;
}
.table__basic > dl > dt {
  font-weight: 700;
  width: 22%;
  border-bottom: 1px solid #666666;
}
.table__basic > dl > dd {
  width: 78%;
}
.table__dtWide > dl > dt {
  font-weight: 700;
  width: 40%;
  border-bottom: 1px solid #666666;
}
.table__box table {
  border-collapse: collapse;
}
.table__box table th,
.table__box table td {
  border: 1px solid #dde0df;
  padding: 12px 16px;
  text-align: left;
  font-size: 1.4rem;
  line-height: 1.4;
}
.table__box table th {
  background: #1a1a1a;
  color: #ffffff;
  font-weight: 600;
  text-align: center;
}
.table__box table td {
  text-align: center;
}
.table__box table td:first-child {
  text-align: left;
}

/* メディアクエリ（$header → $tab → $sp の順でまとめる）
------------------------------------------------------------*/
@media screen and (max-width: 1440px) {
  .header {
    --headerColor: #1a1a1a;
    height: 60px;
    background: #1a1a1a;
    padding: 0 5vw;
  }
  .header.scroll, .header--solid {
    padding-bottom: 0;
    background: #1a1a1a;
  }
  .header.scroll .header__logo, .header--solid .header__logo {
    width: 60px;
    height: 60px;
    margin: 0;
  }
  .header.scroll .header__logo:only-child, .header--solid .header__logo:only-child {
    margin: 0;
  }
  .header.scroll .header__contact, .header--solid .header__contact {
    padding: 12px 24px;
    font-size: clamp(1.6rem, 1.7rem + 0.05vw, 1.8rem);
  }
  .header__logo {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 0 0 2px 0;
  }
  .header__logo img {
    width: 36px;
    height: auto;
  }
  #menuBtn {
    width: 60px;
    height: 60px;
    display: block;
    cursor: pointer;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10000;
    transition-duration: 0.3s;
  }
  #menuBtn > span {
    width: 30px;
    height: 1px;
    background: #ffffff;
    display: inline-block;
    position: absolute;
    right: calc(50% - 15px);
    transition: transform 0.3s cubic-bezier(0.65, 0, 0.35, 1) 0.2s, width 0.3s cubic-bezier(0.65, 0, 0.35, 1), background 0.3s;
  }
  #menuBtn > span:nth-of-type(1) {
    top: calc(50% - 9px);
  }
  #menuBtn > span:nth-of-type(2) {
    top: 50%;
  }
  #menuBtn > span:nth-of-type(3) {
    top: calc(50% + 9px);
  }
  #menuBtn.ac > span:nth-of-type(1) {
    transform: translateY(9px) rotate(-45deg);
  }
  #menuBtn.ac > span:nth-of-type(2) {
    width: 0;
  }
  #menuBtn.ac > span:nth-of-type(3) {
    transform: translateY(-9px) rotate(45deg);
  }
  .header__nav {
    width: 100%;
    height: calc(100% - 60px);
    background: #1a1a1a;
    padding: 5vh 10vw 4vh;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 16px;
    opacity: 0;
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    overflow-y: auto;
    pointer-events: none;
    transition: opacity 0.5s linear 0.1s;
  }
  .header__nav.ac {
    opacity: 1;
    pointer-events: auto;
  }
  .header__utility {
    align-items: center;
    flex-shrink: 0;
  }
  .header__utility-btn {
    width: calc(100% - 16px);
    border-radius: 2px;
  }
  .header__utility-btn:nth-child(2) {
    width: calc(100% - 16px);
  }
  .header__main {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    flex-shrink: 0;
    order: -1;
  }
  nav .nav__link {
    width: 100%;
    flex-direction: column;
    gap: 0;
    border-bottom: 1px solid #dde0df;
  }
  nav .nav__item {
    width: 100%;
    min-height: 56px;
    flex-wrap: wrap;
    border-top: 1px solid #dde0df;
    justify-content: space-between;
    gap: 0;
  }
  nav .nav__item > a {
    color: #ffffff;
    height: 56px;
    display: flex;
    align-items: center;
    width: 100%;
  }
  nav .subMenu {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    max-height: 0;
    opacity: 0;
    background: none;
    padding: 0;
    overflow: hidden;
    visibility: visible !important;
    position: static;
    box-shadow: none;
    transform: none;
    transition: max-height 0.4s ease, opacity 0.3s ease;
  }
  nav .subMenu li {
    text-align: left;
  }
  nav .subMenu li a,
  nav .subMenu li span {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    padding: 12px 24px;
    text-align: left;
    color: #ffffff;
    width: 100%;
  }
  nav .subMenu li.current a {
    color: #ffffff;
    font-weight: 700;
  }
  nav .hasChild .nav__arrow {
    width: 40px;
    height: 56px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
    background: #313131;
    color: #ffffff;
  }
  nav .hasChild .nav__arrow.ac::before {
    transform: translate(-50%, -40%) rotate(225deg);
  }
  nav .hasChild .subMenu.open {
    max-height: 400px;
    opacity: 1;
  }
  nav .header__contact-wrap .nav__arrow {
    height: 100%;
  }
  .header__contact {
    width: 100%;
    position: relative;
  }
}
@media screen and (max-width: 834px) {
  .footer__wrap {
    display: flex;
    flex-direction: column;
    display: flex;
    align-items: center;
    gap: 48px;
    padding: 64px 24px 48px;
  }
  .footer__logo {
    margin: 0 auto;
  }
  .footer__company {
    text-align: center;
  }
  .footer__addr {
    text-align: center;
  }
  .footer__link {
    gap: 32px;
  }
  .ttl {
    gap: 24px;
  }
  .ttl__jp--l {
    font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  }
  .ttl__jp--s {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .ttl__hang {
    margin-left: 0;
  }
  .ttl__jp:not(.ttl__jp--l):not(.ttl__jp--s):not(.ttl__jp--xs):not(.ttl__jp--xxs):not(.ttl__jp--white):not(.support__ttl) {
    font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  }
  .pagetop {
    width: 48px;
    height: 48px;
    right: 16px;
    bottom: 16px;
  }
  /* 下層ページ共通ヘッダー（ページタイトル・全下層ページで使い回す）
  ------------------------------------------------------------*/
  .pageHead__bg {
    padding-top: 60px;
  }
  .pageHead__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    text-align: left;
  }
  .pageHead:has(.pageHead__lead) {
    height: auto;
    min-height: 0;
    padding-top: 120px;
    padding-bottom: 80px;
  }
  .pageHead__breadcrumb {
    max-width: calc(100% - 48px);
    right: 24px;
    bottom: 16px;
  }
  .pageHead-pin {
    height: auto;
  }
  .pageHead-pin .pageHead {
    justify-content: center;
    position: relative;
    top: auto;
  }
  .pageHead-pin .pageHead__bg {
    padding-top: 60px;
  }
  .pageHead-pin .pageHead__ttl {
    text-align: center;
    padding-left: 0;
    padding-bottom: 0;
  }
  .pageHead.pageHead--form {
    padding: 128px 24px 56px;
  }
  .pageHead.pageHead--form .pageHead__breadcrumb {
    right: 24px;
    left: 24px;
  }
  .pageHead.pageHead--form + .reserveForm {
    padding-top: 40px;
  }
  .linkBnr {
    aspect-ratio: auto;
    padding: 24px;
  }
  .linkBnr__icon {
    width: 24px;
    aspect-ratio: 17/7;
    right: 40px;
    bottom: 40px;
    z-index: 2;
  }
  .linkBnr__icon::before, .linkBnr__icon::after {
    background-image: url(../../assets/img/common/i_arrow-btn.svg);
  }
  .linkBnr__cont {
    width: 100%;
    position: relative;
    top: auto;
    left: auto;
    z-index: 1;
    transform: none;
    padding: 24px 24px 56px;
    border-radius: 2px;
  }
  .table__basic > dl {
    display: block;
  }
  .table__basic > dl > dt {
    width: 100%;
    border-bottom: 1px solid #1a1a1a;
    background: #f8f8f8;
  }
  .table__basic > dl > dd {
    width: 100%;
  }
}
@media screen and (max-width: 600px) {
  .ttl {
    gap: 8px;
  }
  .ttl__jp:not(.ttl__jp--l):not(.ttl__jp--s):not(.ttl__jp--xs):not(.ttl__jp--xxs):not(.ttl__jp--white):not(.support__ttl) {
    font-size: clamp(2.8rem, 3rem + 0.5vw, 3.6rem);
  }
  .pageHead .pageHead__ttl .ttl__jp.ttl__jp--white:not(.history__intro-ttl) {
    font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  }
  .pageHead.pageHead--form .pageHead__ttl .ttl__jp.ttl__jp--white:not(.history__intro-ttl) {
    font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  }
  .pageHead.pageHead--form {
    padding-right: 16px;
    padding-left: 16px;
  }
  .ttl__en {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .ttl__jp--xs {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .footer__link {
    flex-direction: column;
    gap: 40px;
    width: 100%;
  }
  .footer__wrap {
    padding: 40px 24px 48px;
  }
  .footer__item {
    width: 100%;
  }
  .footer__copy {
    padding: 24px;
  }
  .btn {
    padding: 16px 24px;
  }
}
/* 代表挨拶・企業理念ページ用の変数
------------------------------------------------------------*/
/* メイドインジャパンへのこだわりページ用の変数
------------------------------------------------------------*/
/* KV
------------------------------------------------------------*/
.kv-pin {
  position: relative;
  height: 200vh;
}

.kv {
  width: 100%;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
  position: sticky;
  top: 0;
  z-index: 0;
}
.kv__slider {
  width: 100%;
  height: 100vh;
  position: absolute;
  inset: 0;
  z-index: 0;
}
.kv__slider .slick-list,
.kv__slider .slick-track,
.kv__slider .slick-slide,
.kv__slider .slick-slide > div {
  height: 100%;
}
.kv__slider-item {
  width: 100%;
  height: 100%;
  background: #1a1a1a;
}
.kv__slider-item picture,
.kv__slider-item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.kv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0.3) 100%);
}
.kv__inner {
  width: calc(100% - 336px);
  max-width: 620px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  position: absolute;
  left: 8.75vw;
  top: 24%;
  z-index: 2;
  transition: opacity 0.4s ease;
}
.kv__inner.hide {
  opacity: 0;
  pointer-events: none;
}
.kv__catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(5.6rem, 6.4rem + 2vw, 8rem);
  line-height: 1.6;
  color: #ffffff;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.kv__catch .adjust {
  position: relative;
  left: -6%;
}
.kv__catch span {
  display: block;
}
.kv__catch em {
  font-style: normal;
  font-size: 0.875em;
}
.kv__deco {
  width: 100%;
  overflow: hidden;
  position: absolute;
  left: 0;
  bottom: 2%;
  z-index: 2;
}
.kv__deco-track {
  width: -moz-max-content;
  width: max-content;
  display: flex;
  animation: kvDecoScroll 80s linear infinite;
}
.kv__deco span {
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-size: clamp(4rem, 10vw, 12rem);
  color: rgba(245, 236, 232, 0.2);
  letter-spacing: 0.04em;
  white-space: nowrap;
  padding-right: 4.1666666667vw;
}
.kv__news {
  display: flex;
  align-items: center;
  gap: 0.8333333333vw;
  padding: 0.8333333333vw 2.0833333333vw;
  border: 1px solid #ffffff;
  border-right: none;
  border-radius: 2px 0 0 2px;
  position: absolute;
  right: 0;
  bottom: 20%;
  z-index: 2;
  color: #ffffff;
  min-width: 560px;
}
.kv__news.hide {
  opacity: 0;
  pointer-events: none;
}
.kv__news-label {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  letter-spacing: 0.04em;
}
.kv__news-line {
  width: 1px;
  height: 0.8333333333vw;
  background: #ffffff;
  flex-shrink: 0;
}
.kv__news-body {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-weight: 500;
  white-space: nowrap;
}
.kv__news-date {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  letter-spacing: 0.02em;
}
.kv__news-cat {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  padding: 0 8px;
  border: 1px solid #ffffff;
  border-radius: 2px;
  line-height: 1.8;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  letter-spacing: 0.04em;
}
.kv__news-txt {
  max-width: 20.8333333333vw;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  letter-spacing: 0.02em;
}
.kv__news-txt a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
@media (hover: hover) {
.kv__news-txt a:hover {
  opacity: 1;
}
}

@keyframes kvDecoScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* メッセージ（ブランドメッセージ）
------------------------------------------------------------*/
.msg {
  position: relative;
  z-index: 1;
  margin-top: -100vh;
  padding: 8.3333333333vw 6.4583333333vw 8.3333333333vw 20.625vw;
}
.msg__bg {
  position: absolute;
  inset: 0;
  background: #1a1a1a -webkit-image-set(url(../../assets/img/top/bg_msg.jpg) 1x, url(../../assets/img/top/bg_msg@2x.jpg) 2x) bottom/cover no-repeat;
  background: #1a1a1a image-set(url(../../assets/img/top/bg_msg.jpg) 1x, url(../../assets/img/top/bg_msg@2x.jpg) 2x) bottom/cover no-repeat;
  background-attachment: fixed;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 25%);
          mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 25%);
}
.msg__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}
.msg__cont {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 4.1666666667vw;
  padding-left: 1.6666666667vw;
  position: relative;
  z-index: 1;
}
.msg__txt {
  width: 100%;
  max-width: 32.2916666667vw;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.msg__txt .ttl__jp {
  font-size: clamp(2.8rem, 2rem + 2.2vw, 5.6rem);
}
.msg__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  font-size: clamp(1.4rem, 1rem + 1vw, 2rem);
  line-height: 2;
  color: #ffffff;
  letter-spacing: 0.02em;
}
.msg__img {
  width: 33.59375vw;
  aspect-ratio: 645/723;
  flex-shrink: 1;
  min-width: 240px;
  position: relative;
}
.msg__img-main {
  width: 69.46%;
  height: 88.52%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.msg__img-sub {
  width: 45.89%;
  height: 58.37%;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 1;
}
.msg__img .msg__deco {
  width: 8.75vw;
  height: 12.5vw;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  left: -51.875vw;
  top: 7.5520833333vw;
  z-index: 1;
}

/* OOHIROのものづくり
------------------------------------------------------------*/
.craft {
  padding: 6.25vw 0 0;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.craft__cont {
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
  text-align: center;
  padding: 0 13.5416666667vw;
}
.craft__lead {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  letter-spacing: 0.02em;
}
.craft__wrap {
  display: flex;
  width: 100%;
  gap: 2px;
}
.craft__box {
  display: flex;
  flex-direction: column;
  width: calc(50% - 1px);
  background: #ffffff;
}
@media (hover: hover) {
.craft__box:hover {
  opacity: 1;
}
}
.craft__box-img {
  overflow: hidden;
  position: relative;
}
.craft__box-img img {
  width: 100%;
  aspect-ratio: 960/400;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
  opacity: 1;
}
.craft__box-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
}
@media (hover: hover) {
.craft__box:hover .craft__box-img img {
  transform: scale(1.05);
}
.craft__box:hover .craft__box-img::after {
  background: rgba(0, 0, 0, 0.5);
}
.craft__box:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.craft__box:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.craft__box-cont {
  display: flex;
  justify-content: space-between;
  flex: 1;
  align-items: center;
  gap: 24px;
  padding: 40px 32px;
  min-height: 151px;
  background: #f8f8f8;
}
.craft__box-cont .ttl {
  gap: 32px;
}

/* 製品情報
------------------------------------------------------------*/
.products {
  position: relative;
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
  padding: 12.0833333333vw 0 8.3333333333vw 8.3333333333vw;
  background: #ffffff;
}
.products__cont {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 4.1666666667vw;
  position: relative;
  z-index: 1;
}
.products__txt {
  width: 100%;
  max-width: 571px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 56px;
  position: sticky;
  top: 120px;
  z-index: 1;
}
.products__mark {
  width: 32.4479166667vw;
  height: 35vw;
  position: absolute;
  top: -5.2083333333vw;
  left: -7.2916666667vw;
  z-index: -1;
}
.products__lead {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  letter-spacing: 0.02em;
}
.products__list {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 50vw;
  display: flex;
  flex-direction: column;
  border-radius: 2px 0 0 2px;
  overflow: hidden;
}
.products__list li {
  border-bottom: 1px solid #f8f8f8;
}
.products__list li:last-child {
  border-bottom: 0;
}
.products__list a {
  width: 100%;
  display: block;
  position: relative;
  overflow: hidden;
}
@media (hover: hover) {
.products__list a:hover {
  opacity: 1;
}
}
.products__list a > img {
  width: 100%;
  aspect-ratio: 960/272;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
}
@media (hover: hover) {
.products__list a:hover > img {
  transform: scale(1.05);
}
.products__list a:hover .products__list-icon::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.products__list a:hover .products__list-icon::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.products__list a::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(63, 60, 56, 0.6);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
}
@media (hover: hover) {
.products__list a:hover::after {
  background: rgba(63, 60, 56, 0.75);
}
}
.products__list-cont {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  padding: 2.0833333333vw;
  position: absolute;
  inset: 0;
  z-index: 1;
}
.products__list-cont .ttl {
  gap: 12px;
}
.products__list-cont .ttl__en {
  font-size: clamp(1rem, 0.4rem + 1vw, 2.4rem);
  white-space: nowrap;
}
.products__list-cont .ttl__jp {
  font-size: clamp(2rem, 1.1rem + 1.5vw, 4rem);
  white-space: nowrap;
}
.products__list-icon {
  width: clamp(20px, 11px + 1.5vw, 40px);
  height: auto;
  aspect-ratio: 40/16;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}
.products__list-icon::before, .products__list-icon::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../../assets/img/common/i_arrow-btn-wh-l.svg) no-repeat center/contain;
  position: absolute;
  top: 0;
  left: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.products__list-icon::after {
  translate: -100% 0;
}

/* 導入事例
------------------------------------------------------------*/
.stories {
  padding: 8.3333333333vw 0 6.25vw;
  display: flex;
  flex-direction: column;
  gap: 72px;
  background: #f8f8f8;
}
.stories__head {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 4.5833333333vw;
  padding: 0 13.5416666667vw;
}
.stories__lead {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
  letter-spacing: 0.02em;
}
.stories__slider {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.stories__list {
  width: 100%;
  font-size: 0;
}
.stories__list .slick-center {
  opacity: 1;
  transform: scale(1);
}
.stories__item {
  display: inline-block;
  vertical-align: top;
  position: relative;
  padding-bottom: 152px;
  font-size: initial;
}
@media (hover: hover) {
.stories__item:hover {
  opacity: 1;
}
.stories__item:hover img {
  transform: scale(1.05);
}
}
.stories__item:not(:last-child) {
  margin-right: 40px;
}
.stories__item-img {
  display: block;
  overflow: hidden;
  position: relative;
}
.stories__item-img img {
  height: 15vw;
  width: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
  transition-duration: 0.3s;
}
.stories__item-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
  pointer-events: none;
}
@media (hover: hover) {
.stories__item:hover .stories__item-img::after {
  background: rgba(0, 0, 0, 0.5);
}
}
.stories__cont {
  width: 100%;
  position: absolute;
  left: 0;
  top: 15vw;
}
.stories__date {
  margin-top: 40px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #666666;
  opacity: 0.6;
}
.stories__ttl {
  width: 100%;
  margin-top: 16px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.stories__dots .slick-dots {
  display: flex;
  align-items: center;
  gap: 12px;
  position: static;
}
.stories__dots .slick-dots li {
  width: 16px;
  height: 16px;
  margin: 0;
  box-shadow: none;
  border-radius: 50%;
}
.stories__dots .slick-dots li button {
  width: 16px;
  height: 16px;
  margin: 0;
  background: none;
  box-shadow: none;
  border-radius: 50%;
  border: none;
  padding: 0;
  font-size: 0;
  line-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.stories__dots .slick-dots li button::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  background: #1a1a1a;
  border-radius: 50%;
  opacity: 0.24;
}
.stories__dots .slick-dots li.slick-active button::before {
  opacity: 1;
  background: #1a1a1a;
}
.stories__foot {
  display: flex;
  justify-content: center;
}

/* ショールームのご案内
------------------------------------------------------------*/
.showroom {
  padding: 6.25vw 8.75vw 12.5vw;
}
.showroom__cont {
  width: 100%;
  display: flex;
  gap: 8.3333333333vw;
}
.showroom__head {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
}
.showroom__catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 1rem + 3.6vw, 8rem);
  line-height: 1.4;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  white-space: nowrap;
}
.showroom__lead {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  letter-spacing: 0.02em;
}
.showroom__visual {
  width: 35vw;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.showroom__map {
  width: 100%;
  position: relative;
}
.showroom__map img {
  width: 100%;
  aspect-ratio: 600/678;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
  display: block;
}
.showroom__pin {
  position: absolute;
  top: var(--pin-top, 50%);
  left: var(--pin-left, 50%);
  transform: translate(-50%, calc(-100% - 6px));
  background: #1a1a1a;
  color: #ffffff;
  padding: 6px 14px;
  border-radius: 4px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  letter-spacing: 0.04em;
  white-space: nowrap;
  z-index: 1;
}
.showroom__pin::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-top-color: #1a1a1a;
}
.showroom__pin--tall {
  transform: translate(-50%, calc(-100% - 14px));
}
.showroom__pin--tall::after {
  border-top-width: 14px;
}
.showroom__list {
  width: 100%;
  display: flex;
  gap: 0.4166666667vw;
}
.showroom__list li {
  width: 100%;
  min-width: 0;
  flex: 1;
}
.showroom__list a {
  display: block;
  position: relative;
}
@media (hover: hover) {
.showroom__list a:hover {
  opacity: 1;
}
.showroom__list a:hover .showroom__list-img img {
  transform: scale(1.05);
}
.showroom__list a:hover .showroom__list-img::after {
  background: rgba(0, 0, 0, 0.5);
}
}
.showroom__list a p {
  margin-top: 8px;
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  font-size: 0.9375vw;
  color: #1a1a1a;
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
}
.showroom__list-img {
  display: block;
  overflow: hidden;
  border-radius: 2px;
  position: relative;
}
.showroom__list-img img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
}
.showroom__list-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
  pointer-events: none;
}

/* 企業情報
------------------------------------------------------------*/
.company {
  width: 100%;
  padding: 0 0 12.5vw 8.75vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.company__txt {
  width: 100%;
  max-width: 25.5729166667vw;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
}
.company__lead {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  letter-spacing: 0.02em;
}
.company__img {
  width: 50vw;
  flex-shrink: 0;
}
.company__img img {
  width: 100%;
  aspect-ratio: 960/480;
  -o-object-fit: cover;
     object-fit: cover;
}

/* 各種サポート
------------------------------------------------------------*/
.support {
  width: 100%;
  position: relative;
  overflow: hidden;
  padding: 5.8333333333vw 12.5vw;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.support__deco {
  width: 100%;
  font-family: "Cormorant Garamond", serif;
  font-weight: 300;
  color: #dde0df;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-align: center;
  position: absolute;
  left: 50%;
  z-index: 2;
  pointer-events: none;
  transform: translateX(-50%);
}
.support__deco--m {
  top: 2.0833333333vw;
  font-size: 5.4166666667vw;
}
.support__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.support__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.support__cont {
  background: #f8f8f8;
  box-shadow: 0 4px 76px rgba(159, 159, 159, 0.24);
  border-radius: 2px;
  padding: 56px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
  position: relative;
  z-index: 1;
  width: 100%;
}
.support__ttl {
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  text-align: center;
}
.support__list {
  width: 100%;
  display: flex;
  align-items: stretch;
}
.support__list li {
  width: 100%;
  min-width: 0;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.support__list li:not(:last-child) {
  border-right: 1px solid #dde0df;
}
.support__list li .ttl {
  gap: 24px;
  align-items: center;
}
.support__list li .ttl__en {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  text-align: center;
}
.support__list li .ttl__jp {
  text-align: center;
}

/* あなたのサロンに合う一台を（CTA）
------------------------------------------------------------*/
.cta {
  width: 100%;
  position: relative;
  overflow: hidden;
  padding: 8.3333333333vw 8.75vw;
  color: #ffffff;
  background: #1a1a1a;
}
.cta__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  gap: 2.5vw;
  overflow: hidden;
}
.cta__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.55);
}
.cta__bg-col {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.cta__bg-col:nth-child(even) .cta__bg-track {
  animation-direction: reverse;
}
.cta__bg-track {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 200%;
  display: flex;
  flex-direction: column;
  gap: 1.25%;
  animation: ctaBgScroll 34s linear infinite;
  will-change: transform;
}
.cta__bg-img {
  width: 100%;
  flex-shrink: 0;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.4;
}
.cta__bg-img--l {
  height: 15%;
}
.cta__bg-img--s {
  height: 7.5%;
}
.cta__lead {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6666666667vw;
  text-align: center;
}
.cta__catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4.4rem, 4.8rem + 1.6vw, 6.4rem);
  line-height: 1.4;
}
.cta__txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 2;
  letter-spacing: 0.02em;
}
.cta__wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1104px;
  margin: 3.3333333333vw auto 0;
  display: flex;
  align-items: stretch;
  gap: 2.9166666667vw;
}
.cta__box {
  flex: 1 1 0;
  min-width: 0;
  background: #f8f8f8;
  border: 1px solid rgba(221, 224, 223, 0.4);
  border-radius: 2px;
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 32px;
  color: #1a1a1a;
}
.cta__box .ttl {
  align-items: center;
  gap: 24px;
}
.cta__box .ttl__en {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  opacity: 0.8;
}
.cta__box .btn {
  margin-top: auto;
}
.cta__box-txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.5;
}
.cta__box .btn {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}

@keyframes ctaBgScroll {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-50%);
  }
}
/* OOHIROのものづくり（下層ページ本文）
------------------------------------------------------------*/
.craftsmanship {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 60px;
}
.craftsmanship__feature {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 4.1666666667vw;
}
.craftsmanship__feature--reverse {
  flex-direction: row-reverse;
}
.craftsmanship__feature-img {
  width: 45%;
  flex-shrink: 0;
  aspect-ratio: 944/816;
  position: relative;
}
.craftsmanship__feature-img-main {
  width: calc(50% - 1px);
  height: 76%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
  position: absolute;
  top: 0;
  left: 0;
}
.craftsmanship__feature-img-sub {
  width: calc(50% - 1px);
  height: 68%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
  position: absolute;
  right: 0;
  bottom: 0;
}
.craftsmanship__feature-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
  padding-right: 11.4583333333vw;
}
.craftsmanship__feature--reverse .craftsmanship__feature-txt {
  padding-right: 0;
  padding-left: 11.4583333333vw;
}
.craftsmanship__feature-txt .ttl {
  gap: 16px;
}
.craftsmanship__feature-txt .ttl__jp {
  font-size: min(clamp(4rem, 4.4rem + 1.2vw, 5.6rem), 3.4vw);
}
.craftsmanship__feature-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* 企業情報（本文・テキストと写真を交互に並べる。写真は画面の端にくっつける）
------------------------------------------------------------*/
.company-feature-list {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 60px;
}
.company-feature-list__item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 4.1666666667vw;
}
.company-feature-list__item--reverse {
  flex-direction: row-reverse;
}
.company-feature-list__item-img {
  width: 45%;
  flex-shrink: 0;
  aspect-ratio: 928/640;
  overflow: hidden;
}
.company-feature-list__item-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.company-feature-list__item-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 30px;
  padding-right: 11.4583333333vw;
}
.company-feature-list__item--reverse .company-feature-list__item-txt {
  padding-right: 0;
  padding-left: 11.4583333333vw;
}
.company-feature-list__item-txt .ttl {
  gap: 16px;
}
.company-feature-list__item-txt .btn {
  align-self: flex-start;
}
.company-feature-list__item-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* 製品情報（下層ページ・導入文＋カテゴリへのページ内リンク）
------------------------------------------------------------*/
.productsIntro {
  padding-bottom: 56px;
}
.productsIntro .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
}
.productsIntro__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #1a1a1a;
}
.productsIntro__lead {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 2;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}

/* 製品情報（下層ページ・カテゴリ一覧。写真とテキストを交互に並べ、写真は画面の端にくっつける）
------------------------------------------------------------*/
.productsList {
  width: 100%;
  overflow-x: clip;
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.productsList__nav.factory__nav {
  width: calc(100% - 8vw);
  max-width: 1200px;
  margin: 0 auto;
}
.productsList__nav .factory__flow > li {
  flex: 1 1 auto;
  width: auto;
}
.productsList__nav .factory__flow-item {
  padding-right: 32px;
  padding-left: 24px;
}
.productsList__item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 4.1666666667vw;
  scroll-margin-top: 200px;
}
.productsList__item--reverse {
  flex-direction: row-reverse;
}
.productsList__item-img {
  width: 45%;
  flex-shrink: 0;
  aspect-ratio: 928/640;
  overflow: hidden;
}
.productsList__item-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.productsList__item-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  padding-right: 11.4583333333vw;
}
.productsList__item--reverse .productsList__item-txt {
  padding-right: 0;
  padding-left: 11.4583333333vw;
}
.productsList__item-txt .ttl {
  gap: 16px;
}
.productsList__item-txt .btn {
  align-self: flex-start;
}
.productsList__item-num {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: #821c22;
}
.productsList__item-num::after {
  content: "";
  width: 40px;
  height: 1px;
  background: #821c22;
}
.productsList__item-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* 沿革（本文・写真なしのテキスト主体ページ。サイトの見出しフォント（游明朝）と本文サイズに揃える）
------------------------------------------------------------*/
.history {
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  margin-top: -100vh;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
}
.history__bg {
  position: absolute;
  inset: 0;
  background: #1a1a1a -webkit-image-set(url(../../assets/img/company/history_intro_pc.jpg) 1x, url(../../assets/img/company/history_intro_pc@2x.jpg) 2x) center/cover no-repeat;
  background: #1a1a1a image-set(url(../../assets/img/company/history_intro_pc.jpg) 1x, url(../../assets/img/company/history_intro_pc@2x.jpg) 2x) center/cover no-repeat;
  background-attachment: fixed;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 30vh);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 30vh);
}
.history__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}
.history .inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 64px;
}
.history .historyCont {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 120px;
}
.history__intro-ttl {
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
}
.history__intro-lead {
  max-width: 36.4583333333vw;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 2.4;
  color: #ffffff;
}
.history__img figure img {
  border-radius: 2px;
}
.history__era {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 4.1666666667vw;
}
.history__era-yr {
  flex-shrink: 0;
  width: 12.5vw;
  position: sticky;
  top: 120px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  color: #ffffff;
}
.history__era-body {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.history__era-desc {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  color: #ffffff;
  letter-spacing: 0.04em;
}
.history__timeline {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 32px;
  position: relative;
  padding-left: 24px;
}
.history__timeline::before {
  content: "";
  width: 1px;
  background: rgba(255, 255, 255, 0.3);
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 0;
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 2s ease;
}
.history__timeline.timeline-animate::before {
  transform: scaleY(1);
}
.history__timeline-item {
  display: flex;
  align-items: center;
  gap: 24px;
  position: relative;
}
.history__timeline-item::before {
  content: "";
  width: 9px;
  height: 9px;
  background: #ffffff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: -24px;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 0.6s ease;
  z-index: 1;
}
.history__timeline-item:nth-child(1)::before {
  transition-delay: 0.3s;
}
.history__timeline-item:nth-child(2)::before {
  transition-delay: 0.55s;
}
.history__timeline-item:nth-child(3)::before {
  transition-delay: 0.8s;
}
.history__timeline-item:nth-child(4)::before {
  transition-delay: 1.05s;
}
.history__timeline-item:nth-child(5)::before {
  transition-delay: 1.3s;
}
.history__timeline-item:nth-child(6)::before {
  transition-delay: 1.55s;
}
.history__timeline-item:nth-child(7)::before {
  transition-delay: 1.8s;
}
.history__timeline-item:nth-child(8)::before {
  transition-delay: 2.05s;
}
.history__timeline-item:nth-child(9)::before {
  transition-delay: 2.3s;
}
.history__timeline-item:nth-child(10)::before {
  transition-delay: 2.55s;
}
.history__timeline.timeline-animate .history__timeline-item::before {
  transform: translate(-50%, -50%) scale(1);
}
.history__timeline-item::after {
  content: "";
  width: 24px;
  height: 0;
  border-top: 2px dotted rgba(255, 255, 255, 0.3);
  position: absolute;
  top: 50%;
  left: -24px;
  transform: translateY(-50%);
}
.history__timeline-date {
  flex-shrink: 0;
  width: 88px;
  color: #ffffff;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  text-align: center;
  padding: 6px 0;
  border-radius: 999px;
}
.history__timeline-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.8;
  color: #ffffff;
}

/* 会社概要・アクセス
------------------------------------------------------------*/
.outline {
  width: 100%;
}
.outline .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8.3333333333vw;
}
.outline__profile {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.outline__profile > .ttl, .outline__access > .ttl {
  align-items: center;
  text-align: center;
  gap: 16px;
}
.outline__access {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.outline__location {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.outline__location + .outline__location {
  margin-top: 64px;
}
.outline__location-img, .outline__location-map {
  width: 40%;
  flex-shrink: 0;
  aspect-ratio: 464/392;
  border-radius: 2px;
  overflow: hidden;
}
.outline__location-img img, .outline__location-map img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.outline__location-img iframe, .outline__location-map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}
.outline__location-cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.outline__location-cont .btn {
  margin-top: 24px;
}
.outline__location-label {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #821c22;
  letter-spacing: 0.04em;
}
.outline__location-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  color: #1a1a1a;
}
.outline__location-info {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.outline__location-info > div {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.outline__location-info dt {
  flex-shrink: 0;
  width: 80px;
  font-weight: 700;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
}
.outline__location-info dd {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.outline__location-access {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}
.outline__location-access li {
  margin-left: 1.2em;
  list-style: disc outside;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.outline__location-note {
  margin-top: 8px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.8;
  color: #666666;
}
.outline__location-box {
  width: 100%;
  margin-top: 16px;
  padding: 32px;
  background: #f8f8f8;
  border-radius: 2px;
}
.outline__location-desc-ttl {
  font-weight: 700;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
}
.outline__location-desc {
  margin-top: 8px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* 代表挨拶・企業理念（本文）
------------------------------------------------------------*/
.message {
  width: 100%;
  padding-bottom: 0;
}
.message .inner {
  display: flex;
  flex-direction: column;
  gap: 8.3333333333vw;
}
.message__profile {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.message__profile > .ttl {
  align-items: center;
  text-align: center;
  gap: 16px;
}
.message__profile-wrap {
  width: 100%;
}
.message__profile-cont {
  width: 100%;
  display: flex;
  flex-direction: column;
  counter-reset: profile;
}
.message__profile-block {
  padding: 56px 0;
  border-top: 1px solid #dde0df;
  display: flex;
  gap: 3.3333333333vw;
  counter-increment: profile;
}
.message__profile-block:first-child {
  padding-top: 0;
  border-top: 0;
}
.message__profile-ttl {
  width: 38%;
  flex-shrink: 0;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.message__profile-ttl::before {
  content: counter(profile, decimal-leading-zero);
  margin-bottom: 16px;
  display: block;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  font-weight: 300;
  line-height: 1;
  color: #821c22;
  letter-spacing: 0.04em;
}
.message__profile-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.message__profile-sign {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  text-align: right;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
}
.message__profile-sign-name {
  display: flex;
  align-items: center;
  gap: 16px;
  font-weight: 700;
}
.message__profile-sign-name img {
  width: 132px;
  height: auto;
}
.message__vision {
  width: 100%;
  padding: 6.25vw 0;
  background: #f1f1f1;
  box-shadow: 0 0 0 100vmax #f1f1f1;
  -webkit-clip-path: inset(0 -100vmax);
          clip-path: inset(0 -100vmax);
  position: relative;
}
.message__vision-head {
  border-bottom: 1px solid #dde0df;
  position: relative;
  z-index: 1;
}
.message__vision-deco {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(10rem, 3rem + 14vw, 20rem);
  line-height: 0.8;
  color: #ffffff;
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  right: 0;
  bottom: -0.08em;
  z-index: 0;
  pointer-events: none;
}
.message__vision-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.message__vision-mark {
  width: 27.0833333333vw;
  height: auto;
  position: sticky;
  top: 80px;
  margin-left: -6.25vw;
  display: block;
  opacity: 0.4;
}
.message__vision-heading {
  width: -moz-fit-content;
  width: fit-content;
  max-width: 36%;
  padding: 24px 0 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  position: sticky;
  top: 80px;
  z-index: 2;
}
.message__vision-catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.4;
  color: #1a1a1a;
  letter-spacing: 0.1em;
}
.message__vision-body {
  width: 60%;
  margin: 56px 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
  position: relative;
  z-index: 1;
}
.message__vision-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.message__vision-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #dde0df;
}
.message__vision-item {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 32px 0;
}
.message__vision-num {
  flex-shrink: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: #821c22;
}
.message__vision-cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.message__vision-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.message__vision-txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.message__policy {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  position: relative;
  overflow: hidden;
}
.message__policy-deco {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(10rem, 3rem + 14vw, 20rem);
  line-height: 1;
  color: rgba(221, 224, 223, 0.5);
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
}
.message__policy-label {
  margin-top: calc(clamp(10rem, 3rem + 14vw, 20rem) * 0.6);
}
.message__vision-label, .message__policy-label, .message__principles-label, .message__trust-label {
  padding-bottom: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 700;
  color: #821c22;
  letter-spacing: 0.04em;
  position: relative;
  z-index: 1;
}
.message__vision-label::after, .message__policy-label::after, .message__principles-label::after, .message__trust-label::after {
  content: "";
  width: 24px;
  height: 1px;
  background: #821c22;
  position: absolute;
  left: 0;
  bottom: 0;
}
.message__policy-intro {
  width: 100%;
  margin-top: 32px;
  display: flex;
  align-items: flex-end;
  gap: 4.1666666667vw;
  position: relative;
  z-index: 1;
}
.message__policy-catch {
  flex-shrink: 0;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.4;
  color: #1a1a1a;
  letter-spacing: 0.1em;
}
.message__policy-lead {
  flex: 1 1 0;
  min-width: 0;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.message__policy-list {
  width: 100%;
  margin-top: 72px;
  display: flex;
  gap: 80px;
}
.message__policy-list > * {
  width: calc((100% - 160px) / 3);
}
.message__policy-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.message__policy-num {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: #821c22;
}
.message__policy-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.message__policy-txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.message__principles {
  width: 100%;
  padding: 6.25vw 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: #f1f1f1;
  box-shadow: 0 0 0 100vmax #f1f1f1;
  -webkit-clip-path: inset(0 -100vmax);
          clip-path: inset(0 -100vmax);
  position: relative;
  overflow: hidden;
}
.message__principles-deco {
  width: -moz-max-content;
  width: max-content;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(10rem, 3rem + 14vw, 20rem);
  line-height: 0.9;
  color: #ffffff;
  letter-spacing: 0.02em;
  white-space: nowrap;
  position: absolute;
  top: 6.25vw;
  left: 50%;
  transform: translateX(-50%);
  z-index: 0;
  pointer-events: none;
}
.message__principles-label {
  margin-top: calc(clamp(10rem, 3rem + 14vw, 20rem) * 0.9);
}
.message__principles-label::after {
  left: 50%;
  transform: translateX(-50%);
}
.message__principles-catch {
  margin-top: 32px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.4;
  color: #1a1a1a;
  letter-spacing: 0.1em;
  position: relative;
  z-index: 1;
}
.message__principles-lead {
  max-width: 700px;
  margin-top: 40px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.message__principles-list {
  width: 100%;
  max-width: 1000px;
  margin-top: 72px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.message__principles-list > li {
  width: calc((100% - 24px) / 2);
}
.message__principles-item {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  padding: 48px 40px;
  background: #ffffff;
  border-radius: 2px;
  text-align: left;
  position: relative;
  overflow: hidden;
}
.message__principles-num {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: #821c22;
}
.message__principles-num::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #dde0df;
}
.message__principles-txt {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.message__trust {
  width: 100%;
  padding: 8.3333333333vw 0;
  background: #1a1a1a;
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
  color: #ffffff;
  position: relative;
}
.message__trust-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.message__trust-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.message__trust-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.message .inner.message__trust-inner {
  align-items: center;
  gap: 72px;
  position: relative;
  z-index: 1;
}
.message__trust-deco {
  width: 100%;
  overflow: hidden;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(10rem, 3rem + 14vw, 20rem);
  line-height: 0.8;
  color: rgba(255, 255, 255, 0.15);
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  left: 0;
  bottom: -0.08em;
  z-index: 1;
  pointer-events: none;
}
.message__trust-deco-track {
  width: -moz-max-content;
  width: max-content;
  display: flex;
  animation: kvDecoScroll 60s linear infinite;
}
.message__trust-deco span {
  padding-right: 0.5em;
}
.message__trust-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.message__trust-label {
  color: #ffffff;
}
.message__trust-label::after {
  left: 50%;
  background: #ffffff;
  transform: translateX(-50%);
}
.message__trust-catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.message__trust-label {
  margin-top: 32px;
}
.message__trust-lead {
  margin-top: 40px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
}
.message__trust-list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.message__trust-list > li {
  width: 50%;
}
.message__trust-item {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 40px 2.9166666667vw;
}
.message__trust-item:nth-child(odd) {
  padding-left: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}
.message__trust-item:nth-child(even) {
  padding-right: 0;
}
.message__trust-item:nth-child(-n+2) {
  padding-top: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}
.message__trust-item:nth-child(n+3) {
  padding-bottom: 0;
}
.message__trust-num {
  flex-shrink: 0;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: rgba(255, 255, 255, 0.6);
}
.message__trust-cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.message__trust-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
}
.message__trust-txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
}

/* メイドインジャパンへのこだわり（本文）
------------------------------------------------------------*/
.japan {
  width: 100%;
  overflow-x: clip;
}
.japan .inner {
  display: flex;
  flex-direction: column;
  gap: 8.3333333333vw;
}
.japan__txt {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.japan__philosophy {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 4.1666666667vw;
}
.japan__philosophy-cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.japan__philosophy-img {
  width: 60%;
  flex-shrink: 0;
  margin-right: calc(50% - 50vw);
  display: flex;
  align-items: flex-start;
}
.japan__philosophy-img img {
  width: 33.3333333333%;
  aspect-ratio: 400/640;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 2px;
}
.japan__philosophy-img img:nth-child(1) {
  margin-top: 6%;
}
.japan__philosophy-img img:nth-child(3) {
  margin-top: 12%;
}
.japan__numbers, .japan__quality, .japan__detail, .japan__factory, .japan__everyone {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.japan__numbers > .ttl, .japan__quality > .ttl, .japan__detail > .ttl, .japan__factory > .ttl, .japan__everyone > .ttl {
  align-items: center;
  text-align: center;
}
.japan__lead {
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
  text-align: center;
}
.japan__numbers-list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.japan__numbers-item {
  width: calc((100% - 72px) / 4);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 24px;
  border: 1px solid #dde0df;
  border-radius: 2px;
  text-align: center;
}
.japan__numbers-img {
  margin-bottom: 24px;
  display: flex;
  justify-content: center;
}
.japan__numbers-img img {
  width: 200px;
  aspect-ratio: 800/640;
  -o-object-fit: contain;
     object-fit: contain;
}
.japan__numbers-label {
  padding-bottom: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #821c22;
  letter-spacing: 0.06em;
  position: relative;
}
.japan__numbers-label::after {
  content: "";
  width: 16px;
  height: 1px;
  background: #821c22;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
}
.japan__numbers-num {
  margin-top: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.4;
  color: #1a1a1a;
  letter-spacing: 0.04em;
}
.japan__quality-nav {
  width: 100%;
  display: flex;
  gap: 24px;
}
.japan__quality-nav > li {
  width: calc((100% - 48px) / 3);
}
.japan__quality-nav-item {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 16px 32px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  text-align: center;
  position: relative;
}
@media (hover: hover) {
.japan__quality-nav-item:hover {
  opacity: 1;
}
.japan__quality-nav-item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.japan__quality-nav-item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.japan__quality-nav-arrow {
  position: absolute;
  right: 16px;
  bottom: 16px;
  transform: rotate(90deg);
}
.japan__quality-nav-num {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #ffffff;
}
.japan__quality-nav-en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #ffffff;
  letter-spacing: 0.04em;
}
.japan__quality-nav-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  color: #ffffff;
}
.japan__quality-list {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.japan__quality-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 3.3333333333vw;
}
.japan__quality-img {
  width: 50%;
  flex-shrink: 0;
  border-radius: 2px;
  overflow: hidden;
}
.japan__quality-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.japan__quality-cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.japan__quality-head {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.japan__quality-num {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  color: #821c22;
}
.japan__quality-en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #821c22;
  letter-spacing: 0.04em;
}
.japan__quality-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.japan__detail-head {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 4.1666666667vw;
}
.japan__detail-head .ttl {
  flex-shrink: 0;
  gap: 16px;
}
.japan__detail-lead {
  width: 40%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.japan__detail-list {
  width: auto;
  align-self: stretch;
  margin: 24px calc(50% - 50vw) 0;
  display: flex;
  flex-wrap: wrap;
  gap: 64px 8px;
}
.japan__detail-item {
  width: calc((100% - 24px) / 4);
  display: flex;
  flex-direction: column;
  background: #ffffff;
}
.japan__detail-img {
  position: relative;
}
.japan__detail-photo {
  aspect-ratio: 4/3;
  border-radius: 2px;
  overflow: hidden;
}
.japan__detail-photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.japan__detail-badge {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2rem, 1.2rem + 1.6vw, 4rem);
  line-height: 1;
  color: #ffffff;
  letter-spacing: 0.02em;
  white-space: nowrap;
  mix-blend-mode: difference;
  position: absolute;
  left: 16px;
  bottom: 0;
  transform: translateY(50%);
  pointer-events: none;
}
.japan__detail-body {
  margin-top: calc(clamp(2rem, 1.2rem + 1.6vw, 4rem) * 0.5 + 24px);
  padding-left: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.japan__detail-num {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1;
  color: #821c22;
  letter-spacing: 0.1em;
}
.japan__detail-num::after {
  content: "";
  width: 40px;
  height: 1px;
  background: #821c22;
}
.japan__detail-cap {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.japan__factory {
  flex-direction: row;
  align-items: center;
  gap: 4.1666666667vw;
}
.japan__factory-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.japan__factory-txt .ttl {
  gap: 16px;
}
.japan__factory-img {
  width: 40%;
  flex-shrink: 0;
}
.japan__factory-img img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.japan__everyone-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.japan__everyone-bg {
  width: auto;
  align-self: stretch;
  height: 33.3333333333vw;
  min-height: 320px;
  margin: 0 calc(50% - 50vw);
}
.japan__everyone-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.japan__everyone {
  margin-top: -16.6666666667vw;
  padding: 5vw 4.1666666667vw 0;
  background: #ffffff;
  border-radius: 2px;
  position: relative;
  z-index: 1;
}
.japan__everyone-list {
  width: 100%;
  max-width: 1100px;
  display: flex;
  gap: 4.1666666667vw;
}
.japan__everyone-item {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}
.japan__everyone-item:first-child {
  z-index: 1;
}
.japan__everyone-img {
  margin-bottom: 16px;
  aspect-ratio: 1/1;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.japan__everyone-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.japan__everyone-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 55%);
}
.japan__everyone-over {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: absolute;
  left: 32px;
  right: 32px;
  bottom: 32px;
  z-index: 1;
  color: #ffffff;
}
.japan__everyone-en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1;
  letter-spacing: 0.08em;
}
.japan__everyone-caption {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.japan__everyone-and {
  width: 100%;
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;
}
.japan__everyone-and span {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(12rem, 6rem + 8vw, 24rem);
  line-height: 1;
  color: rgba(221, 224, 223, 0.9);
  transform: translateX(calc(50% + 2.0833333333vw));
}
.japan__everyone-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.japan__everyone-points {
  margin-top: 8px;
  border-top: 1px solid #dde0df;
}
.japan__everyone-points li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.japan__everyone-points li::before {
  content: "";
  width: 12px;
  height: 1px;
  flex-shrink: 0;
  background: #821c22;
}
.japan__brand {
  width: 100%;
  margin: 8.3333333333vw 0;
  padding: 8.3333333333vw 0;
  background: #1a1a1a;
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
  color: #ffffff;
  text-align: center;
  position: relative;
}
.japan__brand-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.japan__brand-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.japan__brand-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}
.japan__brand-deco {
  width: -moz-max-content;
  width: max-content;
  font-family: "Cormorant Garamond", serif;
  font-size: 9.4vw;
  line-height: 0.8;
  color: rgba(255, 255, 255, 0.15);
  letter-spacing: 0.1em;
  white-space: nowrap;
  position: absolute;
  left: 50%;
  bottom: -0.08em;
  transform: translateX(-50%);
  z-index: 1;
  pointer-events: none;
}
.japan .inner.japan__brand-inner {
  align-items: center;
  gap: 40px;
  position: relative;
  z-index: 2;
}
.japan__brand-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  line-height: 1.4;
  letter-spacing: 0.1em;
}
.japan__brand-txt {
  display: flex;
  flex-direction: column;
  gap: 24px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
}

/* 取扱説明書・施工図面ダウンロード（本文）
------------------------------------------------------------*/
.download {
  width: 100%;
}
.download .inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.download__tab {
  width: 100%;
  padding: 8px 0;
  display: flex;
  gap: 8px;
  background: #ffffff;
  position: sticky;
  top: 115px;
  z-index: 11;
}
.download__tab > li {
  flex: 1 1 0;
  min-width: 0;
}
.download__tab-btn {
  width: 100%;
  padding: 16px;
  background: #f8f8f8;
  border: 1px solid #dde0df;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: center;
}
.download__tab-btn.ac {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #ffffff;
}
.download__panel {
  width: 100%;
  display: none;
}
.download__panel.ac {
  display: block;
}
.download__body {
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.download__index {
  width: 240px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 213px;
}
.download__index li {
  border-bottom: 1px solid #dde0df;
}
.download__index li:first-child {
  border-top: 1px solid #dde0df;
}
.download__index a {
  display: block;
  padding: 16px 0;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.download__index a.ac {
  font-weight: 700;
  color: #821c22;
}
.download__cont {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.download__group {
  scroll-margin-top: 221px;
}
.download__ttl {
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid #1a1a1a;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #1a1a1a;
}
.download__ttl-sub {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.download__list {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 16px;
}
.download__list > li {
  width: calc((100% - 48px) / 4);
}
.download__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  border: 1px solid #dde0df;
}
.download__img {
  aspect-ratio: 1;
  overflow: hidden;
}
.download__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.download__name {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 700;
  text-align: center;
  color: #1a1a1a;
}
.download__btns {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.download__btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #1a1a1a;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #ffffff;
}
.download__btn-icon, .download__file-icon {
  --icon: url(../../assets/img/common/i_download-wh.svg);
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}
.download__btn-icon::before, .download__btn-icon::after, .download__file-icon::before, .download__file-icon::after {
  content: "";
  width: 100%;
  height: 100%;
  background: var(--icon) center/contain no-repeat;
  position: absolute;
  top: 0;
  left: 0;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.download__btn-icon::after, .download__file-icon::after {
  translate: 0 -100%;
}
@media (hover: hover) {
.download__btn:hover, .download__file:hover {
  opacity: 1;
}
.download__btn:hover .download__btn-icon::before,
.download__btn:hover .download__file-icon::before, .download__file:hover .download__btn-icon::before,
.download__file:hover .download__file-icon::before {
  animation-name: downloadArrowOut;
  animation-delay: 0s;
}
.download__btn:hover .download__btn-icon::after,
.download__btn:hover .download__file-icon::after, .download__file:hover .download__btn-icon::after,
.download__file:hover .download__file-icon::after {
  animation-name: downloadArrowIn;
  animation-delay: 0.2s;
}
}
.download__table-wrap {
  width: 100%;
  overflow-x: auto;
}
.download__table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #1a1a1a;
}
.download__table th,
.download__table td {
  padding: 20px 24px;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
  text-align: left;
}
.download__table th {
  width: 26%;
  background: #f8f8f8;
  border-right: 1px solid #dde0df;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 700;
  vertical-align: middle;
}
.download__table td:first-of-type {
  width: 30%;
  font-weight: 700;
}
.download__file {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  color: #1a1a1a;
  word-break: break-all;
}
.download__file-icon {
  --icon: url(../../assets/img/common/i_download.svg);
}
.download__movie {
  display: flex;
  flex-wrap: wrap;
  gap: 48px 32px;
}
.download__movie > li {
  width: calc((100% - 32px) / 2);
}
.download__movie-link {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.download__movie-img {
  display: block;
  aspect-ratio: 16/9;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.download__movie-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.download__movie-play {
  width: 64px;
  height: 64px;
  margin: -32px 0 0 -32px;
  border-radius: 50%;
  background: rgba(26, 26, 26, 0.7);
  position: absolute;
  top: 50%;
  left: 50%;
}
.download__movie-play::after {
  content: "";
  border-style: solid;
  border-width: 10px 0 10px 16px;
  border-color: transparent transparent transparent #ffffff;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-35%, -50%);
}
.download__movie-ttl {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
  color: #1a1a1a;
}

/* よくあるご質問（本文）
------------------------------------------------------------*/
.faq {
  width: 100%;
}
.faq .inner {
  max-width: calc(1000px + 8vw);
  display: flex;
  flex-direction: column;
  gap: 120px;
}
.faq__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.faq__lead-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.75;
  color: #1a1a1a;
}
.faq__group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.faq__ttl {
  width: 100%;
  padding-bottom: 16px;
  border-bottom: 1px solid #1a1a1a;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  color: #1a1a1a;
}
.faq__item {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.faq__q {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 32px;
  background: #f8f8f8;
}
.faq__q-mark, .faq__a-mark {
  flex-shrink: 0;
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  line-height: 1.2;
}
.faq__q-mark, .faq__a-mark {
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
}
.faq__q-mark {
  color: #1a1a1a;
}
.faq__a-mark {
  color: #821c22;
}
.faq__q-txt {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 4px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  line-height: 1.6;
  color: #1a1a1a;
}
.faq__a {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-left: 32px;
}
.faq__a-txt {
  flex: 1 1 0;
  min-width: 0;
  padding-top: 4px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* 全国のショールーム（一覧ページ）
------------------------------------------------------------*/
.showroomList {
  width: 100%;
}
.showroomList .inner {
  max-width: calc(1160px + 8vw);
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.showroomList__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.showroomList__lead-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.75;
  color: #1a1a1a;
}
.showroomList .linkBnr {
  aspect-ratio: 1128/520;
}
.showroomList__list {
  display: flex;
  flex-wrap: wrap;
  gap: 56px 32px;
}
.showroomList__list > li {
  width: calc((100% - 32px) / 2);
  display: flex;
  flex-direction: column;
}
.showroomList__img {
  aspect-ratio: 564/300;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.showroomList__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.showroomList__name {
  margin-top: 24px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.showroomList__addr {
  margin-top: 8px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.showroomList__btn {
  width: 100%;
  margin-top: 24px;
  padding-top: 16px;
  padding-bottom: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.04em;
}

/* ショールーム詳細（大阪ショールームなど）
------------------------------------------------------------*/
.showroomDetail {
  width: 100%;
}
.showroomDetail .inner {
  max-width: calc(1160px + 8vw);
  display: flex;
  flex-direction: column;
  gap: 96px;
}
.showroomDetail .btn {
  align-self: flex-start;
}
.showroomDetail .showroomDetail__btn {
  align-self: center;
}
.showroomDetail .btn--outline {
  width: auto;
  max-width: none;
}
.showroomDetail__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.showroomDetail__intro .btn {
  align-self: center;
}
.showroomDetail__main-img {
  width: 100%;
  aspect-ratio: 1160/440;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.showroomDetail__main-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.showroomDetail__lead-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.75;
  color: #1a1a1a;
}
.showroomDetail__notice {
  padding: 24px 32px;
  background: #f1f1f1;
  border-radius: 2px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.showroomDetail__notice-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #1a1a1a;
}
.showroomDetail__notice-txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.showroomDetail__block {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.showroomDetail__block .ttl {
  align-items: center;
  gap: 16px;
  text-align: center;
}
.showroomDetail__reservation .ttl {
  gap: 0;
}
.showroomDetail__reservation .ttl__en {
  padding-left: 0.1em;
  font-size: clamp(4rem, 10vw, 14rem);
  line-height: 1;
  letter-spacing: 0.1em;
  color: rgba(221, 224, 223, 0.5);
}
.showroomDetail__reservation .ttl__jp {
  margin-top: clamp(-5.6rem, -3.5vw, -2.4rem);
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  position: relative;
}
.showroomDetail__txt, .showroomDetail__note {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.showroomDetail__gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
.showroomDetail__gallery > li {
  width: calc((100% - 48px) / 3);
  aspect-ratio: 3/2;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.showroomDetail__gallery-btn {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  background: none;
  border: 0;
  cursor: zoom-in;
}
.showroomDetail__gallery-btn img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
}
@media (hover: hover) {
.showroomDetail__gallery-btn:hover {
  opacity: 1;
}
.showroomDetail__gallery-btn:hover img {
  transform: scale(1.05);
}
}
.showroomDetail__map {
  aspect-ratio: 1160/400;
  border-radius: 2px;
  overflow: hidden;
}
.showroomDetail__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.showroomDetail__access {
  display: flex;
  gap: 24px;
}
.showroomDetail__access dl {
  flex: 1 1 0;
  min-width: 0;
  padding: 32px;
  background: #f1f1f1;
  border-radius: 2px;
}
.showroomDetail__access dt {
  padding-bottom: 16px;
  border-bottom: 1px solid #dde0df;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #1a1a1a;
  position: relative;
}
.showroomDetail__access dt::after {
  content: "";
  width: 64px;
  height: 1px;
  background: #1a1a1a;
  position: absolute;
  bottom: -1px;
  left: 0;
}
.showroomDetail__access dd {
  margin-top: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.showroomDetail__steps {
  display: flex;
  gap: 48px;
}
.showroomDetail__steps > li {
  flex: 1 1 0;
  min-width: 0;
  padding: 32px 24px;
  background: #f1f1f1;
  border-top: 2px solid #821c22;
  border-radius: 2px;
  position: relative;
}
.showroomDetail__steps > li:not(:last-child)::after {
  content: "";
  width: 24px;
  height: 10px;
  background: url(../../assets/img/common/i_arrow-btn-red.svg) no-repeat center/contain;
  position: absolute;
  top: calc(50% - 5px);
  right: -36px;
}
.showroomDetail__steps-no {
  display: flex;
  align-items: center;
  align-items: baseline;
  gap: 12px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  line-height: 1;
  color: #821c22;
}
.showroomDetail__steps-no span {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  letter-spacing: 0.08em;
}
.showroomDetail__steps-ttl {
  margin-top: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.showroomDetail__steps-txt {
  margin-top: 12px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.showroomDetail__btns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
}
.showroomDetail__btns .btn {
  align-self: center;
}
.showroomDetail__btn-back .btn__arrow {
  scale: -1 1;
}

/* ショールーム見学 予約フォーム
------------------------------------------------------------*/
.reserveForm {
  width: 100%;
  padding-bottom: 120px;
}
.reserveForm .inner {
  max-width: calc(900px + 8vw);
  display: flex;
  flex-direction: column;
  gap: 64px;
}
.reserveForm__lead {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.reserveForm__flow {
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-bottom: 24px;
}
.reserveForm__flow::before {
  content: "";
  height: 1px;
  background: #dde0df;
  position: absolute;
  top: 16px;
  right: 16.6666666667%;
  left: 16.6666666667%;
}
.reserveForm__flow > li {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 700;
  color: #666666;
  position: relative;
}
.reserveForm__flow > li.is-current {
  color: #1a1a1a;
}
.reserveForm__flow > li.is-current .reserveForm__flow-no {
  background: #1a1a1a;
  color: #ffffff;
}
.reserveForm__flow-no {
  width: 32px;
  height: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: #dde0df;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  line-height: 1;
  color: #666666;
  position: relative;
  z-index: 1;
}
.reserveForm__lead-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
  text-align: center;
  color: #1a1a1a;
}
.reserveForm__lead-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.75;
  text-align: center;
  color: #1a1a1a;
}
.reserveForm__form {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.reserveForm__group {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.reserveForm__ttl {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px 24px;
  background: #f1f1f1;
  border-left: 6px solid #821c22;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.3;
  letter-spacing: 0.08em;
  color: #1a1a1a;
}
.reserveForm .smf-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.reserveForm .smf-item__label {
  display: flex;
  align-items: center;
  gap: 16px;
}
.reserveForm .smf-item__label__text {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 500;
  color: #1a1a1a;
}
.reserveForm__req {
  padding: 0 8px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 24px;
  color: #ffffff;
}
.reserveForm__req--required {
  background: #821c22;
}
.reserveForm__req--optional {
  background: #666666;
}
.reserveForm .smf-text-control__control,
.reserveForm .smf-select-control__control,
.reserveForm .smf-textarea-control__control {
  width: 100%;
  height: 56px;
  padding: 0 24px;
  background: #ffffff;
  border: 1px solid rgba(26, 26, 26, 0.3);
  border-radius: 2px;
  font-family: inherit;
  font-size: 16px;
  letter-spacing: 0.04em;
  color: #1a1a1a;
  outline: none;
  transition-duration: 0.3s;
}
.reserveForm .smf-text-control__control::-moz-placeholder, .reserveForm .smf-select-control__control::-moz-placeholder, .reserveForm .smf-textarea-control__control::-moz-placeholder {
  color: #b3b3b3;
}
.reserveForm .smf-text-control__control::placeholder,
.reserveForm .smf-select-control__control::placeholder,
.reserveForm .smf-textarea-control__control::placeholder {
  color: #b3b3b3;
}
.reserveForm .smf-text-control__control:focus,
.reserveForm .smf-select-control__control:focus,
.reserveForm .smf-textarea-control__control:focus {
  border-color: #1a1a1a;
}
.reserveForm .smf-select-control__control {
  padding-right: 56px;
  background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a1a1a' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 24px center/12px 8px;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  cursor: pointer;
}
.reserveForm .smf-textarea-control__control {
  height: auto;
  min-height: 230px;
  padding: 16px 24px;
  line-height: 1.75;
  resize: vertical;
}
.reserveForm__datetime {
  display: flex;
  gap: 16px;
}
.reserveForm__datetime > * {
  flex: 1 1 0;
  min-width: 0;
}
.reserveForm__consent {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.reserveForm__privacy {
  padding: 8px;
  gap: 8px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}
.reserveForm .smf-checkbox-control__control {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 700;
  cursor: pointer;
}
.reserveForm .smf-checkbox-control__control input {
  width: 24px;
  height: 24px;
  margin: 0;
  flex-shrink: 0;
  background: #ffffff;
  border: 1px solid rgba(26, 26, 26, 0.5);
  border-radius: 2px;
  position: relative;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.reserveForm .smf-checkbox-control__control input::after {
  content: "";
  width: 6px;
  height: 12px;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  opacity: 0;
  position: absolute;
  top: 2px;
  left: 7px;
  transform: rotate(45deg);
}
.reserveForm .smf-checkbox-control__control input:checked {
  background: #1a1a1a;
  border-color: #1a1a1a;
}
.reserveForm .smf-checkbox-control__control input:checked::after {
  opacity: 1;
}
.reserveForm .smf-checkbox-control__control input:focus-visible {
  outline: 2px solid #1a1a1a;
  outline-offset: 2px;
}
.reserveForm__consent-txt, .reserveForm__note {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.75;
  color: #1a1a1a;
}
.reserveForm .smf-action {
  width: 100%;
  display: flex;
  justify-content: center;
}
.reserveForm .smf-button-control__control {
  width: 100%;
  max-width: 460px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  padding: 24px 40px;
  background: #821c22;
  border: 1px solid #821c22;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.reserveForm .smf-button-control__control::after {
  content: "";
  width: 19px;
  height: 12px;
  flex-shrink: 0;
  background: url(../../assets/img/common/i_arrow-btn-wh-bold.svg) no-repeat center/contain;
}
@media (hover: hover) {
.reserveForm .smf-button-control__control:hover {
  opacity: 1;
}
.reserveForm .smf-button-control__control:hover::after {
  animation: reserveArrowSlide 0.6s;
}
}

@keyframes reserveArrowSlide {
  0% {
    translate: 0 0;
    opacity: 1;
  }
  45% {
    translate: 100% 0;
    opacity: 0;
  }
  46% {
    translate: -100% 0;
    opacity: 0;
  }
  100% {
    translate: 0 0;
    opacity: 1;
  }
}
/* 自社工場・製品開発
------------------------------------------------------------*/
.factory {
  width: 100%;
  overflow-x: clip;
}
.factory .inner {
  max-width: calc(1200px + 8vw);
  display: flex;
  flex-direction: column;
}
.factory__sec {
  padding: 80px 0;
  border-top: 1px solid #dde0df;
  display: flex;
  flex-direction: column;
  gap: 32px;
  scroll-margin-top: 180px;
}
.factory__sec--first {
  padding-top: 0;
  border-top: 0;
}
.factory__sec--lead {
  padding-bottom: 32px;
}
.factory__sec--sub {
  margin-top: -40px;
  padding-top: 40px;
}
.factory__sec--noline {
  border-top: 0;
}
.factory__sec--last {
  padding-bottom: 0;
}
.factory__sec .ttl {
  align-items: center;
  gap: 16px;
  text-align: center;
}
.factory__sec:not(.factory__sec--intro) .ttl__jp:not(h2) {
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
}
.factory__sec--intro .ttl {
  gap: 0;
}
.factory__sec--intro .ttl__en {
  padding-left: 0.1em;
  font-size: clamp(1.6rem, 5.6vw, 7.2rem);
  line-height: 1;
  letter-spacing: 0.1em;
  color: rgba(221, 224, 223, 0.5);
}
.factory__sec--intro .ttl__jp {
  margin-top: clamp(-3.2rem, -2.5vw, -1.6rem);
  position: relative;
}
.factory__sec--intro .ttl__jp:not(h2) {
  font-size: clamp(2.8rem, 9.6vw, 6.4rem) !important;
}
.factory__txt {
  display: flex;
  flex-direction: column;
  gap: 24px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.factory__sec > .factory__txt {
  max-width: 800px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}
.factory__sec--first > .factory__txt {
  max-width: 900px;
}
.factory__sec > .factory__cap, .factory__imgs--intro .factory__cap, .factory__imgs--people .factory__cap, .factory__imgs--salon .factory__cap, .factory__imgs--prototype .factory__cap {
  text-align: center;
}
.factory__imgs--intro .factory__cap {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
}
.factory__img {
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.factory__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.factory__img--full {
  aspect-ratio: 1200/640;
}
.factory__img--visual {
  aspect-ratio: 1200/560;
}
.factory__img--split {
  flex: 0 0 50%;
  aspect-ratio: 600/420;
}
.factory__img--quality {
  aspect-ratio: 600/460;
}
.factory__split {
  display: flex;
  align-items: center;
  gap: 64px;
}
.factory__body {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.factory__cap {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.factory__cap strong {
  margin-bottom: 8px;
  display: block;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 400;
}
.factory__cap--strong {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.factory__imgs {
  display: flex;
  gap: 32px;
}
.factory__imgs > li {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.factory__imgs--intro .factory__img {
  aspect-ratio: 584/360;
}
.factory__imgs--prototype {
  gap: 24px;
}
.factory__imgs--prototype .factory__img {
  aspect-ratio: 560/360;
}
.factory__imgs--craft {
  flex-wrap: wrap;
  gap: 24px;
}
.factory__imgs--craft > li {
  flex: none;
  width: calc((100% - 48px) / 3);
}
.factory__imgs--craft .factory__img {
  aspect-ratio: 384/280;
}
.factory__imgs--detail {
  flex-wrap: wrap;
  gap: 40px 24px;
}
.factory__imgs--detail > li {
  flex: none;
  width: calc((100% - 48px) / 3);
}
.factory__imgs--detail .factory__img {
  aspect-ratio: 384/260;
}
.factory__imgs--people {
  gap: 24px;
}
.factory__imgs--people .factory__img {
  aspect-ratio: 282/360;
}
.factory__imgs--salon {
  gap: 24px;
}
.factory__imgs--salon .factory__img {
  aspect-ratio: 384/320;
}
.factory__arrow {
  flex: 0 0 64px !important;
  display: flex;
  justify-content: center;
  align-items: center;
}
.factory__arrow .btn__arrow {
  width: 34px;
  height: 20px;
  --arrow-icon: url(../../assets/img/common/i_arrow-btn-thin-l.svg) !important;
}
.factory__imgs--prototype .factory__arrow, .factory__imgs--salon .factory__arrow {
  padding-bottom: calc(1.8em + 16px);
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.factory__nav {
  width: 100%;
  padding: 8px 0;
  position: sticky;
  top: 109px;
  z-index: 11;
}
.factory__nav::before {
  content: "";
  background: #ffffff;
  position: absolute;
  top: 0;
  right: calc(50% - 50vw);
  bottom: 0;
  left: calc(50% - 50vw);
  z-index: -1;
}
.factory__flow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.factory__flow > li {
  width: calc((100% - 16px) / 3);
}
.factory__flow-item {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-items: center;
  gap: 12px;
  padding: 8px 40px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.24em;
  white-space: nowrap;
  transition: none;
  position: relative;
}
@media (hover: hover) {
.factory__flow-item:hover {
  opacity: 1;
}
.factory__flow-item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.factory__flow-item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.factory__flow-no {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  position: relative;
  top: -0.15em;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  color: #ffffff;
}
.factory__flow-en {
  margin-right: -0.24em;
}
.factory__flow-jp {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 400;
  letter-spacing: 0.08em;
}
.factory__flow-arrow {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
}
.factory__nav.ac::before {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}
.factory__nav.ac .factory__flow {
  flex-wrap: wrap;
}
.factory__nav.ac .factory__flow > li {
  flex: 1 1 auto;
  width: auto;
}
.factory__nav.ac .factory__flow-item {
  gap: 8px;
  padding: 8px 24px;
  letter-spacing: 0.08em;
}
.factory__nav.ac .factory__flow-no {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.factory__nav.ac .factory__flow-en {
  margin-right: -0.08em;
}
.factory__nav.ac .factory__flow-arrow {
  right: 4px;
}
.factory__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.factory__step-no {
  font-size: clamp(4.4rem, 4.8rem + 1.6vw, 6.4rem);
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.02em;
}
.factory__step-label {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.3em;
}
.factory__step-label::before, .factory__step-label::after {
  content: "";
  width: 32px;
  height: 1px;
  background: currentColor;
}
.factory__step-label::after {
  margin-left: -0.3em;
}
.factory__check-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.factory__check-en {
  margin-bottom: 8px;
  display: block;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.08em;
  color: #821c22;
}
.factory__check {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.factory__check > li {
  padding-left: 40px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.8;
  color: #1a1a1a;
  position: relative;
}
.factory__check > li::before {
  content: "";
  width: 10px;
  height: 20px;
  border-right: 2px solid #821c22;
  border-bottom: 2px solid #821c22;
  position: absolute;
  top: 0.25em;
  left: 6px;
  rotate: 45deg;
}
.factory__check > li strong {
  margin-right: 16px;
  font-weight: 700;
}
.factory__loop {
  padding: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 64px;
  position: relative;
}
.factory__loop::before {
  content: "";
  border: 1px dashed rgba(130, 28, 34, 0.7);
  border-radius: 144px;
  position: absolute;
  top: 76px;
  right: 0;
  bottom: 76px;
  left: 0;
}
.factory__loop-row {
  display: flex;
  gap: 64px;
  position: relative;
  z-index: 1;
}
.factory__loop-row--back {
  flex-direction: row-reverse;
  justify-content: center;
}
.factory__loop-item {
  flex: 0 0 calc((100% - 192px) / 4);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 28px 8px 20px;
  background: #ffffff;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  text-align: center;
  position: relative;
}
.factory__loop-item:not(:last-child)::after {
  content: "";
  width: 32px;
  height: 20px;
  background: #ffffff url(../../assets/img/common/i_arrow-btn-red.svg) no-repeat center/24px 10px;
  position: absolute;
  top: calc(50% - 10px);
  right: -48px;
}
.factory__loop-row--back .factory__loop-item:not(:last-child)::after {
  right: auto;
  left: -48px;
  transform: rotate(180deg);
}
.factory__loop-no {
  min-width: 40px;
  height: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #ffffff;
  border: 1px solid #821c22;
  border-radius: 14px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1;
  color: #821c22;
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
}
.factory__loop-en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  letter-spacing: 0.08em;
  white-space: nowrap;
  color: #821c22;
}
.factory__loop-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.5;
  color: #1a1a1a;
}

/* 個人情報保護ポリシー・サイト使用条件（同じ見た目の文章ページ）
------------------------------------------------------------*/
.privacy,
.terms {
  width: 100%;
  padding: 40px 0 120px;
}
.privacy .inner,
.terms .inner {
  max-width: calc(900px + 8vw);
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.privacy__ttl,
.terms__ttl {
  padding-bottom: 16px;
  border-bottom: 1px solid #dde0df;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.8rem, 3rem + 0.5vw, 3.6rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.privacy__block,
.terms__block {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.privacy__txt,
.terms__txt {
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.privacy__sign,
.terms__sign {
  margin-top: 16px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.9;
  text-align: right;
  color: #1a1a1a;
}
.privacy__note,
.terms__note {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.privacy__txt a,
.terms__txt a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
@media (hover: hover) {
.privacy__txt a:hover,
.terms__txt a:hover {
  opacity: 1;
  text-decoration: none;
}
}
.privacy__list,
.terms__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  counter-reset: termsList;
}
.privacy__list li,
.terms__list li {
  padding-left: 2em;
  position: relative;
  counter-increment: termsList;
}
.privacy__list li::before,
.terms__list li::before {
  content: counter(termsList) "）";
  position: absolute;
  left: 0;
}

/* デジタルカタログ（フォームなし。ボタンからカタログのURLへ移動する）
------------------------------------------------------------*/
.catalog .inner {
  max-width: calc(1160px + 8vw);
  gap: 24px;
}
.catalog__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.6;
  text-align: center;
  color: #1a1a1a;
}
.catalog__wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 64px;
}
.catalog__intro {
  flex: 1 1 0;
  min-width: 0;
  max-width: 560px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}
.catalog__cover {
  width: 100%;
  max-width: 400px;
  flex: none;
  aspect-ratio: 400/560;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.catalog__cover img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.catalog__name {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.catalog__txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
  color: #1a1a1a;
}
.catalog__note {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.6;
  color: #1a1a1a;
}

/* サロンお役立ち情報（記事一覧＋カテゴリ）
------------------------------------------------------------*/
.articleList {
  width: 100%;
}
.articleList__wrap {
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.articleList__list {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 56px 24px;
}
.articleList__list > li {
  width: calc((100% - 24px) / 2);
}
.articleList__item {
  position: relative;
  display: flex;
  flex-direction: column;
}
@media (hover: hover) {
.articleList__item:hover {
  opacity: 1;
}
.articleList__item:hover .articleList__img img {
  transform: scale(1.05);
}
.articleList__item:hover .articleList__img::after {
  background: rgba(0, 0, 0, 0.5);
}
}
.articleList__img {
  aspect-ratio: 360/229;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.articleList__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition-duration: 0.3s;
}
.articleList__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  mix-blend-mode: multiply;
  transition-duration: 0.3s;
  pointer-events: none;
}
.articleList__target {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  padding: 4px 12px;
  background: #666666;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-weight: 700;
  color: #ffffff;
}
.articleList__target--accent {
  background: #821c22;
}
.articleList__target--dark {
  background: #1a1a1a;
}
.articleList__meta {
  margin-top: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.articleList__date {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #666666;
  opacity: 0.6;
}
.articleList__tag {
  position: relative;
  z-index: 2;
  padding: 4px 12px;
  border: 1px solid #1a1a1a;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #1a1a1a;
}
.articleList__ttl {
  margin-top: 16px;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #1a1a1a;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.articleList__ttl a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
@media (hover: hover) {
.articleList__ttl a:hover {
  opacity: 1;
}
}

/* 記事カテゴリ（一覧・詳細の右側 共通）
------------------------------------------------------------*/
.articleSide {
  width: 280px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 56px;
  position: sticky;
  top: 140px;
}
.articleSide__cat-en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #821c22;
  letter-spacing: 0.04em;
}
.articleSide__cat-ttl {
  margin-top: 8px;
  padding-bottom: 16px;
  border-bottom: 1px solid #1a1a1a;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #1a1a1a;
}
.articleSide__cat-list li {
  border-bottom: 1px solid #dde0df;
}
.articleSide__cat-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 0;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
}
.articleSide__cat-list a .btn__arrow {
  margin-left: auto;
}
@media (hover: hover) {
.articleSide__cat-list a:hover {
  opacity: 1;
}
.articleSide__cat-list a:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.articleSide__cat-list a:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.articleSide__cat-list a.ac {
  font-weight: 700;
  color: #821c22;
}
.articleSide__cat-dot {
  width: 8px;
  height: 8px;
  flex-shrink: 0;
  border-radius: 50%;
}
.articleSide__cat-dot--accent {
  background: #821c22;
}
.articleSide__cat-dot--dark {
  background: #1a1a1a;
}

/* サロンお役立ち情報（記事詳細）
------------------------------------------------------------*/
.article {
  width: 100%;
}
.article__wrap {
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.article--news .article__ttl {
  font-size: clamp(2.8rem, 3rem + 0.5vw, 3.6rem);
  line-height: 1.4;
}
.article--news .article__tag {
  padding: 0 8px;
  line-height: 1.8;
}
.article__main {
  flex: 1 1 0;
  min-width: 0;
}
.article__head {
  padding-bottom: 24px;
  border-bottom: 1px solid #1a1a1a;
}
.article__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 16px;
}
.article__date {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #666666;
  opacity: 0.6;
}
.article__target {
  padding: 4px 12px;
  background: #821c22;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-weight: 700;
  color: #ffffff;
}
.article__tag {
  padding: 4px 12px;
  border: 1px solid #1a1a1a;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #1a1a1a;
}
.article__ttl {
  margin-top: 24px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.article__toc {
  margin-top: 48px;
  padding: 40px 48px;
  background: #f1f1f1;
  border-radius: 2px;
}
.article__toc-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1;
  color: #1a1a1a;
}
.article__toc-list {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #dde0df;
  display: flex;
  flex-direction: column;
  gap: 16px;
  counter-reset: toc;
}
.article__toc-list > li {
  counter-increment: toc;
}
.article__toc-list > li > a {
  padding-left: 40px;
  display: block;
  position: relative;
}
.article__toc-list > li > a::before {
  content: counter(toc, decimal-leading-zero);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.4;
  color: #821c22;
  position: absolute;
  top: 0;
  left: 0;
}
.article__toc-list > li ul {
  margin-top: 12px;
  padding-left: 40px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.article__toc-list > li ul a::before {
  content: "・";
}
.article__toc-list a {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
@media (hover: hover) {
.article__toc-list a:hover {
  opacity: 1;
}
}
.article__body {
  margin-top: 56px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #1a1a1a;
}
.article__body h2,
.article__body h3 {
  scroll-margin-top: 160px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 400;
  color: #1a1a1a;
}
.article__body h2 {
  margin-top: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
  position: relative;
}
.article__body h2::after {
  content: "";
  width: 64px;
  height: 1px;
  background: #821c22;
  position: absolute;
  bottom: -1px;
  left: 0;
}
.article__body h3 {
  padding-left: 16px;
  border-left: 2px solid #821c22;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
}
.article__imgs {
  display: flex;
  gap: 4%;
}
.article__imgs li {
  width: 48%;
  border-radius: 2px;
  overflow: hidden;
}
.article__imgs img {
  width: 100%;
  aspect-ratio: 2/1;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.article__link {
  color: #821c22;
  border-bottom: 1px solid currentColor;
}
@media (hover: hover) {
.article__link:hover {
  opacity: 1;
  border-bottom-color: transparent;
}
}
.article__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.article__list li {
  padding-left: 1.4em;
  position: relative;
}
.article__list li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #821c22;
  position: absolute;
  top: 1.1em;
  left: 4px;
}
.article__table table {
  width: 100%;
  border-collapse: collapse;
}
.article__table th,
.article__table td {
  padding: 16px 24px;
  border: 1px solid #dde0df;
  text-align: left;
  vertical-align: middle;
}
.article__table th {
  width: 24%;
  background: #f1f1f1;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 400;
}
.article__table td {
  background: #ffffff;
}
.article__pager {
  margin-top: 80px;
  padding-top: 40px;
  border-top: 1px solid #dde0df;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.article__pager a {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
}
@media (hover: hover) {
.article__pager a:hover {
  opacity: 1;
}
.article__pager a:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.article__pager a:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.article__pager-prev .btn__arrow {
  scale: -1 1;
}
.article__pager-list a {
  padding: 16px 48px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  color: #ffffff;
  white-space: nowrap;
}
@media (hover: hover) {
.article__pager-list a:hover {
  opacity: 0.6;
}
}

/* サポート（下層ページ本文・導入文＋写真）
------------------------------------------------------------*/
.support__intro {
  width: 100%;
}
.support__intro .inner {
  display: flex;
  align-items: center;
  gap: 4.1666666667vw;
}
.support__intro-img {
  width: 40%;
  flex-shrink: 0;
  aspect-ratio: 464/560;
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}
.support__intro-img-slider {
  width: 100%;
  height: 100%;
}
.support__intro-img-slider .slick-list,
.support__intro-img-slider .slick-track,
.support__intro-img-slider .slick-slide,
.support__intro-img-slider .slick-slide > div {
  height: 100%;
}
.support__intro-img-slider-item {
  width: 100%;
  height: 100%;
}
.support__intro-img-slider-item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.support__intro-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.support__intro-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(3.6rem, 4rem + 1vw, 4.8rem);
  color: #1a1a1a;
  letter-spacing: 0.05em;
  margin-bottom: 32px;
}
.support__intro-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}

/* サポート（下層ページ本文・資料を探す／故障・メンテナンス／よくあるご質問）
------------------------------------------------------------*/
.support__guide {
  width: calc(100% - 40px);
  margin: 0 auto;
  display: flex;
  gap: 2px;
}
.support__guide-item {
  width: 100%;
  flex: 1 1 0;
  min-width: 0;
  min-height: 33.3333333333vw;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 24px;
}
@media (hover: hover) {
.support__guide-item:hover {
  opacity: 1;
}
.support__guide-item:hover .support__guide-img img {
  transform: scale(1.05);
}
.support__guide-item:hover .support__guide-img::after {
  background: rgba(0, 0, 0, 0.5);
}
.support__guide-item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.support__guide-item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.support__guide-img {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.support__guide-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition-duration: 0.3s;
}
.support__guide-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition-duration: 0.3s;
  pointer-events: none;
}
.support__guide-cont {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 400px;
  background: #ffffff;
  border-radius: 2px;
  padding: 2.0833333333vw 1.6666666667vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25vw;
  text-align: center;
}
.support__guide .ttl {
  gap: 16px;
}
.support__guide-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  color: #1a1a1a;
}
.support__guide-lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
  text-align: left;
}

/* メンテナンス・修理受付（本文）
------------------------------------------------------------*/
.repair__block {
  padding: 64px 0;
  scroll-margin-top: 80px;
}
.repair__block .inner > .ttl {
  gap: 16px;
  margin-bottom: 56px;
  align-items: center;
  text-align: center;
}
.repair__block .repair__deco {
  font-family: "Cormorant Garamond", serif;
  font-size: min(10vw, 20rem);
  font-weight: 300;
  line-height: 1;
  color: #ffffff;
  letter-spacing: 0.02em;
  white-space: nowrap;
  position: absolute;
  bottom: -0.185em;
  left: 50%;
  transform: translateX(-50%);
  width: -moz-max-content;
  width: max-content;
  z-index: 0;
  pointer-events: none;
}
.repair__block .inner > .repair__ttl--deco {
  margin-bottom: 40px;
}
.repair__block .inner > .repair__ttl--deco::after {
  content: "";
  width: 1px;
  height: 40px;
  margin-top: 8px;
  background: #1a1a1a;
}
.repair__block--lead {
  padding-top: 64px;
}
.repair__block--lead .repair__lead {
  position: relative;
  overflow: hidden;
  padding: 80px 48px;
  background: #f1f1f1;
  text-align: center;
}
.repair__block--lead .repair__lead-deco {
  font-family: "Cormorant Garamond", serif;
  font-size: min(7vw, 112px);
  font-weight: 300;
  line-height: 1;
  color: #ffffff;
  white-space: nowrap;
  position: absolute;
  bottom: -0.185em;
  left: 50%;
  transform: translateX(-50%);
  width: -moz-max-content;
  width: max-content;
  z-index: 0;
  pointer-events: none;
}
.repair__block--lead .ttl {
  align-items: center;
  gap: 16px;
  margin-bottom: 56px;
  position: relative;
  z-index: 1;
}
.repair__block--lead .repair__body {
  position: relative;
  z-index: 1;
  align-items: center;
}
.repair__block--lead .repair__btns {
  width: 100%;
  justify-content: center;
}
.repair__block--dark {
  padding: 48px 0;
  background: #1a1a1a;
}
.repair__block--dark .ttl__en,
.repair__block--dark .ttl__jp,
.repair__block--dark .repair__txt {
  color: #ffffff;
}
.repair__block--dark .repair__link {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.repair__block--dark .repair__btn {
  background: #ffffff;
  border-color: #ffffff;
  color: #1a1a1a;
}
.repair__block--dark .repair__btn .btn__arrow {
  --arrow-icon: url(../../assets/img/common/i_arrow-btn.svg) !important;
}
.repair__block--gray .inner {
  padding: 64px calc(4vw + 48px);
  background: linear-gradient(#f8f8f8, #f8f8f8) no-repeat center/calc(100% - 8vw) 100%;
}
.repair__block--gray .repair__sub {
  justify-content: center;
  font-weight: 700;
  text-align: center;
}
.repair__block--box .inner {
  padding: 64px calc(4vw + 48px);
  position: relative;
}
.repair__block--box .inner::before {
  content: "";
  border: 1px solid #1a1a1a;
  position: absolute;
  inset: 0 4vw;
  pointer-events: none;
}
.repair__block--split {
  position: relative;
  overflow: hidden;
  background: #f1f1f1;
}
.repair__block--split .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 64px;
  position: relative;
  z-index: 1;
}
.repair__block--split .inner > .ttl {
  align-items: flex-start;
  margin-bottom: 0;
  text-align: left;
}
.repair__block--split .repair__btns {
  width: 50%;
  flex-direction: column;
  flex-shrink: 0;
}
.repair__block--split .repair__btns > .repair__btn {
  width: 100%;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.repair__block--last {
  padding-bottom: 64px;
}
.repair__body {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.repair__txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 2;
  color: #1a1a1a;
  text-align: center;
}
.repair__link {
  color: #821c22;
}
.repair__sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.repair__label {
  padding: 0 8px;
  background: #821c22;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 24px;
  color: #ffffff;
}
.repair__btns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
}
.repair__btns > .repair__btn {
  width: min(100%, 488px);
}
.repair__btns--anchor {
  gap: 24px;
}
.repair__btns--anchor .btn {
  flex: 1 1 0;
  min-width: 0;
  max-width: 400px;
  padding: 32px 48px;
  border: 1px solid #1a1a1a;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  line-height: 1.6;
}
.repair__btns--anchor .btn.btn--outline {
  border-color: #821c22;
}
.repair__btns--anchor .btn__arrow {
  rotate: 90deg;
}
.repair__btns--row > .repair__btn {
  width: calc((100% - 32px) / 3);
}
.repair__btn {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 24px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #ffffff;
  text-align: left;
}
.repair__btn .btn__arrow {
  --arrow-icon: url(../../assets/img/common/i_arrow-btn-wh.svg) !important;
}
@media (hover: hover) {
.repair__btn:hover {
  opacity: 1;
}
.repair__btn:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.repair__btn:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.repair__btn--center {
  justify-content: center;
  padding-right: 48px;
  padding-left: 48px;
  position: relative;
  text-align: center;
}
.repair__btn--center .btn__arrow {
  margin-top: -5px;
  position: absolute;
  top: 50%;
  right: 24px;
}
.repair__btn--line {
  background: #ffffff;
  color: #1a1a1a;
}
.repair__btn--movie {
  justify-content: flex-start;
}
.repair__btn--movie::before {
  content: "";
  --s: 10px;
  width: 10px;
  height: 12px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M0 0l10 6-10 6z' fill='%23821c22'/%3E%3C/svg%3E") 0 0/10px 12px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M0 0l10 6-10 6z' fill='%23821c22'/%3E%3C/svg%3E") -10px 0/10px 12px no-repeat;
}
@media (hover: hover) {
.repair__btn--movie:hover::before {
  animation: iconSlide 0.8s linear forwards;
}
}
.repair__apply {
  position: relative;
  overflow: hidden;
  padding: 112px 160px;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 2px;
}
.repair__apply-deco {
  width: 100%;
  font-family: "Cormorant Garamond", serif;
  font-size: 5.4166666667vw;
  font-weight: 300;
  color: #dde0df;
  letter-spacing: 0.04em;
  white-space: nowrap;
  text-align: center;
  position: absolute;
  top: 2.0833333333vw;
  left: 50%;
  z-index: 2;
  pointer-events: none;
  transform: translateX(-50%);
}
.repair__apply-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.repair__apply-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.repair__apply-cont {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding: 56px 40px;
  background: #f8f8f8;
  box-shadow: 0 4px 76px rgba(159, 159, 159, 0.24);
  border-radius: 2px;
  position: relative;
  z-index: 1;
}
.repair__apply-cont .ttl__jp {
  text-align: center;
}
.repair__apply-no {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1;
}
.repair__apply-no::before, .repair__apply-no::after {
  content: "";
  width: 32px;
  height: 1px;
  background: currentColor;
}
.repair__heading--line {
  width: 100%;
  padding: 16px 0;
  border-top: 1px solid #821c22;
  border-bottom: 1px solid #821c22;
  color: #821c22;
}
.repair__cards {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.repair__cards > * {
  width: calc((100% - 48px) / 4);
}
.repair__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px 24px;
  background: #f8f8f8;
  border-radius: 2px;
  text-align: center;
}
.repair__card .repair__btn {
  margin-top: auto;
}
.repair__card .btn__arrow {
  rotate: 90deg;
}
.repair__card-num {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  line-height: 1;
  letter-spacing: 0.05em;
  color: #821c22;
}
.repair__card-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.repair__card-txt {
  margin-bottom: 8px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.8;
  color: #1a1a1a;
  text-align: left;
}
.repair__list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.repair__list > * {
  width: calc((100% - 32px) / 3);
}
.repair__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: #f8f8f8;
  border-radius: 2px;
}
.repair__item .repair__btn {
  margin-top: auto;
}
.repair__item-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  font-weight: 700;
  line-height: 1.5;
  color: #1a1a1a;
  text-align: center;
}
.repair__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.repair__groups > * {
  width: calc((100% - 16px) / 2);
}
.repair__group {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: #f8f8f8;
  border-radius: 2px;
}
.repair__group-ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  font-weight: 700;
  line-height: 1.5;
  color: #1a1a1a;
  text-align: center;
}
.repair__group-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.repair__panel {
  padding: 40px;
  background: #f8f8f8;
  border-radius: 2px;
}
.repair__panel--line {
  background: none;
  border: 1px solid #1a1a1a;
}
.repair__price {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 32px 40px;
}
.repair__nb {
  display: inline-block;
}
.repair__price-main {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  font-weight: 700;
  line-height: 1.5;
  color: #1a1a1a;
}
.repair__price-sub {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.repair__tbl {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.repair__table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #1a1a1a;
}
.repair__table th,
.repair__table td {
  padding: 16px 24px;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
  text-align: left;
}
.repair__table th {
  background: #f8f8f8;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 700;
}
.repair__table th:last-child,
.repair__table td:last-child {
  width: 30%;
  white-space: nowrap;
}

/* 故障診断・標準使用期間（モーダルの中身。START → 確認 → NOなら右の対応／YESなら下の次の確認）
------------------------------------------------------------*/
.diag {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.diag__label {
  margin-bottom: 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #821c22;
}
.diag__start, .diag__q, .diag__a-item {
  padding: 24px;
  background: #f8f8f8;
  border-radius: 2px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.diag__start {
  border-left: 3px solid #1a1a1a;
}
.diag__step {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  position: relative;
}
.diag__q {
  width: 40%;
  flex-shrink: 0;
  border-left: 3px solid #1a1a1a;
  position: relative;
  z-index: 1;
}
.diag__tag {
  display: inline-block;
  padding: 2px 12px;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-weight: 700;
  line-height: 1.6;
}
.diag__yes {
  height: 72px;
  margin: -16px 0;
  padding-left: 44px;
  display: flex;
  align-items: center;
  position: relative;
}
.diag__yes .diag__tag {
  background: #1a1a1a;
  color: #ffffff;
}
.diag__yes::before {
  content: "";
  width: 7px;
  background: url(../../assets/img/common/i_arrow-btn-down.svg) center bottom/7px 17px no-repeat, linear-gradient(#1a1a1a, #1a1a1a) left top/1px calc(100% - 16px) no-repeat;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 24px;
}
.diag__step::before {
  content: "";
  width: 1px;
  background: #1a1a1a;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 24px;
}
.diag__step:last-of-type::before {
  display: none;
}
.diag__start + .diag__yes {
  height: 40px;
}
.diag__no {
  width: 120px;
  height: 56px;
  flex-shrink: 0;
  margin-top: 16px;
  position: relative;
}
.diag__no .diag__tag {
  background: #ffffff;
  color: #1a1a1a;
}
.diag__no::before {
  content: "";
  height: 7px;
  background: url(../../assets/img/common/i_arrow-btn.svg) right bottom/17px 7px no-repeat, linear-gradient(#1a1a1a, #1a1a1a) left bottom/calc(100% - 16px) 1px no-repeat;
  position: absolute;
  top: 38px;
  right: 0;
  left: 0;
}
.diag__arrow {
  margin-left: 4px;
  display: inline-block;
}
.diag__a {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.diag__result {
  font-weight: 700;
}
.diag__a-item {
  padding: 16px 24px;
  background: #ffffff;
  border: 1px solid #1a1a1a;
}
.diag__table-wrap {
  width: 100%;
  overflow-x: auto;
}
.diag__table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  border-top: 1px solid #1a1a1a;
}
.diag__table th,
.diag__table td {
  padding: 16px 24px;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  color: #1a1a1a;
  text-align: left;
  vertical-align: top;
}
.diag__table th {
  background: #f8f8f8;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 700;
}
.diag__table td:first-child {
  width: 24%;
  font-weight: 700;
}
.diag__table--life {
  min-width: 0;
  border-top: 0;
}
.diag__table--life td:first-child {
  width: auto;
  font-weight: 400;
}
.diag__table--life th:not(:first-child),
.diag__table--life td:not(:first-child) {
  width: 24%;
}
.diag__note {
  margin-top: 16px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.8;
  color: #666666;
}
.diag__movies {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* お知らせ（一覧）
------------------------------------------------------------*/
.newsList {
  width: 100%;
}
.newsList__wrap {
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.newsList__list {
  flex: 1 1 0;
  min-width: 0;
}
.newsList__list > li:last-child .newsList__item {
  border-bottom: 0;
}
.newsList__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px 40px;
  padding: 32px 24px;
  border-bottom: 1px solid #dde0df;
}
@media (hover: hover) {
.newsList__item:hover {
  opacity: 1;
}
.newsList__item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.newsList__item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.newsList__meta {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 16px;
}
.newsList__date {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #666666;
}
.newsList__cat {
  position: relative;
  z-index: 2;
  padding: 0 8px;
  border: 1px solid #1a1a1a;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  line-height: 1.8;
  color: #1a1a1a;
  white-space: nowrap;
}
.newsList__ttl {
  flex: 1 1 0;
  min-width: 0;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #1a1a1a;
}
.newsList__ttl a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
@media (hover: hover) {
.newsList__ttl a:hover {
  opacity: 1;
}
}

/* 製品情報（シャンプーユニット・ラインアップ）
------------------------------------------------------------*/
.lineup .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}
.lineup .ttl {
  align-items: center;
  gap: 16px;
  text-align: center;
}
.lineup__list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 48px 32px;
}
.lineup__list > li {
  width: calc((100% - 64px) / 3);
}
.lineup__item {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #f8f8f8;
  border-radius: 2px;
  overflow: hidden;
}
.lineup__img {
  aspect-ratio: 340/198;
  overflow: hidden;
}
.lineup__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition-duration: 0.3s;
}
.lineup__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 32px;
}
.lineup__name {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-align: center;
  color: #1a1a1a;
}
.lineup__tag {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #821c22;
}
.lineup__txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.8;
  color: #1a1a1a;
}
.lineup__btn {
  margin-top: auto;
  align-self: center;
  gap: 16px;
  padding: 8px 16px 8px 24px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}
@media (hover: hover) {
.lineup__item:hover {
  opacity: 1;
}
.lineup__item:hover .lineup__img img {
  transform: scale(1.05);
}
.lineup__item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.lineup__item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}

/* 製品情報（AMALFI 製品一覧）
------------------------------------------------------------*/
.shop {
  padding-top: 80px;
}
.shop .inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.shop__lead {
  max-width: 880px;
  margin: 0 auto;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 2;
  text-align: center;
  color: #1a1a1a;
}
.shop__count {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  text-align: right;
  color: #666666;
}
.shop__list {
  display: flex;
  flex-wrap: wrap;
  gap: 56px 24px;
}
.shop__list > li {
  width: calc((100% - 72px) / 4);
}
.shop__item {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (hover: hover) {
.shop__item:hover {
  opacity: 1;
}
.shop__item:hover .shop__img img {
  transform: scale(1.05);
}
.shop__item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.shop__item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.shop__btn {
  margin-top: auto;
  align-self: flex-end;
  gap: 16px;
  padding: 0;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-weight: 600;
  color: #1a1a1a;
}
.shop__img {
  aspect-ratio: 1;
  position: relative;
  overflow: hidden;
  background: #f8f8f8;
}
.shop__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition-duration: 0.3s;
}
.shop__badge {
  padding: 0 8px;
  background: #821c22;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  font-weight: 700;
  line-height: 24px;
  color: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
}
.shop__name {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.6;
  text-align: center;
  color: #1a1a1a;
}
.shop__price {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  text-align: center;
  color: #1a1a1a;
}
.shop__price--sale {
  color: #821c22;
}
.shop__price--sale s {
  margin-left: 8px;
  color: #666666;
}
.shop__back {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

/* 製品詳細（共通：セクション・見出し）
------------------------------------------------------------*/
.productSec {
  padding: 96px 0;
}
.productSec .inner {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.productSec .ttl {
  align-items: center;
  gap: 16px;
  text-align: center;
}
.productSec--gray {
  background: #f8f8f8;
}
.productSec__btn {
  display: flex;
  justify-content: center;
}

/* 製品詳細（製品の紹介・2タイプの写真）
------------------------------------------------------------*/
.productHero {
  padding: 80px 0 64px;
}
.productHero .inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.productHero__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
}
.productHero__lead {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  color: #1a1a1a;
}
.productHero__list {
  display: flex;
  gap: 32px;
}
.productHero__list > li {
  width: calc((100% - 32px) / 2);
}
.productHero__img {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: #f8f8f8;
}
.productHero__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.productHero__cap {
  margin-top: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  text-align: center;
  color: #1a1a1a;
}
.productHero__note {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  text-align: right;
  color: #666666;
}

/* 製品詳細（アマルフィシリーズの特徴）
------------------------------------------------------------*/
.feature__body {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.feature__video {
  display: block;
  width: 55%;
  flex-shrink: 0;
  aspect-ratio: 16/9;
  position: sticky;
  top: 100px;
  overflow: hidden;
  background: #1a1a1a;
}
.feature__video img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition-duration: 0.3s;
}
@media (hover: hover) {
.feature__video:hover {
  opacity: 1;
}
.feature__video:hover img {
  transform: scale(1.05);
}
}
.feature__video .download__movie-play {
  background: #1a1a1a;
}
.feature__video .download__movie-play::after {
  border-left-color: #821c22;
}
.feature__list {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.feature__list > li {
  width: 100%;
}
.feature__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 24px 32px;
  background: #ffffff;
  border-radius: 2px;
}
.feature__label {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #821c22;
}
.feature__num {
  margin-left: 4px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  font-weight: 500;
  line-height: 1;
}
.feature__name {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  color: #1a1a1a;
}
.feature__btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  border-radius: 2px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #ffffff;
  white-space: nowrap;
}
@media (hover: hover) {
.feature__btn:hover {
  opacity: 1;
}
.feature__btn:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.feature__btn:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}

/* 製品詳細（特徴のモーダルの中身）
------------------------------------------------------------*/
.featureModal {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 32px 24px;
}
.featureModal__img {
  flex: 1 1 0;
  aspect-ratio: 5/6;
  overflow: hidden;
}
.featureModal__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.featureModal--single .featureModal__img {
  aspect-ratio: 3/2;
}
.featureModal__txt {
  order: -1;
  flex: 0 0 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
.featureModal__head {
  display: flex;
  align-items: center;
  gap: 24px;
}
.featureModal__name {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.featureModal__num {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  font-weight: 300;
  line-height: 1;
  color: #821c22;
}
.featureModal__en {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #821c22;
}
.featureModal__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.featureModal__lead {
  margin-top: 24px;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 2;
  text-align: left;
  color: #1a1a1a;
}

/* 製品詳細（仕様・価格）
------------------------------------------------------------*/
.spec {
  padding: 80px 0;
}
.spec .inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.spec__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding-bottom: 16px;
  text-align: center;
  border-bottom: 1px solid #dde0df;
}
.spec__tab {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.05em;
  color: #821c22;
}
.spec__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.4;
  color: #1a1a1a;
}
.spec__sub-ttl {
  display: block;
  margin-top: 8px;
  font-family: "Noto Sans JP", "游ゴシック体", "Yu Gothic", sans-serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.spec__body {
  display: flex;
  align-items: flex-start;
  gap: 3.3333333333vw;
}
.spec__visual {
  width: 45%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 140px;
}
.spec__main {
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
  background: #f8f8f8;
}
.spec__main img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.spec__arrow {
  width: 40px;
  height: 40px;
  padding: 0;
  background: #1a1a1a;
  border: 0;
  border-radius: 2px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  overflow: hidden;
}
.spec__arrow::before, .spec__arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../../assets/img/common/i_arrow-btn-wh.svg) no-repeat center/17px 7px;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.spec__arrow::after {
  translate: -100% 0;
}
@media (hover: hover) {
.spec__arrow:hover {
  opacity: 1;
}
.spec__arrow:hover::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.spec__arrow:hover::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.spec__arrow--prev {
  left: 16px;
  transform: scaleX(-1);
}
.spec__arrow--next {
  right: 16px;
}
.spec__color {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  text-align: center;
  color: #1a1a1a;
}
.spec__thumbs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
}
.spec__thumb {
  width: 64px;
  height: 64px;
  padding: 0;
  background: none;
  border: 1px solid transparent;
  display: block;
  overflow: hidden;
}
.spec__thumb.ac {
  border-color: #1a1a1a;
}
.spec__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.spec__btns {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
}
.spec__btns .btn {
  padding: 16px 32px;
}
.spec__info {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.spec__table {
  width: 100%;
  border-collapse: collapse;
}
.spec__table th,
.spec__table td {
  padding: 16px;
  border-bottom: 1px solid #dde0df;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.8;
  text-align: left;
  vertical-align: top;
  color: #1a1a1a;
}
.spec__table th {
  width: 28%;
  background: #f8f8f8;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-weight: 700;
}
.spec__label {
  display: inline-block;
  margin-bottom: 12px;
  padding: 0 12px;
  background: #1a1a1a;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 24px;
  letter-spacing: 0.05em;
  color: #ffffff;
}
.spec__feat-txt {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.9;
  color: #1a1a1a;
}
.spec__sub {
  margin-bottom: 16px;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  color: #1a1a1a;
}
.spec__ptable {
  width: 100%;
  border-collapse: collapse;
}
.spec__ptable thead th {
  padding: 12px 16px;
  background: #1a1a1a;
  border: 1px solid #1a1a1a;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  text-align: center;
  color: #ffffff;
}
.spec__ptable thead th:first-child {
  border-right-color: #ffffff;
}
.spec__ptable td {
  padding: 16px;
  border: 1px solid #1a1a1a;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.7;
  color: #1a1a1a;
}
.spec__ptable td:last-child {
  width: 30%;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  text-align: center;
  white-space: nowrap;
}
.spec__foot-list {
  display: flex;
  gap: 16px;
}
.spec__foot-list > li {
  flex: 1 1 0;
  min-width: 0;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  text-align: center;
  color: #1a1a1a;
}
.spec__foot-img {
  aspect-ratio: 560/300;
  margin-bottom: 8px;
  overflow: hidden;
}
.spec__foot-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.spec__note {
  margin-top: 12px;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  color: #666666;
}
.spec__chair {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 32px;
  border-top: 1px solid #dde0df;
}
.spec__chair-img {
  width: 140px;
  flex-shrink: 0;
  aspect-ratio: 1;
  overflow: hidden;
}
.spec__chair-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.spec__chair-txt {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #1a1a1a;
}
.spec__chair-name {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.05em;
}
.spec__chair-price span {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  font-weight: 700;
}

/* 製品詳細（カラーバリエーション）
------------------------------------------------------------*/
.colors__num {
  display: block;
  margin-top: 8px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #821c22;
}
.colors__list {
  display: flex;
  flex-wrap: wrap;
  gap: 32px 16px;
}
.colors__list > li {
  width: calc((100% - 144px) / 10);
}
.colors__img {
  aspect-ratio: 1;
  overflow: hidden;
}
.colors__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.colors__name {
  margin-top: 8px;
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  line-height: 1.5;
  text-align: center;
  word-break: break-all;
  color: #1a1a1a;
}

/* 製品詳細（オプション）
------------------------------------------------------------*/
.option__list {
  display: flex;
  gap: 40px;
}
.option__list > li {
  width: calc((100% - 40px) / 2);
}
.option__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  padding: 40px 32px;
  background: #ffffff;
  border-radius: 2px;
  text-align: center;
}
.option__name {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  font-weight: 700;
  color: #1a1a1a;
}
.option__img {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.option__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.option__note {
  font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  line-height: 1.8;
  text-align: left;
  color: #666666;
}
.option__txt {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  line-height: 1.9;
  text-align: left;
  color: #1a1a1a;
}
.option__price {
  margin-top: auto;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #1a1a1a;
}
.option__price span {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  font-weight: 700;
}

/* 製品詳細（寸法図）
------------------------------------------------------------*/
.dimension .btn {
  border: 0;
  cursor: pointer;
}
.dimension__list {
  display: flex;
  gap: 40px;
}
.dimension__list > li {
  width: calc((100% - 40px) / 2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.dimension__img {
  display: block;
  width: 100%;
  aspect-ratio: 800/560;
  padding: 0;
  background: none;
  border: 1px solid #dde0df;
  cursor: zoom-in;
  overflow: hidden;
}
.dimension__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* ショールーム詳細（ギャラリー写真のモーダル）
------------------------------------------------------------*/
.galleryModal__view {
  position: relative;
}
.galleryModal__img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 280px);
  margin: 0 auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.galleryModal__arrow {
  width: 40px;
  height: 40px;
  padding: 0;
  background: #1a1a1a;
  border: 0;
  border-radius: 2px;
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  overflow: hidden;
}
.galleryModal__arrow::before, .galleryModal__arrow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../../assets/img/common/i_arrow-btn-wh.svg) no-repeat center/17px 7px;
  animation-fill-mode: forwards;
  animation-duration: 0.6s;
}
.galleryModal__arrow::after {
  translate: -100% 0;
}
@media (hover: hover) {
.galleryModal__arrow:hover {
  opacity: 1;
}
.galleryModal__arrow:hover::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.galleryModal__arrow:hover::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.galleryModal__arrow--prev {
  left: 0;
  transform: scaleX(-1);
}
.galleryModal__arrow--next {
  right: 0;
}
.galleryModal__count {
  margin-top: 16px;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  letter-spacing: 0.05em;
  text-align: center;
  color: #821c22;
}

#modal-gallery.is-single .galleryModal__arrow,
#modal-gallery.is-single .galleryModal__count {
  display: none;
}

/* 製品詳細（寸法図のモーダル）
------------------------------------------------------------*/
.dimensionModal img {
  width: 100%;
  height: auto;
  display: block;
}

/* 製品詳細（関連商品）
------------------------------------------------------------*/
.related__list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.related__list > li {
  width: calc((100% - 16px) / 2);
}
.related__item {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 24px 32px;
  background: #ffffff;
  border-radius: 2px;
}
@media (hover: hover) {
.related__item:hover {
  opacity: 1;
}
.related__item:hover .related__img img {
  transform: scale(1.05);
}
.related__item:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.related__item:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.related__txt {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.related__name {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 500;
  line-height: 1.3;
  color: #1a1a1a;
}
.related__jp {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.5;
  color: #1a1a1a;
}
.related__btn {
  margin-top: 8px;
  gap: 12px;
  padding: 4px 16px;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
}
.related__img {
  width: 40%;
  max-width: 140px;
  flex-shrink: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.related__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition-duration: 0.3s;
}

/* メディアクエリ（$inc13 → 960px → $tab → $sp の順でまとめる）
------------------------------------------------------------*/
@media screen and (max-width: 1366px) {
  .products__txt {
    max-width: 400px;
  }
  .factory__flow-item {
    padding-right: 32px;
    padding-left: 32px;
    letter-spacing: 0.16em;
  }
  .factory__flow-no {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .factory__flow-en {
    margin-right: -0.16em;
  }
}
@media screen and (max-width: 1440px) {
  .kv {
    padding-top: 60px;
  }
  .factory__nav {
    top: 60px;
  }
  .factory__sec {
    scroll-margin-top: 120px;
  }
  .article__body h2,
  .article__body h3 {
    scroll-margin-top: 80px;
  }
  .download__tab {
    top: 60px;
  }
  .download__index {
    top: 158px;
  }
  .download__group {
    scroll-margin-top: 166px;
  }
  .message__vision-heading,
  .message__vision-mark {
    top: 60px;
  }
}
@media screen and (max-width: 1080px) {
  .factory__imgs--prototype,
  .factory__imgs--salon {
    gap: 8px;
  }
  .factory__imgs--prototype .factory__arrow,
  .factory__imgs--salon .factory__arrow {
    flex: 0 0 40px !important;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .factory__imgs--prototype .factory__arrow {
    padding-bottom: calc(3.6em + 16px);
  }
  .factory__imgs--prototype .factory__cap {
    min-height: 3.6em;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .factory__imgs--salon .factory__cap {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    white-space: nowrap;
  }
  .factory__flow > li {
    width: calc((100% - 8px) / 2);
  }
  .support__guide {
    max-width: none;
    margin: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    flex-direction: column;
    gap: 2px;
    margin: 0 auto;
  }
  .support__guide-item {
    flex: none;
    min-height: 320px;
  }
  .support__guide-cont {
    padding: 40px 32px;
    gap: 24px;
    max-width: 80%;
  }
}
@media screen and (max-width: 1100px) {
  .showroomDetail__steps-ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .repair__cards > * {
    width: calc((100% - 16px) / 2);
  }
}
@media screen and (max-width: 960px) {
  .products {
    padding: 80px 24px;
  }
  .products__mark {
    width: 320px;
    height: auto;
    top: -30px;
    left: -40px;
  }
  .products__cont {
    flex-direction: column;
    gap: 48px;
  }
  .products__txt {
    max-width: 100%;
    gap: 24px;
    position: relative;
    top: 0;
  }
  .products__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .products__list {
    width: 100%;
    max-width: 100%;
    border-radius: 2px;
  }
  .products__list-cont {
    padding: 24px;
  }
}
@media screen and (max-width: 960px) {
  .showroomList__btn {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .showroomDetail__steps {
    gap: 32px;
  }
  .showroomDetail__steps > li {
    padding: 32px 20px;
  }
  .showroomDetail__steps > li:not(:last-child)::after {
    right: -28px;
  }
  .showroomDetail__steps-ttl {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .showroomList .linkBnr {
    aspect-ratio: 1128/720;
  }
}
@media screen and (max-width: 834px) {
  .kv__catch {
    font-size: clamp(4.4rem, 4.8rem + 1.6vw, 6.4rem);
  }
  .kv__news {
    width: calc(100% - 48px);
    min-width: initial;
    left: 50%;
    right: initial;
    transform: translateX(-50%);
    border-right: 1px solid #ffffff;
    gap: 8px;
    flex-direction: column;
    bottom: 15%;
    padding: 8px;
  }
  .kv__news-line {
    height: 1px;
    width: 16px;
  }
  .kv__news-body {
    gap: 8px;
  }
  .kv__news-date {
    font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  }
  .kv__news-txt {
    max-width: initial;
    font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
    white-space: normal;
  }
  .msg {
    margin-top: 0;
    padding: 64px 24px;
  }
  .msg__bg {
    background-attachment: scroll;
    -webkit-mask-image: initial;
            mask-image: initial;
  }
  .msg__cont {
    flex-direction: column;
    align-items: flex-start;
    gap: 48px;
    padding-left: 0;
  }
  .msg__txt {
    max-width: 100%;
    gap: 32px;
  }
  .msg__body {
    line-height: 1.9;
  }
  .msg__img {
    width: 100%;
    max-width: clamp(180px, 40vw, 320px);
    height: auto;
    aspect-ratio: 448/480;
    margin: 0 auto;
  }
  .msg__img-main {
    width: 100%;
    height: 80%;
  }
  .msg__img-sub {
    width: 32%;
    height: auto;
    aspect-ratio: 296/320;
    right: -10%;
    bottom: 2%;
    -o-object-position: top;
       object-position: top;
  }
  .msg__img .msg__deco {
    width: clamp(80px, 10vw, 160px);
    height: auto;
    aspect-ratio: 240/240;
    left: -8%;
    top: -8%;
    z-index: 2;
  }
  .craft {
    padding: 80px 0 0;
    gap: 48px;
  }
  .craft__cont {
    max-width: 100%;
    gap: 24px;
    padding: 0 24px;
  }
  .craft__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .craft__wrap {
    flex-direction: column;
  }
  .craft__box {
    width: 100%;
  }
  .craft__box-cont {
    flex-wrap: wrap;
    gap: 16px;
    padding: 24px;
    min-height: 0;
  }
  .stories {
    padding: 80px 0;
    gap: 48px;
  }
  .stories__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 0 24px;
  }
  .stories__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .stories__item:not(:last-child) {
    margin-right: 24px;
  }
  .stories__item-img img {
    height: 220px;
  }
  .stories__cont {
    top: 220px;
  }
  .showroom {
    padding: 80px 24px;
  }
  .showroom__cont {
    flex-direction: column;
    gap: 48px;
  }
  .showroom__head {
    max-width: 100%;
    gap: 24px;
  }
  .showroom__catch {
    font-size: clamp(4rem, 4.4rem + 1.2vw, 5.6rem);
  }
  .showroom__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .showroom__visual {
    width: 100%;
  }
  .showroom__map {
    width: 80%;
    margin: 0 auto;
  }
  .showroom__list {
    flex-wrap: wrap;
    gap: 32px 16px;
  }
  .showroom__list li {
    width: calc((100% - 32px) / 3);
    flex: 0 0 auto;
  }
  .showroom__list a p {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .company {
    padding: 80px 24px;
    flex-direction: column-reverse;
    gap: 40px;
  }
  .company__txt {
    max-width: 100%;
    gap: 24px;
  }
  .company__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .company__img {
    width: 100%;
  }
  .support {
    padding: 80px 24px;
  }
  .support__deco--l {
    font-size: 64px;
    top: 18px;
  }
  .support__deco--m {
    display: none;
  }
  .support__cont {
    width: 100%;
    padding: 32px 0 0;
    gap: 0;
  }
  .support__ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .support__list {
    flex-direction: column;
  }
  .support__list li {
    width: 100%;
    padding: 24px;
    gap: 8px;
  }
  .support__list li:not(:last-child) {
    border-right: 0;
    border-bottom: 1px solid #dde0df;
  }
  .support__list li .ttl {
    gap: 8px;
  }
  .cta {
    padding: 80px 24px;
  }
  .cta__bg-col:nth-child(n+4) {
    display: none;
  }
  .cta__catch {
    font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
  }
  .cta__txt {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .cta__wrap {
    flex-direction: column;
    gap: 24px;
  }
  .cta__box {
    padding: 32px 24px;
  }
  .pageHead {
    height: 480px;
    padding: 60px 24px 32px;
  }
  .pageHead__ttl {
    padding-left: 0;
  }
  .craftsmanship {
    padding: 80px 24px;
    gap: 40px;
  }
  .craftsmanship__feature {
    flex-direction: column;
    gap: 32px;
  }
  .craftsmanship__feature--reverse {
    flex-direction: column;
  }
  .craftsmanship__feature-img {
    width: 100%;
  }
  .craftsmanship__feature-txt {
    padding-right: 0;
  }
  .craftsmanship__feature--reverse .craftsmanship__feature-txt {
    padding-left: 0;
  }
  .company-feature-list {
    padding: 80px 24px;
    gap: 40px;
  }
  .company-feature-list__item {
    flex-direction: column;
    gap: 32px;
  }
  .company-feature-list__item--reverse {
    flex-direction: column;
  }
  .company-feature-list__item-img {
    width: 100%;
  }
  .company-feature-list__item-txt {
    padding-right: 0;
  }
  .company-feature-list__item-txt .ttl {
    gap: 8px;
  }
  .company-feature-list__item-txt .btn {
    align-self: center;
  }
  .company-feature-list__item--reverse .company-feature-list__item-txt {
    padding-left: 0;
  }
  .productsIntro {
    padding: 80px 0 32px;
  }
  .productsIntro .inner {
    gap: 32px;
  }
  .productsIntro__ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .productsIntro__lead {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .productsIntro__lead br {
    display: none;
  }
  .productsList {
    padding: 0 24px 80px;
    gap: 56px;
  }
  .productsList__nav.factory__nav {
    width: 100%;
  }
  .productsList__item {
    flex-direction: column;
    gap: 32px;
    scroll-margin-top: 180px;
  }
  .productsList__item--reverse {
    flex-direction: column;
  }
  .productsList__item-img {
    width: 100%;
  }
  .productsList__item-txt {
    gap: 24px;
    padding-right: 0;
  }
  .productsList__item-txt .ttl {
    gap: 8px;
  }
  .productsList__item-txt .btn {
    align-self: center;
  }
  .productsList__item--reverse .productsList__item-txt {
    padding-left: 0;
  }
  .productsList__item-num {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  /* 沿革（本文・写真なしのテキスト主体ページ。サイトの見出しフォント（游明朝）と本文サイズに揃える）
  ------------------------------------------------------------*/
  .history__bg {
    background: #1a1a1a -webkit-image-set(url(../../assets/img/company/history_intro_tab.jpg) 1x, url(../../assets/img/company/history_intro_tab@2x.jpg) 2x) center/cover no-repeat;
    background: #1a1a1a image-set(url(../../assets/img/company/history_intro_tab.jpg) 1x, url(../../assets/img/company/history_intro_tab@2x.jpg) 2x) center/cover no-repeat;
  }
  .history .historyCont {
    gap: 64px;
  }
  .history__intro-ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .history__intro-lead {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    line-height: 2;
    max-width: initial;
  }
  .history {
    max-width: 100%;
    padding-left: 24px;
    padding-right: 24px;
    gap: 48px;
    margin-top: 0;
  }
  .history__bg {
    background-attachment: scroll;
    -webkit-mask-image: initial;
            mask-image: initial;
  }
  .history__era {
    flex-direction: column;
    gap: 24px;
  }
  .history__era-desc {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .history__era-yr {
    width: 100%;
    position: static;
  }
  .history__era-body {
    gap: 16px;
  }
  .history__timeline {
    gap: 24px;
  }
  .outline .inner {
    gap: 80px;
  }
  .outline__profile, .outline__access {
    gap: 40px;
  }
  .outline__location {
    flex-direction: column;
    gap: 24px;
  }
  .outline__location + .outline__location {
    margin-top: 40px;
  }
  .outline__location-img, .outline__location-map {
    width: 100%;
  }
  .support__intro {
    padding: 80px 0;
  }
  .support__intro .inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
  }
  .support__intro-img {
    width: 100%;
  }
  .articleList__wrap {
    flex-direction: column;
    gap: 32px;
  }
  .articleList__list {
    width: 100%;
  }
  .articleList__date {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .articleList__ttl {
    margin-top: 8px;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .articleList__wrap .articleSide {
    order: -1;
  }
  .showroomDetail__gallery > li {
    width: calc((100% - 24px) / 2);
  }
  .newsList__wrap {
    flex-direction: column;
    gap: 32px;
  }
  .newsList__wrap .articleSide {
    order: -1;
  }
  .articleSide {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 32px 40px;
    position: static;
  }
  .articleSide__cat {
    flex: 1 1 240px;
  }
  .article__wrap {
    flex-direction: column;
    gap: 56px;
  }
  .article__main {
    width: 100%;
  }
  .article__wrap .articleSide {
    order: 1;
  }
  .article__head {
    padding-bottom: 16px;
  }
  .article__toc {
    margin-top: 32px;
    padding: 32px;
  }
  .article__body {
    margin-top: 40px;
  }
  .article__pager {
    margin-top: 64px;
  }
  .factory__sec {
    padding: 56px 0;
    gap: 24px;
  }
  .factory__sec--lead {
    padding-bottom: 24px;
  }
  .factory__sec--sub {
    margin-top: -32px;
    padding-top: 24px;
  }
  .factory__sec--first {
    padding-top: 0;
  }
  .factory__sec--last {
    padding-bottom: 0;
  }
  .factory__loop {
    gap: 0;
    padding-top: 16px;
  }
  .factory__loop::before {
    display: none;
  }
  .factory__loop::after {
    content: "01 現場の声へ戻る";
    margin-top: 56px;
    padding: 12px 24px;
    border: 1px dashed rgba(130, 28, 34, 0.7);
    border-radius: 999px;
    font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    color: #821c22;
    align-self: center;
  }
  .factory__loop-row {
    flex-direction: column;
    gap: 64px;
  }
  .factory__loop-row--back {
    flex-direction: column;
    margin-top: 64px;
  }
  .factory__loop-item {
    flex: none;
    width: 100%;
  }
  .factory__loop-item:not(:last-child)::after, .factory__loop-item:last-child::after {
    content: "";
    width: 24px;
    height: 10px;
    background: url(../../assets/img/common/i_arrow-btn-red.svg) no-repeat center/contain;
    position: absolute;
    top: auto;
    right: calc(50% - 12px);
    bottom: -29px;
    left: auto;
    transform: rotate(90deg);
  }
  .factory__loop-row--back .factory__loop-item:not(:last-child)::after {
    right: calc(50% - 12px);
    left: auto;
    transform: rotate(90deg);
  }
  .factory__txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .factory__split {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }
  .factory__img--split {
    flex: none;
    width: 100%;
  }
  .factory__imgs--craft > li, .factory__imgs--detail > li {
    width: calc((100% - 24px) / 2);
  }
  .factory__imgs--people {
    flex-wrap: wrap;
    gap: 24px;
  }
  .factory__imgs--people > li {
    flex: none;
    width: calc((100% - 24px) / 2);
  }
  .privacy,
  .terms {
    padding-bottom: 80px;
  }
  .privacy .inner,
  .terms .inner {
    gap: 48px;
  }
  .catalog__ttl {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .catalog__wrap {
    gap: 40px;
  }
  .catalog__cover {
    max-width: 240px;
  }
  .catalog__txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .reserveForm {
    padding-bottom: 80px;
  }
  .reserveForm .inner {
    gap: 48px;
  }
  .reserveForm__lead-txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .catalog .inner {
    gap: 24px;
  }
  .showroomDetail .inner {
    gap: 64px;
  }
  .showroomDetail__lead-txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .showroomDetail__steps {
    flex-direction: column;
    gap: 48px;
  }
  .showroomDetail__steps > li:not(:last-child)::after {
    top: auto;
    right: calc(50% - 12px);
    bottom: -29px;
    transform: rotate(90deg);
  }
  .showroomList .inner {
    gap: 56px;
  }
  .showroomList .linkBnr {
    aspect-ratio: auto;
  }
  .showroomList .linkBnr__cont {
    padding-bottom: 24px;
  }
  .showroomList__lead-txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .showroomList__list {
    gap: 48px 24px;
  }
  .showroomList__list > li {
    width: calc((100% - 24px) / 2);
  }
  .showroomList__name {
    margin-top: 16px;
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .faq .inner {
    gap: 56px;
  }
  .faq__lead-txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .faq__ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .faq__q {
    padding: 16px;
  }
  .faq__q-txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .faq__a {
    padding-left: 16px;
  }
  .download .inner {
    gap: 40px;
  }
  .download__tab-btn {
    padding: 10px 4px;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .download__group {
    scroll-margin-top: 146px;
  }
  .download__body {
    flex-direction: column;
    gap: 32px;
  }
  .download__index {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    position: static;
  }
  .download__index li,
  .download__index li:first-child {
    border: none;
  }
  .download__index a {
    padding: 10px 16px;
    border: 1px solid #dde0df;
    border-radius: 2px;
  }
  .download__cont {
    gap: 56px;
  }
  .download__list > li {
    width: calc((100% - 16px) / 2);
  }
  .download__table th,
  .download__table td {
    padding: 12px 8px;
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .download__table th {
    width: 28%;
  }
  .download__movie {
    gap: 32px 16px;
  }
  .download__movie > li {
    width: calc((100% - 16px) / 2);
  }
  .download__movie-ttl {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .download__movie-play {
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
  }
  .download__movie-play::after {
    border-width: 7px 0 7px 11px;
  }
  .japan .inner {
    gap: 80px;
  }
  .japan__philosophy {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    text-align: center;
  }
  .japan__philosophy .japan__txt {
    text-align: left;
  }
  .japan__philosophy-img {
    width: 100%;
    margin-right: 0;
  }
  .japan__factory {
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
  }
  .japan__factory-txt {
    flex: none;
  }
  .japan__factory-img {
    width: 100%;
  }
  .japan__numbers-list {
    gap: 16px;
  }
  .japan__numbers-item {
    width: calc((100% - 16px) / 2);
    padding: 24px 12px;
  }
  .japan__numbers-img {
    margin-bottom: 16px;
  }
  .japan__numbers-img img {
    width: 100px;
  }
  .japan__numbers-label {
    padding-bottom: 12px;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .japan__numbers-num {
    margin-top: 12px;
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .japan__quality-nav-item {
    flex-direction: row;
    justify-content: center;
    gap: 4px;
    padding: 20px 24px 20px 6px;
  }
  .japan__quality-nav-num {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    line-height: 1;
    font-variant-numeric: lining-nums;
  }
  .japan__quality-nav-en {
    display: none;
  }
  .japan__quality-nav-arrow {
    right: 8px;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%) rotate(90deg);
  }
  .japan__quality-nav-ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
    line-height: 1;
  }
  .japan__quality-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .japan__quality-img {
    width: 100%;
  }
  .japan__detail-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .japan__detail-lead {
    width: 100%;
  }
  .japan__detail-list {
    margin: 0;
    gap: 40px 16px;
  }
  .japan__detail-item {
    width: calc((100% - 16px) / 2);
  }
  .japan__detail-badge {
    left: 8px;
  }
  .japan__detail-body {
    margin-top: calc(clamp(2rem, 1.2rem + 1.6vw, 4rem) * 0.5 + 16px);
    padding-left: 8px;
    gap: 8px;
  }
  .japan__detail-cap {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .japan__everyone {
    margin-top: -120px;
    padding: 40px 20px 0;
  }
  .japan__everyone-list {
    flex-direction: column;
    gap: 56px;
  }
  .japan__everyone-item {
    flex: none;
  }
  .japan__everyone-img {
    aspect-ratio: 4/3;
  }
  .japan__everyone-over {
    left: 20px;
    right: 20px;
    bottom: 20px;
    gap: 8px;
  }
  .japan__everyone-en {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .japan__everyone-caption {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .japan__everyone-and {
    display: none;
  }
  .japan__brand {
    margin: 80px 0;
    padding: 80px 0;
  }
  .japan .inner.japan__brand-inner {
    gap: 24px;
  }
  .japan__brand-ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .message .inner {
    gap: 56px;
  }
  .message__profile {
    gap: 40px;
  }
  .message__profile-block {
    padding: 40px 0;
    flex-direction: column;
    gap: 16px;
  }
  .message__profile-block:first-child {
    padding-top: 0;
  }
  .message__profile-ttl {
    width: 100%;
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .message__vision {
    padding: 64px 0;
  }
  .message__vision-mark {
    width: 240px;
    margin-left: -40px;
  }
  .message__vision-body {
    width: 100%;
    margin-top: 40px;
    gap: 24px;
  }
  .message__vision-heading {
    width: 100%;
    max-width: none;
    padding-top: 0;
    align-items: center;
    gap: 24px;
    text-align: center;
    position: relative;
    top: auto;
  }
  .message__vision-label::after, .message__policy-label::after, .message__trust-label::after {
    left: 50%;
    transform: translateX(-50%);
  }
  .message__policy {
    align-items: center;
  }
  .message__policy-deco {
    left: 50%;
    transform: translateX(-50%);
  }
  .message__vision-catch {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .message__vision-item {
    gap: 16px;
    padding: 24px 0;
  }
  .message__vision-ttl, .message__policy-ttl, .message__trust-ttl {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .message__vision-deco, .message__policy-deco, .message__trust-deco {
    font-size: 20vw;
  }
  .message__principles-deco {
    font-size: 14vw;
  }
  .message__policy-label {
    margin-top: calc(20vw * 0.6);
  }
  .message__principles-label {
    margin-top: calc(14vw * 0.9);
  }
  .message__policy-intro {
    margin-top: 24px;
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }
  .message__policy-catch {
    flex-shrink: 1;
    text-align: center;
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .message__policy-lead {
    flex: none;
  }
  .message__policy-list {
    margin-top: 48px;
    flex-direction: column;
    gap: 32px;
  }
  .message__policy-list > * {
    width: 100%;
  }
  .message__principles-catch {
    margin-top: 24px;
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .message__principles-lead {
    margin-top: 24px;
    text-align: left;
  }
  .message__principles-list {
    margin-top: 48px;
    gap: 16px;
  }
  .message__principles-list > li {
    width: 100%;
  }
  .message__principles-item {
    gap: 16px;
    padding: 32px 24px;
  }
  .message__principles {
    padding: 64px 0;
  }
  .message__principles-deco {
    top: 64px;
  }
  .message__trust {
    padding: 80px 0;
  }
  .message .inner.message__trust-inner {
    flex-direction: column;
    gap: 48px;
  }
  .message__trust-head {
    width: 100%;
    align-items: center;
  }
  .message__trust-catch {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
    text-align: center;
  }
  .message__trust-label {
    margin-top: 24px;
  }
  .message__trust-lead {
    margin-top: 24px;
    text-align: left;
  }
  .message__trust-list > li {
    width: 100%;
  }
  .message__trust-item {
    gap: 16px;
    padding: 24px 0;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  }
  .message__trust-item:nth-child(odd), .message__trust-item:nth-child(even), .message__trust-item:nth-child(-n+2), .message__trust-item:nth-child(n+3) {
    padding: 24px 0;
    border-right: none;
  }
  .message__trust-item:first-child {
    padding-top: 0;
  }
  .message__trust-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
  }
  .repair__block {
    padding: 48px 0;
    scroll-margin-top: 40px;
  }
  .repair__block--lead .repair__lead {
    padding: 48px 24px;
  }
  .repair__block--gray .inner, .repair__block--box .inner {
    padding: 48px calc(4vw + 24px);
  }
  .repair__block--dark {
    padding: 40px 0;
  }
  .repair__block--lead .ttl {
    margin-bottom: 24px;
  }
  .repair__block--lead .repair__lead-deco {
    margin: 0 -24px -0.15em;
    font-size: 10.5vw;
    position: static;
    transform: none;
    width: auto;
  }
  .repair__block--split .inner {
    flex-direction: column;
    align-items: stretch;
    gap: 32px;
  }
  .repair__block--split .inner > .ttl {
    align-items: center;
    text-align: center;
  }
  .repair__block--split .repair__btns {
    width: 100%;
  }
  .repair__block .inner > .ttl {
    margin-bottom: 24px;
  }
  .repair__block .inner > .repair__ttl--deco {
    margin-bottom: 24px;
  }
  .repair__block .inner > .repair__ttl--deco::after {
    height: 24px;
  }
  .repair__txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    text-align: left;
  }
  .repair__body {
    gap: 24px;
  }
  .repair__tbl {
    gap: 8px;
  }
  .repair__table th, .repair__table td {
    padding: 8px 16px;
  }
  .repair__card {
    gap: 8px;
    padding: 16px;
  }
  .repair__card-txt {
    margin-bottom: 0;
  }
  .repair__btns--row > .repair__btn {
    width: 100%;
  }
  .repair__list > * {
    width: calc((100% - 16px) / 2);
  }
  .repair__groups > * {
    width: 100%;
  }
  .repair__apply {
    padding: 64px 24px;
  }
  .repair__apply-deco {
    top: 64px;
    font-size: 48px;
    line-height: 1;
    transform: translate(-50%, -50%);
  }
  .repair__apply-cont {
    padding: 40px 24px;
  }
  .repair__panel {
    padding: 32px 24px;
  }
  .repair__price {
    padding: 24px;
  }
  .modal__body {
    padding: 56px 32px 24px;
  }
  .modal__foot {
    gap: 8px;
    padding: 16px 24px;
  }
  .modal__foot .repair__btn,
  .modal__foot .modal__foot-close,
  .modal__foot a.repair__btn {
    width: auto;
    flex: 1 1 0;
    min-width: 0;
  }
  .diag__scroll,
  .diag__table-wrap {
    overflow-x: auto;
    padding-bottom: 8px;
  }
  .diag__scroll .scroll-hint-icon,
  .diag__table-wrap .scroll-hint-icon {
    top: 24px;
    left: calc(50% - 90px);
    width: 180px;
  }
  .diag__scroll .scroll-hint-text,
  .diag__table-wrap .scroll-hint-text {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    font-weight: 700;
  }
  .diag {
    min-width: 720px;
  }
  .lineup__list > li {
    width: calc((100% - 32px) / 2);
  }
  .shop {
    padding-top: 64px;
  }
  .shop__list > li {
    width: calc((100% - 24px) / 2);
  }
  .productSec {
    padding: 64px 0;
  }
  .productSec .inner {
    gap: 40px;
  }
  .productHero {
    padding: 56px 0 48px;
  }
  .productHero__head {
    gap: 24px;
  }
  .feature__body {
    flex-direction: column;
    align-items: stretch;
  }
  .feature__video {
    width: 100%;
    max-width: 840px;
    margin: 0 auto;
    position: relative;
    top: auto;
  }
  .feature__list {
    flex: none;
    width: 100%;
    max-width: 840px;
    margin: 0 auto;
  }
  .spec {
    padding: 56px 0;
  }
  .spec__body {
    flex-direction: column;
    gap: 40px;
  }
  .spec__visual {
    width: 100%;
    position: static;
  }
  .spec__info {
    width: 100%;
  }
  .colors__list > li {
    width: calc((100% - 64px) / 5);
  }
  .option__list {
    flex-direction: column;
  }
  .option__list > li {
    width: 100%;
  }
}
@media screen and (max-width: 800px) {
  .company-feature-list__item-txt {
    gap: 16px;
  }
}
@media screen and (max-width: 600px) {
  .articleList__list > li {
    width: 100%;
  }
  .factory__nav {
    position: static;
  }
  .factory__nav::before {
    display: none;
  }
  .factory__body .ttl__jp {
    text-align: center;
  }
  .factory__sec:not(.factory__sec--intro) .ttl__jp:not(h2) {
    font-size: clamp(2.8rem, 3rem + 0.5vw, 3.6rem);
  }
  .factory__sec--intro .ttl__en {
    font-size: clamp(2.8rem, 10.4vw, 4rem);
    line-height: 1.1;
  }
  .factory__sec--intro .ttl__jp:not(h2) {
    font-size: clamp(2.8rem, 9vw, 3.4rem) !important;
  }
  .factory__sec {
    padding: 48px 0;
    scroll-margin-top: 80px;
  }
  .factory__sec--lead {
    padding-bottom: 16px;
  }
  .factory__sec--sub {
    margin-top: -24px;
    padding-top: 24px;
  }
  .factory__sec--first {
    padding-top: 0;
  }
  .factory__sec--last {
    padding-bottom: 0;
  }
  .factory__sec > .factory__txt {
    text-align: left;
  }
  .factory__imgs {
    flex-direction: column;
    gap: 24px;
  }
  .factory__imgs > li {
    flex: none;
  }
  .factory__imgs--craft {
    flex-direction: row;
    gap: 16px;
  }
  .factory__imgs--craft > li {
    width: calc((100% - 16px) / 2);
  }
  .factory__imgs--people {
    flex-direction: row;
    gap: 16px;
  }
  .factory__imgs--people > li {
    width: calc((100% - 16px) / 2);
  }
  .factory__imgs--intro .factory__cap {
    line-height: 1.4;
  }
  .factory__imgs--intro, .factory__imgs--detail {
    flex-wrap: wrap;
    flex-direction: row;
    gap: 24px 16px;
  }
  .factory__imgs--intro > li, .factory__imgs--detail > li {
    width: calc((100% - 16px) / 2);
  }
  .factory__imgs--prototype {
    align-items: stretch;
  }
  .factory__step-label {
    gap: 12px;
    letter-spacing: 0.2em;
  }
  .factory__step-label::before, .factory__step-label::after {
    width: 24px;
  }
  .factory__step-label::after {
    margin-left: -0.2em;
  }
  .factory__flow > li {
    width: 100%;
  }
  .factory__imgs--prototype .factory__arrow, .factory__imgs--salon .factory__arrow {
    flex: none !important;
    padding-bottom: 0;
    width: auto;
    align-self: center;
    transform: rotate(90deg);
  }
  .factory__imgs--prototype .factory__cap {
    min-height: 0;
  }
  .catalog__ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .catalog__wrap {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .catalog__intro {
    width: 100%;
    align-items: center;
    text-align: center;
  }
  .catalog__name {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .catalog__txt, .catalog__note {
    text-align: left;
  }
  .catalog__btn {
    width: 100%;
    white-space: normal;
    text-align: center;
  }
  .reserveForm__ttl {
    gap: 16px;
    padding: 16px;
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .reserveForm .smf-item__label {
    justify-content: space-between;
  }
  .reserveForm__datetime {
    flex-direction: column;
  }
  .reserveForm .smf-text-control__control,
  .reserveForm .smf-select-control__control {
    padding: 0 16px;
  }
  .reserveForm .smf-select-control__control {
    padding-right: 48px;
    background-position: right 16px center;
  }
  .reserveForm .smf-textarea-control__control {
    min-height: 200px;
    padding: 16px;
  }
  .reserveForm__consent-txt, .reserveForm__note {
    width: 100%;
    text-align: left;
  }
  .reserveForm .smf-button-control__control {
    position: relative;
  }
  .reserveForm .smf-button-control__control::after {
    margin-top: -5px;
    position: absolute;
    top: 50%;
    right: 16px;
  }
  .showroomDetail .btn {
    align-self: stretch;
    white-space: normal;
    text-align: center;
  }
  .showroomDetail__gallery {
    gap: 16px;
  }
  .showroomDetail__gallery > li {
    width: calc((100% - 16px) / 2);
  }
  .showroomDetail__main-img {
    aspect-ratio: 3/2;
  }
  .showroomDetail__lead-txt {
    text-align: left;
  }
  .showroomDetail__steps-ttl {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .showroomDetail__reservation .ttl__en {
    top: -16px;
    position: relative;
  }
  .showroomDetail__reservation .ttl__jp {
    font-size: clamp(2.8rem, 3rem + 0.5vw, 3.6rem);
  }
  .showroomDetail__map {
    aspect-ratio: 4/3;
  }
  .showroomDetail__notice {
    padding: 24px;
  }
  .showroomDetail__access {
    flex-direction: column;
  }
  .showroomDetail__access dl {
    padding: 24px;
  }
  .showroomDetail__btns {
    flex-direction: column;
    align-items: stretch;
  }
  .showroomList__lead-txt {
    width: 100%;
    text-align: left;
  }
  .showroomList__list > li {
    width: 100%;
  }
  .article__toc {
    padding: 24px 16px;
  }
  .article__imgs {
    flex-direction: column;
    gap: 16px;
  }
  .article__imgs li {
    width: 100%;
  }
  .article__table th,
  .article__table td {
    padding: 12px 16px;
  }
  .article__table th {
    width: 32%;
    padding-right: 8px;
    padding-left: 8px;
  }
  .article__ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .article__date {
    font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  }
  .article--news .article__ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .article__pager {
    gap: 8px;
    font-size: clamp(1.1rem, 1.1rem + 0.05vw, 1.2rem);
  }
  .article__pager a {
    gap: 6px;
  }
  .article__pager .btn__arrow {
    width: 12px;
    height: 7px;
  }
  .article__pager-list a {
    padding: 8px 16px;
  }
  .download .inner {
    gap: 0;
  }
  .download__tab-btn {
    padding: 6px 4px;
  }
  .download__movie-ttl {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .download__panel {
    padding-top: 8px;
  }
  .download__body {
    gap: 16px;
  }
  .download__index {
    padding: 0 0 8px;
    background: #ffffff;
    position: sticky;
    top: 114px;
    z-index: 10;
  }
  .download__index li {
    width: calc((100% - 8px) / 2);
  }
  .download__index li:first-child {
    width: 100%;
  }
  .download__index a {
    padding: 6px 8px;
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    line-height: 1.4;
    text-align: center;
  }
  .download__index br {
    display: none;
  }
  .download__group {
    scroll-margin-top: 255px;
  }
  .japan__quality-nav {
    flex-direction: column;
    gap: 16px;
  }
  .japan__quality-nav > li {
    width: 100%;
  }
  .japan__quality-nav-item {
    gap: 12px;
    padding: 24px 48px 24px 16px;
  }
  .japan__quality-nav-num {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .japan__quality-nav-arrow {
    right: 16px;
  }
  .japan__quality-nav-ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  }
  .kv-pin {
    height: auto;
  }
  .kv {
    height: 70svh;
    min-height: 480px;
    position: relative;
    top: auto;
    padding-top: 60px;
  }
  .kv__inner {
    width: calc(100% - 48px);
    max-width: 100%;
    left: 24px;
    top: 24%;
  }
  .kv__catch {
    font-size: clamp(3rem, 3.2rem + 0.8vw, 4rem);
    white-space: normal;
  }
  .kv__lead {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    line-height: 2;
  }
  .kv__deco {
    bottom: 4%;
  }
  .kv__deco span {
    font-size: clamp(4rem, 16vw, 6rem);
    padding-right: 80px;
  }
  .kv__news-body {
    flex-wrap: wrap;
  }
  .kv__news-txt {
    width: 100%;
  }
  .msg {
    padding: 40px 24px 40px;
  }
  .msg__txt {
    gap: 16px;
  }
  .msg__img {
    max-width: 240px;
  }
  .craft {
    padding: 40px 0 0;
    gap: 24px;
  }
  .craft__lead {
    text-align: left;
  }
  .craft__box-cont {
    flex-direction: column;
    justify-content: center;
    text-align: center;
  }
  .craft__box-cont .ttl {
    align-items: center;
    gap: 8px;
  }
  .craft__cont {
    gap: 8px;
  }
  .products {
    padding: 40px 24px;
  }
  .products__txt {
    gap: 8px;
  }
  .products__txt .ttl {
    align-self: center;
    align-items: center;
    text-align: center;
  }
  .products__txt > .btn {
    align-self: center;
  }
  .products__list-cont {
    padding: 16px;
  }
  .products__list-icon {
    width: 20px;
    height: 8px;
  }
  .stories {
    padding: 40px 0 24px;
    gap: 24px;
  }
  .stories__head .ttl {
    align-self: center;
    align-items: center;
    text-align: center;
  }
  .stories__lead {
    line-height: 1.6;
  }
  .stories__slider {
    gap: 8px;
  }
  .stories__date {
    margin-top: 16px;
    font-size: 1.5rem;
  }
  .stories__ttl {
    margin-top: 8px;
    font-size: 1.6rem;
  }
  .stories__item:not(:last-child) {
    margin-right: 16px;
  }
  .stories__item-img img {
    height: 180px;
  }
  .stories__cont {
    top: 180px;
  }
  .showroom {
    padding: 56px 24px;
  }
  .showroom__catch {
    align-self: center;
    font-size: 3.2rem;
    text-align: center;
  }
  .showroom__head .ttl {
    align-self: center;
    align-items: center;
    text-align: center;
  }
  .showroom__head > .btn {
    align-self: center;
  }
  .showroom__cont {
    gap: 0;
  }
  .showroom__map {
    width: 100%;
    margin: 0;
  }
  .showroom__list {
    gap: 32px 8px;
  }
  .showroom__list li {
    width: calc((100% - 16px) / 3);
  }
  .showroom__pin--tall {
    transform: translate(-50%, calc(-100% - 20px));
  }
  .showroom__pin--tall::after {
    border-left-width: 4px;
    border-right-width: 4px;
    border-top-width: 20px;
  }
  .company {
    padding: 40px 24px;
    gap: 24px;
  }
  .company__txt {
    gap: 8px;
  }
  .company__txt .ttl {
    align-self: center;
    align-items: center;
    text-align: center;
  }
  .company__txt > .btn {
    align-self: center;
  }
  .company__lead {
    gap: 0;
    line-height: 1.6;
  }
  .support {
    padding: 40px 24px;
  }
  .cta {
    padding: 40px 24px;
  }
  .cta__catch {
    font-size: 3rem;
  }
  .cta__txt {
    width: 100%;
    text-align: left;
  }
  .cta__box-txt {
    width: 100%;
    text-align: left;
  }
  .cta__box {
    gap: 8px;
  }
  .cta__box .ttl {
    gap: 8px;
  }
  .cta__box .btn {
    max-width: 100%;
    padding: 20px 16px;
    gap: 12px;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    white-space: normal;
    text-align: center;
  }
  .cta__bg-col:nth-child(n+3) {
    display: none;
  }
  .pageHead {
    height: 320px;
    min-height: 320px;
  }
  .craftsmanship {
    padding: 40px 24px;
  }
  .company-feature-list {
    padding: 40px 24px;
  }
  .productsIntro {
    padding: 56px 0 24px;
  }
  .productsIntro .inner {
    gap: 24px;
  }
  .productsIntro__ttl {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
  .productsIntro__lead {
    text-align: left;
  }
  .productsList {
    padding: 0 24px 56px;
    gap: 48px;
  }
  .productsList__item {
    gap: 24px;
    scroll-margin-top: 80px;
  }
  .productsList__item-txt {
    gap: 12px;
  }
  .productsList__item-txt .ttl {
    gap: 4px;
    align-self: center;
    text-align: center;
  }
  .productsList__item-txt .btn {
    margin-top: 8px;
  }
  .productsList__item-num {
    align-self: center;
  }
  .productsList__item-num::before, .productsList__item-num::after {
    content: "";
    width: 24px;
    height: 1px;
    background: #821c22;
  }
  .productsList__nav .factory__flow > li {
    flex: 0 0 auto;
    width: calc((100% - 8px) / 2);
  }
  .productsList__nav .factory__flow-item {
    gap: 8px;
    padding: 8px 28px 8px 12px;
  }
  .productsList__nav .factory__flow-no {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .productsList__nav .factory__flow-jp {
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    line-height: 1.4;
    letter-spacing: 0.04em;
    white-space: normal;
  }
  .support__intro {
    padding: 40px 0;
  }
  .support__intro-txt {
    gap: 16px;
  }
  .support__intro-ttl {
    font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
    margin-bottom: 0;
  }
  .support__guide {
    gap: 2px;
    padding: 0;
    width: 100%;
  }
  .support__guide-cont {
    max-width: 100%;
  }
  .repair__block {
    padding: 32px 0;
    scroll-margin-top: 48px;
  }
  .repair__block--lead .repair__lead {
    padding: 40px 16px;
  }
  .repair__block--lead .repair__lead-deco {
    margin-right: -16px;
    margin-left: -16px;
  }
  .repair__block--gray .inner, .repair__block--box .inner {
    padding: 32px calc(4vw + 16px);
  }
  .repair__block--dark {
    padding: 32px 0;
  }
  .repair__btns--anchor {
    flex-direction: column;
  }
  .repair__btns--anchor .btn {
    flex: none;
    width: 100%;
    max-width: none;
    padding: 24px 32px;
  }
  .repair__cards > *, .repair__list > * {
    width: 100%;
  }
  .repair__apply {
    padding: 40px 16px;
  }
  .repair__apply-deco {
    top: 40px;
    font-size: 40px;
  }
  .repair__apply-cont {
    padding: 32px 16px;
  }
  .repair__panel {
    padding: 24px 16px;
  }
  .repair__price {
    padding: 24px 16px;
  }
  .repair__price-main {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .repair__group, .repair__item {
    padding: 16px;
  }
  .modal {
    padding: 16px;
  }
  .modal__body {
    padding: 56px 16px 24px;
  }
  .modal__foot {
    padding: 12px 16px;
  }
  .modal__foot .repair__btn {
    gap: 4px;
    padding: 12px 4px;
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .modal__foot .modal__foot-close {
    gap: 6px;
  }
  .diag__start, .diag__q {
    padding: 16px;
  }
  .diag__a-item {
    padding: 16px;
  }
  .diag__table th, .diag__table td {
    padding: 16px;
  }
  .diag__table--life th,
  .diag__table--life td {
    padding: 12px 8px;
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  }
  .diag__table--life th:not(:first-child),
  .diag__table--life td:not(:first-child) {
    width: 80px;
  }
  .lineup__list > li {
    width: 100%;
  }
  .lineup__body {
    padding: 24px 24px 32px;
  }
  .shop {
    padding-top: 48px;
  }
  .shop__list {
    gap: 40px 16px;
  }
  .shop__list > li {
    width: calc((100% - 16px) / 2);
  }
  .shop__name {
    text-align: left;
  }
  .shop__back {
    margin-top: 24px;
  }
  .productSec {
    padding: 48px 0;
  }
  .productSec__btn .btn {
    white-space: normal;
    text-align: center;
  }
  .productHero {
    padding: 40px 0 32px;
  }
  .productHero__list {
    gap: 16px;
  }
  .productHero__list > li {
    width: calc((100% - 16px) / 2);
  }
  .productHero__cap {
    margin-top: 8px;
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
  .feature__item {
    padding: 16px;
  }
  .spec {
    padding: 40px 0;
  }
  .spec__head {
    align-items: flex-start;
    text-align: left;
  }
  .spec__ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .spec__btns .btn {
    width: 100%;
  }
  .spec__chair {
    flex-direction: column;
    align-items: flex-start;
  }
  .colors__list {
    gap: 24px 8px;
  }
  .colors__list > li {
    width: calc((100% - 24px) / 4);
  }
  .option__item {
    padding: 32px 16px;
  }
  .dimension__list {
    flex-direction: column;
  }
  .dimension__list > li {
    width: 100%;
  }
  .related__list > li {
    width: 100%;
  }
  .company-feature-list__item-txt .ttl {
    width: 100%;
    align-items: center;
    text-align: center;
  }
  .craftsmanship__feature-txt {
    align-items: center;
  }
  .craftsmanship__feature-txt .ttl {
    align-items: center;
    text-align: center;
  }
  .craftsmanship__feature-txt .ttl__jp {
    font-size: min(clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem), 7vw) !important;
  }
  .craftsmanship__feature-txt .craftsmanship__feature-lead {
    width: 100%;
  }
  .newsList__item {
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 24px 0;
    position: relative;
  }
  .newsList__item .btn__arrow {
    position: absolute;
    top: 50%;
    right: 0;
    translate: 0 -50%;
  }
  .newsList__meta {
    width: 100%;
  }
  .newsList__ttl {
    padding-right: 32px;
  }
}
@media screen and (max-width: 374px) {
  .showroomDetail__block:not(.showroomDetail__reservation) .ttl__jp {
    font-size: min(clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem), 8.6vw) !important;
  }
}
/*! ===== oohiro: ここまで静的から写した CSS ===== */
.admin-bar .header {
  top: 3.2rem;
}
.admin-bar #menuBtn {
  top: 3.2rem;
}
@media screen and (max-width: 1440px) {
  .admin-bar .header__nav {
    top: 9.2rem;
    height: calc(100% - 9.2rem);
  }
}
@media screen and (max-width: 782px) {
  .admin-bar .header {
    top: 4.6rem;
  }
  .admin-bar #menuBtn {
    top: 4.6rem;
  }
  .admin-bar .header__nav {
    top: 10.6rem;
    height: calc(100% - 10.6rem);
  }
}

@media screen and (max-width: 1440px) {
  html.is-drawer-open {
    overflow: hidden;
    overscroll-behavior-y: contain;
  }
  html.is-drawer-gutter {
    scrollbar-gutter: stable;
    background: #1a1a1a;
  }
  .header__nav {
    overscroll-behavior-y: contain;
  }
}
@media screen and (max-width: 834px) {
  .pageHead {
    flex-direction: column;
  }
  .pageHead__breadcrumb {
    position: relative;
    inset: auto;
    flex-wrap: wrap;
    align-content: flex-end;
    row-gap: 0.4rem;
    overflow-x: visible;
    white-space: normal;
  }
  .pageHead__breadcrumb li {
    flex-shrink: 1;
    min-width: 0;
    overflow-wrap: anywhere;
  }
  .pageHead:not(.pageHead--form):not(:has(.pageHead__lead)) {
    justify-content: space-between;
  }
  .pageHead:not(.pageHead--form):not(:has(.pageHead__lead))::before {
    content: "";
    flex: none;
    block-size: 1.6rem;
  }
  .pageHead:not(.pageHead--form):not(:has(.pageHead__lead)) .pageHead__breadcrumb {
    align-self: flex-end;
    max-width: 100%;
    min-height: 3.2rem;
    margin-block-end: -1.6rem;
    padding-block-start: 0.8rem;
  }
  .pageHead:has(.pageHead__lead):not(.pageHead--form) {
    padding-block-end: 1.6rem;
  }
  .pageHead:has(.pageHead__lead):not(.pageHead--form) .pageHead__breadcrumb {
    align-self: flex-end;
    max-width: 100%;
    min-height: 6.4rem;
    padding-block-start: 0.8rem;
  }
  .pageHead.pageHead--form {
    padding-block-end: 1.6rem;
  }
  .pageHead.pageHead--form .pageHead__breadcrumb {
    inset: auto;
    align-self: stretch;
    max-width: none;
    min-height: 4rem;
    padding-block-start: 1.2rem;
  }
}
@media screen and (max-width: 600px) {
  .pageHead.pageHead--form .pageHead__breadcrumb {
    margin-inline: 0.8rem;
  }
}
.page-content {
  padding: 8rem 0;
}
@media screen and (max-width: 600px) {
  .page-content {
    padding: 4.8rem 0;
  }
}

.error-404 {
  padding: 8rem 0;
  text-align: center;
}
.error-404__text {
  margin-block-end: 4rem;
  line-height: 1.8;
}
@media screen and (max-width: 600px) {
  .error-404 {
    padding: 4.8rem 0;
  }
}

.snow-monkey-form[data-screen=loading] {
  visibility: hidden;
}

.smf-system-error-content-ready {
  display: none;
}

.smf-focus-point {
  position: relative;
  inset-block-start: -10rem;
  visibility: hidden;
}

.smf-select-control__toggle {
  display: none;
}

.smf-button-control {
  display: contents;
}

.smf-sending {
  display: none;
}

.reserveForm .smf-button-control__control:disabled:not(.is-locked) {
  opacity: 0.6;
  cursor: wait;
}

.reserveForm .smf-button-control__control.is-locked:disabled {
  background: #949494;
  border-color: #949494;
  color: #FFFFFF;
  opacity: 1;
  cursor: not-allowed;
}

@media (hover: hover) {

.reserveForm .smf-button-control__control.is-locked:disabled:hover::after {
  animation: none;
}
}

.reserveForm .smf-error-messages {
  margin-block-start: 0.8rem;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.6;
  color: #821c22;
}

.catalog .smf-placeholder[data-name=agree] .smf-error-messages {
  text-align: center;
}

.reserveForm [data-invalid="1"],
.reserveForm .smf-checkbox-control__control input[data-invalid="1"] {
  border-color: #821c22;
}

.snow-monkey-form[data-screen=confirm] .smf-placeholder {
  padding: 1.6rem 2.4rem;
  background: #f8f8f8;
  border-radius: 2px;
  font-size: 1.6rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.snow-monkey-form[data-screen=confirm] .smf-confirm-empty {
  color: #666666;
}
.snow-monkey-form[data-screen=confirm] .reserveForm__privacy,
.snow-monkey-form[data-screen=confirm] .reserveForm__note {
  display: none;
}
.snow-monkey-form[data-screen=confirm] .smf-action {
  justify-content: center;
  -moz-column-gap: 2.4rem;
       column-gap: 2.4rem;
}
@media screen and (max-width: 600px) {
  .snow-monkey-form[data-screen=confirm] .smf-action {
    flex-direction: column-reverse;
    align-items: center;
    row-gap: 1.6rem;
  }
}
.snow-monkey-form[data-screen=confirm] .smf-action .smf-button-control__control {
  width: 100%;
}
.snow-monkey-form[data-screen=confirm] .smf-action [data-action=back] {
  background: #FFFFFF;
  border-color: #1a1a1a;
  color: #1a1a1a;
}

.snow-monkey-form[data-screen=confirm] .smf-action [data-action=back]::after {
  background: #1a1a1a;
  -webkit-mask: url("../../assets/img/common/i_arrow-btn-wh-bold.svg") no-repeat center/contain;
          mask: url("../../assets/img/common/i_arrow-btn-wh-bold.svg") no-repeat center/contain;
  scale: -1 1;
}

@media (hover: hover) {

.snow-monkey-form[data-screen=confirm] .smf-action [data-action=back]:hover::after {
  animation-name: smfArrowBack;
}
}

@keyframes smfArrowBack {
  0% {
    translate: 0 0;
    opacity: 1;
  }
  45% {
    translate: -100% 0;
    opacity: 0;
  }
  46% {
    translate: 100% 0;
    opacity: 0;
  }
  100% {
    translate: 0 0;
    opacity: 1;
  }
}
.smf-complete-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 2.4rem;
  text-align: center;
}

.smf-complete-content__action {
  width: 100%;
  display: flex;
  justify-content: center;
}

.smf-complete-content .catalog__form-ttl {
  text-wrap: balance;
}

.smf-complete-content .catalog__form-lead {
  text-align: start;
}

@media screen and (min-width: 835px) and (max-width: 1214px) {
  .smf-complete-content .catalog__form-lead .pc {
    display: none;
  }
}
.catalog-complete {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 1.2rem;
  margin-block-start: 1.6rem;
  padding-block-start: 3.2rem;
  border-block-start: 1px solid #dde0df;
}
.catalog-complete__sub {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
}
.catalog-complete__txt {
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: start;
}
@media screen and (min-width: 835px) and (max-width: 1049px) {
  .catalog-complete__txt .pc {
    display: none;
  }
}
.catalog-complete__actions {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 1.6rem;
  margin-block-start: 1.2rem;
}
.catalog-complete__btn {
  width: 100%;
  max-width: 36.5rem;
  padding: 2rem 2.4rem;
  white-space: normal;
  text-align: center;
  text-wrap: balance;
}
@media screen and (max-width: 600px) {
  .catalog-complete__btn {
    -moz-column-gap: 0.8rem;
         column-gap: 0.8rem;
    padding: 1.8rem 1.6rem;
  }
}
.catalog-complete__btn--line .btn__arrow {
  --arrow-icon: url("../../assets/img/common/i_arrow-btn-red.svg");
}

.reserveForm__flow-no {
  font-variant-numeric: lining-nums;
}

.article__pager-prev--empty, .article__pager-next--empty {
  visibility: hidden;
}
@media screen and (max-width: 329px) {
  .article__pager {
    gap: 1.2rem;
  }
}
.article__list--ordered {
  counter-reset: article-ordered;
}
.article__list--ordered li {
  counter-increment: article-ordered;
  padding-inline-start: 3.2rem;
}
.article__list--ordered li::before {
  content: counter(article-ordered) ".";
  inline-size: auto;
  block-size: auto;
  border-radius: 0;
  background: none;
  inset-block-start: 0;
  inset-inline-start: 0;
  color: #821c22;
}
.article__caption {
  margin-block-start: -2.4rem;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #666666;
}
.article__ttl, .article__body {
  overflow-wrap: anywhere;
}
.article__imgs > li:only-child {
  inline-size: 100%;
}
.article__table thead th {
  inline-size: auto;
}
@media screen and (max-width: 600px) {
  .article__table thead th:not(:first-child) {
    padding-inline: 16px;
  }
}

.article__body .wp-block-image {
  margin: 0;
}
.article__body .wp-block-image img {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
  border-radius: 2px;
}

.article__body .wp-element-caption {
  margin-block-start: 0.8rem;
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  color: #666666;
}

.article__body .wp-block-quote {
  margin: 0;
  padding: 2.4rem 3.2rem;
  background: #f8f8f8;
  border-inline-start: 0.4rem solid #dde0df;
}
.article__body .wp-block-quote cite {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  font-style: normal;
  color: #666666;
}

.article__body h4 {
  font-weight: 700;
}

.article-empty {
  flex: 1 1 0;
  min-inline-size: 0;
  padding-block-start: 4rem;
  padding-block-end: 4rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #666666;
}
@media screen and (max-width: 834px) {
  .article-empty {
    inline-size: 100%;
  }
}

.article-pagination {
  margin-block-start: 8rem;
  padding-inline-end: calc(28rem + 3.3333333333vw);
}
@media screen and (max-width: 834px) {
  .article-pagination {
    margin-block-start: 5.6rem;
    padding-inline-end: 0;
  }
}
.article-pagination__list {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.article-pagination__link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-inline-size: 4.8rem;
  block-size: 4.8rem;
  padding: 0 1.2rem;
  background: #ffffff;
  border: 1px solid #dde0df;
  font-family: "Cormorant Garamond", serif;
  font-variant-numeric: lining-nums;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #1a1a1a;
  transition: border-color 0.3s;
}
@media (hover: hover) {
.article-pagination__link:hover {
  opacity: 1;
  border-color: #1a1a1a;
}
}
@media screen and (max-width: 600px) {
  .article-pagination__link {
    min-inline-size: 4rem;
    block-size: 4rem;
  }
}
.article-pagination__link--current {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #ffffff;
}
.article-pagination__link--prev, .article-pagination__link--next {
  padding: 0 2rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  white-space: nowrap;
}
@media (hover: hover) {
.article-pagination__link--prev:hover .btn__arrow::before, .article-pagination__link--next:hover .btn__arrow::before {
  animation-name: btnArrowOut;
  animation-delay: 0s;
}
.article-pagination__link--prev:hover .btn__arrow::after, .article-pagination__link--next:hover .btn__arrow::after {
  animation-name: btnArrowIn;
  animation-delay: 0.2s;
}
}
.article-pagination__link--prev .btn__arrow {
  scale: -1 1;
}
.article-pagination__dots {
  padding: 0 0.4rem;
  font-family: "Cormorant Garamond", serif;
  font-variant-numeric: lining-nums;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  color: #666666;
}

.download-empty {
  padding-block-start: 4rem;
  padding-block-end: 4rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  color: #666666;
}

.download__name, .download__movie-ttl {
  overflow-wrap: anywhere;
}

@media screen and (min-width: 601px) and (max-width: 834px) {
  .download__index br {
    display: none;
  }
}
@media screen and (min-width: 601px) and (max-width: 834px) and (min-height: 630px) {
  .download__index {
    position: sticky;
    top: 121px;
    z-index: 10;
    padding-block-start: 1px;
    padding-block-end: 8px;
    background: #ffffff;
  }
  .download__group {
    scroll-margin-top: 251px;
  }
}
@media screen and (max-width: 374px) {
  .download__tab-btn {
    padding: 7px 2px;
    font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
    letter-spacing: 0;
    white-space: nowrap;
  }
}
.spec__table th,
.spec__table td {
  overflow-wrap: anywhere;
}

.shop__back .btn {
  max-width: 100%;
}

.option__list {
  flex-wrap: wrap;
}

.option__footnote {
  margin-block-start: 3.2rem;
  font-size: 1.4rem;
  line-height: 1.9;
  color: #666666;
}
.option__footnote-red {
  color: #821c22;
}

.shop__item[target=_blank]::after,
.spec__btns .btn[target=_blank]::after {
  content: none;
}

.productHero__menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  -moz-column-gap: 1.6rem;
       column-gap: 1.6rem;
  row-gap: 0.8rem;
}
.productHero__menu-ttl {
  font-size: 1.4rem;
  color: #666666;
}
.productHero__menu-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.spec__btns .btn[target=_blank] {
  max-width: 100%;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
  word-break: auto-phrase;
  text-wrap: balance;
  text-align: center;
}

.spec[id] {
  scroll-margin-block-start: 9.6rem;
}
@media screen and (max-width: 1440px) {
  .spec[id] {
    scroll-margin-block-start: 6rem;
  }
}

.shop__list > li:first-child:nth-last-child(-n+3) {
  margin-inline-start: auto;
}
.shop__list > li:last-child:nth-child(-n+3) {
  margin-inline-end: auto;
}
@media screen and (max-width: 600px) {
  .shop__name {
    text-align: center;
  }
}

.spec__body--simple {
  container-type: inline-size;
  justify-content: center;
}
.spec__body--simple .spec__info {
  flex: 0 1 auto;
  max-width: 48rem;
  min-height: 33.75cqi;
  justify-content: center;
}
@media screen and (max-width: 834px) {
  .spec__body--simple {
    justify-content: normal;
  }
  .spec__body--simple .spec__info {
    flex: 1 1 0;
    max-width: none;
    min-height: auto;
    justify-content: normal;
  }
}

.spec__body {
  container-type: inline-size;
}
.spec__body:has(.spec__main) .spec__info {
  min-height: 33.75cqi;
  justify-content: center;
}
@media screen and (max-width: 834px) {
  .spec__body:has(.spec__main) .spec__info {
    min-height: auto;
    justify-content: normal;
  }
}

.colors__list > li:first-child:nth-last-child(-n+9) {
  margin-inline-start: auto;
}
.colors__list > li:last-child:nth-child(-n+9) {
  margin-inline-end: auto;
}

.dimension__list > li:only-child {
  margin-inline: auto;
}

.related__list > li:only-child {
  margin-inline: auto;
}

.productSec:not(.productSec--gray) .related__item {
  background: #f8f8f8;
}
.productSec:not(.productSec--gray) .related__img img {
  mix-blend-mode: multiply;
}

.productHero__head {
  align-items: center;
}

.spec__main--fit {
  background: #FFFFFF;
}
.spec__main--fit img {
  -o-object-fit: contain;
     object-fit: contain;
}

.productHero__list > li:only-child {
  margin-inline: auto;
}

.productHero__img--fit {
  background: #FFFFFF;
}
.productHero__img--fit img {
  -o-object-fit: contain;
     object-fit: contain;
}

.option__list > .option__item--figure {
  width: auto;
  max-width: 100%;
  align-self: center;
}

.option__list > .option__item--figure:only-child {
  margin-inline: auto;
}

.option__item--figure .option__img {
  width: auto;
  max-width: 100%;
  aspect-ratio: auto;
}
.option__item--figure .option__img img {
  width: auto;
  max-width: 100%;
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

@media screen and (max-width: 600px) {
  .spec__head {
    align-items: center;
    text-align: center;
  }
}

.lineup__img--fit {
  background: #FFFFFF;
}
.lineup__img--fit img {
  -o-object-fit: contain;
     object-fit: contain;
}

.option__imgs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
  width: 100%;
}
.option__imgs .option__img {
  aspect-ratio: auto;
}
.option__imgs .option__img img {
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

.option__catch {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.option--cols4 .option__list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 2.4rem;
}
.option--cols4 .option__list > li {
  width: calc((100% - 2.4rem * 3) / 4);
}
.option--cols4 .option__list > li:first-child:nth-last-child(-n+3) {
  margin-inline-start: auto;
}
.option--cols4 .option__list > li:last-child:nth-child(-n+3) {
  margin-inline-end: auto;
}
.option--cols4 .option__item {
  padding: 2.8rem 2rem;
}
.option--cols4 .option__name {
  font-size: clamp(1.6rem, 1.6rem + 0.3vw, 2rem);
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
@media screen and (max-width: 1100px) {
  .option--cols4 .option__list > li {
    width: calc((100% - 2.4rem * 2) / 3);
  }
}
@media screen and (max-width: 834px) {
  .option--cols4 .option__list {
    gap: 1.2rem;
  }
  .option--cols4 .option__list > li {
    width: calc((100% - 1.2rem) / 2);
  }
  .option--cols4 .option__item {
    gap: 1.2rem;
    padding: 2rem 1.2rem;
  }
  .option--cols4 .option__txt {
    font-size: 1.3rem;
    line-height: 1.7;
  }
}
@media screen and (max-width: 600px) {
  .option--cols4 .option__list {
    gap: 4rem;
  }
  .option--cols4 .option__list > li {
    width: 100%;
  }
  .option--cols4 .option__item {
    gap: 2.4rem;
    padding: 3.2rem 1.6rem;
  }
  .option--cols4 .option__name {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
  .option--cols4 .option__txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
    line-height: 1.9;
  }
}

.option__img--natural {
  aspect-ratio: auto;
}
.option__img--natural img {
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

.option__list > li:only-child {
  margin-inline: auto;
}

.option {
  --oohiro-fn-cols: 2;
  --oohiro-fn-gap: 4rem;
}
@media screen and (max-width: 834px) {
  .option {
    --oohiro-fn-cols: 1;
  }
}
.option:has(.option__list > li:last-child:nth-child(1)) {
  --oohiro-fn-count: 1;
}
.option:has(.option__list > li:last-child:nth-child(2)) {
  --oohiro-fn-count: 2;
}
.option:has(.option__list > li:last-child:nth-child(3)) {
  --oohiro-fn-count: 3;
}

.option--cols4 {
  --oohiro-fn-cols: 4;
  --oohiro-fn-gap: 2.4rem;
}
@media screen and (max-width: 1100px) {
  .option--cols4 {
    --oohiro-fn-cols: 3;
  }
}
@media screen and (max-width: 834px) {
  .option--cols4 {
    --oohiro-fn-cols: 2;
    --oohiro-fn-gap: 1.2rem;
  }
}
@media screen and (max-width: 600px) {
  .option--cols4 {
    --oohiro-fn-cols: 1;
  }
}

.option:has(.option__list > li:last-child:nth-child(-n+3)):not(:has(.option__item--pair, .option__item--figure)) .option__footnote {
  --oohiro-fn-n: min(var(--oohiro-fn-count), var(--oohiro-fn-cols));
  inline-size: 100%;
  max-inline-size: calc(var(--oohiro-fn-n) * (100% - (var(--oohiro-fn-cols) - 1) * var(--oohiro-fn-gap)) / var(--oohiro-fn-cols) + (var(--oohiro-fn-n) - 1) * var(--oohiro-fn-gap));
  margin-inline: auto;
}

.spec__note--red {
  color: #821c22;
}

.spec__feat-red {
  color: #821c22;
}

.option__btn {
  max-width: 100%;
  white-space: normal;
  text-align: center;
}
.option__btn .btn__arrow {
  flex-shrink: 0;
}

.option__btn--ghost {
  visibility: hidden;
}
.option__btn--ghost::after {
  content: "";
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}

@media screen and (max-width: 834px) {
  .option:not(.option--cols4) .option__btn--ghost {
    display: none;
  }
}

@media screen and (max-width: 600px) {
  .option--cols4 .option__btn--ghost {
    display: none;
  }
}

.option .option__list > .option__item--pair {
  width: 100%;
}
@media screen and (max-width: 834px) {
  .option .option__list > .option__item--pair .option__imgs {
    grid-template-columns: minmax(0, 1fr);
  }
}

.dimension__img {
  background: #FFFFFF;
}
.dimension__img img {
  -o-object-fit: contain;
     object-fit: contain;
}

.dimension__img--wide {
  aspect-ratio: auto;
}
.dimension__img--wide img {
  height: auto;
  -o-object-fit: initial;
     object-fit: initial;
}

.productHero__menu-item {
  min-width: 9.6rem;
  padding: 0.6rem 1.2rem;
  background: #eee;
  font-size: 1.3rem;
  line-height: 1.5;
  color: #666666;
  text-align: center;
}
.productHero__menu-item.is-on {
  background: #1a1a1a;
  color: #FFFFFF;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.spec__feat-img {
  margin-block-start: 1.6rem;
}
.spec__feat-img img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}

.option__price--multi {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.contact-nav {
  padding-block: 8rem;
}
.contact-nav__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
}
@media screen and (max-width: 1100px) {
  .contact-nav__list {
    grid-template-columns: repeat(2, 1fr);
    max-width: 80rem;
    margin-inline: auto;
  }
}
@media screen and (max-width: 600px) {
  .contact-nav__list {
    grid-template-columns: 1fr;
    max-width: none;
  }
}
.contact-nav__item {
  display: flex;
}
.contact-nav__link {
  max-width: none;
  padding: 2.4rem 2rem;
  text-align: center;
  white-space: normal;
}
@media screen and (max-width: 1366px) {
  .contact-nav__link {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
    padding: 2.4rem 1.4rem;
  }
}
@media screen and (max-width: 1100px) {
  .contact-nav__link {
    -moz-column-gap: 1.6rem;
         column-gap: 1.6rem;
    padding: 2.4rem 2rem;
  }
}
.contact-nav__br {
  display: none;
}
@media screen and (max-width: 1366px) {
  .contact-nav__br {
    display: inline;
  }
}
@media screen and (max-width: 1100px) {
  .contact-nav__br {
    display: none;
  }
}
.contact-nav__br--pc {
  display: inline;
}
@media screen and (max-width: 1100px) {
  .contact-nav__br--pc {
    display: none;
  }
}
@media screen and (max-width: 600px) {
  .contact-nav {
    padding-block: 4.8rem;
  }
}

.stories__item-img img {
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

.feature__body--video {
  justify-content: center;
}

.feature__body--list {
  justify-content: center;
}
.feature__body--list > .feature__list {
  flex: none;
  width: calc(45% - 4rem);
}
@media screen and (max-width: 834px) {
  .feature__body--list > .feature__list {
    width: 100%;
    max-width: 84rem;
  }
}
.feature__body--list .feature__name {
  word-break: auto-phrase;
  text-wrap: balance;
}

.featureModal__item {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
}
.featureModal__item > .featureModal__img {
  flex: none;
  width: 100%;
}
.featureModal__cap {
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
}

.featureModal--single .featureModal__img--natural {
  flex: 1 1 100%;
  aspect-ratio: auto;
  overflow: visible;
}
.featureModal--single .featureModal__img--natural img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: min(60rem, 60svh);
  margin-inline: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.feature__txt {
  min-width: 0;
}
.feature__name {
  overflow-wrap: anywhere;
  word-break: auto-phrase;
  text-wrap: balance;
}
@media screen and (max-width: 600px) {
  .feature__name {
    font-size: 1.6rem;
    line-height: 1.5;
  }
}
@media screen and (max-width: 600px) {
  .feature__item {
    -moz-column-gap: 1.2rem;
         column-gap: 1.2rem;
  }
}
@media screen and (max-width: 430px) {
  .feature__item {
    flex-direction: column;
    align-items: stretch;
    row-gap: 1.2rem;
  }
}
@media screen and (max-width: 600px) {
  .feature__btn {
    -moz-column-gap: 0.8rem;
         column-gap: 0.8rem;
    padding: 0.8rem 1rem;
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 430px) {
  .feature__btn {
    align-self: flex-end;
  }
}
.feature__lead {
  max-width: 76rem;
  margin: -2.4rem auto 4.8rem;
  padding-inline: 1.6rem;
  font-size: 1.6rem;
  line-height: 1.9;
  text-align: center;
}
@media screen and (max-width: 600px) {
  .feature__lead {
    margin-block: -1.6rem 3.2rem;
    font-size: 1.4rem;
  }
}
.feature__video--file {
  padding: 0;
  border: 0;
  cursor: pointer;
  text-align: inherit;
}

.featureVideo__video {
  display: block;
  width: 100%;
  max-height: 70svh;
  background: #1a1a1a;
}

.featureModal__items {
  max-width: 72rem;
  margin-inline: auto;
  display: grid;
  gap: 3.2rem 2.4rem;
  margin-block-start: 4rem;
  padding-block-start: 3.2rem;
  border-block-start: 0.1rem solid #dde0df;
}
.featureModal__items--c1 {
  grid-template-columns: 1fr;
}
.featureModal__items--c2 {
  grid-template-columns: repeat(2, 1fr);
}
.featureModal__items--c3 {
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 834px) {
  .featureModal__items--c3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 600px) {
  .featureModal__items--c2, .featureModal__items--c3 {
    grid-template-columns: 1fr;
  }
}
.featureModal__subitem {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.featureModal__subimg {
  display: flex;
  justify-content: center;
}
.featureModal__subimg img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: min(40rem, 60svh);
}
@media screen and (max-width: 834px) {
  .featureModal__subimg img {
    max-height: 60svh;
  }
}
.featureModal__movie {
  max-width: 72rem;
  margin-inline: auto;
  margin-block-start: 3.2rem;
}
.featureModal__iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  border: 0;
  background: #1a1a1a;
}
.featureModal__subttl {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
}
.featureModal__subtxt {
  font-size: 1.4rem;
  line-height: 1.9;
}
.featureModal__ttl {
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
@media screen and (max-width: 600px) {
  .featureModal__ttl {
    font-size: 1.8rem;
    line-height: 1.4;
  }
}
@media screen and (max-width: 374px) {
  .featureModal__ttl {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 600px) {
  .featureModal__head {
    -moz-column-gap: 1.2rem;
         column-gap: 1.2rem;
  }
  .featureModal__num {
    font-size: 3.6rem;
  }
}

.modal[id^=modal-feature-] .modal__ttl {
  word-break: auto-phrase;
  overflow-wrap: anywhere;
}

.featureModal__en {
  font-variant-numeric: lining-nums;
}

.title-seg {
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}

.japan__quality-item {
  scroll-margin-top: 136px;
}
@media screen and (max-width: 1440px) {
  .japan__quality-item {
    scroll-margin-top: 100px;
  }
}

.catalog-landing {
  width: 100%;
  padding-block: 4rem 12rem;
}
@media screen and (max-width: 834px) {
  .catalog-landing {
    padding-block-end: 8rem;
  }
}
.catalog-landing .inner {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  max-width: calc(1160px + 8vw);
}
.catalog-landing__ttl {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.4rem, 2.6rem + 0.4vw, 3.2rem);
  line-height: 1.6;
  text-align: center;
}
@media screen and (max-width: 834px) {
  .catalog-landing__ttl {
    font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  }
}
@media screen and (max-width: 600px) {
  .catalog-landing__ttl {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
}
.catalog-landing__wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-column-gap: 6.4rem;
       column-gap: 6.4rem;
}
@media screen and (max-width: 834px) {
  .catalog-landing__wrap {
    -moz-column-gap: 4rem;
         column-gap: 4rem;
  }
}
@media screen and (max-width: 600px) {
  .catalog-landing__wrap {
    flex-direction: column;
    row-gap: 2.4rem;
  }
}
.catalog-landing__cover {
  position: relative;
  flex: none;
  width: 100%;
  max-width: 40rem;
  aspect-ratio: 400/560;
  border-radius: 0.2rem;
  overflow: hidden;
}
@media screen and (max-width: 834px) {
  .catalog-landing__cover {
    max-width: 24rem;
  }
}
.catalog-landing__cover img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.catalog-landing__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1 1 0;
  min-width: 0;
  max-width: 56rem;
  row-gap: 2.4rem;
}
@media screen and (max-width: 600px) {
  .catalog-landing__intro {
    align-items: center;
    width: 100%;
    text-align: center;
  }
}
.catalog-landing__name {
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.2rem, 2.4rem + 0.3vw, 2.8rem);
  line-height: 1.6;
}
@media screen and (max-width: 600px) {
  .catalog-landing__name {
    font-size: clamp(2rem, 2rem + 0.2vw, 2.4rem);
  }
}
.catalog-landing__txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  line-height: 1.6;
}
@media screen and (max-width: 834px) {
  .catalog-landing__txt {
    font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  }
}
@media screen and (max-width: 600px) {
  .catalog-landing__txt {
    text-align: left;
  }
}
.catalog-landing__note {
  font-size: clamp(1.2rem, 1.3rem + 0.05vw, 1.4rem);
  line-height: 1.6;
}
@media screen and (max-width: 600px) {
  .catalog-landing__note {
    text-align: left;
  }
}
@media screen and (max-width: 600px) {
  .catalog-landing__btn {
    width: 100%;
    white-space: normal;
    text-align: center;
  }
}

html.catalog-book-view {
  height: 100%;
  overflow: hidden;
  background-color: #f8f8f8;
}

.catalog-book-view {
  margin: 0;
  overflow: hidden;
  background-color: #f8f8f8;
}

.catalog-book {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}
.catalog-book__ttl {
  position: absolute;
  width: 2px;
  height: 2px;
  margin-block: -2px;
  margin-inline: -2px;
  padding: 0;
  overflow: hidden;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.catalog-book__empty {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: 1.6rem;
  height: 100%;
  padding: 2.4rem;
  text-align: center;
}
.catalog-book__empty-txt {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
}
.catalog-book__empty-link {
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
  text-decoration: underline;
}

@media (hover: none) {
  .showroomDetail__gallery-btn {
    position: relative;
  }
  .showroomDetail__gallery-btn::after {
    content: "";
    position: absolute;
    inset-block-end: 0.4rem;
    inset-inline-end: 0.4rem;
    width: 2.2rem;
    height: 2.2rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%23fff' stroke='%23fff' stroke-width='3.5'/%3E%3Ccircle cx='12' cy='12' r='10' fill='%23fff' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='M12 7.5v9M7.5 12h9' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
    pointer-events: none;
  }
}
.preparing {
  inline-size: 100%;
  padding-block-start: 8rem;
  padding-block-end: 8rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", serif;
  color: #666666;
  text-align: center;
}
@media screen and (max-width: 600px) {
  .preparing {
    padding-block-start: 5.6rem;
    padding-block-end: 5.6rem;
  }
}
.preparing__ttl {
  font-size: clamp(1.6rem, 1.8rem + 0.2vw, 2rem);
  font-weight: 700;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
}
@media screen and (max-width: 600px) {
  .preparing__ttl {
    font-size: clamp(1.6rem, 1.7rem + 0.05vw, 1.8rem);
  }
}
.preparing__phrase {
  display: inline-block;
  max-inline-size: 100%;
}
.preparing__txt {
  margin-block-start: 1.2rem;
  font-size: clamp(1.4rem, 1.5rem + 0.05vw, 1.6rem);
}
.preparing--top {
  padding-block-start: 6.4rem;
  padding-block-end: 6.4rem;
}
@media screen and (max-width: 600px) {
  .preparing--top {
    padding-block-start: 4.8rem;
    padding-block-end: 4.8rem;
  }
}

.showroomDetail__access {
  justify-content: center;
}
.showroomDetail__access > dl:only-child {
  flex: 0 1 calc((100% - 2.4rem) / 2);
}
@media screen and (max-width: 600px) {
  .showroomDetail__access > dl:only-child {
    flex: 1 1 0;
  }
}

/*===================================================================
# ブレークポイントによる表示 / 非表示
===================================================================*/
.show__sp-only { /* spのみ表示 */
  display: none;
}
@media screen and (max-width: 600px) {
  .show__sp-only {
    display: block;
  }
}
.show__sp-only--flex {
  display: none;
}
@media screen and (max-width: 600px) {
  .show__sp-only--flex {
    display: flex;
  }
}
.show__pc-only { /* pcのみ表示 */
  display: block;
}
@media screen and (max-width: 600px) {
  .show__pc-only {
    display: none;
  }
}
.show__pc-only--flex {
  display: flex;
}
@media screen and (max-width: 600px) {
  .show__pc-only--flex {
    display: none;
  }
}