/*
Theme Name: 有限会社 剛ビル
Template: lightning
Author: 株式会社 FEAT.
Version: 0.6.1
*/

/************************************************
 * 共通
************************************************/
:root {
	--main-color: #47a8ac;
}
.noto-sans {
	font-family: "noto-sans-cjk-jp", sans-serif;
}
.old-mincho {
	font-family: "Zen Old Mincho", serif;
}
.crimson {
	font-family: "Crimson Text", serif;
}
body {
	font-family: "noto-sans-cjk-jp", sans-serif;
	font-weight: 400;
	background: #fff;
}
body::before {
	content: '';
	width: 100%;
	height: 100svh;
	background-color: rgba(71, 168, 172, .7);
	position: fixed;
	top: 0;
	left: 0;
	opacity: 0;
	pointer-events: none;
	transition: all .3s;
	z-index: 1001;
}
body:has(.vk-mobile-nav-open)::before {
	opacity: 1;
	pointer-events: auto;
}
.is-layout-constrained>:where(:not(.alignfull,.alignwide)),
.wp-block-image:where(:not(.alignfull,.alignwide)),
.vk_outer_container {
	max-width: unset !important;
}
.site-body-container {
	max-width: 1525px !important;
	width: 90%;
	padding: 0;
}
.alignfull div[class*=__inner-container],
.alignwide div[class*=__inner-container] {
	max-width: unset;
}
.page_top_btn {
	background-color: rgba(71, 168, 172, .8);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .8), 0 0 0 2px rgba(71, 168, 172, .8);
}

/* タイトル */
.title01_box {
	color: #0c0c0c;
	margin-bottom: 2.5rem;
}
.title01 {
	font-size: 80px;
    letter-spacing: 0.08em;
    line-height: 1.2;
    margin-top: -0.6rem !important;
}
.sub_title01 {
	font-size: 22px;
	font-weight: bold;
}
h1 {
	font-size: 32px;
}
h2 {
	font-size: 30px;
}
h3 {
	font-size: 28px;
}
h4 {
	font-size: 26px;
}
h5 {
	font-size: 24px;
}

@media screen and (max-width: 1024px) {
	.title01_box {
		margin-bottom: 1.5rem;
	}
	.title01 {
		font-size: 45px;
		margin-top: -0.2rem !important;
	}
	.sub_title01 {
		font-size: 18px;
	}
	h1 {
		font-size: 24px;
	}
	h2 {
		font-size: 22px;
	}
	h3 {
		font-size: 20px;
	}
	h4 {
		font-size: 18px;
	}
	h5 {
		font-size: 17px;
	}
}
@media screen and (max-width: 767px) {
	.title01_box {
		margin-bottom: 1rem;
	}
	.title01 {
		font-size: 30px;
		margin-top: -0.2rem !important;
	}
	.sub_title01 {
		font-size: 15px;
	}
	h1 {
		font-size: 22px;
	}
	h2 {
		font-size: 20px;
	}
	h3 {
		font-size: 18px;
	}
	h4 {
		font-size: 17px;
	}
	h5 {
		font-size: 16px;
	}
}

/************************************************
 * ヘッダー
************************************************/
.site-header {
	background-color: rgba(255, 255, 255, .7) !important;
}
.site-header::before,
.site-header::after {
	content: '';
	width: 4vw;
	aspect-ratio: 1 / 1;
	background-color: #fff;
	opacity: .7;
	position: absolute;
	bottom: -4vw;
}
.site-header::before {
	clip-path: polygon(0 0, 100% 0, 0 100%);
	left: 0;
}
.site-header::after {
	clip-path: polygon(0 0, 100% 0, 100% 100%);
	right: 0;
}
.site-header-container {
	max-width: 1760px;
    width: 95%;
    padding: 30px 0 10px;
	align-items: flex-start !important;
}
.site-header-logo {
	padding-top: 3px;
	margin-bottom: 0;
}
.site-header-logo img {
	max-height: 74px;
}
.global-nav .menu {
	align-items: flex-start !important;
}
.global-nav .menu-item::before {
	display: none;
}
.global-nav .menu li:last-child a {
	padding-right: 0 !important;
}
.global-nav .menu-item a {
	font-family: "Zen Old Mincho", serif;
	font-weight: 400;
	padding: 0 2rem !important;
	color: var(--main-color) !important;
	letter-spacing: 0.22em;
	text-align: center !important;
}
.global-nav .menu-item a strong {
	font-size: 22px !important;
}
.global-nav .menu-item a span {
	display: block;
	color: #000 !important;
	font-size: 14px;
	font-weight: 400;
}
.vk-mobile-nav-menu-btn {
	width: 45px;
	height: 45px;
	top: 10px;
    right: 10px !important;
	background: url('../../../wp-content/themes/lightning/_g3/inc/vk-mobile-nav/package/images/vk-menu-btn-white.svg') center / contain no-repeat var(--main-color) !important;
	border: none;
	box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}
