@charset "UTF-8";
/* -------------------------------------------*/
/* -------------------------------------------*/
/* -------------------------------------------*/
/* メディアクエリ
-------------------------------------------*/
/* トランジション
-------------------------------------------*/
/* ベンダープレフィックス
-------------------------------------------*/
/* レイアウト
-------------------------------------------*/
/* テキスト
-------------------------------------------*/
/* 画像
-------------------------------------------*/
/* 図形
-------------------------------------------*/
/* フォーム
-------------------------------------------*/
/* -------------------------------------------*/
/* カラー変数
-------------------------------------------*/
:root {
  --white: #fff;
  --black: #000;
  --base-color: #333;
  --primary: #006ab7;
  --primary-dark: #1e3c72;
  --primary-gradient: linear-gradient(
    146deg,
    #006ab7 0%,
    #2a5298 74%,
    #1e3c72 100%
  );
  --primary-gradient-col: linear-gradient(
    to bottom,
    #006ab7 0%,
    #2a5298 74%,
    #1e3c72 100%
  );
  --accent: #65b2ff;
  --base-bg: #fff;
  --second-bg: #f0f7ff;
  --gray: #e0e0e0;
  --gray-muted: #79828c;
  --border: #c1c1c1;
  --gray-bg: #f5f5f5;
  --gray-square: #b4b4b4;
}

/* フォント変数
-------------------------------------------*/
:root {
  --base-font-family:
    "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN",
    "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
  --en-font-family:
    "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN",
    "游ゴシック", YuGothic, "メイリオ", Meiryo, sans-serif;
  --barlow-font-family: "Barlow Condensed", sans-serif;
  --base-font-size: 1.6rem;
  --light: 300;
  --regular: 400;
  --normal: 500;
  --semi-bold: 600;
  --bold: 700;
}

/* レイアウト変数
-------------------------------------------*/
:root {
  --content-width: 100rem;
  --content-width-m: 110rem;
  --content-width-l: 124rem;
  --header-height-top: 11rem;
  --header-height: 9rem;
  --padding-pc: 7rem;
  --padding-pc--m: 4rem;
  --padding-sp: 2rem;
}
/* -------------------------------------------*/
/* -------------------------------------------*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  border: 0;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

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

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

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

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

html {
  -ms-overflow-style: scrollbar;
  font-size: 75%;
  overflow: auto;
}

body {
  color: var(--base-color);
  font-family: var(--base-font-family);
  font-feature-settings: "halt";
  font-size: var(--base-font-size);
  font-weight: var(--regular);
  height: 100%;
  letter-spacing: 0;
  line-height: 1.5;
  overflow-x: clip;
  position: relative;
}
body.is-childNav-open::before {
  opacity: 1;
  visibility: visible;
}
body::before {
  backdrop-filter: blur(1px);
  background-color: rgba(1, 1, 1, 0.2);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  margin: 0 calc(50% - 50vw);
  opacity: 0;
  position: absolute;
  top: 0;
  transition-duration: 0.2s;
  transition-property: opacity, visibility;
  visibility: hidden;
  width: 100vw;
  z-index: -1;
  z-index: 50;
}

[tabindex="-1"]:focus {
  outline: 0 !important;
}

section {
  position: relative;
  width: 100%;
}

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

picture {
  display: block;
  line-height: 1.2;
}

img {
  max-width: 100%;
  vertical-align: middle;
}

svg:not(:root) {
  overflow: hidden;
}

input,
button,
select,
optgroup,
textarea {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  position: relative;
  vertical-align: middle;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-border-radius: 0;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month] {
  -webkit-appearance: listbox;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  border-offset: -2px;
  -webkit-appearance: none;
}

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

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}
sup {
  font-size: 0.75em;
  vertical-align: super;
}

/* スクロールバー
-------------------------------------------*/
::-webkit-scrollbar-track {
  background-color: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: #19274e;
  border-radius: 5px;
}

::-webkit-scrollbar-button:start {
  display: none;
}

::-webkit-scrollbar-button:end {
  display: none;
}

/* -------------------------------------------*/
/*
 * ベースフォームスタイル
 * `:where()` で 0 specificity に固定し、
 * `.contact-input` などのクラス指定が必ず勝つようにしている
 */
/* input / textarea
-------------------------------------------*/
:where(input[type=text],
input[type=date],
input[type=password],
input[type=email],
input[type=time],
input[type=tel],
input[type=number]) {
  border: 1px solid #e0e0e0;
  border-radius: 5px;
  line-height: 1;
  padding: 10px 16px;
  position: relative;
  width: 100%;
}

:where(input[type=number]) {
  -moz-appearance: textfield;
}

:where(::-moz-placeholder) {
  color: #b7b7b7;
  font-size: 1.4rem;
}

:where(::placeholder) {
  color: #b7b7b7;
  font-size: 1.4rem;
}

:where(textarea) {
  border: 1px solid #e0e0e0;
  border-radius: 5px;
  font-size: 1.4rem;
  height: 250px;
  padding: 10px;
  position: relative;
  width: 100%;
}

:where(input[type=text]:disabled) {
  background: transparent;
  cursor: not-allowed;
}
:where(input[type=text]:disabled)::-moz-placeholder {
  color: var(--base-bg);
  opacity: 1;
}
:where(input[type=text]:disabled)::placeholder {
  color: var(--base-bg);
  opacity: 1;
}

/* ラジオボタン（CF7）
-------------------------------------------*/
:where(input[type=radio]) {
  display: none;
  vertical-align: middle;
}

:where(input[type=radio] + .wpcf7-list-item-label) {
  cursor: pointer;
  display: inline-block;
  margin: 0 20px 10px 0;
  padding: 10px 10px 10px 40px;
  position: relative;
  transition: 0.5;
  transition-property: color;
  vertical-align: middle;
}

:where(input[type=radio] + .wpcf7-list-item-label)::before {
  border: 1px solid #7f7f7f;
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  height: 20px;
  left: 0;
  position: absolute;
  top: 2px;
  transition: 0.5s ease;
  width: 20px;
  z-index: 2;
}

:where(input[type=radio] + .wpcf7-list-item-label)::after {
  background: var(--primary);
  border: none;
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  display: block;
  height: 1.2rem;
  left: 0.4rem;
  opacity: 0;
  position: absolute;
  top: 0.4rem;
  width: 1.2rem;
  z-index: 5;
}

:where(input[type=radio]:checked + .wpcf7-list-item-label)::after {
  opacity: 1;
}

/* チェックボックス（CF7）
-------------------------------------------*/
:where(input[type=checkbox]) {
  opacity: 0;
  vertical-align: middle;
}

:where(.wpcf7-list-item) {
  margin-left: 0;
}

:where(input[type=checkbox] + .wpcf7-list-item-label) {
  cursor: pointer;
  display: inline-block;
  line-height: 1;
  padding: 0 0 0 30px;
  position: relative;
  transition: 0.5s;
}

:where(input[type=checkbox] + .wpcf7-list-item-label)::before {
  background: var(--white);
  border: 1px #b7b7b7 solid;
  border-radius: 3px;
  box-sizing: border-box;
  content: "";
  height: 16px;
  left: 0;
  position: absolute;
  top: 3px;
  width: 16px;
  z-index: 2;
}

:where(input[type=checkbox] + .wpcf7-list-item-label)::after {
  background: url(../images/common/ico-arrow-check.svg) 50%/contain no-repeat;
  content: "";
  height: 1.2rem;
  left: 0.2rem;
  opacity: 0;
  position: absolute;
  top: 0.4rem;
  transition: opacity 0.15s;
  width: 1.5rem;
  z-index: 3;
}

:where(input[type=checkbox]:checked + .wpcf7-list-item-label)::after {
  opacity: 1;
}

/* 電話番号（複数カラム）
-------------------------------------------*/
:where(.mwform-tel-field) {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

:where(.mwform-tel-field > input) {
  flex: 1;
  width: 100% !important;
}

/* セレクトボックス（CF7用パーツ）
-------------------------------------------*/
:where(.select-parts) {
  border: 1px var(--base-bg) solid;
  border-radius: 5px;
  overflow: hidden;
  position: relative;
  width: 100%;
}
:where(.select-parts)::after {
  background: url(../images/contact/select_arrow.png) no-repeat top center/contain;
  content: "";
  height: 10px;
  margin-top: 2px;
  pointer-events: none;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  z-index: 5;
}

:where(.select-parts select) {
  background: #fbefe3;
  border: none;
  box-shadow: none;
  color: #7f7f7f;
  cursor: pointer;
  font-size: 2rem;
  height: 45px;
  padding: 0 20px 0 15px;
  position: relative;
  text-indent: 0.01px;
  text-overflow: ellipsis;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-align: center;
}

/* ファイルアップロード
-------------------------------------------*/
:where(input[type=file] + label) {
  margin: 0 10px 0 0;
  padding: 15px 0;
  width: 160px;
}
:where(input[type=file] + label):after {
  left: 170px;
}

/* バリデーション
-------------------------------------------*/
:where(label.error) {
  color: #ff0000;
  font-size: 1.3rem;
}

:where(.wpcf7-not-valid-tip) {
  display: none;
}

/* -------------------------------------------*/
@keyframes lowerPageReveal {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
body:not(.home) .header,
body:not(.home) .main,
body:not(.home) .footer {
  animation: lowerPageReveal 1s ease 0.08s both;
}

.wrapper {
  transition: opacity 0.36s ease;
}

body.is-page-leaving .wrapper {
  opacity: 0;
  pointer-events: none;
}
.js-fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s ease, transform 1s ease;
  will-change: opacity, transform;
}
.js-fade-in.fade-in {
  opacity: 1;
  transform: translateY(0);
}

@keyframes flowingLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-1 * var(--loop-width)));
  }
}
@keyframes flowingRight {
  0% {
    transform: translateX(calc(-1 * var(--loop-width)));
  }
  100% {
    transform: translateX(0);
  }
}
.js-scroll-anim {
  display: flex;
  overflow: hidden;
}
.js-scroll-anim--left .js-scroll-anim-body.is-animating {
  animation: flowingLeft linear infinite;
}
.js-scroll-anim--right .js-scroll-anim-body.is-animating {
  animation: flowingRight linear infinite;
}
.js-scroll-anim-body {
  display: flex;
  min-width: -moz-max-content;
  min-width: max-content;
  width: -moz-max-content;
  width: max-content;
}
.js-scroll-anim-list {
  display: flex;
}

/* -------------------------------------------*/
/* アクセスカード
-------------------------------------------*/
.access-card + * {
  margin-top: 3.2rem;
}

.access-card__body {
  align-items: flex-start;
  display: flex;
  gap: 0 6.4rem;
}

.access-card__content {
  align-items: flex-start;
  display: flex;
  gap: 1.4rem 2.4rem;
}
.access-card__content .access-card__map {
  aspect-ratio: 353/264;
  width: 35.3rem;
}

.access-card__map {
  aspect-ratio: 356/236;
  width: 45.1776649746%;
}
.access-card__map iframe {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.access-card__info {
  flex: 1;
}
.access-card__contents .list-small__item + * {
  margin-top: 0.4rem;
}

.main .access-card__info p:not([class]),
.main .access-card__info .wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.6;
}
.main .access-card__info p:not([class]) + p,
.main .access-card__info .wp-block-paragraph + p {
  margin-top: 2rem;
}
.main .access-card__info p:not([class]) + ul, .main .access-card__info p:not([class]) + ol,
.main .access-card__info .wp-block-paragraph + ul,
.main .access-card__info .wp-block-paragraph + ol {
  margin-top: 0.8rem;
}

/* アクセスカード（背景付き）
-------------------------------------------*/
.access-card--bg {
  background: #fff;
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.16);
  padding: 2rem;
}
.access-card--bg + .access-card--bg {
  margin-top: 2.4rem;
}
.access-card--bg .access-card__title.lower-sec-title__sub {
  font-size: 1.8rem;
}

/* -------------------------------------------*/
/* 記事を書いた人
-------------------------------------------*/
.author {
  align-items: flex-start;
  background: var(--gray-bg);
  border-radius: 0.6rem;
  display: flex;
  gap: 1.4rem 2.4rem;
  margin-block: 6.4rem;
  padding: 2.4rem 3.6rem 2.6rem 2.4rem;
}

.author-thumb {
  aspect-ratio: 160/118;
  background: var(--gray);
  flex-shrink: 0;
  overflow: hidden;
  width: 16rem;
}
.author-thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.author-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1.4rem 1.1rem;
  width: 100%;
}

.author-name {
  color: var(--base-color);
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.4666666667;
  margin: 0;
  padding-left: 1.7rem;
  position: relative;
}
.author-name::before {
  background: var(--gray-square);
  content: "";
  height: 0.6rem;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 0.6rem;
}

.author-text {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* CTA ボタン
-------------------------------------------*/
.btn-cta__link {
  align-items: center;
  background: var(--primary-gradient);
  border-radius: 0.4rem;
  color: var(--primary-dark);
  display: flex;
  gap: 2rem;
  overflow: hidden;
  padding: 1.7rem 2rem 1.9rem;
  position: relative;
  transition: all 0.2s;
}
.btn-cta__link::after {
  background-color: var(--white);
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
}
.btn-cta__link > * {
  position: relative;
  z-index: 2;
}
.btn-cta__link-inner {
  flex: 1;
}
.btn-cta__sub {
  font-size: 1.2rem;
  letter-spacing: 0.02em;
  line-height: 1.5;
}
.btn-cta__main {
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 1.5;
  margin-top: 0.1rem;
}
.btn-cta__arrow {
  background-color: var(--white);
  border-radius: 50%;
  height: 3.1rem;
  overflow: hidden;
  position: relative;
  width: 3.1rem;
}
.btn-cta__arrow::before, .btn-cta__arrow::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.2s;
}
.btn-cta__arrow::before {
  background: var(--primary-gradient-col);
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
}
.btn-cta__arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--white);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  left: 53%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.7rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* 枠あり：詳しく見るボタン（青背景+白テキスト）
-------------------------------------------*/
.btn {
  display: block;
}
.btn + * {
  margin-top: 4rem;
}
.btn + *.lower-sec-title {
  margin-top: 6.4rem;
}

.btn__link {
  align-items: center;
  background: var(--primary);
  border: 1px solid var(--primary);
  border-radius: 0.4rem;
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.3);
  color: var(--white);
  display: flex;
  font-family: var(--en-font-family);
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  gap: 0.8rem;
  justify-content: space-between;
  line-height: 1.4285714286;
  padding: 1.3rem 1.4rem;
  transition: all 0.2s;
  width: 19.6rem;
}
.btn__link--lg {
  font-size: 1.5rem;
  gap: 1.4rem;
  line-height: 1.3333333333;
  padding-inline: 1.5rem 1.7rem;
  width: -moz-fit-content;
  width: fit-content;
}
.btn__link--lg .btn__link-mail + * {
  margin-left: -0.2rem;
}
.btn__link span:not([class]) {
  flex: 1;
}

.btn__link-mail {
  aspect-ratio: 30/24;
  background-color: var(--white);
  -webkit-mask: url(../images/common/ico-mail.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-mail.svg) 50%/contain no-repeat;
  transition: all 0.2s;
  width: 2rem;
  z-index: 1;
}

.btn__link-arrow {
  aspect-ratio: 1/1;
  background-color: var(--white);
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  transition: all 0.2s;
  width: 1.6rem;
}
.btn__link-arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  content: "";
  left: 50%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  width: 0.4rem;
}

/* 枠なし：一覧を見るボタン（テキスト + 青丸矢印）
-------------------------------------------*/
.btn-list {
  display: block;
}

.btn-list__link {
  align-items: center;
  display: flex;
  font-family: var(--en-font-family);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  gap: 1.6rem;
  transition: all 0.2s;
}

.btn-list__arrow {
  background: transparent;
  border: 1px solid var(--primary);
  border-radius: 50%;
  flex-shrink: 0;
  height: 5.8rem;
  position: relative;
  transition: all 0.2s;
  width: 5.8rem;
}

.btn-list__arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  content: "";
  left: 50%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  width: 1rem;
}

/* サイズバリエーション
-------------------------------------------*/
.btn--wide .btn__link {
  width: 27.8rem;
}

.btn--sm .btn__link {
  font-size: 1.3rem;
  height: 4rem;
  width: 16rem;
}

/* ホワイトバリエーション（暗背景用）
-------------------------------------------*/
.btn--white .btn__link {
  background: var(--white);
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.3);
  color: var(--primary);
}

.btn--white .btn__link-arrow {
  background-color: var(--primary);
}
.btn--white .btn__link-arrow::after {
  background-color: var(--white);
}

/* -------------------------------------------*/
/* ========================================
  business card
======================================== */
.business-card-section {
  padding-block: 4rem;
}
.business-card-section + * {
  margin-top: 8rem;
}

.business-card {
  align-items: center;
  display: flex;
  gap: 1.8rem 4.8rem;
}
.business-card + .business-card {
  margin-top: 4.8rem;
  padding-top: 4.8rem;
  position: relative;
}
.business-card + .business-card::before {
  background: linear-gradient(to right, var(--primary) 8rem, var(--border) 8rem, var(--border) 100%);
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.business-card__body {
  flex: 1;
}
.business-card__title {
  align-items: flex-start;
  display: flex;
  font-size: 2rem;
  font-weight: var(--semi-bold);
  gap: 1.2rem;
  line-height: 1.45;
}
.business-card__title::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  content: "";
  margin-top: 1.2rem;
  width: 0.7rem;
}
.business-card__title span {
  flex: 1;
}
.business-card__title + * {
  margin-top: 2rem;
}
.business-card__text {
  font-size: 1.6rem;
  font-weight: var(--regular);
  letter-spacing: 0.04em;
  line-height: 1.6;
}
.business-card__text + * {
  margin-top: 2.4rem;
}
.business-card__btn .btn__link {
  min-width: 19.6rem;
  width: -moz-fit-content;
  width: fit-content;
}
.business-card__image {
  border-radius: 0.6rem;
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.16);
  overflow: hidden;
  width: 36.8%;
}

/* -------------------------------------------*/
/* ========================================
   カード系コンポーネント
======================================== */
/* 事例詳細導入設備ギャラリー等
-------------------------------------------*/
.card-item {
  max-width: 35.6rem;
  width: 100%;
}

.card-item__image {
  aspect-ratio: 249/187;
  border-radius: 0.4rem;
  overflow: hidden;
}
.card-item__image + * {
  margin-top: 0.8rem;
}

.card-item__image img {
  border-radius: 0.4rem;
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
  display: block;
  object-fit: contain;
  overflow: hidden;
  transition: all 0.2s;
}

.card-item__image-link {
  display: block;
  height: 100%;
  transition: opacity 0.3s;
  width: 100%;
}

.card-item__image--contain {
  background-color: #f5f5f5;
}
.card-item__image--contain img {
  -o-object-fit: contain !important;
  object-fit: contain !important;
}

.card-item__image--cover img {
  -o-object-fit: cover !important;
  object-fit: cover !important;
}

.card-item__image--noimg {
  align-items: center;
  background: var(--gray);
  display: flex;
  justify-content: center;
}

.card-item__image--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.card-item__caption {
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
}
.card-item__caption + * {
  margin-top: 0.6rem;
}

.card-item__title {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  margin-top: 1rem;
}
.card-item__title + * {
  margin-top: 0.6rem;
}
.card-item__title:last-child {
  margin-bottom: 0;
}

.card-item__desc {
  color: var(--base-color);
  font-size: 1.2rem;
  font-weight: var(--regular);
  line-height: 1.4;
}

.card-item__text {
  color: var(--base-color);
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.8;
}

/* カード大_
-------------------------------------------*/
.card-item--large {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.16);
  display: flex;
  flex-direction: column;
  padding: 1.6rem 1.6rem 2rem;
}
.card-item--large .card-item__body {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.card-item--large .card-item__image {
  aspect-ratio: 454/254;
}
.card-item--large .card-item__image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.card-item--large .card-item__image + * {
  margin-top: 1.8rem;
}
.card-item--large .lower-sec-title__group {
  margin-bottom: 2.4rem;
}
.card-item--large .lower-sec-title__group:last-child {
  margin-bottom: 0;
}
.card-item--large .card-item__btn {
  margin-top: auto;
}
.card-item--large .card-item__btn .btn__link {
  min-width: 19.6rem;
  width: -moz-fit-content;
  width: fit-content;
}

/* 事例詳細導入設備ギャラリー等_横並び_
-------------------------------------------*/
.card-item--row {
  align-items: flex-start;
  display: flex;
  flex-direction: row;
  gap: 1.4rem 2.4rem;
  max-width: 100%;
  padding-bottom: 1.6rem;
  width: 100%;
}
.card-item--row .card-item__image {
  aspect-ratio: 340/280;
  width: 44.9735449735%;
}
.card-item--row .card-item__image img {
  -o-object-fit: cover;
  object-fit: cover;
}
.card-item--row .card-item__image + * {
  margin-top: 0 !important;
}
.card-item--row .card-item__box {
  flex: 1;
}
.card-item--row .card-item__box .lower-sec-title__small + .wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.6;
  margin-top: 0.6rem !important;
}
.card-item--row .card-item__box .lower-sec-title__small + .wp-block-paragraph + .lower-sec-title__small {
  margin-top: 2.2rem;
}
.card-item--row .card-item__body {
  flex: 1;
}
.card-item--row .card-item__body p:not([class]),
.card-item--row .card-item__body .wp-block-paragraph {
  line-height: 1.6;
  margin-bottom: 0;
}
.card-item--row .card-item__body p:not([class]) + *,
.card-item--row .card-item__body .wp-block-paragraph + * {
  margin-top: 1.5rem;
}
.card-item--row .card-item__body .lower-sec-title__small + * {
  margin-top: 0.8rem !important;
}
.card-item--row .card-item__body .btn + * {
  margin-top: 2.4rem !important;
}

.card-item--row__normal {
  gap: 2.4rem;
  padding: 0 !important;
}
.card-item--row__normal .card-item__image {
  aspect-ratio: 350/210;
  width: 44.4162436548%;
}

/* 事例詳細導入設備ギャラリー等_横並び_背景無し
-------------------------------------------*/
.card-item--row__nobg {
  background-color: transparent;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

/* -------------------------------------------*/
/* ========================================
   カード系コンポーネント-wrap
======================================== */
/* 事例詳細導入設備ギャラリー等
-------------------------------------------*/
.card-wrap {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  margin-top: 3.2rem;
}
.card-wrap:first-child {
  margin-top: 0;
}
.card-wrap .card-item {
  margin-left: auto;
}
.card-wrap--col2 {
  gap: 3.2rem 2.4rem;
  grid-template-columns: repeat(2, 1fr);
}
.card-wrap--col2 .card-item {
  max-width: 100%;
}
.card-wrap--col3 {
  gap: 3.2rem 2rem;
  grid-template-columns: repeat(3, 1fr);
}
.card-wrap--large {
  gap: 2.8rem;
}
.card-wrap--row + .card-wrap--row {
  margin-top: 2.4rem;
}
.card-wrap + .lower-sec-title__small {
  margin-top: 3.2rem;
}
.card-wrap + * {
  margin-top: 3.2rem;
}
.card-wrap + h2 {
  margin-top: 6.4rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.center-card-container {
  display: grid;
  gap: 2.8rem;
  grid-template-columns: repeat(2, 1fr);
}

.center-card {
  background: var(--white);
  border-radius: 0.4rem;
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.16);
  overflow: hidden;
}

.center-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  z-index: 1;
}

.center-card__link::after {
  background: var(--primary-gradient-col);
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
  z-index: -1;
}

.center-card__thumb {
  aspect-ratio: 486/270;
  background: var(--gray);
}

.center-card__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

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

.center-card__thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.center-card__body {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 1.6rem;
  justify-content: space-between;
  padding: 1.6rem;
}

.center-card__title {
  color: var(--base-color);
  flex: 1;
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  line-height: 1.4444444444;
  transition: all 0.2s;
}

.center-card__arrow {
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: 50%;
  display: block;
  height: 3.1rem;
  overflow: hidden;
  position: relative;
  position: relative;
  transition: all 0.2s;
  width: 3.1rem;
}
.center-card__arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary);
  content: "";
  left: 50%;
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  width: 0.7rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.circle-list {
  background-color: var(--second-bg);
  padding: 4rem;
}
.circle-list + * {
  margin-top: 3.2rem;
}

.circle-list__ul {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
}

.circle-list__item {
  align-items: center;
  aspect-ratio: 1/1;
  background-color: var(--white);
  border-radius: 50%;
  box-shadow: 0 0 0.8rem rgba(30, 60, 114, 0.16);
  display: flex;
  justify-content: center;
  padding: 0 0.5rem;
  width: calc(20% - 1.2rem);
}

