/*!*********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./src/scss/design.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/*-------------------------------------------------------------------------------
  media query
--------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------
  font setting
--------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------
  color setting
--------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------
  space setting
--------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------
  border setting
--------------------------------------------------------------------------------*/
/*!
 * ress.css v1.0.0
 * MIT License
 * top_original reset
 */
/* # =================================================================
   # Global selectors
   # ================================================================= */
html {
  box-sizing: border-box;
  overflow-y: scroll; /* All browsers without overlaying scrollbars */
  -webkit-text-size-adjust: 100%; /* iOS 8+ */
}

*,
::before,
::after {
  background-repeat: no-repeat; /* Set `background-repeat: no-repeat` to all elements and pseudo elements */
  box-sizing: inherit;
}

::before,
::after {
  text-decoration: inherit; /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

* {
  padding: 0; /* Reset `padding` and `margin` of all elements */
  margin: 0;
}
*:focus {
  outline: none;
}

/* # =================================================================
   # General elements
   # ================================================================= */
/* Add the correct display in iOS 4-7.*/
audio:not([controls]) {
  display: none;
  height: 0;
}

hr {
  overflow: visible; /* Show the overflow in Edge and IE */
}

/*
* Correct `block` display not defined for any HTML5 element in IE 8/9
* Correct `block` display not defined for `details` or `summary` in IE 10/11
* and Firefox
* Correct `block` display not defined for `main` in IE 11
*/
html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  display: block;
}

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

ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
  font-weight: normal;
  text-align: left;
}

summary {
  display: list-item; /* Add the correct display in all browsers */
}

small {
  font-size: 80%; /* Set font-size to 80% in `small` elements */
}

[hidden],
template {
  display: none; /* Add the correct display in IE */
}

abbr[title] {
  border-bottom: 1px dotted; /* Add a bordered underline effect in all browsers */
  text-decoration: none; /* Remove text decoration in Firefox 40+ */
}

a {
  background-color: transparent; /* Remove the gray background on active links in IE 10 */
  -webkit-text-decoration-skip: objects; /* Remove gaps in links underline in iOS 8+ and Safari 8+ */
}

a:active,
a:hover {
  outline-width: 0; /* Remove the outline when hovering in all browsers */
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace; /* Specify the font family of code elements */
}

b,
strong {
  font-weight: bolder; /* Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+ */
}

dfn {
  font-style: italic; /* Address styling not present in Safari and Chrome */
}

/* Address styling not present in IE 8/9 */
mark {
  background-color: #ff0;
  color: #000;
}

/* https://gist.github.com/unruthless/413930 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* # =================================================================
   # Forms
   # ================================================================= */
input {
  border-radius: 0;
}

/* Apply cursor pointer to button elements */
button,
[type=button],
[type=reset],
[type=submit],
[role=button] {
  cursor: pointer;
}

/* Replace pointer cursor in disabled elements */
[disabled] {
  cursor: default;
}

[type=number] {
  width: auto; /* Firefox 36+ */
}

[type=search] {
  -webkit-appearance: textfield; /* Safari 8+ */
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none; /* Safari 8 */
}

textarea {
  overflow: auto; /* Internet Explorer 11+ */
  resize: vertical; /* Specify textarea resizability */
}

button,
input,
optgroup,
select,
textarea {
  font: inherit; /* Specify font inheritance of form elements */
  margin: 0;
}

optgroup {
  font-weight: bold; /* Restore the font weight unset by the previous rule. */
}

button {
  overflow: visible; /* Address `overflow` set to `hidden` in IE 8/9/10/11 */
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: 0;
  padding: 0;
}

/* Replace focus style removed in the border reset above */
button:-moz-focusring,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  outline: 1px dotted ButtonText;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* Correct the inability to style clickable types in iOS */
}

button,
select {
  text-transform: none; /* Firefox 40+, Internet Explorer 11- */
}

/* Remove the default button styling in all browsers */
button,
input,
select,
textarea {
  background-color: transparent;
  border-style: none;
  color: inherit;
}

/* Style select like a standard input */
select {
  -moz-appearance: none; /* Firefox 36+ */
  -webkit-appearance: none; /* Chrome 41+ */
}

select::-ms-expand {
  display: none; /* Internet Explorer 11+ */
}

select::-ms-value {
  color: currentColor; /* Internet Explorer 11+ */
}

legend {
  border: 0; /* Correct `color` not being inherited in IE 8/9/10/11 */
  color: inherit; /* Correct the color inheritance from `fieldset` elements in IE */
  display: table; /* Correct the text wrapping in Edge and IE */
  max-width: 100%; /* Correct the text wrapping in Edge and IE */
  white-space: normal; /* Correct the text wrapping in Edge and IE */
}

::-webkit-file-upload-button {
  -webkit-appearance: button; /* Correct the inability to style clickable types in iOS and Safari */
  font: inherit; /* Change font properties to `inherit` in Chrome and Safari */
}

[type=search] {
  -webkit-appearance: textfield; /* Correct the odd appearance in Chrome and Safari */
  outline-offset: -2px; /* Correct the outline style in Safari */
}

/* # =================================================================
   # Specify media element style
   # ================================================================= */
img {
  border-style: none; /* Remove border when inside `a` element in IE 8/9/10 */
}

/* Add the correct vertical alignment in Chrome, Firefox, and Opera */
progress {
  vertical-align: baseline;
}

svg:not(:root) {
  overflow: hidden; /* Internet Explorer 11- */
}

audio,
canvas,
progress,
video {
  display: inline-block; /* Internet Explorer 11+, Windows Phone 8.1+ */
}

iframe {
  border: 0;
}

/* # =================================================================
   # Accessibility
   # ================================================================= */
/* Hide content from screens but not screenreaders */
@media screen {
  [hidden~=screen] {
    display: inherit;
  }
  [hidden~=screen]:not(:active):not(:focus):not(:target) {
    position: absolute !important;
    clip: rect(0 0 0 0) !important;
  }
}
/* Specify the progress cursor of updating elements */
[aria-busy=true] {
  cursor: progress;
}

/* Specify the pointer cursor of trigger elements */
[aria-controls] {
  cursor: pointer;
}

/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
[aria-disabled] {
  cursor: default;
}

/* # =================================================================
   # Selection
   # ================================================================= */