.vk-mobile-nav-menu-btn.menu-open {
	background: url('../../../wp-content/themes/lightning/_g3/inc/vk-mobile-nav/package/images/vk-menu-close-white.svg') center / contain no-repeat var(--main-color) !important;
	border: none;
}
.vk-mobile-nav {
	max-width: 400px;
	padding-top: 5rem;
}
.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
	left: calc(100% - 400px);
}
.vk-mobile-nav nav>ul {
	border: none !important;
}
.vk-mobile-nav nav ul li a {
	border-bottom: 1px solid var(--main-color) !important;
	font-family: "Zen Old Mincho", serif;
	font-size: 24px;
	color: var(--main-color);
	letter-spacing: 0.22em;
}
.vk-mobile-nav nav ul li a span {
	display: block;
	font-size: 16px;
	color: #000;
	margin-top: -0.5rem;
}

@media screen and (max-width: 1024px) {
	.site-header-container {
		padding: 10px 0;
	}
	.site-header-logo {
		padding-top: 0;
	}
	.site-header-logo img {
		max-height: 50px;
	}
	.site-header::before,
	.site-header::after {
		width: 30px;
		height: 30px;
		bottom: -30px;
	}
}
@media screen and (max-width: 767px) {
	.site-header-logo img {
		max-height: 43px;
	}
	.site-header::before,
	.site-header::after {
		width: 15px;
		height: 15px;
		bottom: -15px;
	}
	.vk-mobile-nav-menu-btn {
		width: 40px;
		height: 40px;
	}
	.vk-mobile-nav {
		max-width: 80%;
	}
	.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
		left: 20%;
	}
	.vk-mobile-nav nav ul li a {
		font-size: 18px;
	}
	.vk-mobile-nav nav ul li a span {
		font-size: 12px;
		margin-top: -0.2rem;
	}
}

/************************************************
 * フッター
************************************************/
.site-footer {
	border-top: none;
	font-size: 16px;
}
.site-footer-content {
	max-width: 1715px !important;
	width: 90%;
	padding: 0 0 7px;
}
.footer_logo {
	position: relative;
	display: inline-block;
    padding: 1.5rem 2rem;
	margin-bottom: 2.4rem;
	background-color: #fff;
}
.footer_logo::before,
.footer_logo::after {
	content: '';
	width: 15px;
	height: 15px;
	background-color: var(--main-color);
	position: absolute;
	bottom: 0;
}
.footer_logo::before {
	left: -1px;
	clip-path: polygon(0 0, 0% 100%, 100% 100%);
}
.footer_logo::after {
	right: -1px;
	clip-path: polygon(100% 0, 0% 100%, 100% 100%);
}
.footer_company_name {
	font-size: 20px;
	letter-spacing: 0.04em;
	margin-bottom: .3rem;
}
.site-footer p {
	line-height: 1.9;
}
.footer_items > .wp-block-column:has(.copyright_text) {
	display: flex;
	flex-direction: column;
}
.copyright_text {
	font-size: 13px;
	margin-top: auto;
	margin-bottom: 0;
	text-align: right;
}
.copyright_text a {
	margin-right: 12px;
	text-decoration: none !important;
}
.site-footer .menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	margin-top: 1.4rem;
}
.site-footer .menu .current_page_item {
	background-color: transparent !important;
}
.site-footer .menu .current_page_item a {
	border: none !important;
	background-color: transparent !important;
}
.site-footer .menu a {
	font-family: "Zen Old Mincho", serif;
	font-size: 22px;
	font-weight: 600;
    letter-spacing: 0.22em;
    padding: 6px 24px !important;
    text-align: center;
	border-bottom: none !important;
}
.site-footer .menu li:last-child a {
	padding-right: 0 !important;
}
.site-footer .menu a span {
	display: block;
	font-size: 14px;
}
.site-footer-copyright {
	display: none !important;
}

