.fw-bold { font-weight: 700; }
.fw-semibold { font-weight: 600; }
.fw-medium { font-weight: 500; }
.fw-light { font-weight: 300; }

/* タイポグラフィ */
.t-history {
  font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	font-size: var(--fs-40);
	line-height: var(--lh-140);
  letter-spacing: var(--ls-03);
}
@media(max-width: 767px) {
	.t-history {
		font-size: var(--fs-20);
    line-height: var(--lh-160);
    letter-spacing: var(--ls-08);
	}
}
.t-service-item-title {
	font-family: var(--ff-mincho);
	font-size: var(--fs-28);
	line-height: var(--lh-160);
	font-weight: var(--fw-semibold);
}
@media(max-width: 767px) {
	.t-service-item-title {
		font-size: var(--fs-20);
	}
}
.t-month {
	font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	font-size: var(--fs-24);
	line-height: var(--lh-160);
  letter-spacing: var(--ls-03);
}
@media(max-width: 767px) {
	.t-month {
		font-size: var(--fs-18);
    letter-spacing: var(--ls-08);
	}
}
.t-case-title {
  font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	font-size: var(--fs-20);
	line-height: var(--lh-160);
}
@media(max-width: 767px) {
	.t-case-title {
		font-size: var(--fs-16);
	}
}
.t-form {
  font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	line-height: var(--lh-160);
  letter-spacing: var(--ls-08);
}
.t-main-copy {
	color: var(--color-white);
	font-family: var(--ff-mincho);
	font-size: var(--fs-64) !important;
	line-height: var(--lh-160);
	letter-spacing: var(--ls-10);
	font-weight: var(--fw-semibold);
}
@media (max-width: 767px) {
	.t-main-copy {
		font-size: var(--fs-36) !important;
		line-height: var(--lh-160);
		letter-spacing: var(--ls-08);
	}
}
.t-menu-button {
	font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	font-size: var(--fs-24);
	line-height: var(--lh-160);
	color: var(--color-gray01);
}
@media(min-width: 768px) and (max-width: 1023px) {
	.t-menu-button {
		font-size: var(--fs-20);
	}
}
@media(max-width: 767px) {
	.t-menu-button {
		font-size: var(--fs-16);
	}
}
.t-tag-line-copy {
	font-family: var(--ff-mincho);
	font-size: var(--fs-20);
	line-height: var(--lh-160) !important;
}
.t-tag-line p {
	font-family: var(--ff-mincho);
	line-height: var(--lh-120);
}
@media(min-width: 768px) and (max-width: 1023px) {
	.t-tag-line p {
    line-height: var(--lh-200);
  }
}
@media(max-width: 767px) {
	.t-tag-line p {
		font-size: var(--fs-15);
    line-height: var(--lh-180);
    letter-spacing: var(--ls-08);
  }
}
.t-contact {
	font-size: var(--fs-20);
	line-height: var(--lh-160);
	font-weight: var(--fw-bold);
}
@media(max-width: 767px) {
	.t-contact {
    font-size: var(--fs-16);
  }
}
.t-company-item {
	font-weight: var(--fw-bold);
	font-size: var(--fs-14);
  letter-spacing: var(--ls-05);
  color: var(--color-subtitle);
}
.t-item {
  font-size: var(--fs-15);
}
.t-footer-item, .t-case-tool, .t-case-keyword {
	font-size: var(--fs-15);
	line-height: var(--lh-160);
	letter-spacing: var(--ls-05);
}
@media (max-width: 767px) {
	.t-footer-item, .t-case-tool {
		font-size: var(--fs-13);
	}
}
.t-list {
  line-height: var(--lh-160);
  letter-spacing: var(--ls-05);
}
.t-business_hours, .t-ja-calendar, .t-zip-search, .t-recaptcha {
  font-family: var(--ff-gothic);
  font-size: var(--fs-13);
	line-height: var(--lh-160);
	letter-spacing: var(--ls-05);
}
.t-notes, .t-label {
	font-size: var(--fs-12);
	line-height: var(--lh-100);
	letter-spacing: var(--ls-05);
}
.t-service-number {
	font-family: var(--ff-roboto);
	font-size: var(--fs-20);
	line-height: var(--lh-120);
	letter-spacing: var(--ls-05);
}
.t-h1-embellishments {
	color: var(--color-subtitle);
	font-family: var(--ff-roboto);
	line-height: var(--lh-120);
	letter-spacing: var(--ls-05);
	font-weight: var(--fw-light);
}
@media (max-width: 767px) {
	.t-h1-embellishments {
		font-size: var(--fs-15);
	}
}
.t-copyright {
	font-family: var(--ff-roboto);
	font-size: var(--fs-12);
	line-height: var(--lh-120);
	letter-spacing: var(--ls-05);
	font-weight: var(--fw-light);
}
/* ----------- */

/* Lightingのデフォルト設定の変更 */
.alert {
  display: none;
}
.container {
	max-width: unset;
}
body .container :is(.is-layout-flow,.is-layout-constrained) p:where(:not(:last-child)) {
	margin-block-end: 0;
}
p a {
  color: inherit;
}
p {
  line-height: inherit;
}
a {
  color: inherit;
}
a:hover {
  color: inherit;
}
.is-layout-constrained {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.has-vk-color-primary-color {
	color: var(--color-black) !important;
}
.wp-block-button__link {
	font-size: unset;
}
.wp-block-button__link:hover {
	filter: none;
}
.vk_button_link:hover {
	cursor: pointer;
}
.vk_button_link_txt {
	text-decoration: none !important;
}
.scrolled .page_top_btn {
	display: none;
}
@media (min-width: 992px){
  body.device-pc .vk-mobile-nav-menu-btn {
    display: block;
	}
}
@media (min-width: 1200px) {
  body.device-pc .vk-mobile-nav-menu-btn {
    display: none;
	}
}
@media (max-width: 1023px) {
	.global-nav {
    display: none;
  }
}
@media (max-width: 767px) {
	.header_scrolled.admin-bar .site-header {
		top: 46px;
  }
}
.site-footer {
	display: none;
}
/* ----------- */

/* 採用サイトボタン */
.recruit-button a {
	border: 1px solid var(--color-black);
  color: var(--color-black);
  transition: color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base);
}
.recruit-button a:hover {
  color: var(--color-white);
  background-color: var(--color-black);
}
/* ----------- */

/* メッセージボタン（SPのみ） */
@media (min-width: 768px) {
	.message-button {
		display: none !important;
	}
}
/* ----------- */


/* ボタン */
.primary-button {
  width: 240px;
}
@media(max-width: 767px) {
  .primary-button {
    width: 200px;
  }
}
.primary-button.wp-block-button :is(a, button) {
	background-color: var(--color-white);
	color: var(--color-black);
  cursor: pointer;
	border: 1px solid var(--color-black);
	border-radius: 0;
  width: 100%;
  padding: 12px 0;
  transition: color var(--transition-base), background-color var(--transition-base);
}
.primary-button.wp-block-button :is(a, button):hover {
	background-color: var(--color-black);
	color: var(--color-white);
}
.primary-button.wp-block-button.dark :is(a, button) {
	background-color: var(--color-black);
	color: var(--color-white);
}
.primary-button.wp-block-button.dark :is(a, button):hover {
	background-color: var(--color-white);
	color: var(--color-black);
}
/* ----------- */