/* Specify text selection background color and omit drop shadow */
::-moz-selection {
  background-color: #b3d4fc; /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

::selection {
  background-color: #b3d4fc; /* Required when declaring ::selection */
  color: #000;
  text-shadow: none;
}

/*-------------------------------------------------------------------------------
  default style
--------------------------------------------------------------------------------*/
* {
  box-sizing: border-box;
  word-break: break-all;
}

html {
  font-size: 100%;
}

/**
 * メディアクエリ
 *
 * @param {number} $size 画面サイズ
 * @param {string} $width max or min
 * @param {string} $orientation デバイスの向き portrait or landscape
 */
/**
 * 単位を除いた数値を返す
 *
 * @param {number} $value 単位あり数値
 * @return {number} 単位なし数値
 * @example strip-unit(16px) => 16
 *          strip-unit(1rem) => 1
 */
/**
 * pxをremで返す
 *
 * @param {number} $number pxサイズ
 * @return {number} 単位ありremサイズ
 * @example $root-font-size : 16px の場合
 *          rem(10) 10px => 0.625rem
 */
/**
 * clampを使用した可変サイズ指定関数
 *
 * @param {number} $min-size 最小サイズpx
 * @param {number} $max-size 最大サイズpx
 * @param {number} $min-viewport-px 最小ビューポートpx
 * @param {number} $max-viewport-px 最大ビューポートpx
 * @return {string} clamp
 * @example fluid(16, 32) => clamp(1rem, 1.67vw + 0.667rem, 2rem)
 *           320pxから1280pxの間で16pxから32pxまでサイズが変わる
 *          fluid(10px, 18px, 480px, 1024px) => clamp(0.625rem, 1.47vw + 0.184rem, 1.125rem)
 *           480pxから1024pxの間で10pxから18pxまでサイズが変わる
 */
/**
 * フォントサイズ
 *
 * @param {number} $pixel フォントサイズ、px基準で指定
 */
/**
 * 可変フォントサイズ
 *
 * @param {number} $min-px 最小サイズpx
 * @param {number} $max-px 最大サイズpx
 * @param {number} $min-viewport-px 最小ビューポートpx
 * @param {number} $max-viewport-px 最大ビューポートpx
 */
/**
 * フォント一括設定
 *
 * @param {number} $fontWeight フォントの太さ
 * @param {number} $letterSpacing 文字間
 * @param {number} $lineHeight 行間
 * @param {string} $fontFamily フォントファミリー
 */
/**
 * トランジション
 *
 * @param {number} $time トランジションの時間
 * @param {string} $easing イージングの指定
 */
/**
 * 疑似要素を使用したアイコンフォント
 *
 * @param {string} $code アイコンコード
 * @param {number} $size フォントサイズ
 * @param {number} $weight フォントウェイト
 * @param {string} $color フォントカラー
 * @param {string} $family フォントファミリー Material Symbols Outlined or Font Awesome 6 Pro
 */
/**
 * スクロールバー
 *
 * @param {number} $width 横幅
 * @param {number} $track-color トラックの色
 * @param {number} $thumb-color スクロールバーの色
 */
/**
 * object-fit: cover
 */
/**
 * 共通グラデーション背景
 */
/**
 * 基本ロゴマーク
 */
/**
  * youtubeアイコンボタン
  */
/*-------------------------------------------------------------------------------
  form 設定
--------------------------------------------------------------------------------*/
.contact_form_unit {
  /* 全体の余白変数 */
  --space-size: 10px;
  --head-width: 250px;
  /* ラジオボタン変数 */
  --radio-outer: 20px;
  --radio-inner: 10px;
  /* チェックボックス変数 */
  --checkbox-outer: 20px;
  --checkbox-inner: 10px;
  /* スクロールバー変数 */
  --scroll-width: 5px;
  --track-color: #ffffff;
  --thumb-color: #7F7F7F;
  padding-top: calc(var(--space-size) * 6);
  /* テーブル・リスト */
}
.contact_form_unit table {
  border-collapse: separate;
  border-spacing: 0 var(--space-size);
}
.contact_form_unit dl {
  display: flex;
}
.contact_form_unit dl dt {
  flex-shrink: 0;
  height: -moz-fit-content;
  height: fit-content;
}
.contact_form_unit tr th, .contact_form_unit tr dt, .contact_form_unit dl th, .contact_form_unit dl dt {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 1.0869565217vw + 0.964673913rem, 2.1875rem);
}
.contact_form_unit tr th .item_label_required, .contact_form_unit tr dt .item_label_required, .contact_form_unit dl th .item_label_required, .contact_form_unit dl dt .item_label_required {
  padding: 0.1em 0.5em;
  color: #ffffff;
  background-color: #7F7F7F;
  border-radius: 5px;
}
.contact_form_unit tr th .item_label_required > span, .contact_form_unit tr dt .item_label_required > span, .contact_form_unit dl th .item_label_required > span, .contact_form_unit dl dt .item_label_required > span {
  display: block;
  font-size: 0.8rem;
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  width: 100%;
}
@media (max-width: 768px) {
  .contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
    display: block;
  }
}
.contact_form_unit tr td > input,
.contact_form_unit tr td > select,
.contact_form_unit tr td > textarea, .contact_form_unit tr dd > input,
.contact_form_unit tr dd > select,
.contact_form_unit tr dd > textarea, .contact_form_unit dl td > input,
.contact_form_unit dl td > select,
.contact_form_unit dl td > textarea, .contact_form_unit dl dd > input,
.contact_form_unit dl dd > select,
.contact_form_unit dl dd > textarea {
  padding: clamp(0.875rem, 0.2898550725vw + 0.7989130435rem, 1.125rem) clamp(0.9375rem, 0.3623188406vw + 0.8423913043rem, 1.25rem);
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  /* セレクトボックス */
}
.contact_form_unit tr td:has(select), .contact_form_unit tr dd:has(select), .contact_form_unit dl td:has(select), .contact_form_unit dl dd:has(select) {
  position: relative;
}
.contact_form_unit tr td:has(select)::before, .contact_form_unit tr dd:has(select)::before, .contact_form_unit dl td:has(select)::before, .contact_form_unit dl dd:has(select)::before {
  content: "▼";
  position: absolute;
  top: 50%;
  right: calc(var(--space-size) * 2);
  transform: translateY(-50%);
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  /* テキストエリア */
}
.contact_form_unit tr td textarea, .contact_form_unit tr dd textarea, .contact_form_unit dl td textarea, .contact_form_unit dl dd textarea {
  height: 200px;
  display: block;
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  /* ラジオボタン */
}
.contact_form_unit tr td .radio_list > li label input[type=radio], .contact_form_unit tr dd .radio_list > li label input[type=radio], .contact_form_unit dl td .radio_list > li label input[type=radio], .contact_form_unit dl dd .radio_list > li label input[type=radio] {
  display: none;
}
.contact_form_unit tr td .radio_list > li label input[type=radio] + .radio_text, .contact_form_unit tr dd .radio_list > li label input[type=radio] + .radio_text, .contact_form_unit dl td .radio_list > li label input[type=radio] + .radio_text, .contact_form_unit dl dd .radio_list > li label input[type=radio] + .radio_text {
  display: flex;
  align-items: center;
  gap: var(--space-size);
  position: relative;
}
.contact_form_unit tr td .radio_list > li label input[type=radio] + .radio_text::before, .contact_form_unit tr dd .radio_list > li label input[type=radio] + .radio_text::before, .contact_form_unit dl td .radio_list > li label input[type=radio] + .radio_text::before, .contact_form_unit dl dd .radio_list > li label input[type=radio] + .radio_text::before {
  content: "";
  width: var(--radio-outer);
  aspect-ratio: 1;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid #7F7F7F;
}
.contact_form_unit tr td .radio_list > li label input[type=radio] + .radio_text::after, .contact_form_unit tr dd .radio_list > li label input[type=radio] + .radio_text::after, .contact_form_unit dl td .radio_list > li label input[type=radio] + .radio_text::after, .contact_form_unit dl dd .radio_list > li label input[type=radio] + .radio_text::after {
  content: "";
  width: var(--radio-inner);
  aspect-ratio: 1;
  border-radius: 50%;
  position: absolute;
  left: calc((var(--radio-outer) - var(--radio-inner)) / 2);
  transition: all 0.3s ease;
}
.contact_form_unit tr td .radio_list > li label input[type=radio]:checked + span::after, .contact_form_unit tr dd .radio_list > li label input[type=radio]:checked + span::after, .contact_form_unit dl td .radio_list > li label input[type=radio]:checked + span::after, .contact_form_unit dl dd .radio_list > li label input[type=radio]:checked + span::after {
  background-color: #7F7F7F;
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  /* チェックボックス */
}
.contact_form_unit tr td .check_list > li .label_checkbox .check_text, .contact_form_unit tr dd .check_list > li .label_checkbox .check_text, .contact_form_unit dl td .check_list > li .label_checkbox .check_text, .contact_form_unit dl dd .check_list > li .label_checkbox .check_text {
  display: flex;
  align-items: center;
  gap: var(--space-size);
  position: relative;
}
.contact_form_unit tr td .check_list > li .label_checkbox .check_text::before, .contact_form_unit tr dd .check_list > li .label_checkbox .check_text::before, .contact_form_unit dl td .check_list > li .label_checkbox .check_text::before, .contact_form_unit dl dd .check_list > li .label_checkbox .check_text::before {
  content: "";
  width: var(--checkbox-outer);
  aspect-ratio: 1;
  border: 1px solid #7F7F7F;
}
.contact_form_unit tr td .check_list > li .label_checkbox .check_text::after, .contact_form_unit tr dd .check_list > li .label_checkbox .check_text::after, .contact_form_unit dl td .check_list > li .label_checkbox .check_text::after, .contact_form_unit dl dd .check_list > li .label_checkbox .check_text::after {
  content: "";
  width: var(--checkbox-inner);
  aspect-ratio: 1;
  position: absolute;
  top: calc(50% - var(--checkbox-inner) / 2);
  left: calc((var(--checkbox-outer) - var(--checkbox-inner)) / 2);
  transition: all 0.3s ease;
}
.contact_form_unit tr td .check_list > li .label_checkbox .check_text.checked::after, .contact_form_unit tr dd .check_list > li .label_checkbox .check_text.checked::after, .contact_form_unit dl td .check_list > li .label_checkbox .check_text.checked::after, .contact_form_unit dl dd .check_list > li .label_checkbox .check_text.checked::after {
  background: #7F7F7F;
}
.contact_form_unit tr td, .contact_form_unit tr dd, .contact_form_unit dl td, .contact_form_unit dl dd {
  /* ファイルアップロード */
}
.contact_form_unit tr td .uploaded_file p span, .contact_form_unit tr dd .uploaded_file p span, .contact_form_unit dl td .uploaded_file p span, .contact_form_unit dl dd .uploaded_file p span {
  font-size: 0.8rem;
  margin-left: 0.5rem;
}
.contact_form_unit {
  /* プライバシーポリシー */
}
.contact_form_unit .form_privacy_unit {
  margin-top: calc(var(--space-size) * 3);
}
.contact_form_unit .form_privacy_unit .form_privacy_block {
  padding: calc(var(--space-size) * 3);
  background-color: #f0f0f0;
  border-radius: 5px;
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_ttl {
  font-weight: bold;
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item {
  height: 200px;
  margin-top: calc(var(--space-size) * 2);
  overflow-y: scroll;
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item::-webkit-scrollbar {
  width: var(--scroll-width);
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item::-webkit-scrollbar-track {
  background: var(--track-color);
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item::-webkit-scrollbar-thumb {
  background: var(--thumb-color);
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item .privacy_text {
  padding-right: calc(var(--space-size) * 2);
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item .privacy_text + .privacy_text {
  margin-top: 1em;
}
.contact_form_unit .form_privacy_unit .form_privacy_block .form_privacy_item .privacy_text .highlight {
  display: block;
  font-weight: bold;
}
.contact_form_unit .form_privacy_unit {
  /* プライバシーポリシー同意 checkbox */
}
.contact_form_unit .form_privacy_unit .form_privacy_check {
  width: -moz-fit-content;
  width: fit-content;
  margin: calc(var(--space-size) * 2) auto 0;
}
.contact_form_unit .form_privacy_unit .form_privacy_check .label_checkbox .check_text {
  display: flex;
  align-items: center;
  gap: var(--space-size);
  position: relative;
}
.contact_form_unit .form_privacy_unit .form_privacy_check .label_checkbox .check_text::before {
  content: "";
  width: var(--checkbox-outer);
  aspect-ratio: 1;
  border: 1px solid #7F7F7F;
}
.contact_form_unit .form_privacy_unit .form_privacy_check .label_checkbox .check_text::after {
  content: "";
  width: var(--checkbox-inner);
  aspect-ratio: 1;
  position: absolute;
  top: calc(50% - var(--checkbox-inner) / 2);
  left: calc((var(--checkbox-outer) - var(--checkbox-inner)) / 2);
  transition: all 0.3s ease;
}
.contact_form_unit .form_privacy_unit .form_privacy_check .label_checkbox .check_text.checked::after {
  background: #7F7F7F;
}
.contact_form_unit .form_privacy_unit .form_privacy_check .policy_error {
  text-align: center;
}
.contact_form_unit {
  /* 送信ボタン */
}
.contact_form_unit .form_actions {
  width: -moz-fit-content;
  width: fit-content;
  display: flex;
  gap: calc(var(--space-size) * 10);
  margin: calc(var(--space-size) * 4) auto 0;
}
@media (max-width: 768px) {
  .contact_form_unit .form_actions {
    flex-direction: column;
    gap: calc(var(--space-size) * 2);
  }
}
.contact_form_unit .form_actions .btn_contact_submit.disable > span {
  display: block;
  color: #e75b74;
}
.contact_form_unit {
  /* ハニーポット非表示 */
}
.contact_form_unit input[name=mail_confirm] {
  display: none;
}
.contact_form_unit {
  /* エラーメッセージの指定 */
}
.contact_form_unit .item_error_list,
.contact_form_unit .policy_error {
  margin-top: 0.2rem;
  font-size: 0.8rem;
  color: #e75b74;
}
.contact_form_unit {
  /* エラー時の背景色 */
}
.contact_form_unit.form_input .has_error {
  background-color: rgba(231, 91, 116, 0.1);
}
.contact_form_unit {
  /* 確認画面 */
}
.contact_form_unit.form_confirm table {
  border-spacing: 0 calc(var(--space-size) * 4);
}
.contact_form_unit.form_confirm dl {
  margin-top: calc(var(--space-size) * 4);
}
.contact_form_unit {
  /* 送信完了画面 */
}
.contact_form_unit.form_thanks h3 {
  font-size: 24px;
  font-size: 1.5rem;
}
.contact_form_unit.form_thanks p {
  margin-top: calc(var(--space-size) * 3);
}

/*-------------------------------------------------------------------------------
  loading item
--------------------------------------------------------------------------------*/
.loading_mask {
  width: 100%;
  height: 100%;
  position: fixed;
  inset: 0;
  z-index: 9999;
  transform: translateZ(0);
  -webkit-font-smoothing: antialiased;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 1;
  visibility: visible;
  pointer-events: none;
  /**
   * ■ JS無効時・エラー時の対策（フェイルセーフ）
   * 万が一JSが動かなくても、3秒待って強制的に消えるアニメーションを入れておく
   * JSが正常に動けば、GSAPがこのCSSアニメーションより先に上書きして動くので問題ありません
   */
  animation-name: noScriptLoading;
  animation-duration: 0.8s;
  animation-delay: 3s;
  animation-fill-mode: forwards;
}

@keyframes noScriptLoading {
  0% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}
/*-------------------------------------------------------------------------------
  JSで生成されるロゴのスタイル
--------------------------------------------------------------------------------*/
.loading_logo {
  display: block;
  width: clamp(7.5rem, 5.7971014493vw + 5.9782608696rem, 12.5rem);
  aspect-ratio: 249/82;
  background-color: #333333;
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: clamp(7.5rem, 5.7971014493vw + 5.9782608696rem, 12.5rem);
          mask-size: clamp(7.5rem, 5.7971014493vw + 5.9782608696rem, 12.5rem);
  -webkit-mask-image: url(../images/logo-mark.svg);
          mask-image: url(../images/logo-mark.svg);
  opacity: 0;
  backface-visibility: hidden;
  transform-style: preserve-3d;
  will-change: transform, opacity;
}

/*-------------------------------------------------------------------------------
  modal image
--------------------------------------------------------------------------------*/
.modal-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}
.modal-wrapper .modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 1000;
}
.modal-wrapper .modal-close > span {
  display: block;
  font-size: clamp(1.875rem, 1.3661202186vw + 1.2192622951rem, 2.5rem);
  color: #ffffff;
}
.modal-wrapper .modal-inner {
  display: flex;
  align-items: center;
  flex-direction: column;
  row-gap: 10px;
}
.modal-wrapper .modal-inner .modal-item .modal-img,
.modal-wrapper .modal-inner .modal-item .modal-iframe {
  max-width: 90vw;
  max-height: 90vh;
  vertical-align: bottom;
}
@media (max-width: 768px) {
  .modal-wrapper .modal-inner .modal-item .modal-img,
  .modal-wrapper .modal-inner .modal-item .modal-iframe {
    max-width: 100vmin;
  }
}
.modal-wrapper .modal-inner .modal-gallery {
  width: 100%;
}
.modal-wrapper .modal-inner .modal-gallery .modal-btns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
}
.modal-wrapper .modal-inner .modal-gallery .modal-btns .modal-count > span,
.modal-wrapper .modal-inner .modal-gallery .modal-btns .modal-prev > span,
.modal-wrapper .modal-inner .modal-gallery .modal-btns .modal-next > span {
  display: block;
  font-size: clamp(1rem, 0.5464480874vw + 0.737704918rem, 1.25rem);
  letter-spacing: 0.4em;
  margin-right: -0.4em;
  color: #ffffff;
}
.modal-wrapper .modal-inner .modal-gallery .modal-btns {
  /* ← が表示されてないときに真ん中に表示したい用 */
}
.modal-wrapper .modal-inner .modal-gallery .modal-btns {
  /* → が表示されてないときに真ん中に表示したい用 */
}
.modal-wrapper button:focus {
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.5), -2px 0 15px rgba(51, 51, 51, 0.2), 2px 0 15px rgba(127, 127, 127, 0.5);
}

/*-------------------------------------------------------------------------------
  一覧ページのページャ
--------------------------------------------------------------------------------*/
.pagination_unit {
  display: flex;
}
.pagination_unit .pagination_prev button.hidden, .pagination_unit .pagination_next button.hidden {
  visibility: hidden;
}

.pagination_btns_list {
  display: flex;
}
.pagination_btns_list li.current {
  pointer-events: none;
}

/*-------------------------------------------------------------------------------
  詳細ページのページャ
--------------------------------------------------------------------------------*/
.single-pager_unit {
  display: flex;
}

/*-------------------------------------------------------------------------------
  body global
--------------------------------------------------------------------------------*/
body {
  font-size: 16px;
  font-size: 1rem;
  color: #333333;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  line-height: 1.5;
  background: #ffffff;
  overflow-x: hidden;
}

/*-------------------------------------------------------------------------------
  img global
--------------------------------------------------------------------------------*/
img {
  max-width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/*-------------------------------------------------------------------------------
  link global
--------------------------------------------------------------------------------*/
a {
  color: #7F7F7F;
  text-decoration: none;
}
@media (min-width: 769px) {
  a {
    transition: all 0.3s ease;
  }
}
a[href], a[data-href] {
  cursor: pointer;
}

/*-------------------------------------------------------------------------------
  table global
--------------------------------------------------------------------------------*/
table {
  width: 100%;
}
table th {
  font-weight: bold;
  vertical-align: text-top;
}
table th,
table td {
  text-align: left;
}

/*-------------------------------------------------------------------------------
  text global
--------------------------------------------------------------------------------*/
strong,
b {
  font-weight: bold;
}

em {
  font-style: italic;
}

/*-------------------------------------------------------------------------------
  input global
--------------------------------------------------------------------------------*/
input[type=text],
input[type=tel],
input[type=email],
input[type=url],
input[type=search],
input[type=password],
input[type=number],
input[type=file],
input[type=date],
textarea {
  width: 100%;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
input[type=text]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=url]::-moz-placeholder, input[type=search]::-moz-placeholder, input[type=password]::-moz-placeholder, input[type=number]::-moz-placeholder, input[type=file]::-moz-placeholder, input[type=date]::-moz-placeholder, textarea::-moz-placeholder {
  color: #B1B1B1;
}
input[type=text]::placeholder,
input[type=tel]::placeholder,
input[type=email]::placeholder,
input[type=url]::placeholder,
input[type=search]::placeholder,
input[type=password]::placeholder,
input[type=number]::placeholder,
input[type=file]::placeholder,
input[type=date]::placeholder,
textarea::placeholder {
  color: #B1B1B1;
}

select,
label {
  width: 100%;
  cursor: pointer;
}

/*-------------------------------------------------------------------------------
  input button global
--------------------------------------------------------------------------------*/
input[type=submit],
input[type=reset],
input[type=button],
button {
  cursor: pointer;
}
@media (min-width: 769px) {
  input[type=submit],
  input[type=reset],
  input[type=button],
  button {
    transition: all 0.3s ease;
  }
}

/*-------------------------------------------------------------------------------
  cmn
--------------------------------------------------------------------------------*/
::-webkit-scrollbar {
  background: #D9D9D9;
  width: 5px;
}

::-webkit-scrollbar-thumb {
  background-color: #7F7F7F;
}

html {
  scroll-behavior: smooth;
}

/*---------- base_wrapper ----------*/
:root {
  --wrapper_width: 1560px; /* 基準 */
  --wrapper_width_narrow: 1200px; /* 狭い */
  --wrapper_width_small: 1000px; /* 小さい */
}

.base_wrapper {
  width: 100%;
  max-width: calc(var(--wrapper_width) + 18vw);
  margin: 0 auto;
  padding: 0 9vw;
}
.base_wrapper.narrow {
  max-width: calc(var(--wrapper_width_narrow) + 38vw);
  padding: 0 19vw;
}
.base_wrapper.small {
  max-width: calc(var(--wrapper_width_small) + 48vw);
  padding: 0 24vw;
}
@media (max-width: 1064px) {
  .base_wrapper {
    padding: 0 7vw;
  }
  .base_wrapper.narrow {
    padding: 0 9vw;
  }
  .base_wrapper.small {
    padding: 0 10vw;
  }
}
@media (max-width: 768px) {
  .base_wrapper {
    padding: 0 4vw;
  }
  .base_wrapper.narrow {
    padding: 0 4vw;
  }
  .base_wrapper.small {
    padding: 0 4vw;
  }
}

/*---------- sp link tel ----------*/
a[href=""] {
  pointer-events: none;
}
a[href^="tel:"] {
  cursor: default;
  pointer-events: none;
}
@media (max-width: 768px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}

/*---------- br ----------*/
@media (min-width: 481px) {
  .sm_only {
    display: none;
  }
}

@media (min-width: 769px) {
  .sp_only {
    display: none;
  }
}

@media (max-width: 768px) {
  .pc_only {
    display: none;
  }
}

/*---------- boxer --------*/
.boxer {
  width: 100%;
  height: 100%;
  overflow: hidden;
  vertical-align: top;
  transition: all 0.3s ease;
}
.boxer img {
  transition: all 0.3s ease;
}
.boxer + .boxer {
  display: none;
}
@media (min-width: 769px) {
  .boxer:hover {
    opacity: 1;
  }
  .boxer:hover img {
    transform: scale(1.1);
  }
}
@media (min-width: 769px) and (max-width: 768px) {
  .boxer:hover img {
    transform: none;
  }
}

/*---------- center ----------*/
.center {
  margin: 0 auto;
  text-align: center;
}
@media (max-width: 768px) {
  .center {
    text-align: left;
  }
}

/*---------- aタグ処理 ----------*/
a {
  display: block;
  cursor: pointer;
}

/*---------- title ----------*/
.cmn_title {
  display: block;
  margin-bottom: clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
}
.cmn_title .cmn_title_en {
  display: block;
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(2.25rem, 3.5416666667vw + 1.1875rem, 4.375rem);
  color: #7F7F7F;
  margin-bottom: clamp(0rem, 0.3623188406vw + -0.0951086957rem, 0.3125rem);
  white-space: nowrap;
}
.cmn_title .cmn_title_en.white {
  color: #ffffff;
}
.cmn_title .cmn_title_ja {
  display: block;
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.25rem, 1.5625vw + 0.78125rem, 2.1875rem);
  color: #333333;
}
.cmn_title .cmn_title_ja.white {
  color: #ffffff;
}

/*---------- text ----------*/
.base_text {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
}
.base_text.white {
  color: #ffffff;
}

/*---------- btn ----------*/
.btn_wrapper {
  margin-top: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem);
}

.cmn_btn {
  display: inline-flex;
  align-items: center;
  color: #333333;
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
}
.cmn_btn .cmn_btn_text {
  position: relative;
}
.cmn_btn .cmn_btn_text::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 1px;
  background-color: #333333;
  transition: width 0.4s ease;
}
.cmn_btn .arrow_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  width: clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem);
  aspect-ratio: 1/1;
  border-radius: 50%;
  background-color: #333333;
  position: relative;
  overflow: hidden;
}
.cmn_btn .arrow_icon::before {
  content: "\f8ce";
  display: block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.125rem, 0.8333333333vw + 0.875rem, 1.625rem);
  font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
  color: #ffffff;
  transition: transform 0.4s ease;
}
@media (min-width: 769px) {
  .cmn_btn:hover .cmn_btn_text::after {
    width: 100%;
  }
  .cmn_btn:hover .arrow_icon::before {
    animation: arrowMove 0.6s ease forwards;
  }
}