@media screen and (max-width: 1300px) {
	.footer_logo {
		width: 17rem;
		padding: 1.3rem 1.6rem;
	}
	.site-footer .menu a {
		font-size: 20px;
		padding: 6px 18px !important;
	}
}
@media screen and (max-width: 1024px) {
	.site-footer {
		font-size: 14px;
	}
	.footer_logo {
		max-width: 250px !important;
		padding: .5rem 1rem;
		margin-bottom: 1.5rem;
	}
	.footer_logo::before,
	.footer_logo::after {
		bottom: -1px;
	}
	.footer_items.wp-block-columns.is-not-stacked-on-mobile {
		flex-wrap: wrap !important;
	}
	.footer_items > .wp-block-column:first-child,
	.footer_items > .wp-block-column:last-child {
		flex-basis: 100% !important;
		width: 100%;
	}
	.site-footer .menu {
		margin-top: 0;
		justify-content: flex-start;
	}
	.site-footer .menu li:first-child a {
		padding-left: 0 !important;
	}
	.site-footer .menu a {
		font-size: 18px;
		padding: 6px 15px !important;
	}
	.site-footer .menu a span {
		font-size: 12px;
	}
	.footer_company_name {
		font-size: 18px;
		margin-bottom: .5rem;
	}
	.site-footer p {
		line-height: 1.6;
	}
	.copyright_text {
		text-align: left;
	}
	.copyright_text a {
		display: block;
		width: 100%;
	}
}
@media screen and (max-width: 767px) {
	.site-footer p.footer_company_name {
		font-size: 16px;
	}
	.site-footer p {
		font-size: 12px;
	}
	.site-footer .footer_items {
		flex-wrap: wrap !important;
		margin-bottom: 5px;
	}
	.footer_items > .wp-block-column:first-child,
	.footer_items > .wp-block-column:last-child {
		flex-basis: 100% !important;
	}
	.footer_logo {
		max-width: 200px !important;
	}
	.site-footer .menu {
		border-top: 1px solid #fff;
	}
	.site-footer .menu li {
		width: 100%;
		border-bottom: 1px solid #fff;
	}
	.site-footer .menu a {
        font-size: 16px;
		text-align: left;
    }
	.site-footer .menu a,
	.site-footer .menu li:first-child a,
	.site-footer .menu li:last-child a {
        padding: 7px 10px 10px !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
	}
	.copyright_text {
		font-size: 12px;
	}
}

/************************************************
 * トップページ
************************************************/
/* MV */
.mv_content {
/* 	position: relative; */
	position: sticky;
	top: 0;
	width: 100vw;
	height: 100svh;
	margin: auto calc(50% - 50vw);
}
.mv_content.scrolled {
	opacity: 0;
}
.mv_box {
/* 	position: fixed;
	top: 0;
	left: 0; */
	width: 100%;
	pointer-events: none;
}
.mv_video {
	margin-bottom: 0;
}
.mv_video video {
	height: 100svh;
	object-fit: cover;
}
.mv_title_box {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	color: #fff;
}
.mv_title {
	font-size: 5.833vw;
	font-style: italic;
    white-space: nowrap;
	line-height: 1;
	letter-spacing: 0.04em;
	margin-bottom: -0.3vw !important;
	text-align: center !important;
}
.mv_sub_title {
	font-size: 2vw;
    font-weight: bold;
    padding-left: 2.4vw;
    letter-spacing: 0.08em;
    line-height: 1.3;
}

@media screen and (max-width: 1024px) {
	.mv_sub_title {
		font-size: 4vw;
	}
	.mv_title {
		font-size: 10.833vw;
		padding-left: 2vw;
		text-align: left !important;
		white-space: unset !important;
	}
}

/* ABOUT */
body {
	overflow: visible;
}
.pin-spacer:has(.scroll_ani.top) {
	z-index: 1 !important;
}
.about_content {
/* 	height: 70.8vw; */
	height: 75vw;
	overflow: visible;
	clip-path: inset(0);
	padding-top: 0;
	left: 0;
}
.about_content::after {
	content: '';
	width: 100%;
	height: 100%;
	background: url('../../../wp-content/uploads/2025/07/about_bg1-scaled.webp') center / cover no-repeat;
	position: absolute;
	top: 0;
	left: 0;
}
.about_content .vk_outer_container {
/* 	padding-top: 15.9vw; */
	padding-top: 20vw;
}
.about_content .mv_title_box {
	position: absolute !important;
    width: 100vw;
    top: -100svh;
    left: 50%;
    height: calc(100svh + 9vw);
	z-index: 4;
}
.about_content .mv_title_box .wp-block-group__inner-container {
	position: sticky;
    left: 0;
    top: 0;
    width: 100%;
	max-width: unset;
	padding-top: calc(100svh - 8.2vw);
	z-index: 4;
	color: var(--main-color);
}
.about_text {
	position: relative;
	width: 60vw;
	max-width: 880px !important;
	margin: 0 auto;
	z-index: 1;
}
.about_bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 103.5vw;
    margin: auto calc(50% - 51.75vw);
	clip-path: circle(10% at 50% 50%);
}
.about_bg img {
	width: 100%;
}