/* ヘッダー・フッターサイトロゴ */
.site-header-logo {
	margin: 0;
}
.site-header-logo span {
	display: none;
}
.site-header-logo, .site-footer-logo {
	position: relative;
}
.site-header-logo a::after, .site-footer-logo p {
	content: "";
	position: absolute;
	top:50%;
	transform: translateY( -50%);
	-webkit-mask: var(--icon-site-logo) no-repeat center / contain;
  mask: var(--icon-site-logo) no-repeat center / contain;
}
.site-header-logo a::after {
	background-color: var(--color-black);
}
.site-footer-logo p {
	background-color: var(--color-white)
}
@media (min-width: 1200px) {
	.site-header-logo a::after, .site-footer-logo, .site-footer-logo p{
		width: 350px;
		height: 28px;
	}
}
@media (min-width: 768px) and (max-width: 1199px) {
	.site-header-logo {
		height: var(--site-header-logo-height-tablet);
	}
	.site-header-logo a::after, .site-footer-logo, .site-footer-logo p {
		width: 278px;
		height: 22px;
	}
	.site-header-logo a::after {
		left: 20px;
	}
}
@media (max-width: 767px) {
	.site-header-logo {
		height: var(--site-header-logo-height-sp);
	}
	.site-header-logo a::after, .site-footer-logo, .site-footer-logo p {
		width: 220px;
		height: 18px;
	}
	.site-header-logo a::after {
		left: 16px;
	}
}
/* ----------- */

/* 左右の矢印アイコン */
:is(.right-arrow, .left-arrow) a {
  display: inline-flex;
  justify-content: center;
}
:is(.right-arrow, .left-arrow) span, h3.right-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.right-arrow span::after, .left-arrow span::before, h3.right-arrow::after {
  content: "";
  display: inline-block;
  width: 32px;
  height: 5px;
  transition: transform var(--transition-base);
  border-bottom: 1px solid currentColor;
}
h3.right-arrow::after {
  flex: 0 0 32px;
}
/* 右向き矢印 */
.right-arrow span::after, h3.right-arrow::after {
  border-right: 2px solid currentColor;
  transform: translateY(-2px) skew(45deg) scaleX(0.75);
  transform-origin: left center;
}
.right-arrow:not(:has(button:disabled)):hover span::after,
.right-arrow-hover:hover h3.right-arrow::after {
  transform: translateY(-2px) skew(45deg) scaleX(1);
}
/* 左向き矢印 */
.left-arrow span::before {
  border-left: 2px solid currentColor;
  transform: translateY(-2px) skew(-45deg) scaleX(0.75);
  transform-origin: right center;
}
.left-arrow:hover span::before {
  transform: translateY(-2px) skew(-45deg) scaleX(1);
}
/* ----------- */

/* 電話アイコン */
.tel-icon {
	position:relative;
	padding-left: 30px;
}
.tel-icon::before {
	--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' stroke-miterlimit='10' d='m5.127 10.329 2.766-2.656c.124-.12.167-.3.11-.463a17 17 0 0 1-.776-3.329.44.44 0 0 0-.436-.381H3.94a.44.44 0 0 0-.44.464c.08 1.588.688 6.954 5.134 11.401s9.813 5.054 11.401 5.134a.44.44 0 0 0 .464-.44v-2.85a.44.44 0 0 0-.381-.437 17 17 0 0 1-3.329-.776.44.44 0 0 0-.463.11l-2.656 2.766'/%3E%3C/svg%3E");
	
	content: "";
	position: absolute;
	left: 0px;
	top:50%;
	transform: translateY( -50%);
	width: 24px;
	height: 24px;
	background-color: currentcolor;
	-webkit-mask: var(--icon) no-repeat center / contain;
  mask: var(--icon) no-repeat center / contain;
}
/* ----------- */

/* 外部リンクアイコン */
.external_link a span {
	position:relative;
	padding-right: 32px !important;
}
.external_link a span::before, .external_link a span::after {
	content: "";
	position: absolute;
	right: 4px;
	background-color: currentcolor;
}
/* 外枠 */
.external_link a span::before {
	width: 16px;
	height: 16px;
	top: 50%;
	transform: translateY(-50%);
	-webkit-mask: var(--icon-external-box) no-repeat center / contain;
  mask: var(--icon-external-box) no-repeat center / contain;
}
/* 右斜め上矢印 */
.external_link a span::after {
	width: 12px;
	height: 12px;
	top: calc(50% - 2.5px);
	transform: translateY(-50%);
	-webkit-mask: var(--icon-external-arrow) no-repeat center / contain;
  mask: var(--icon-external-arrow) no-repeat center / contain;
	transition: transform var(--transition-base);
}
.external_link a:hover span::after,
.external_link-hover:hover .external_link a span::after {
  transform: translateY(-50%) translate(2px,-2px);
}
/* ----------- */

.underline-link a {
  cursor: pointer;
  color: inherit;
  text-decoration: none;
	padding-bottom: 0.1em;
  background-image: linear-gradient(180deg, currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 100% 1px;
  transition: background-size 0.3s cubic-bezier(0.17, 0.75, 0.45, 1);
}
.underline-link a:hover {
	background-position: right bottom;
	background-size: 0 1px;
}

/* フェードイン */
.ufade {
	opacity: 0;
	transition: opacity .8s ease-in-out
}
.ufade.fadein {
	opacity: 1;
}
/* ----------- */

/* ヘッダー */
.site-header {
	position: fixed;
	box-shadow: none;
	background-color: var(--color-background) !important;
}
@media (min-width: 1200px) {
	.site-header {
		padding: 20px 0;
		padding-left: 32px;
	}
}
.nav li:not(.recruit-button) a {
	color: var(--color-black);
}
body:not(.home) .site-header-logo a::after {
	transition: background-color var(--transition-base);
}
body:not(.home) .nav li:not(.recruit-button) a {
	transition: color var(--transition-base);
}
body.home .recruit-button a {
  transition: color 0s, background-color var(--transition-base), border-color 0s;
}

.global-nav {
	margin-right: 24px !important;
}
.global-nav-list > li:not(:first-child,.recruit-button) {
  margin-left: 16px;
}
.global-nav-list > li.recruit-button {
  margin-left: 28px;
}
.global-nav-list > li.recruit-button a {
  padding: 12px 24px;
}
.global-nav-list>li:not(.recruit-button)>a {
  position: relative;
	padding: 12px !important;
}
.global-nav-list>li:not(.recruit-button)>a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: var(--color-black);
  width: 0;
  transition: width 0.3s ease;
}
.global-nav-list>li:not(.recruit-button)>a:hover::before {
  width: 100%;
}
.global-nav-list>li .global-nav-name {
	font-size: var(--fs-15);
	line-height: var(--lh-160);
	letter-spacing: var(--ls-05);
  font-weight: var(--fw-medium);
}

.on-image.site-header {
	background-color: transparent !important
}
.home .on-image.site-header, .home .on-image.vk-mobile-nav-menu-btn:not(.menu-open) {
	mix-blend-mode: difference;
}
.on-image .global-nav-list>li:not(.recruit-button)>a::before {
  background-color: var(--color-white);
}
.on-image .nav li a {
  color: var(--color-white);
}
.on-image .site-header-logo a::after {
	background-color: var(--color-white);
}
.on-image .recruit-button a {
  border-color: var(--color-white);
  background-color: transparent;
}
.on-image.vk-mobile-nav-menu-btn {
	background-image: linear-gradient(var(--color-white), var(--color-white));
}
.on-image.vk-mobile-nav-menu-btn:not(.menu-open)::before, .on-image.vk-mobile-nav-menu-btn:not(.menu-open)::after {
  background: var(--color-white);
}