.btn_right-wrapper {
  text-align: right;
  margin-top: clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
}

/*---------- arrow animation ----------*/
/* 左上から右下へ動くアニメーション */
@keyframes arrowMove {
  0% {
    transform: translate(0, 0);
    opacity: 1;
  }
  49% {
    transform: translate(100%, -100%);
    opacity: 0;
  }
  50% {
    transform: translate(-100%, 100%);
    opacity: 0;
  }
  100% {
    transform: translate(0, 0);
    opacity: 1;
  }
}
/* 右下から左上へ動くアニメーション */
@keyframes arrowMoveReverse {
  0% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(-150%, -150%);
  }
  51% {
    transform: translate(150%, 150%);
  }
  100% {
    transform: translate(0, 0);
  }
}
/*---------- background decoration ----------*/
.circle {
  position: absolute;
  border-radius: 50%;
  background: linear-gradient(36.25deg, #989898 14%, #EDEDED 45%, #626262 86%);
  aspect-ratio: 1/1;
  overflow: hidden;
  z-index: -1;
  width: clamp(8.75rem, 14.4927536232vw + 4.9456521739rem, 21.25rem);
}
.circle-middle {
  width: clamp(6.875rem, 7.2463768116vw + 4.972826087rem, 13.125rem);
}
.circle-small {
  width: clamp(2.1875rem, 2.5362318841vw + 1.5217391304rem, 4.375rem);
}

.square {
  position: absolute;
  width: clamp(5.625rem, 10.5072463768vw + 2.8668478261rem, 14.6875rem);
  background: linear-gradient(36.25deg, #989898 14%, #EDEDED 45%, #626262 86%);
  aspect-ratio: 1/1;
  overflow: hidden;
  z-index: -1;
}
.square-small {
  width: clamp(2.5rem, 4.6376811594vw + 1.2826086957rem, 6.5rem);
}

/*---------- pagination ----------*/
.pagination_wrapper {
  display: block;
  width: 100%;
  margin-top: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem);
  padding: 0 4vw;
}

.nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(0.375rem, 0.652173913vw + 0.2038043478rem, 0.9375rem);
  font-size: clamp(1rem, 0.7291666667vw + 0.78125rem, 1.4375rem);
  font-weight: 400;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  color: #333333;
}

.page-numbers {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #333333;
  width: clamp(2.1875rem, 1.0869565217vw + 1.902173913rem, 3.125rem);
  aspect-ratio: 1/1;
}
.page-numbers::after {
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #CACACA;
  z-index: -1;
  transition: all 0.3s ease;
}
.page-numbers.current {
  color: #fff;
}
.page-numbers.current::after {
  border: none;
  background: #333333;
}
.page-numbers.dots {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin: 0 10px;
}
@media (max-width: 768px) {
  .page-numbers.dots {
    margin: 0 -6px;
  }
}
.page-numbers.dots::after {
  display: none;
}
.page-numbers.prev {
  margin-right: clamp(0.875rem, 1.7424242424vw + 0.3522727273rem, 2.3125rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
}
@media (max-width: 768px) {
  .page-numbers.prev {
    margin-right: 10px;
  }
}
.page-numbers.next {
  margin-left: clamp(0.875rem, 1.7424242424vw + 0.3522727273rem, 2.3125rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
}
@media (max-width: 768px) {
  .page-numbers.next {
    margin-left: 10px;
  }
}
@media (min-width: 769px) {
  .page-numbers:hover {
    color: #fff;
  }
  .page-numbers:hover::after {
    background: #898989;
  }
}

/*-------------------------------------------------------------------------------
  header
--------------------------------------------------------------------------------*/
.fixed_hd {
  position: fixed;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(0.9375rem, 0.3623188406vw + 0.8423913043rem, 1.25rem) clamp(0.5625rem, 2.9710144928vw + -0.2173913043rem, 3.125rem);
  top: 0;
  left: 0;
  width: 100%;
  z-index: 50;
  background-color: #ffffff;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
  transform: translateY(0);
  opacity: 1;
}
.fixed_hd.is-hidden {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
@media (max-width: 768px) {
  .fixed_hd.is-hidden {
    transform: translateY(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}
.fixed_hd:not(.is-hidden) {
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.header_logo {
  display: inline-flex;
  align-items: center;
}
.header_logo .logo_mark {
  display: block;
  width: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
  aspect-ratio: 249/82;
  background-color: #333333;
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
          mask-size: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
  -webkit-mask-image: url(../images/logo-mark.svg);
          mask-image: url(../images/logo-mark.svg);
  margin-right: clamp(0.3125rem, 0.7971014493vw + 0.1032608696rem, 1rem);
}
.header_logo .logo_type {
  inset: 0;
  display: block;
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.125rem, 1.0416666667vw + 0.8125rem, 1.75rem);
  color: #333333;
}

.nav-horizontal {
  display: flex;
  align-items: center;
  gap: clamp(0.9375rem, 2.0380434783vw + -0.417798913rem, 1.875rem);
}
.nav-horizontal .hd_nav {
  display: flex;
  align-items: center;
  gap: clamp(0.9375rem, 2.0380434783vw + -0.417798913rem, 1.875rem);
}
.nav-vertical {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.25rem, 1.4492753623vw + 0.8695652174rem, 2.5rem);
}
.nav-vertical .hd_nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
}

.hd_nav {
  display: block;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.4076086957vw + 0.6664402174rem, 1.125rem);
}
@media (max-width: 768px) {
  .hd_nav {
    font-size: clamp(1rem, 0.1552795031vw + 0.9592391304rem, 1.0625rem);
  }
}
.hd_nav a {
  position: relative;
  display: block;
  color: #333333;
  z-index: 1;
}
.hd_nav a::before {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #7F7F7F;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}
@media (max-width: 1064px) {
  .hd_nav a::before {
    bottom: 0;
    height: 100%;
    background-color: #d1d1d1;
  }
}
@media (min-width: 769px) {
  .hd_nav a:hover {
    color: #B1B1B1;
  }
}

.side-hd {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: clamp(1.25rem, 2.9069767442vw + -0.1453488372rem, 3.125rem);
  background-color: #ffffff;
  z-index: 50;
}
@media (max-width: 768px) {
  .side-hd {
    display: none;
  }
}

.side-hd_logo {
  display: block;
  width: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
  aspect-ratio: 249/82;
  background-color: #333333;
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
          mask-size: clamp(6.25rem, 5.8695652174vw + 4.7092391304rem, 11.3125rem);
  -webkit-mask-image: url(../images/logo-mark.svg);
          mask-image: url(../images/logo-mark.svg);
  margin-bottom: clamp(2.5rem, 4.347826087vw + 1.3586956522rem, 6.25rem);
}

.youtube_btn {
  display: inline-block;
  width: clamp(2.5rem, 0.4347826087vw + 2.3858695652rem, 2.875rem);
  aspect-ratio: 46/32;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 32"><path fill="%23282828" d="M45.042 4.99718C44.5119 3.02916 42.9555 1.4826 40.9751 0.955786C37.3854 0 23 0 23 0C23 0 8.61459 0 5.02865 0.955786C3.04824 1.4826 1.49193 3.02916 0.961804 4.99718C0 8.56068 0 16 0 16C0 16 0 23.4393 0.961804 27.0028C1.49193 28.9708 3.04824 30.5174 5.02865 31.0442C8.61459 32 23 32 23 32C23 32 37.3854 32 40.9714 31.0442C42.9518 30.5174 44.5081 28.9708 45.0382 27.0028C46 23.4393 46 16 46 16C46 16 46 8.56068 45.0382 4.99718H45.042Z" /><path fill="%23ffffff" d="M18.3992 22.8561V9.14392L30.3536 16L18.3992 22.8561Z" /></svg>');
  background-repeat: no-repeat;
  transition: all 0.4s ease;
}
@media (min-width: 769px) {
  .youtube_btn:hover {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 46 32"><path fill="%23FF0000" d="M45.042 4.99718C44.5119 3.02916 42.9555 1.4826 40.9751 0.955786C37.3854 0 23 0 23 0C23 0 8.61459 0 5.02865 0.955786C3.04824 1.4826 1.49193 3.02916 0.961804 4.99718C0 8.56068 0 16 0 16C0 16 0 23.4393 0.961804 27.0028C1.49193 28.9708 3.04824 30.5174 5.02865 31.0442C8.61459 32 23 32 23 32C23 32 37.3854 32 40.9714 31.0442C42.9518 30.5174 44.5081 28.9708 45.0382 27.0028C46 23.4393 46 16 46 16C46 16 46 8.56068 45.0382 4.99718H45.042Z" /><path fill="%23ffffff" d="M18.3992 22.8561V9.14392L30.3536 16L18.3992 22.8561Z" /></svg>');
    transition: all 0.4s ease;
  }
}

.hd_contact-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.625rem, 0vw + 0.625rem, 0.625rem) clamp(0.9375rem, 2.0380434783vw + -0.417798913rem, 1.875rem) clamp(0.625rem, 0vw + 0.625rem, 0.625rem) clamp(1.25rem, 2.7173913043vw + -0.5570652174rem, 2.5rem);
  white-space: nowrap;
  background-color: #333333;
  color: #fff;
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.4076086957vw + 0.6664402174rem, 1.125rem);
  overflow: hidden;
  z-index: 1;
}
@media (max-width: 1064px) {
  .hd_contact-btn {
    width: min(100%, 320px);
  }
}
.hd_contact-btn::after {
  content: "\e158";
  margin-left: clamp(0.3125rem, 0.3623188406vw + 0.2173913043rem, 0.625rem);
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.5rem, 1.0416666667vw + 1.1875rem, 2.125rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
  color: #ffffff;
}
.hd_contact-btn::before {
  content: "";
  position: absolute;
  top: 0;
  width: 0;
  right: 0;
  left: auto;
  height: 100%;
  background-color: #5d5d5d;
  transition: width 0.3s ease;
  z-index: -1;
}
@media (min-width: 769px) {
  .hd_contact-btn:hover::before {
    width: 100%;
    left: 0;
    right: auto;
  }
}