.circle-list__text {
  color: var(--primary);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  line-height: 1.4444444444;
  text-align: center;
}
.circle-list__text span {
  display: block;
  font-size: 0.6em;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.company-fv {
  height: 100%;
  position: relative;
  z-index: 1;
}
.company-fv__inner {
  height: 100%;
  padding: 6rem 4.2rem 4.9rem 4.2rem;
}
.company-fv::before {
  background: linear-gradient(90deg, #FCFCFC 1.48%, rgba(252, 252, 252, 0) 101.38%);
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
  z-index: 2;
}
.company-fv__bg {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
  z-index: 0;
  z-index: 1;
}
.company-fv__bg picture {
  display: block;
  height: 100%;
  width: 100%;
}
.company-fv__bg img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: 90%;
  object-position: 90%;
}
.company-fv__body {
  display: flex;
  flex-direction: column;
  gap: 1.9rem;
  position: relative;
  width: 70%;
  z-index: 3;
}
.company-fv__title {
  width: var(--title-width-pc);
}
.company-fv__title img {
  height: auto;
  width: 100%;
}
.company-fv__text {
  color: var(--primary);
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.8;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.company-list__item {
  align-items: flex-start;
  display: grid;
  grid-template-columns: 12rem 1fr;
  position: relative;
  position: relative;
}
.company-list__item + .company-list__item {
  border-top: 1px solid var(--border);
  margin-top: 2.2rem;
  padding-top: 2.2rem;
}
.company-list__item + .company-list__item::before {
  background-color: var(--primary);
  content: "";
  display: block;
  height: 0.1rem;
  left: 0;
  position: absolute;
  top: -0.1rem;
  width: 12rem;
}
.company-list__item .list-small__item + * {
  margin-top: 0.4rem;
}

.company-list__label {
  color: var(--primary);
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.4666666667;
}

.company-list__text {
  padding-inline: 4.9rem;
}
.company-list__text p {
  font-size: 1.4rem !important;
  line-height: 1.6 !important;
}
.company-list__text p + * {
  margin-top: 0.8rem !important;
}

/* -------------------------------------------*/
/* お問い合わせ 共通フォームパーツ
   全お問い合わせページ共通（ページ固有クラスは作らない）
-------------------------------------------*/
/* フォームコンテナ（白カード）
-------------------------------------------*/
.contact-body__inner {
  background: var(--white);
  border-radius: 0.8rem;
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.16);
  margin-inline: auto;
  max-width: 100rem;
  padding: 4rem 6.4rem 6.4rem;
}

.contact-body__wrap {
  margin-inline: auto;
  max-width: 82.8rem;
  padding-inline: 2rem;
}

/* フォームステップ（入力→確認→完了）
-------------------------------------------*/
.contact-steps {
  align-items: flex-start;
  display: flex;
  justify-content: center;
  margin-bottom: 4.8rem;
}

.contact-steps__item {
  align-items: flex-start;
  display: flex;
}

.contact-steps__item:not(:last-child)::after {
  background: var(--border);
  content: "";
  display: block;
  height: 0.1rem;
  margin-top: 2rem;
  width: 8rem;
}

.contact-steps__item--line-active:not(:last-child)::after {
  background: var(--primary);
}

.contact-steps__btn {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  text-align: center;
}

.contact-steps__circle {
  align-items: center;
  background: var(--white);
  border: 0.1rem solid var(--border);
  border-radius: 50%;
  color: var(--border);
  display: flex;
  flex-shrink: 0;
  font-family: var(--barlow-font-family);
  font-size: 1.8rem;
  font-weight: var(--normal);
  height: 4rem;
  justify-content: center;
  line-height: 1;
  width: 4rem;
}

.contact-steps__label {
  color: var(--border);
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
}

.contact-steps__item--active .contact-steps__circle {
  background: var(--white);
  border-color: var(--primary);
  color: var(--primary);
}

.contact-steps__item--active .contact-steps__label {
  color: var(--primary);
}

/* フォームセクション
-------------------------------------------*/
.contact-validation-message {
  color: #d90000;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  line-height: 1.6;
  margin: -1.8rem 0 4rem;
  text-align: center;
}

.contact-section + * {
  margin-top: 6.4rem;
}

.contact-section + .contact-agree {
  margin-top: 4rem;
}

.contact-section > .lower-sec-title {
  margin-bottom: 4rem;
}

.contact-section > .lower-sec-title__sub {
  margin: 4rem auto 2rem;
  max-width: 78.8rem;
}

.contact-section__note {
  color: var(--base-color);
  font-size: 1.3rem;
  line-height: 1.6;
  margin-bottom: 1.6rem;
}

/* 条件付き入力欄ラッパー（背景グレー）
-------------------------------------------*/
.contact-conditional__note {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.6;
  margin: 3.2rem 0 2.4rem;
}

.contact-conditional {
  background: #f5f5f5;
  border-radius: 0.6rem;
  margin-bottom: 4rem;
  padding: 3.2rem 2.8rem;
}

.contact-conditional > .contact-group {
  max-width: 78.8rem;
  padding-inline: 0;
}

.contact-conditional > .contact-group::after {
  width: 100%;
}

.contact-group--non-border {
  padding-bottom: 0 !important;
}

.contact-conditional > .contact-group:first-of-type,
.contact-conditional > .contact-group:last-of-type {
  margin-bottom: 0;
  padding-bottom: 0;
}

.contact-conditional > .contact-group:first-of-type::after,
.contact-conditional > .contact-group:last-of-type::after {
  display: none;
}

.contact-conditional > .lower-sec-title__sub {
  margin: 4rem auto 2rem;
  max-width: 78.8rem;
}

.contact-conditional > .lower-sec-title__sub:first-child {
  margin-top: 0;
}

/* SP アコーディオン（条件付き入力欄）
   トリガーは SP のみ表示、PC は本体常時表示
-------------------------------------------*/
.contact-accordion__trigger {
  display: none;
}

.contact-conditional__note--skip {
  color: var(--base-color);
  display: none;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.6;
  margin: 2.4rem 0 1.6rem;
}
/* フォームグループ（1フィールド行）
-------------------------------------------*/
.contact-group {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-bottom: 2.8rem;
  margin-inline: auto;
  max-width: 82.8rem;
  padding-bottom: 2.8rem;
  padding-inline: 2rem;
  position: relative;
}
.contact-group::after {
  background: linear-gradient(to right, var(--primary) 0%, var(--primary) 8rem, var(--border) 8rem, var(--border) 100%);
  bottom: 0;
  content: "";
  height: 1px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: calc(100% - 4rem);
}
.contact-group--non-border::after {
  display: none;
}
.contact-group--non-border + .contact-group {
  margin-top: 4rem;
}

.contact-group__head {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.contact-group__label-wrap {
  align-items: flex-start;
  display: flex;
  gap: 1.2rem;
}

.contact-group__label {
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  line-height: 1.5;
}

.contact-group__content {
  min-width: 0;
  width: 100%;
}

.contact-group__help {
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.6;
}

.contact-group__sublabel {
  color: var(--base-color);
  display: block;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  margin-bottom: 0.8rem;
}

.contact-group__row {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.contact-group__row-item {
  display: flex;
  flex-direction: column;
}

/* バッジ（必須・任意）
-------------------------------------------*/
.contact-badge {
  align-items: center;
  border-radius: 0.2rem;
  display: inline-flex;
  flex-shrink: 0;
  font-size: 1.3rem;
  font-weight: var(--semi-bold);
  height: 2.4rem;
  justify-content: center;
  width: 4.4rem;
}

.contact-badge--required {
  background: #035490;
  color: var(--white);
}

.contact-badge--optional {
  background: var(--second-bg);
  border: 0.1rem solid var(--primary);
  color: var(--primary);
}

/* チェックボックス・ラジオボタン
-------------------------------------------*/
.contact-checks-wrap--3col .contact-checks {
  grid-template-columns: repeat(3, 1fr);
}

.contact-checks {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(2, 1fr);
}
.contact-checks .wpcf7-list-item {
  display: block;
  line-height: 1;
  margin-left: 0;
}

.contact-checks-wrap:has(+ .wpcf7-form-control-wrap) .contact-checks .wpcf7-list-item.last,
.contact-checks-wrap--other-full .contact-checks .wpcf7-list-item.last {
  grid-column: 1/-1;
}

.contact-checks--col {
  gap: 1.4rem;
  grid-template-columns: 1fr;
}

/* チェックグループ直後の自由記述欄
-------------------------------------------*/
.contact-checks-wrap + .wpcf7-form-control-wrap,
.contact-checks-wrap + .contact-textarea {
  display: block;
  margin-top: 1.4rem;
}

.contact-checks-wrap .emic-confirm-error {
  display: block;
  margin-top: 0.7rem;
}

.contact-checks .wpcf7-list-item > label {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  position: relative;
}

.contact-checks input,
.contact-check__input {
  cursor: pointer;
  height: 2rem;
  left: 0;
  margin: 0;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;
}

.contact-checks .wpcf7-list-item-label,
.contact-check__label {
  align-items: center;
  color: var(--base-color);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.4;
  line-height: 1.5;
  min-height: 2rem;
  padding-left: 3.2rem;
  position: relative;
}

.contact-checks .wpcf7-list-item-label::before,
.contact-check__label::before {
  background: var(--white);
  border: 0.1rem solid var(--border);
  border-radius: 0.2rem;
  content: "";
  height: 2rem;
  left: 0;
  position: absolute;
  top: 0;
  transition: border-color 0.15s;
  width: 2rem;
}

.contact-checks .wpcf7-list-item-label::after,
.contact-check__label::after {
  background: url(../images/common/ico-arrow-check.svg) 50%/contain no-repeat;
  content: "";
  height: 1.2rem;
  left: 0.2rem;
  opacity: 0;
  position: absolute;
  top: 0.4rem;
  transition: opacity 0.15s;
  width: 1.5rem;
}

.contact-checks input:checked + .wpcf7-list-item-label::after,
.contact-check__input:checked + .contact-check__label::after {
  opacity: 1;
}

.contact-checks input:disabled + .wpcf7-list-item-label,
.contact-check__input:disabled + .contact-check__label {
  cursor: not-allowed;
  opacity: 0.45;
}

.contact-checks input:focus-visible + .wpcf7-list-item-label::before .contact-check__input:focus-visible + .contact-check__labell::before {
  outline: 0.2rem solid var(--primary);
  outline-offset: 0.2rem;
}

/* ラジオボタン */
.wpcf7-radio .wpcf7-list-item-label::before {
  border-radius: 50%;
}

.wpcf7-radio .wpcf7-list-item-label::after {
  background: var(--primary);
  border: none;
  border-radius: 50%;
  height: 1.2rem;
  left: 0.4rem;
  top: 0.4rem;
  width: 1.2rem;
}

/* テキスト入力
-------------------------------------------*/
.contact-input {
  background: var(--white);
  border: 0.1rem solid var(--border);
  border-radius: 0.4rem;
  color: var(--base-color);
  display: block;
  font-size: 1.3rem;
  height: 4.5rem;
  line-height: 1.4;
  padding: 0 1.4rem;
  transition: border-color 0.2s;
  width: 100%;
}
.contact-input:disabled {
  background: #e8e8e8;
}

.contact-input:focus {
  border-color: var(--primary);
  outline: none;
}

.contact-input::-moz-placeholder {
  color: var(--border);
}

.contact-input::placeholder {
  color: var(--border);
}

.contact-input:-webkit-autofill,
.contact-input:-webkit-autofill:hover,
.contact-input:-webkit-autofill:focus,
.contact-input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--base-color);
  box-shadow: 0 0 0 100rem var(--white) inset;
  caret-color: var(--base-color);
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
}

/* フォームコントロール幅修飾子（input / select 共通）
-------------------------------------------*/
.contact-input--xs,
.contact-select--xs {
  width: 8rem;
}

.contact-input--sm,
.contact-select--sm {
  width: 13rem;
}

.contact-input--md,
.contact-select--md {
  width: 30rem;
}

.contact-input--lg,
.contact-select--lg {
  width: 30rem;
}

/* 日付入力（右側にカレンダーアイコン）
-------------------------------------------*/
input.contact-input--date {
  background: var(--white) url(../images/common/ico-calendar.svg) no-repeat right 2rem center;
  box-sizing: border-box;
  display: block;
  max-width: 100%;
  min-width: 0;
  padding-right: 1.9rem;
  width: 100%;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
}
input.contact-input--date::-webkit-calendar-picker-indicator {
  cursor: pointer;
  height: 100%;
  opacity: 0;
  position: absolute;
  right: 0;
  width: 100%;
}
input.contact-input--date::-webkit-date-and-time-value {
  display: block;
  min-width: 0;
  text-align: left;
}

.wpcf7-form-control-wrap:has(> .contact-input--date),
.wpcf7-form-control-wrap[data-name$=_date] {
  display: block;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}

/* セレクトボックス
-------------------------------------------*/
.contact-select {
  background: var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333333' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 1.4rem center;
  border: 0.1rem solid var(--border);
  border-radius: 0.4rem;
  color: var(--base-color);
  display: block;
  font-size: 1.4rem;
  height: 4.5rem;
  padding: 0 3.6rem 0 1.4rem;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  transition: border-color 0.2s;
}

.contact-select:focus {
  border-color: var(--primary);
  outline: none;
}

/* テキストエリア
-------------------------------------------*/
.contact-textarea {
  background: var(--white);
  border: 0.1rem solid var(--border);
  border-radius: 0.4rem;
  color: var(--base-color);
  display: block;
  font-size: 1.3rem;
  height: 13.5rem;
  letter-spacing: 0;
  line-height: 1.4;
  line-height: 1.6;
  padding: 1.2rem 1.4rem;
  resize: vertical;
  transition: border-color 0.2s;
  width: 100%;
}

.contact-textarea:focus {
  border-color: var(--primary);
  outline: none;
}

.contact-textarea::-moz-placeholder {
  color: var(--border);
}

.contact-textarea::placeholder {
  color: var(--border);
}

/* インラインフィールドグループ（数値範囲・単位付きの横並び）
-------------------------------------------*/
.contact-range {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 1rem;
}
.contact-range--sp .contact-range__inner {
  display: contents;
}

.contact-range__sep {
  color: var(--base-color);
  font-size: 1.6rem;
  font-weight: var(--regular);
  margin-top: 0.3rem;
  white-space: nowrap;
}

.contact-range__sep--bold {
  font-weight: var(--semi-bold);
}

.contact-range__sep--batsu {
  margin-inline: 0.6rem;
}

/* フィールド本体＋下段に「未定／不明」ラジオを縦並びで置くラッパー
-------------------------------------------*/
.contact-field {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
}
.contact-field--row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

.contact-field__option {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

/* 単位付き入力グループ
-------------------------------------------*/
.contact-input-group {
  align-items: center;
  display: inline-flex;
  gap: 0.8rem;
}

.contact-input-group__unit {
  color: var(--base-color);
  font-size: 1.4rem;
  white-space: nowrap;
}

/* 住所ブロック
-------------------------------------------*/
.contact-address {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.contact-address__row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  position: relative;
}
.contact-address__row--md {
  padding-left: 2rem;
  width: 30rem;
}
.contact-address__row--md .wpcf7-form-control-wrap {
  flex: 1;
}
.contact-address__row--md .wpcf7-form-control-wrap .contact-input {
  width: 28rem;
}

.contact-address__sep {
  color: var(--base-color);
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  left: 0;
  position: absolute;
  top: 2.4rem;
  transform: translateY(-50%);
  white-space: nowrap;
}

.contact-address__sep + .contact-input--md,
.contact-address__sep + .contact-select--md {
  flex: 1;
  width: 100%;
}

/* 同意チェック・情報保存
-------------------------------------------*/
.contact-agree {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  margin-top: 4rem;
}

.contact-agree__item {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  position: relative;
}

.contact-agree__item .contact-check__label a {
  color: var(--primary);
  text-decoration: underline;
}

/* フォーム下部 注意書き（※）
-------------------------------------------*/
.contact-notes {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 2rem;
}

.contact-notes__item {
  color: var(--base-color);
  font-size: 1.3rem;
  line-height: 1.4;
  padding-left: 1.4rem;
  text-indent: -1.4rem;
}

/* reCAPTCHA 注記
-------------------------------------------*/
.contact-recaptcha {
  font-size: 1.3rem;
  line-height: 1.46;
  margin-top: 1.2rem;
  text-align: center;
}

.contact-recaptcha a {
  color: var(--primary);
  text-decoration: underline;
}

/* アクションボタン群
-------------------------------------------*/
.contact-actions {
  align-items: center;
  display: flex;
  gap: 1rem 2.4rem;
  justify-content: center;
  margin-top: 3.2rem;
}

.contact-btn,
.contact-btn--submit input {
  align-items: center;
  border: none;
  border-radius: 0.4rem;
  box-shadow: 0px 0px 6px rgba(30, 60, 114, 0.3);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: var(--bold);
  gap: 1rem;
  height: 4.8rem;
  justify-content: space-between;
  padding-inline: 1.4rem;
  transition: opacity 0.2s;
  width: 19.6rem;
}

.contact-btn__arrow {
  background-color: #f5f5f5;
  border-radius: 50%;
  display: block;
  height: 1.6rem;
  position: relative;
  width: 1.6rem;
}

.contact-btn__arrow::after {
  aspect-ratio: 9/15;
  content: "";
  left: 50%;
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.5rem;
}

.contact-btn--primary {
  background: var(--primary);
  color: var(--white);
}

.contact-btn--primary .contact-btn__arrow {
  background: var(--white);
}

.contact-btn--primary .contact-btn__arrow::after {
  background-color: var(--primary);
}

.contact-btn--reset {
  background: var(--border);
  color: #f5f5f5;
}

.contact-btn--reset .contact-btn__arrow {
  background: #f5f5f5;
}

.contact-btn--reset .contact-btn__arrow::after {
  background-color: var(--border);
}

.contact-btn--submit {
  height: auto;
  padding: 0;
  position: relative;
  width: auto;
}

.contact-btn--submit .contact-btn__arrow {
  position: absolute;
  right: 1.4rem;
  top: 50%;
  transform: translateY(-50%);
}

.contact-btn--submit .wpcf7-spinner {
  position: absolute;
}

.contact-btn--submit input {
  color: var(--white);
  height: 4.8rem;
  text-align: left;
  width: 19.6rem;
}

/* 確認・完了画面
-------------------------------------------*/
.contact-confirm,
.contact-complete {
  margin-inline: auto;
  max-width: 82.8rem;
  padding-inline: 2rem;
}

.is-contact-confirm-hidden {
  display: none !important;
}

.wpcf7-form.is-confirming .contact-section > .lower-sec-title,
.wpcf7-form.is-complete .contact-section > .lower-sec-title {
  margin-top: 0;
}

.contact-confirm__lead,
.contact-complete__text {
  color: var(--base-color);
  font-size: 1.5rem;
  line-height: 1.8;
  text-align: center;
}

.contact-confirm__list {
  border-top: 0.1rem solid var(--border);
  display: flex;
  flex-direction: column;
  margin-top: 3.2rem;
}

.contact-confirm__item {
  border-bottom: 0.1rem solid var(--border);
  display: grid;
  gap: 2rem;
  grid-template-columns: 24rem 1fr;
  padding: 2rem 0;
}

.contact-confirm__item dt {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.6;
}

.contact-confirm__item dd {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.contact-confirm__actions,
.contact-complete__actions {
  margin-top: 4rem;
}

.contact-complete {
  text-align: center;
}

.contact-complete__title {
  color: var(--primary);
  font-size: 2.4rem;
  font-weight: var(--bold);
  line-height: 1.5;
  margin-bottom: 1.6rem;
}

/* [1] お問い合わせページ: ヘッダーのロゴ以外を非表示
   body.is-contact-page は PHP の body_class フィルターで付与
-------------------------------------------*/
.is-contact-page .nav,
.is-contact-page .header__actions,
.is-contact-page .header__sp-actions {
  display: none !important;
}

/* [8] 送信ボタン: プライバシーポリシー同意前は無効化スタイル
   .is-submit-disabled は JS で .contact-btn--submit に付与
-------------------------------------------*/
.contact-btn--submit.is-submit-disabled {
  cursor: not-allowed;
  opacity: 0.4;
  pointer-events: none;
}

/* [9] 完了画面: CF7 デフォルトの「ありがとうございます…」メッセージを非表示
-------------------------------------------*/
.wpcf7-form.is-complete .wpcf7-response-output {
  display: none !important;
}

/* 確認・完了画面: JS 挿入要素（スキップ案内・SPアコーディオントリガー）を非表示
   initService が initForm より後に実行されるため originalBlocks に含まれない要素を CSS で対処
-------------------------------------------*/
.wpcf7-form.is-confirming .contact-conditional__note--skip,
.wpcf7-form.is-confirming .contact-accordion__trigger,
.wpcf7-form.is-complete .contact-conditional__note--skip,
.wpcf7-form.is-complete .contact-accordion__trigger {
  display: none !important;
}

/* チェックボックス・ラジオ直後のエラーメッセージ
-------------------------------------------*/
.contact-check__label + .emic-confirm-error {
  position: absolute;
  top: 100%;
  white-space: nowrap;
}

/* -------------------------------------------*/
/* お問い合わせ ページタイトルバナー（コンポーネント・全お問い合わせページ共通）
-------------------------------------------*/
.contact-hero {
  background: linear-gradient(-41deg, #cee8ff 7%, #eff7ff 46%, #fff 95%);
  padding: 6rem 0 4.8rem;
}

.contact-hero__inner {
  margin-inline: auto;
  max-width: 100rem;
  padding-inline: var(--padding-pc);
}

.contact-hero__title {
  color: var(--base-color);
  font-size: 3.2rem;
  font-weight: var(--semi-bold);
  line-height: 1.448;
}

/* -------------------------------------------*/
/* お問い合わせ：お電話のお問い合わせ（4ボックス）
   全お問い合わせページ共通
-------------------------------------------*/
.contact-phone {
  margin-bottom: 6.4rem;
}

.contact-phone > .lower-sec-title {
  margin-bottom: 4rem;
  margin-top: 0;
}

.contact-phone__lead {
  font-size: 1.5rem;
  line-height: 1.4666666667;
}

.contact-phone__lead + * {
  margin-top: 3.1rem;
}

.contact-phone__lead + .contact-phone__lead {
  margin-top: 0.5rem;
}

.contact-phone__boxes {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(2, 1fr);
}

.contact-phone__box {
  align-items: center;
  background: var(--white);
  border: 0.1rem solid var(--accent);
  border-radius: 0.4rem;
  display: flex;
  gap: 1.6rem;
  padding: 1.1rem 1.3rem;
}

.contact-phone__loc {
  color: var(--primary);
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
}

.contact-phone__tel {
  color: var(--primary);
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 1.4;
  white-space: nowrap;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.cta-banner {
  margin-block: 6.4rem;
}
.cta-banner:last-child {
  margin-bottom: 0;
}
.cta-banner__inner {
  background: linear-gradient(145deg, var(--second-bg) 0%, #d0e9ff 100%);
  border-radius: 8px;
  padding-block: 4rem;
}
.cta-banner__text {
  color: var(--primary);
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  text-align: center;
}
.cta-banner__text + * {
  margin-top: 1.6rem;
}
.cta-banner__btn .btn__link {
  margin-inline: auto;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.cta-cards {
  background: var(--primary-gradient-col);
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.16);
  margin-inline: calc(50% - 50vw);
  padding-block: 7.2rem;
  position: relative;
  width: 100vw;
}
.cta-cards__grid {
  display: grid;
  gap: 2.2rem;
  grid-template-columns: repeat(2, 1fr);
}
.cta-cards__link {
  align-items: flex-start;
  background: var(--second-bg);
  border: 1px solid transparent;
  border-radius: 0.6rem;
  display: flex;
  gap: 3.6rem;
  height: 100%;
  overflow: hidden;
  padding-block: 2rem 4.7rem;
  padding-inline: 2.4rem 3rem;
  position: relative;
  transition: all 0.2s;
}
.cta-cards__link::after {
  background: var(--primary-gradient-col);
  border-radius: 0.6rem;
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
}
.cta-cards__link > * {
  position: relative;
  z-index: 2;
}
.cta-cards__content {
  flex: 1;
}
.cta-cards__title {
  align-items: center;
  display: flex;
  font-size: 2rem;
  font-weight: var(--semi-bold);
  gap: 1.1rem;
  letter-spacing: 0.02em;
  line-height: 1.45;
  padding-bottom: 1.8rem;
  position: relative;
}
.cta-cards__title::before, .cta-cards__title::after {
  content: "";
  display: block;
  transition: all 0.2s;
}
.cta-cards__title::before {
  aspect-ratio: 29/21;
  background-color: var(--accent);
  -webkit-mask: url(../images/common/ico-cta-ttl.svg) no-repeat center/contain;
  mask: url(../images/common/ico-cta-ttl.svg) no-repeat center/contain;
  width: 2.9rem;
}
.cta-cards__title::after {
  background: linear-gradient(to right, var(--primary) 0%, var(--primary) 7.2rem, var(--border) 7.2rem, var(--border) 100%);
  bottom: 0;
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}
.cta-cards__title span {
  flex: 1;
}
.cta-cards__title + * {
  margin-top: 1.6rem;
}
.cta-cards__label {
  align-items: flex-start;
  display: flex;
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  gap: 1rem;
  line-height: 1.3333333333;
}
.cta-cards__label::before {
  aspect-ratio: 1/1;
  background-color: #b4b4b4;
  content: "";
  display: block;
  margin-top: 0.8rem;
  width: 0.6rem;
}
.cta-cards__label span {
  flex: 1;
}
.cta-cards__label + * {
  margin-top: 1.2rem;
}
.cta-cards__text {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
}
.cta-cards__arrow {
  aspect-ratio: 1/1;
  background-color: var(--white);
  border-radius: 50%;
  display: block;
  margin-top: 4.7rem;
  overflow: hidden;
  position: relative;
  width: 6.6rem;
}
.cta-cards__arrow::before, .cta-cards__arrow::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.2s;
}
.cta-cards__arrow::before {
  background: var(--primary-gradient-col);
  bottom: 0;
  left: 0;
  opacity: 1;
  right: 0;
  top: 0;
}
.cta-cards__arrow::after {
  aspect-ratio: 12/21;
  background-color: var(--white);
  left: 50%;
  -webkit-mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 1.2rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.cta {
  background: var(--primary-gradient-col);
  padding-block: 6.5rem;
}

.cta__body {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(0, 0, 0, 0.16);
  padding: 6.4rem 7rem 5.8rem;
}

.cta__title {
  margin-bottom: 3.2rem;
  margin-inline: auto;
}
.cta__title .sec-title__head {
  justify-content: center;
}

.cta__contents {
  padding-top: 4.8rem;
  position: relative;
}
.cta__contents::before {
  background: linear-gradient(to right, var(--primary) 0%, var(--primary) 8rem, var(--border) 8rem, var(--border) 100%);
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.cta__grid {
  display: grid;
  gap: 2.9rem 2.4rem;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
}

.cta__item-link {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.3);
  color: var(--white);
  display: flex;
  overflow: hidden;
  position: relative;
  transition: all 0.2s;
}
.cta__item-link::after {
  background: var(--primary-gradient);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: all 0.2s;
  width: 100%;
  z-index: 0;
}
.cta__item-img {
  background: var(--gray);
  height: 14.6rem;
  margin: 0;
  overflow: hidden;
  position: relative;
  width: 19.4rem;
  z-index: 1;
}

.cta__item-img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.cta__item-content {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 1.8rem;
  justify-content: space-between;
  padding-block: 2.2rem 2rem;
  padding-inline: 1.5rem 2rem;
  position: relative;
  z-index: 1;
}

.cta__item-title {
  display: block;
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--bold);
  letter-spacing: 0.04em;
  line-height: 1.45;
  padding-bottom: 1.4rem;
  position: relative;
}
.cta__item-title::after {
  background: linear-gradient(to right, var(--accent) 0%, var(--accent) 7.3rem, var(--white) 7.3rem, var(--white) 100%);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  transition: all 0.2s;
  width: 100%;
}
.cta__item-title + * {
  margin-top: 1.4rem;
}

.cta__item-text {
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

.cta__item-arrow {
  background: var(--white);
  border-radius: 50%;
  flex-shrink: 0;
  height: 4.3rem;
  position: relative;
  width: 4.3rem;
}

.cta__item-arrow::before,
.cta__item-arrow::after {
  content: "";
  display: block;
  position: absolute;
}

.cta__item-arrow::before {
  background: var(--primary-gradient-col);
  border-radius: 50%;
  height: 100%;
  opacity: 0;
  transition: all 0.2s;
  width: 100%;
}

.cta__item-arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary-dark);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  left: 50%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.9rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.data-list {
  background-color: rgba(240, 247, 255, 0.6);
  border-radius: 0.8rem;
  padding: 3.2rem 4rem 6.4rem;
}

.data-list__dl {
  display: flex;
  flex-direction: column;
  margin-inline: auto;
  max-width: 75.9rem;
  position: relative;
  z-index: 1;
}

.data-list__item {
  align-items: flex-start;
  display: flex;
  gap: 2.8rem;
  position: relative;
}
.data-list__item::before {
  border-left: 1px dashed var(--primary);
  content: "";
  display: block;
  height: 100%;
  left: 0.8rem;
  position: absolute;
  top: 4.9rem;
  transform: translateX(-50%);
  width: 0.1rem;
}
.data-list__item:last-child .data-list__text {
  padding-bottom: 0;
}
.data-list__item:last-child::before {
  display: none;
}
.data-list__item + .data-list__item .data-list__text {
  border-top: 1px dashed var(--border);
}

.data-list__label {
  align-items: center;
  color: var(--primary);
  display: flex;
  font-family: var(--barlow-font-family);
  font-size: 2.8rem;
  font-weight: var(--normal);
  gap: 1.6rem;
  line-height: 1.2142857143;
  padding-top: 3.2rem;
  position: relative;
  text-transform: uppercase;
  width: 8.2rem;
}
.data-list__label::before {
  background-color: var(--primary);
  border: 0.45rem solid var(--second-bg);
  border-radius: 50%;
  content: "";
  display: block;
  height: 1.6rem;
  width: 1.6rem;
}

.data-list__text {
  flex: 1;
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.8;
  padding-block: 3.55rem;
  padding-left: 3.6rem;
}

/* -------------------------------------------*/
/* 資料ダウンロード_リスト
-------------------------------------------*/
.download-list {
  display: grid;
  gap: 1.8rem;
  grid-template-columns: repeat(2, 1fr);
}
.download-list + * {
  margin-top: 2.4rem;
}
.download-list + h2 {
  margin-top: 6.4rem;
}

/* 資料ダウンロード_カード
-------------------------------------------*/
.download-card {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.16);
  display: flex;
  gap: 1.8rem;
  padding: 1.4rem 1.4rem 1.6rem;
}
.download-card__image {
  aspect-ratio: 143/202;
  border: 1px solid var(--border);
  border-radius: 0.4rem;
  overflow: hidden;
  width: 14.3rem;
}
.download-card__image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}
.download-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 2rem;
}
.download-card__content .btn {
  margin-top: auto;
}
.download-card .lower-sec-title__sub {
  font-size: 1.6rem;
  line-height: 1.4;
  padding-bottom: 1.2rem;
  padding-left: 1.2rem;
}
.download-card .lower-sec-title__sub::before {
  height: 0.5rem;
  width: 0.5rem;
}
.download-card__description {
  font-size: 1.4rem;
  line-height: 1.6;
}
.download-card__description + * {
  margin-top: 1.2rem;
}
.download-card__type {
  font-size: 1.2rem;
  line-height: 1.4166666667;
}

/* -------------------------------------------*/
/* FAQ（下層ページ　開閉アコーディオンコンポーネント）
-------------------------------------------*/
.faq {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
  margin-top: 4rem;
}
.faq + .faq {
  margin-top: 3.2rem;
}
.faq + * {
  margin-top: 4rem;
}

.faq__item-q {
  align-items: flex-start;
  align-items: center;
  border-bottom: 1px solid var(--gray);
  color: var(--base-color);
  cursor: pointer;
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  gap: 4rem;
  justify-content: space-between;
  line-height: normal;
  padding: 0 0 1.6rem 4rem;
  position: relative;
  text-align: left;
  width: 100%;
}

.faq__item-q::before {
  background: url("../images/common/ico-faq-q.webp") no-repeat center/contain;
  content: "";
  height: 2.5rem;
  left: 0;
  position: absolute;
  top: 0;
  width: 2.5rem;
}

.faq__item-q::after {
  background: #006ab7;
  bottom: -1px;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}

.faq__item-icon {
  flex-shrink: 0;
  height: 1.8rem;
  position: relative;
  width: 1.8rem;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.faq__item-icon::before,
.faq__item-icon::after {
  background: var(--primary);
  content: "";
  height: 2px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.25s;
  width: 1.8rem;
}

.faq__item-icon::after {
  transform: translate(-50%, -50%) rotate(-90deg);
}

.faq__item[open] .faq__item-icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.faq__item-a-wrap {
  overflow: hidden;
}

.faq__item-a {
  padding-top: 2rem;
}

.faq__item-a .main p:not([class]), .faq__item-a .wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.6;
}

/* アコーディオン（下層ページ　開閉アコーディオンコンポーネント）
-------------------------------------------*/
.faq.faq--dots + .faq {
  margin-top: 4rem;
}
.faq.faq--dots .faq__item-q {
  font-size: 1.8rem;
  padding-left: 2rem;
}
.faq.faq--dots .faq__item-q::before {
  aspect-ratio: 1/1;
  background: var(--primary);
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  transform: translateY(0);
  width: 0.7rem;
}

/* -------------------------------------------*/
/* ========================================
  feature box
======================================== */
.feature-box {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.16);
  margin-inline: auto;
  max-width: 75.5rem;
  padding: 2.4rem 2.4rem 2.8rem;
}
.feature-box + * {
  margin-top: 2.4rem;
}

.feature-box__inner {
  align-items: center;
  display: flex;
  gap: 2rem;
}

.feature-box__icon {
  align-items: center;
  aspect-ratio: 1/1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 10rem;
}
.feature-box__icon img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.feature-box__body {
  flex: 1;
}

.feature-box__content p {
  font-size: 1.4rem !important;
  line-height: 1.6 !important;
}

/* -------------------------------------------*/
/* ========================================
  feature list
======================================== */
.feature-list {
  border: 1px solid var(--border);
  --title-width: 31.5rem;
}
.feature-list + * {
  margin-top: 3.2rem;
}
.feature-list + h2 {
  margin-top: 6.4rem;
}
.feature-list + h3 {
  margin-top: 4rem;
}

.feature-list__item {
  border-bottom: 1px solid var(--border);
  display: flex;
}
.feature-list__item:last-child {
  border: none;
}

.feature-list__title,
.feature-list__content {
  padding: 1rem 2rem;
}

.feature-list__title {
  align-items: center;
  background-color: var(--gray-bg);
  border-right: 1px solid var(--border);
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--normal);
  line-height: 1.575;
  min-width: var(--title-width);
  width: var(--title-width);
}

.feature-list__content {
  flex: 1;
}
.feature-list__content p:not([class]),
.feature-list__content .wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.8;
  margin: 0;
}

.main .feature-list__content p:not([class]),
.main .feature-list__content .wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.8;
  margin: 0;
}

/* -------------------------------------------*
  feature-list--02
* -------------------------------------------*/
.feature-list--02 {
  border: none;
  display: grid;
  gap: 1.2rem 2rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3rem;
}
.feature-list--02 .feature-list__card {
  background: var(--gray-bg);
  border-radius: 0.4rem;
  padding: 1.4rem 1.4rem 1.6rem;
}
.feature-list--02 .lower-sec-title__sub.feature-list__card-title {
  font-size: 1.5rem;
  line-height: 1.4;
  min-width: auto;
  padding-bottom: 1.1rem;
  padding-left: 1.6rem;
}
.feature-list--02 .lower-sec-title__sub.feature-list__card-title::before {
  height: 0.6rem;
  width: 0.6rem;
}
.feature-list--02 .lower-sec-title__sub.feature-list__card-title + * {
  margin-top: 1.2rem;
}
.feature-list--02 .feature-list__card-desc {
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.6;
}
.feature-list--02 .feature-list__card-desc + * {
  margin-top: 1.4rem;
}