/* header_scrolled が付いてもヘッダーを変形させない */
.header_scrolled .site-header{
  animation: none;
  box-shadow: none;
  background-color: transparent;
}
.header_scrolled.admin-bar .site-header {
	animation: none;
}

/* header_scrolled で消される要素を消さない */
.header_scrolled .header-top,
.header_scrolled .site-header-logo,
.header_scrolled .site-header-sub,
.header_scrolled .vk-campaign-text{
  display: block;
}

.header_scrolled .global-nav-list {
	height: auto;
}
.header_scrolled .site-header .global-nav {
	display: flex;
}
.global-nav--layout--float-right {
	align-items: center;
}
@media (max-width: 1199px) {
	.global-nav {
    display: none !important;
  }
}
.site-header-container.container {
	padding: unset;
}

/* ----------- */

/* ハンバーガーメニュー */
.vk-mobile-nav-menu-btn {
  background: none;
	border: none !important;
	width: 32px;
	height: 32px;
	background-image: linear-gradient(var(--color-black), var(--color-black));
  background-repeat: no-repeat;
  background-size: 20px 1px;
	background-position: center center;
}
@media (min-width: 768px) and (max-width: 1199px) {
	.vk-mobile-nav-menu-btn {
		top: 16px;
		right: 20px !important;
	}
	.admin-bar .vk-mobile-nav-menu-btn {
		top: calc(32px + 16px);
	}
}
@media (max-width: 767px) {
	.vk-mobile-nav-menu-btn {
		top: 14px;
		right: 16px !important;
	}
	.admin-bar .vk-mobile-nav-menu-btn {
		top: calc(46px + 14px);
	}
} 
/* 上端と下端の線 */
.vk-mobile-nav-menu-btn::before,
.vk-mobile-nav-menu-btn::after{
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 1px;
  background: var(--color-black);
  transition: transform .1s ease, width .1s ease, top .1s ease;
}
.vk-mobile-nav-menu-btn::before{
  top: calc(50% - 6px);
}
.vk-mobile-nav-menu-btn::after{
  top: calc(50% + 5px);
	transform-origin: left center;
}
.vk-mobile-nav-menu-btn:hover{
  background-size: 17px 1px;
	background-position: calc(50% - 1.5px) center;
}
.vk-mobile-nav-menu-btn:hover::after{
	transform: translateX(-50%) scaleX(0.7);
}
/* 開いている時 */
.vk-mobile-nav-menu-btn.menu-open{
	background: none;
  background-size: 0 0;
}
.vk-mobile-nav-menu-btn.menu-open::before{
  top: 50%;
	transform-origin: center center;
  transform: translateX(-50%) rotate(45deg);
}
.vk-mobile-nav-menu-btn.menu-open::after{
  top: 50%;
	transform-origin: center center;
  transform: translateX(-50%) rotate(-45deg);
}
.vk-mobile-nav-menu-btn.menu-open:hover::after{
  width: 20px;
}
/* ----------- */

/* モバイルメニュー */
@media (min-width: 992px) and (max-width: 1199px) {
	body.device-pc .vk-mobile-nav {
		display: block;
	}
}
.vk-mobile-nav {
	top: 0 !important;
  padding: unset;
  overflow: hidden;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity var(--transition-base) ease-in-out, visibility var(--transition-base) ease-in-out;
  width: 100vw;
}
.vk-mobile-nav.vk-mobile-nav-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.vk-mobile-nav .vk-mobile-nav-menu-outer {
	height: 100%;
  margin-bottom: unset;
  display: flex;
  justify-content: center;
  align-items: center;
}
.vk-mobile-nav .vk-menu-acc {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.vk-mobile-nav nav>ul {
  border-top: none;
}
.vk-mobile-nav nav ul li a {
	color: var(--color-black);
	font-family: var(--ff-mincho);
	font-weight: var(--fw-semibold);
	line-height: var(--lh-160);
	border-bottom: none;
  position: relative;
}
.vk-mobile-nav nav ul li:not(:first-child, .recruit-button) a {
	padding: 8px 12px;
	margin-top: 16px;
}
.vk-mobile-nav nav ul li:not(.recruit-button) a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  background-color: var(--color-black);
  width: 0;
  transition: width 0.3s ease;
}
.vk-mobile-nav nav ul li:not(.recruit-button) a:hover::before {
  width: 100%;
}
.vk-mobile-nav nav ul li.recruit-button {
  margin-top: 40px;
  text-align: center;
}
.vk-mobile-nav nav ul li.recruit-button a {
	border: 1px solid currentColor;
  padding: 12px 0;
}
@media (min-width: 768px) and (max-width: 1199px) {
  .vk-mobile-nav nav ul li.recruit-button {
    width: 240px;
  }
}
@media (max-width: 767px) {
  .vk-mobile-nav nav ul li.recruit-button {
    width: 200px;
  }
}
/* ----------- */

/* ページ全体 */
.site-body {
	padding: 0;
	margin-top: 0 !important;
}
.site-body-container.container {
  width: var(--width-content-area);
  max-width: var(--max-width-container);
	padding: 0;
}
.page .page-header {
  display: none;
}
/* ----------- */