@media screen and (max-width: 1024px) {
	.about_content,
	.about_bg.wp-block-image img:not([style*=object-fit]) {
		height: 110vw !important;
		object-fit: cover;
	}
	.about_content .mv_title_box .wp-block-group__inner-container {
		padding-top: calc(100svh - 26.3vw);
	}
	.about_content .mv_title_box {
		height: calc(100svh + 28vw);
	}
	.about_content .vk_outer_container {
		padding-top: 36vw;
	}
	.about_text {
		width: 90%;
	}
}
@media screen and (max-width: 767px) {
	.about_content,
	.about_bg.wp-block-image img:not([style*=object-fit]) {
		height: 155vw !important;
	}
	.about_content .vk_outer_container {
		padding-top: 42vw;
	}
	.about_text {
		max-width: 400px;
		width: 100%;
	}
	.about_bg {
		width: 100vw;
		margin: auto calc(50% - 50vw);
	}
}

/* 事業内容 */
.service_content {
	--cut: 3vw;
	--top-pos: -1.3vw;
	--side-pos: 1.4vw;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	padding-top: 0;
	padding-bottom: 0;
	margin-top: -16.5vw;
	min-height: 100svh;
}
.service_content::before {
	content: '';
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	background-color: #fff;
	width: 100%;
	height: calc(100% - 16.5vw);
}
.service_content.wp-block-vk-blocks-outer > div > .vk_outer_container {
	width: 90vw;
/* 	margin-left: -4.8vw !important;
	margin-right: -4.8vw !important; */
}
.service_box_icon {
	--icon-top: -1vw;
	--icon-side: -1vw;
	position: absolute;
	width: 9.5vw;
	margin-bottom: 0;
}
.service_box_icon.top {
	top: var(--icon-top);
	left: var(--icon-side);
}
.service_box_icon.bottom {
	bottom: var(--icon-top);
	right: var(--icon-side);
	transform: scale(-1, -1);
}
.service_box_icon img {
	width: 100% !important;
	vertical-align: bottom;
}
.service_content .service_content_inner {
	position: relative;
	background-color: #fff;
	border: .24vw solid #333;
	clip-path: polygon(var(--cut) 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)), 0 var(--cut));
}
.service_content .service_content_inner > .wp-block-group__inner-container {
	max-width: unset !important;
}
.service_content .service_content_inner::before,
.service_content .service_content_inner::after,
.service_box::before,
.service_box::after {
	content: '';
    display: block;
    position: absolute;
    background-color: #333;
    width: .25vw !important;
    height: 5vw !important;
}
.service_content .service_content_inner::before,
.service_box::after {
    transform: rotate(45deg);
}
.service_content .service_content_inner::after,
.service_box::before {
    transform: rotate(-45deg);
}
.service_content .service_content_inner::before {
    top: var(--top-pos);
    left: var(--side-pos);
}
.service_content .service_content_inner::after {
    top: var(--top-pos);
    right: var(--side-pos);
}
.service_box::before {
    bottom: var(--top-pos);
    left: var(--side-pos);
}
.service_box::after {
    bottom: var(--top-pos);
    right: var(--side-pos);
}
.service_content .title01_box {
	color: var(--main-color);
}
.service_box {
	position: relative;
	padding: 3.7vw 4.8vw 5vw;
}
.service_item {
	gap: 7.4%;
	margin-bottom: 0;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	pointer-events: none;
	user-select: none;
}
.service_item.active {
	position: relative;
	opacity: 1;
	pointer-events: auto;
	user-select: auto;
}
.service_item > .wp-block-column:first-child {
	flex-basis: 39.8% !important;
}
.service_item > .wp-block-column:last-child {
	flex-basis: 43% !important;
}
.service_item figure {
	margin-bottom: 0;
}
.servbice_item img {
	width: 100%;
}
.service_item figure,
.service_title,
.service_text {
	opacity: 0;
	filter: blur(10px);
	transition: all .6s;
}
.service_title,
.service_text {
	transition-delay: .3s;
}
.service_item.active figure,
.service_item.active .service_title,
.service_item.active .service_text {
	opacity: 1;
	filter: blur(0px);
	transition: all .6s;
}
.service_item.active figure img {
	width: 100%;
	vertical-align: bottom;
}
.service_item.active .service_title,
.service_item.active .service_text {
	transition-delay: .3s;
}
.service_title {
	color: var(--main-color);
	font-size: 40px;
	letter-spacing: 0.1em;
	line-height: 1.3;
	margin-bottom: 1.6rem;
}
.service_text {
	font-size: 20px;
	letter-spacing: 0.08em;
	line-height: 1.6;
	margin-bottom: 0;
}
.service_thumble_box {
	position: absolute;
	top: 53%;
	right: 3rem;
	transform: translateY(-50%);
}
.service_thumble {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--main-color);
}
.service_thumble + .service_thumble {
	margin-top: 15px;
}
.service_thumble.active {
	background-color: #717070;
}