/*-------------------------------------------------------------------------------
  sp nav
--------------------------------------------------------------------------------*/
@media (max-width: 1064px) {
  .nav-horizontal {
    flex-direction: column;
    position: fixed;
    width: 100%;
    height: 100svh;
    top: 0;
    left: 0;
    padding: clamp(5rem, 10.8695652174vw + 2.1467391304rem, 9.375rem) clamp(1.875rem, 4.6583850932vw + 0.652173913rem, 3.75rem) clamp(1.875rem, 4.6583850932vw + 0.652173913rem, 3.75rem);
    background-color: #fff;
    z-index: 50;
    transform: translateY(-100%);
    transition: transform 0.3s ease;
    gap: clamp(1.5625rem, 5.4347826087vw + 0.1358695652rem, 3.75rem);
  }
  .nav-horizontal .hd_nav {
    flex-direction: column;
    gap: clamp(1.5625rem, 0.7763975155vw + 1.3586956522rem, 1.875rem);
    width: min(100%, 320px);
  }
  .nav-horizontal .hd_nav li {
    width: 100%;
  }
  .nav-horizontal .hd_nav a {
    display: block;
    width: 100%;
    text-align: center;
    background-color: #f1f1f1;
    padding: clamp(0.625rem, 0.7763975155vw + 0.4211956522rem, 0.9375rem);
  }
  .nav-horizontal.js-open {
    transform: translateY(0);
    transition: transform 0.3s ease;
  }
}
/*-------------------------------------------------------------------------------
  sp menu
--------------------------------------------------------------------------------*/
.menu-trigger {
  display: none;
  position: fixed;
  right: clamp(0.625rem, 0.7763975155vw + 0.4211956522rem, 0.9375rem);
  top: clamp(0.75rem, 0.4658385093vw + 0.6277173913rem, 0.9375rem);
  width: clamp(3rem, 2.4844720497vw + 2.347826087rem, 4rem);
  aspect-ratio: 76/58;
  z-index: 51;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  background: #333333;
}
@media (max-width: 1064px) {
  .menu-trigger {
    display: flex;
  }
}
.menu-trigger .menu_line {
  position: relative;
  display: block;
  width: clamp(1.875rem, 2.1739130435vw + 1.3043478261rem, 2.75rem);
  height: 20px;
  margin-top: -3px;
}
.menu-trigger .menu_line span {
  display: block;
  position: absolute;
  width: 100%;
  height: 2px;
  background: #ffffff;
  transition: all 0.4s;
}
.menu-trigger .menu_line span:nth-of-type(1) {
  top: 0;
  animation: bar01 0.75s forwards;
}
.menu-trigger .menu_line span:nth-of-type(2) {
  top: 50%;
  transition: all 0.25s 0.25s;
  opacity: 1;
}
.menu-trigger .menu_line span:nth-of-type(3) {
  top: 100%;
  animation: bar03 0.75s forwards;
}
.menu-trigger.js-open .menu_line span:nth-of-type(1) {
  animation: active-bar01 0.75s forwards;
}
.menu-trigger.js-open .menu_line span:nth-of-type(2) {
  opacity: 0;
}
.menu-trigger.js-open .menu_line span:nth-of-type(3) {
  animation: active-bar03 0.75s forwards;
}

/* keyframes */
@keyframes bar01 {
  0% {
    transform: translateY(10px) rotate(30deg);
  }
  50% {
    transform: translateY(10px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes bar03 {
  0% {
    transform: translateY(-10px) rotate(-30deg);
  }
  50% {
    transform: translateY(-10px) rotate(0);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@keyframes active-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(10px) rotate(0);
  }
  100% {
    transform: translateY(10px) rotate(30deg);
  }
}
@keyframes active-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-10px) rotate(0);
  }
  100% {
    transform: translateY(-10px) rotate(-30deg);
  }
}
/*-------------------------------------------------------------------------------
  current
--------------------------------------------------------------------------------*/
body.index .hd_nav li:nth-of-type(1) a::before {
  opacity: 1;
}

body.company .hd_nav li:nth-of-type(2) a::before {
  opacity: 1;
}

body.product .hd_nav li:nth-of-type(3) a::before {
  opacity: 1;
}

body.sharpen .hd_nav li:nth-of-type(3) a::before {
  opacity: 1;
}

body.post-type-archive-product .hd_nav li:nth-of-type(3) a::before {
  opacity: 1;
}

body.news .hd_nav li:nth-of-type(4) a::before {
  opacity: 1;
}

body.tax-news_tax .hd_nav li:nth-of-type(5) a::before {
  opacity: 1;
}

/*-------------------------------------------------------------------------------
  mainimg
--------------------------------------------------------------------------------*/
.mv_container {
  display: block;
  height: clamp(26.25rem, 12.3188405797vw + 23.0163043478rem, 36.875rem);
  width: 100%;
}
.index .mv_container {
  width: 100%;
  height: 100svh;
}

.mv_wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.mv_wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.43);
  z-index: 1;
}
.index .mv_wrapper::before {
  background: rgba(0, 0, 0, 0.3);
  z-index: 2;
}
.mv_wrapper > img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transform-origin: center center;
}

.mv_bg-text {
  position: absolute;
  top: 50%;
  left: calc(-1 * clamp(0.625rem, 1.4492753623vw + 0.2445652174rem, 1.875rem));
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  z-index: 3;
  font-weight: 800;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(8.125rem, 11.4583333333vw + 4.6875rem, 15rem);
  color: #ffffff;
  opacity: 0.4;
  white-space: nowrap;
}

.mv_content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  padding: 4vw;
}
.index .mv_content {
  padding-right: 20vw;
}
@media (max-width: 768px) {
  .index .mv_content {
    align-items: flex-start;
    padding-right: 4vw;
    padding-left: 6vw;
  }
}
@media (max-width: 480px) {
  .index .mv_content {
    padding-left: 10vw;
  }
}

.mv_title {
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(2.25rem, 2.6162790698vw + 0.9941860465rem, 3.9375rem);
  text-align: center;
}
@media (max-width: 768px) {
  .mv_title {
    font-size: clamp(1.625rem, 7.7586206897vw + -0.411637931rem, 3.3125rem);
    text-align: left;
  }
}
.mv_title span {
  display: inline-block;
  font-size: clamp(3rem, 3.1007751938vw + 1.511627907rem, 5rem);
}
@media (max-width: 768px) {
  .mv_title span {
    font-size: clamp(2.375rem, 9.1954022989vw + -0.0387931034rem, 4.375rem);
  }
}

.mv_subtitle {
  margin-top: clamp(0.625rem, 0.484496124vw + 0.3924418605rem, 0.9375rem);
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.4375rem, 1.1627906977vw + 0.8793604651rem, 2.1875rem);
}
@media (max-width: 768px) {
  .mv_subtitle {
    font-size: clamp(1.125rem, 1.724137931vw + 0.6724137931rem, 1.5rem);
  }
}

.lower_mv_title {
  display: flex;
  flex-direction: column;
  gap: clamp(0.3125rem, 0.3623188406vw + 0.2173913043rem, 0.625rem);
  text-align: center;
}

.mv_title_en {
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.2;
  font-family: "Almarai", sans-serif;
  font-size: clamp(3.125rem, 7.2916666667vw + 0.9375rem, 7.5rem);
}

.mv_title_ja {
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.25rem, 2.6041666667vw + 0.46875rem, 2.8125rem);
}

/*-------------------------------------------------------------------------------
  index
--------------------------------------------------------------------------------*/
/*---------- MVスライダー ----------*/
.index .mv_container {
  width: 100%;
  height: 100svh;
  overflow: hidden;
}
.index .mv_wrapper {
  width: 100%;
  height: 100%;
}

.mv-swiper {
  width: 100%;
  height: 100svh;
}
.mv-swiper .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #000;
  width: 100%;
  height: 100svh;
  flex-shrink: 0;
}
.mv-swiper .video-wrapper {
  width: 100%;
  height: 100%;
  position: relative;
}
.mv-swiper .video-wrapper iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 100svh;
  border: none;
  pointer-events: auto;
}
.mv-swiper {
  /* iframeの上にオーバーレイを配置してユーザー操作を防ぐ */
}
.mv-swiper .video-wrapper::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: auto;
}
.mv-swiper {
  /* 16:9より横長の画面の場合 */
}
@media (aspect-ratio > 16/9) {
  .mv-swiper .video-wrapper iframe {
    width: 100vw;
    height: 56.25vw;
  }
}
.mv-swiper {
  /* 16:9より縦長の画面の場合 */
}
@media (aspect-ratio < 16/9) {
  .mv-swiper .video-wrapper iframe {
    width: 177.7777777778svh;
    height: 100svh;
  }
}
.mv-swiper {
  /* Swiper navigation buttons */
}
.mv-swiper .swiper-button-next,
.mv-swiper .swiper-button-prev {
  display: none;
}
.mv-swiper {
  /* Swiper pagination */
}
.mv-swiper .swiper-pagination {
  bottom: 30px !important;
}
.mv-swiper .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  transition: all 0.3s ease;
}
.mv-swiper .swiper-pagination-bullet-active {
  background: #fff;
  width: 40px;
  border-radius: 6px;
}
.mv-swiper {
  /* モバイル対応 */
}
@media (max-width: 768px) {
  .mv-swiper .swiper-pagination {
    bottom: 20px !important;
  }
  .mv-swiper .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    margin: 0 4px !important;
  }
  .mv-swiper .swiper-pagination-bullet-active {
    width: 24px;
  }
}
.mv-swiper {
  /* タブレット対応 */
}
@media (min-width: 769px) and (max-width: 1024px) {
  .mv-swiper .swiper-pagination {
    bottom: 25px !important;
  }
  .mv-swiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
  }
  .mv-swiper .swiper-pagination-bullet-active {
    width: 32px;
  }
}
.mv-swiper {
  /* タッチデバイス対応 */
}
@media (hover: none) and (pointer: coarse) {
  .mv-swiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 6px !important;
  }
}