/* ホーム以外のヘッダー画像 */
.header-image {
	min-height: 0;
}
.header-image img {
	object-fit: cover;
	height: 100% !important;
}
@media (min-width: 1024px) {
	.header-image {
		height: 352px;
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.header-image {
		height: 187px;
	}
}
@media (max-width: 767px) {
	.header-image {
		height: 140px;
	}
}
/* ----------- */

/* パンクズリスト */
.breadcrumb {
	position: absolute;
	z-index: 100;
	font-size: var(--fs-12);
	line-height: var(--lh-120);
	letter-spacing: var(--ls-05);
	color: var(--color-white);
  margin-top: 0 !important;
}
.breadcrumb .container {
  padding-left: 0;
}
.breadcrumb li a {
	color: var(--color-white);
	text-decoration-color: var(--color-white);
	text-decoration-style: solid;
}
.breadcrumb li :is(a[href$="/about-us/"], a[href$="/company/"]) {
  pointer-events: none;
  text-decoration: none;
}
.breadcrumb-list {
  padding: 0;
}
.breadcrumb-list i {
  display: none;
}
.breadcrumb-list li:after {
	content: "-";
	margin: 0 8px;
}
@media (min-width: 1200px) {
	.breadcrumb {
		top: 96px;
		left: 32px;
	}
}
@media (min-width: 768px) and (max-width: 1199px) {
	.breadcrumb {
		top: 72px;
		left: 20px;
	}
}
@media (max-width: 767px) {
	.breadcrumb {
		top: 64px;
		left: 16px;
	}
}
/* ----------- */



/* 単一カラムの画面 */
.single-page__title {
  margin-block-end: 40px !important;
}
.single-page__title-container h1 {
  margin-block-end: 0px !important;
}
.single-page__title-container .sub-title {
  margin-block-start: 8px !important;
}
@media (min-width: 1024px) {
  .single-page__container {
    padding: 128px 136px 0;
  }
  .single-page__title {
    margin-block-end: 56px !important;
  }
  .single-page__title-container {
    margin-block-end: 60px !important;
  }
  .single-page__title-container .sub-title {
    margin-block-start: 16px !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .single-page__container {
    padding-top: 80px;
  }
  .single-page__title-container {
    margin-block-end: 40px !important;
  }
}
@media (max-width: 767px) {
  .single-page__container {
    padding-top: 40px;
  }
  .single-page__title-container {
    margin-block-end: 24px !important;
  }
}
/* ----------- */

/* タイトル・ボタン付き画面 */
.page-with-header__title h1 {
  margin-block-end: 0 !important;
}
.page-with-header__button {
  margin-bottom: 0;
}
.page-with-header__button a {
	display: block;
	text-decoration: none;
  position: relative;
  transition: color 0.3s ease;
}
.page-with-header__button a::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  background-color: var(--color-black);
  width: 0;
  transition: width 0.3s ease;
}
.page-with-header__button.current a:before, .page-with-header__button:not(.current) a:hover::before {
  width: 100%;
}
.page-with-header__button.current a, .page-with-header__button:not(.current) a:hover {
  color: var(--color-black);
}
@media (min-width: 1024px) {
  .page-with-header__container {
    overflow: visible;
    margin: 0 auto;
    padding-top: 128px;
    position: relative;
    display: flex;
    gap: 64px;
  }
  .page-with-header__title {
    width: 362px;
    height: fit-content;
    position: sticky;
    top: 160px;
  }
  .page-with-header__title .sub-title {
    margin-top: 16px;
  }
  .page-with-header__buttons {
    margin-block-start: 56px !important;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .page-with-header__button a {
    padding-bottom: 8px;
  }
  .page-with-header__button a::before {
    height: 1px;
  }
  .page-with-header__content {
    margin-block-start: 160px !important;
    flex: 1;
    min-width: 0;
  }
}
@media (max-width: 1023px) {
  .page-with-header__title {
    display: contents;
  }
  .page-with-header__buttons {
    position: sticky ;
    background-color: var(--color-background);
    z-index: 10;
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    margin-right: calc(-1 * var(--bleed)) !important;
    margin-left: calc(-1 * var(--bleed)) !important;
  }
  .page-with-header__buttons::-webkit-scrollbar{
    display: none;
  }
  .page-with-header__button  {
    flex: 1 0 0;
    text-align: center;
    border-bottom: 1px solid var(--color-gray01);
  }
  .page-with-header__button:first-child {
    margin-left: var(--bleed) !important;
  }
  .page-with-header__button:last-child {
    margin-right: var(--bleed) !important;
  }
  .page-with-header__button a  {
    padding: 16px;
  }
  .page-with-header__button a::before {
    height: 2px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .page-with-header__container {
    padding-top: 80px;
  }
  .page-with-header__title .sub-title {
    margin-top: 16px;
  }
  .page-with-header__buttons {
    top: var(--site-header-logo-height-tablet);
    margin-block-start: 40px !important;
  }
  .page-with-header__content {
    margin-block-start: 56px !important;
  }
}
@media (max-width: 767px) {
  .page-with-header__container {
    padding-top: 40px;
  }
  .page-with-header__title .sub-title {
    margin-top: 8px;
  }
  .page-with-header__buttons {
    top: var(--site-header-logo-height-sp);
    margin-block-start: 24px !important;
  }
  .page-with-header__content {
    margin-block-start: 32px !important;
  }
}
/* ----------- */

/* 投稿リスト */
.post__list {
	display: flex;
	flex-direction: column;
}
.post__list:not(.archive-case) .post__item:first-child {
	border-top: 1px solid var(--color-border);
}
.post__item {
	padding: 40px;
  border-bottom: 1px solid var(--color-border);
}
.post__item.case-latest {
	padding: 40px 16px;
}
a.post__item {
	color: var(--color-black);
}
.post__item > h3 {
  margin-block-end: 0 !important;
}
.post__date {
	display: block;
	margin-bottom: 16px;
}
.post__title {
  background-image: linear-gradient(180deg, currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 0 1px;
  transition: background-size 0.3s cubic-bezier(0.17, 0.75, 0.45, 1);
}
.post__item:hover .post__title {
	background-position: left bottom;
	background-size: 100% 1px;
}

.post-content {
  display: block;
  margin-top: 8px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.post-excerpt {
  display: block;
  margin-top: 16px;
}
.post__terms {
  margin-bottom: 16px;
}
.post__term {
  white-space: nowrap;
  padding: 4px 8px;
  border: 1px solid var(--color-black);
}
@media (max-width: 767px) {
	.post__item, .post__item.case-latest {
		padding: 20px;
	}
	.post__date {
		margin-bottom: 8px;
	}
  .post__terms {
    margin-bottom: 8px;
  }
  .post-content {
    margin-top: 4px;
  }
  .post-excerpt {
    margin-top: 8px;
  }
}
/* ----------- */

/* ページネーション */
.pagination {
  margin-top: 64px;
}
.nav-links {
  gap: 8px;
}
.page-numbers {
  width: 24px;
  color: var(--color-black);
  font-family: var(--ff-roboto);
  line-height: var(--lh-120);
  letter-spacing: var(--ls-05);
  font-weight: var(--fw-light);
}
.page-numbers.current {
  border-bottom: 1px solid var(--color-black);
}
.page-numbers.next, .page-numbers.prev {
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-numbers.next::after, .page-numbers.prev::after {
  content: "";
  height: 6px;
  width: 6px;
  border-right: 1px solid var(--color-gray01);
  border-bottom: 1px solid var(--color-gray01);
}
.page-numbers.next::after {
  transform: rotate(-45deg);
}
.page-numbers.prev::after {
  transform: rotate(135deg);
}
/* ----------- */

/* 投稿詳細画面 */
.post-detail__header h1 {
  margin: 0;
  margin-top: 24px;
}
.post-detail__header {
  padding-bottom: 32px;
  border-bottom: 1px solid var(--color-border);
}
.post__back {
  margin: 0 auto;
}
@media (min-width: 1024px) {
  .post__back {
    margin-top: 96px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .post__back {
    margin-top: 64px;
  }
}
@media (max-width: 767px) {
  .post-detail__header h1 {
    margin-top: 16px;
  }
  .post-detail__header {
    padding-bottom: 24px;
  }
  .post-detail__content {
    margin-top: 24px;
  }
  .post__back {
    margin-top: 40px;
  }
}
/* ----------- */

/* お問い合わせ */
.contact__cover {
	color: var(--color-white);
}
.contact__cover.wp-block-cover .wp-block-cover__background {
	background-color: var(--color-black) !important;
	opacity: 0.6;
}
.contact__cover .t-h1-embellishments {
	color: var(--color-white);
}
.contact__cover h1 {
	padding-top: 8px;
}
.contact__tel {
	width: fit-content;
	margin: 0 auto !important;
  white-space: nowrap;
	display: flex;
	align-items: center;
	padding-top: 16px;
}
.contact__text, .contact-form-button {
	margin-block-start: 40px !important;
}
.contact-form-button.wp-block-button a  {
	background-color: transparent;
	color: var(--color-white);
	border: 1px solid var(--color-white);
	border-radius: 0px;
  transition: background-color var(--transition-base), color var(--transition-base);
}
.contact-form-button.wp-block-button a:hover {
	background-color: var(--color-white);
	color: var(--color-black);
}
@media (min-width: 1024px) {
	.contact__cover {
		width: min(90vw, 1729px);  margin-left:  calc(50% - (min(90vw, 1729px) / 2));
    margin-right: calc(50% - (min(90vw, 1729px) / 2));
		margin-top: 128px;
		height: 530px;
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.contact__cover {
		margin-top: 80px;
		height: 490px;
	}
}
@media (max-width: 767px) {
	.contact__cover {
		margin-top: 64px;
		height: 376px;
	}
	.contact__text, .contact-form-button {
    margin-block-start: 24px !important;
  }
}
/* ----------- */

/* フッター */
.site-body-bottom .widget {
	margin-bottom: 0;
}
.site-body-bottom {
	background-color: var(--color-black);
	color: var(--color-white);
}
.site-body-bottom .container {
	padding: 96px 0 40px;
	width: 95%;
  max-width: var(--max-width-container);
  margin-inline: auto;
}
.site-footer-logo {
	margin-bottom: 40px;
}
.site-body-bottom__content {
	margin-bottom: 60px;
	display: flex;
}
.site-body-bottom__content a {
  position: relative;
}
.site-body-bottom__content a::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  height: 1px;
  background-color: var(--color-white);
  width: 0;
  transition: width 0.3s ease;
}
.site-body-bottom__content a:hover::before {
  width: 100%;
}
.site-body-bottom__col {
	display: flex;
	flex-direction: column;
	gap: 12px
}
.site-body-bottom__content .news-and-recruit {
	display: flex;
	flex-direction: column;
	gap: 12px
}
.site-body-bottom__items {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
@media (min-width: 1024px) {
	.site-body-bottom .container {
		margin-top: 128px;
	}
	.site-body-bottom__content {
		justify-content: space-between;
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.site-body-bottom .container {
		margin-top: 64px;
		width: 90%;
	}
	.site-body-bottom__content{
		flex-wrap: wrap;
		gap: 24px;
		justify-content: space-between;
  }
}
@media (max-width: 767px) {
	.site-body-bottom .container {
		margin-top: 64px;
		padding: 60px 20px 40px;
		min-width: 375px;
	}
	.site-footer-logo {
		margin-bottom: 16px;
	}
	.site-body-bottom__content {
		margin-bottom: 40px;
		flex-direction: column;
		gap: 24px;
	}
	.site-body-bottom__col {
		gap: 4px
	}
	.site-body-bottom__content .news-and-recruit {
		gap: 24px;
	}
	.site-body-bottom__items {
		flex-wrap: wrap;
		flex-direction: row;
		gap: 4px 12px;
	}
}
/* ----------- */

/* メインコピーのスライダー */
.main-copy-section {
  position: relative;
  margin-left: calc(-1 * var(--bleed)) !important;
  margin-right: calc(-1 * var(--bleed)) !important;
}
@media (min-width: 768px) {
	.main-copy-slider .wp-block-cover   {
    height: 100vh;
  }
}
.main-copy__text{
	--duration: 0.7s;
	--start: 0.1s;
	--step: 0.2s;
  position: absolute;
  z-index: 10;
}
.main-copy__text span {
	opacity: 0;
  filter: blur(6px);
	animation: char-fade-in var(--duration) ease-in-out forwards;
	animation-delay: calc(var(--start) + var(--i) * var(--step));
}
@keyframes char-fade-in {
  0% { opacity: 0; filter: blur(6px); -webkit-filter: blur(6px); }
  99% { opacity: 1; filter: blur(0px); -webkit-filter: blur(0px); }
  100% { opacity: 1; filter: none; -webkit-filter: none; }
}
@media (min-width: 1024px) {
  .main-copy__text {
    left: 10vw;
    bottom: 20vh;
  }
  .main-copy__text br {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .main-copy__text {
    left: var(--bleed);
    bottom: 9vh;
  }
}
@media (max-width: 767px) {
  .main-copy__text {
    left: var(--bleed);
    bottom: 48px;
  }
}
.main-copy-slider .swiper-button-next, .main-copy-slider .swiper-button-prev {
	display: none;
}
.main-copy-slider .swiper-pagination {
	display: none;
}
/* ----------- */

/* タグライン */
.tag-line-copy-section {
	width: fit-content;
  margin: 0 auto !important;
}
.tag-line-copy-section .wp-block-button {
	margin-top: 40px;
}
@media (min-width: 1024px) {
	.tag-line-copy-content {
		margin-top: 128px !important;
		display: flex;
		flex-direction: row-reverse;
		gap: 48px;
	}
	.tag-line-copy-content p {
    writing-mode: vertical-rl;
  }
	.tag-line-copy__segment {
    display: flex;
		flex-direction: row-reverse;
		gap: 16px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
	.tag-line-copy-content {
		margin-top: 80px !important;
		display: flex;
		flex-direction: column;
		gap: 24px;
	}
}
@media (max-width: 767px) {
	.tag-line-copy-content .t-tag-line-copy {
		display: none;
	}
  .tag-line-copy-content {
    margin-top: 64px !important;
    display: flex;
    flex-direction: column;
    gap: 24px;
    height: 300px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
      to bottom,
      rgba(0, 0, 0, 1) calc(100% - 100px),
      rgba(0, 0, 0, 0) 100%
    );
    mask-image: linear-gradient(
      to bottom,
      rgba(0, 0, 0, 1) calc(100% - 100px),
      rgba(0, 0, 0, 0) 100%
    );
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-repeat: no-repeat;
    mask-size: 100% 100%;
  }
	.tag-line-copy-section .wp-block-button {
    margin-top: 32px;
  }
	.about-me-button {
		display: none !important;
	}
}
/* ----------- */

/* カルーセル */
.carousel {
  overflow: hidden;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.carousel__track {
  display: flex;
	width: max-content;
  animation: slide-left 60s linear infinite;
  will-change: transform;
}
@media (min-width: 1024px) {
	.carousel {
		margin-top: 128px;
	}
	.carousel__set{
		display: flex;
		gap: 60px;
		margin-right: 60px;
	}
	.carousel__track img {
		height: 400px;
	}
	.carousel__track .image-top {
		margin-bottom: 60px;
	}
	.carousel__track .image-bottom {
		margin-top: 60px;
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.carousel {
		margin-top: 80px;
	}
	.carousel__set{
		display: flex;
		gap: 24px;
		margin-right: 24px;
	}
	.carousel__track img {
		height: 240px;
	}
	.carousel__track .image-top {
		margin-bottom: 60px;
	}
	.carousel__track .image-bottom {
		margin-top: 60px;
	}
}
@media (max-width: 767px) {
	.carousel {
		margin-top: 64px;
	}
	.carousel__set{
		display: flex;
		gap: 16px;
		margin-right: 16px;
	}
	.carousel__track img {
		height: 160px;
	}
	.carousel__track .image-top {
		margin-bottom: 24px;
	}
	.carousel__track .image-bottom {
		margin-top: 24px;
	}
}
@keyframes slide-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* ----------- */

/* サービスセクション */
.services-section {
  background-color: var(--color-white);
  display: flex;
  flex-direction: column;
}
.services__images {
  display: flex;
  flex-direction: column;
}
.services__content > .wp-block-buttons {
  display: none;
}
.services-section > .wp-block-buttons {
  margin: 0 auto !important;
}
.services__content .t-h1-embellishments {
	margin-bottom: 16px !important;
}
.services__content h1 {
	margin-bottom: 40px !important;
}
.services__images img {
	display: block;
	transition: transform var(--transition-base);
}
.services-images__item:hover img {
	transform: scale(1.1);
}
.services-images__item h3 {
  margin-top: 16px;
  margin-block-end: 0 !important;
}
@media (min-width: 1200px) {
  .services-section {
    background-color: transparent;
    margin-top: 208px;
    position: relative;
    margin-right: calc(50% - 50vw) !important;
  }
  .services-section > .wp-block-buttons {
    display: none;
  }
  .services__content > .wp-block-buttons {
    display: block;
  }
  .services__content {
    position: sticky;
    z-index: 1;
    top: calc(50vh - 50px - 174px);
    padding: 56px;
    display: flex;
    flex-direction: column;
    gap: 40px;
    background-color: var(--color-white);
    box-shadow: var(--shadow);
  }
  .services__images {
    width: 521px;
    margin-left: auto !important;
    margin-right: var(--bleed) !important;
    position: relative;
    z-index: 2;
    margin-block-start: -653px !important;
		margin-block-end: -134px !important;
    gap: 92px;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .services-section {
    box-shadow: var(--shadow);
    width: 691px;
    margin: 80px auto 0 !important;
    padding: 56px;
    gap: 40px;
  }
  .services__images {
    gap: 40px;
  }
}
@media (max-width: 767px) {
  .services-section {
    box-shadow: var(--shadow);
    max-width: 460px;
    margin: 64px auto 0 !important;
    padding: 32px 20px;
    gap: 24px;
  }
  .services__images {
    gap: 24px;
  }
	.services__content .t-h1-embellishments {
		margin-bottom: 12px !important;
	}
	.services__content h1 {
		margin-bottom: 24px !important;
	}
	.services-images__item h3 {
    margin-top: 8px;
  }
}
/* ----------- */

/* 会社セクション */
.company-section {
	position: relative;
}
.company__image {
	margin-left: calc(50% - 50vw) !important;
}
.company__content {
	background-color: var(--color-white);
  box-shadow: var(--shadow);
	padding: 56px;
	width: 512px;
	position: absolute;
	right: 0;
}
.company__content h1 {
	padding-top: 16px;
}
.company__content .company__text {
	padding-top: 40px;
}
.company__content .wp-block-buttons {
	padding-top: 60px;
}
@media (min-width: 1024px) {
	.company-section {
		margin-top: 262px;
	}
	.company__image {
		width: 65vw;
	}
	.company__content {
		bottom: -20%;
	}
}
@media (max-width: 1023px) {
	.company-section {
		margin-top: 80px;
	}
	.company__image {
		width: 85vw;
	}
	.company__content {
		top: 75%;
	}
}
@media (max-width: 767px) {
	.company-section {
		margin-top: 64px;
	}
	.company__content {
		padding: 32px 20px;
		width: 370px;
    margin-right: calc(-1 * var(--bleed)) !important;
	}
	.company__content h1 {
		padding-top: 12px;
	}
	.company__content .company__text {
		padding-top: 24px;
	}
	.company__content .wp-block-buttons {
		padding-top: 24px;
	}
}
/* ----------- */

/* ホームページのお知らせ */
.news__title {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.news__body .wp-block-button {
	margin-top: 60px;
	margin-left: auto;
}
@media(min-width: 1024px) {
	.news-section {
		margin-top: 235px;
		display: flex;
		justify-content: flex-end;
		gap: 173px;
	}
	.news__title {
		writing-mode: vertical-rl;
	}
	.news__title h1 {
		margin: 0;
    letter-spacing: var(--ls-20);
	}
	.news__body {
		width: 912px;
		padding-top: 16px;
		padding-right: 56px;
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.news-section {
		margin-top: 456px;
		display: flex;
		flex-direction: column;
		gap: 40px;
	}
}
@media (max-width: 767px) {
	.news-section {
		margin-top: 325px;
		display: flex;
		flex-direction: column;
		gap: 32px;
	}
	.news__title {
		gap: 12px;
	}
	.news__body .wp-block-button {
	margin-top: 32px;
	margin-left: auto;
  margin-right: auto;
}
}
/* ----------- */

/* サービスページ */
.service__message {
  margin-block-start: 40px !important;
}
.service__list {
  display: flex;
  flex-direction: column;
}
.service__list > * + * {
  border-top: 1px solid var(--color-border);
}
.service-item {
  display: flex;
  height: 180px;
  box-shadow: var(--shadow);
}
.service-item__image {
  flex: 4;
  overflow: hidden;
}
.service-item__image  > img:not([style*=object-fit]) {
  height: 100% !important;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform .3s ease-out;
}
.service-item__body {
  flex: 6;
  background-color: var(--color-white);
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.service-item__body h3 {
  margin-top: 8px;
  margin-block-end: 0 !important;
}
.service-item:hover .service-item__image > img {
  transform: scale(1.1);
}
.service-item__notes {
  margin-block-start: 4px !important;
}
.ss-service__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
@media (max-width: 767px) {
  .service-item {
    display: block;
    height: fit-content;
  }
  .service-item__body {
    padding: 16px;
  }
  .service-item__body h3 {
    margin-top: 4px;
  }
}
@media (min-width: 1024px) {
  .service__list {
    margin-block-start: 84px !important;
    gap: 56px;
  }
  .service__list > * + * {
    padding-top: 56px;
  }
  .ss-service__container > h3 {
    margin-block-start: 8px !important;
    margin-block-end: 24px !important;
  }
  .ss-service__list {
    gap: 20px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service__list {
    margin-block-start: 64px !important;
    gap: 40px;
  }
  .service__list > * + * {
    padding-top: 40px;
  }
  .ss-service__container > h3 {
    margin-block-start: 8px !important;
    margin-block-end: 20px !important;
  }
}
@media (max-width: 767px) {
  .service__message {
    margin-block-start: 24px !important;
  }
  .service__list {
    margin-block-start: 40px !important;
    gap: 24px;
  }
  .service__list > * + * {
    padding-top: 24px;
  }
  .ss-service__container > h3 {
    margin-block-start: 4px !important;
    margin-block-end: 20px !important;
  }
}
/* ----------- */

/* サービス共通 */
.service-detail__container {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1024px) {
  .service-detail__container {
    gap: 96px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-detail__container {
    gap: 64px;
  }
}
@media (max-width: 767px) {
  .service-detail__container {
    gap: 40px;
  }
}

.service-detail__header h2 {
  margin-block-end: 40px !important;
}
.service-detail__header img {
  margin-block-start: 24px !important;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-detail__header img {
    margin-block-start: 40px !important;
  }
}
@media (max-width: 767px) {
  .service-detail__header h2 {
    margin-block-end: 24px !important;
  }
}

.service-detail__capability > h3 {
  margin-block-start: 8px !important;
  margin-block-end: 0 !important;
}
.service-detail-capability__body {
  display: flex;
  flex-direction: column;
}
.service-detail-capability__number {
  margin-block-end: 24px !important;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;  
}
.service-detail-capability__number::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--color-border);
}
.service-detail__explanation {
  margin-block-start: 16px !important;
}
.service-detail__strength > h3 {
  margin-block-start: 8px !important;
  margin-block-end: 0 !important;
}
.service-detail-strength__body {
  display: flex;
  flex-direction: column;
}
.service-detail-strength__item {
  background-color: var(--color-background02);
  margin-right: calc(-1 * var(--bleed)) !important;
}
.service-detail-strength__inner {
  margin-right: var(--bleed) !important;
  padding: 40px 0 40px 40px;
}
.service-detail-strength__header {
  display: flex;
  align-items: center;
  gap: 16px;
}
.service-detail-strength__header svg {
  flex-shrink: 0;
}
@media (min-width: 1024px) {
  .service-detail-capability__body {
    margin-block-start: 40px !important;
    gap: 60px;
  }
  .service-detail-strength__body {
    margin-block-start: 40px !important;
    gap: 40px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-detail-capability__body {
    margin-block-start: 24px !important;
    gap: 40px;
  }
  .service-detail-strength__body {
    margin-block-start: 24px !important;
    gap: 20px;
  }
}
@media (max-width: 767px) {
  .service-detail-capability__body {
    margin-block-start: 16px !important;
    gap: 24px;
  }
  .service-detail-capability__number {
    margin-block-end: 16px !important;
  }
  .service-detail__explanation {
    margin-block-start: 8px !important;
  }
  .service-detail-strength__body {
    margin-block-start: 16px !important;
    gap: 16px;
  }
  .service-detail-strength__item {
    margin-right: inherit !important;
  }
  .service-detail-strength__inner {
    margin-right: inherit !important;
    padding: 20px;
  }
}

.case-latest__container > h3 {
  margin-block-start: 8px !important;
  margin-block-end: 24px !important;
}
.case__tools {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.case__tool {
  color: var(--color-white);
  background-color: var(--color-gray01);
  padding: 0 12px;
  border-radius: 30px;
}
.case-keyword__container {
  margin-top: 16px;
  display: flex;
  align-items: center;
}
.case-keyword__title {
  white-space: nowrap;
  color: var(--color-subtitle);
}
.case-keyword__title::after {
  content: "";
  padding-right: 16px;
  margin-left: 16px;
  border-left: 1px solid var(--color-border);
}
@media (max-width: 767px) {
  .case__tools {
    margin-top: 8px;
  }
  .case-keyword__container {
    flex-direction: column;
    gap: 4px;
    align-items: flex-start;
  }
  .case-keyword__title::after {
    content: none;
  }
}

.service-detail__nav {
  display: flex;
  flex-direction: column;
}
.service-detail__nav .hint--right {display: none; }
.service-detail__nav .hint--bottom {display: inline; }
@media (min-width: 1024px ) {
  .service-detail__nav {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .service-detail__nav .hint--right {display: inline; }
  .service-detail__nav .hint--bottom {display: none; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-detail__nav {
    gap: 16px;
  }
}
@media (max-width: 767px) {
  .service-detail__nav {
    gap: 8px;
  }
}

.service-bottom__container > h2 {
  margin-block-end: 16px !important;
}
.service-bottom__list {
  margin-block-start: 56px !important;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
.service-bottom__item {
  background-color: var(--color-white);
  padding: 40px;
  box-shadow: var(--shadow);
}
.service-bottom__item > h3 {
  margin-block-start: 8px !important;
  margin-block-end: 0 !important;
}
@media (min-width: 1024px) {
  .service-bottom__container {
    margin-block-start: 128px !important;
  }
  .service-bottom__list {
    grid-template-columns: 1fr 1fr;
  }
  .service-bottom__container .wp-block-button {
    margin-block-start: 96px !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .service-bottom__container {
    margin-block-start: 80px !important;
  }
  .service-bottom__container .wp-block-button {
    margin-block-start: 80px !important;
  }
}
@media (max-width: 767px) {
  .service-bottom__container {
    margin-block-start: 64px !important;
  }
  .service-bottom__container > h2 {
    margin-block-end: 4px !important;
  }
  .service-bottom__list {
    margin-block-start: 24px !important;
    gap: 16px;
  }
  .service-bottom__item {
    padding: 20px;
  }
  .service-bottom__container .wp-block-button {
    margin-block-start: 64px !important;
  }
}
/* ----------- */

/* SIサービストップ */
.si-service__list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.si-service__item > h3 {
  margin-block-start: 8px !important;
  margin-block-end: 24px !important;
}
.si-service-item__body {
  display: flex;
  gap: 40px;
}
.si-service-item__body figure {
  flex: 4;
}
.si-service-item__explanation {
  flex: 6;
}
.si-service-item__achievements {
  margin-block-start: 20px !important;
  background-color: var(--color-background02);
  padding: 20px;
  display: flex;
  gap: 20px;
}
.si-service-item__achievements-title {
  color: var(--color-subtitle);
  font-weight: var(--fw-bold);
  white-space: nowrap;
}
@media (max-width: 767px) {
  .si-service__list {
    gap: 32px;
  }
  .si-service__item > h3 {
    margin-block-start: 4px !important;
    margin-block-end: 16px !important;
  }
  .si-service-item__body {
    flex-direction: column;
    gap: 16px;
  }
  .si-service-item__achievements {
    margin-block-start: 16px !important;
    gap: 16px;
  }
}
/* ----------- */

/* わたしたちについて */
.greeting-container {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.greeting-container h3 {
  margin-block-end: 0 !important;
}
.past_way__image {
  margin-block-start: 16px !important;
}
.image-sign {
	width: 250px;
	margin-left: auto !important;
}
.executive-signature {
  margin-block-start: 16px !important;
}
.executive-signature .sp-break {
  display: none;
}
@media (min-width: 768px) {
  .past_way__item {
    display: grid;
    grid-template-columns: 105px 1fr;
    gap: 40px;
  }
  .past_way__month {
    padding-top: 8px;
    padding-left: 56px;
    padding-bottom: 40px;
    position: relative
  }
  .past_way__month:last-child {
    padding-bottom: 80px;
  }
  .past_way__month::before {
    content: "";
    position: absolute;
    border-left: 2px solid var(--color-border);
    height: 100%;
    left: 7px;
    top: 27px;
  }
  .past_way__content > .past_way__item:last-child > .past_way__months:last-child > .past_way__month:last-child {
    padding-bottom: 0;
  }
  .past_way__content > .past_way__item:last-child > .past_way__months:last-child > .past_way__month:last-child::before {
    border: 0;
  }
  .past_way__month .t-month {
    position: relative;
  }
  .past_way__month .t-month::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid var(--color-black);
    border-radius: 50%;
    background-color: var(--color-background);
    top: 50%;
    transform: translateY(-50%);
    left: -56px;
  }
  .past_way__image {
    width: 350px;
  }
}
@media (max-width: 767px) {
  .past_way__item {
    padding-left: 32px;
    position: relative;
  }
  .past_way__item:not(:last-child) {
    padding-bottom: 40px
  }
  .past_way__item:not(:last-child)::before {
    content: "";
    position: absolute;
    border-left: 2px solid var(--color-border);
    height: 100%;
    left: 7px;
    top: 16px;
  }
  .past_way__year {
    padding-bottom: 8px;
  }
  .past_way__year .t-history {
    position: relative;
  }
  .past_way__year .t-history::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid var(--color-black);
    border-radius: 50%;
    background-color: var(--color-background);
    top: 50%;
    transform: translateY(-50%);
    left: -32px;
  }
  .past_way__month:not(:last-child) {
    padding-bottom: 8px;
  }
  .past_way__month .t-month {
    padding-bottom: 4px;
  }
  .executive-signature .sp-break {
    display: block;
  }
}
/* ----------- */

/* 会社情報 */
.company-info__row {
  padding: 16px;
  display: grid;
  grid-template-columns: 120px 1fr;
  column-gap: 16px;
  align-items: center;
  border-bottom: 1px solid var(--color-border);
}
.company-info__map {
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-block-start: 40px !important;
}
@media (min-width: 1024px) {
  .company-info__row:first-child {
    border-top: 1px solid var(--color-border);
  }
}
@media (max-width: 767px) {
  .company-info__row {
    padding: 20px;
    grid-template-columns: 1fr;
    row-gap: 8px;
    border-bottom: 1px solid var(--color-border);
  }
  .company-info__map {
    margin-block-start: 32px !important;
  }
}

/* ----------- */

/* お問い合わせ画面 */
.wpcf7-form input::-webkit-contacts-auto-fill-button {
  background-color: transparent;
}
.wpcf7-form :is(input[type=text], input[type=email], input[type=tel], select, textarea)  {
  font-family: inherit;
  font-size: inherit;
  color: var(--color-black);
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 5px;
  padding: 16px 20px;
  margin: 0;
}
.wpcf7-form input:-webkit-autofill,
.wpcf7-form textarea:-webkit-autofill,
.wpcf7-form select:-webkit-autofill {
  -webkit-box-shadow: 0 0 0px 1000px var(--color-white) inset;
}
.wpcf7-form select {
  color: var(--color-gray01) !important;
}
.wpcf7-form select.is-selected {
  color: inherit !important;
}
.wpcf7-form :is(input[type=text], input[type=email], input[type=tel], select, textarea):focus-visible {
  border: 1px solid var(--color-black);
  outline: none;
}
.wpcf7-form :is(input[type=text], input[type=email], input[type=tel], textarea)::placeholder {
  color: var(--color-gray01);
  opacity: 1;
}
.wpcf7-form input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 1px solid var(--color-gray01);
  border-radius: 50%;
  margin: 3px;
  position: relative;
}
.wpcf7-form input[type="radio"]::before{
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  top: 2px;
  left: 2px;
  border-radius: 50%;
  transform: scale(0);
  transition: transform .15s ease-in-out;
  background: currentColor;
}
.wpcf7-form input[type="radio"]:checked::before{
  background: var(--color-black);
  transform: scale(1);
}
.wpcf7-form select {
  cursor: pointer;
}
.wpcf7-form .select-field {
  position: relative;
}
.wpcf7-form .select-field::after{
  content:"";
  position:absolute;
  right: 27px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}

/* チェックボックス */
.wpcf7-acceptance input[type="checkbox"] {
  appearance: none;
  margin: 0;
  position: relative;
  cursor: pointer;
  width: 24px;
  height: 24px;
  border-radius: 1px;
  border: 1px solid var(--color-border);
  background-color: var(--color-white);
}
.wpcf7-acceptance input[type="checkbox"]:checked {
  background-color: var(--color-black);
  border-color: var(--color-black);
}
.wpcf7-acceptance input[type="checkbox"]::after{
  content: "";
  position: absolute;
  left: 4px;
  top: 4px;
  width: 15px;
  height: 10px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg);
  opacity: 0;
}
.wpcf7-acceptance input[type="checkbox"]:checked::after{
  opacity: 1;
}
.wpcf7-response-output {
  display: none;
}

.required-badge {
  background-color: var(--color-danger);
  color: var(--color-white);
  border-radius: 35px;
  padding: 4px 8px;
}
.contact__container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.contact__label {
  display: flex;
  align-items: center;
  gap: 8px;
}
.contact__field {
  margin-top: 8px;
}
.contact__field.multiple {
  display: flex;
  gap: 16px;
}
.contact__field.multiple > * {
  flex: 1;
}
.contact__field:has(.zip-field) {
  display: flex;
}
.contact__field .zip-field {
  max-width: 250px;
}
.zip-search-button {
  position: relative;
  cursor: pointer;
  white-space: nowrap;
  height: fit-content;
  margin-top: 11px;
  margin-left: 16px;
  background-color: var(--color-black);
  color: var(--color-white);
  border: 1px solid var(--color-black);
  border-radius: 3px;
  padding: 4px 8px 4px 28px;
  transition: color var(--transition-base), background-color var(--transition-base);
}
.zip-search-button:hover {
  background-color: var(--color-white);
  color: var(--color-black);
}
.zip-search-button::before {
  --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' d='M10.453 10.315a4.534 4.534 0 0 1-6.402.156 4.534 4.534 0 0 1-.156-6.401 4.534 4.534 0 0 1 6.402-.157 4.534 4.534 0 0 1 .156 6.402M10.617 10.325l2.95 2.95'/%3E%3C/svg%3E");
  content: "";
  position: absolute;
  background-color: currentColor;
  width: 16px;
  height: 16px;
  top: 50%;
	transform: translateY(-50%);
  left: 8px;
  -webkit-mask: var(--icon) no-repeat center / contain;
  mask: var(--icon) no-repeat center / contain;
}
.wpcf7-form-control.wpcf7-radio {
  padding: 8px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.wpcf7-list-item {
  margin-left: 0 !important;
}
.wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.wpcf7-acceptance .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 12px;
}
.contact-submit__container {
  width: fit-content;
  margin: 0 auto;
  text-align: center;
}
.contact-submit__button {
  margin: 24px auto 0;
}
.contact-submit__button button:disabled {
  pointer-events: none;
  opacity: 0.2;
}
@media (min-width: 1024px) {
  .contact-submit__container {
    margin-top: 96px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .contact-submit__container {
    margin-top: 64px;
  }
}
@media (max-width: 767px) {
  .contact-submit__container {
    margin-top: 40px;
  }
  .contact-submit__button {
    margin-top: 16px;
  }
}
.grecaptcha-badge {
  visibility: hidden;
}
.recaptcha-text {
  margin-top: 24px;
}
@media (max-width: 767px) {
  .recaptcha-text {
    margin-top: 24px;
  }
}

/* バリデーション */
.wpcf7 form:not(.js-tried-submit) .wpcf7-not-valid-tip {
  display: none !important;
}
.wpcf7 form.js-tried-submit .wpcf7-not-valid:not(.wpcf7-radio) {
  border: 1px solid var(--color-danger);
  background-color: color-mix(in srgb, var(--color-danger) 20%, transparent);
}
.wpcf7 form.js-tried-submit .wpcf7-not-valid.wpcf7-radio input[type="radio"]  {
  border-color: var(--color-danger);
}
.wpcf7-not-valid-tip {
  margin-top: 8px;
  color: var(--color-danger) !important;
  font-size: var(--fs-12) !important;
  line-height: var(--lh-100);
  letter-spacing: var(--ls-05);
}

/* 送信完了後 */
form.submitted {
  display: none;
}
.contact-complete__container {
  display: none;
  width: fit-content;
  margin: 0 auto !important;
  text-align: center;
}
.contact-complete__container.submitted {
  display: block;
}
.contact-complete__container h2 {
  margin-block-end: 40px !important;
}
.contact-complete__container h2 br {
  display: none;
}
.contact-complete__message {
  margin-block-end: 64px !important;
}
@media (min-width: 1024px) {
  .contact-complete__container {
    margin-top: 128px !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .contact-complete__container {
    margin-top: 80px !important;
  }
}
@media (max-width: 767px) {
  .contact-complete__container {
    margin-top: 64px !important;
  }
  .contact-complete__container h2 {
    margin-block-end: 24px !important;
  }
  .contact-complete__container h2 br {
    display: inline;
  }
  .contact-complete__message {
    margin-block-end: 40px !important;
  }
}
/* ----------- */

/* 規約周り */
.isms-text {
  margin-block-start: 16px !important;
}
.last-text {
  margin-block-start: 56px !important;
}
@media (max-width: 767px) {
  .isms-text {
    margin-block-start: 8px !important;
  }
  .last-text {
    margin-block-start: 24px !important;
  }
}
/* ----------- */

/* 404 */
.not-found__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.not-found__container h1 {
  margin-block-end: 56px !important;
}
.not-found__message {
  margin-block-end: 64px !important;
}
@media (min-width: 1024px) {
  .not-found__container {
    padding-top: 128px !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .not-found__container {
    padding-top: 80px !important;
  }
}
@media (max-width: 767px) {
  .not-found__container {
    padding-top: 64px !important;
  }
  .not-found__container h1 {
    margin-block-end: 24px !important;
  }
  .not-found__message {
    margin-block-end: 40px !important;
  }
}
/* ----------- */