@media screen and (max-width: 1800px) {
	.service_box {
		padding: 4rem 4.5vw 5rem;
		margin: 0;
	}
}
@media screen and (max-width: 1300px) {
	.service_content {
		--top-pos: -1.3vw;
        --side-pos: 1.1vw;
	}
	.service_box_icon {
		--icon-top: -0.8vw;
		--icon-side: -0.8vw;
	}
	.service_content .service_content_inner {
		border-width: .45vw;
	}
	.service_content .service_content_inner::before,
	.service_content .service_content_inner::after,
	.service_box::before,
	.service_box::after {
		width: .46vw !important;
	}
	.service_title {
		font-size: 30px;
	}
	.service_text {
		font-size: 18px;
	}
}
@media screen and (max-width: 1024px) {
	.service_content {
/* 		margin-top: -16vw; */
		margin-top: -27vw;
	}
	.service_content::before {
/* 		height: calc(100% - 16vw); */
		height: calc(100% - 27vw);
	}
	.service_box {
		padding: 3rem 2rem 4rem;
		margin: 0;
	}
	.service_content .service_item {
		gap: 1.5rem;
		flex-wrap: wrap !important;
	}
	.service_item > .wp-block-column:first-child,
	.service_item > .wp-block-column:last-child {
		flex-basis: 100% !important;
	}
	.service_title {
		font-size: 22px;
		margin-bottom: 1rem;
	}
	.service_text {
		font-size: 15px;
		line-height: 1.6;
	}
	.service_item figure {
		max-width: 450px !important;
		margin: 0 auto;
	}
	.service_thumble_box {
		top: 50%;
		right: 15px;
	}
	.service_thumble {
		width: 10px;
		height: 10px;
	}
	.service_thumble + .service_thumble {
		margin-top: 10px;
	}
}
@media screen and (max-width: 767px) {
	.service_content {
		margin-top: -40vw;
	}
	.service_content::before {
		height: calc(100% - 40vw);
	}
	.service_box {
		padding: 2.5rem 5vw 3rem;
		min-height: 85svh;
	}
	.service_box_icon {
		--icon-top: -1.2vw;
        --icon-side: -1.2vw;
		width: 11.5vw;
	}
	.service_content .service_item {
		gap: 1.5rem;
	}
	.service_title {
		font-size: 18px;
		margin-bottom: .5rem;
	}
	.service_text {
		font-size: 13px;
	}
	.service_thumble_box {
		right: 10px;
	}
	.service_thumble {
		width: 8px;
		height: 8px;
	}
	.service_thumble + .service_thumble {
		margin-top: 8px;
	}
}

/* ポートフォリオ */
.portfolio_content {
	padding-top: 10.4rem;
	padding-bottom: 5.35rem;
}
.portfolio_box {
	max-width: 1320px;
/* 	max-width: 1310px; */
	margin: 0 auto;
}
.portfolio_box > .wp-block-group__inner-container {
	max-width: unset !important;
}
.portfolio_column {
	gap: 0 12.7%;
	margin-top: 6.8rem;
}
.portfolio_column.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column {
	flex-basis: auto;
    flex-grow: 0;
	width: 100%;
}
.portfolio_column.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column:has(.portfolio_table) {
	flex-shrink: 0;
	width: auto;
}
.portfolio_table,
.portfolio_table table,
.portfolio_table table tr,
.portfolio_table table tr th,
.portfolio_table table tr td {
	font-size: 28px;
	border: none;
}
.portfolio_table {
	width: 420px;
	margin-top: 0.6rem;
}
.portfolio_table table {
	border: 4px solid #959595;
}
.portfolio_table table tr td {
	letter-spacing: .04em;
	text-align: center;
	padding: 18px 28px;
	border-bottom: 2px solid #959595;
}
.portfolio_table table tr:last-child td {
	border-bottom: none;
}
.portfolio_table table tr td:first-child {
	color: #fff;
	background-color: #959595;
	font-size: 22px;
	font-weight: bold;
	border-color: #fff;
}
@media screen and (max-width: 1500px) {
	.portfolio_table,
	.portfolio_table table,
	.portfolio_table table tr,
	.portfolio_table table tr th,
	.portfolio_table table tr td {
		font-size: 1.86vw;
	}
	.portfolio_table {
		width: 28vw;
	}
	.portfolio_table table {
		border-width: .26vw;
	}
	.portfolio_table table tr td {
		padding: 1.2vw 1.86vw;
		border-width: .13vw;
	}
	.portfolio_table table tr td:first-child {
		font-size: 1.45vw;
	}
}
@media screen and (max-width: 1024px) {
	.portfolio_content {
		padding-top: 3.4rem;
		padding-bottom: 4.35rem;
	}
	.portfolio_column {
		gap: 0 6%;
		margin-top: 3.8rem;
	}
	.portfolio_table,
	.portfolio_table table,
	.portfolio_table table tr,
	.portfolio_table table tr th,
	.portfolio_table table tr td {
		font-size: 2.4vw;
	}
	.portfolio_table table tr td:first-child {
		font-size: 2vw;
	}
	.portfolio_table {
        width: 36vw;
    }
}
@media screen and (max-width: 767px) {
	.portfolio_content {
		padding-top: 2.4rem;
		padding-bottom: 2.35rem;
	}
	.portfolio_column {
		margin-top: 2rem;
	}
	.portfolio_table,
	.portfolio_table table,
	.portfolio_table table tr,
	.portfolio_table table tr th,
	.portfolio_table table tr td {
		font-size: 2.7vw;
	}
	.portfolio_table {
        width: 30vw;
    }
	.portfolio_table table,
	.portfolio_table table tr td {
		border-width: 1px;
	}
	.portfolio_table table tr td {
		padding: 1.2vw 1.5vw;
	}
	.portfolio_table table tr td:first-child {
        font-size: 2.16vw;
    }
}