/*---------- about ----------*/
.index-about_wrapper {
  display: flex;
  align-items: flex-start;
  gap: clamp(4.375rem, 5.0724637681vw + 3.0434782609rem, 8.75rem);
  margin-top: clamp(3.75rem, 10.1449275362vw + 1.0869565217rem, 12.5rem);
  margin-bottom: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem);
}
@media (max-width: 768px) {
  .index-about_wrapper {
    flex-direction: column;
  }
}

.about-txt_box {
  flex-grow: 1;
  margin-top: clamp(3.125rem, 3.6231884058vw + 2.1739130435rem, 6.25rem);
}
@media (max-width: 768px) {
  .about-txt_box {
    margin-top: 0;
  }
}

.about_under-img {
  margin-top: clamp(3.5625rem, 4.1304347826vw + 2.4782608696rem, 7.125rem);
  margin-left: clamp(6.25rem, 7.2463768116vw + 4.347826087rem, 12.5rem);
  width: clamp(18.75rem, 12.1014492754vw + 15.5733695652rem, 29.1875rem);
  aspect-ratio: 467/212;
}
@media (max-width: 768px) {
  .about_under-img {
    width: 100%;
  }
}
.about_under-img img {
  width: 100%;
  height: auto;
  display: block;
}

.about-img_box {
  position: relative;
  flex-shrink: 0;
  width: clamp(18.75rem, 22.1014492754vw + 12.9483695652rem, 37.8125rem);
  aspect-ratio: 605/584;
}
@media (max-width: 768px) {
  .about-img_box {
    width: 90%;
  }
}
.about-img_box img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.about-img_box .about_circle {
  top: calc(-1 * clamp(3.125rem, 3.6231884058vw + 2.1739130435rem, 6.25rem));
  left: calc(-1 * clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem));
}
.about-img_box .about_square {
  bottom: calc(-1 * clamp(1.875rem, 6.1594202899vw + 0.2581521739rem, 7.1875rem));
  right: calc(-1 * clamp(1.875rem, 4.7101449275vw + 0.6385869565rem, 5.9375rem));
}
.about-img_box .about_circle-small {
  bottom: calc(-1 * clamp(7.8125rem, 9.0579710145vw + 5.4347826087rem, 15.625rem));
  right: clamp(5.625rem, 6.5217391304vw + 3.9130434783rem, 11.25rem);
}

/*---------- product ----------*/
.product_wrapper {
  width: 100%;
  position: relative;
  z-index: 1;
}
.product_wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 80vw;
  height: 70%;
  background: #7F7F7F;
  z-index: -1;
}
@media (max-width: 768px) {
  .product_wrapper::before {
    width: 90vw;
    height: 90%;
  }
}

.product_inner {
  position: relative;
  padding: clamp(2.1875rem, 1.4534883721vw + 1.4898255814rem, 3.125rem) clamp(6.25rem, 19.3798449612vw + -3.0523255814rem, 18.75rem) clamp(3.125rem, 4.8449612403vw + 0.7994186047rem, 6.25rem) 0;
}
@media (max-width: 768px) {
  .product_inner {
    padding: clamp(1.25rem, 4.3103448276vw + 0.1185344828rem, 2.1875rem) clamp(2.5rem, 11.4942528736vw + -0.5172413793rem, 5rem) clamp(2.5rem, 2.8735632184vw + 1.7456896552rem, 3.125rem) 0;
  }
}

.product_bnr_wrapper {
  display: flex;
  justify-content: space-between;
  gap: clamp(1.25rem, 7.2580645161vw + -1.2903225806rem, 6.875rem);
}
@media (max-width: 560px) {
  .product_bnr_wrapper {
    flex-direction: column;
  }
}

.product_bnr_link {
  position: relative;
  flex-grow: 1;
  aspect-ratio: 724/426;
  overflow: hidden;
}
.product_bnr_link img {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s ease;
}
.product_bnr_link::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 30%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, #000000 64.9%);
  z-index: 1;
}
@media (min-width: 769px) {
  .product_bnr_link:hover img {
    transform: scale(1.1);
  }
  .product_bnr_link:hover .product_bnr_right::after {
    animation: arrowMove 0.6s ease forwards;
  }
}

.product_bnr_text {
  display: flex;
  justify-content: space-between;
  position: absolute;
  width: 100%;
  padding: clamp(0.625rem, 0.7246376812vw + 0.4347826087rem, 1.25rem) clamp(0.9375rem, 0.7246376812vw + 0.7472826087rem, 1.5625rem);
  bottom: 0;
  left: 0;
  z-index: 2;
  color: #ffffff;
}

.product_bnr_left {
  font-weight: 500;
  letter-spacing: calc(40 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.25rem, 1.0416666667vw + 0.9375rem, 1.875rem);
}

.product_bnr_right {
  display: flex;
  align-items: center;
  gap: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
}
.product_bnr_right::after {
  content: "\f8ce";
  display: block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.125rem, 0.8333333333vw + 0.875rem, 1.625rem);
  font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
  color: #ffffff;
  transition: transform 0.4s ease;
}

/*---------- news ----------*/
.news_wrapper {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: clamp(6.25rem, 9.6899224806vw + 1.5988372093rem, 12.5rem);
  margin-bottom: clamp(3.75rem, 3.8759689922vw + 1.8895348837rem, 6.25rem);
  min-height: clamp(25rem, 9.6899224806vw + 20.3488372093rem, 31.25rem);
  gap: clamp(2.5rem, 16.9573643411vw + -5.6395348837rem, 13.4375rem);
}
@media (max-width: 768px) {
  .news_wrapper {
    flex-direction: column;
    gap: 0;
    margin-top: clamp(3.125rem, 8.6206896552vw + 0.8620689655rem, 5rem);
  }
}

.news_list_wrapper {
  flex-grow: 1;
}

.news_item {
  border-bottom: 1px solid #7F7F7F;
  padding: clamp(0.9375rem, 1.8115942029vw + 0.4619565217rem, 2.5rem) clamp(0.625rem, 2.8985507246vw + -0.1358695652rem, 3.125rem);
}

.news_item_link {
  position: relative;
  display: block;
  z-index: 1;
}
.news_item_link:nth-of-type(odd) {
  background-color: #f0f0f0;
}

.index_news_date {
  display: block;
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  color: #7F7F7F;
  margin-bottom: clamp(0.3125rem, 0.3623188406vw + 0.2173913043rem, 0.625rem);
}

.news_title {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.4166666667vw + 0.75rem, 1.125rem);
  color: #333333;
}

.index_news_date,
.news_title {
  transform: translateX(0);
  transition: transform 0.3s ease;
}
.news_item_link:hover .index_news_date,
.news_item_link:hover .news_title {
  transform: translateX(10px);
}

.news_circle {
  bottom: clamp(6.25rem, 7.2463768116vw + 4.347826087rem, 12.5rem);
  left: calc(-1 * clamp(12.5rem, 14.4927536232vw + 8.6956521739rem, 25rem));
}
@media (max-width: 768px) {
  .news_circle {
    display: none;
  }
}

.news_square {
  bottom: clamp(4.375rem, 5.7971014493vw + 2.8532608696rem, 9.375rem);
  left: clamp(1.5625rem, 0.3623188406vw + 1.4673913043rem, 1.875rem);
}
@media (max-width: 768px) {
  .news_square {
    display: none;
  }
}

/*---------- movie ----------*/
/* セクション全体の背景 */
.movie_wrapper {
  position: relative;
  background-color: #E6E6E6;
  padding: clamp(3.125rem, 3.6231884058vw + 2.1739130435rem, 6.25rem) 0;
  margin-bottom: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem);
  overflow: hidden;
}

/* テキストエリアのレイアウト */
.movie_inner {
  display: flex;
  justify-content: space-between;
  gap: clamp(1.25rem, 9.4202898551vw + -1.222826087rem, 9.375rem);
}
@media (max-width: 768px) {
  .movie_inner {
    flex-direction: column;
  }
}
.movie_inner .cmn_title {
  margin-bottom: 0;
  flex-shrink: 0;
}

.movie_text {
  margin-top: clamp(0.625rem, 0.484496124vw + 0.3924418605rem, 0.9375rem);
  margin-bottom: 0;
  flex-grow: 1;
}
@media (max-width: 768px) {
  .movie_text {
    margin-top: 0;
  }
}

/* Swiper コンテナ（画面幅いっぱい） */
.movie-swiper-container {
  margin-top: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem);
  width: 100%;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* Swiper 本体の設定 */
.movieSwiper {
  overflow: hidden; /* 見切れを作る */
  padding-bottom: clamp(1.25rem, 1.4492753623vw + 0.8695652174rem, 2.5rem);
  padding-left: 0; /* centeredSlidesを使うため左パディングは0にする */
}

/* スライド個別の設定 */
.swiper-slide {
  /* slidesPerViewで枚数指定するため、widthはSwiperが自動計算 */
  /* margin-rightもJSのspaceBetweenで指定するため不要 */
  height: auto;
  transition: opacity 0.3s;
} /* .swiper-slide *

/* 動画エリア（アスペクト比固定） */
.video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9; /* これで高さが崩れない */
  background: #000;
  overflow: hidden;
}

/* リンク・画像 */
.video-link {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
.video-link img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.4s, opacity 0.4s;
}
@media (min-width: 769px) {
  .video-link:hover img {
    transform: scale(1.05);
    opacity: 0.8;
  }
  .video-link:hover .play-icon {
    background-color: rgba(255, 0, 0, 0.9);
  }
}

/* 再生ボタンアイコン */
.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.7);
  border-radius: 10px;
  transition: background-color 0.5s;
  z-index: 2;
  pointer-events: none; /* クリック透過 */
}
.play-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 0 8px 14px;
  border-color: transparent transparent transparent #fff;
}
@media (max-width: 768px) {
  .play-icon {
    width: 45px;
    height: 30px;
  }
  .play-icon::after {
    border-width: 6px 0 6px 10px;
  }
}

/* テキスト情報 */
.movie-title {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  margin-bottom: clamp(0.3125rem, 0.3623188406vw + 0.2173913043rem, 0.625rem);
}

.movie-date {
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.8125rem, 0.3125vw + 0.71875rem, 1rem);
  color: #7F7F7F;
}

/* コントロールエリア */
.swiper-controls {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-top: clamp(3.125rem, 2.1739130435vw + 2.5543478261rem, 5rem);
}
@media (max-width: 768px) {
  .swiper-controls {
    flex-direction: column;
    gap: 40px;
  }
}

/* ナビゲーション矢印のカスタム */
.nav-buttons {
  display: flex;
  gap: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  position: relative;
  width: clamp(4.9375rem, 4.9275362319vw + 3.6440217391rem, 9.1875rem) !important;
}
@media (max-width: 768px) {
  .nav-buttons {
    width: 100% !important;
    justify-content: center;
  }
}

/* 矢印ボタン */
.swiper-button-prev,
.swiper-button-next {
  position: static;
  width: clamp(2rem, 1.7391304348vw + 1.5434782609rem, 3.5rem) !important;
  height: clamp(2rem, 1.7391304348vw + 1.5434782609rem, 3.5rem) !important;
  background-color: #333333;
  border-radius: 50% !important;
  color: #fff;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.4s ease;
}
.swiper-button-prev::after,
.swiper-button-next::after {
  display: none;
}
.swiper-button-prev::before,
.swiper-button-next::before {
  display: block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.125rem, 0.8333333333vw + 0.875rem, 1.625rem);
  font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
  color: #ffffff;
  transition: transform 0.4s ease;
}
@media (min-width: 769px) {
  .swiper-button-prev:hover,
  .swiper-button-next:hover {
    background-color: #7F7F7F;
  }
}

.swiper-button-prev::before {
  content: "\ef7d";
}

.swiper-button-next::before {
  content: "\e941";
}

/* スクロールバー */
.swiper-scrollbar_wrapper {
  position: relative;
  flex-grow: 1;
}
@media (max-width: 768px) {
  .swiper-scrollbar_wrapper {
    width: 100%;
  }
}

.swiper-scrollbar {
  position: static;
  height: 5px !important;
  background: #ffffff !important;
  border-radius: 0 !important;
}

.swiper-scrollbar-drag {
  background: #333333;
  border-radius: 0 !important;
}