/* -------------------------------------------*/
/* flow-step
-------------------------------------------*/
.flow-step {
  margin-inline: auto;
  max-width: 75.5rem;
}
.flow-step__list {
  display: flex;
  flex-direction: column;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.flow-step__item {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 1rem;
  box-shadow: 0px 0px 6px rgba(30, 60, 114, 0.16);
  counter-increment: flow;
  display: flex;
  padding: 2.4rem 3.2rem 3rem;
  position: relative;
}
.flow-step__item + * {
  margin-top: 4.4rem;
  position: relative;
}
.flow-step__item + *::before {
  aspect-ratio: 44/16;
  background: url(../images/common/ico-arrow-flow.svg) 50%/contain no-repeat;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: -1.4rem;
  transform: translate(-50%, -100%);
  width: 4.8rem;
}
.flow-step__header {
  align-items: center;
  border-right: 1px solid var(--border);
  color: var(--primary);
  display: flex;
  flex-direction: column;
  font-family: var(--barlow-font-family);
  font-size: 2.4rem;
  font-weight: var(--normal);
  justify-content: center;
  letter-spacing: 0.04em;
  line-height: 1.2083333333;
  padding-right: 3.2rem;
}
.flow-step__header::after {
  content: counter(flow, decimal-leading-zero);
}
.flow-step__number {
  font-size: 2rem;
  line-height: 1.2;
}
.flow-step__body {
  flex: 1;
  padding-left: 3.2rem;
}
.flow-step__title {
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.4285714286;
  padding-left: 1.6rem;
  position: relative;
}
.flow-step__title::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 0.6rem;
}
.flow-step__title + * {
  margin-top: 1.2rem !important;
}
.flow-step__content p {
  font-size: 1.4rem !important;
  line-height: 1.6 !important;
  margin-bottom: 0 !important;
}
.flow-step__content p + * {
  margin-top: 2.4rem;
}
.flow-step__content .btn__link {
  background-color: var(--white);
  color: var(--primary);
}
.flow-step__content .btn__link-arrow {
  background-color: var(--primary);
}
.flow-step__content .btn__link-arrow::after {
  background-color: var(--white);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.footer {
  color: var(--white);
  overflow: hidden;
  position: relative;
  width: 100%;
}

.footer__bg {
  inset: 0;
  position: absolute;
  z-index: 0;
}

.footer__bg::before,
.footer__bg::after {
  content: "";
  inset: 0;
  position: absolute;
}

.footer__bg::before {
  background: rgba(51, 51, 51, 0.89);
  z-index: 0;
}

.footer__bg::after {
  background: url("../images/common/footer-bg.webp") no-repeat 20% 0%/cover;
  z-index: -1;
}

.footer__inner {
  padding-block: 8rem;
  position: relative;
  z-index: 1;
}

/* ナビゲーション
-------------------------------------------*/
.footer__nav {
  display: grid;
  gap: 0rem 7rem;
  grid-template-columns: repeat(4, 1fr);
}

.footer__col {
  min-width: 0;
}

.footer__cat {
  margin-bottom: 1.4rem;
}

.footer__cat-link {
  border-bottom: 0.1rem solid #548ac2;
  display: block;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  padding-bottom: 1.3rem;
  transition: all 0.2s;
}
.footer__cat-link span:not(.footer__cat-icon) {
  flex: 1;
}

.footer__cat-icon {
  display: none;
}

.footer__cat-icon::before,
.footer__cat-icon::after {
  background: var(--accent);
  content: "";
  height: 0.1rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.2s, opacity 0.2s;
  width: 100%;
}

.footer__cat-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.footer__cat-link[aria-expanded=true] .footer__cat-icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

.footer__cat-en {
  display: block;
  font-family: var(--barlow-font-family);
  font-size: 1.1rem;
  font-weight: var(--regular);
  letter-spacing: 0.1em;
  margin-top: 0.3rem;
  opacity: 0.6;
}

.footer__links {
  display: grid;
  gap: 0.8rem;
  list-style: none;
  padding-left: 1.6rem;
}

.footer__links.is-open {
  max-height: 60rem;
}

.footer__link {
  align-items: flex-start;
  color: var(--white);
  display: flex;
  font-size: 1.4rem;
  font-weight: var(--regular);
  gap: 0.6rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  transition: all 0.2s;
}

.footer__link::before {
  background: var(--white);
  content: "";
  display: block;
  flex-shrink: 0;
  height: 0.1rem;
  margin-top: 1.1rem;
  transition: all 0.2s;
  width: 0.8rem;
}

.footer__col--split {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}

/* シングルリンク行（3カラム）
-------------------------------------------*/
.footer__single-links {
  display: grid;
  gap: 0 7rem;
  grid-template-columns: repeat(4, 1fr);
}

.footer__single-col {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.footer__single-link {
  border-bottom: 0.1rem solid #548ac2;
  color: var(--white);
  display: block;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  margin-bottom: 1.5rem;
  padding-bottom: 1.3rem;
  transition: color 0.2s;
}

.footer__single-link:last-child {
  margin-bottom: 0;
}

/* 採用情報ボタン（フッターボトムバー内）
-------------------------------------------*/
.footer__recruit-bottom {
  align-items: center;
  background-color: var(--primary);
  border: 1px solid var(--primary);
  border-radius: 0.4rem;
  color: var(--white);
  display: inline-flex;
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  gap: 0.8rem;
  justify-content: space-between;
  line-height: 1.6;
  padding: 1.1rem 1.2rem;
  transition: all 0.2s;
  white-space: nowrap;
  width: 18.8034188034%;
}

.footer__recruit-bottom svg {
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
}

/* フッターボトム
-------------------------------------------*/
.footer__bottom {
  padding-inline: 4rem;
  position: relative;
  z-index: 1;
}

.footer__bottom-inner.u-inner {
  align-items: center;
  border-top: 1px solid rgba(193, 193, 193, 0.4);
  display: flex;
  gap: min(2vw, 3rem);
  max-width: 124rem;
  padding-block: 3.3rem 3.9rem;
  padding-left: 0;
  padding-right: 0;
}

.footer__logo img {
  display: block;
  height: auto;
  width: 8.9rem;
}

.footer__bottom-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 4rem;
  margin-left: 2rem;
}

.footer__bottom-list {
  align-items: start;
  display: flex;
}

.footer__bottom-list-item {
  white-space: nowrap;
}
.footer__bottom-list-item + .footer__bottom-list-item::before {
  color: var(--white);
  content: "／";
  font-size: 1.4rem;
  letter-spacing: 0.04em;
}

.footer__bottom-link {
  color: var(--white);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}

.footer__sitemap {
  color: var(--white);
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}

.footer__copy {
  color: #b4b4b4;
  font-family: var(--barlow-font-family);
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  margin-left: auto;
  margin-right: 1rem;
  white-space: nowrap;
}

/* お問い合わせページ用の最小フッター（コピーライトのみ）
-------------------------------------------*/
.footer--contact .footer__bottom {
  background: var(--base-color);
}

.footer--contact .footer__bottom-inner.u-inner {
  border-top: none;
  justify-content: center;
  padding-block: 2.2rem;
}

.footer--contact .footer__copy {
  margin-left: 0;
  margin-right: 0;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* 通常header
-------------------------------------------*/
.header {
  height: var(--header-height);
  inset: 0 0 auto 0;
  padding-inline: 4rem;
  position: fixed;
  transition: all 0.2s;
  width: 100%;
  z-index: 100;
}

.header__inner {
  align-items: center;
  display: flex;
  gap: 4rem;
  height: 100%;
  margin-inline: auto;
  max-width: 94.1176470588%;
}

.header__logo {
  flex-shrink: 0;
}

.header__brand {
  display: block;
  line-height: 1;
  position: relative;
}

.header__brand img {
  display: block;
  height: auto;
  transition: all 0.2s;
  width: 8.3rem;
}

.header__brand img.white {
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  visibility: hidden;
}

/* PC アクション
-------------------------------------------*/
.header__actions {
  display: none;
}

.header__search-btn {
  align-items: center;
  color: var(--base-color);
  cursor: pointer;
  display: flex;
  height: 4rem;
  justify-content: center;
  width: 4rem;
}

.header__search-icon {
  display: block;
  flex-shrink: 0;
  height: 2rem;
  transition: all 0.2s;
  width: 2rem;
}

.header__lang {
  align-items: center;
  display: flex;
  font-family: var(--barlow-font-family);
  gap: 1.4rem;
  line-height: 1;
  margin-left: 5.3rem;
}

.header__lang-sep {
  color: var(--base-color);
  font-size: 1.6rem;
  margin-top: 0.2rem;
}

.header__lang-link {
  display: block;
  font-size: 1.6rem;
  font-weight: var(--regular);
  margin-top: 0.15rem;
  transition: all 0.2s;
}

.header__lang-link.is-active {
  font-size: 1.9rem;
  font-weight: var(--normal);
  margin-top: 0;
  opacity: 1;
}

.header__cta {
  align-items: center;
  background: var(--white);
  border-radius: 0.4rem;
  color: var(--white);
  display: flex;
  flex-shrink: 0;
  font-size: 1.4rem;
  font-weight: var(--bold);
  gap: 0.6rem;
  height: 5.6rem;
  justify-content: center;
  overflow: hidden;
  position: relative;
  transition: all 0.2s;
  width: 15.4rem;
}
.header__cta::before, .header__cta::after {
  content: "";
  display: block;
  transition: all 0.2s;
}
.header__cta::before {
  aspect-ratio: 30/24;
  background-color: var(--white);
  -webkit-mask: url(../images/common/ico-mail.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-mail.svg) 50%/contain no-repeat;
  width: 2rem;
  z-index: 1;
}
.header__cta::after {
  background: var(--primary-gradient);
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.header__cta span {
  position: relative;
  z-index: 1;
}

/* SP アクション
-------------------------------------------*/
.header__sp-actions {
  align-items: center;
  display: flex;
}

.header__search-btn--sp {
  color: var(--base-color);
  height: 3.6rem;
  width: 3.6rem;
}

.header__mail {
  align-items: center;
  background: var(--primary-gradient);
  color: var(--white);
  display: flex;
  flex-shrink: 0;
  height: 7rem;
  justify-content: center;
  width: 7rem;
}

.header__mail-icon {
  display: block;
  height: 1.6rem;
  width: 2rem;
}

/* ハンバーガーボタン
-------------------------------------------*/
.header__hamburger {
  align-items: center;
  background-color: var(--second-bg);
  cursor: pointer;
  display: flex;
  height: 7rem;
  justify-content: center;
  width: 7rem;
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
}

.header__hamburger-bar {
  background: var(--primary);
  display: block;
  height: 0.2rem;
  position: relative;
  transition: background 0.2s;
  width: 2.7rem;
}

.header__hamburger-bar::before,
.header__hamburger-bar::after {
  background: var(--primary);
  content: "";
  height: 0.2rem;
  left: 0;
  position: absolute;
  transform-origin: center;
  transition: transform 0.25s ease, top 0.25s ease, opacity 0.25s ease;
  width: 2.7rem;
}

.header__hamburger-bar::before {
  top: -0.7rem;
}

.header__hamburger-bar::after {
  top: 0.7rem;
}

/* header scroll時
-------------------------------------------*/
.header.scrolled {
  background: var(--white);
  box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
}
.header.scrolled .header__brand img.normal {
  opacity: 1;
  visibility: visible;
}
.header.scrolled .header__brand img.white {
  opacity: 0;
  visibility: hidden;
}
.header.scrolled .header__search-btn {
  color: var(--accent);
}
.header.scrolled .nav__link, .header.scrolled .header__lang-link, .header.scrolled .header__lang-sep {
  color: var(--base-color);
}
.header.scrolled .nav__item--external .nav__link::after {
  background-color: var(--accent);
}

/* 開閉状態
-------------------------------------------*/
.is-drawer-open .header,
.is-contact-open .header {
  box-shadow: none;
}

.is-drawer-open .header__brand img.normal,
.is-contact-open .header__brand img.normal {
  opacity: 1;
  visibility: visible;
}

.is-drawer-open .header__brand img.white,
.is-contact-open .header__brand img.white {
  opacity: 0;
  visibility: hidden;
}

.is-drawer-open .header__search-btn,
.is-contact-open .header__search-btn {
  color: var(--accent);
}

body.home.is-contact-open .header__brand img.normal {
  opacity: 1;
  visibility: visible;
}

body.home.is-contact-open .header__brand img.white {
  opacity: 0;
  visibility: hidden;
}

body.home.is-contact-open .header__search-btn {
  color: var(--accent);
}

.is-drawer-open .header__hamburger-bar {
  background: transparent;
}

.is-drawer-open .header__hamburger-bar::before {
  top: 0;
  transform: rotate(45deg);
}

.is-drawer-open .header__hamburger-bar::after {
  top: 0;
  transform: rotate(-45deg);
}

/* -------------------------------------------*/
/* 業界別導入企業一覧
-------------------------------------------*/
.industries-wrap + * {
  margin-top: 3rem;
}

.industries__inner {
  display: grid;
  gap: 4rem 2rem;
}
.industries__inner--col1 {
  grid-template-columns: repeat(1, 1fr);
}
.industries__inner--col2 {
  grid-template-columns: repeat(2, 1fr);
}
.industries__inner--col3 {
  grid-template-columns: repeat(3, 1fr);
}
.industries__inner--col4 {
  grid-template-columns: repeat(4, 1fr);
}
.industries__inner--col5 {
  grid-template-columns: repeat(5, 1fr);
}

.industries__header {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 0.8rem;
  padding-bottom: 0.8rem;
}
.industries__header + * {
  margin-top: 0.8rem;
}

.industries__icon {
  aspect-ratio: 1/1;
  background-color: var(--primary-gradient-col);
  border-radius: 0.2rem;
  width: 2.4rem;
}
.industries__icon img {
  display: block;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
}

.industries__title {
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
}

.industries__companies + * {
  margin-top: 1.2rem;
}

.industries__item {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.4285714286;
  padding-left: 1.2rem;
  position: relative;
}
.industries__item::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.9rem;
  width: 0.4rem;
}
.industries__item + * {
  margin-top: 1.6rem;
}

.industries__link {
  text-decoration: underline;
  transition: all 0.2s;
}

.industries__comment {
  align-items: flex-start;
  display: flex;
  padding-left: 1.2rem;
}
.industries__comment::before {
  content: "…";
  font-size: 1.2rem;
  line-height: 1.5;
}

.industries__comment-text {
  font-size: 1.2rem;
  font-weight: var(--normal);
  line-height: 1.5;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.info-list + * {
  margin-top: 2.4rem;
}

.info-list__inner {
  align-items: flex-start;
  display: flex;
  gap: 1.2rem;
}
.info-list__inner + * {
  margin-top: 0.4rem;
}

.info-list__label,
.info-list__value {
  font-size: 1.4rem;
  line-height: 1.4285714286;
}

.info-list__label {
  font-weight: var(--semi-bold);
  padding-left: 1.6rem;
  position: relative;
}
.info-list__label::before {
  aspect-ratio: 1/1;
  background-color: var(--gray-square);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 0.6rem;
}

.info-list__value {
  flex: 1;
  font-weight: var(--regular);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.inner {
  margin: 0 auto;
  max-width: var(--content-width);
  padding-inline: var(--padding-pc);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.local-list__ul {
  display: grid;
  gap: 6.8rem 4.2rem;
  grid-template-columns: repeat(2, 1fr);
  position: relative;
  z-index: 1;
}

.local-list__item {
  display: flex;
  flex-direction: column;
  position: relative;
}

.local-list__title {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  gap: 1.2rem;
  line-height: 1.4666666667;
  padding-bottom: 1.7rem;
}
.local-list__title::before {
  background-color: var(--gray-square);
  content: "";
  display: block;
  height: 0.6rem;
  width: 0.6rem;
}

.local-list__body {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
  margin-top: 1.7rem;
}
.local-list__body a,
.local-list__body span {
  align-items: center;
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--regular);
  gap: 1.2rem;
  line-height: 1.1875;
  text-decoration: underline;
  text-decoration-color: var(--gray-square);
  text-decoration-thickness: 0.1rem;
  text-underline-offset: 0.3rem;
  transition: all 0.2s;
}
.local-list__body a::before,
.local-list__body span::before {
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  height: 0.4rem;
  width: 0.4rem;
}
.local-list__body span {
  text-decoration: none;
}

/* -------------------------------------------*/
/* セクションタイトル（ブルー帯付きセクションタイトル：H2）
-------------------------------------------*/
.lower-sec-title {
  background: linear-gradient(144deg, #f0f7ff 10.88%, #d0e9ff 99%);
  border-left: 0.4rem solid var(--primary);
  color: var(--primary);
  font-size: 2.2rem;
  font-weight: var(--semi-bold);
  line-height: 1.4545454545;
  margin: 6.4rem 0 4rem;
  padding: 0.5rem 2rem 0.7rem;
}
.lower-sec-title:first-child {
  margin-top: 0;
}
.lower-sec-title--link a {
  text-decoration: underline;
  transition: all 0.2s;
}
.lower-sec-title span:not(.main-text) {
  color: #333333;
  display: inline-block;
  font-size: 1.2rem;
  font-weight: 400;
  margin-left: 1.8rem;
  margin-top: 0.4em;
}

/* ■＆下線付き下層セクションh3見出し
-------------------------------------------*/
.lower-sec-title__sub {
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  margin-top: 4rem;
  padding-bottom: 1.3rem;
  padding-left: 2rem;
  position: relative;
}
.lower-sec-title__sub:first-child {
  margin-top: 0;
}
.lower-sec-title__sub::before {
  aspect-ratio: 1/1;
  background: var(--primary);
  content: "";
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.7rem;
}
.lower-sec-title__sub::after {
  background: var(--primary);
  bottom: -1px;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}
.lower-sec-title__sub--link a {
  text-decoration: underline;
  transition: all 0.2s;
}
.lower-sec-title__sub + * {
  margin-top: 2rem;
}
.lower-sec-title__sub + p {
  margin-top: 1.6rem;
}
.lower-sec-title__sub + figure {
  margin-top: 3.2rem;
}
.lower-sec-title__sub + figure.is-style-dl-list {
  margin-top: 2rem;
}

/* ■＆下線付き下層セクションタイトルグループ：h3+p
-------------------------------------------*/
.lower-sec-title__group + * {
  margin-top: 2.4rem;
}
.lower-sec-title__group + *.card-wrap, .lower-sec-title__group + *.post-wrap {
  margin-top: 3.2rem;
}

.lower-sec-title__group-text {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
  margin-top: 1.6rem;
}

/* ■付き下層セクションh4見出し
-------------------------------------------*/
.lower-sec-title__small {
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  padding-left: 1.8rem;
  position: relative;
}
.lower-sec-title__small::before {
  aspect-ratio: 1/1;
  background-color: var(--gray-square);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.8rem;
  width: 0.6rem;
}
.lower-sec-title__small + * {
  margin-top: 1.6rem !important;
}

/* -------------------------------------------*/
/* Googleマップ
-------------------------------------------*/
.gmap {
  aspect-ratio: 340/200;
}
.gmap--large {
  aspect-ratio: 353/264;
}
.gmap--medium {
  aspect-ratio: 356/236;
}
.gmap iframe {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}
.gmap + * {
  margin-top: 6.4rem;
}
.gmap + *.local-list {
  margin-top: 4rem;
}

/* -------------------------------------------*/
/* ========================================
  message box
======================================== */
.message-box + * {
  margin-top: 12rem;
}
.message-box .page-lead__text + * {
  margin-top: 3rem;
}

.message-box__body {
  align-items: flex-start;
  display: flex;
  gap: 4rem;
}

.message-box__content {
  flex: 1;
}

.message-box__signature {
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 2;
  text-align: right;
}

.message-box__image {
  border-radius: 0.4rem;
  overflow: hidden;
  width: 26.7rem;
}
.message-box__image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* PC グローバルナビゲーション
-------------------------------------------*/
.nav {
  display: none;
}

.nav__list {
  align-items: center;
  display: flex;
  gap: 1.8rem;
  list-style: none;
}

.nav__item--has-mega[aria-expanded=true] .nav__link {
  color: var(--accent);
}
.nav__item--has-mega[aria-expanded=true] .nav__link .nav__arrow {
  background-color: var(--accent);
}
.nav__item--external .nav__link {
  gap: 1rem;
}
.nav__item--external .nav__link::after {
  aspect-ratio: 1/1;
  background-color: var(--accent);
  content: "";
  display: block;
  -webkit-mask: url(../images/common/ico-blank.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-blank.svg) 50%/contain no-repeat;
  transition: all 0.2s;
  width: 1rem;
}

.nav__link {
  align-items: center;
  color: var(--base-color);
  display: flex;
  font-family: var(--en-font-family);
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  gap: 0.9rem;
  padding: 3.5rem 0.5rem;
  transition: color 0.2s;
  white-space: nowrap;
}

/* ドロップダウン矢印
-------------------------------------------*/
.nav__arrow {
  background-color: var(--accent);
  display: block;
  height: 0.6rem;
  width: 1rem;
  -webkit-mask: url("../images/common/ico-arrow-down.svg") no-repeat center/contain;
  flex-shrink: 0;
  mask: url("../images/common/ico-arrow-down.svg") no-repeat center/contain;
  transition: transform 0.2s;
}

.nav__item--has-mega:hover .nav__arrow {
  background-color: var(--primary);
}

/* 子メニュー
-------------------------------------------*/
.nav__mega {
  background-color: var(--white);
  border-radius: 0.6rem;
  bottom: -1.2rem;
  left: 50%;
  max-width: 78.4rem;
  opacity: 0;
  padding: 3.4rem 4.8rem;
  position: absolute;
  transform: translate(-50%, 100%);
  transition: all 0.2s;
  visibility: hidden;
  width: 80%;
}
.nav__mega.show {
  opacity: 1;
  visibility: visible;
}

.nav__mega-head {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 4.4rem;
  margin-bottom: 2.6rem;
  padding-bottom: 1.8rem;
}

.nav__mega-title {
  align-items: center;
  display: flex;
  gap: 2.7rem;
}

.nav__mega-title-en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.nav__mega-title-en::before {
  aspect-ratio: 16/11;
  background: url(../images/common/ico-mega-title.svg) 50%/contain no-repeat;
  content: "";
  display: inline-block;
  margin-right: 0.2rem;
  width: 1.6rem;
}

.nav__mega-title-ja {
  font-size: 2rem;
  font-weight: var(--bold);
}

.nav__mega-top-link {
  align-items: center;
  display: flex;
  font-size: 1.3rem;
  font-weight: var(--semi-bold);
  gap: 1rem;
  transition: all 0.2s;
}

.nav__mega-top-link-arrow {
  aspect-ratio: 1/1;
  background-color: var(--white);
  border: 1px solid var(--primary);
  border-radius: 50%;
  position: relative;
  transition: all 0.2s;
  width: 3.1rem;
}
.nav__mega-top-link-arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary);
  content: "";
  display: block;
  left: 50%;
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  width: 0.7rem;
}

.nav__mega-nav {
  display: grid;
  gap: 1.4rem 4.4rem;
  grid-template-columns: repeat(3, 1fr);
}

.nav__mega-item.is-current .nav__mega-link {
  font-weight: var(--semi-bold);
}
.nav__mega-item.is-current .nav__mega-link::before {
  background-color: var(--primary);
}

.nav__mega-link {
  align-items: flex-start;
  display: flex;
  font-size: 1.4rem;
  gap: 0.8rem;
  letter-spacing: 0.04em;
  line-height: 1.4285714286;
  padding-block: 0.2rem;
  transition: all 0.2s;
}

.nav__mega-link::before {
  aspect-ratio: 1/1;
  background-color: var(--border);
  content: "";
  display: block;
  margin-top: 0.8rem;
  transition: all 0.2s;
  width: 0.5rem;
}

.nav__mega-link span {
  flex: 1;
}

/* 外部リンクアイコン
-------------------------------------------*/
.nav__external-icon {
  flex-shrink: 0;
  height: 0.9rem;
  width: 0.9rem;
}

/* SP ドロワーナビゲーション
-------------------------------------------*/
.nav-drawer {
  bottom: 0;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 0;
  top: 0;
  transition: all 0.8s;
  visibility: hidden;
  z-index: 90;
}

.nav-drawer.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.nav-drawer__inner {
  background: var(--white);
  display: flex;
  flex-direction: column;
  inset: 0;
  opacity: 0;
  overflow-y: auto;
  padding-top: var(--header-height);
  position: absolute;
  transform: translateY(-0.8rem);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.nav-drawer.is-open .nav-drawer__inner {
  opacity: 1;
  transform: translateY(0);
}

/* ヘッダー行
-------------------------------------------*/
.nav-drawer__head {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-shrink: 0;
  justify-content: flex-end;
  margin-inline: 1.5rem;
  padding: 2rem 0;
}

.nav-drawer__lang {
  align-items: center;
  display: flex;
  gap: 0.8rem;
}

.nav-drawer__lang-label {
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: var(--regular);
  margin-right: 0.4rem;
}

.nav-drawer__lang-btn {
  border: 0.1rem solid var(--accent);
  border-radius: 0.2rem;
  color: var(--accent);
  cursor: pointer;
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 1.5625;
  padding: 0 1.5rem;
  transition: background 0.2s, color 0.2s;
}

.nav-drawer__lang-btn.is-active {
  background: var(--accent);
  color: var(--white);
}

/* ボディ
-------------------------------------------*/
.nav-drawer__body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}

/* ナビゲーション
-------------------------------------------*/
.nav-drawer__nav {
  flex: 1;
  overflow-y: auto;
  padding: 0 1.5rem 2.4rem;
}

.nav-drawer__list {
  list-style: none;
}

.nav-drawer__item {
  border-bottom: 1px solid var(--border);
}

/* アコーディオン項目
-------------------------------------------*/
.nav-drawer__label {
  align-items: center;
  color: var(--base-color);
  cursor: pointer;
  display: flex;
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  gap: 0.8rem;
  line-height: 1.4444444444;
  padding: 2rem 0;
  text-align: left;
  width: 100%;
}

.nav-drawer__label-inner {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.nav-drawer__label-en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: var(--regular);
  letter-spacing: 0.04em;
  line-height: 1.1875;
  text-transform: uppercase;
}

.nav-drawer__icon {
  flex-shrink: 0;
  height: 2rem;
  margin-left: auto;
  position: relative;
  width: 2rem;
}

.nav-drawer__icon::before,
.nav-drawer__icon::after {
  background: var(--accent);
  content: "";
  height: 0.1rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.2s, opacity 0.2s;
  width: 100%;
}

.nav-drawer__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.nav-drawer__label[aria-expanded=true] .nav-drawer__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

.nav-drawer__children {
  list-style: none;
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.35s;
}
.nav-drawer__children li:last-child {
  padding-bottom: 1.9rem;
}
.nav-drawer__children li + * {
  margin-top: 0.4rem;
}

.nav-drawer__children.is-open {
  max-height: 60rem;
}

.nav-drawer__child-link {
  align-items: flex-start;
  color: #525252;
  display: flex;
  font-size: 1.4rem;
  font-weight: var(--regular);
  gap: 0.8rem;
  line-height: 1.4285714286;
  padding: 0 2rem;
  padding-block: 0.5rem;
  transition: all 0.2s;
}

.nav-drawer__child-link::before {
  background: #525252;
  content: "";
  display: block;
  flex-shrink: 0;
  height: 0.1rem;
  margin-top: 1rem;
  opacity: 0.5;
  transition: all 0.2s;
  width: 0.8rem;
}

/* 通常リンク項目
-------------------------------------------*/
.nav-drawer__link {
  align-items: flex-start;
  color: var(--base-color);
  display: flex;
  flex-direction: column;
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  gap: 0.4rem;
  line-height: 1.4444444444;
  padding: 2rem 0;
}

/* 採用情報ボタン
-------------------------------------------*/
.nav-drawer__recruit {
  align-items: center;
  background: var(--primary);
  border-radius: 0.4rem;
  color: var(--white);
  display: flex;
  font-size: 1.4rem;
  font-weight: var(--bold);
  justify-content: space-between;
  margin-inline: auto;
  margin-top: 3rem;
  max-width: 25rem;
  padding: 1.4rem 1.4rem;
}

.nav-drawer__recruit::after {
  aspect-ratio: 1/1;
  background: url(../images/common/ico-blank.svg) 50%/contain no-repeat;
  content: "";
  display: block;
  flex-shrink: 0;
  width: 1rem;
}

/* is-contact-mode
-------------------------------------------*/
.nav-drawer.is-contact-mode .nav-drawer__head,
.nav-drawer.is-contact-mode .nav-drawer__nav {
  display: none;
}

/* SPお問い合わせパネル
-------------------------------------------*/
.nav-drawer__contact {
  display: none;
  flex: 1;
  overflow-y: auto;
  padding: 1.6rem 3.5rem 3.2rem;
}

.nav-drawer.is-contact-mode .nav-drawer__contact {
  display: block;
}

.nav-drawer__contact-wrap .nav-drawer__label {
  padding-top: 0;
}
.nav-drawer__contact-wrap li + * {
  margin-top: 0;
}
.nav-drawer__contact-wrap .nav-drawer__contact-item {
  padding-bottom: 0 !important;
}

.nav-drawer__contact-list {
  display: grid;
  gap: 1.2rem;
  list-style: none;
}

.nav-drawer__contact-link {
  align-items: center;
  background: var(---white);
  border-radius: 0.4rem;
  color: var(--white);
  display: flex;
  gap: 1.2rem;
  overflow: hidden;
  padding: 1.6rem;
  position: relative;
  transition: all 0.2s;
}
.nav-drawer__contact-link::after {
  background: var(--primary-gradient-col);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: all 0.2s;
  width: 100%;
  z-index: 0;
}
.nav-drawer__contact-link > * {
  position: relative;
  z-index: 1;
}

.nav-drawer__contact-img {
  border-radius: 0.2rem;
  flex-shrink: 0;
  height: 7rem;
  overflow: hidden;
  width: 9.5rem;
}

.nav-drawer__contact-img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.nav-drawer__contact-text {
  flex: 1;
  font-size: 1.3rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
}

.nav-drawer__contact-arrow {
  background: var(--white);
  border-radius: 50%;
  flex-shrink: 0;
  height: 2.5rem;
  position: relative;
  width: 2.5rem;
}

.nav-drawer__contact-arrow::before,
.nav-drawer__contact-arrow::after {
  content: "";
  display: block;
  position: absolute;
}

.nav-drawer__contact-arrow::before {
  background: var(--primary-gradient-col);
  border-radius: 50%;
  height: 100%;
  opacity: 0;
  transition: all 0.2s;
  width: 100%;
}

.nav-drawer__contact-arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary-dark);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  left: 50%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.9rem;
}

/* is-search-mode
-------------------------------------------*/
.nav-drawer.is-search-mode .nav-drawer__head,
.nav-drawer.is-search-mode .nav-drawer__nav,
.nav-drawer.is-search-mode .nav-drawer__contact {
  display: none;
}

/* 検索ボタン_PC
-------------------------------------------*/

/* 検索パネル_PC
-------------------------------------------*/
.header__search-panel {
  bottom: 0;
  height: 100vh;
  left: 0;
  opacity: 0;
  position: fixed;
  right: 0;
  top: 0;
  transition: opacity 0.3s, visibility 0.3s;
  visibility: hidden;
  z-index: 999;
}
.header__search-panel.is-open {
  opacity: 1;
  visibility: visible;
}
.header__search-overlay {
  background: rgba(0, 0, 0, 0.5);
  inset: 0;
  position: absolute;
}
.header__search-content {
  background-color: var(--white);
  border-radius: 0.6rem;
  left: 50%;
  max-width: 78.4rem;
  padding: 3.4rem 4.8rem 4.2rem;
  position: absolute;
  top: 12.2rem;
  transform: translateX(-50%);
  transition: all 0.2s;
  width: 80%;
}
.header__search-head {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 4.4rem;
  justify-content: space-between;
  margin-bottom: 2.6rem;
  padding-bottom: 1.8rem;
}
.header__search-head-title {
  align-items: center;
  display: flex;
  gap: 2.7rem;
}
.header__search-head-title-en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.header__search-head-title-en::before {
  aspect-ratio: 16/11;
  background: url(../images/common/ico-mega-title.svg) 50%/contain no-repeat;
  content: "";
  display: inline-block;
  margin-right: 0.2rem;
  width: 1.6rem;
}
.header__search-head-title-ja {
  font-size: 2rem;
  font-weight: var(--semi-bold);
}
.header__search-close {
  background: none;
  border: none;
  cursor: pointer;
  height: 2.1rem;
  padding: 0;
  width: 2.1rem;
}
.header__search-close img {
  display: block;
}
.header__search-body {
  padding-inline: 2rem;
}

/* 検索パネル_SP
-------------------------------------------*/
.nav-drawer__search {
  display: none;
  flex: 1;
  overflow-y: auto;
  padding: 4rem 3.5rem 3.2rem;
}
.nav-drawer__search-head {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 4.4rem;
  margin-bottom: 2.6rem;
  padding-bottom: 1.8rem;
}
.nav-drawer__search-title {
  align-items: center;
  display: flex;
  gap: 0.4rem 2.7rem;
}
.nav-drawer__search-title-en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.nav-drawer__search-title-en::before {
  aspect-ratio: 16/11;
  background: url(../images/common/ico-mega-title.svg) 50%/contain no-repeat;
  content: "";
  display: inline-block;
  margin-right: 0.2rem;
  width: 1.6rem;
}
.nav-drawer__search-title-ja {
  font-size: 2rem;
  font-weight: var(--bold);
}

.nav-drawer.is-search-mode .nav-drawer__search {
  display: block;
}

/* -------------------------------------------*/
/* サイトマップリスト
-------------------------------------------*/
.nested-list {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.6rem;
  gap: 2rem 2.2rem;
  line-height: 1.4;
}
.nested-list__item {
  padding-left: 1.2rem;
  position: relative;
  width: calc(33.3333333333% - 1.4666666667rem);
}
.nested-list__item.has-child {
  width: 100%;
}
.nested-list__item::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.4rem;
}
.nested-list__item a {
  text-decoration: underline;
  transition: all 0.2s;
}
.nested-list__child {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.7rem;
  margin-top: 0.8rem;
  padding-right: 1.1rem;
}
.nested-list__child li {
  font-size: 1.4rem;
  line-height: 1.6;
  padding-left: 1.2rem;
  position: relative;
  width: calc(33.3333333333% - 1.1333333333rem);
}
.nested-list__child li::before {
  aspect-ratio: 1/1;
  background-color: var(--gray-square);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.4rem;
}

/* -------------------------------------------*/
/* 注釈
-------------------------------------------*/
.note-list--symbol .note-list__item::before {
  content: "※";
}
.note-list--number .note-list__item {
  counter-increment: number;
}
.note-list--number .note-list__item::before {
  content: "(注" counter(number) ")";
}
.note-list__item {
  align-items: flex-start;
  display: flex;
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.4;
  margin-bottom: 0.4rem;
}
.note-list__item:last-child {
  margin-bottom: 0;
}
.note-list__item span {
  flex: 1;
}
.note-list + * {
  margin-top: 2.4rem;
}
.note-list + *.note-list {
  margin-top: 1.6rem;
}
.note-list + h2 {
  margin-top: 6.4rem;
}
.note-list + h3 {
  margin-top: 4rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.number-list {
  border-top: 1px solid var(--border);
  counter-reset: item;
  display: flex;
  flex-direction: column;
}
.number-list + * {
  margin-top: 4rem;
}

.number-list__item {
  border-bottom: 1px solid var(--border);
  padding: 2.4rem 0;
  padding-left: 5.3rem;
  position: relative;
}
.number-list__item::before {
  color: var(--primary);
  content: "0" counter(item);
  counter-increment: item;
  font-family: var(--barlow-font-family);
  font-size: 1.8rem;
  font-weight: var(--normal);
  left: 0;
  line-height: 1.2222222222;
  position: absolute;
  top: 2.4rem;
}

.number-list__text {
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.4666666667;
}

/* -------------------------------------------*/
/* アンカー
-------------------------------------------*/
.page-anchor-links__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.8rem 1.4rem;
}
.page-anchor-links__list--col2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.page-anchor-links__list--col3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.page-anchor-links__list--col4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.page-anchor-links__list--col5 {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.page-anchor-links__list--col6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
.page-anchor-links__list--col2 > .page-anchor-links__item.btn, .page-anchor-links__list--col3 > .page-anchor-links__item.btn, .page-anchor-links__list--col4 > .page-anchor-links__item.btn, .page-anchor-links__list--col5 > .page-anchor-links__item.btn, .page-anchor-links__list--col6 > .page-anchor-links__item.btn {
  min-width: auto;
  width: 100%;
}
.page-anchor-links__list--col2 .page-anchor-links__link.btn__link, .page-anchor-links__list--col3 .page-anchor-links__link.btn__link, .page-anchor-links__list--col4 .page-anchor-links__link.btn__link, .page-anchor-links__list--col5 .page-anchor-links__link.btn__link, .page-anchor-links__list--col6 .page-anchor-links__link.btn__link {
  width: 100%;
}

.page-anchor-links__item.btn {
  margin-top: 0 !important;
  min-width: 19.2rem;
  width: -moz-fit-content;
  width: fit-content;
}
.page-anchor-links__item.btn + * {
  margin-top: 0;
}

.page-anchor-links__link.btn__link {
  border: none;
  color: var(--base-color);
  overflow: hidden;
  padding: 1.4rem 1.2rem;
  position: relative;
}
.page-anchor-links__link.btn__link::after {
  background: var(--primary-gradient-col);
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
  z-index: -1;
}
.page-anchor-links__link.btn__link .btn__link-arrow {
  transform: rotate(90deg);
}
.page-anchor-links__link.btn__link .btn__link-arrow::after {
  left: 53.5%;
}

/* -------------------------------------------*/
/* パンくずリスト
-------------------------------------------*/
.page-bread {
  margin-inline: -5rem;
  padding-block: 1.2rem 5rem;
  width: calc(100% + 10rem);
}
.page-bread:first-child {
  margin-top: var(--header-height);
  padding-bottom: 0;
  padding-top: 4.8rem;
}
.page-bread:first-child .page-bread__list {
  justify-content: flex-start;
}
.page-bread + .page-hero {
  padding-top: 4.8rem;
}
.page-bread + .page-hero--single-page .page-hero__inner {
  padding-top: 0;
}
.page-bread + .card-wrap {
  margin-top: 0;
}

.page-bread__nav {
  overflow-x: scroll;
  -ms-overflow-style: none;
  margin-inline: auto;
  max-width: 100rem;
  scrollbar-width: none;
}
.page-bread__nav::-webkit-scrollbar {
  display: none;
}

.page-bread__list {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  justify-content: flex-start;
}

.page-bread__item {
  align-items: center;
  display: flex;
  font-size: 1.2rem;
  gap: 1.2rem;
}

.page-bread__item::after {
  color: var(--primary);
  content: "/";
}

.page-bread__item:last-child::after {
  display: none;
}

.page-bread__link {
  transition: all 0.2s;
}

/* -------------------------------------------*/
/* ページヒーロー：A　（第一下層）
-------------------------------------------*/
.page-hero {
  margin-inline: -5rem;
  padding-top: var(--header-height);
  width: calc(100% + 10rem);
}
.page-hero + .main__bg {
  margin-top: 5rem;
}

.page-hero::after {
  background: linear-gradient(to right, var(--primary) 7%, var(--gray) 7%);
  content: "";
  display: block;
  height: 0.2rem;
  margin-inline: auto;
  padding-inline: var(--padding-pc);
}

.page-hero__inner {
  margin-inline: auto;
  max-width: var(--content-width--m);
  padding-block: 3rem 4.8rem;
}

.page-hero__en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 7rem;
  font-weight: var(--normal);
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.page-hero__ja {
  color: var(--base-color);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  line-height: 1.5;
  padding-left: 3.2rem;
  position: relative;
}
.page-hero__ja::after {
  background: url(../images/common/ico-page-ttl.svg) no-repeat center/contain;
  content: "";
  height: 1.7rem;
  left: 0;
  position: absolute;
  top: 0.6rem;
  width: 2.3rem;
}

/* ページヒーロー：B（その他下層・画像付き）
-------------------------------------------*/
.page-hero__inner.page-hero__inner--lower {
  padding-block: 3.4rem 6rem;
}

.page-hero__lower {
  align-items: center;
  display: flex;
  gap: 3.6rem 4rem;
  justify-content: space-between;
}

.page-hero__lower:has(.page-hero__lower-img) .page-hero__lower-title {
  flex: 1;
  min-width: 0;
}

.page-hero__lower-title-ja {
  color: var(--base-color);
  font-size: 3.8rem;
  font-weight: var(--semi-bold);
  line-height: 1.4473684211;
}

.page-hero__lower-title-en {
  color: var(--accent);
  font-family: var(--barlow-font-family);
  font-size: 2.2rem;
  font-weight: var(--regular);
  letter-spacing: 0.02em;
  line-height: 1.1818181818;
  margin-top: 1rem;
  padding-left: 3rem;
  position: relative;
  text-transform: uppercase;
}
.page-hero__lower-title-en::after {
  background: url(../images/common/ico-page-ttl-thin.svg) no-repeat center/contain;
  content: "";
  height: 1.7rem;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 2.3rem;
}

.page-hero__lower-title-accent {
  color: var(--primary);
}

.page-hero__lower-img {
  border-radius: 0.6rem 0 0 0.6rem;
  height: 25.1rem;
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  width: 50.6944444444vw;
}
.page-hero__lower-img img {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: center;
  display: block;
  height: 100%;
  object-position: center;
  width: 100%;
}

/* ページヒーロー：C（その他下層・画像なし）
-------------------------------------------*/
.page-hero__lower:not(:has(.page-hero__lower-img)) .page-hero__lower-title {
  padding-block: 4.5rem 2rem;
}

/* ページヒーロー：D（詳細ページ・カテゴリ付き）
-------------------------------------------*/
.page-hero--single-page .page-hero__inner {
  padding-block: 5.6rem 5.5rem;
}
.page-hero--single-page .case-cat,
.page-hero--single-page .news-cat {
  font-size: 1.4rem;
  padding: 0.2rem 0.4rem;
}
.page-hero--single-page .page-hero__inner:not(:has(.page-hero__cats)) {
  padding-block: 9.3rem 7.7rem;
}

.page-hero__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-inline: auto;
  max-width: 100rem;
}

.page-hero__cats + * {
  margin-block: 1.2rem 0rem;
}

.page-hero__meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  margin-inline: auto;
  max-width: 100rem;
}
.page-hero__meta .page-hero__cats {
  margin-inline: 0;
}
.page-hero__meta + * {
  margin-top: 1.6rem;
}

.page-hero__date {
  color: var(--border);
  font-family: var(--barlow-font-family);
  font-size: 1.8rem;
  letter-spacing: 0.02em;
  line-height: 1.2222222222;
}

.page-hero__title {
  color: var(--base-color);
  font-size: 3.2rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  margin-inline: auto;
  max-width: 100rem;
}
.page-hero__title br {
  display: none;
}

/* ページヒーロー:D（詳細ページ・カテゴリ無し）
-------------------------------------------*/
/* ページヒーロー:E（お問い合わせ関連・下線なし）
-------------------------------------------*/
.page-hero.page-hero--no-line::after {
  display: none;
}
.page-hero.page-hero--no-line .page-hero__inner {
  padding-block: 5.9rem 8.4rem;
}
.page-hero.page-hero--no-line .page-hero__title {
  margin-block: 0;
}

/* -------------------------------------------*/
/* ページ導入（画像+見出し+テキスト）
-------------------------------------------*/
.page-introduction {
  align-items: flex-start;
  display: flex;
  flex-direction: row-reverse;
  gap: 0 4rem;
}
.page-introduction__box {
  flex: 1;
}
.page-introduction__title {
  font-size: 2.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  padding-bottom: 1.7rem;
  position: relative;
}
.page-introduction__title::after {
  background-color: var(--primary);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 8.4rem;
}
.page-introduction__title + * {
  margin-top: 1.6rem;
}
.page-introduction__contents p {
  margin-bottom: 0 !important;
}
.page-introduction__contents p + * {
  margin-top: 2.4rem;
}
.page-introduction__contents .wp-block-list li {
  font-size: 1.4rem;
  line-height: 1.6;
}
.page-introduction__image {
  border-radius: 0.4rem;
  overflow: hidden;
  width: 50.7614213198%;
}
.page-introduction__image img {
  width: 100%;
}

/* -------------------------------------------*/
/* 下層_lead
-------------------------------------------*/
.page-lead__text {
  font-size: 2.8rem;
  font-weight: var(--semi-bold);
  letter-spacing: 0.04em;
  line-height: 1.4;
  padding-bottom: 2.3rem;
  position: relative;
}
.page-lead__text::after {
  background-color: var(--primary);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 8rem;
}
.page-lead__text + * {
  margin-top: 3.2rem;
}

/* -------------------------------------------*/
/* リンク-wrap
-------------------------------------------*/
.page-links {
  background-color: var(--second-bg);
  padding-block: 6.4rem;
}

.page-links__grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
}
.page-links__grid--col2 {
  grid-template-columns: repeat(2, 1fr);
}
.page-links__grid--col2 .page-link-card__arrow {
  height: 2.4rem;
  width: 2.4rem;
}
.page-links__grid--col2 .page-link-card__arrow::after {
  width: 0.5rem;
}

/* リンクカード
-------------------------------------------*/

.page-link-card__inner {
  align-items: center;
  background-color: var(--white);
  border-radius: 0.4rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.3);
  display: flex;
  gap: 1.6rem;
  height: 100%;
  min-height: 7.2rem;
  overflow: hidden;
  padding: 1.4rem;
  position: relative;
  transition: all 0.2s;
  z-index: 1;
}
.page-link-card__inner::after {
  background: var(--primary-gradient-col);
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
  z-index: -1;
}

.page-link-card__image,
.page-link-card__body {
  position: relative;
  z-index: 1;
}

.page-link-card__image {
  aspect-ratio: 136/102;
  border-radius: 0.2rem;
  overflow: hidden;
  width: 41.8037070052%;
}
.page-link-card__image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.page-link-card__body {
  align-items: center;
  display: flex;
  flex: 1;
  gap: 1.4rem;
}

.page-link-card__title {
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
}

.page-link-card__arrow {
  background: var(--white);
  border-radius: 50%;
  flex-shrink: 0;
  height: 3.1rem;
  position: relative;
  transition: all 0.2s;
  width: 3.1rem;
}

.page-link-card__arrow::before,
.page-link-card__arrow::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.2s;
}

.page-link-card__arrow::before {
  background: var(--primary-gradient-col);
  border-radius: 50%;
  height: 100%;
  width: 100%;
}

.page-link-card__arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--white);
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  left: 50%;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0.6rem;
}