/* 会社概要 */
.company_content {
	padding-top: 8rem;
	overflow: visible;
}
.company_content .title01_box {
	color: #0c0c0c;
	margin-bottom: 8.5rem;
}
.company_box {
	max-width: 1320px;
	margin: 0 auto;
}
.company_box + .company_box {
	margin-top: 13.5rem;
}
.bar_title {
	font-size: 22px;
	letter-spacing: 0.2em;
	border-bottom: 1px solid #909090;
	padding-bottom: .4rem;
	margin-bottom: 2.4rem;
}
.main_title_box {
	color: var(--main-color);
}
.main_title {
	font-size: 74px;
	letter-spacing: 0.037em;
	line-height: 1;
	margin-bottom: -0.5rem !important;
}
.main_sub_title {
	font-size: 28px;
	font-weight: 900;
	letter-spacing: 0.04em;
}
.philosophy_items {
	gap: 11%;
	margin-top: 2.4rem;
}
.philosophy_items > .wp-block-column:first-child {
	flex-basis: 60% !important;
}
.philosophy_items > .wp-block-column:last-child {
	flex-basis: 24.5% !important;
	margin-right: calc(50% - 50vw);
	flex-grow: 1 !important;
	overflow: hidden;
}
.philosophy_text {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 2.27;
	padding-top: 2rem;
	margin-bottom: 0.2rem;
}
.greeting_text,
.greeting_name {
	max-width: 885px !important;
	margin: 0 auto;
}
.greeting_text {
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 2.2727;
	margin-top: 4.7rem;
    margin-bottom: 0.9rem;
}
.greeting_name {
	font-size: 24px;
	font-weight: bold;
	letter-spacing: 0.04em;
	line-height: 2.0833;
}
.company_table {
	max-width: 1200px !important;
    margin: 3.5rem auto 0;
}
.company_table tr {
	border-bottom: 1px solid #909090;
}
.company_table td {
	border: none;
	font-size: 18px;
	letter-spacing: 0.2em;
	line-height: 1.666;
	padding: 1.03rem 1rem;
}
.company_table td:first-child {
	width: 215px;
	font-weight: bold;
	color: var(--main-color);
}
.company_logo {
	position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    max-width: 1026px !important;
	width: 70%;
    margin-left: auto;
	z-index: -1;
	user-select: none;
	pointer-events: none;
}
.company_logo img {
	position: sticky;
    top: 2rem;
    left: 0;
}

@media screen and (max-width: 1024px) {
	.company_content {
		padding-top: 2rem;
	}
	.company_content .title01_box {
		margin-bottom: 4rem;
	}
	.company_logo {
		width: 50%;
	}
	.bar_title {
		font-size: 18px;
		margin-bottom: 1.4rem;
	}
	.main_title {
		font-size: 38px;
		margin-bottom: -0.2rem !important;
	}
	.main_sub_title {
		font-size: 20px;
	}
	.philosophy_items {
		gap: 5%;
	}
	.philosophy_text {
		font-size: 16px;
		line-height: 1.666;
	}
	.company_box + .company_box {
		margin-top: 4rem;
	}
	.greeting_text {
		font-size: 18px;
		line-height: 1.8;
		margin-top: 0;
	}
	.greeting_name {
		font-size: 20px;
	}
	.company_table {
		margin-top: 0;
	}
	.company_table td {
		font-size: 16px;
	}
	.company_table td:first-child {
		width: 150px;
	}
}
@media screen and (max-width: 767px) {
	.company_content .title01_box {
		margin-bottom: 2rem;
	}
	.main_title {
		font-size: 28px;
		margin-bottom: 0 !important;
	}
	.main_sub_title {
		font-size: 14px;
	}
	.company_content .philosophy_items {
		flex-wrap: wrap !important;
	}
	.philosophy_items > .wp-block-column:first-child,
	.philosophy_items > .wp-block-column:last-child {
		flex-basis: 100% !important;
	}
	.philosophy_items > .wp-block-column:first-child {
		order: 1;
	}
	.philosophy_text {
		font-size: 14px;
		padding-top: 1rem;
	}
	.bar_title {
		font-size: 18px;
		margin-bottom: .8rem;
	}
	.greeting_text {
		font-size: 16px;
	}
	.greeting_name {
		font-size: 18px;
	}
	.company_table tr,
	.company_table td {
		display: block;
		width: 100% !important;
	}
	.company_table tr {
		padding: 15px 0;
	}
	.company_table td {
		padding: 0;
		font-size: 14px;
	}
	.company_table td:first-child {
		padding-bottom: 3px;
	}
}