/*---------- faq ----------*/
.faq_wrapper {
  width: 100%;
  background: linear-gradient(36.25deg, #989898 14%, #EDEDED 45%, #626262 86%);
  padding: clamp(2.5rem, 4.347826087vw + 1.3586956522rem, 6.25rem) 0;
}

.faq_inner {
  margin: 0 auto;
  padding: clamp(1.25rem, 4.347826087vw + 0.1086956522rem, 5rem) clamp(0.9375rem, 9.0579710145vw + -1.4402173913rem, 8.75rem) clamp(2.5rem, 4.347826087vw + 1.3586956522rem, 6.25rem);
  background-color: #fff;
}

.faq_title {
  margin-bottom: clamp(0.3125rem, 3.2608695652vw + -0.5434782609rem, 3.125rem);
}

.faq_unit {
  width: 100%;
}

.faq_list {
  border-bottom: 1px solid #7F7F7F;
}

.faq-question {
  display: flex;
  align-items: center;
  cursor: pointer;
  position: relative;
  padding: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem) clamp(2.1875rem, 1.0869565217vw + 1.902173913rem, 3.125rem) clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem) 0;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  color: #333333;
  overflow: hidden;
  transform: translateX(0);
  transition: transform 0.3s ease;
}
.faq-question::before {
  content: "Q";
  display: inline-block;
  position: relative;
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Almarai", sans-serif;
  font-size: clamp(1.75rem, 0.7291666667vw + 1.53125rem, 2.1875rem);
  color: #7F7F7F;
  margin-right: clamp(0.5rem, 0.5072463768vw + 0.3668478261rem, 0.9375rem);
}
@media (min-width: 769px) {
  .faq-question:hover {
    transform: translateX(10px);
  }
}

.toggle-icon {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  width: clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
  aspect-ratio: 1/1;
  background-color: #333333;
  border-radius: 50%;
  transition: background-color 0.3s ease;
}
.toggle-icon::before {
  display: block;
  content: "\e313";
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(0.9375rem, 1.5625vw + 0.46875rem, 1.875rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
  color: #ffffff;
  transform-origin: 50% 42%;
  transition: transform 0.4s ease-in-out;
  margin-top: 3px;
}

.faq-question.is-open .toggle-icon {
  background-color: #7F7F7F;
}
.faq-question.is-open .toggle-icon::before {
  transform: rotate(180deg);
}

.faq-answer {
  display: none;
  position: relative;
  padding: clamp(0rem, 0.3623188406vw + -0.0951086957rem, 0.3125rem) clamp(2.1875rem, 1.0869565217vw + 1.902173913rem, 3.125rem) clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem) 0;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
  overflow: hidden;
}
.faq-answer::before {
  content: "A";
  position: inline-block;
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Almarai", sans-serif;
  font-size: clamp(1.75rem, 0.7291666667vw + 1.53125rem, 2.1875rem);
  color: #333333;
  margin-right: clamp(0.5rem, 0.5072463768vw + 0.3668478261rem, 0.9375rem);
}

/*---------- Contact ----------*/
.contact_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem) 0;
}

.contact_circle-middle {
  top: clamp(3.125rem, 12.5968992248vw + -2.9215116279rem, 11.25rem);
  left: calc(-1 * clamp(1.25rem, 0.9689922481vw + 0.7848837209rem, 1.875rem));
}
@media (max-width: 768px) {
  .contact_circle-middle {
    top: clamp(1.875rem, 5.7471264368vw + 0.3663793103rem, 3.125rem);
    left: auto;
    right: calc(-1 * clamp(0.9375rem, 1.4367816092vw + 0.5603448276rem, 1.25rem));
  }
}

.contact_circle-small {
  top: clamp(2.5rem, 10.1744186047vw + -2.3837209302rem, 9.0625rem);
  left: clamp(9.0625rem, 9.6899224806vw + 4.4113372093rem, 15.3125rem);
}
@media (max-width: 768px) {
  .contact_circle-small {
    top: clamp(0.9375rem, 4.3103448276vw + -0.1939655172rem, 1.875rem);
    left: auto;
    right: clamp(6.25rem, 5.7471264368vw + 4.7413793103rem, 7.5rem);
  }
}

.contact_circle {
  bottom: clamp(9.375rem, 14.5348837209vw + 2.398255814rem, 18.75rem);
  right: calc(-1 * clamp(6.25rem, 9.6899224806vw + 1.5988372093rem, 12.5rem));
}

.contact_inner {
  margin: 0 auto;
  padding: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem) clamp(0.625rem, 9.4202898551vw + -1.847826087rem, 8.75rem) clamp(3.125rem, 3.6231884058vw + 2.1739130435rem, 6.25rem);
  background-color: #fff;
  text-align: center;
}

.contact_form_unit dl {
  display: flex;
  align-items: flex-start;
  gap: clamp(1.25rem, 5.5555555556vw + -3.75rem, 2.5rem);
}
.contact_form_unit dl:not(:last-child) {
  margin-bottom: clamp(1.5625rem, 0.3623188406vw + 1.4673913043rem, 1.875rem);
}
@media (max-width: 1440px) {
  .contact_form_unit dl {
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(0.625rem, 0.4901960784vw + 0.4963235294rem, 0.9375rem);
    margin-bottom: 0;
  }
}
.contact_form_unit dt {
  position: relative;
  display: flex;
  align-items: center;
  padding-left: 5em;
  flex-shrink: 0;
  width: 250px;
  margin-top: clamp(0.8125rem, 0.5555555556vw + 0.3125rem, 0.9375rem);
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  text-align: left;
  white-space: nowrap;
}
@media (max-width: 1440px) {
  .contact_form_unit dt {
    width: 100%;
    margin-top: 0;
  }
}
.contact_form_unit dt .required {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  background-color: #333333;
  color: #ffffff;
  white-space: nowrap;
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.8125rem, 0.1041666667vw + 0.78125rem, 0.875rem);
  padding: 5px 10px;
}
@media (max-width: 1440px) {
  .contact_form_unit dl:nth-of-type(3) dt, .contact_form_unit dl:nth-of-type(4) dt {
    padding-left: 0;
  }
}
.contact_form_unit dd {
  flex-grow: 1;
}
.contact_form_unit dd input,
.contact_form_unit dd select,
.contact_form_unit dd textarea {
  width: 100%;
  padding: clamp(0.875rem, 0.2898550725vw + 0.7989130435rem, 1.125rem) clamp(0.9375rem, 0.3623188406vw + 0.8423913043rem, 1.25rem);
  border: 1px solid #333333;
  background-color: #F5F5F5;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
  resize: vertical;
}
.contact_form_unit dd input::-moz-placeholder, .contact_form_unit dd select::-moz-placeholder, .contact_form_unit dd textarea::-moz-placeholder {
  color: #B1B1B1;
}
.contact_form_unit dd input::placeholder,
.contact_form_unit dd select::placeholder,
.contact_form_unit dd textarea::placeholder {
  color: #B1B1B1;
}
.contact_form_unit dd textarea {
  min-height: clamp(6.25rem, 3.6231884058vw + 5.2989130435rem, 9.375rem);
}

.short {
  width: 355px !important;
}
@media (max-width: 1064px) {
  .short {
    width: clamp(22.1875rem, 8.9285714286vw + 19.0625rem, 25rem) !important;
  }
}
@media (max-width: 560px) {
  .short {
    width: 100% !important;
  }
}

.form-select:first-child {
  position: relative;
}
.form-select:first-child::after {
  content: "\e313";
  position: absolute;
  top: 50%;
  right: 15px;
  transform: translateY(-50%);
  display: inline-block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.75rem, 0.625vw + 1.5625rem, 2.125rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
  color: #333333;
  z-index: 1;
}

#confirm-form-clone_wpcf7-f10-o1 dl {
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 0.9689922481vw + 0.7848837209rem, 1.875rem);
  padding-bottom: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  border-bottom: 1px solid #7F7F7F;
}
@media (max-width: 1440px) {
  #confirm-form-clone_wpcf7-f10-o1 dl {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: clamp(1.25rem, 0.9689922481vw + 0.7848837209rem, 1.875rem);
    padding-bottom: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
    border-bottom: 1px solid #7F7F7F;
  }
}
@media (max-width: 768px) {
  #confirm-form-clone_wpcf7-f10-o1 dl {
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(0.625rem, 0.4901960784vw + 0.4963235294rem, 0.9375rem);
  }
}
#confirm-form-clone_wpcf7-f10-o1 dt {
  margin-top: 0;
}
@media (max-width: 1440px) {
  #confirm-form-clone_wpcf7-f10-o1 dt {
    width: 250px;
  }
}
@media (max-width: 768px) {
  #confirm-form-clone_wpcf7-f10-o1 dt {
    width: 100%;
  }
}
#confirm-form-clone_wpcf7-f10-o1 .form-select:first-child::after {
  display: none;
}

.form-address li {
  margin-bottom: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
}
.form-address li:last-child {
  margin-bottom: 0;
}

.privacy_content {
  width: 100%;
  background-color: #F3F3F3;
  padding: clamp(0.9375rem, 0.7246376812vw + 0.7472826087rem, 1.5625rem) clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem);
  border: 1px solid #333333;
}

.privacy_content_inner {
  padding-right: clamp(0.625rem, 0.7246376812vw + 0.4347826087rem, 1.25rem);
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.8;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.1041666667vw + 0.84375rem, 0.9375rem);
  height: 250px;
  overflow-y: scroll;
}
.privacy_content_inner h3:not(:first-of-type) {
  margin-top: clamp(1.875rem, 0.7246376812vw + 1.6847826087rem, 2.5rem);
}
.privacy_content_inner h3 {
  margin-bottom: clamp(0.125rem, 0.2173913043vw + 0.0679347826rem, 0.3125rem);
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.8;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.1041666667vw + 0.90625rem, 1rem);
}

.privacy_check_wrapper {
  margin-top: clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem);
  text-align: center;
}

.check_no-through {
  text-align: center;
  margin-top: clamp(0.9375rem, 0.7246376812vw + 0.7472826087rem, 1.5625rem);
}

.wpcf7-list-item {
  margin: 0;
}
.wpcf7-list-item label {
  position: relative;
  display: inline-block;
  width: 100%;
  cursor: pointer;
}

input[type=checkbox] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 10;
  cursor: pointer;
  margin: 0;
  padding: 0;
  border: none;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
input[type=checkbox] + span {
  font-size: clamp(0.875rem, 0.1041666667vw + 0.84375rem, 0.9375rem);
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  letter-spacing: 0;
  cursor: pointer;
  display: inline-block;
  width: auto;
  padding: 0px 0px 0px 40px;
  position: relative;
  color: #333333;
  z-index: 1;
}
input[type=checkbox] + span::after {
  content: "\e5ca";
  display: block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.75rem, 0.2083333333vw + 1.6875rem, 1.875rem);
  font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
  color: #333333;
  transition: transform 0.4s ease;
  position: absolute;
  top: -2px;
  left: -2px;
  opacity: 0;
  transition: all ease-out 250ms;
}
input[type=checkbox] + span::before {
  content: "";
  display: block;
  width: 25px;
  height: 25px;
  background-color: #ffffff;
  border: 1px solid #333333;
  transform: scale(1);
  transition: all ease-out 250ms;
  position: absolute;
  top: 0;
  left: 0;
}
input[type=checkbox]:checked + span::after {
  opacity: 1;
}

.check_submit {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  margin-top: clamp(1.875rem, 1.0869565217vw + 1.589673913rem, 2.8125rem);
  gap: clamp(1.25rem, 4.347826087vw + 0.1086956522rem, 5rem);
}

.cmn_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #333333;
  font-weight: 500;
  letter-spacing: calc(100 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  padding: 0 !important;
  /* =========================================
     Contact Form 7 用の追加スタイル
     ========================================= */
}
.cmn_btn .wpcf7-back_wrap,
.cmn_btn .wpcf7-confirm_wrap,
.cmn_btn .submit {
  display: contents;
}
.cmn_btn button,
.cmn_btn input[type=submit],
.cmn_btn input[type=button] {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  margin: 0;
  cursor: pointer;
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  padding: clamp(0.5rem, 0.2898550725vw + 0.4239130435rem, 0.75rem) 0 clamp(0.5rem, 0.2898550725vw + 0.4239130435rem, 0.75rem);
  padding-right: calc(clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem) + clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem));
  background-image: linear-gradient(#333333, #333333);
  background-position: left bottom;
  background-size: 0 1px;
  background-repeat: no-repeat;
  transition: background-size 0.4s ease;
  padding-bottom: 5px;
  vertical-align: middle;
}
.cmn_btn.contact_btn::after, .cmn_btn.contact_btn::before {
  position: absolute;
  right: 0;
  top: -3px;
  bottom: 0;
  margin: auto;
  width: clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem);
  aspect-ratio: 1/1;
  pointer-events: none;
}
.cmn_btn.contact_btn::after {
  content: "";
  z-index: 1;
  border-radius: 50%;
  background-color: #333333;
  overflow: hidden;
}
.cmn_btn.contact_btn::before {
  content: "\f8ce";
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.125rem, 0.8333333333vw + 0.875rem, 1.625rem);
  font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
  color: #ffffff;
}
@media (min-width: 769px) {
  .cmn_btn:hover button,
  .cmn_btn:hover input[type=submit],
  .cmn_btn:hover input[type=button] {
    background-size: calc(100% - calc(clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem) + clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem))) 1px;
  }
  .cmn_btn:hover.contact_btn::before {
    animation: arrowMove 0.6s ease forwards;
  }
}
.cmn_btn {
  /* =========================================
       戻るボタン（.backクラス内）専用のカスタマイズ
       ========================================= */
}
.back .cmn_btn button,
.back .cmn_btn input[type=button] {
  padding-right: 0;
  padding-left: calc(clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem) + clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem));
  background-position: right bottom;
}
.back .cmn_btn::after, .back .cmn_btn::before {
  right: auto;
  left: 0;
}
.back .cmn_btn::before {
  content: "\f837";
}
@media (min-width: 769px) {
  .back .cmn_btn:hover button,
  .back .cmn_btn:hover input[type=button] {
    background-size: calc(100% - calc(clamp(2.25rem, 1.0144927536vw + 1.9836956522rem, 3.125rem) + clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem))) 1px;
  }
  .back .cmn_btn:hover::before {
    animation: arrowMoveReverse 0.6s ease forwards;
  }
}