/* activeカード
-------------------------------------------*/
.page-link-card.is-active .page-link-card__inner {
  background-color: rgba(255, 255, 255, 0.5);
}
.page-link-card.is-active .page-link-card__title,
.page-link-card.is-active .page-link-card__arrow,
.page-link-card.is-active .page-link-card__image {
  opacity: 0.5;
}
.page-link-card.is-active .page-link-card__arrow::before {
  background: var(--gray-square);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* ページャー
-------------------------------------------*/
.c-pager {
  align-items: center;
  display: flex;
  gap: 3.25rem;
  justify-content: center;
}

.c-pager__button {
  align-items: center;
  border: 1px solid var(--primary);
  border-radius: 50%;
  display: flex;
  height: 4rem;
  justify-content: center;
  position: relative;
  transition: background 0.2s, border-color 0.2s;
  width: 4rem;
}

.c-pager__button::after {
  aspect-ratio: 12/21;
  background-color: var(--primary);
  content: "";
  display: block;
  -webkit-mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  transition: background 0.2s;
  width: 0.6rem;
}

.c-pager__button--prev {
  padding-right: 0.2rem;
}

.c-pager__button--next {
  padding-left: 0.2rem;
}

.c-pager__button--prev::after {
  transform: scale(-1, -1);
}

.c-pager__button--none {
  opacity: 0.3;
  pointer-events: none;
}

.c-pager__list {
  align-items: center;
  display: flex;
  gap: 2rem;
}

.c-pager__list-item {
  display: flex;
}

.c-pager__list-link {
  align-items: center;
  color: var(--border);
  display: flex;
  font-family: var(--barlow-font-family);
  font-size: 2rem;
  font-weight: var(--regular);
  justify-content: center;
  padding-inline: 0.75rem;
  transition: color 0.2s;
}

.c-pager__list-link--dots {
  color: var(--border);
  font-size: 1.6rem;
  font-weight: var(--regular);
  margin-inline: -0.75rem;
  width: 1.3rem;
}

.c-pager__list-item.is-current .c-pager__list-link {
  color: var(--primary);
  font-size: 2.4rem;
  font-weight: var(--regular);
  pointer-events: none;
}

/* -------------------------------------------*/
.c-pagetop {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  aspect-ratio: 1/1;
  background: url("../images/common/pagetop.svg") 50%/contain no-repeat;
  border: 0;
  bottom: 3rem;
  cursor: pointer;
  display: block;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  position: fixed;
  right: 3vw;
  transition: opacity 0.2s, visibility 0.2s;
  visibility: hidden;
  width: 7rem;
  z-index: 50;
}

.c-pagetop.is-visible {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

/* -------------------------------------------*/
/* ========================================
  point-callout（下矢印＋チェック付きボックス）
======================================== */
.point-callout {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  margin-inline: auto;
  margin-top: 4rem;
  width: 100%;
}
.point-callout + * {
  margin-top: 4rem;
}
.point-callout + h2 {
  margin-top: 6.4rem;
}
.point-callout + h3 {
  margin-top: 4rem;
}

.point-callout__arrow {
  background-image: url(../images/common/icon-callout-arrow.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  height: 2rem;
  width: 3.2rem;
}

.point-callout__box {
  align-items: center;
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0 0 8px rgba(30, 60, 114, 0.16);
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  padding: 4rem 2rem;
  width: 100%;
}

.point-callout__icon {
  background-image: url(../images/common/icon-check.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  display: flex;
  flex-shrink: 0;
  height: 2.4rem;
  width: 2.4rem;
}
.point-callout__icon svg {
  display: block;
  height: 100%;
  width: 100%;
}

.point-callout__text {
  color: var(--base-color);
  font-size: 2rem;
  font-weight: var(--normal);
  line-height: 1.5;
  margin: 0;
  text-align: center;
}

/* -------------------------------------------*/
/* ========================================
   投稿記事カード系コンポーネント
======================================== */
/* 関連事例カード　コンポーネント
-------------------------------------------*/
.post-card {
  background: var(--second-bg);
  border-radius: 0.4rem;
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.16);
  overflow: hidden;
  padding: 1.4rem;
}

/* 関連事例白背景verのスタイル---*/
.post-card--white {
  background: var(--white);
}
.post-card--white .post-card__link {
  gap: 1.3rem;
}
.post-card--white .post-card__body {
  gap: 0.8rem;
}
.post-card--white .post-card__title {
  font-size: 1.6rem;
  margin-top: 0.4rem;
}
.post-card--white .post-card__excerpt {
  font-size: 1.4rem;
  line-height: 1.7142857143;
  margin-top: 0.6rem;
}

/* 関連製品verのスタイル---*/
.post-card--frameless {
  background: var(--white);
}

.post-card__link {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  transition: opacity 0.2s;
}

.post-card__thumb {
  aspect-ratio: 246/182;
  background: var(--gray);
  border-radius: 0.2rem;
  overflow: hidden;
}

.post-card__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.post-card__thumb--noimg {
  align-items: center;
  display: flex;
  justify-content: center;
}

.post-card__thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.post-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1rem;
}

.post-card__title {
  color: var(--base-color);
  display: -webkit-box;
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 1.4;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.post-card__line {
  background: linear-gradient(to right, var(--primary) 24%, var(--gray) 10%);
  flex-shrink: 0;
  height: 1px;
  width: 100%;
}

.post-card__excerpt {
  display: -webkit-box;
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.5;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  flex: 1;
  overflow: hidden;
}

.post-card__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: auto;
}

.post-card__cat {
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: 0.3rem;
  color: var(--primary);
  display: inline-block;
  font-size: 1.1rem;
  font-weight: var(--regular);
  padding: 0.4rem 0.5rem;
  white-space: nowrap;
}

/* -------------------------------------------*/
/* ========================================
   投稿記事カード系コンポーネント-wrap
======================================== */
/* 関連事例カード　wrap
-------------------------------------------*/
.post-wrap {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  margin-top: 3.2rem;
}
.post-wrap + * {
  margin-top: 2.4rem;
}
.post-wrap + *.cta-banner {
  margin-top: 6.4rem;
}
.post-wrap + h2 {
  margin-top: 6.4rem;
}
.post-wrap:first-child {
  margin-top: 0;
}
.post-wrap .post-card {
  margin-left: auto;
}
.post-wrap--col2 {
  gap: 2.4rem 2.5rem;
  grid-template-columns: repeat(2, 1fr);
}
.post-wrap--col2 .post-card {
  max-width: 100%;
}
.post-wrap--col3 {
  gap: 2.4rem 2.5rem;
  grid-template-columns: repeat(3, 1fr);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.post h1 {
  font-size: 2.4rem;
  font-weight: var(--bold);
  margin-top: 1rem;
}

.post__body {
  font-size: 1.6rem;
  line-height: 2;
}

.post__body h1 {
  margin: 1em 0;
}

.post__body h2 {
  font-size: 2.2rem;
  margin: 2em 0 1em;
  padding-left: 3rem;
  position: relative;
}
.post__body h2::before {
  background-color: var(--black);
  border-radius: 0.4rem;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  width: 1rem;
}

.post__body h3 {
  border-bottom: 1px solid var(--black);
  font-size: 2rem;
  margin: 2em 0 1em;
  padding-bottom: 0.5rem;
}

.post__body h4 {
  font-size: 2rem;
  font-weight: var(--bold);
  margin: 1.5em 0 0.5em;
  padding-left: 1.5em;
  position: relative;
}
.post__body h4::before {
  aspect-ratio: 1/1;
  background-color: var(--black);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  width: 0.8em;
}

.post__body h5,
.post__body h6 {
  font-size: 2rem;
  font-weight: var(--bold);
  margin: 1em 0 0.5em;
}

.post__body p a {
  color: var(--black);
  text-decoration: underline;
}

.post .wp-block-image {
  margin: 2em 0;
}

.post .wp-block-image img {
  border-radius: 0.6rem;
}

/* -------------------------------------------*/
/* 代表導入企業
-------------------------------------------*/
.representative-companies + * {
  margin-top: 1.8rem;
}
.representative-companies + h2 {
  margin-top: 6.4rem;
}
.representative-companies + h3 {
  margin-top: 4rem;
}

.representative-companies__inner {
  display: grid;
  gap: 1.4rem;
}
.representative-companies__inner--col1 {
  grid-template-columns: repeat(1, 1fr);
}
.representative-companies__inner--col2 {
  grid-template-columns: repeat(2, 1fr);
}
.representative-companies__inner--col3 {
  grid-template-columns: repeat(3, 1fr);
}
.representative-companies__inner--col4 {
  grid-template-columns: repeat(4, 1fr);
}
.representative-companies__inner--col5 {
  grid-template-columns: repeat(5, 1fr);
}

.representative-companies__item {
  background: var(--white);
  border-radius: 0.4rem;
  box-shadow: 0px 0px 0.6rem rgba(30, 60, 114, 0.3);
  display: flex;
  flex-direction: column;
  min-height: 8.9rem;
  padding: 1.2rem 1.6rem 2.4rem;
}

.representative-companies__industry {
  color: var(--accent);
  font-size: 1.2rem;
  font-weight: var(--semi-bold);
  line-height: 1.4166666667;
}
.representative-companies__industry + * {
  margin-top: 1.6rem;
}

.representative-companies__name {
  align-items: center;
  display: flex;
  flex: 1;
  flex-direction: column;
  font-size: 1.4rem;
  font-weight: var(--bold);
  justify-content: center;
  line-height: 1.4285714286;
  text-align: center;
  word-break: break-all;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* 検索フォーム
-------------------------------------------*/
.search-form {
  align-items: center;
  background: var(--gray-bg);
  border: 1px solid var(--gray-square);
  border-radius: 0.4rem;
  display: flex;
  height: 5.6rem;
  margin-inline: auto;
  max-width: 60.1rem;
  padding-right: 2rem;
  position: relative;
  width: 100%;
}
.search-form__input {
  background: transparent;
  border: 0;
  color: var(--base-color);
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--regular);
  height: 100%;
  outline: none;
  padding-left: 2.4rem;
}
.search-form__input::-moz-placeholder {
  color: #525252;
}
.search-form__input::placeholder {
  color: #525252;
}
.search-form__btn {
  aspect-ratio: 1/1;
  background-color: var(--base-color);
  border: 0;
  cursor: pointer;
  display: block;
  -webkit-mask: url(../images/common/ico-search.svg) no-repeat center/contain;
  mask: url(../images/common/ico-search.svg) no-repeat center/contain;
  width: 2.6rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* 検索結果
-------------------------------------------*/
.search-results + * {
  margin-top: 5.6rem;
}
.search-results__item {
  border-bottom: 1px solid var(--border);
  padding-bottom: 4rem;
}
.search-results__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.search-results__item + * {
  margin-top: 4rem;
}
.search-results__title + * {
  margin-top: 2rem;
}
.search-results__excerpt {
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
}
.search-results__excerpt strong {
  color: var(--primary);
}
.search-results__excerpt + * {
  margin-top: 2.4rem;
}

/* -------------------------------------------*/
/* セクションタイトル（molecules_見出し）
-------------------------------------------*/
.sec-title {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
}

/* 日本語タイトル行（青ライン + テキスト）
-------------------------------------------*/
.sec-title__head {
  align-items: center;
  display: flex;
  gap: 0.8rem;
}

.sec-title__head::before {
  aspect-ratio: 29/21;
  background-color: var(--accent);
  content: "";
  display: block;
  width: 2.9rem;
  -webkit-mask: url(../images/common/ico-sec-ttl.svg) 50%/contain no-repeat;
  flex-shrink: 0;
  mask: url(../images/common/ico-sec-ttl.svg) 50%/contain no-repeat;
  transition: all 0.2s;
}

.sec-title__ja {
  font-size: 2rem;
  font-weight: var(--normal);
  line-height: 1.45;
  transition: all 0.2s;
}

/* 英語タイトル（大文字）
-------------------------------------------*/
.sec-title__en {
  display: block;
  font-family: var(--barlow-font-family);
  font-size: 6.4rem;
  font-weight: var(--normal);
  letter-spacing: 0.09em;
  line-height: 1.2;
  margin-top: 0.8rem;
  transition: all 0.2s;
}

/* ホワイト反転（暗背景セクション用）
-------------------------------------------*/
.sec-title--white .sec-title__ja {
  color: var(--white);
}

.sec-title--white .sec-title__en {
  color: var(--white);
}

.sec-title--white .sec-title__head::before {
  background: var(--white);
}

/* -------------------------------------------*/
.service-sec {
  counter-reset: item;
  position: relative;
  z-index: 1;
}
.service-sec + * {
  margin-top: 12rem;
}
.service-sec__item {
  border-top: 1px solid var(--border);
  display: grid;
  gap: 7.2rem;
  grid-template-columns: 41rem 1fr;
  padding-left: 4rem;
  padding-top: 4.8rem;
  position: relative;
}
.service-sec__item + .service-sec__item {
  margin-top: 4.8rem;
}
.service-sec__item::before {
  color: var(--primary);
  content: "0" counter(item);
  counter-increment: item;
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: 500;
  left: 0;
  line-height: 1.1875;
  position: absolute;
  top: 4.8rem;
}
.service-sec__item::after {
  background: var(--primary);
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  top: 0;
  width: 8rem;
}
.service-sec__item-sub-title {
  align-items: center;
  display: flex;
  gap: 1.3rem;
  margin-bottom: 1rem;
}
.service-sec__item-sub-title-en {
  color: var(--primary);
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.1875;
  text-transform: uppercase;
}
.service-sec__item-sub-title-ja {
  color: var(--primary);
  font-family: var(--barlow-font-family);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.1666666667;
}
.service-sec__item-sub-title-ja::before {
  content: "ー ";
}
.service-sec__item-title {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.4583333333;
  margin-bottom: 1.6rem;
}
.service-sec__item-image {
  aspect-ratio: 410/360;
  border-radius: 0.4rem;
  box-shadow: 0px 0px 0.6rem 0px rgba(30, 60, 114, 0.16);
  overflow: hidden;
}
.service-sec__item-image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}
.service-sec__item-text {
  font-size: 1.6rem;
  font-weight: var(--regular);
  letter-spacing: 0.04em;
  line-height: 1.8;
}
.service-sec__item-text + * {
  margin-top: 3.2rem;
}

/* -------------------------------------------*/
.testhor-fv {
  padding-top: 12rem;
  position: relative;
}
.testhor-fv + * {
  margin-top: 12rem;
}
.testhor-fv__bg {
  left: 50%;
  mix-blend-mode: multiply;
  opacity: 0.05;
  pointer-events: none;
  position: absolute;
  top: calc(3px * 1rem);
  transform: translateX(-50%);
  width: 79.8rem;
}
.testhor-fv__inner {
  display: grid;
  gap: 4rem;
  grid-template-columns: 1fr 44rem;
  place-items: center;
}
.testhor-fv__body {
  display: flex;
  flex-direction: column;
  gap: 2.6rem;
  width: 100%;
}
.testhor-fv__title:empty {
  background: var(--gray);
  display: none;
  height: 15rem;
  width: 100%;
}
.testhor-fv__title-text {
  font-size: 4.8rem;
  font-weight: 600;
  letter-spacing: 0.04;
  line-height: 1.4583333333;
}
.testhor-fv__text:empty {
  background: var(--gray);
  display: none;
  height: 15rem;
  width: 100%;
}
.testhor-fv__text p {
  font-size: 1.6rem !important;
  line-height: 1.8 !important;
}
.testhor-fv__text p + * {
  margin-top: 3.2rem;
}
.testhor-fv__image {
  padding-right: 4rem;
  padding-top: 7.4rem;
}

.testhor-sec {
  position: relative;
}
.testhor-sec + * {
  margin-top: 12rem;
}
.testhor-sec__bg {
  filter: blur(2px);
  left: -5rem;
  mix-blend-mode: hard-light;
  opacity: 0.1;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 171.1rem;
}
.testhor-sec__inner {
  display: grid;
  gap: 4rem;
  grid-template-columns: 1fr 36.8rem;
  place-items: center;
}
.testhor-sec__body {
  display: flex;
  flex-direction: column;
  gap: 2.6rem;
  width: 100%;
}
.testhor-sec__title:empty {
  background: var(--gray);
  display: none;
  height: 15rem;
  width: 100%;
}
.testhor-sec__title {
  font-size: 2.8rem;
  font-weight: var(--semi-bold);
  letter-spacing: 0.04em;
  line-height: 1.6;
  padding-bottom: 2.4rem;
  position: relative;
}
.testhor-sec__title::before {
  background-color: var(--primary);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 8rem;
}
.testhor-sec__content:empty {
  background: var(--gray);
  display: none;
  height: 15rem;
  width: 100%;
}
.testhor-sec__content p {
  font-size: 1.6rem !important;
  line-height: 1.8 !important;
}
.testhor-sec__image {
  padding-bottom: 2.2rem;
  padding-right: 4.8rem;
}

/* -------------------------------------------*/
/* 段落
-------------------------------------------*/
.main p:not([class]),
.wp-block-paragraph {
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.8;
}
.main p:not([class]).is-style-large,
.wp-block-paragraph.is-style-large {
  font-size: 1.6rem;
  line-height: 1.8;
}
.main p:not([class]):last-child,
.wp-block-paragraph:last-child {
  margin-bottom: 0;
}
.main p:not([class]) + *,
.wp-block-paragraph + * {
  margin-top: 3.2rem;
}
.main p:not([class]) + p, .main p:not([class]) + ul, .main p:not([class]) + li, .main p:not([class]) + .main__bg-inner,
.wp-block-paragraph + p,
.wp-block-paragraph + ul,
.wp-block-paragraph + li,
.wp-block-paragraph + .main__bg-inner {
  margin-top: 2.4rem;
}
.main p:not([class]) + .info-list,
.wp-block-paragraph + .info-list {
  margin-top: 1rem;
}
.main p:not([class]) + h2,
.wp-block-paragraph + h2 {
  margin-top: 6.4rem;
}
.main p:not([class]) a,
.wp-block-paragraph a {
  text-decoration: underline;
  transition: all 0.2s;
}

strong {
  font-weight: 700;
}

/* リスト
-------------------------------------------*/
.wp-block-list li {
  font-size: 1.5rem;
  font-weight: var(--regular);
}
.wp-block-list li + * {
  margin-top: 0.8rem;
}
.wp-block-list + * {
  margin-top: 2.4rem;
}
.wp-block-list + *.lower-sec-title__sub {
  margin-top: 4rem;
}
.wp-block-list + h2 {
  margin-top: 6.4rem;
}

.wp-block-list.is-style-small li {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.4285714286;
}
.wp-block-list.is-style-small li + * {
  margin-top: 0.8rem;
}
.wp-block-list.is-style-small + * {
  margin-top: 2.4rem;
}
.wp-block-list.is-style-small + *.note-list {
  margin-top: 1rem;
}
.wp-block-list.is-style-small + h2 {
  margin-top: 6.4rem;
}

.list-small__item {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.4285714286;
}
.list-small__item + * {
  margin-top: 0.8rem;
}
.list-small + * {
  margin-top: 2.4rem;
}
.list-small + *.note-list {
  margin-top: 1rem;
}
.list-small + h2 {
  margin-top: 6.4rem;
}

ul.wp-block-list li,
ul.list-small li {
  padding-left: 1.2rem;
  position: relative;
}
ul.wp-block-list li::before,
ul.list-small li::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.4rem;
}
ul.wp-block-list li a,
ul.list-small li a {
  text-decoration: underline;
  transition: all 0.2s;
}

ul.wp-block-list.is-style-small li::before,
ul.list-small li::before {
  top: 0.9rem;
}

ol.wp-block-list li,
ol.list-small li {
  counter-increment: list;
  padding-left: 3.3rem;
  position: relative;
}
ol.wp-block-list li::before,
ol.list-small li::before {
  color: var(--base-color);
  content: counter(list) ".";
  left: 0;
  min-width: 2.3rem;
  position: absolute;
  top: 0;
}
ol.wp-block-list li .wp-block-list,
ol.list-small li .wp-block-list {
  counter-reset: list;
  margin-left: -0.9rem;
  width: 100%;
}
ol.wp-block-list li .wp-block-list li,
ol.list-small li .wp-block-list li {
  font-size: 1.4rem;
  padding-left: 1.2rem;
}
ol.wp-block-list li .wp-block-list li::before,
ol.list-small li .wp-block-list li::before {
  content: "";
  min-width: auto;
  top: 1rem;
}
ol.wp-block-list li .wp-block-list li + *,
ol.list-small li .wp-block-list li + * {
  margin-top: 0.4rem;
}

/* 画像
-------------------------------------------*/
.wp-block-image,
.responsive-image {
  margin-block: 3.2rem;
}
.wp-block-image.size-full,
.responsive-image.size-full {
  margin-bottom: 0;
  width: 100%;
}
.wp-block-image.size-full img,
.responsive-image.size-full img {
  width: 100%;
}
.wp-block-image:first-child,
.responsive-image:first-child {
  margin-top: 0;
}
.wp-block-image:last-child,
.responsive-image:last-child {
  margin-bottom: 0;
}
.wp-block-image + *,
.responsive-image + * {
  margin-top: 4rem;
}
.wp-block-image + h2,
.responsive-image + h2 {
  margin-top: 6.4rem;
}

.responsive-image__caption {
  font-size: 1.2rem;
  font-weight: var(--regular);
  margin-top: 0.5em;
  text-align: center;
}

/* メディアとテキスト
-------------------------------------------*/
.wp-block-media-text__media img {
  border-radius: 0.4rem;
}

/* 埋め込み系
-------------------------------------------*/
.wp-block-embed.is-type-video {
  aspect-ratio: 788/444;
}
.wp-block-embed.is-type-video iframe {
  display: block;
  height: 100%;
  width: 100%;
}
.wp-block-embed__wrapper {
  height: 100%;
}

/* カラム
-------------------------------------------*/
.wp-block-columns + * {
  margin-top: 8rem;
}
.wp-block-columns + *.wp-block-columns {
  margin-top: 4rem;
}
.wp-block-columns + h2 {
  margin-top: 6.4rem;
}

.wp-block-columns.is-style-gap-none {
  gap: 0 !important;
}

.wp-block-columns.is-style-gap-small {
  gap: 1rem !important;
}

.wp-block-columns.is-style-gap-medium {
  gap: 2rem !important;
}

.wp-block-columns.is-style-gap-large {
  gap: 3rem !important;
}

.wp-block-columns.is-style-gap-xlarge {
  gap: 4rem !important;
}

/* flexible-spacer
-------------------------------------------*/
.wp-block-fsb-flexible-spacer {
  margin-top: 0 !important;
}

/* 表
-------------------------------------------*/
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table {
  margin-top: 4rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table:first-child {
  margin-top: 0;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + * {
  margin-top: 4rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + *.note-list {
  margin-top: 1.4rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + h2 {
  margin-top: 6.4rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table {
  min-width: 78.7rem !important;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr > th, .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr > td {
  line-height: 1.5;
  min-width: 255px;
  padding: 1rem 2rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr > th {
  font-size: 1.5rem;
  font-weight: var(--normal);
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr > th:empty {
  background-image: linear-gradient(to top right, transparent calc(50% - 0.5px), #c0c0c0 calc(50% - 0.5px), #c0c0c0 calc(50% + 0.5px), transparent calc(50% + 0.5px));
  background-repeat: no-repeat;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tr > td {
  font-size: 1.4rem;
  font-weight: var(--regular);
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table tbody tr > th {
  min-width: 100px;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table + figcaption {
  margin-top: 1.4rem;
  padding-bottom: 0.8rem;
}
.wp-block-flexible-table-block-table.wp-block-flexible-table-block-table figcaption {
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.4;
}

.wp-block-flexible-table-block-table.table--b > table tr > th {
  border-right: none;
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.5714285714;
  min-width: 16.9rem;
  text-align: center;
}
.wp-block-flexible-table-block-table.table--b > table tr > td {
  border-left: none;
  font-size: 1.4rem;
  line-height: 1.6923076923;
  padding-inline: 2.4rem;
}

.wp-block-flexible-table-block-table.table--c > table tr > th, .wp-block-flexible-table-block-table.table--c > table tr > td {
  text-align: center;
}
.wp-block-flexible-table-block-table.table--c > table tr > th {
  font-size: 1.5rem;
  line-height: 1.5714285714;
}
.wp-block-flexible-table-block-table.table--c > table tr > td {
  font-size: 1.4rem;
  line-height: 1.4615384615;
  padding-inline: 1.6rem;
}

.wp-block-flexible-table-block-table.table--d > table tr > th, .wp-block-flexible-table-block-table.table--d > table tr > td {
  text-align: center;
}

.wp-block-flexible-table-block-table.is-style-diagonal-header thead tr:first-child th:first-child,
.wp-block-flexible-table-block-table.is-style-diagonal-header thead tr:first-child td:first-child {
  position: relative;
}
.wp-block-flexible-table-block-table.is-style-diagonal-header thead tr:first-child th:first-child::before,
.wp-block-flexible-table-block-table.is-style-diagonal-header thead tr:first-child td:first-child::before {
  background: linear-gradient(to bottom left, transparent 0%, transparent calc(50% - 0.5px), #d0d0d0 calc(50% - 0.5px), #d0d0d0 calc(50% + 0.5px), transparent calc(50% + 0.5px), transparent 100%);
  content: "";
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 0;
}
.wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-vertical,
.wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-horizontal {
  font-size: 1.5rem;
  line-height: 1.5;
  position: absolute;
  z-index: 1;
}
.wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-vertical {
  bottom: 0;
  left: 0.8rem;
}
.wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-horizontal {
  right: 0.8rem;
  top: 0;
}

.wp-block-flexible-table-block-table.is-style-dl-list {
  border: none;
  border-collapse: collapse;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table {
  border: none;
  min-width: auto !important;
  width: 100%;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr + tr td,
.wp-block-flexible-table-block-table.is-style-dl-list > table tr + tr th {
  padding-top: 0.8rem;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr + tr th::before {
  top: 1.7rem;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr th,
.wp-block-flexible-table-block-table.is-style-dl-list > table tr td {
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.5714285714;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr th {
  align-items: center;
  background-color: transparent;
  border: none;
  display: flex;
  max-width: 14rem;
  padding: 0;
  padding-left: 0.8rem;
  position: relative;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr th::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.9rem;
  width: 0.4rem;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr th::after {
  content: "：";
  margin-left: auto;
}
.wp-block-flexible-table-block-table.is-style-dl-list > table tr td {
  align-items: center;
  border: none;
  display: flex;
  flex: 1;
  min-width: auto;
  padding: 0;
  white-space: initial;
}
.wp-block-flexible-table-block-table.is-style-dl-list tbody tr {
  align-items: flex-start;
  display: flex;
  gap: 0.4rem;
}
.wp-block-flexible-table-block-table.is-style-dl-list tbody tr:last-child {
  border-bottom: none;
}

.wp-block-flexible-table-block-table.is-style-multiline th,
.wp-block-flexible-table-block-table.is-style-multiline td {
  white-space: normal;
  word-break: break-word;
}

.wp-block-image.is-style-center-placement {
  background: #f0f0f0;
  border-radius: 6px;
  overflow: hidden;
  text-align: center;
}

.wp-block-image.is-style-center-placement img {
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
  object-fit: contain;
  -o-object-position: center;
  object-position: center;
}

.wp-block-media-text {
  gap: 3rem;
}
.wp-block-media-text .wp-block-media-text__content {
  padding: 0;
}

.wp-element-caption {
  font-size: 1.2rem;
  margin-bottom: 0;
  margin-top: 0.5em;
  text-align: center;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.wrapper {
  position: relative;
  text-align: left;
  width: 100%;
}

.main {
  position: relative;
  width: 100%;
}
.main::after {
  background: linear-gradient(319deg, #cee8ff 9.38%, #eff7ff 45.49%, #fff 91.83%);
  content: "";
  display: block;
  height: 100vh;
  left: 0;
  margin-inline: calc(50% - 50vw);
  position: fixed;
  top: 0;
  width: 100%;
  width: 100vw;
  z-index: -2;
}
.main-simple {
  padding-bottom: 12rem;
}

.main__inner {
  position: relative;
  width: 100%;
  z-index: 1;
}

.main__bg {
  background-color: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.3);
  padding: 4rem 6.4rem 6.4rem;
}
.main__bg:last-child {
  margin-bottom: 12rem;
}
.main__bg + * {
  margin-top: 12rem;
}
.main__bg + .main__bg {
  margin-top: 2.4rem !important;
}

.main__bg-inner {
  padding-inline: 4.2rem;
}
.main__bg-inner + * {
  margin-top: 3.2rem;
}
.main__bg-inner + *.cta-banner {
  margin-top: 6.4rem;
}
.main__bg-inner + h2 {
  margin-top: 6.4rem;
}
.main__bg-inner .main__bg-inner {
  padding-inline: 2.4rem;
}
.main__bg-inner .main__bg-inner + * {
  margin-top: 4rem;
}
.main__bg-inner .main__bg-inner + p, .main__bg-inner .main__bg-inner + ul, .main__bg-inner .main__bg-inner + ol {
  margin-top: 2.4rem;
}

/* エラーページ
-------------------------------------------*/
.main--error {
  padding-block: 22rem 22.5rem;
}

.main--error h1 {
  margin-inline: auto;
  width: 47rem;
}

.main--error .error-text {
  font-size: 1.7rem;
  margin-top: 7.5rem;
  text-align: center;
}

.main--error .error-link {
  display: block;
  font-feature-settings: "palt";
  font-size: 1.7rem;
  margin: 7.5rem auto 0;
  padding-bottom: 0.3rem;
  position: relative;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
}

.main--error .error-link::after {
  background: linear-gradient(to right, var(--base-bg), var(--primary));
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.main--error .main__inner {
  padding: 120px 0;
}

.main--error .btn {
  margin: 40px auto 0;
}

/* リンク無効化
-------------------------------------------*/
.no-link {
  opacity: 0.4 !important;
  pointer-events: none !important;
}

.no-link--ba {
  pointer-events: none !important;
}
.no-link--ba::before, .no-link--ba::after {
  opacity: 0.4 !important;
  pointer-events: none !important;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* カテゴリフィルター
-------------------------------------------*/
.archive-news__filter-label {
  align-items: center;
  color: var(--base-color);
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}

.archive-news__filter-label::before {
  background: var(--primary);
  content: "";
  display: block;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
}

.archive-news__filter {
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  padding-bottom: 3.6rem;
}

.archive-news__filter-btn {
  background: transparent;
  border: 1px solid var(--primary);
  border-radius: 0.4rem;
  color: var(--primary);
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  height: 4.4rem;
  max-width: 100%;
  min-width: 17.4rem;
  padding: 1rem 1.4rem;
  text-align: center;
  transition: all 0.2s;
  width: -moz-fit-content;
  width: fit-content;
}

.archive-news__filter-btn.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}

.news-cat {
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: 0.3rem;
  color: var(--primary);
  display: inline-block;
  font-size: 1.2rem;
  font-weight: var(--regular);
  line-height: 1.5714285714;
  padding: 0.1rem 0.7rem;
  white-space: nowrap;
}

/* アーカイブ一覧
-------------------------------------------*/
.archive__item {
  background: #f5f5f5;
  border-radius: 0.6rem;
  overflow: hidden;
}

.archive__link {
  display: flex;
  gap: 2.4rem;
  padding: 2.4rem 3.4rem 2.4rem;
  transition: opacity 0.2s;
}

.archive__thumb {
  aspect-ratio: 160/118;
  background: var(--gray);
  border-radius: 0.6rem;
  flex-shrink: 0;
  overflow: hidden;
  width: 16rem;
}

.archive__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

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

.archive__thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.archive__body {
  flex: 1;
}

.archive__title {
  color: var(--base-color);
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.65;
  margin-bottom: 0.8rem;
  padding-left: 1.6rem;
  position: relative;
}
.archive__title::before {
  background: #b4b4b4;
  content: "";
  height: 0.6rem;
  left: 0;
  position: absolute;
  top: 0.9rem;
  width: 0.6rem;
}

.archive__excerpt {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
}

/* お知らせ一覧
-------------------------------------------*/
.archive-news {
  padding-bottom: 12rem;
}

.archive-news__inner {
  margin-inline: auto;
  max-width: 100rem;
}

.archive-news__list {
  display: flex;
  flex-direction: column;
}
.archive-news__list + * {
  margin-top: 6.4rem;
}

.archive-news__item {
  border-bottom: 1px solid var(--border);
}

.archive-news__link {
  align-items: center;
  display: flex;
  gap: 1.4rem;
  padding-block: 3.2rem;
  transition: opacity 0.2s;
}

.archive-news__date {
  font-family: var(--barlow-font-family);
  font-size: 2rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
  min-width: 8rem;
  opacity: 0.7;
}

.archive-news__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.archive-news__cat {
  border: 1px solid var(--primary);
  color: var(--primary);
  font-size: 1.1rem;
  font-weight: var(--semi-bold);
  padding: 0.2rem 1rem;
  white-space: nowrap;
}

.archive-news__title {
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-height: 1.5;
  margin-left: 2.4rem;
}

/* コラム一覧
-------------------------------------------*/
.archive-column {
  margin-bottom: 12rem;
}

.archive-column__inner {
  margin-inline: auto;
  max-width: var(--content-width);
}

.archive-column__filter-btn.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}

.archive-column__grid {
  display: grid;
  gap: 1.8rem;
  grid-template-columns: 1fr;
  margin-bottom: 5.6rem;
}

.archive-column__item {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0 0 0.8rem rgba(30, 60, 114, 0.16);
}

.archive-column__link {
  display: flex;
  gap: 1.8rem;
  padding: 1.4rem;
  transition: opacity 0.2s;
}

.archive-column__thumb {
  aspect-ratio: 181/135;
  background: var(--gray);
  border-radius: 0.4rem;
  flex-shrink: 0;
  overflow: hidden;
  width: 18.1rem;
}

.archive-column__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.archive-column__thumb--noimg {
  align-items: center;
  display: flex;
  justify-content: center;
}

.archive-column__thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.archive-column__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1.5rem;
}

.archive-column__title {
  color: var(--primary);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  line-height: 1.5555555556;
}

.archive-column__excerpt {
  color: var(--black);
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--regular);
  line-clamp: 2;
  line-height: 1.5625;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ページャー
-------------------------------------------*/
.c-pager {
  align-items: center;
  display: flex;
  gap: 3.25rem;
  justify-content: center;
}

.c-pager__button {
  align-items: center;
  border: 1px solid var(--primary);
  border-radius: 50%;
  display: flex;
  height: 4rem;
  justify-content: center;
  position: relative;
  transition: background 0.2s, border-color 0.2s;
  width: 4rem;
}

.c-pager__button::after {
  aspect-ratio: 12/21;
  background-color: var(--primary);
  content: "";
  display: block;
  -webkit-mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue3.svg) 50%/contain no-repeat;
  transition: background 0.2s;
  width: 0.6rem;
}

.c-pager__button--prev {
  padding-right: 0.2rem;
}

.c-pager__button--next {
  padding-left: 0.2rem;
}

.c-pager__button--prev::after {
  transform: scale(-1, -1);
}

.c-pager__button--none {
  opacity: 0.3;
  pointer-events: none;
}

.c-pager__list {
  align-items: center;
  display: flex;
  gap: 2rem;
}

.c-pager__list-item {
  display: flex;
}

.c-pager__list-link {
  align-items: center;
  color: var(--border);
  display: flex;
  font-family: var(--barlow-font-family);
  font-size: 2rem;
  font-weight: var(--regular);
  justify-content: center;
  padding-inline: 0.75rem;
  transition: color 0.2s;
}

.c-pager__list-link--dots {
  color: var(--border);
  font-size: 1.6rem;
  font-weight: var(--regular);
  margin-inline: -0.75rem;
  width: 1.3rem;
}

.c-pager__list-item.is-current .c-pager__list-link {
  color: var(--primary);
  font-size: 2.4rem;
  font-weight: var(--regular);
  pointer-events: none;
}

/* -------------------------------------------*/
.page-id-477 .main p:not([class]) + .lower-sec-title__small,
.page-id-477 .wp-block-paragraph + .lower-sec-title__small {
  margin-top: 1.8rem;
}
.page-id-477 .main p:not([class]) + .lower-sec-title__sub,
.page-id-477 .wp-block-paragraph + .lower-sec-title__sub {
  margin-top: 4rem;
}
.page-id-477 .card-item--row .card-item__body p:not([class]) + *,
.page-id-477 .card-item--row .card-item__body .wp-block-paragraph + * {
  margin-top: 1.5rem;
}
.page-id-477 .lower-sec-title__small + * {
  margin-top: 0.8rem !important;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* ========================================
   事例紹介 共通
======================================== */
/* カテゴリバッジ
-------------------------------------------*/
.case-sec-inner {
  padding-inline: 4.2rem;
}

.pt-15 {
  padding-top: 1.5rem;
}

/* 事例一覧カード（post-card と同一トーン）
-------------------------------------------*/
.case-card {
  background: var(--white);
  border-radius: 0.4rem;
  box-shadow: 0 0 0.6rem rgba(30, 60, 114, 0.16);
  overflow: hidden;
  padding: 1.4rem;
}

.case-card--white {
  background: var(--white);
}

.case-card--frameless {
  background: var(--white);
}

.case-card__link {
  display: flex;
  flex-direction: column;
  gap: 1.7rem;
  transition: opacity 0.2s;
}

.case-card__thumb {
  aspect-ratio: 246/182;
  background: var(--gray);
  border-radius: 0.4rem;
  overflow: hidden;
}

.case-card__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.case-card__thumb--noimg {
  align-items: center;
  display: flex;
  justify-content: center;
}

.case-card__thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.2rem;
}

.case-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.case-card__title {
  color: var(--base-color);
  display: -webkit-box;
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 1.4375;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.case-card__line {
  background: linear-gradient(to right, var(--primary) 24%, var(--gray) 10%);
  flex-shrink: 0;
  height: 1px;
  margin-top: 1.6rem;
  width: 100%;
}

.case-card__excerpt {
  display: -webkit-box;
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.7142857143;
  margin-top: 1.2rem;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  flex: 1;
  overflow: hidden;
}

.case-card__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.6rem;
}

.case-cat {
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: 0.3rem;
  color: var(--primary);
  display: inline-block;
  font-size: 1.2rem;
  font-weight: var(--regular);
  line-height: 1.5714285714;
  padding: 0.1rem 0.7rem;
  white-space: nowrap;
}

/* ========================================
   事例紹介 一覧（archive-case）
======================================== */
.case-archive {
  padding-bottom: 12rem;
}

.case-archive__inner {
  margin-inline: auto;
  max-width: var(--content-width);
}

/* カテゴリフィルター
-------------------------------------------*/
.case-archive__filter-label {
  align-items: center;
  color: var(--base-color);
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}

.case-archive__filter-label::before {
  background: var(--primary);
  content: "";
  display: block;
  flex-shrink: 0;
  height: 1rem;
  width: 1rem;
}

.case-archive__filter {
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 3.6rem;
  padding-bottom: 3.6rem;
}

.case-archive__filter-btn {
  background: transparent;
  border: 1px solid var(--primary);
  border-radius: 0.4rem;
  color: var(--primary);
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  height: 4.4rem;
  max-width: 100%;
  min-width: 17.4rem;
  padding: 1rem 1.4rem;
  text-align: center;
  transition: all 0.2s;
  width: -moz-fit-content;
  width: fit-content;
}

.case-archive__filter-btn.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}

/* カードグリッド
-------------------------------------------*/
.case-archive__grid {
  display: grid;
  gap: 3.6rem 2.6rem;
  grid-template-columns: repeat(3, 1fr);
  margin-bottom: 5.6rem;
}

/* ========================================
   事例紹介 詳細（single-case）
======================================== */

/* ビジュアル + メタ情報（2カラム）
-------------------------------------------*/
.case-detail__visual {
  align-items: center;
  display: grid;
  gap: 4.8rem;
  grid-template-columns: 38.2rem 1fr;
  margin-bottom: 3.4rem;
}

.case-detail__img {
  background: var(--gray);
  overflow: hidden;
}

.case-detail__img img {
  display: block;
  height: auto;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  position: relative;
  z-index: 1;
}

.case-detail__img--noimg {
  align-items: center;
  aspect-ratio: 382/224;
  display: flex;
  justify-content: center;
  position: relative;
}

.case-detail__img--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.3rem;
}

/* メタ情報カード群
-------------------------------------------*/
.case-meta-list {
  display: flex;
  flex-direction: column;
  gap: 0rem;
}

.case-meta-card {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 3rem;
  padding: 2.2rem 1.8rem 1.7rem;
}

.case-meta-card__label {
  color: var(--base-color);
  flex-shrink: 0;
  font-size: 1.5rem;
  font-weight: var(--normal);
  min-width: 6rem;
  position: relative;
}
.case-meta-card__label::before {
  aspect-ratio: 1/1;
  background: #b4b4b4;
  content: "";
  content: "";
  left: -1.8rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
}

.case-meta-card__value {
  color: var(--base-color);
  flex: 1;
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: normal;
}

/* 内容ボックス（グレー背景）
-------------------------------------------*/
.case-summary-box {
  background: #f5f5f5;
  border-radius: 0.4rem;
  margin-bottom: 2.4rem;
  padding: 2.3rem 4.2rem 3.3rem;
}

.case-summary-box__title {
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  margin-bottom: 2.2rem;
  padding-bottom: 1.3rem;
  padding-left: 1.9rem;
  position: relative;
}
.case-summary-box__title::before {
  aspect-ratio: 1/1;
  background: var(--primary);
  content: "";
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.7rem;
}
.case-summary-box__title::after {
  background: var(--primary);
  bottom: 0;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}

.case-summary-box__text {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
}

/* 課題と背景 | 解決方法 box（グラデーション2カラム）
-------------------------------------------*/
.case-challenge-box {
  position: relative;
}
.case-challenge-box::before {
  background: linear-gradient(140deg, #006ab7 0%, #2a5298 69.1%, #1e3c72 100%);
  border-radius: 0.4rem;
  content: "";
  height: 100%;
  left: 0;
  opacity: 0.2;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
}
.case-challenge-box {
  display: grid;
  gap: 5.5rem;
  grid-template-columns: 1fr 1.9rem 1fr;
  margin-bottom: 6.4rem;
  padding: 2.3rem 4.2rem 2.1rem;
}

.case-challenge-box__title {
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  margin-bottom: 2.2rem;
  padding-bottom: 1.3rem;
  padding-left: 1.9rem;
  position: relative;
}
.case-challenge-box__title::before {
  aspect-ratio: 1/1;
  background: var(--primary);
  content: "";
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.7rem;
}
.case-challenge-box__title::after {
  background: var(--primary);
  bottom: 0;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}

.case-challenge-box__text {
  color: var(--base-color);
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
}

.case-challenge-box__triangle {
  align-self: center;
  margin-top: -0.5rem;
  width: 1.9rem;
}

/* -------------------------------------------*/
.is-company-background-page .main::before {
  background: url("../images/common/company_back.webp") no-repeat right top/72% auto;
  content: "";
  display: block;
  height: 100vh;
  pointer-events: none;
  position: fixed;
  right: 0;
  top: 0;
  width: 100vw;
  z-index: -1;
}

.page-id-922 .page-introduction__contents p.wp-block-paragraph {
  font-size: 1.4rem;
  line-height: 1.6;
}

.page-id-943 .main__bg p:first-child + * {
  margin-top: 6.4rem;
}
.page-id-943 .wp-block-columns .wp-block-list li {
  font-size: 1.6rem;
  line-height: 1.5;
}
.page-id-943 .wp-block-columns .wp-block-list li + * {
  margin-top: 2.4rem;
}

.page-id-928 .wp-block-columns + *.wp-block-columns {
  margin-top: 2rem;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* お問い合わせ（システム製品）ページ固有スタイル
-------------------------------------------*/
/* ページラッパー
-------------------------------------------*/
.contact-system {
  padding: 6rem 0 10rem;
}

.contact-system__inner {
  margin-inline: auto;
  max-width: 100rem;
  padding-inline: var(--padding-pc);
}

/* -------------------------------------------*/
/* -------------------------------------------*/
.contact {
  padding: 10.3rem 0 10rem;
}

.contact__cols {
  display: grid;
  gap: 5.8%;
  grid-template-columns: 1fr 42.3%;
}

.contact__lead {
  font-family: var(--en-font-family);
  font-size: 1.6rem;
  line-height: 1.9;
  padding-top: 5.5rem;
}

.contact__cta {
  margin-top: 4.4rem;
}

.contact__cta-link {
  align-items: center;
  aspect-ratio: 351/58;
  border: 1px solid rgba(0, 0, 0, 0.51);
  border-radius: 0.9rem;
  display: flex;
  font-family: var(--en-font-family);
  font-size: 1.6rem;
  font-weight: var(--regular);
  justify-content: center;
  max-width: 35.1rem;
  transition: 0.3s;
  width: 100%;
}

.contact__form {
  display: block;
  font-family: var(--en-font-family);
  margin-top: 14.5rem;
}

.contact__title {
  font-size: 3.2rem;
  font-weight: var(--semi-bold);
}

.contact__body {
  margin-top: 5.6rem;
}

.contact__field:not(:first-child) {
  margin-top: 2.1rem;
}

::-moz-placeholder {
  color: #828282;
}

::placeholder {
  color: #828282;
}

.contact__row--flex {
  display: flex;
  gap: 3rem;
}

.contact__row--flex .contact__field {
  flex: 1;
  margin: 0;
}

.contact__label {
  font-size: 1.6rem;
  font-weight: var(--normal);
}

.contact__actions {
  margin-top: 2rem;
}

.contact__actions input {
  align-items: center;
  background-color: var(--black);
  border-radius: 0.8rem;
  color: var(--white);
  cursor: pointer;
  display: flex;
  font-size: 2rem;
  height: 6.2rem;
  justify-content: center;
  width: 100%;
}

/* KV
-------------------------------------------*/
.contact__kv img {
  height: auto;
  width: 100%;
}

/* ミニギャラリー
-------------------------------------------*/
.contact__mini-block {
  margin-top: 4rem;
}

.contact__mini-title {
  align-items: center;
  display: flex;
  font-family: var(--en-font-family);
  font-size: 1.6rem;
  font-weight: var(--light);
  justify-content: center;
  position: relative;
  text-align: center;
}
.contact__mini-title::before, .contact__mini-title::after {
  aspect-ratio: 36/42;
  background: url("../images/contact/tree.webp") no-repeat center/contain;
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 3.6rem;
}
.contact__mini-title::before {
  margin-right: 2.6rem;
}
.contact__mini-title::after {
  margin-left: 2.4rem;
}

.contact__mini {
  display: grid;
  gap: 2.9rem 2.5rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3rem;
}

.contact__mini-item {
  aspect-ratio: 1/1;
  overflow: hidden;
}

.contact__mini-item img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* ========================================
  よくある質問
======================================== */
.page-id-1534 .wp-block-list li {
  line-height: 1.4666666667;
}

/* -------------------------------------------*/
.glossary-page {
  position: relative;
}
.glossary-page::before {
  background: linear-gradient(90deg, #f8fcff 0%, #dff0ff 100%);
  content: "";
  height: 56rem;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
}

.page-hero--glossary {
  position: relative;
  z-index: 1;
}

.glossary {
  margin-block: 1.7rem 12rem;
  position: relative;
  z-index: 1;
}

.glossary__card {
  background-color: var(--white);
  border-radius: 0.4rem;
  box-shadow: 0 0 0.8rem rgba(30, 60, 114, 0.22);
  padding: 4.8rem 6.4rem 6.4rem;
}

.glossary-tabs {
  border-bottom: 0.1rem solid var(--border);
  padding-bottom: 3.2rem;
}

.glossary-tabs__list {
  display: grid;
  gap: 1.2rem;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.glossary-tabs__link {
  align-items: center;
  border: 0.1rem solid var(--primary);
  border-radius: 0.4rem;
  color: var(--primary);
  display: flex;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  justify-content: center;
  line-height: 1.4;
  min-height: 4rem;
  padding: 0.8rem 1rem;
  transition: background-color 0.2s, color 0.2s;
}

.glossary-tabs__link.is-active {
  background-color: var(--primary);
  color: var(--white);
}

.glossary__content {
  color: var(--base-color);
  font-size: 1.5rem;
  line-height: 1.9;
  margin-top: 4.8rem;
}
.glossary__content > *:first-child {
  margin-top: 0;
}
.glossary__content p,
.glossary__content ul,
.glossary__content ol,
.glossary__content figure,
.glossary__content table {
  margin-top: 1.8rem;
}
.glossary__content a {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 0.3rem;
}
.glossary__content img {
  height: auto;
  max-width: inherit;
}
.glossary__content p img {
  margin: 0 0.5rem;
}
.glossary__content .wp-block-image {
  margin-inline: 0;
  overflow: auto;
}

.glossary__empty {
  color: var(--gray-muted);
  text-align: center;
}

body.post-type-archive-glossary .glossary__content .lower-sec-title,
body.single-glossary .glossary__content .lower-sec-title {
  align-items: center;
  display: flex;
  margin-bottom: 2rem;
}
body.post-type-archive-glossary .glossary__content .lower-sec-title span,
body.single-glossary .glossary__content .lower-sec-title span {
  color: #333333;
  display: block;
  font-size: 1.2rem;
  font-weight: 400;
  margin-left: 1.8rem;
  margin-top: 0.4em;
}
body.post-type-archive-glossary .main p:not([class]) + h2,
body.post-type-archive-glossary .wp-block-paragraph + h2,
body.single-glossary .main p:not([class]) + h2,
body.single-glossary .wp-block-paragraph + h2 {
  margin-top: 3.2rem;
}

/* -------------------------------------------*/
.page-status .page-bread__list {
  justify-content: end !important;
}
.page-status .page-status__card {
  margin-top: 1.2rem;
  padding-block: 3.8rem 6.4rem;
}
.page-status .page-status__inner {
  margin-inline: auto;
  max-width: 76rem;
  text-align: center;
}
.page-status .page-status__title {
  color: var(--primary);
  font-family: var(--barlow-font-family);
  font-size: 7.5rem;
  font-weight: var(--normal);
}
.page-status .page-status__lead {
  color: var(--base-color);
  font-size: 2.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.7777777778;
  margin-top: 0.6rem;
}
.page-status .page-status__text {
  margin-top: 1.6rem;
}
.page-status .page-status__text p {
  color: var(--base-color);
  font-size: 1.4rem;
  line-height: 1.8;
  margin-top: 1.6rem;
}
.page-status .page-status__text p {
  margin: 0;
}
.page-status .page-status__text p + p {
  margin-top: 0.4rem;
}
.page-status .page-status__text--comingsoon {
  margin-top: 2.2rem;
}
.page-status .page-status__btn {
  display: flex;
  justify-content: center;
  margin-top: 3.8rem;
}
.page-status .page-status__btn .btn__link {
  min-width: 19.6rem;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* ========================================
  規約系ページ
======================================== */
.page-policy .main__bg-inner:last-child .wp-block-list:last-child {
  margin-top: 0.8rem;
}

/* -------------------------------------------*/
.product-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.product-tag__link {
  background: var(--gray-bg);
  border: 1px solid var(--border);
  border-radius: 2px;
  color: #525252;
  display: block;
  font-size: 1.2rem;
  line-height: 1.5;
  padding: 0.2rem 0.7rem;
  transition: all 0.2s;
}

.product-related {
  padding-block: 7.2rem;
  position: relative;
  z-index: 1;
}
.product-related::after {
  background-color: var(--second-bg);
  bottom: 0;
  content: "";
  display: block;
  left: 50%;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
}
.product-related .post-card__thumb {
  aspect-ratio: 4/3;
}
.product-related__title {
  font-size: 2.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  padding-bottom: 1.6rem;
  position: relative;
}
.product-related__title::after {
  background-color: var(--primary);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 8.4rem;
}
.product-related__title + * {
  margin-top: 1.6rem;
}
.product-related__body {
  display: grid;
  gap: 2.4rem 2.6rem;
  grid-template-columns: repeat(3, 1fr);
}

/* ============================================================
   製品関連4ページ用 統合SCSS
   - 製品情報トップ        : page-product.php
   - 製品検索結果          : page-product-search.php
   - 製品タグアーカイブ    : page-product-tag.php
   - 製品カテゴリ詳細      : page-product-cat.php
   ============================================================ */
/* ============================================================
   2. 製品情報トップ（page-product）
   ============================================================ */
.archive-product__inner {
  margin-block: 0 12rem;
}
.archive-product__inner > :first-child {
  margin-top: 0;
}

/* ============================================================
  3. 製品カテゴリ詳細（page-product-cat）
  検索結果ページと同じ白カード仕様
===========================================================*/
.taxonomy-product__inner {
  padding-top: 5rem;
}
.taxonomy-product__inner > :first-child {
  margin-top: 0;
}

.taxonomy-product__lead {
  font-size: 1.5rem;
  font-weight: var(--regular);
  line-height: 1.8;
  margin-top: 2.4rem;
}

/* タグアーカイブのページタイトル「タグ「○○」」アクセント */
.page-hero__lower-title-accent {
  color: var(--primary);
}

/* ============================================================
   4. 検索結果ページ（page-product-search / page-product-tag）
   ============================================================ */
.search-result__inner {
  padding-top: 2rem;
}

.search-result__head {
  align-items: baseline;
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  display: flex;
  flex-wrap: wrap;
  font-size: 2.2rem;
  font-weight: var(--semi-bold);
  gap: 0 1.2rem;
  line-height: 1.4545454545;
  padding-bottom: 1.4rem;
  padding-left: 2rem;
  position: relative;
}
.search-result__head::before {
  background: var(--primary);
  content: "";
  height: 0.8rem;
  left: 0;
  position: absolute;
  top: 2.1rem;
  width: 0.8rem;
}
.search-result__head::after {
  background-color: var(--primary);
  bottom: -1px;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 8rem;
}
.search-result__head + * {
  margin-top: 3rem;
}

.search-result__head-keyword {
  color: var(--primary);
}

.search-result__head-count {
  color: var(--primary);
  font-size: 3.2rem;
  font-weight: var(--bold);
  line-height: 1.46875;
  margin-right: 0.2rem;
}

.search-result__head-empty {
  line-height: 2.1363636364;
}

.search-result__empty {
  font-size: 1.4rem;
  margin-top: 4rem;
  text-align: center;
}

/* ============================================================
   5. フリーワード検索ブロック
   親白枠の外側に配置する独立白枠
   ============================================================ */
.product-search-wrap.main__bg {
  margin-bottom: 4rem;
  padding-bottom: 4.8rem;
}

.product-search {
  align-items: center;
  background: var(--gray-bg);
  border: 1px solid var(--gray-square);
  border-radius: 0.4rem;
  display: flex;
  height: 6.4rem;
  margin-inline: auto;
  margin-top: 2.4rem;
  max-width: 60.1rem;
  padding-right: 2rem;
  position: relative;
  width: 100%;
}

.product-search__input {
  background: transparent;
  border: 0;
  color: var(--base-color);
  flex: 1;
  font-size: 1.6rem;
  font-weight: var(--regular);
  height: 100%;
  outline: none;
  padding-left: 2.4rem;
}
.product-search__input::-moz-placeholder {
  color: #525252;
}
.product-search__input::placeholder {
  color: #525252;
}

.product-search__btn {
  aspect-ratio: 1/1;
  background-color: var(--base-color);
  border: 0;
  cursor: pointer;
  display: block;
  -webkit-mask: url(../images/common/ico-search.svg) no-repeat center/contain;
  mask: url(../images/common/ico-search.svg) no-repeat center/contain;
  width: 3rem;
}

/* ============================================================
   6. ページ内アンカーピル（製品情報トップ）
   矢印は青丸+白＞
   ============================================================ */
.product-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 1.4rem;
  justify-content: center;
  margin-top: 4.8rem;
}

.product-anchors__link.btn__link {
  color: var(--base-color);
  gap: 1rem;
  padding: 1.4rem 1.2rem;
  width: 19.2rem;
}

/* ============================================================
   7. 製品トップ統一カードグリッド
   3カラム（標準）／2カラム（--2column）／画像なし（--no-image）
   ============================================================ */
.product-card-grid {
  display: grid;
  gap: 4rem 1.9rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 4rem;
}

.product-card-grid--2column {
  -moz-column-gap: 2rem;
  column-gap: 2rem;
  grid-template-columns: repeat(2, 1fr);
}
.product-card-grid--2column .product-card-grid__thumb {
  aspect-ratio: 426/239;
}

.product-card-grid--no-image {
  gap: 1.8rem 1.9rem;
}

.btn.product-card-grid__link {
  color: var(--base-color);
  display: block;
  height: 100%;
  transition: opacity 0.2s;
}
.btn.product-card-grid__link + * {
  margin-top: 0;
}

.product-card-grid__thumb {
  aspect-ratio: 4/3;
  background: var(--gray);
  border-radius: 0.4rem;
  overflow: hidden;
  width: 100%;
}
.product-card-grid__thumb img {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.product-card-grid__thumb--noimg {
  align-items: center;
  display: flex;
  justify-content: center;
}

.product-card-grid__btns {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
}

.product-card-grid__thumb + .product-card-grid__btns {
  margin-top: 1.8rem;
}

.btn__link.product-card-grid__title,
.btn__link.product-card-grid__btn {
  border: none;
  color: var(--base-color);
  font-weight: var(--semi-bold);
  gap: 1.6rem;
  line-height: 1.5;
  min-height: 6rem;
  overflow: hidden;
  padding: 0.9rem 1.4rem;
  position: relative;
  width: 100%;
  z-index: 1;
}
.btn__link.product-card-grid__title::after,
.btn__link.product-card-grid__btn::after {
  background: var(--primary-gradient-col);
  bottom: 0;
  content: "";
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
  z-index: -1;
}

/* ============================================================
   8. 製品横長カード（検索結果・タグアーカイブ共通）
   左サムネ 230×171 + 右コンテンツ
   ============================================================ */
.product-row-card {
  display: flex;
  flex-direction: column;
}

.product-row-card__item {
  display: flex;
  gap: 3.6rem;
}
.product-row-card__item + * {
  border-top: 1px solid var(--border);
  margin-top: 4rem;
  padding-top: 4rem;
}

.product-row-card__thumb {
  aspect-ratio: 230/171;
  background: var(--gray);
  border-radius: 0.4rem;
  flex-shrink: 0;
  overflow: hidden;
  width: 23rem;
}
.product-row-card__thumb img {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.product-row-card__thumb--noimg {
  align-items: center;
  background: var(--primary-gradient-col);
  border-radius: 0.4rem;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.product-row-card__thumb--noimg img {
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
  width: 11.1rem;
}

.product-row-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.product-row-card__body .btn {
  margin-top: auto;
}

.lower-sec-title__sub.product-row-card__title {
  align-items: flex-start;
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  display: flex;
  font-size: 1.6rem;
  font-weight: var(--semi-bold);
  gap: 1.4rem;
  line-height: 1.6;
  padding-bottom: 1.2rem;
}

.product-row-card__bullet {
  background-color: var(--primary);
  display: block;
  flex-shrink: 0;
  height: 0.6rem;
  margin-top: 1rem;
  width: 0.6rem;
}

.product-row-card__desc {
  display: -webkit-box;
  font-size: 1.4rem;
  font-weight: var(--regular);
  line-height: 1.6;
  margin-bottom: 2.4rem;
  margin-top: 1.6rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* ============================================================
   9. 製品カテゴリ詳細カード（page-product-cat）
   左サムネ 278×177 + 右コンテンツ
   タイトルは .lower-sec-title__sub、ボタンは .product-row-card__btn 流用
   ============================================================ */
.product-list-card {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  margin-top: 4rem;
}

.product-list-card__item {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0 0 0.8rem rgba(30, 60, 114, 0.3);
  display: flex;
  gap: 2.4rem;
  padding: 1.6rem;
}
.product-list-card__item .btn {
  margin-top: auto;
}

.product-list-card__thumb {
  aspect-ratio: 4/3;
  border-radius: 0.4rem;
  flex-shrink: 0;
  overflow: hidden;
  width: 27.8rem;
}
.product-list-card__thumb img {
  display: block;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.product-list-card__thumb--noimg {
  align-items: center;
  background: var(--primary-gradient-col);
  border-radius: 0.4rem;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.product-list-card__thumb--noimg img {
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
  width: 48.2625899281%;
}

.product-list-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.product-list-card__title {
  font-size: 1.5rem;
  line-height: 1.4;
  margin-top: 0;
  padding-left: 1.7rem;
}
.product-list-card__title::before {
  top: 0.8rem;
}

.product-list-card__desc {
  display: -webkit-box;
  font-size: 1.4rem;
  font-weight: var(--regular);
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-block: 1.6rem 2.4rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.product-list-card__desc:last-child {
  margin-bottom: 0;
}

/* ============================================================
  9. テストタイプ（cat-target.php）
============================================================ */
.taxonomy-target .main__bg-inner--has-image {
  display: flex;
  gap: 1.6rem 4rem;
}
.taxonomy-target .main__bg-inner--has-image .main__bg-image {
  width: 40%;
}
.taxonomy-target .main__bg-inner--has-image .main__bg-content {
  flex: 1;
}
.taxonomy-target .post-wrap + * {
  margin-top: 2.4rem;
}
.taxonomy-target .product-list-card__thumb {
  width: 20rem;
}

.test-types__list {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 3rem;
}

.test-type-card {
  background: var(--gray-bg);
  border-radius: 0.4rem;
  padding: 1.4rem 1.4rem 1.6rem;
}

.lower-sec-title__sub.test-type-card__title {
  font-size: 1.5rem;
  line-height: 1.4;
  padding-bottom: 1.1rem;
  padding-left: 1.6rem;
}
.lower-sec-title__sub.test-type-card__title::before {
  height: 0.6rem;
  width: 0.6rem;
}
.lower-sec-title__sub.test-type-card__title + * {
  margin-top: 1.2rem;
}

.test-type-card__desc {
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.6;
}
.test-type-card__desc + * {
  margin-top: 1.4rem;
}

.test-type-card__usage-title {
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  line-height: 1.4;
  padding-left: 1.5rem;
  position: relative;
}
.test-type-card__usage-title::before {
  aspect-ratio: 1/1;
  background-color: var(--gray-square);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 0.5rem;
}
.test-type-card__usage-title + * {
  margin-top: 0.8rem;
}

.test-type-card__usage-list {
  list-style: none;
}

.test-type-card__usage-item {
  font-size: 1.3rem;
  font-weight: var(--regular);
  line-height: 1.6;
  padding-left: 1.5rem;
  position: relative;
}
.test-type-card__usage-item::before {
  content: "・";
  left: 0;
  position: absolute;
}
.test-type-card__usage-item + * {
  margin-top: 0.4rem;
}

/* ============================================================
  10. 課題タイプ（cat-issue.php）
   ============================================================ */
.issue-intro--has-image {
  align-items: flex-start;
  display: flex;
  gap: 1.6rem 4rem;
}
.issue-intro__image {
  border-radius: 0.4rem;
  overflow: hidden;
  width: 40%;
}
.issue-intro__content {
  flex: 1;
}
.issue-intro + * {
  margin-top: 6.4rem;
}

.issue-about + * {
  margin-top: 6.4rem;
}

.issue-feature__item .lower-sec-title__small + p {
  margin-top: 0.6rem !important;
}
.issue-feature__item + * {
  margin-top: 3rem;
}
.issue-feature + * {
  margin-top: 6.4rem;
}

/* ============================================================
  11. 詳細ページ（single-product.php）
   ============================================================ */
.single-product .page-hero--single-page .page-hero__inner {
  padding-bottom: 2.4rem;
}

/* -------------------------------------------*/
.page-id-572 ul.wp-block-list li + * {
  margin-top: 0.4rem;
}

/* -------------------------------------------*/
.single__inner {
  background: var(--white);
  box-shadow: 0px 0px 8px 0px rgba(30, 60, 114, 0.16);
  margin-block: 5rem 12rem;
  padding: 4rem 6.4rem;
}

.single__inner.column__inner {
  padding: 3.5rem 6.4rem 6.4rem;
}

/* -------------------------------------------*/
/* 記事詳細共通レイアウト20260427（コラム・事例詳細・お知らせ共通）
-------------------------------------------*/
.single-page {
  padding-block: 6.4rem 8rem;
}

.single-page__inner {
  background: var(--white);
  border-radius: 0.6rem;
  box-shadow: 0px 0px 8px rgba(30, 60, 114, 0.16);
  margin-inline: auto;
  max-width: 100rem;
  padding: 6.4rem var(--padding-pc) 8rem;
}

/* 記事ヘッダー
-------------------------------------------*/
.single-head {
  border-bottom: 1px solid var(--gray);
  margin-bottom: 4rem;
  padding-bottom: 3.2rem;
}

.single-head__meta {
  align-items: center;
  display: flex;
  gap: 1.2rem;
  margin-bottom: 1.6rem;
}

.single-head__date {
  color: var(--gray-muted);
  font-family: var(--barlow-font-family);
  font-size: 1.4rem;
  letter-spacing: 0.03em;
}

.single-head__cat {
  border: 1px solid var(--primary);
  color: var(--primary);
  font-size: 1.1rem;
  font-weight: var(--semi-bold);
  padding: 0.2rem 1rem;
  white-space: nowrap;
}

.single-head__title {
  color: var(--base-color);
  font-size: 2.8rem;
  font-weight: var(--bold);
  line-height: 1.5;
}

/* お知らせ詳細
-------------------------------------------*/
.single-news .page-hero + .main__bg {
  padding-top: 5.6rem;
}
.single-news .page-hero__inner {
  padding-bottom: 2.4rem;
}
.single-news .lower-sec-title__small + * {
  margin-top: 0.8rem !important;
}
.single-news .main p:not([class]) + .lower-sec-title__small,
.single-news .wp-block-paragraph + .lower-sec-title__small {
  margin-top: 1.8rem;
}

.single-news__body {
  border-bottom: 1px solid var(--border);
  padding-bottom: 5.6rem;
}
.single-news__body h1:not([class]),
.single-news__body h1.wp-block-heading,
.single-news__body h2:not([class]),
.single-news__body h2.wp-block-heading,
.single-news__body h3:not([class]),
.single-news__body h3.wp-block-heading,
.single-news__body h4:not([class]),
.single-news__body h4.wp-block-heading,
.single-news__body h5:not([class]),
.single-news__body h5.wp-block-heading,
.single-news__body h6:not([class]),
.single-news__body h6.wp-block-heading {
  color: var(--base-color);
  font-weight: var(--semi-bold);
}
.single-news__body h1:not([class]),
.single-news__body h1.wp-block-heading {
  background: linear-gradient(144deg, #f0f7ff 10.88%, #d0e9ff 99%);
  border-left: 0.4rem solid var(--primary);
  color: var(--primary);
  font-size: 2.2rem;
  line-height: 1.4545454545;
  margin: 0 0 3rem;
  padding: 0.5rem 2rem 0.7rem;
}
.single-news__body h2:not([class]),
.single-news__body h2.wp-block-heading {
  border-bottom: 1px solid var(--border);
  font-size: 1.8rem;
  margin: 0 0 2rem;
  padding: 0 0 1.3rem 2rem;
  position: relative;
}
.single-news__body h2:not([class])::before,
.single-news__body h2.wp-block-heading::before {
  background: var(--primary);
  content: "";
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.7rem;
}
.single-news__body h2:not([class])::after,
.single-news__body h2.wp-block-heading::after {
  background: var(--primary);
  bottom: -1px;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}
.single-news__body h3:not([class]),
.single-news__body h3.wp-block-heading {
  font-size: 1.5rem;
  line-height: 1.4;
  margin: 0 0 1.6rem;
  padding-left: 1.8rem;
  position: relative;
}
.single-news__body h3:not([class])::before,
.single-news__body h3.wp-block-heading::before {
  aspect-ratio: 1/1;
  background-color: var(--gray-square);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.8rem;
  width: 0.6rem;
}
.single-news__body h4:not([class]),
.single-news__body h4.wp-block-heading {
  font-size: 1.5rem;
  line-height: 1.4;
  margin: 0 0 1.4rem;
  padding-left: 1.3rem;
  position: relative;
}
.single-news__body h4:not([class])::before,
.single-news__body h4.wp-block-heading::before {
  aspect-ratio: 1/1;
  background-color: var(--primary);
  border-radius: 50%;
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 0.9rem;
  width: 0.4rem;
}
.single-news__body h5:not([class]),
.single-news__body h5.wp-block-heading {
  font-size: 1.5rem;
  line-height: 1.4;
  margin: 0 0 1.2rem;
}
.single-news__body h6:not([class]),
.single-news__body h6.wp-block-heading {
  font-size: 1.4rem;
  line-height: 1.4285714286;
  margin: 0 0 1rem;
}
.single-news__body p:not([class]) + :is(h1:not([class]),
h1.wp-block-heading,
h2:not([class]),
h2.wp-block-heading,
h3:not([class]),
h3.wp-block-heading,
h4:not([class]),
h4.wp-block-heading,
h5:not([class]),
h5.wp-block-heading,
h6:not([class]),
h6.wp-block-heading),
.single-news__body .wp-block-paragraph + :is(h1:not([class]),
h1.wp-block-heading,
h2:not([class]),
h2.wp-block-heading,
h3:not([class]),
h3.wp-block-heading,
h4:not([class]),
h4.wp-block-heading,
h5:not([class]),
h5.wp-block-heading,
h6:not([class]),
h6.wp-block-heading) {
  margin-top: 0;
}
.single-news__body .main p:not([class]) a,
.single-news__body .wp-block-paragraph a {
  color: var(--primary);
}
.single-news__body + * {
  margin-top: 4rem;
}

.single-news__btn .btn__link {
  margin-inline: auto;
}

/* コラム詳細：サムネイル
-------------------------------------------*/
.single-thumb {
  aspect-ratio: 16/9;
  background: var(--gray);
  margin-bottom: 4rem;
  overflow: hidden;
}

.single-thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.single-thumb--noimg {
  align-items: center;
  display: flex;
  justify-content: center;
}

.single-thumb--noimg::after {
  color: var(--gray-muted);
  content: "No Image";
  font-size: 1.3rem;
}

/* 本文（EMiC固有スタイル）
-------------------------------------------*/
:where(.single-body) {
  color: var(--base-color);
  font-size: 1.5rem;
  line-height: 1.9;
}

.single-body h2 {
  background: linear-gradient(135deg, #f0f7ff 0%, #d0e9ff 100%);
  border-left: 0.4rem solid var(--primary);
  color: var(--primary-dark);
  font-size: 2rem;
  font-weight: var(--bold);
  line-height: 1.5;
  margin: 4.8rem 0 2rem;
  padding: 1.6rem 2rem;
}

.single-body h3 {
  border-bottom: 1px solid var(--border);
  color: var(--base-color);
  font-size: 1.8rem;
  font-weight: var(--semi-bold);
  margin-top: 4.4rem;
  padding-bottom: 1.3rem;
  padding-left: 2rem;
  position: relative;
}
.single-body h3::before {
  aspect-ratio: 1/1;
  background: var(--primary);
  content: "";
  height: 0.7rem;
  left: 0;
  position: absolute;
  top: 1rem;
  width: 0.7rem;
}
.single-body h3::after {
  background: var(--primary);
  bottom: 0;
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: 8rem;
}

.single-body :where(h4) {
  color: var(--base-color);
  font-size: 1.5rem;
  font-weight: var(--bold);
  line-height: 1.6;
  margin: 2.8rem 0 1rem;
}

.single-body :where(p) {
  font-weight: var(--regular);
  line-height: 1.8;
  margin-bottom: 2.5rem;
}

.single-body :where(a) {
  color: var(--primary);
  text-decoration: underline;
}

.single-body :where(img) {
  display: block;
  height: auto;
  margin: 2.4rem 0;
  max-width: 100%;
}

.single-body :where(ul) {
  list-style: disc;
  margin: 1.6rem 0 2rem 2rem;
}

.single-body :where(ol) {
  list-style: decimal;
  margin: 1.6rem 0 2rem 2rem;
}

.single-body :where(li) {
  line-height: 1.8;
  margin-bottom: 0.6rem;
}

.single-body .single-btn {
  align-items: center;
  background: var(--primary);
  border-radius: 0.4rem;
  box-shadow: 0 0 6px rgba(30, 60, 114, 0.3);
  color: var(--white);
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  gap: 0.8rem;
  justify-content: space-between;
  line-height: 1.4285714286;
  margin-top: 2.4rem;
  padding: 1.6rem 1.4rem 1.2rem;
  text-decoration: none;
  transition: opacity 0.2s;
  width: 19.6rem;
}
.single-body .single-btn::after {
  background-image: url(../images/common/ico-right-blue2.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  content: "";
  display: block;
  display: block;
  flex-shrink: 0;
  height: 1.6rem;
  width: 1.6rem;
}

/* 前後ナビ / 一覧へ戻る
-------------------------------------------*/
.single-back {
  display: flex;
  justify-content: center;
  margin-top: 5.6rem;
}

.single-back__link {
  align-items: center;
  border: 1px solid var(--primary);
  color: var(--primary);
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: var(--semi-bold);
  gap: 0.8rem;
  padding: 1.2rem 2.8rem;
  transition: background 0.2s, color 0.2s;
}

.single-back__link::before {
  border-left: 0.15rem solid currentColor;
  border-top: 0.15rem solid currentColor;
  content: "";
  display: block;
  flex-shrink: 0;
  height: 0.6rem;
  transform: rotate(-45deg);
  width: 0.6rem;
}

/* ========================================
   コラム 詳細（single-column
======================================== */

.column__single-thumb {
  margin-inline: auto;
  margin-top: 4rem;
  max-width: min(88%, 78.8rem);
  width: 100%;
}
.column__single-thumb img {
  display: block;
  height: auto;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.column__single-body {
  margin-inline: auto;
  max-width: min(88%, 78.8rem);
}
.column__single-body > :first-child {
  margin-top: 3.4rem;
}

.page-sec-item {
  margin-bottom: 2.4rem;
}
.page-sec-item h3 {
  border-left: none;
  margin-bottom: 2rem;
}
.page-sec-item p {
  color: var(--base-color);
  font-size: 1.5rem;
}

.single__author {
  align-items: flex-start;
  background: var(--gray-bg);
  border-radius: 0.6rem;
  display: flex;
  gap: 2.4rem;
  margin-block: 6.4rem;
  padding: 2.4rem 3.6rem 2.6rem 2.4rem;
  /* @include mq(lg, max) {
    padding-inline: rem(24);
  } */
}

.single__author-thumb {
  aspect-ratio: 160/118;
  background: var(--gray);
  flex-shrink: 0;
  overflow: hidden;
  width: 16rem;
}
.single__author-thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.single__author-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 1.1rem;
  width: 100%;
}

.single__author-name {
  color: var(--base-color);
  font-size: 1.5rem;
  font-weight: var(--semi-bold);
  line-height: 1.4666666667;
  margin: 0;
  padding-left: 1.7rem;
  position: relative;
}
.single__author-name::before {
  background: var(--gray-square);
  content: "";
  height: 0.6rem;
  left: 0;
  position: absolute;
  top: 0.7rem;
  width: 0.6rem;
}

.single__author-text {
  color: var(--base-color);
  font-size: 1.4rem;
  line-height: 1.6;
}

/* -------------------------------------------*/
/* ============================================================
  guide子ページ
   ============================================================ */
.parent-pageid-1542 .wp-block-flexible-table-block-table > table tr > th {
  font-size: 1.6rem;
}
.parent-pageid-1542 .wp-block-flexible-table-block-table > table tr > td {
  font-size: 1.4rem;
}
.parent-pageid-1542 .wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-vertical,
.parent-pageid-1542 .wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-horizontal {
  font-size: 1.8rem;
}
.parent-pageid-1542 .page-anchor-links {
  max-width: 72.4rem;
}
.parent-pageid-1542 .page-anchor-links__link.btn__link {
  min-height: 56px;
  padding-block: 0.8rem;
}
.parent-pageid-1542 .circle-list__text {
  font-size: 1.6rem;
}
.parent-pageid-1542 .lower-sec-title__small + * {
  margin-top: 0.8rem !important;
}
.parent-pageid-1542 .main p:not([class]) + .lower-sec-title__small,
.parent-pageid-1542 .wp-block-paragraph + .lower-sec-title__small {
  margin-top: 1.8rem;
}

/* ============================================================
  guide子ページ - basics
   ============================================================ */
.page-id-1557 figure.is-style-scroll img {
  min-width: 561px;
}

/* -------------------------------------------*/
/* ===================================================
header
=================================================== */
/* top-page header
-------------------------------------------*/
body.home .header {
  height: var(--header-height-top);
}
body.home .header__brand img.normal {
  opacity: 0;
  visibility: hidden;
}
body.home .header__brand img.white {
  opacity: 1;
  visibility: visible;
}
body.home .header .nav__link, body.home .header__search-btn, body.home .header__lang-link, body.home .header__lang-sep {
  color: var(--white);
  transition: all 0.3s;
}
body.home .header .nav__item--external .nav__link::after {
  background-color: var(--white);
}
body.home .header .nav__item--has-mega[aria-expanded=true] .nav__link {
  color: var(--accent) !important;
}
body.home .header .nav__item--has-mega[aria-expanded=true] .nav__link .nav__arrow {
  background-color: var(--accent);
}
body.home .header .nav__arrow {
  background-color: var(--white);
}
body.home .header.scrolled {
  height: var(--header-height);
}
body.home .header.scrolled .nav__item--has-mega .nav__link :hover .nav__arrow {
  background-color: var(--primary);
}
body.home .header.scrolled .nav__item--external .nav__link::after {
  background-color: var(--accent);
}
body.home .header.scrolled .nav__link {
  color: var(--base-color);
}
body.home .header.scrolled .nav__arrow {
  background-color: var(--accent);
}

body.home.is-drawer-open .header__brand img.normal {
  opacity: 1;
  visibility: visible;
}
body.home.is-drawer-open .header__brand img.white {
  opacity: 0;
  visibility: hidden;
}
body.home.is-drawer-open .header__search-btn {
  color: var(--accent);
}

/* ===================================================
common
=================================================== */
.top__head-title {
  padding-bottom: 3.2rem;
  position: relative;
}
.top__head-title::after {
  background: linear-gradient(to right, var(--primary) 0%, var(--primary) 8rem, var(--border) 8rem, var(--border) 100%);
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  transition: all 0.2s;
  width: 100%;
}

/* ===================================================
FV
=================================================== */
.top-fv {
  background: linear-gradient(160deg, #0a1432 0%, #1e3c72 100%);
  height: 100vh;
  min-height: 56rem;
  overflow: hidden;
  position: relative;
}

.top-fv__bg {
  inset: 0;
  position: absolute;
  z-index: 0;
}
.top-fv__bg video {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}
.top-fv__bg video.--sp {
  display: none;
}

.top-fv__inner {
  align-items: flex-end;
  display: flex;
  height: 100%;
  position: relative;
  z-index: 1;
}

.top-fv__content {
  margin-inline: auto;
  padding-bottom: 5.6rem;
  width: 86.1111111111%;
}

.top-fv__sp {
  display: contents;
}

.top-fv__catch {
  color: var(--accent);
  font-size: 5.2rem;
  font-weight: var(--semi-bold);
  letter-spacing: 0.06em;
  line-height: 1.55;
  width: 50.5rem;
}
.top-fv__catch img {
  height: auto;
  width: 100%;
}

.top-fv__catch-en {
  color: var(--border);
  display: block;
  font-family: var(--barlow-font-family);
  font-size: 2.2rem;
  line-height: 1.2272727273;
  margin-top: 1.6rem;
}

.top-fv__btns {
  display: grid;
  gap: 1.8rem;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 4rem;
  max-width: 56.8rem;
}

/* 業界リスト（右下）
-------------------------------------------*/
.top-fv__industries {
  align-items: flex-end;
  bottom: 6.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  list-style: none;
  position: absolute;
  right: 9.7rem;
  text-transform: uppercase;
  width: 10.9rem;
  z-index: 1;
}

.top-fv__industry-link {
  align-items: center;
  color: #65b2ff;
  display: flex;
  font-family: var(--barlow-font-family);
  font-size: 1.6rem;
  font-weight: var(--regular);
  gap: 1.4rem;
  justify-content: flex-end;
  letter-spacing: 0;
  line-height: 1.2;
  min-height: 2.3rem;
  text-align: right;
  transition: color 0.2s, font-size 0.2s;
}

.top-fv__industry-link.is-active {
  color: #65b2ff;
  font-size: 1.9rem;
}

.top-fv__industry-name {
  white-space: nowrap;
}

.top-fv__industry-dot {
  background: transparent;
  border: 0.1rem solid #65b2ff;
  border-radius: 50%;
  display: block;
  flex-shrink: 0;
  height: 1rem;
  position: relative;
  transition: border-color 0.2s, background 0.2s;
  width: 1rem;
}

.top-fv__industry-dot::after {
  border: 0.1rem solid #65b2ff;
  border-radius: 50%;
  content: "";
  height: 2rem;
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s;
  width: 2rem;
}

.top-fv__industry-link.is-active .top-fv__industry-dot {
  background: #65b2ff;
  border-color: #65b2ff;
  border-width: 0.1rem;
  height: 1rem;
  width: 1rem;
}

.top-fv__industry-link.is-active .top-fv__industry-dot::after {
  opacity: 1;
}
/* ===================================================
ABOUT
=================================================== */
.top-about {
  overflow: hidden;
}

.top-about__grid {
  align-items: center;
  display: flex;
  gap: 9.2rem;
}

.top-about__img {
  aspect-ratio: 698/688;
  flex: 1;
  margin-left: calc(50% - 50vw);
  overflow: hidden;
}

.top-about__img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.top-about__content {
  width: 48rem;
}

.top-about__heading {
  font-size: 2.6rem;
  font-weight: var(--normal);
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin-top: 4rem;
}

.top-about__text {
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin-top: 2.3rem;
}

.top-about__btn {
  margin-top: 3.2rem;
}

/* ===================================================
BUSINESS
=================================================== */
.top-business {
  background-color: var(--white);
  padding: 10rem 0;
}

.top-business__head.top__head-title {
  align-items: flex-end;
  display: flex;
  gap: 6.4rem;
  justify-content: space-between;
  margin-bottom: 6.4rem;
}

.top-business__lead {
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  max-width: 73.1rem;
  padding-bottom: 1.4rem;
}

.top-business__body {
  display: grid;
  gap: 6.4rem;
  grid-template-columns: 1fr 50.8rem;
}

/* カード（縦積み）
-------------------------------------------*/
.top-business__cards {
  display: flex;
  flex-direction: column;
  max-width: 48rem;
}

.top-business__card {
  border-bottom: 1px solid var(--border);
  padding-block: 4rem 3.8rem;
  transition: all 0.2s;
}
.top-business__card:first-child {
  padding-top: 0;
}

.top-business__card-header {
  align-items: baseline;
  display: flex;
  gap: 1.4rem;
}

.top-business__card-num {
  color: var(--primary);
  flex-shrink: 0;
  font-family: var(--barlow-font-family);
  font-size: 2.4rem;
  line-height: 1;
}

.top-business__card-title {
  font-size: 2.4rem;
  font-weight: var(--normal);
  line-height: 1.4;
}

.top-business__card-text {
  font-size: 1.5rem;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin-top: 1.4rem;
}

.top-business__card-btn {
  margin-top: 1.9rem;
}
.top-business__card-btn .btn__link {
  margin-left: auto;
}

.top-business__card-img {
  display: none;
}
.top-business__card-img img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

/* 右カラム：画像
-------------------------------------------*/

.top-business__img {
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.3);
  height: 100%;
  overflow: hidden;
  position: relative;
}

.top-business__img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
  opacity: 0;
  transition: all 0.2s;
}
.top-business__img img:not(:first-child) {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.top-business__img img.is-active {
  opacity: 1;
}

.top-business__img img.is-fade {
  opacity: 0;
}

/* ===================================================
CASE
=================================================== */
.top-case {
  background-color: var(--white);
}
.top-case__body {
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  padding-block: 5.6rem;
  padding-left: 8.8rem;
  position: relative;
}
.top-case__body > *:not(.top-case__bg) {
  position: relative;
  z-index: 2;
}
.top-case__bg {
  border-radius: 0.6rem 0 0 0.6rem;
  bottom: 0;
  filter: drop-shadow(0px 0px 8px rgba(30, 60, 114, 0.3));
  left: 50%;
  overflow: hidden;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100%;
  z-index: 0;
}
.top-case__bg::after {
  background: linear-gradient(#006ab7 0%, #2a5298 62.07%, #1e3c72 100%);
  bottom: 0;
  content: "";
  display: block;
  left: 0;
  mix-blend-mode: multiply;
  position: absolute;
  right: 0;
  top: 0;
}
.top-case__bg img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.top-case__head {
  margin-bottom: 3.4rem;
  padding-right: 10rem;
}

.top-case__head-content {
  align-items: flex-end;
  display: flex;
  gap: 5.4rem;
  justify-content: space-between;
}
.top-case__head-content::after {
  background: linear-gradient(to right, var(--accent) 0%, var(--accent) 8rem, var(--white) 8rem, var(--white) 100%);
  content: "";
  display: block;
  flex: 1;
  height: 1px;
  margin-bottom: 4rem;
  margin-left: 0.7rem;
  order: 2;
}
.top-case__head-content .sec-title {
  order: 1;
}

.top-case__desc {
  color: var(--white);
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-top: 3.1rem;
}

.top-case__btn.btn + * {
  margin-top: 0 !important;
}

/* タイトル横の矢印ボタン等
-------------------------------------------*/
.top-case-navs {
  display: contents;
}

.top-case-arrows {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 2rem;
  order: 3;
  padding-bottom: 1rem;
}

.top-case__arrow {
  background: var(--white);
  border: 1px solid var(--white);
  border-radius: 50%;
  cursor: pointer;
  height: 5.8rem;
  position: relative;
  transition: all 0.2s;
  width: 5.8rem;
}

.top-case__arrow::after {
  aspect-ratio: 9/15;
  background-color: var(--primary);
  content: "";
  left: 50%;
  -webkit-mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  mask: url(../images/common/ico-arrow-right-blue2.svg) 50%/contain no-repeat;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.2s;
  width: 1rem;
}

.top-case__arrow--prev::after {
  transform: translate(-50%, -50%) scale(-1, 1);
}

/* slick
-------------------------------------------*/
.top-case__slider {
  overflow: hidden;
}
.top-case__slider-wrap {
  max-width: 91.4551607445%;
}
.top-case__slider .slick-list {
  margin-left: -1.2rem;
  overflow: initial;
}
.top-case__slider .slick-track {
  display: flex;
}

.top-case__slide.slick-slide {
  height: auto;
  padding-inline: 1.2rem;
}

.top-case__slide-link {
  background-color: var(--second-bg);
  border-radius: 0.4rem;
  display: block;
  height: 100%;
  padding: 1.6rem 1.6rem 2rem;
  transition: all 0.2s;
}

.top-case__slide-img {
  aspect-ratio: 308/229;
  border-radius: 0.2rem;
  margin: 0;
  overflow: hidden;
}
.top-case__slide-img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}
.top-case__slide-img--noimg {
  align-items: center;
  background: var(--primary-gradient-col);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.top-case__slide-img--noimg img {
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
  width: 45.3074433657%;
}

.top-case__slide-title {
  background: linear-gradient(to right, var(--primary) 0%, var(--primary) 5.6rem, var(--border) 5.6rem, var(--border) 100%);
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: 100% 1px;
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 1.4;
  margin-bottom: 1.3rem;
  margin-top: 1.4rem;
  padding-bottom: 1.2rem;
  position: relative;
}
.top-case__slide-title-inner {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.top-case__slide-excerpt {
  display: -webkit-box;
  font-size: 1.4rem;
  line-height: 1.7142857143;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  margin-bottom: 1.1rem;
  overflow: hidden;
}

.top-case__slide-category {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
}
.top-case__slide-category-item {
  background-color: var(--white);
  border: 1px solid var(--primary);
  border-radius: 0.3rem;
  color: var(--primary);
  font-size: 1.2rem;
  line-height: 1.9166666667;
  padding-inline: 0.8rem;
}

.top-case__btn {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}
.top-case__btn .btn__link {
  width: 19.6rem;
}

/* slick デフォルト矢印リセット（appendArrows 使用のため）
-------------------------------------------*/
.top-case-arrows .slick-prev,
.top-case-arrows .slick-next {
  position: static;
  transform: none;
}

.top-case-arrows .slick-prev::before,
.top-case-arrows .slick-next::before {
  display: none;
}

/* ===================================================
GUIDE
=================================================== */
.top-guide {
  padding-block: 10rem 8.4rem;
}
.top-guide .sec-title__en {
  padding-left: 1rem;
}

.top-guide__grid {
  align-items: flex-start;
  display: flex;
  gap: 6.4rem;
  margin-right: -5.6rem;
}

.top-guide__img {
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(30, 60, 114, 0.16);
  margin-top: 2.6rem;
  overflow: hidden;
  width: 44.8096885813%;
}

.top-guide__img img {
  display: block;
  height: auto;
  width: 100%;
}

.top-guide__content {
  display: flex;
  flex: 1;
  flex-direction: column;
}

.top-guide__text {
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin-top: 4rem;
}
.top-guide__text + * {
  margin-top: 2.4rem;
}

/* ボタン2つ横並び
-------------------------------------------*/
.top-guide__btns {
  display: grid;
  gap: 1.8rem;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 2.1rem;
}
.top-guide__btn-item + * {
  margin-top: 0;
}

/* ===================================================
NEWS + COLUMN
=================================================== */
.top-info {
  background-color: var(--white);
  padding-block: 10rem 9.6rem;
}

.top-info__grid {
  display: flex;
  gap: 6.4rem 9.2rem;
}

.top-info__col {
  flex: 1;
}
.top-info__col:first-child {
  flex: none;
  width: 43.6363636364%;
}

/* タイトル行（sec-title + 一覧ボタン）
-------------------------------------------*/
.top-info__head {
  align-items: flex-end;
  display: flex;
  gap: 1.6rem;
  justify-content: space-between;
  margin-bottom: 0rem;
}

.top-info__list-btn {
  flex-shrink: 0;
  padding-bottom: 0.8rem;
}

/* NEWS リスト
-------------------------------------------*/
.top-info__list {
  list-style: none;
}

.top-info__item {
  border-bottom: 1px solid var(--gray);
}

.top-info__item-link {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1.3rem 1.9rem;
  padding-block: 4.3rem;
  transition: all 0.2s;
}

.top-info__item-date {
  color: var(--border);
  display: block;
  flex-shrink: 0;
  font-family: var(--barlow-font-family);
  font-size: 2rem;
  line-height: 1.2;
  white-space: nowrap;
}

.top-info__item-cat {
  background: var(--white);
  border: 1px solid var(--primary);
  border-radius: 0.3rem;
  color: var(--primary);
  flex-shrink: 0;
  font-size: 1.2rem;
  line-height: 1.5;
  padding: 0.3rem 0.8rem;
  white-space: nowrap;
}

.top-info__item-title {
  display: -webkit-box;
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.5;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
}

/* COLUMN リスト（サムネイル付き）
-------------------------------------------*/
.top-info__list--col {
  border-top: none;
  display: flex;
  flex-direction: column;
}

.top-info__item-link--col {
  align-items: flex-start;
  display: flex;
  gap: 2.1rem;
  padding-block: 3.6rem 3.2rem;
  transition: opacity 0.2s;
}

.top-info__item-thumb {
  aspect-ratio: 4/3;
  background: var(--gray);
  border-radius: 0.4rem;
  flex-shrink: 0;
  margin: 0;
  overflow: hidden;
  width: 10.7rem;
}
.top-info__item-thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}
.top-info__item-thumb--noimg {
  align-items: center;
  background: var(--primary-gradient);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.top-info__item-thumb--noimg img {
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
  width: 6.3rem;
}

.top-info__item-body {
  flex: 1;
  min-width: 0;
}

.top-info__item-body .top-info__item-title {
  color: var(--primary);
  font-size: 1.6rem;
  font-weight: var(--bold);
  line-height: 1.5;
}

.top-info__item-excerpt {
  color: var(--black);
  display: -webkit-box;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1.7142857143;
  margin-top: 0.9rem;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ===================================================
COMPANY + RECRUIT CARDS
=================================================== */
.top-cards {
  padding-top: 10.7rem;
  position: relative;
  z-index: 1;
}
.top-cards::after {
  background: var(--primary-gradient);
  content: "";
  height: calc(100% - 8.3rem);
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}
.top-cards__scroll {
  position: absolute;
  top: -3.4rem;
  width: 100%;
}
.top-cards__scroll-images {
  margin-right: calc(50% - 50vw);
  overflow: hidden;
}
.top-cards__scroll-body {
  display: flex;
  min-width: -moz-max-content;
  min-width: max-content;
  width: -moz-max-content;
  width: max-content;
}
.top-cards__scroll-list {
  display: flex;
}
.top-cards__scroll-item {
  width: 151.4rem;
}
.top-cards__scroll-item img {
  height: auto;
  width: 100%;
}

.top-cards__inner {
  display: grid;
  gap: 1.4rem 2rem;
  grid-template-columns: repeat(2, 1fr);
  margin-inline: auto;
  max-width: 144rem;
  padding-inline: 2rem;
}
.top-card {
  border-radius: 0.6rem;
  box-shadow: 0px 0px 0.8rem rgba(0, 0, 0, 0.3);
  overflow: hidden;
}
.top-card:first-child .top-card__link .top-card__bg {
  opacity: 0.2;
}
.top-card__link {
  background: var(--gray-bg);
  border-radius: 0.6rem;
  display: block;
  height: 100%;
  overflow: hidden;
  padding-block: 6.4rem;
  position: relative;
  will-change: auto;
}
.top-card__link::after {
  background: var(--primary);
  bottom: 0;
  content: "";
  left: 0;
  mix-blend-mode: multiply;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
}
.top-card__inner {
  margin-inline: auto;
  max-width: 48rem;
  position: relative;
  z-index: 5;
}
.top-card__bg {
  bottom: 0;
  left: 0;
  opacity: 0.15;
  position: absolute;
  right: 0;
  top: 0;
  transition: all 0.2s;
}
.top-card__bg img {
  height: 100%;
  width: 100%;
}

.top-card__head {
  align-items: flex-end;
  display: flex;
  gap: 1.6rem;
  justify-content: space-between;
}
.top-card__head .btn-list {
  padding-bottom: 1rem;
}
.top-card__head .btn-list__link {
  pointer-events: none;
}

.top-card__img {
  aspect-ratio: 480/269;
  border-radius: 0.4rem;
  display: block;
  margin-top: 4.6rem;
  overflow: hidden;
  width: 100%;
}

.top-card__img img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  display: block;
  object-fit: cover;
}

.top-card__body {
  margin-top: 4rem;
}

.top-card__text {
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  line-height: 1.8;
}

/* ===================================================
CONTACT
=================================================== */
.top-contact {
  padding-top: 30rem;
  position: relative;
}
.top-contact__bg {
  height: 66rem;
  overflow: hidden;
  position: absolute;
  top: -8.3rem;
  width: 100%;
  z-index: -1;
}
.top-contact__bg img {
  -o-object-fit: cover;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.top-contact__body {
  position: relative;
  z-index: 2;
}
.top-contact .cta {
  background: none;
}

/* -------------------------------------------*/
/* -------------------------------------------*/
/* 表示制御
-------------------------------------------*/
.u-db {
  display: block;
}

.u-dn {
  display: none;
}

/* レスポンシブ表示切替
-------------------------------------------*/

.u-pc-inline {
  display: inline;
}

.u-sp-inline {
  display: none;
}

/* カラーフィルター
-------------------------------------------*/
.u-mask--black {
  filter: brightness(0);
}

.u-mask--white {
  filter: brightness(0) invert(1);
}

/* カラー
-------------------------------------------*/
.u-color-white {
  color: var(--white);
}

/* コンテンツ幅
-------------------------------------------*/
.u-inner {
  margin-inline: auto;
  max-width: calc(var(--content-width) + var(--padding-pc) * 2);
  padding-inline: var(--padding-pc);
}
.u-inner--m {
  max-width: calc(var(--content-width-m) + var(--padding-pc--m) * 2);
  padding-inline: var(--padding-pc--m);
}
.u-inner--l {
  max-width: calc(var(--content-width-l) + var(--padding-pc--m) * 2);
  padding-inline: var(--padding-pc--m);
}

/* z-index
-------------------------------------------*/
.u-z-1 {
  z-index: -1;
}

.u-z1 {
  z-index: 1;
}

.u-z2 {
  z-index: 2;
}

.u-z3 {
  z-index: 3;
}

.u-z10 {
  z-index: 10;
}

.u-z50 {
  z-index: 50;
}

.u-z100 {
  z-index: 100;
}

/* スペーシング
-------------------------------------------*/

@media (min-width: 769px){
  .wp-block-columns.is-style-gap-none-sp {
    gap: 2rem !important;
  }
}

@media screen and (max-width: 1980px){
  html {
    font-size: calc(0.3704vw + 4.667px);
  }
}

@media screen and (max-width: 1440px){
  html {
    font-size: 62.5%;
  }
  .header__inner {
    max-width: 128rem;
  }
}

@media screen and (max-width: 1280px){
  html {
    font-size: 52.5%;
  }
  .footer__recruit-bottom {
    width: 15%;
  }
  .footer__bottom-inner.u-inner {
    gap: 3rem;
    padding-left: 2rem;
  }
  .header__inner {
    gap: 3.2rem;
    max-width: 100%;
  }
  .header__lang {
    margin-left: 0;
  }
  .nav__list {
    gap: 1.4rem;
  }
}

@media not all and (max-width: 1023px){
  .header__actions {
    align-items: center;
    display: flex;
    flex-shrink: 0;
    gap: 2rem;
  }
  .header__sp-actions {
    display: none;
  }
  .header__hamburger {
    display: none;
  }
  .nav {
    align-items: center;
    display: flex;
    margin-left: auto;
  }
  .nav-drawer {
    display: none;
  }
}

@media screen and (max-width: 1023px){
  :root {
    --header-height-top: 7rem;
    --header-height: 7rem;
  }
  .cta__grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .footer__nav {
    gap: 0rem 4rem;
  }
  .footer__single-links {
    gap: 0rem 4rem;
  }
  .footer__bottom-inner.u-inner {
    gap: 2rem;
    padding-left: 0;
  }
  .footer__bottom-nav {
    margin-left: 0;
  }
  .header {
    padding-right: 0;
  }
  .header__inner {
    justify-content: space-between;
  }
  .header__search-btn[aria-expanded=true] {
    background: url(../images/common/ico-close.svg) 50%/21px no-repeat;
  }
  .header__search-btn[aria-expanded=true] .header__search-icon {
    opacity: 0;
  }
  .service-sec__item {
    gap: 4rem;
    grid-template-columns: 31rem 1fr;
  }
  .testhor-fv__inner {
    grid-template-columns: 1fr 34rem;
  }
  .testhor-fv__title-text {
    font-size: 3.2rem;
  }
  .testhor-sec__inner {
    grid-template-columns: 1fr 32.6rem;
  }
  .top-fv__content {
    padding: 0 4rem 6.4rem;
  }
  .top-fv__catch {
    font-size: 4rem;
  }
  .top-fv__industries {
    bottom: auto;
    right: 2rem;
    top: 8.5rem;
  }
  .top-about__grid {
    gap: 3.9rem 3.2rem;
  }
  .top-about__content {
    width: 42rem;
  }
}

@media not all and (max-width: 927px){
  .wrapper {
    align-items: center;
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0 auto;
    min-height: 100vh;
    width: 100%;
  }
  .u-tab {
    display: none;
  }
}

@media screen and (max-width: 927px){
  :root {
    --header-height-top: 6.5rem;
    --header-height: 6.5rem;
    --padding-pc: 2rem;
    --padding-pc--m: 2rem;
  }
  html {
    font-size: 62.5%;
  }
  :where(input[type=text],
  input[type=date],
  input[type=password],
  input[type=email],
  input[type=time],
  input[type=tel],
  input[type=number]) {
    padding: 10px;
  }
  :where(textarea) {
    height: 170px;
  }
  :where(input[type=radio] + .wpcf7-list-item-label) {
    margin: 0;
    padding: 10px 5px 12px 23px;
  }
  :where(input[type=radio] + .wpcf7-list-item-label)::before {
    height: 15px;
    width: 15px;
  }
  :where(input[type=radio] + .wpcf7-list-item-label)::after {
    height: 9px;
    left: 3px;
    width: 9px;
  }
  .access-card__body {
    flex-direction: column;
  }
  .access-card__content {
    flex-direction: column;
  }
  .access-card__content .access-card__map {
    margin-top: 0;
    width: 100%;
  }
  .access-card__map {
    margin-top: 2rem;
    order: 2;
    width: 100%;
  }
  .access-card__info {
    display: contents;
  }
  .access-card__contents {
    order: 3;
    width: 100%;
  }
  .access-card__title.lower-sec-title__sub {
    order: 1;
    width: 100%;
  }
  .access-card__title.lower-sec-title__sub + * {
    margin-top: 2.4rem;
  }
  .access-card--bg .access-card__inner {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
  }
  .access-card--bg .access-card__content {
    display: contents;
  }
  .access-card--bg .access-card__map {
    order: 1;
    width: 100%;
  }
  .access-card--bg .access-card__title.lower-sec-title__sub {
    order: 2;
  }
  .business-card {
    align-items: flex-start;
    flex-direction: column;
    padding-inline: 2rem;
  }
  .business-card__image {
    width: 100%;
  }
  .card-item {
    max-width: 100%;
  }
  .card-item--row {
    flex-direction: column;
  }
  .card-item--row .card-item__image {
    width: 100% !important;
  }
  .card-wrap--col3 {
    grid-template-columns: repeat(1, 1fr);
  }
  .circle-list__item {
    width: calc(33.3333333333% - 1rem);
  }
  .company-fv {
    aspect-ratio: auto;
    min-height: 36rem;
  }
  .company-fv::before {
    background: linear-gradient(90deg, #FCFCFC 34%, rgba(252, 252, 252, 0) 101.38%);
  }
  .company-fv__body {
    gap: 2.4rem;
    width: 100%;
  }
  .company-fv__text {
    width: 80%;
  }
  .contact-body__inner {
    padding-inline: 2rem;
  }
  .contact-phone__boxes {
    grid-template-columns: repeat(1, 1fr);
  }
  .cta-cards__grid {
    grid-template-columns: repeat(1, 1fr);
  }
  .cta__body {
    padding-inline: 4rem;
  }
  .download-list {
    grid-template-columns: repeat(1, 1fr);
  }
  .feature-list {
    --title-width: 100% !important;
  }
  .feature-list__item {
    flex-direction: column;
  }
  .feature-list__title {
    border-bottom: 1px solid var(--border);
    border-right: none;
    justify-content: center;
    text-align: center;
    width: 100% !important;
  }
  .flow-step__header {
    padding-right: 2.4rem;
  }
  .flow-step__body {
    padding-left: 2.4rem;
  }
  .footer__inner {
    padding: 4.8rem 4rem 3.2rem;
  }
  .footer__nav {
    gap: 3.2rem 2.4rem;
    grid-template-columns: repeat(2, 1fr);
  }
  .footer__single-links {
    gap: 3.2rem 2.4rem;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 3.2rem;
  }
  .footer__recruit-bottom {
    margin-top: 0.4rem;
    width: 17rem;
  }
  .footer__bottom-inner.u-inner {
    align-items: center;
    flex-direction: column;
    gap: 1.8rem;
    padding: 3rem 0 3.6rem;
  }
  .footer__bottom-nav {
    gap: 0.6rem 1.6rem;
    margin-top: 0.6rem;
  }
  .footer__copy {
    margin-left: 0;
    margin-top: 0.6rem;
  }
  .header__search-btn {
    height: 7rem;
    width: 7rem;
  }
  .header__search-icon {
    height: 2.5rem;
    width: 2.5rem;
  }
  .industries__inner--col3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .industries__inner--col4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .industries__inner--col5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-anchor-links__list--col3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-anchor-links__list--col4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-anchor-links__list--col5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-anchor-links__list--col6 {
    grid-template-columns: repeat(2, 1fr);
  }
  .page-bread {
    margin-inline: 0;
    width: 100%;
  }
  .page-bread__inner.u-inner--m {
    padding-inline: 0;
  }
  .page-bread__list {
    width: -moz-max-content;
    width: max-content;
  }
  .page-hero {
    margin-inline: 0;
    width: 100%;
  }
  .page-hero__inner.u-inner--m {
    padding-inline: 0;
  }
  .page-introduction {
    flex-direction: column;
  }
  .page-introduction__box {
    display: contents;
  }
  .page-introduction__title {
    order: 1;
  }
  .page-introduction__contents {
    order: 3;
  }
  .page-introduction__image {
    margin-top: 2.4rem;
    order: 2;
    width: 100%;
  }
  .page-links__grid {
    grid-template-columns: repeat(1, 1fr);
    margin-inline: auto;
    width: 80%;
  }
  .page-links__grid--col2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-links__grid--col2 .page-link-card__arrow {
    height: 3.1rem;
    width: 3.1rem;
  }
  .page-links__grid--col2 .page-link-card__arrow::after {
    width: 0.6rem;
  }
  .point-callout {
    gap: 2.4rem;
    margin-top: 2.4rem;
  }
  .point-callout + * {
    margin-top: 2.4rem;
  }
  .point-callout__box {
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.8rem 3.8rem 2.2rem;
  }
  .point-callout__icon {
    height: 2.2rem;
    width: 2.2rem;
  }
  .point-callout__text {
    font-size: 1.6rem;
    line-height: 1.1875;
  }
  .post-wrap--col3 {
    grid-template-columns: repeat(1, 1fr);
  }
  .representative-companies__inner--col3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .representative-companies__inner--col4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .representative-companies__inner--col5 {
    grid-template-columns: repeat(2, 1fr);
  }
  .service-sec__item {
    gap: 3.2rem;
    grid-template-columns: 26rem 1fr;
    padding-left: 3.2rem;
  }
  .testhor-fv__inner {
    grid-template-columns: 1fr 27.8rem;
  }
  .testhor-fv__image {
    padding-right: 0;
    padding-top: 4rem;
  }
  .testhor-sec__inner {
    grid-template-columns: 1fr 27.8rem;
  }
  .testhor-sec__image {
    padding-bottom: 1rem;
    padding-right: 0;
  }
  .main__bg-inner {
    padding-inline: 0;
  }
  .main__bg-inner .main__bg-inner {
    padding-inline: 0;
  }
  .main--error .main__inner {
    padding: 80px 15px;
  }
  .main--error .btn {
    margin-top: 30px;
  }
  .news-cat {
    font-size: 1.2rem;
    padding: 0.3rem 0.8rem;
  }
  .case-cat {
    font-size: 1.2rem;
    padding: 0.3rem 0.8rem;
  }
  .case-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .case-detail__visual {
    grid-template-columns: 32rem 1fr;
  }
  .contact__mini {
    grid-template-columns: repeat(2, 1fr);
  }
  .glossary-tabs__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .product-related__title {
    order: 1;
  }
  .product-related__body {
    grid-template-columns: repeat(1, 1fr);
  }
  .product-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .single__inner {
    padding-inline: 2.4rem;
  }
  .single__inner.column__inner {
    padding-inline: 2.4rem;
  }
  .top-fv__content {
    padding-inline: 0;
  }
  .top-about {
    background-color: var(--second-bg);
    padding-block: 4.8rem;
  }
  .top-about__grid {
    flex-direction: column-reverse;
  }
  .top-about__img {
    aspect-ratio: 375/281;
    flex: auto;
    margin-inline: calc(50% - 50vw);
    width: 100vw;
  }
  .top-about__content {
    width: 100%;
  }
  .top-business__head.top__head-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 2rem;
    padding-bottom: 0;
  }
  .top-business__head.top__head-title .sec-title {
    order: 1;
  }
  .top-business__head.top__head-title::after {
    order: 2;
    position: static;
  }
  .top-business__lead {
    margin-top: 0.8rem;
    order: 3;
    padding-bottom: 0;
  }
  .top-business__body {
    gap: 4rem;
    grid-template-columns: 1fr;
  }
  .top-business__cards {
    max-width: 100%;
  }
  .top-business__card-btn {
    margin-top: 2.4rem;
  }
  .top-business__card-btn .btn__link {
    margin-right: auto;
  }
  .top-business__card-img {
    aspect-ratio: 335/188;
    border-radius: 0.4rem;
    display: block;
    margin-bottom: 2rem;
    overflow: hidden;
  }
  .top-business__img-wrap {
    display: none;
  }
  .top-case__body {
    margin-right: 0;
    overflow: initial;
    padding: 4.8rem 0;
  }
  .top-case__bg {
    border-radius: 0;
    width: 100vw;
  }
  .top-case__head {
    padding-right: 0;
  }
  .top-case__slider {
    margin-right: calc(50% - 50vw);
  }
  .top-guide .top__head-title {
    width: 100%;
  }
  .top-guide .sec-title {
    order: 1;
  }
  .top-guide .sec-title__en {
    padding-left: 0;
  }
  .top-guide__grid {
    flex-direction: column;
    gap: 2.4rem;
    margin-right: 0;
  }
  .top-guide__img {
    margin-top: 0.4rem;
    order: 2;
    width: 100%;
  }
  .top-guide__content {
    display: contents;
  }
  .top-guide__text {
    margin-top: 0;
    order: 3;
  }
  .top-guide__btns {
    margin-top: 0;
    order: 4;
  }
  .top-guide__btn-item {
    margin-top: 0;
    order: 4;
  }
  .top-guide__btn-item .btn__link {
    width: 100%;
  }
  .top-info__grid {
    flex-direction: column;
  }
  .top-info__col:first-child {
    width: 100%;
  }
  .top-info__list-btn {
    padding-bottom: 0;
  }
  .top-cards::after {
    height: calc(100% - 9.6rem);
  }
  .top-cards__inner {
    grid-template-columns: repeat(1, 1fr);
  }
}

@media (max-width: 768px){
  .wp-block-columns.is-style-gap-small {
    gap: 0.8rem !important;
  }
  .wp-block-columns.is-style-gap-medium {
    gap: 1rem !important;
  }
  .wp-block-columns.is-style-gap-large {
    gap: 1.5rem !important;
  }
  .wp-block-columns.is-style-gap-xlarge {
    gap: 2rem !important;
  }
  .wp-block-columns.is-style-gap-none-sp {
    gap: 0 !important;
  }
}

@media not all and (max-width: 666px){
  a[href^="tel:"] {
    pointer-events: none;
  }
  .u-sp {
    display: none !important;
  }
}

@media screen and (max-width: 666px){
  .main .access-card__info p:not([class]),
  .main .access-card__info .wp-block-paragraph {
    line-height: 1.8;
  }
  .main .access-card__info p:not([class]) + ul, .main .access-card__info p:not([class]) + ol,
  .main .access-card__info .wp-block-paragraph + ul,
  .main .access-card__info .wp-block-paragraph + ol {
    margin-top: 0.4rem;
  }
  .access-card--bg {
    padding: 1.4rem;
  }
  .access-card--bg .access-card__title.lower-sec-title__sub {
    font-size: 1.6rem;
  }
  .author {
    flex-direction: column;
    margin-block: 4.8rem;
    padding: 1.4rem;
  }
  .author-thumb {
    width: 100%;
  }
  .author-name {
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .author-text {
    font-size: 1.3rem;
    line-height: 1.6;
  }
  .btn-cta__link {
    padding: 1.9rem 1.8rem;
  }
  .btn-cta__sub {
    font-size: 1.4rem;
  }
  .btn-cta__main {
    font-size: 1.8rem;
    margin-top: 0.3rem;
  }
  .btn-cta__arrow {
    height: 3.9rem;
    width: 3.9rem;
  }
  .btn-cta__arrow::after {
    width: 0.9rem;
  }
  .btn + * {
    margin-top: 2.4rem;
  }
  .btn + *.lower-sec-title {
    margin-top: 4.8rem;
  }
  .btn__link--lg {
    font-size: 1.4rem;
    line-height: 1.4285714286;
    width: 24.8rem;
  }
  .btn-list__link {
    font-size: 1.4rem;
    gap: 0.8rem;
  }
  .btn-list__arrow {
    height: 4rem;
    width: 4rem;
  }
  .btn-list__arrow::after {
    width: 0.7rem;
  }
  .business-card-section {
    padding-block: 0;
  }
  .business-card-section + * {
    margin-top: 4rem;
  }
  .business-card {
    padding-inline: 1.5rem;
  }
  .business-card + .business-card {
    margin-top: 3.2rem;
    padding-top: 3.2rem;
  }
  .business-card__title {
    gap: 0.9rem;
  }
  .business-card__title + * {
    margin-top: 1.8rem;
  }
  .business-card__text {
    font-size: 1.5rem;
    line-height: 1.6;
  }
  .business-card__image {
    border-radius: 0.4rem;
  }
  .card-item__image + * {
    margin-top: 0.9rem;
  }
  .card-item__image + *.card-item__caption {
    margin-top: 1.2rem;
  }
  .card-item__caption {
    margin-top: 1.2rem;
  }
  .card-item__title {
    line-height: 1.4166666667;
  }
  .card-item__desc {
    line-height: 1.4;
  }
  .card-item__text {
    font-size: 1.4rem;
    line-height: 1.6;
  }
  .card-item--large {
    padding: 1.4rem 1.4rem 1.6rem;
  }
  .card-item--large .card-item__image + * {
    margin-top: 1.4rem;
  }
  .card-item--row {
    padding: 1.4rem;
  }
  .card-item--row .card-item__body p:not([class]),
  .card-item--row .card-item__body .wp-block-paragraph {
    line-height: 1.7142857143;
  }
  .card-item--row .card-item__body p:not([class]) + *,
  .card-item--row .card-item__body .wp-block-paragraph + * {
    margin-top: 2.4rem;
  }
  .card-wrap--col2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .card-wrap--sp-col2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .card-wrap + .lower-sec-title__small {
    margin-top: 2.4rem;
  }
  .card-wrap + * {
    margin-top: 2.4rem;
  }
  .card-wrap + h2 {
    margin-top: 4.8rem;
  }
  .center-card-container {
    gap: 2.4rem;
    grid-template-columns: repeat(1, 1fr);
  }
  .center-card__body {
    padding-block: 1.2rem;
  }
  .center-card__title {
    font-size: 1.6rem;
  }
  .circle-list {
    padding: 1.6rem 4rem;
  }
  .circle-list + * {
    margin-top: 2.4rem;
  }
  .circle-list__ul {
    gap: 1.2rem 1.6rem;
  }
  .circle-list__item {
    max-width: 16rem;
    width: calc(50% - 0.8rem);
  }
  .circle-list__text {
    font-size: 1.5rem;
  }
  .company-fv {
    margin-inline: auto;
    max-width: -moz-fit-content;
    max-width: fit-content;
    min-height: 30.5rem;
  }
  .company-fv__inner {
    padding: 4rem 1.5rem 28.5rem;
  }
  .company-fv::before {
    background: linear-gradient(131deg, #FCFCFC 24.39%, rgba(252, 252, 252, 0) 70.22%);
    opacity: 0.9;
  }
  .company-fv__bg img {
    -o-object-position: bottom;
    object-position: bottom;
  }
  .company-fv__title {
    width: var(--title-width-sp);
  }
  .company-fv__text {
    max-width: 30rem;
    width: 100%;
  }
  .company-fv__text {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .company-list__item {
    gap: 0.8rem;
    grid-template-columns: repeat(1, 1fr);
  }
  .company-list__item + .company-list__item {
    margin-top: 1.6rem;
    padding-top: 1.6rem;
  }
  .company-list__item + .company-list__item::before {
    width: 5.5rem;
  }
  .company-list__label {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .company-list__text {
    padding-inline: 0;
  }
  .company-list__text p {
    font-size: 1.3rem !important;
    line-height: 1.6 !important;
  }
  .contact-body__inner {
    padding: 2.8rem 1.5rem 2.8rem;
  }
  .contact-body__wrap {
    padding-inline: 0;
  }
  .contact-steps {
    margin-bottom: 2.4rem;
  }
  .contact-validation-message {
    font-size: 1.5rem;
    line-height: 1.4;
    margin: 0 0 2.4rem;
    text-align: center;
  }
  .contact-validation-message span {
    display: block;
  }
  .contact-body .emic-confirm-error {
    font-size: 1.4rem;
    margin-top: 1rem;
  }
  .contact-section + * {
    margin-top: 4.8rem;
  }
  .contact-section + .contact-agree {
    margin-top: 2.4rem;
  }
  .contact-section > .lower-sec-title {
    margin-bottom: 2.4rem;
  }
  .contact-conditional__note {
    margin-top: 2.4rem;
  }
  .contact-conditional {
    padding: 2.4rem 1.5rem;
  }
  .contact-conditional > .lower-sec-title__sub {
    margin-top: 3.2rem;
  }
  .contact-conditional__note--skip {
    display: block;
  }
  .contact-accordion__trigger {
    align-items: center;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: #f5f5f5;
    border: none;
    border-radius: 0.4rem;
    color: var(--base-color);
    cursor: pointer;
    display: flex;
    font-size: 1.6rem;
    font-weight: var(--semi-bold);
    gap: 1rem;
    justify-content: space-between;
    margin: 1.6rem 0 2rem;
    padding: 1.4rem 1.6rem;
    text-align: left;
    width: 100%;
  }
  .contact-accordion__label {
    line-height: 1.4;
  }
  .contact-accordion__icon {
    flex-shrink: 0;
    height: 1.8rem;
    position: relative;
    width: 1.8rem;
  }
  .contact-accordion__icon::before,
  .contact-accordion__icon::after {
    background: var(--primary);
    content: "";
    height: 0.2rem;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.25s;
    width: 1.8rem;
  }
  .contact-accordion__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
  }
  .contact-accordion__trigger[aria-expanded=true] .contact-accordion__icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  .contact-accordion__body {
    display: none;
  }
  .contact-accordion__body.is-open {
    display: block;
  }
  .contact-group {
    gap: 2rem;
    margin-bottom: 2.4rem;
    padding-bottom: 2.4rem;
    padding-inline: 0;
  }
  .contact-group::after {
    background: linear-gradient(to right, var(--primary) 0%, var(--primary) 5.5rem, var(--border) 5.5rem, var(--border) 100%);
    width: 100%;
  }
  .contact-group__head {
    gap: 1.4rem;
  }
  .contact-group__label-wrap {
    gap: 0.6rem;
  }
  .contact-group__label {
    font-size: 1.5rem;
  }
  .contact-badge {
    font-size: 1.2rem;
    height: 2.2rem;
    width: 3.8rem;
  }
  .contact-checks-wrap--3col .contact-checks {
    grid-template-columns: repeat(1, 1fr);
  }
  .contact-checks {
    gap: 1.5rem;
    grid-template-columns: repeat(1, 1fr);
  }
  .contact-checks-wrap .emic-confirm-error {
    margin-top: 1rem;
  }
  .contact-checks .wpcf7-list-item-label,
  .contact-check__label {
    padding-left: 2.8rem;
  }
  .contact-input {
    font-size: 1.6rem;
  }
  .contact-input::-moz-placeholder {
    font-size: 1.3rem;
  }
  .contact-input::placeholder {
    font-size: 1.3rem;
  }
  .contact-input--xs,
  .contact-select--xs {
    width: 7.2rem;
  }
  .contact-input--smsp,
  .contact-select--smsp {
    width: 7.2rem;
  }
  .contact-input--md,
  .contact-select--md {
    width: 100%;
  }
  input.contact-input--date {
    font-size: 1.6rem;
    width: 100%;
  }
  .contact-textarea {
    font-size: 1.6rem;
    height: 8.4rem;
  }
  .contact-textarea::-moz-placeholder {
    font-size: 1.3rem;
  }
  .contact-textarea::placeholder {
    font-size: 1.3rem;
  }
  .contact-range--sp {
    align-items: flex-start;
    flex-direction: column;
  }
  .contact-range--sp .contact-range__inner {
    align-items: center;
    display: flex;
    gap: 0.4rem;
    width: 100%;
  }
  .contact-field {
    gap: 1.5rem;
  }
  .contact-field--row {
    grid-template-columns: repeat(1, 1fr);
  }
  .contact-address .contact-select--md {
    width: 100%;
  }
  .contact-address__row--md {
    width: 100%;
  }
  .contact-address__row--md .wpcf7-form-control-wrap .contact-input {
    width: 100%;
  }
  .contact-recaptcha {
    margin-top: 1.8rem;
  }
  .contact-actions {
    flex-direction: column;
    margin-top: 2.4rem;
  }
  .contact-confirm,
  .contact-complete {
    padding-inline: 0;
  }
  .contact-confirm__item {
    gap: 0.8rem;
    grid-template-columns: 1fr;
    padding: 1.6rem 0;
  }
  .contact-complete__title {
    font-size: 2rem;
  }
  .contact-phone {
    margin-bottom: 4.8rem;
  }
  .contact-phone > .lower-sec-title {
    margin-bottom: 2.4rem;
  }
  .contact-phone__lead {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .contact-phone__lead + * {
    margin-top: 2rem;
  }
  .contact-phone__lead + .contact-phone__lead {
    margin-top: 0;
  }
  .contact-phone__boxes {
    gap: 0.8rem;
  }
  .contact-phone__box {
    gap: 1.4rem;
    padding-inline: 0.9rem;
  }
  .contact-phone__loc {
    font-size: 1.5rem;
    line-height: 1.4;
  }
  .contact-phone__tel {
    font-size: 1.5rem;
    line-height: 1.4;
  }
  .cta-banner {
    margin-block: 4.8rem 2.8rem;
  }
  .cta-banner__inner {
    padding-bottom: 4.8rem;
    padding-inline: 1.5rem;
  }
  .cta-banner__text + * {
    margin-top: 1.8rem;
  }
  .cta-banner__btn .btn__link {
    justify-content: flex-start;
    width: 27.5rem;
  }
  .cta-banner__btn .btn__link .btn__link-arrow {
    margin-left: auto;
  }
  .cta-cards {
    padding-block: 4rem;
  }
  .cta-cards__grid {
    gap: 2rem;
  }
  .cta-cards__link {
    padding: 2.1rem 1.4rem 2rem;
  }
  .cta-cards__title {
    align-items: flex-end;
    font-size: 1.6rem;
    line-height: 1.4444444444;
  }
  .cta-cards__title + * {
    margin-top: 1.3rem;
  }
  .cta-cards__arrow {
    margin-top: 0;
    position: absolute;
    right: 1.4rem;
    top: 1.8rem;
    width: 3.3rem;
  }
  .cta-cards__arrow::after {
    width: 0.5rem;
  }
  .cta__body {
    padding: 4.8rem 1.5rem;
  }
  .cta__title {
    margin-bottom: 2rem;
  }
  .cta__contents {
    padding-top: 2.8rem;
  }
  .cta__grid {
    gap: 1.2rem;
  }
  .cta__item-link {
    border-radius: 0.4rem;
    gap: 1.2rem;
    padding: 1.6rem;
  }
  .cta__item-img {
    border-radius: 0.2rem;
    height: 7rem;
    width: 9.5rem;
  }
  .cta__item-content {
    gap: 1.5rem;
    padding: 0;
  }
  .cta__item-title {
    font-size: 1.3rem;
    line-height: 1.4;
    padding-bottom: 0;
  }
  .cta__item-title::after {
    display: none;
  }
  .cta__item-text {
    display: none;
  }
  .cta__item-arrow {
    height: 2.5rem;
    width: 2.5rem;
  }
  .cta__item-arrow::after {
    width: 0.6rem;
  }
  .data-list {
    padding: 3rem 1.5rem;
  }
  .data-list__item {
    flex-direction: column;
    gap: 0.8rem;
  }
  .data-list__item::before {
    top: 3.7rem;
  }
  .data-list__item:first-child .data-list__label {
    padding-top: 0;
  }
  .data-list__item + .data-list__item .data-list__text {
    border-top: none;
  }
  .data-list__item:not(:last-child) .data-list__text {
    border-bottom: 1px dashed var(--border);
    padding-bottom: 1.9rem;
  }
  .data-list__label {
    gap: 0.8rem;
    padding-top: 2.4rem;
    width: 100%;
  }
  .data-list__text {
    font-size: 1.4rem;
    line-height: 1.4285714286;
    margin-left: auto;
    padding-inline: 0;
    padding-top: 0;
    width: calc(100% - 2.4rem);
  }
  .download-list {
    gap: 1.6rem;
  }
  .download-list + h2 {
    margin-top: 4.8rem;
  }
  .download-card {
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1rem;
  }
  .download-card__image {
    width: 9.8rem;
  }
  .download-card__content {
    display: contents;
  }
  .download-card__content .btn {
    width: 100%;
  }
  .download-card__content .btn .btn__link {
    padding-block: 0.9rem;
    width: 100%;
  }
  .download-card__sp {
    flex: 1;
  }
  .download-card .lower-sec-title__sub {
    font-size: 1.2rem;
    line-height: 1.4166666667;
    padding-bottom: 1rem;
  }
  .download-card .lower-sec-title__sub::before {
    top: 0.7rem;
  }
  .download-card .lower-sec-title__sub + * {
    margin-top: 1.2rem;
  }
  .download-card__description {
    font-size: 1.1rem;
  }
  .download-card__description + * {
    margin-top: 1rem;
  }
  .download-card__type {
    font-size: 1rem;
    line-height: 1.5;
  }
  .faq {
    gap: 2.4rem;
    margin-top: 2.4rem;
  }
  .faq + .faq {
    margin-top: 2.4rem;
  }
  .faq__item-q {
    gap: 2.4rem;
    padding-left: 3.5rem;
  }
  .faq.faq--dots + .faq {
    margin-top: 2.4rem;
  }
  .faq.faq--dots .faq__item-q {
    font-size: 1.6rem;
    line-height: 1.4;
    padding-bottom: 1.4rem;
    padding-left: 1.8rem;
  }
  .faq.faq--dots .faq__item-q::before {
    top: 0.9rem;
  }
  .feature-box {
    padding: 1.4rem 1.4rem 1.6rem;
  }
  .feature-box + * {
    margin-top: 2rem;
  }
  .feature-box__inner {
    gap: 1.4rem;
  }
  .feature-box__icon {
    width: 6.5rem;
  }
  .feature-box__body .lower-sec-title__sub {
    font-size: 1.4rem;
    line-height: 1.4;
  }
  .feature-box__body .lower-sec-title__sub::before {
    height: 0.6rem;
    top: 0.8rem;
    width: 0.6rem;
  }
  .feature-box__body .lower-sec-title__sub + * {
    margin-top: 1.4rem;
  }
  .feature-box__content p {
    font-size: 1.3rem !important;
    line-height: 1.8 !important;
  }
  .feature-list + * {
    margin-top: 2.4rem;
  }
  .feature-list + h2 {
    margin-top: 4.8rem;
  }
  .feature-list__title,
  .feature-list__content {
    padding-inline: 1.4rem;
  }
  .feature-list--02 {
    grid-template-columns: 1fr;
  }
  .flow-step__item {
    flex-direction: column;
    gap: 1.5rem;
    padding: 1.2rem 1.4rem 1.6rem;
  }
  .flow-step__header {
    border-bottom: 1px solid var(--border);
    border-right: none;
    flex-direction: row;
    font-size: 2.1rem;
    gap: 0.6rem;
    line-height: 1.1904761905;
    padding-bottom: 0.7rem;
    padding-right: 0;
  }
  .flow-step__number {
    font-size: 1.7rem;
    line-height: 1.1764705882;
  }
  .flow-step__body {
    padding-left: 0;
    width: 100%;
  }
  .flow-step__title {
    padding-left: 1.5rem;
  }
  .flow-step__title::before {
    width: 0.5rem;
  }
  .flow-step__title + * {
    margin-top: 1rem !important;
  }
  .flow-step__content p {
    font-size: 1.3rem !important;
    line-height: 1.6 !important;
  }
  .flow-step__content .btn__link {
    font-size: 1.4rem;
    padding-inline: 1.3rem;
  }
  .footer__bg {
    background-color: #5196e4;
  }
  .footer__bg::after {
    background-image: url("../images/common/footer-bg_sp.webp");
    background-position: 0%;
    bottom: 0;
    height: 100%;
    left: 0;
    max-height: 90.6rem;
    right: 0;
    top: auto;
  }
  .footer__inner {
    padding: 5rem 2rem 4.6rem;
  }
  .footer__nav {
    gap: 2.4rem;
    grid-template-columns: 1fr;
  }
  .footer__cat {
    margin-bottom: 0;
  }
  .footer__cat-link {
    align-items: center;
    display: flex;
    font-size: 1.4rem;
    line-height: 1.4285714286;
    padding-bottom: 0.9rem;
  }
  .footer__cat-icon {
    display: block;
    flex-shrink: 0;
    height: 1.5rem;
    margin-left: auto;
    position: relative;
    width: 1.5rem;
  }
  .footer__links {
    gap: 1.6rem;
    max-height: 0px;
    overflow: hidden;
    padding-left: 0;
    transition: max-height 0.35s;
  }
  .footer__links li:first-child {
    margin-top: 1.6rem;
  }
  .footer__link {
    line-height: 1.4285714286;
  }
  .footer__col--split {
    gap: 2.4rem;
  }
  .footer__single-links {
    gap: 2.4rem;
    grid-template-columns: 1fr;
    margin-top: 2.4rem;
  }
  .footer__single-link {
    font-size: 1.4rem;
    line-height: 1.4285714286;
    margin-bottom: 2.4rem;
    padding-bottom: 0.9rem;
  }
  .footer__recruit-bottom {
    font-size: 1.4rem;
    line-height: 1.7142857143;
  }
  .footer__bottom {
    padding-inline: 2rem;
  }
  .footer__bottom-nav {
    align-items: center;
    flex-direction: column;
    gap: 1.8rem;
    margin-left: 0;
  }
  .footer__bottom-list {
    align-items: center;
    flex-direction: column;
    gap: 1.4rem;
    justify-content: center;
    width: 100%;
  }
  .footer__bottom-list-item + .footer__bottom-list-item::before {
    display: none;
  }
  .footer__bottom-link {
    font-size: 1.3rem;
    line-height: 1.4285714286;
  }
  .footer__sitemap {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .footer__copy {
    font-size: 1.4rem;
    line-height: 1.2142857143;
    margin-right: 0;
  }
  .header {
    padding-left: 2rem;
  }
  .header__brand img {
    width: 7.3rem;
  }
  .header__search-btn {
    height: 6.5rem;
    width: 6.5rem;
  }
  .header__mail {
    height: 6.5rem;
    width: 6.5rem;
  }
  .header__hamburger {
    height: 6.5rem;
    width: 6.5rem;
  }
  .header__hamburger-bar {
    width: 2.5rem;
  }
  .header__hamburger-bar::before,
  .header__hamburger-bar::after {
    width: 2.5rem;
  }
  .industries-wrap + * {
    margin-top: 2.4rem;
  }
  .industries__inner {
    gap: 2.4rem;
  }
  .industries__inner--col2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .industries__inner--col3 {
    grid-template-columns: repeat(1, 1fr);
  }
  .industries__inner--col4 {
    grid-template-columns: repeat(1, 1fr);
  }
  .industries__inner--col5 {
    grid-template-columns: repeat(1, 1fr);
  }
  .industries__companies + * {
    margin-top: 0.4rem;
  }
  .industries__item + * {
    margin-top: 0.8rem;
  }
  .industries__comment {
    justify-content: flex-end;
  }
  .inner {
    padding-inline: var(--padding-sp);
  }
  .local-list__ul {
    gap: 2.4rem;
    grid-template-columns: repeat(1, 1fr);
  }
  .local-list__title {
    padding-bottom: 1.1rem;
  }
  .local-list__body {
    gap: 0.6rem;
    margin-top: 1.2rem;
  }
  .local-list__body a,
  .local-list__body span {
    align-items: flex-start;
    font-size: 1.4rem;
    gap: 0.8rem;
    line-height: 1.4285714286;
  }
  .local-list__body a::before,
  .local-list__body span::before {
    margin-top: 0.9rem;
  }
  .lower-sec-title {
    font-size: 1.8rem;
    margin-block: 4.8rem 2.4rem;
    padding: 0.6rem 1.3rem;
  }
  .lower-sec-title span:not(.main-text) {
    display: block;
    margin: 0.3rem 0 0;
  }
  .lower-sec-title__sub {
    font-size: 1.6rem;
    padding-left: 1.8rem;
  }
  .lower-sec-title__sub::before {
    height: 0.6rem;
    width: 0.6rem;
  }
  .lower-sec-title__sub::after {
    width: 4.7rem;
  }
  .lower-sec-title__sub + figure {
    margin-top: 2.4rem;
  }
  .lower-sec-title__group + *.card-wrap, .lower-sec-title__group + *.post-wrap {
    margin-top: 2rem;
  }
  .lower-sec-title__small + * {
    margin-top: 0.8rem !important;
  }
  .gmap + * {
    margin-top: 4.8rem;
  }
  .gmap + *.local-list {
    margin-top: 2.1rem;
  }
  .message-box + * {
    margin-top: 8rem;
  }
  .message-box .page-lead__text {
    font-size: 2.2rem;
    order: 2;
  }
  .message-box__inner {
    display: flex;
    flex-direction: column;
    gap: 2.4rem;
  }
  .message-box__body {
    display: contents;
  }
  .message-box__content {
    order: 3;
  }
  .message-box__signature {
    font-size: 1.5rem;
    line-height: 1.4666666667;
  }
  .message-box__image {
    order: 1;
    width: 100%;
  }
  .nav-drawer__body {
    flex-direction: column;
  }
  .nav-drawer__contact-arrow::after {
    width: 0.6rem;
  }
  .nav-drawer__search-head {
    margin-bottom: 3.3rem;
    padding-bottom: 2rem;
  }
  .nav-drawer__search-title {
    align-items: flex-start;
    flex-direction: column-reverse;
  }
  .nav-drawer__search-title-en {
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    line-height: 1.1875;
  }
  .nav-drawer__search-title-en::before {
    display: none;
  }
  .nav-drawer__search-title-ja {
    font-size: 1.8rem;
  }
  .nested-list {
    flex-direction: column;
    gap: 1.2rem;
  }
  .nested-list__item {
    width: 100%;
  }
  .nested-list__child {
    flex-direction: column;
  }
  .nested-list__child li {
    width: 100%;
  }
  .note-list__item {
    margin-bottom: 0.8rem;
  }
  .note-list + h2 {
    margin-top: 4.8rem;
  }
  .number-list + * {
    margin-top: 2.4rem;
  }
  .number-list__item {
    padding-block: 1.4rem;
  }
  .number-list__item {
    padding-left: 0;
  }
  .number-list__item::before {
    line-height: 1.5;
    position: static;
  }
  .number-list__text {
    font-size: 1.4rem;
    line-height: 1.6;
    margin-top: 0.4rem;
  }
  .page-anchor-links__list--col2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-anchor-links__list--col3 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-anchor-links__list--col4 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-anchor-links__list--col5 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-anchor-links__list--col6 {
    grid-template-columns: repeat(1, 1fr);
  }
  .page-anchor-links__item.btn {
    width: 100%;
  }
  .page-anchor-links__link.btn__link {
    padding-block: 1.8rem;
    width: 100%;
  }
  .page-bread {
    padding-bottom: 4rem;
  }
  .page-bread:first-child {
    padding-top: 2.4rem;
  }
  .page-bread + .page-hero {
    padding-top: 2.7rem;
  }
  .page-hero + .main__bg {
    margin-top: 4rem;
  }
  .page-hero::after {
    background: linear-gradient(to right, var(--primary) 16.4179104478%, var(--gray) 16.4179104478%);
    height: 1px;
  }
  .page-hero__inner {
    padding-block: 4rem;
  }
  .page-hero__en {
    font-size: 4.8rem;
    line-height: 1;
  }
  .page-hero__en + * {
    margin-top: 0.9rem;
  }
  .page-hero__ja {
    font-size: 1.6rem;
    font-weight: var(--normal);
    line-height: 1.5;
    padding-left: 2.7rem;
  }
  .page-hero__ja::after {
    background-image: url(../images/common/ico-page-ttl_sp.svg);
    height: 1.4rem;
    top: 0.6rem;
    width: 1.9rem;
  }
  .page-hero__inner.page-hero__inner--lower {
    padding-block: 0 3.8rem;
  }
  .page-hero__lower {
    align-items: start;
    flex-direction: column-reverse;
  }
  .page-hero__lower:has(.page-hero__lower-img) .page-hero__lower-title {
    padding-top: 0;
    width: 100%;
  }
  .page-hero__lower-title-ja {
    font-size: 2.6rem;
    line-height: 1.4230769231;
  }
  .page-hero__lower-title-en {
    margin-top: 0.4rem;
    padding-left: 2.6rem;
  }
  .page-hero__lower-title-en::after {
    background-image: url(../images/common/ico-page-ttl-thin_sp.svg);
    height: 1.4rem;
    top: 0.6rem;
    width: 1.9rem;
  }
  .page-hero__lower-img {
    height: 11.4rem;
    margin-left: auto;
    width: 87.7611940299%;
  }
  .page-hero__lower:not(:has(.page-hero__lower-img)) .page-hero__lower-title {
    padding-block: 5.1rem 1rem;
  }
  .page-hero--single-page .page-hero__inner {
    padding-block: 5.6rem 3rem;
  }
  .page-hero--single-page .case-cat,
  .page-hero--single-page .news-cat {
    border-width: 1px;
    font-size: 1.2rem;
    line-height: 1.5;
    padding: 0.2rem 0.7rem;
  }
  .page-hero--single-page .page-hero__inner:not(:has(.page-hero__cats)) {
    padding-block: 2.7rem 3rem;
  }
  .page-hero__meta {
    gap: 1rem;
  }
  .page-hero__meta + * {
    margin-top: 1rem;
  }
  .page-hero__title {
    font-size: 2.4rem;
  }
  .page-hero__title br {
    display: block;
  }
  .page-hero.page-hero--no-line .page-hero__inner {
    padding-block: 4rem;
  }
  .page-hero.page-hero--no-line .page-hero__title {
    font-size: 2.2rem;
  }
  .page-introduction__title {
    font-size: 2rem;
  }
  .page-introduction__title::after {
    width: 5.5rem;
  }
  .page-introduction__title + * {
    margin-top: 2.4rem;
  }
  .page-introduction__image {
    margin-top: 1.8rem;
  }
  .page-lead__text {
    font-size: 2.4rem;
    line-height: 1.6;
    padding-bottom: 1.6rem;
  }
  .page-lead__text::after {
    width: 5.5rem;
  }
  .page-lead__text + * {
    margin-top: 2.4rem;
  }
  .page-links {
    padding-block: 4.8rem;
  }
  .page-links__grid {
    gap: 1.6rem;
    width: 100%;
  }
  .page-link-card__inner {
    min-height: 7rem;
    padding: 1.1rem 1.5rem;
  }
  .page-link-card__image {
    display: none;
  }
  .page-link-card__body {
    gap: 2rem;
  }
  .c-pager {
    gap: 2rem;
  }
  .c-pager__button {
    height: 3rem;
    width: 3rem;
  }
  .c-pager__button::after {
    width: 0.5rem;
  }
  .c-pager__list {
    gap: 1rem;
  }
  .c-pager__list-link {
    font-size: 1.6rem;
    padding-inline: 0.5rem;
  }
  .c-pager__list-link--dots {
    font-size: 1.4rem;
    width: 1rem;
  }
  .c-pager__list-item.is-current .c-pager__list-link {
    font-size: 2rem;
  }
  .c-pagetop {
    right: 2rem;
    width: 6rem;
  }
  .point-callout + h2 {
    margin-top: 4.8rem;
  }
  .point-callout__box {
    border-radius: 0.4rem;
  }
  .post-wrap + *.cta-banner {
    margin-top: 4.8rem;
  }
  .post-wrap + h2 {
    margin-top: 4.8rem;
  }
  .post-wrap--col2 {
    grid-template-columns: repeat(1, 1fr);
  }
  .post-wrap--sp-col2 {
    grid-template-columns: repeat(2, 1fr);
  }
  .post h1 {
    font-size: 2rem;
  }
  .post__body {
    font-size: 1.5rem;
  }
  .post__body h2 {
    font-size: 1.8rem;
  }
  .post__body h3 {
    font-size: 1.8rem;
  }
  .post__body h4 {
    font-size: 1.6rem;
  }
  .post__body h5,
  .post__body h6 {
    font-size: 1.5rem;
  }
  .representative-companies + * {
    margin-top: 2.4rem;
  }
  .representative-companies + h2 {
    margin-top: 4.8rem;
  }
  .representative-companies__inner {
    gap: 1.5rem;
  }
  .representative-companies__item {
    min-height: 8.2rem;
    padding: 0.7rem 0.9rem 2.4rem;
  }
  .representative-companies__industry + * {
    margin-top: 1.4rem;
  }
  .search-form {
    height: 5.5rem;
    padding-right: 1.4rem;
  }
  .search-form__input {
    padding-left: 1.1rem;
  }
  .search-form__input::-moz-placeholder {
    font-size: 1.4rem;
  }
  .search-form__input::placeholder {
    font-size: 1.4rem;
  }
  .search-form__btn {
    width: 2.5rem;
  }
  .search-results + * {
    margin-top: 4rem;
  }
  .search-results__item {
    padding-bottom: 2.4rem;
  }
  .search-results__item .main__bg-inner {
    padding-inline: 1.4rem;
  }
  .search-results__item + * {
    margin-top: 2.4rem;
  }
  .search-results__excerpt {
    letter-spacing: 0;
    line-height: 1.7142857143;
  }
  .sec-title__head {
    gap: 0.9rem;
  }
  .sec-title__head::before {
    width: 2.4rem;
  }
  .sec-title__ja {
    font-size: 1.4rem;
  }
  .sec-title__en {
    font-size: 4.8rem;
    letter-spacing: 0.06em;
    margin-top: 0.4rem;
  }
  .service-sec + * {
    margin-top: 4.8rem;
  }
  .service-sec__item {
    gap: 2rem;
    grid-template-columns: 1fr;
    padding-left: 0;
    padding-top: 2.4rem;
  }
  .service-sec__item + .service-sec__item {
    margin-top: 3.2rem;
  }
  .service-sec__item::before {
    left: auto;
    margin-bottom: -1rem;
    position: relative;
    top: auto;
  }
  .service-sec__item-sub-title {
    gap: 1rem;
    margin-bottom: 1.1rem;
  }
  .service-sec__item-title {
    font-size: 2rem;
    line-height: 1.45;
    margin-bottom: 1.7rem;
  }
  .service-sec__item-text {
    font-size: 1.5rem;
    line-height: 1.6;
  }
  .service-sec__item-text + * {
    margin-top: 2.4rem;
  }
  .testhor-fv {
    padding-top: 10.5rem;
  }
  .testhor-fv + * {
    margin-top: 8rem;
  }
  .testhor-fv__bg {
    top: 0rem;
    width: 35rem;
  }
  .testhor-fv__inner {
    gap: 0;
    grid-template-columns: 1fr;
    place-items: start;
  }
  .testhor-fv__body {
    display: contents;
  }
  .testhor-fv__title {
    order: 1;
  }
  .testhor-fv__title-text {
    font-size: 2.6rem;
    line-height: 1.4;
  }
  .testhor-fv__text {
    margin-top: 5.5rem;
    order: 3;
  }
  .testhor-fv__text p {
    font-size: 1.5rem !important;
    line-height: 1.8 !important;
  }
  .testhor-fv__image {
    margin-inline: auto;
    margin-top: 4.8rem;
    order: 2;
    padding-right: 0;
    padding-top: 0;
    width: 27.8rem;
  }
  .testhor-sec + * {
    margin-top: 8rem;
  }
  .testhor-sec__bg {
    left: -7.5rem;
    opacity: 0.55;
    top: -2.8rem;
    transform: none;
    width: 70.5rem;
  }
  .testhor-sec__inner {
    gap: 0;
    grid-template-columns: 1fr;
    place-items: start;
  }
  .testhor-sec__body {
    display: contents;
  }
  .testhor-sec__title {
    font-size: 2.4rem;
    line-height: 1.6;
    order: 1;
  }
  .testhor-sec__content {
    margin-top: 5.5rem;
    order: 3;
  }
  .testhor-sec__content p {
    font-size: 1.5rem !important;
    line-height: 1.8 !important;
  }
  .testhor-sec__image {
    margin-inline: auto;
    margin-top: 5rem;
    order: 2;
    padding-bottom: 0;
    padding-right: 0;
    width: 27.8rem;
  }
  .main p:not([class]),
  .wp-block-paragraph {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .main p:not([class]).is-style-large,
  .wp-block-paragraph.is-style-large {
    font-size: 1.5rem;
    line-height: 1.6;
  }
  .main p:not([class]) + *,
  .wp-block-paragraph + * {
    margin-top: 2.4rem;
  }
  .main p:not([class]) + p, .main p:not([class]) + ul, .main p:not([class]) + li, .main p:not([class]) + .main__bg-inner,
  .wp-block-paragraph + p,
  .wp-block-paragraph + ul,
  .wp-block-paragraph + li,
  .wp-block-paragraph + .main__bg-inner {
    margin-top: 2rem;
  }
  .main p:not([class]) + h2,
  .wp-block-paragraph + h2 {
    margin-top: 4.8rem;
  }
  .main p:not([class]) + h3, .main p:not([class]) + h4, .main p:not([class]) + h5, .main p:not([class]) + h6,
  .wp-block-paragraph + h3,
  .wp-block-paragraph + h4,
  .wp-block-paragraph + h5,
  .wp-block-paragraph + h6 {
    margin-top: 2.4rem;
  }
  .wp-block-list + *.lower-sec-title__sub {
    margin-top: 2.4rem;
  }
  .wp-block-list + h2 {
    margin-top: 4.8rem;
  }
  .wp-block-list.is-style-small + h2 {
    margin-top: 4.8rem;
  }
  .list-small + h2 {
    margin-top: 4.8rem;
  }
  ol.wp-block-list li,
  ol.list-small li {
    padding-left: 2.7rem;
  }
  ol.wp-block-list li .wp-block-list,
  ol.list-small li .wp-block-list {
    margin-left: -2.7rem;
    width: calc(100% + 2.7rem);
  }
  ol.wp-block-list li .wp-block-list li,
  ol.list-small li .wp-block-list li {
    font-size: 1.3rem;
    line-height: 1.6;
  }
  ol.wp-block-list li .wp-block-list li::before,
  ol.list-small li .wp-block-list li::before {
    top: 9;
  }
  .wp-block-image,
  .responsive-image {
    margin-block: 2.4rem;
  }
  .wp-block-image.is-style-scroll img,
  .responsive-image.is-style-scroll img {
    min-width: 788px;
  }
  .wp-block-image + *,
  .responsive-image + * {
    margin-top: 2.4rem;
  }
  .wp-block-image + h2,
  .responsive-image + h2 {
    margin-top: 4.8rem;
  }
  .wp-block-columns + h2 {
    margin-top: 4.8rem;
  }
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table {
    margin-top: 2.4rem;
  }
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + * {
    margin-top: 2.4rem;
  }
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + *.note-list {
    margin-top: 0.8rem;
  }
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table + h2 {
    margin-top: 4.8rem;
  }
  .wp-block-flexible-table-block-table.wp-block-flexible-table-block-table > table + figcaption {
    margin-top: 0.8rem;
  }
  .wp-block-flexible-table-block-table.is-style-dl-list > table tr th {
    max-width: 100%;
    padding-left: 1.2rem;
  }
  .wp-block-flexible-table-block-table.is-style-dl-list tbody tr {
    border-bottom: none;
  }
  .wp-block-image.is-style-center-placement img {
    height: auto !important;
  }
  .wp-block-media-text {
    gap: 2.4rem;
  }
  .main-simple {
    padding-bottom: 8rem;
  }
  .main__bg {
    padding: 2.8rem 1.5rem;
  }
  .main__bg:last-child {
    margin-bottom: 8rem;
  }
  .main__bg + * {
    margin-top: 8rem;
  }
  .main__bg-inner + * {
    margin-top: 2.4rem;
  }
  .main__bg-inner + *.cta-banner {
    margin-top: 4.8rem;
  }
  .main__bg-inner + h2 {
    margin-top: 4.8rem;
  }
  .main__bg-inner .main__bg-inner + * {
    margin-top: 2.4rem;
  }
  .main--error h1 {
    width: 80%;
  }
  .main--error .error-text {
    font-size: 1.5rem;
  }
  .main--error .error-link {
    font-size: 1.5rem;
  }
  .archive-news__filter {
    display: grid;
    gap: 1.2rem 1.3rem;
    grid-template-columns: repeat(2, 1fr);
    padding-bottom: 3.1rem;
    padding-inline: 1.5rem;
  }
  .archive-news__filter-btn {
    font-size: 1.3rem;
    height: 3.9rem;
    min-width: 100%;
    padding: 0.9rem 1rem;
    width: 100%;
  }
  .archive-news {
    padding-bottom: 8rem;
  }
  .archive-news__list + * {
    margin-top: 4.8rem;
  }
  .archive-news__link {
    flex-wrap: wrap;
    gap: 1rem 1.3rem;
    padding-block: 2.1rem 2.4rem;
  }
  .archive-news__date {
    font-size: 1.8rem;
    line-height: 1.2222222222;
    min-width: auto;
  }
  .archive-news__title {
    flex: initial;
    margin-left: 0;
    width: 100%;
  }
  .archive-column {
    margin-bottom: 8rem;
  }
  .archive-column__grid {
    margin-bottom: 4rem;
    margin-inline: auto;
    max-width: 91.0447761194%;
  }
  .archive-column__link {
    flex-direction: column;
    gap: 1.3rem;
  }
  .archive-column__thumb {
    width: 100%;
  }
  .archive-column__body {
    gap: 1rem;
  }
  .archive-column__title {
    font-size: 1.6rem;
    line-height: 1.4;
  }
  .archive-column__excerpt {
    font-size: 1.4rem;
    line-height: 1.7142857143;
  }
  .c-pager {
    gap: 2rem;
  }
  .c-pager__button {
    height: 3rem;
    width: 3rem;
  }
  .c-pager__button::after {
    width: 0.5rem;
  }
  .c-pager__list {
    gap: 1rem;
  }
  .c-pager__list-link {
    font-size: 1.6rem;
    padding-inline: 0.5rem;
  }
  .c-pager__list-link--dots {
    font-size: 1.4rem;
    width: 1rem;
  }
  .c-pager__list-item.is-current .c-pager__list-link {
    font-size: 2rem;
  }
  .page-id-477 .main p:not([class]) + .lower-sec-title__sub,
  .page-id-477 .wp-block-paragraph + .lower-sec-title__sub {
    margin-top: 2.4rem;
  }
  .case-archive {
    padding-bottom: 8rem;
  }
  .case-archive__filter {
    display: grid;
    gap: 1.2rem 1.3rem;
    grid-template-columns: repeat(2, 1fr);
    padding-inline: 1.5rem;
  }
  .case-archive__filter-btn {
    font-size: 1.3rem;
    height: 3.9rem;
    min-width: 100%;
    padding: 0.9rem 1rem;
    width: 100%;
  }
  .case-archive__grid {
    gap: 2rem;
    grid-template-columns: repeat(1, 1fr);
    margin-bottom: 4rem;
  }
  .single-case {
    display: flex;
    flex-direction: column;
  }
  .single-case .page-hero {
    margin-bottom: 4rem;
    order: 2;
    padding-top: 0;
  }
  .single-case .page-hero__inner {
    padding-top: 0;
  }
  .single-case .page-bread {
    order: 1;
    padding-bottom: 2.4rem;
    padding-top: 8.9rem;
  }
  .single-case .main__bg {
    order: 3;
  }
  .single-case .cta-cards {
    order: 4;
  }
  .case-detail__visual {
    gap: 1.2rem;
    grid-template-columns: 1fr;
  }
  .case-summary-box {
    padding: 2rem 2.4rem 2.4rem;
  }
  .case-challenge-box {
    gap: 1.2rem;
    grid-template-columns: 1fr;
    margin-bottom: 4rem;
    padding: 2rem 2.4rem 2.4rem;
  }
  .case-challenge-box__triangle {
    margin-inline: auto;
    rotate: 90deg;
  }
  .is-company-background-page .main::before {
    background-size: auto 100%;
  }
  .page-id-922 .page-introduction__contents p.wp-block-paragraph {
    line-height: 1.8;
  }
  .page-id-943 .main__bg p:first-child + * {
    margin-top: 4.8rem;
  }
  .page-id-943 .wp-block-columns.is-style-gap-small {
    gap: 1.2rem !important;
  }
  .page-id-943 .wp-block-columns .wp-block-list li {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .page-id-943 .wp-block-columns .wp-block-list li + * {
    margin-top: 1.2rem;
  }
  .page-id-928 .wp-block-columns + *.wp-block-columns {
    gap: 0 !important;
    margin-top: 2.4rem;
  }
  .contact {
    padding: 6rem 0 8rem;
  }
  .contact__cols {
    gap: 2.4rem;
    grid-template-columns: 1fr;
  }
  .contact__lead {
    font-size: 1.5rem;
    padding-top: 0;
  }
  .contact__cta-link {
    font-size: 1.5rem;
  }
  .contact__form {
    margin-top: 8rem;
  }
  .contact__title {
    font-size: 2.6rem;
    text-align: center;
  }
  .contact__row--flex {
    gap: 1rem;
  }
  .contact__actions input {
    font-size: 1.5rem;
    height: 5rem;
  }
  .contact__mini {
    gap: 0.6rem;
  }
  .glossary {
    margin-block: 0 8rem;
  }
  .glossary__card {
    padding: 2.8rem 1.8rem 3.6rem;
  }
  .glossary-tabs__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .glossary-tabs__link {
    font-size: 1.3rem;
  }
  .glossary__content {
    font-size: 1.4rem;
    margin-top: 3.2rem;
  }
  body.post-type-archive-glossary .glossary__content .lower-sec-title,
  body.single-glossary .glossary__content .lower-sec-title {
    display: block;
    margin-bottom: 1.6rem;
  }
  body.post-type-archive-glossary .glossary__content .lower-sec-title span,
  body.single-glossary .glossary__content .lower-sec-title span {
    display: block;
    margin: 0.3rem 0 0;
  }
  .page-status .page-status__card {
    margin-top: 1.6rem;
    padding-block: 5.6rem 4rem;
  }
  .page-status .page-status__title {
    font-size: 4.6rem;
    line-height: 1.1;
  }
  .page-status .page-status__lead {
    font-size: 1.6rem;
    line-height: 1.7;
    margin-top: 2.4rem;
  }
  .page-status .page-status__text p {
    margin-top: 1.8rem;
  }
  .page-status .page-status__text--comingsoon {
    margin-top: 2.4rem;
  }
  .page-status .page-status__btn {
    margin-top: 3.2rem;
  }
  .page-status .page-status__btn .btn__link {
    min-width: 18.8rem;
  }
  .product-related {
    padding-block: 4.8rem;
  }
  .product-related__title {
    font-size: 2rem;
  }
  .product-related__title::after {
    width: 5.5rem;
  }
  .product-related__title + * {
    margin-top: 2.4rem;
  }
  .archive-product__inner {
    margin-block: 0 7.2rem;
  }
  .taxonomy-product__lead {
    font-size: 1.4rem;
    line-height: 1.8285714286;
  }
  .search-result__head {
    font-size: 1.6rem;
    gap: 0.4rem;
    line-height: 1.5;
    padding-bottom: 0.8rem;
    padding-left: 1.8rem;
  }
  .search-result__head::before {
    height: 0.6rem;
    top: 1.8rem;
    width: 0.6rem;
  }
  .search-result__head::after {
    width: 5.5rem;
  }
  .search-result__head + * {
    margin-top: 2.4rem;
  }
  .search-result__head-count {
    font-size: 2.4rem;
    line-height: 1.5;
    margin-right: 1px;
  }
  .search-result__head-empty {
    line-height: 2.25;
  }
  .search-result__empty {
    text-align: left;
  }
  .product-search-wrap.main__bg {
    margin-bottom: 1.4rem;
    padding-bottom: 2.8rem;
  }
  .product-search {
    height: 5.5rem;
    padding-right: 1.4rem;
  }
  .product-search__input {
    padding-left: 1.1rem;
  }
  .product-search__input::-moz-placeholder {
    font-size: 1.4rem;
  }
  .product-search__input::placeholder {
    font-size: 1.4rem;
  }
  .product-search__btn {
    width: 2.5rem;
  }
  .product-anchors {
    gap: 1rem;
    margin-top: 3.2rem;
  }
  .product-card-grid {
    gap: 2.4rem;
    grid-template-columns: repeat(1, 1fr);
    padding-inline: 1.35rem;
  }
  .product-card-grid--2column {
    grid-template-columns: 1fr;
  }
  .product-card-grid--no-image {
    gap: 1.4rem;
  }
  .product-row-card__item {
    flex-direction: column;
    gap: 1.2rem;
  }
  .product-row-card__item + * {
    margin-top: 2.6rem;
    padding-top: 2.4rem;
  }
  .product-row-card__thumb {
    width: 100%;
  }
  .product-row-card__thumb--noimg img {
    width: 14.6rem;
  }
  .lower-sec-title__sub.product-row-card__title + * {
    margin-top: 1.4rem;
  }
  .product-list-card {
    margin-top: 2.4rem;
  }
  .product-list-card__item {
    flex-direction: column;
    gap: 1.4rem;
    padding: 1.4rem 1.4rem 1.6rem;
  }
  .product-list-card__thumb {
    width: 100%;
  }
  .product-list-card__thumb--noimg img {
    width: 47.868852459%;
  }
  .product-list-card__title {
    padding-left: 1.8rem;
  }
  .product-list-card__title::before {
    height: 0.6rem;
    width: 0.6rem;
  }
  .product-list-card__desc {
    line-height: 1.7142857143;
    margin-top: 1.4rem;
  }
  .taxonomy-target .main__bg-inner--has-image {
    flex-direction: column;
  }
  .taxonomy-target .main__bg-inner--has-image .main__bg-image {
    width: 100%;
  }
  .taxonomy-target .product-list-card__thumb {
    width: 100%;
  }
  .test-types__list {
    grid-template-columns: 1fr;
  }
  .issue-intro--has-image {
    flex-direction: column;
  }
  .issue-intro__image {
    width: 100%;
  }
  .issue-intro + * {
    margin-top: 4.8rem;
  }
  .issue-about + * {
    margin-top: 4.8rem;
  }
  .issue-feature__item + * {
    margin-top: 1.6rem;
  }
  .issue-feature + * {
    margin-top: 2.4rem;
  }
  .single-product .page-hero--single-page .page-hero__inner {
    padding-bottom: 3rem;
  }
  .single__inner {
    margin-block: 4rem 6.4rem;
    padding: 2rem 1.2rem;
  }
  .single__inner.column__inner {
    padding: 2rem 1.2rem;
  }
  .single-page {
    padding-block: 4rem 6.4rem;
  }
  .single-news .page-hero + .main__bg {
    padding-top: 2.8rem;
  }
  .single-news .lower-sec-title__small + * {
    margin-top: 1rem !important;
  }
  .single-news__body {
    padding-bottom: 3.6rem;
  }
  .single-news__body h1:not([class]),
  .single-news__body h1.wp-block-heading {
    font-size: 1.8rem;
    margin-bottom: 2.4rem;
    padding: 0.6rem 1.3rem;
  }
  .single-news__body h2:not([class]),
  .single-news__body h2.wp-block-heading {
    font-size: 1.6rem;
    padding-left: 1.8rem;
  }
  .single-news__body h2:not([class])::before,
  .single-news__body h2.wp-block-heading::before {
    height: 0.6rem;
    width: 0.6rem;
  }
  .single-news__body h2:not([class])::after,
  .single-news__body h2.wp-block-heading::after {
    width: 4.7rem;
  }
  .single-news__body h3:not([class]),
  .single-news__body h3.wp-block-heading {
    margin-bottom: 1.2rem;
  }
  .single-news__body h4:not([class]),
  .single-news__body h4.wp-block-heading {
    font-size: 1.4rem;
  }
  .single-news__body h5:not([class]),
  .single-news__body h5.wp-block-heading {
    font-size: 1.4rem;
  }
  .single-news__body h6:not([class]),
  .single-news__body h6.wp-block-heading {
    font-size: 1.3rem;
  }
  .single-news__body + * {
    margin-top: 2.4rem;
  }
  .single-body h3::after {
    margin-top: 2.4rem;
  }
  .single-column {
    display: flex;
    flex-direction: column;
  }
  .single-column .page-hero {
    margin-bottom: 4rem;
    order: 2;
    padding-top: 0;
  }
  .single-column .page-hero__inner {
    padding-top: 0;
  }
  .single-column .page-bread {
    order: 1;
    padding-bottom: 2.4rem;
    padding-top: 8.9rem;
  }
  .single-column .main__bg {
    order: 3;
  }
  .single-column .cta-cards {
    order: 4;
  }
  .single__author {
    flex-direction: column;
    padding: 2.4rem 2.4rem 2.6rem 2.4rem;
  }
  .single__author-thumb {
    margin-inline: auto;
    width: 90%;
  }
  .parent-pageid-1542 .wp-block-flexible-table-block-table > table tr > th {
    font-size: 1.5rem;
  }
  .parent-pageid-1542 .wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-vertical,
  .parent-pageid-1542 .wp-block-flexible-table-block-table.is-style-diagonal-header .table__label-horizontal {
    font-size: 1.7rem;
  }
  .parent-pageid-1542 .circle-list__text {
    font-size: 1.4rem;
  }
  .parent-pageid-1542 .main p:not([class]) + .lower-sec-title__small,
  .parent-pageid-1542 .wp-block-paragraph + .lower-sec-title__small {
    margin-top: 1.6rem;
  }
  .top__head-title {
    padding-bottom: 2rem;
  }
  .top__head-title::after {
    background: linear-gradient(to right, var(--primary) 0%, var(--primary) 5.5rem, var(--border) 5.5rem, var(--border) 100%);
  }
  .top-fv {
    height: auto;
    min-height: auto;
  }
  .top-fv__bg {
    height: 100svh;
  }
  .top-fv__bg video.--pc {
    display: none;
  }
  .top-fv__bg video.--sp {
    display: block;
  }
  .top-fv__content {
    padding: 0;
    width: 100%;
  }
  .top-fv__sp {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    height: 100vh;
    justify-content: flex-end;
    min-height: 46rem;
    padding-bottom: 6rem;
    padding-inline: 2rem;
  }
  .top-fv__catch {
    font-size: 3rem;
    width: 30.7rem;
  }
  .top-fv__catch-en {
    font-size: 2rem;
    line-height: 1.2;
    margin-top: 1.3rem;
  }
  .top-fv__btns {
    background: var(--primary-gradient-col);
    gap: 1.2rem;
    grid-template-columns: repeat(1, 1fr);
    margin-top: 0rem;
    max-width: 100%;
    padding: 4rem 2rem;
  }
  .top-fv__industry-link {
    font-size: 1.5rem;
    line-height: 1.2;
    min-height: 1.8rem;
  }
  .top-fv__industry-link.is-active {
    font-size: 1.7rem;
  }
  .top-about__img {
    aspect-ratio: 4/3;
  }
  .top-about__heading {
    font-size: 2rem;
    line-height: 1.4;
    margin-top: 2.8rem;
  }
  .top-about__text {
    font-size: 1.5rem;
    margin-top: 2rem;
  }
  .top-about__btn {
    margin-top: 2.8rem;
  }
  .top-business {
    padding: 6.4rem 0;
  }
  .top-business__head.top__head-title {
    margin-bottom: 3rem;
  }
  .top-business__lead {
    font-size: 1.5rem;
    line-height: 1.8;
    margin-top: 0.4rem;
  }
  .top-business__card {
    padding-block: 2.4rem;
  }
  .top-business__card-header {
    gap: 0.6rem;
  }
  .top-business__card-num {
    font-size: 2rem;
  }
  .top-business__card-title {
    font-size: 1.8rem;
  }
  .top-business__card-text {
    font-size: 1.4rem;
    margin-top: 1.4rem;
  }
  .top-case__body {
    display: flex;
    flex-direction: column;
  }
  .top-case__body .top-case__head-content::after,
  .top-case__body .sec-title,
  .top-case__body .top-case__desc,
  .top-case__body .top-case-navs {
    position: relative;
    z-index: 2;
  }
  .top-case__head {
    display: contents;
    margin-bottom: 2.8rem;
  }
  .top-case__head-content {
    display: contents;
  }
  .top-case__head-content::after {
    flex: auto;
    margin-bottom: 0;
    margin-top: 2rem;
    width: calc(100% - 1.7rem);
  }
  .top-case__desc {
    font-size: 1.5rem;
    line-height: 1.8;
    margin-bottom: 2.3rem;
    margin-top: 2.8rem;
    order: 3;
    width: calc(100% - 1.7rem);
  }
  .top-case-navs {
    align-items: center;
    display: flex;
    gap: 1.2rem;
    justify-content: center;
    margin-inline: auto;
    margin-top: 2.4rem;
    order: 5;
    width: 31.5rem;
  }
  .top-case-navs::after {
    background-color: var(--white);
    content: "";
    display: block;
    height: 1px;
    margin-right: 0.2rem;
    order: 2;
    width: 6rem;
  }
  .top-case-nums {
    align-items: flex-start;
    aspect-ratio: 1/1;
    border: 1px solid var(--white);
    border-radius: 50%;
    color: var(--white);
    display: flex;
    font-family: var(--barlow-font-family);
    font-size: 3.1rem;
    gap: 1.6rem;
    justify-content: center;
    letter-spacing: 0.09em;
    line-height: 1.1935483871;
    order: 1;
    padding-top: 1.3rem;
    position: relative;
    width: 9.3rem;
  }
  .top-case-nums::after {
    background-color: var(--white);
    content: "";
    display: block;
    height: 1px;
    left: 49%;
    position: absolute;
    top: 51%;
    transform: translate(-50%, -50%) rotate(-69deg);
    width: 5.5rem;
  }
  .top-case-nums .all-count {
    padding-top: 2.7rem;
  }
  .top-case-arrows {
    order: 3;
    padding-bottom: 0;
  }
  .top-case__slider {
    order: 4;
  }
  .top-case__slider-wrap {
    max-width: 91.5492957746%;
  }
  .top-case__slider .slick-list {
    margin-left: -1rem;
  }
  .top-case__slide.slick-slide {
    padding-inline: 1rem;
  }
  .top-case__slide-link {
    padding-bottom: 2rem;
  }
  .top-case__slide-img--noimg img {
    width: 47.868852459%;
  }
  .top-case__slide-excerpt {
    margin-bottom: 0.9rem;
  }
  .top-case__btn {
    margin-top: 2.4rem;
    order: 5;
  }
  .top-guide {
    background-color: var(--second-bg);
    padding-block: 6.4rem;
  }
  .top-guide__text {
    font-size: 1.5rem;
  }
  .top-guide__btns {
    gap: 1.4rem;
    grid-template-columns: repeat(1, 1fr);
    margin-inline: auto;
    max-width: 27.8rem;
    width: 100%;
  }
  .top-guide__btn-item {
    margin-inline: auto;
    max-width: 19.6rem;
    width: 100%;
  }
  .top-info {
    padding: 6.4rem 0;
  }
  .top-info__item-link {
    gap: 1rem 1.3rem;
    padding-block: 2.4rem;
  }
  .top-info__item-date {
    font-size: 1.8rem;
  }
  .top-info__item-title {
    font-size: 1.5rem;
    line-height: 1.4666666667;
  }
  .top-info__item-link--col {
    gap: 1.4rem;
    padding-bottom: 2.4rem;
  }
  .top-info__item-thumb {
    width: 9.5rem;
  }
  .top-info__item-body .top-info__item-title {
    font-size: 1.4rem;
  }
  .top-info__item-excerpt {
    font-size: 1.3rem;
    line-height: 1.8461538462;
    margin-top: 0.6rem;
  }
  .top-cards {
    padding-top: 6.4rem;
  }
  .top-cards__scroll {
    top: -2.2rem;
  }
  .top-cards__scroll-item {
    width: 88.4rem;
  }
  .top-card__link {
    padding: 4.8rem 1.5rem;
  }
  .top-card__head {
    gap: 0;
  }
  .top-card__img {
    aspect-ratio: 305/170;
    margin-top: 2.8rem;
  }
  .top-card__body {
    margin-top: 2.4rem;
  }
  .top-card__text {
    font-size: 1.5rem;
  }
  .top-contact {
    background-color: #f5f5f5;
    padding-top: 17.5rem;
  }
  .top-contact__bg {
    height: 62.3rem;
    top: -9.6rem;
    z-index: 0;
  }
  .top-contact .cta {
    padding-top: 0;
  }
  .u-pc {
    display: none;
  }
  .u-tab {
    display: block !important;
  }
  .u-pc-inline {
    display: none;
  }
  .u-sp-inline {
    display: inline;
  }
  .u-inner {
    padding-inline: var(--padding-sp);
  }
  .u-pb-wide {
    padding-bottom: 8rem;
  }
}

@media (max-width: 600px){
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse {
    grid-template-areas: "media-text-content" "media-text-media";
  }
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 1;
  }
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse .wp-block-media-text__media {
    grid-column: 1;
    grid-row: 2;
  }
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse.has-media-on-the-right {
    grid-template-areas: "media-text-media" "media-text-content";
  }
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse.has-media-on-the-right .wp-block-media-text__content {
    grid-row: 2;
  }
  .wp-block-media-text.is-stacked-on-mobile.is-stacked-on-mobile-reverse.has-media-on-the-right .wp-block-media-text__media {
    grid-row: 1;
  }
}

@media (any-hover: hover){
  .btn-cta__link:hover {
    color: var(--white);
  }
  .btn-cta__link:hover::after {
    opacity: 0;
  }
  .btn-cta__link:hover .btn-cta__arrow::before {
    opacity: 0;
  }
  .btn-cta__link:hover .btn-cta__arrow::after {
    background-color: var(--primary-dark);
  }
  .btn__link:hover {
    background-color: var(--white);
    color: var(--primary);
  }
  .btn__link:hover .btn__link-mail,
  .btn__link:hover .btn__link-arrow {
    background-color: var(--primary);
  }
  .btn__link:hover .btn__link-mail::after,
  .btn__link:hover .btn__link-arrow::after {
    background-color: var(--white);
  }
  .btn-list__link:hover {
    color: var(--primary);
  }
  .btn-list__link:hover .btn-list__arrow {
    background-color: var(--primary);
  }
  .btn-list__link:hover .btn-list__arrow::after {
    background-color: var(--white);
  }
  .btn--white .btn__link:hover {
    background-color: var(--primary);
    color: var(--white);
  }
  .btn--white .btn__link:hover .btn__link-arrow {
    background-color: var(--white);
  }
  .btn--white .btn__link:hover .btn__link-arrow::after {
    background-color: var(--primary);
  }
  .card-item--link:hover .card-item__image img {
    transform: scale(1.05);
  }
  .card-item__image-link:hover {
    opacity: 0.8;
  }
  .center-card__link:hover::after {
    opacity: 1;
  }
  .center-card__link:hover .center-card__title {
    color: var(--white);
  }
  .contact-agree__item .contact-check__label a:hover {
    text-decoration: none;
  }
  .contact-btn--primary:hover {
    opacity: 0.8;
  }
  .contact-btn--reset:hover {
    opacity: 0.8;
  }
  .cta-cards__link:hover {
    border-color: var(--white);
    color: var(--white);
  }
  .cta-cards__link:hover::after {
    opacity: 1;
  }
  .cta-cards__link:hover .cta-cards__title::before {
    background-color: var(--white);
  }
  .cta-cards__link:hover .cta-cards__title::after {
    background: linear-gradient(to right, var(--accent) 0%, var(--accent) 7.2rem, var(--border) 7.2rem, var(--border) 100%);
  }
  .cta-cards__link:hover .cta-cards__arrow::before {
    opacity: 0;
  }
  .cta-cards__link:hover .cta-cards__arrow::after {
    background-color: var(--primary);
  }
  .cta__item-link:hover {
    color: var(--primary);
  }
  .cta__item-link:hover::after {
    opacity: 0;
  }
  .cta__item-link:hover .cta__item-title::after {
    background: linear-gradient(to right, var(--accent) 0%, var(--accent) 7.3rem, var(--border) 7.3rem, var(--border) 100%);
  }
  .cta__item-link:hover .cta__item-arrow::before {
    opacity: 1;
  }
  .cta__item-link:hover .cta__item-arrow::after {
    background-color: var(--white);
  }
  .flow-step__content .btn__link:hover {
    background-color: var(--primary);
    color: var(--white);
  }
  .flow-step__content .btn__link:hover .btn__link-mail,
  .flow-step__content .btn__link:hover .btn__link-arrow {
    background-color: var(--white);
  }
  .flow-step__content .btn__link:hover .btn__link-mail::after,
  .flow-step__content .btn__link:hover .btn__link-arrow::after {
    background-color: var(--primary);
  }
  .footer__cat-link:hover {
    color: rgba(255, 255, 255, 0.7);
  }
  .footer__link:hover {
    color: rgba(255, 255, 255, 0.7);
  }
  .footer__link:hover::before {
    background-color: var(--accent);
  }
  .footer__single-link:hover {
    color: rgba(255, 255, 255, 0.7);
  }
  .footer__recruit-bottom:hover {
    background-color: var(--white);
    border-color: rgba(255, 255, 255, 0.8);
    color: var(--primary);
  }
  .footer__bottom-link:hover {
    color: rgba(255, 255, 255, 0.7);
  }
  .footer__sitemap:hover {
    color: rgba(255, 255, 255, 0.7);
  }
  .header__search-btn:hover .header__search-icon {
    color: var(--accent);
  }
  .header__lang-link:hover {
    color: var(--accent);
  }
  .header__cta:hover {
    color: var(--primary);
  }
  .header__cta:hover::before {
    background-color: var(--primary);
  }
  .header__cta:hover::after {
    opacity: 0;
  }
  .header.scrolled .header__lang-link:hover {
    color: var(--accent);
  }
  .industries__link:hover {
    opacity: 0.6;
  }
  .lower-sec-title--link a:hover {
    opacity: 0.6;
  }
  .lower-sec-title__sub--link a:hover {
    opacity: 0.6;
  }
  .nav__link:hover {
    color: var(--accent);
  }
  .nav__mega-top-link:hover {
    color: var(--primary);
  }
  .nav__mega-top-link:hover .nav__mega-top-link-arrow {
    background-color: var(--primary);
  }
  .nav__mega-top-link:hover .nav__mega-top-link-arrow::after {
    background-color: var(--white);
  }
  .nav__mega-item.is-current .nav__mega-link:hover::before {
    background-color: var(--accent);
  }
  .nav__mega-link:hover {
    color: var(--accent);
  }
  .nav__mega-link:hover::before {
    background-color: var(--accent);
  }
  .nav-drawer__child-link:hover {
    color: var(--primary);
  }
  .nav-drawer__child-link:hover::before {
    background-color: var(--primary);
  }
  .nav-drawer__contact-link:hover {
    color: var(--primary);
  }
  .nav-drawer__contact-link:hover::after {
    opacity: 0;
  }
  .nav-drawer__contact-link:hover .nav-drawer__contact-arrow::before {
    opacity: 1;
  }
  .nav-drawer__contact-link:hover .nav-drawer__contact-arrow::after {
    background-color: var(--white);
  }
  .nested-list__item a:hover {
    opacity: 0.6;
  }
  .page-anchor-links__link.btn__link:hover::after {
    opacity: 1;
  }
  .page-bread__link:hover {
    color: var(--primary);
  }
  a.page-link-card:hover .page-link-card__inner {
    color: var(--white);
  }
  a.page-link-card:hover .page-link-card__inner::after {
    opacity: 1;
  }
  a.page-link-card:hover .page-link-card__arrow::before {
    opacity: 0;
  }
  a.page-link-card:hover .page-link-card__arrow::after {
    background-color: var(--primary);
  }
  .c-pager__button:hover {
    background: var(--primary);
    border-color: var(--primary);
  }
  .c-pager__button:hover::after {
    background-color: var(--white);
  }
  .c-pager__list-link:hover {
    color: var(--primary);
  }
  .post-card__link:hover {
    opacity: 0.75;
  }
  .main p:not([class]) a:hover,
  .wp-block-paragraph a:hover {
    opacity: 0.6;
  }
  ul.wp-block-list li a:hover,
  ul.list-small li a:hover {
    opacity: 0.6;
  }
  .archive-news__filter-btn:hover {
    background: var(--primary);
    color: var(--white);
  }
  .archive__link:hover {
    opacity: 0.75;
  }
  .archive-news__link:hover {
    opacity: 0.75;
  }
  .archive-column__link:hover {
    opacity: 0.75;
  }
  .c-pager__button:hover {
    background: var(--primary);
    border-color: var(--primary);
  }
  .c-pager__button:hover::after {
    background-color: var(--white);
  }
  .c-pager__list-link:hover {
    color: var(--primary);
  }
  .case-card__link:hover {
    opacity: 0.75;
  }
  .case-archive__filter-btn:hover {
    background: var(--primary);
    color: var(--white);
  }
  .glossary-tabs__link:hover {
    background-color: var(--primary);
    color: var(--white);
  }
  .product-tag__link:hover {
    opacity: 0.7;
  }
  .btn__link.product-card-grid__title:hover::after,
  .btn__link.product-card-grid__btn:hover::after {
    opacity: 1;
  }
  .single-body :where(a):hover {
    opacity: 0.75;
  }
  .single-body .single-btn:hover {
    opacity: 0.8;
  }
  .single-back__link:hover {
    background: var(--primary);
    color: var(--white);
  }
  body.home .header .header__lang-link:hover {
    color: var(--accent);
  }
  body.home .header .nav__link:hover {
    color: var(--accent);
  }
  body.home .header .nav__item--external .nav__link:hover::after {
    background-color: var(--accent);
  }
  body.home .header.scrolled .nav__link:hover {
    color: var(--accent);
  }
  body.home .header.scrolled .nav__link:hover .nav__arrow {
    color: var(--accent);
  }
  .top-fv__industry-link:hover {
    color: #65b2ff;
  }
  .top-fv__industry-link:hover .top-fv__industry-dot {
    background: rgba(101, 178, 255, 0.12);
    border-color: #65b2ff;
  }
  .top-fv__industry-link.is-active:hover .top-fv__industry-dot {
    background: #65b2ff;
    border-color: #65b2ff;
  }
  .top-case__arrow:hover {
    background: var(--primary);
    border-color: var(--primary);
  }
  .top-case__arrow:hover::after {
    background-color: var(--white);
  }
  .top-case__slide-link:hover {
    background-color: var(--primary);
    color: var(--white);
  }
  .top-case__slide-link:hover .top-case__slide-title {
    background-image: linear-gradient(to right, var(--accent) 0%, var(--accent) 5.6rem, var(--white) 5.6rem, var(--white) 100%);
  }
  .top-info__item-link:hover {
    opacity: 0.7;
  }
  .top-info__item-link--col:hover {
    opacity: 0.75;
  }
  .top-card__link:hover {
    color: var(--white);
  }
  .top-card__link:hover::after {
    opacity: 1;
  }
  .top-card__link:hover .top-card__head::after {
    background: linear-gradient(to right, var(--accent) 0%, var(--accent) 8rem, var(--white) 8rem, var(--white) 100%);
  }
  .top-card__link:hover .sec-title__head::before {
    background-color: var(--white);
  }
  .top-card__link:hover .btn-list__arrow {
    background-color: var(--white);
    border-color: var(--white);
  }
  .top-card__link:hover .btn-list__arrow::after {
    background-color: var(--primary);
  }
  .top-card__link:hover .top-card__bg {
    opacity: 0.3;
  }
}

@media (hover: hover) and (pointer: fine){
  .main--error .error-link::after {
    transition: 0.5s;
    transition-property: left;
  }
  .main--error .error-link:hover::after {
    left: 1rem;
  }
  .contact__cta-link:hover {
    background-color: var(--black);
    color: var(--white);
  }
  .contact__actions input {
    transition: 0.5s;
    transition-property: opacity;
  }
  .contact__actions input:hover {
    opacity: 0.8;
  }
}

@media (prefers-reduced-motion: reduce){
  body:not(.home) .header,
  body:not(.home) .main,
  body:not(.home) .footer {
    animation: none;
  }
  .wrapper {
    transition: none;
  }
  body.is-page-leaving .wrapper {
    opacity: 1;
  }
}

@media all and (-ms-high-contrast: none){
  html,
  body {
    display: none;
  }
}
/*# sourceMappingURL=maps/style.css.map */