/* バナー */
.banner_img {
	display: flex;
	align-items: center;
	margin-top: 9.2rem;
	margin-bottom: 4rem;
	aspect-ratio: 1 / .25;
    overflow: hidden;
	
	background-color: #333;
}
.banner_img img {
	width: 100%;
	vertical-align: bottom;
}

@media screen and (max-width: 1024px) {
	.banner_img {
		margin-top: 4rem;
		margin-bottom: 2rem;
	}
}
@media screen and (max-width: 767px) {
	.banner_img {
		margin-top: 3rem;
		margin-bottom: 1rem;
	}
/* 	.banner_img {
		aspect-ratio: 1 / .6;
	}
	.banner_img img {
		scale: 2;
	} */
}

/* お問い合わせ */
.contact_content {
	padding-top: 5.3rem;
	padding-bottom: 9.5rem;
}
.contact_content .title01_box {
	color: #0c0c0c;
	margin-bottom: 5.5rem;
}
.contact_box {
	--tri-size: 1.6vw;
	position: relative;
	width: 100vw;
	max-width: unset;
	padding: 5.2rem 0 3.3rem;
	margin: 0 calc(50% - 50vw);
}
.contact_box::before,
.contact_box::after,
.contact_box > .wpcf7::before,
.contact_box > .wpcf7::after {
	content: '';
	display: block;
    position: absolute;
    width: var(--tri-size);
    aspect-ratio: 1 / 1;
    background-color: #fff;
	z-index: 1;
}
.contact_box::before,
.contact_box::after {
    top: -1px;
}
.contact_box::before {
	left: -1px;
	clip-path: polygon(0 0, 0% 100%, 100% 0);
}
.contact_box::after {
	left: calc((94.5vw - var(--tri-size)) + 1px);
	clip-path: polygon(100% 0, 0 0, 100% 100%);
}
.contact_box > .wpcf7::before,
.contact_box > .wpcf7::after {
    bottom: -1px;
}
.contact_box > .wpcf7::before {
	left: -1px;
	clip-path: polygon(0 0, 0 100%, 100% 100%);
}
.contact_box > .wpcf7::after {
	left: calc((94.5vw - var(--tri-size)) + 1px);
	clip-path: polygon(100% 0, 0 100%, 100% 100%);
}
.contact_box > .wpcf7 form::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 94.5vw;
	height: 100%;
	background: #eeeeee;
}
.contact_table {
	width: 85%;
	max-width: 888px;
	margin: 0 auto;
}
.wpcf7 form.sent .wpcf7-response-output {
	position: relative;
	width: 85%;
	max-width: 888px;
	margin-left: auto;
    margin-right: auto;
}
.contact_table,
.contact_table tr,
.contact_table tr th,
.contact_table tr td {
	position: relative;
	font-size: 1rem;
	text-align: left;
	padding: .6rem 0;
	border: none;
}
.contact_table p {
	margin-bottom: 0;
}
input[type=date],
input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text],
input[type=url],
select,
textarea {
	background: #fff;
	padding: 1em;
	margin-bottom: 0;
	border: 1px solid var(--main-color);
	border-radius: 0;
	font-family: "noto-sans-cjk-jp", sans-serif;
	letter-spacing: 0.2em;
}
.wpcf7-form-control-wrap:has(select) {
	position: relative;
}
.wpcf7-form-control-wrap:has(select)::before,
.wpcf7-form-control-wrap:has(select)::after {
	content: '';
	width: 10px;
	height: 10px;
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	background: #0c0c0c;
	position: absolute;
	bottom: -3px;
	right: 17px;
	pointer-events: none;
}
.wpcf7-form-control-wrap:has(select)::before {
	bottom: unset;
	top: -3px;
	transform: rotate(180deg);
}
textarea {
	resize: none;
}
.contact_table tr th {
	letter-spacing: .2em;
	font-weight: 400;
	width: 15.85em;
}
.wpcf7-not-valid-tip {
	font-size: .875em;
}
.privacy-text {
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.4em;
	line-height: 1.75;
	color: #2c2c2c;
	margin-bottom: 2.9rem !important;
}
.privacy-check {
	margin-bottom: 3.2rem;
}
.privacy-check .wpcf7-list-item {
	letter-spacing: .39em;
	margin-left: 0;
}
.privacy-check .wpcf7-list-item > label {
	display: flex;
	align-items: center;
	gap: .5em;
}
.privacy-check .wpcf7-list-item input[type="checkbox"] {
	width: 1.5em;
    height: 1.5em;
}
.submit_box {
	display: inline-block;
	background-color: var(--main-color);
	text-align: center;
	min-width: 357px;
	padding: 1rem;
	border: 1px solid var(--main-color);
	transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
	cursor: pointer;
}
.submit_box:has(.wpcf7-submit[disabled]) {
	user-select: none;
	pointer-events: none;
	opacity: .3;
}
.submit_box:hover {
	color: var(--main-color);
	background-color: #fff;
}
.submit_box p {
	display: inline-block;
	position: relative;
	padding-right: 1.5em;
}
.submit_box p::before {
	content: '';
    display: block;
    position: absolute;
    top: 56%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    background-image: url(../../../wp-content/uploads/2025/07/arrow_btn.png);
    background-repeat: no-repeat;
    background-size: contain;
    width: 0.88em;
    aspect-ratio: 7 / 8;
}
.submit_box:hover p::before {
	background-image: url(../../../wp-content/uploads/2025/07/arrow_btn_color.png);
}
.submit_box .wpcf7-submit {
	background-color: transparent !important;
	font-family: "Zen Old Mincho", serif;
	font-size: 18px;
	letter-spacing: .29em;
	text-indent: .29em;
	padding: 0;
	border: none !important;
	border-radius: 0;
	transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.submit_box .wpcf7-submit:hover,
.submit_box:hover .wpcf7-submit {
	color: var(--main-color) !important;
}
.wpcf7-spinner {
	display: none;
}
.grecaptcha-badge {
	bottom: 80px !important;
	z-index: 1;
}
@media screen and (max-width: 1024px){
	.contact_content {
		padding-top: 3rem;
		padding-bottom: 5.5rem;
	}
	.contact_content .title01_box {
		margin-bottom: 2rem;
	}
	.contact_box {
		--tri-size: 3.6vw;
		padding: 2rem 0 4rem;
	}
	.contact_table tr th,
	.contact_table tr td {
		display: block;
		width: 100%;
	}
	.contact_table,
	.wpcf7 form.sent .wpcf7-response-output {
		width: 85%;
		max-width: 500px;
	}
	.contact_table tr {
		padding: 0;
	}
	.contact_table tr th {
		padding-top: .7rem;
		padding-bottom: 0;
	}
	input[type=date],
	input[type=email],
	input[type=number],
	input[type=password],
	input[type=tel],
	input[type=text],
	input[type=url],
	select,
	textarea {
		padding: .6em;
	}
	.submit_box {
		display: block;
		min-width: unset;
	}
	.submit_box .wpcf7-submit {
		font-size: 16px;
	}
	.privacy-check .wpcf7-list-item {
		letter-spacing: .3em;
	}
	.privacy-text {
		font-size: 12px;
		letter-spacing: .2em;
		margin-bottom: 1.5rem !important;
	}
	.privacy-check {
		margin-bottom: 2rem;
	}
}
@media screen and (max-width: 767px){
	.contact_box {
		--tri-size: 5.6vw;
	}
	.contact_box > .wpcf7 form::before {
		width: 97vw;
	}
	.contact_box::after,
	.contact_box > .wpcf7::after {
		left: calc((97vw - var(--tri-size)) + 1px);
	}
	.privacy_policy {
		font-size: 12px;
		letter-spacing: .25em;
	}
}

/************************************************
 * プライバシーポリシー
************************************************/
.privacy_content .title01_box {
	margin-bottom: 2.5rem;
}

/**************************************
 * アニメーション
***************************************/
.delay1 {
	transition-delay: 0.1s !important;
}
.delay2 {
	transition-delay: 0.2s !important;
}
.delay3 {
	transition-delay: 0.3s !important;
}
.delay4 {
	transition-delay: 0.4s !important;
}
.delay5 {
	transition-delay: 0.5s !important;
}

/* ふわっと */
.class_key.up {
	transform: translateY(30px);
	opacity: 0;
	transition: all .3s;
}
.up.class_active {
	transform: translateY(0);
	opacity: 1;
}

/* 右から左 */
.class_key.right {
	transform: translateX(30px);
	opacity: 0;
	transition: all .5s;
}
.right.class_active {
	transform: translateX(0);
	opacity: 1;
}

/* 左から右 */
.class_key.left {
	transform: translateX(-30px);
	opacity: 0;
	transition: all .5s;
}
.left.class_active {
	transform: translateX(0);
	opacity: 1;
}