/*-------------------------------------------------------------------------------
  company
--------------------------------------------------------------------------------*/
.policy_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(6.5625rem, 11.9565217391vw + 3.4239130435rem, 16.875rem) 0 0;
}

.policy_unit {
  width: 100%;
  position: relative;
  z-index: 1;
}
.policy_unit::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 80vw;
  height: 100%;
  background: #7F7F7F;
  z-index: -1;
}
@media (max-width: 768px) {
  .policy_unit::before {
    width: 90vw;
  }
}

.policy_circle {
  top: calc(-1 * clamp(5rem, 5.0724637681vw + 3.6684782609rem, 9.375rem));
  right: 34vw;
  z-index: -2;
}
@media (max-width: 768px) {
  .policy_circle {
    right: 50vw;
  }
}

.policy_square {
  bottom: calc(-1 * clamp(3.5625rem, 4.2028985507vw + 2.4592391304rem, 7.1875rem));
  right: 10vw;
  z-index: -2;
}
@media (max-width: 768px) {
  .policy_square {
    right: 0;
  }
}

.policy_circle-small {
  bottom: calc(-1 * clamp(7.8125rem, 9.0579710145vw + 5.4347826087rem, 15.625rem));
  right: 26vw;
}

.policy_inner {
  position: relative;
  padding: clamp(2.1875rem, 1.4534883721vw + 1.4898255814rem, 3.125rem) 0 clamp(3.125rem, 4.8449612403vw + 0.7994186047rem, 6.25rem) 0;
  padding-right: 16vw;
}
@media (max-width: 768px) {
  .policy_inner {
    padding: clamp(1.25rem, 4.3103448276vw + 0.1185344828rem, 2.1875rem) 0 clamp(2.5rem, 2.8735632184vw + 1.7456896552rem, 3.125rem) 0;
    padding-right: 10vw;
  }
}

.policy_list {
  counter-reset: number 0;
}
.policy_list li {
  position: relative;
  padding-left: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  margin-bottom: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.4;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.5208333333vw + 0.78125rem, 1.25rem);
  color: #ffffff;
}
.policy_list li::before {
  counter-increment: number 1;
  content: counter(number) ".";
  position: absolute;
  left: 0;
  top: clamp(0.75rem, 0.2173913043vw + 0.6929347826rem, 0.9375rem);
  transform: translateY(-50%);
  display: block;
}

.greeting_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(5rem, 5.0724637681vw + 3.6684782609rem, 9.375rem) 0 0;
  margin: 0 auto;
}

.greeting_inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding-bottom: clamp(4.375rem, 5.7971014493vw + 2.8532608696rem, 9.375rem);
  gap: clamp(2.5rem, 9.6899224806vw + -2.1511627907rem, 8.75rem);
}
@media (max-width: 768px) {
  .greeting_inner {
    flex-direction: column-reverse;
  }
}

.greeting_image {
  flex-shrink: 0;
  position: relative;
  width: clamp(17.75rem, 33.0426356589vw + 1.8895348837rem, 39.0625rem);
  aspect-ratio: 625/578;
  margin-top: clamp(0.3125rem, 0.7246376812vw + 0.1222826087rem, 0.9375rem);
  overflow: hidden;
}
@media (max-width: 768px) {
  .greeting_image {
    width: 100%;
    margin-top: 0;
  }
}
.greeting_image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.greeting_content {
  flex-grow: 1;
}
@media (max-width: 768px) {
  .greeting_content {
    margin-top: clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem);
  }
}

.greeting_text {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
}

.greeting_name {
  display: block;
  margin-top: clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem);
  font-weight: 400;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.25rem, 1.25vw + 0.875rem, 2rem);
  color: #333333;
  text-align: right;
}
.greeting_name span {
  display: inline-block;
  margin-right: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem);
  font-weight: 400;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.4166666667vw + 0.875rem, 1.25rem);
}

.history_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(3.75rem, 4.347826087vw + 2.6086956522rem, 7.5rem) 0;
  background-color: #E6E6E6;
}
.history_wrapper .history_inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
@media (max-width: 768px) {
  .history_wrapper .history_inner {
    flex-direction: column;
  }
}
.history_wrapper .history_title {
  flex-shrink: 0;
  width: clamp(12.5rem, 25.1937984496vw + 0.4069767442rem, 28.75rem);
  margin-top: clamp(6.25rem, 6.5217391304vw + 4.5380434783rem, 11.875rem);
}
@media (max-width: 768px) {
  .history_wrapper .history_title {
    width: 100%;
    margin-top: 0;
  }
}
.history_wrapper .history_circle {
  top: calc(-1 * clamp(7.5rem, 13.5658914729vw + 0.988372093rem, 16.25rem));
  left: calc(-1 * clamp(10rem, 19.3798449612vw + 0.6976744186rem, 22.5rem));
  z-index: 0;
}
@media (max-width: 768px) {
  .history_wrapper .history_circle {
    left: auto;
    right: calc(-1 * clamp(4.375rem, 8.6206896552vw + 2.1120689655rem, 6.25rem));
  }
}
.history_wrapper .history_square {
  top: clamp(1.25rem, 1.9379844961vw + 0.3197674419rem, 2.5rem);
  left: clamp(4.375rem, 1.9379844961vw + 3.4447674419rem, 5.625rem);
  z-index: 0;
}
@media (max-width: 768px) {
  .history_wrapper .history_square {
    left: auto;
    right: clamp(4.375rem, 22.9885057471vw + -1.6594827586rem, 9.375rem);
  }
}
.history_wrapper .history_list {
  position: relative;
  flex-grow: 1;
}
.history_wrapper .history_list::after {
  content: "";
  position: absolute;
  top: -25px;
  left: calc(clamp(5rem, 5.0724637681vw + 3.6684782609rem, 9.375rem) - clamp(1rem, 0.7246376812vw + 0.8097826087rem, 1.625rem) / 2 - 1.5px);
  width: 3px;
  height: calc(100% + 50px);
  background-color: #BABABA;
}
.history_wrapper .history_list li {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.7391304348vw + 0.5434782609rem, 2.5rem);
}
.history_wrapper .history_list li:not(:last-of-type) {
  margin-bottom: clamp(1.25rem, 1.4492753623vw + 0.8695652174rem, 2.5rem);
}
.history_wrapper .history_year {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.2;
  font-family: "Almarai", sans-serif;
  font-size: clamp(1.5rem, 1.6666666667vw + 1rem, 2.5rem);
  color: #7F7F7F;
  width: clamp(5rem, 5.0724637681vw + 3.6684782609rem, 9.375rem);
  flex-shrink: 0;
  text-align: center;
}
.history_wrapper .history_year::after {
  content: "";
  display: block;
  width: clamp(1rem, 0.7246376812vw + 0.8097826087rem, 1.625rem);
  aspect-ratio: 1/1;
  background-color: #BABABA;
  border-radius: 50%;
}
.history_wrapper .history_event {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.625vw + 0.6875rem, 1.25rem);
  color: #333333;
}

.overview_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem) 0;
}

.overview_item {
  display: flex;
  gap: clamp(2.5rem, 3.2258064516vw + 1.3709677419rem, 5rem);
  padding: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem) clamp(1.25rem, 2.1739130435vw + 0.6793478261rem, 3.125rem);
  border-bottom: 1px solid #7F7F7F;
}
@media (max-width: 560px) {
  .overview_item {
    flex-direction: column;
    gap: clamp(0.3125rem, 7.1428571429vw + -1.5625rem, 0.9375rem);
  }
}
.overview_item:nth-of-type(odd) {
  background-color: #f0f0f0;
}
.overview_item dt {
  flex-shrink: 0;
  width: clamp(7.5rem, 6.4516129032vw + 5.2419354839rem, 12.5rem);
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  color: #333333;
}
@media (max-width: 560px) {
  .overview_item dt {
    width: 100%;
  }
}
.overview_item dd {
  flex-grow: 1;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  color: #333333;
}

.overview_circle-middle {
  top: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem);
  right: calc(-1 * clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem));
}

.overview_circle-small {
  top: clamp(1.875rem, 2.1739130435vw + 1.3043478261rem, 3.75rem);
  right: clamp(6.5625rem, 10.5072463768vw + 3.8043478261rem, 15.625rem);
}

.access_wrapper {
  position: relative;
  width: 100%;
  padding: clamp(1.875rem, 5.0724637681vw + 0.5434782609rem, 6.25rem) 0;
  margin-bottom: clamp(5rem, 3.6231884058vw + 4.0489130435rem, 8.125rem);
  background-color: #E6E6E6;
}

.access_inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: clamp(2.5rem, 5.8139534884vw + -0.2906976744rem, 6.25rem);
}
@media (max-width: 768px) {
  .access_inner {
    flex-direction: column;
    gap: clamp(1.875rem, 2.8735632184vw + 1.1206896552rem, 2.5rem);
  }
}

.access_info {
  flex-grow: 1;
}
@media (max-width: 768px) {
  .access_info {
    width: 100%;
  }
}

.access_row {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.9375rem, 0.3125vw + 0.84375rem, 1.125rem);
  color: #333333;
  padding: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem) 0;
  border-top: 2px solid #BABABA;
}
.access_row:last-of-type {
  border-bottom: 2px solid #BABABA;
}

.access_title {
  display: inline-block;
  margin-bottom: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  padding: clamp(0.0625rem, 0.0724637681vw + 0.0434782609rem, 0.125rem) clamp(0.375rem, 0.2898550725vw + 0.2989130435rem, 0.625rem) clamp(0.125rem, 0.0724637681vw + 0.1059782609rem, 0.1875rem);
  background-color: #333333;
  color: #ffffff;
}

.access_map {
  flex-shrink: 0;
  width: clamp(25rem, 43.6046511628vw + 4.0697674419rem, 53.125rem);
  aspect-ratio: 85/76;
}
@media (max-width: 768px) {
  .access_map {
    width: 100%;
    aspect-ratio: 4/3;
  }
}

.iframe-wrap {
  width: 100%;
  height: 100%;
  border-width: clamp(0.375rem, 0.2898550725vw + 0.2989130435rem, 0.625rem);
  border-style: solid;
  border-color: #ffffff;
}
.iframe-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border: none;
}

.access_circle {
  bottom: calc(-1 * clamp(6.25rem, 1.4492753623vw + 5.8695652174rem, 7.5rem));
  left: calc(-1 * clamp(5rem, 5.0724637681vw + 3.6684782609rem, 9.375rem));
  z-index: 2;
}

/*-------------------------------------------------------------------------------
  product
--------------------------------------------------------------------------------*/
.product-archive_wrapper {
  width: 100%;
  padding: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem) 0;
}

.category_title {
  position: relative;
  width: 100%;
  padding-bottom: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  margin-bottom: clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem);
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.875rem, 2.0833333333vw + 1.25rem, 3.125rem);
  color: #7F7F7F;
}
.category_title::after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 10px;
  background: linear-gradient(47deg, #989898 30%, #EDEDED 80%);
  z-index: -1;
}

.product-category_tabs {
  display: flex;
  gap: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  margin-bottom: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem);
}
@media (max-width: 420px) {
  .product-category_tabs {
    flex-direction: column;
  }
}
.product-category_tabs .category-tab {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem) clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.2083333333vw + 0.9375rem, 1.125rem);
  width: calc((100% - clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem) * 2) / 3);
  color: #333333;
  border: 1px solid #333333;
  background-color: #ffffff;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}
@media (max-width: 420px) {
  .product-category_tabs .category-tab {
    width: 100%;
  }
}
.product-category_tabs .category-tab.active {
  background-color: #333333;
  color: #ffffff;
}
@media (min-width: 769px) {
  .product-category_tabs .category-tab:hover {
    background-color: #333333;
    color: #ffffff;
  }
}

.product-category_section {
  padding: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem) 0;
}
.product-category_section:nth-of-type(odd) {
  background-color: #f0f0f0;
}

.category_bar_title {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.5rem, 1.0416666667vw + 1.1875rem, 2.125rem);
  color: #ffffff;
  background-color: #7F7F7F;
  padding: clamp(0.125rem, 0.2173913043vw + 0.0679347826rem, 0.3125rem) clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
}

.product-item {
  margin-top: clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
  padding-bottom: clamp(2.5rem, 2.8985507246vw + 1.7391304348rem, 5rem);
  border-bottom: 1px solid #7F7F7F;
}
.product-item:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
}

.product-item_title {
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.125rem, 1.25vw + 0.75rem, 1.875rem);
  color: #333333;
  margin-bottom: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem);
}

.product-item_unit {
  display: flex;
  gap: clamp(1.875rem, 4.8449612403vw + -0.4505813953rem, 5rem);
}
@media (max-width: 768px) {
  .product-item_unit {
    flex-direction: column;
  }
}

.product-item_content {
  flex-shrink: 0;
  width: clamp(18.75rem, 26.1627906977vw + 6.1918604651rem, 35.625rem);
}
@media (max-width: 768px) {
  .product-item_content {
    width: 100%;
  }
}

.product-item_images {
  position: relative;
  width: clamp(18.75rem, 26.1627906977vw + 6.1918604651rem, 35.625rem);
  aspect-ratio: 570/360;
}
.product-item_images.no_image {
  background-color: #7F7F7F;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.2;
  font-family: "Almarai", sans-serif;
  font-size: clamp(1.5625rem, 2.1875vw + 0.90625rem, 2.875rem);
}
@media (max-width: 768px) {
  .product-item_images {
    width: 100%;
  }
}

.product-image {
  width: 100%;
  height: 100%;
  display: block;
}
.product-image.is-hidden {
  display: none;
}
.product-image a {
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
}
.product-image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.features-title {
  display: block;
  text-align: center;
  padding: clamp(0.1875rem, 0.1449275362vw + 0.1494565217rem, 0.3125rem) clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem);
  border: 1px solid #333333;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.2083333333vw + 0.9375rem, 1.125rem);
  color: #333333;
  margin-bottom: clamp(0.625rem, 0.7246376812vw + 0.4347826087rem, 1.25rem);
}

.features-text {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
}

.product-item_actions {
  margin-top: clamp(1.25rem, 1.4492753623vw + 0.8695652174rem, 2.5rem);
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.9375rem, 0.3623188406vw + 0.8423913043rem, 1.25rem);
}

.product-action_btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  padding: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem) clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  background-color: #333333;
  cursor: pointer;
  transition: all 0.3s ease;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.4166666667vw + 0.875rem, 1.25rem);
  color: #ffffff;
  overflow: hidden;
  z-index: 1;
}
.product-action_btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: auto;
  width: 0;
  height: 100%;
  background-color: #5d5d5d;
  transition: width 0.3s ease;
  z-index: -1;
}
@media (min-width: 769px) {
  .product-action_btn:hover::before {
    width: 100%;
    left: 0;
    right: auto;
  }
}
.product-action_btn .pdf_icon {
  display: block;
  width: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  aspect-ratio: 30/37;
  background-color: #ffffff;
  -webkit-mask-image: url(../images/pdf_icon.svg);
          mask-image: url(../images/pdf_icon.svg);
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
}
.product-action_btn .movie_icon {
  display: block;
  width: clamp(1.875rem, 0.8695652174vw + 1.6467391304rem, 2.625rem);
  aspect-ratio: 42/30;
  background-color: #ffffff;
  -webkit-mask-image: url(../images/movie_icon.svg);
          mask-image: url(../images/movie_icon.svg);
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: cover;
          mask-size: cover;
}

/*-------------------------------------------------------------------------------
  news
--------------------------------------------------------------------------------*/
.news-archive_wrapper {
  width: 100%;
  padding: clamp(3.75rem, 2.8985507246vw + 2.9891304348rem, 6.25rem) 0 0;
}

.category_filter {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem) clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  margin-bottom: clamp(2.5rem, 4.347826087vw + 1.3586956522rem, 6.25rem);
}
.category_filter .filter_btn {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem) clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.2083333333vw + 0.9375rem, 1.125rem);
  width: calc((100% - clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem) * 3) / 4);
  color: #333333;
  border: 1px solid #333333;
  background-color: #ffffff;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}
@media (max-width: 768px) {
  .category_filter .filter_btn {
    width: calc((100% - clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem) * 2) / 3);
  }
}
@media (max-width: 480px) {
  .category_filter .filter_btn {
    width: calc((100% - clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem)) / 2);
  }
}
@media (max-width: 420px) {
  .category_filter .filter_btn {
    width: 100%;
  }
}
.category_filter .filter_btn.is-active {
  background-color: #333333;
  color: #ffffff;
}
@media (min-width: 769px) {
  .category_filter .filter_btn:hover {
    background-color: #333333;
    color: #ffffff;
  }
}

.news_article_item {
  padding: clamp(3.125rem, 3.6231884058vw + 2.1739130435rem, 6.25rem) 0;
}
.news_article_item:nth-of-type(odd) {
  background-color: #f0f0f0;
}

.no_post_msg {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.2083333333vw + 0.9375rem, 1.125rem);
  color: #333333;
  text-align: center;
  padding: clamp(2.5rem, 1.4492753623vw + 2.1195652174rem, 3.75rem) 0;
}

.news_meta_header {
  display: flex;
  align-items: center;
}

.news_date {
  font-weight: 700;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.4166666667vw + 0.875rem, 1.25rem);
  color: #7F7F7F;
  margin-right: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
}

.news_cat_label {
  display: block;
  padding: clamp(0.1875rem, 0.1449275362vw + 0.1494565217rem, 0.3125rem) clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  background-color: #333333;
  color: #ffffff;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.75rem, 0.2083333333vw + 0.6875rem, 0.875rem);
}

.news_article_title {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1.0625rem, 0.625vw + 0.875rem, 1.4375rem);
  color: #333333;
  padding-bottom: clamp(0.625rem, 0.7246376812vw + 0.4347826087rem, 1.25rem);
  margin: clamp(0.625rem, 0.7246376812vw + 0.4347826087rem, 1.25rem) 0 clamp(1.5625rem, 1.8115942029vw + 1.0869565217rem, 3.125rem);
  border-bottom: 1px solid #7F7F7F;
}

.news_media_area {
  display: flex;
  align-items: center;
  justify-content: center;
}

.news_image_gallery {
  width: 84%;
  aspect-ratio: 16/9;
}
@media (max-width: 768px) {
  .news_image_gallery {
    width: 100%;
  }
}

.news_image_item {
  width: 100%;
  height: 100%;
  display: block;
}
.news_image_item.is-hidden {
  display: none;
}
.news_image_item a {
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
}
.news_image_item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.video_container {
  width: 84%;
  aspect-ratio: 16/9;
  position: relative;
}
@media (max-width: 768px) {
  .video_container {
    width: 100%;
  }
}
.video_container iframe,
.video_container video,
.video_container embed,
.video_container object {
  width: 100%;
  height: 100%;
  display: block;
}

.news_body_content {
  margin-top: clamp(1.875rem, 1.4492753623vw + 1.4945652174rem, 3.125rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.5;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.2083333333vw + 0.8125rem, 1rem);
  color: #333333;
}

/*-------------------------------------------------------------------------------
  notfound
--------------------------------------------------------------------------------*/
.notfound_wrapper,
.thanks_wrapper {
  position: relative;
  width: 100%;
  margin: clamp(6.25rem, 3.6231884058vw + 5.2989130435rem, 9.375rem) 0 clamp(5rem, 1.4492753623vw + 4.6195652174rem, 6.25rem);
}

/*-------------------------------------------------------------------------------
  footer
--------------------------------------------------------------------------------*/
.footer_main {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: clamp(1.5625rem, 0.3623188406vw + 1.4673913043rem, 1.875rem) 0 clamp(1.25rem, 1.0869565217vw + 0.964673913rem, 2.1875rem);
  border-bottom: 1px solid #333333;
}
@media (max-width: 560px) {
  .footer_main {
    flex-direction: column;
  }
}

.footer_logo {
  display: block;
  margin-bottom: clamp(0.9375rem, 1.0869565217vw + 0.652173913rem, 1.875rem);
}
.footer_logo .logo_mark {
  display: block;
  width: clamp(11.25rem, 5vw + 9.9375rem, 15.5625rem);
  aspect-ratio: 249/82;
  background-color: #333333;
  -webkit-mask-position: center center;
          mask-position: center center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: clamp(11.25rem, 5vw + 9.9375rem, 15.5625rem);
          mask-size: clamp(11.25rem, 5vw + 9.9375rem, 15.5625rem);
  -webkit-mask-image: url(../images/logo-mark.svg);
          mask-image: url(../images/logo-mark.svg);
}

.footer_address {
  margin-bottom: clamp(0.9375rem, 0.3623188406vw + 0.8423913043rem, 1.25rem);
  font-style: normal;
}

.footer_company-name {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.4166666667vw + 0.875rem, 1.25rem);
  color: #333333;
}

.footer_zip-address {
  margin-top: clamp(0.3125rem, 0.3623188406vw + 0.2173913043rem, 0.625rem);
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.3;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.8125rem, 0.2083333333vw + 0.75rem, 0.9375rem);
  color: #333333;
}

.footer_contact {
  margin-top: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
}

.footer_contact-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem) clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem);
  background-color: #333333;
  color: #ffffff;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(1rem, 0.4166666667vw + 0.875rem, 1.25rem);
  transition: all 0.3s ease;
  overflow: hidden;
  z-index: 1;
}
.footer_contact-btn::after {
  content: "\e158";
  display: block;
  font-weight: 200;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1;
  font-family: "Material Symbols Outlined";
  font-size: clamp(1.75rem, 0.625vw + 1.5625rem, 2.125rem);
  font-variation-settings: "FILL" 0, "wght" 200, "GRAD" 0, "opsz" 24;
  color: #ffffff;
  transition: transform 0.4s ease;
  margin-left: clamp(0.5rem, 0.1449275362vw + 0.4619565217rem, 0.625rem);
}
.footer_contact-btn::before {
  content: "";
  position: absolute;
  top: 0;
  width: 0;
  right: 0;
  left: auto;
  height: 100%;
  background-color: #5d5d5d;
  transition: width 0.3s ease;
  z-index: -1;
}
@media (min-width: 769px) {
  .footer_contact-btn:hover::before {
    width: 100%;
    left: 0;
    right: auto;
  }
}

.footer_tel {
  margin-top: clamp(0.625rem, 0.3623188406vw + 0.5298913043rem, 0.9375rem);
  font-weight: 700;
  letter-spacing: calc(0 * 0.001em);
  line-height: 1.2;
  font-family: "Almarai", sans-serif;
  font-size: clamp(2.25rem, 0.2083333333vw + 2.1875rem, 2.375rem);
  color: #333333;
}
.footer_tel span {
  display: inline-block;
  font-weight: 700;
  letter-spacing: calc(30 * 0.001em);
  line-height: 1.2;
  font-family: "Almarai", sans-serif;
}

.footer_bottom {
  margin: clamp(1.25rem, 0.7246376812vw + 1.0597826087rem, 1.875rem) 0;
}

.footer_nav_list {
  display: flex;
  justify-content: center;
  gap: clamp(1.25rem, 0.484496124vw + 1.0174418605rem, 1.5625rem);
  margin-bottom: clamp(1.875rem, 0.484496124vw + 1.6424418605rem, 2.1875rem);
}
@media (max-width: 768px) {
  .footer_nav_list {
    display: none;
  }
}
.footer_nav_list a {
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.875rem, 0.4166666667vw + 0.75rem, 1.125rem);
  color: #333333;
  transition: color 0.3s ease;
}
.footer_nav_list a:hover {
  color: #B1B1B1;
}

.footer_copyright {
  text-align: center;
  font-weight: 500;
  letter-spacing: calc(50 * 0.001em);
  line-height: 1.2;
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-size: clamp(0.8125rem, 0.2083333333vw + 0.75rem, 0.9375rem);
  color: #7F7F7F;
}

input:not([type=radio]):not([type=checkbox]).val-err,
select.val-err,
textarea.val-err {
  background-color: #FFE4E4 !important;
}

p.val-err {
  color: #e40000;
  font-size: 0.8em;
}
p.val-err::before {
  content: "※";
}

.check_no-through {
  color: #e40000;
}

input:not([type=radio]):not([type=checkbox]).val-through,
select.val-through,
textarea.val-through {
  background-color: #E2FBE2 !important;
}

.check_any_required.val-err input:not([type=radio]):not([type=checkbox]),
.check_any_required.val-err select,
.check_any_required.val-err textarea {
  background-color: #FFE4E4 !important;
}
.check_any_required.val-through input:not([type=radio]):not([type=checkbox]):not(.val-err),
.check_any_required.val-through select:not(.val-err),
.check_any_required.val-through textarea:not(.val-err) {
  background-color: #E2FBE2 !important;
}

/*# sourceMappingURL=common.css.map*/