/*
Theme Name: 株式会社 FEAT.
Template: lightning
Author: 株式会社 FEAT.
Version: 0.6.1
*/

/**********************************************
 * 共通
***********************************************/
:root {
	--main-color: #06385c;
	--sub-color: #2b81d8;
}
.poppinse {
	font-family: "Poppins", sans-serif;
}
.noto-sans {
	font-family: "Noto Sans JP", sans-serif;
}
body {
	font-family: "Noto Sans JP", sans-serif;
	color: #000;
	overflow: hidden;
}
.site-body-container,
.site-footer-content,
.site-footer-copyright {
	padding: 0;
    max-width: 1400px !important;
    width: 90%;
}
.single-news .site-body-container {
	max-width: 1200px !important;
}
.vk_outer_container,
.alignfull div[class*=__inner-container],
.alignwide div[class*=__inner-container] {
	max-width: 100% !important;
}
img {
	width: 100%;
}
#page_top {
	display: none;
}

/* タイトル */
.title01_box {
	margin-bottom: 3rem;
}
.title01 {
	font-size: 80px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.08em;
}
.sub_title01 {
	font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1em;
    margin-bottom: -10px !important;
}
@media screen and (max-width: 1024px) {
	.title01_box {
		margin-bottom: 2rem;
	}
	.sub_title01 {
		font-size: 18px;
		margin-bottom: -5px !important;
	}
	.title01 {
		font-size: 50px;
	}
}
@media screen and (max-width: 767px) {
	.sub_title01 {
		font-size: 15px;
	}
	.title01 {
		font-size: 36px;
	}
}

/* ボタン */
.btn01 a {
	position: relative;
	font-size: 18px !important;
    font-weight: 600;
    letter-spacing: 0.04em;
    border: none !important;
    border-radius: 9999px;
    padding: .8rem 3rem !important;
	overflow: hidden;
}
.btn01 .vk_button_link_caption {
	position: relative;
	z-index: 1;
}
.btn01 a::before {
	content: '';
	width: 7px;
	height: 7px;
	background: #fff;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	right: 2rem;
	transform: translateY(-50%);
	transition: all .3s;
	z-index: 1;
}
.btn01 a:hover {
	color: #fff;
	background: var(--sub-color) !important;
	box-shadow: none;
	opacity: 1;
}
.btn01 a:hover::before {
	transform: translateY(-50%) scale(.7);
	background: #fff;
}
.btn01.white a::before {
	background: var(--main-color);
}
.btn01.white a:hover::before {
	background: #fff;
}
@media screen and (max-width: 1024px) {
	.btn01 a {
		font-size: 16px !important;
	}
}
@media screen and (max-width: 1024px) {
	.btn01 a {
		font-size: 14px !important;
	}
	.btn01 a::after,
	.btn01 a::before {
		width: 5px;
		height: 5px;
	}
}

/* ページヘッダー */
.page_header_box {
	position: relative;
	width: 100vw;
	margin: 0 calc(50% - 50vw);
}
.page_header_img {
	vertical-align: bottom;
}
.page_header_img img {
	min-height: 400px !important;
	object-fit: cover;
}
.page_header_title_box {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	border-radius: 5px 5px 0 0;
	padding: 13px 50px 0;
	min-width: 350px;
}
.page_header_title {
	font-size: clamp(2.5rem, 1.5rem + 1.56vw, 3.375rem);
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-align: center !important;
}
.page_header_sub_title {
	font-size: 16px;
	letter-spacing: 0.1em;
	text-align: center;
	color: #8a8e94;
	text-align: center;
}
@media screen and (max-width: 1024px) {
	.page_header_img img {
		min-height: 300px !important;
	}
}
@media screen and (max-width: 767px) {
	.page_header_img img {
        min-height: 250px !important;
    }
	.page_header_title_box {
		min-width: 200px;
        max-width: 90%;
        width: max-content;
        padding: 15px 20px 0;
	}
	.page_header_title {
		font-size: 28px;
		letter-spacing: 0.04em;
	}
	.page_header_sub_title {
		font-size: 14px;
		letter-spacing: 0.04em;
	}
}


/**********************************************
 * ヘッダー
***********************************************/
.site-header {
	position: fixed !important;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
}
.site-header-container {
	padding: 0 40px;
	max-width: 1400px !important;
	width: 90%;
	background: #fff;
	border-radius: 9999px;
	margin-top: 10px;
	box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
}
.site-header-logo {
	max-width: 100%;
	width: max-content;
	padding-top: 10px;
	padding-bottom: 10px;
	margin-bottom: 0;
}
.site-header-logo img {
	min-height: 60px;
	object-fit: contain !important;
	object-position: left;
}
.global-nav-list {
	gap: 0 15px;
}
.global-nav-list>li::before {
	display: none;
}
.global-nav-list>li::after {
	content: '';
	width: 7px;
	height: 7px;
	background: var(--main-color);
	border-radius: 50%;
	position: absolute;
	top: 52%;
	left: 0;
	transform: translateY(-50%);
	transition: all .3s;
}
.global-nav-list>li:hover::after {
	background: var(--sub-color);
	transform: translateY(-50%) scale(.7);
}
.device-pc .global-nav-list>li>a {
	padding: 10px 1rem !important;
	color: var(--main-color);
	transition: all .3s;
}
.global-nav-list>li:hover a {
	color: var(--sub-color) !important;
}
.global-nav-list>li .global-nav-name {
	font-size: 16px;
}
.global-nav-list>li.header_btn {
	background: var(--main-color);
	border-radius: 9999px;
	transition: all .3s;
}
.global-nav-list>li.header_btn:hover {
	background: var(--sub-color);
}
.global-nav-list>li.header_btn a {
	color: #fff !important;
	padding: 10px 2.5rem !important;
}
.global-nav-list>li.header_btn:hover a {
	color: #fff;
}
.global-nav-list>li.header_btn::after {
	left: unset;
	right: 20px;
	background: #fff;
}
.global-nav-list>li.header_btn:hover::after {
	background: #fff;
}

.vk-mobile-nav-menu-btn {
	width: 45px;
    height: 45px;
    top: 23px;
    right: 30px !important;
    border: none;
    background: var(--vk-mobile-nav-menu-btn-bg-src) center 100% no-repeat rgba(255, 255, 255, .8);
}
.vk-mobile-nav-menu-btn.menu-open {
	border: none;
}
.vk-mobile-nav {
	max-width: 500px;
	padding: 6rem 30px 0;
	background: var(--main-color);
	border-bottom: none;
}
.vk-mobile-nav.vk-mobile-nav-open {
	left: calc(100% - 500px) !important;
}
.vk-mobile-nav nav>ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0 5%;
	border-top: 2px solid #fff;
}
.vk-mobile-nav nav ul li {
	width: 100%;
}
.vk-mobile-nav nav ul li a {
	position: relative;
	font-size: 18px;
	font-weight: bold;
	color: #fff;
	border-bottom: 2px solid #fff;
}
body::before {
	content: '';
	width: 100%;
	height: 100vh;
	background: #000;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	left: 0;
	transition: all .3s;
	z-index: 1999;
}
body:has(.menu-open)::before {
	opacity: .7;
	pointer-events: auto;
}
@media screen and (max-width: 1150px) {
	.site-header-container {
		padding: 0 20px;
	}
	.global-nav-list {
		gap: 0;
	}
}
@media screen and (max-width: 992px) {
	.site-header {
		padding: 0 10px;
	}
	.site-header-container {
		padding: 0 25px;
		width: 100%;
	}
	.site-header-logo img {
		min-height: 50px;
	}
}
@media screen and (max-width: 767px) {
	.site-header-logo {
		padding-top: 5px;
		padding-bottom: 5px;
	}
	.site-header-logo img {
		min-height: 40px;
        max-height: 40px;
	}
	.vk-mobile-nav-menu-btn {
		width: 40px;
		height: 40px;
		top: 14px;
	}
	.vk-mobile-nav {
		max-width: 80%;
		padding: 6rem 10px;
	}
	.vk-mobile-nav.vk-mobile-nav-open {
		left: 20% !important;
	}
	.vk-mobile-nav nav>ul {
		border-top: 1px solid #fff;
	}
	.vk-mobile-nav nav ul li a {
		font-size: 16px;
		border-bottom: 1px solid #fff;
	}
}



/**********************************************
 * フッター
***********************************************/
.site-footer {
	border-top: none !important;
	font-size: 16px;
	letter-spacing: 0.04em;
	padding-top: 3rem;
}
.site-footer .row {
	margin: 0;
}
.site-footer .row > div {
	padding: 0;
}
.footer_logo {
	max-width: 320px;
	margin-bottom: 2rem;
}
.site-footer .widget_nav_menu {
	display: flex;
	justify-content: flex-end;
}
.site-footer .menu {
	display: flex;
	flex-wrap: wrap;
	gap: 25px 0;
}
.site-footer .menu a {
	padding: 0 20px;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.2;
	border: none;
}
.widget_nav_menu>div>ul li.current_page_item>a,
.widget_nav_menu>div>ul li a:hover {
	background: transparent;
}
.site-footer-copyright {
	padding: 0 0 1rem;
}
.site-footer-copyright p {
	display: flex;
	flex-direction: column;
}
.site-footer-copyright a {
	text-decoration: none;
}
.corporate_box {
	margin-top: 4rem;
}
.corporate_text {
	font-size: 14px;
}
.corporate_logo {
	max-width: 300px;
}
@media screen and (max-width: 1024px) {
	.site-footer {
		font-size: 14px;
	}
	.footer_logo {
		max-width: 250px;
		margin-bottom: 1rem;
	}
	.site-footer .menu a {
		font-size: 14px;
		padding: 0 10px;
	}
	.corporate_box {
		margin-top: 3rem;
	}
	.corporate_text {
		font-size: 13px;
		line-height: 1.666;
	}
	.corporate_logo {
		max-width: 200px;
	}
}
@media screen and (max-width: 767px) {
	.site-footer .footer_items {
		flex-wrap: wrap !important;
	}
	.footer_items > .wp-block-column {
		flex-basis: 100% !important;
	}
	.footer_logo {
        max-width: 200px;
    }
	.site-footer .widget_nav_menu {
		display: block;
	}
	.site-footer .menu {
		flex-wrap: wrap;
		gap: 0;
	}
	.site-footer .menu li {
		width: 100%;
		border-bottom: 1px solid #fff;
	}
	.site-footer .menu li:first-child {
		border-top: 1px solid #fff;
	}
	.site-footer .menu a {
		padding: 10px 5px;
	}
	.corporate_box {
		margin-top: 2rem;
		flex-wrap: wrap !important;
		justify-content: flex-start !important;
	}
}


/**********************************************
 * トップページ
***********************************************/
/* FV */
.fv_img {
	max-width: unset !important;
	width: 100vw;
	margin: 0 calc(50% - 50vw) 10rem;
}
@media screen and (max-width: 1024px) {
	.fv_img {
		margin-bottom: 6rem;
	}
	.fv_img.wp-block-image img:not([style*=object-fit]) {
		height: 60vh !important;
		object-fit: cover !important;
	}
}
@media screen and (max-width: 767px) {
	.fv_img {
		margin-bottom: 3rem;
	}
	.fv_img.wp-block-image img:not([style*=object-fit]) {
		height: 70vh !important;
		object-fit: cover !important;
	}
}

/* 会社案内 */
.top_company_content {
	padding-top: 6rem;
	padding-bottom: 4rem;
/* 	border-radius: 5vw 5vw 0 0; */
}
.top_company_item {
	gap: 1rem 10%;
}
.top_company_item > .wp-block-column:last-child {
	flex-basis: 50% !important;
}
.top_company_title {
	font-size: 38px;
	letter-spacing: 0.04em;
	margin-bottom: 2rem;
}
.top_company_text {
	font-size: 18px;
	letter-spacing: 0.04em;
	line-height: 2;
	margin-bottom: 2.5rem !important;
}
.top_company_img {
	border-radius: 10px;
	overflow: hidden;
}
@media screen and (max-width: 1024px) {
	.top_company_item {
		gap: 1rem 5%;
	}
	.top_company_item > .wp-block-column:last-child {
		flex-basis: 55% !important;
	}
	.top_company_title {
		font-size: 24px;
		margin-bottom: 1.5rem;
	}
	.top_company_text {
		font-size: 16px;
		line-height: 1.666;
		margin-bottom: 1.5rem !important;
	}
}
@media screen and (max-width: 767px) {
	.top_company_content {
		padding-top: 4rem;
	}
	.top_company_content .top_company_item {
		flex-wrap: wrap !important;
	}
	.top_company_item > .wp-block-column:first-child,
	.top_company_item > .wp-block-column:last-child {
		flex-basis: 100% !important;
	}
	.top_company_title {
		font-size: 22px;
		margin-bottom: 1rem;
	}
	.top_company_text {
		font-size: 14px;
	}
	.top_company_img {
		max-width: 500px;
		margin-left: auto;
		margin-right: auto;
		border-radius: 5px;
	}
	.top_company_content .btn01 {
		text-align: center !important;
	}
}

/* お知らせ */
.news_content {
	padding-top: 6rem;
	padding-bottom: 6rem;
}
.news_lists {
	margin-bottom: 2.5rem !important;
}
.vk_posts-postType-news {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0;
	margin: 0;
}
.vk_post-postType-news:first-child,
.vk_post-postType-news:nth-child(2) {
	border-top: 1px solid #333;
}
.vk_post-postType-news {
	position: relative;
	margin: 0;
	width: 47.5%;
	border-bottom: 1px solid #333;
    padding: 2rem 3rem 2rem 1rem;
	cursor: pointer;
}
.vk_post-postType-news::before {
	content: '';
	width: 30px;
	height: 30px;
	background: url('../../../wp-content/uploads/2025/10/black_arrow.png') center / contain no-repeat;
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	transition: right .3s;
}
.vk_post-postType-news:hover::before {
	right: 0;
}
.vk_post-postType-news .postListText_date {
	font-size: 14px;
	letter-spacing: 0.04em;
	margin-bottom: .5rem;
}
.vk_post-postType-news .postListText_title {
	display: block;
	width: 100%;
}
.vk_post-postType-news .postListText_title a {
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-decoration: none;
	color: #000 !important;
}
@media screen and (max-width: 1024px) {
	.news_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.vk_post-postType-news {
		padding: 1.5rem 3rem 1.5rem 1rem;
	}
	.vk_post-postType-news::before {
		width: 20px;
		height: 20px;
	}
	.vk_post-postType-news .postListText_date {
		margin-bottom: .2rem;
	}
	.vk_post-postType-news .postListText_title a {
		font-size: 16px;
		line-height: 1.2;
	}
}
@media screen and (max-width: 767px) {
	.vk_post-postType-news {
		width: 100%;
		padding: 1rem 2rem 1rem .5rem;
	}
	.vk_post-postType-news:nth-child(2) {
		border-top: none !important;
	}
	.vk_post-postType-news .postListText_date {
		font-size: 12px;
	}
	.vk_post-postType-news .postListText_title a {
		font-size: 14px;
	}
}

/* お問い合わせ */
.top_contact_content {
	padding-top: 6rem;
	padding-bottom: 6rem;
}
.top_contact_content::before {
	content: '';
	width: 100%;
	height: 100%;
	background: #000;
	opacity: .6;
	position: absolute;
	top: 0;
	left: 0;
}
.top_contact_sub_title {
	position: relative;
	max-width: 100%;
	width: max-content;
	margin: 0 auto;
	padding: 0 10px;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.666;
	color: #fff;
}
.top_contact_sub_title::before,
.top_contact_sub_title::after {
	content: '';
    width: 2px;
    height: 20px;
    background: #fff;
    position: absolute;
    bottom: 4px;
    left: 0;
    transform: rotate(-25deg);
}
.top_contact_sub_title::after {
	left: unset;
	right: 0;
	transform: rotate(25deg);
}
.top_contact_title {
	font-size: 60px;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
	margin-top: 0;
	margin-bottom: 2rem;
	color: #fff;
}
@media screen and (max-width: 1024px) {
	.top_contact_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.top_contact_sub_title {
		font-size: 16px;
	}
	.top_contact_sub_title::before,
	.top_contact_sub_title::after {
		height: 15px;
	}
	.top_contact_title {
		font-size: 45px;
		margin-bottom: 1.5rem;
	}
}
@media screen and (max-width: 767px) {
	.top_contact_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.top_contact_sub_title {
		font-size: 14px;
	}
	.top_contact_sub_title::before,
	.top_contact_sub_title::after {
		height: 15px;
	}
	.top_contact_title {
		font-size: 32px;
		margin-bottom: 1.5rem;
	}
}

/**********************************************
 * 会社案内
***********************************************/
/* 代表挨拶 */
.greeting_content {
	padding-top: 6rem;
	padding-bottom: 4rem;
	margin-top: 8rem;
	border-radius: 5vw 5vw 0 0;
}
.greeting_item {
	gap: 1rem 10%;
}
.greeting_item > .wp-block-column:first-child {
	flex-basis: 50% !important;
}
.greeting_title {
	font-size: 38px;
	letter-spacing: 0.04em;
	margin-bottom: 2rem;
}
.greeting_text {
	font-size: 18px;
	letter-spacing: 0.04em;
	line-height: 2;
	margin-bottom: 2.5rem !important;
}
.greeting_img {
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 10px;
	overflow: hidden;
}
.greeting_post_box {
	gap: 0 15px;
}
.greeting_post {
	font-size: 18px;
	letter-spacing: 0.12em;
	line-height: 1.2;
}
.greeting_name {
	font-size: 32px;
	font-weight: bold;
	letter-spacing: 0.12em;
	line-height: 1.2;
}
@media screen and (max-width: 1024px) {
	.greeting_content {
		padding-top: 4rem;
		margin-top: 6rem;
	}
	.greeting_item {
		gap: 1rem 5%;
	}
	.greeting_item > .wp-block-column:first-child-child {
		flex-basis: 55% !important;
	}
	.greeting_title {
		font-size: 24px;
		margin-bottom: 1.5rem;
	}
	.greeting_text {
		font-size: 16px;
		line-height: 1.666;
		margin-bottom: 1.5rem !important;
	}
	.greeting_post {
		font-size: 16px;
	}
	.greeting_name {
		font-size: 24px;
	}
}
@media screen and (max-width: 767px) {
	.greeting_content {
		padding-top: 4rem;
		margin-top: 3rem;
	}
	.greeting_content .greeting_item {
		flex-wrap: wrap !important;
	}
	.greeting_item > .wp-block-column:first-child,
	.greeting_item > .wp-block-column:last-child {
		flex-basis: 100% !important;
	}
	.greeting_item > .wp-block-column:last-child {
		order: -1;
	}
	.greeting_title {
		font-size: 22px;
		margin-bottom: 1rem;
	}
	.greeting_text {
		font-size: 14px;
	}
	.greeting_img {
		border-radius: 5px;
	}
	.greeting_post {
		font-size: 14px;
	}
	.greeting_name {
		font-size: 20px;
	}
}

/* 会社概要 */
.overview_content {
	padding-top: 6rem;
	padding-bottom: 6rem;
}
.overview_table {
	max-width: 1000px;
	margin: 0 auto;
}
.overview_table td {
	font-size: 18px;
	letter-spacing: 0.05em;
	border-color: #000 !important;
	padding: 20px 15px;
}
.overview_table td:first-child {
	font-weight: bold;
	width: 220px;
}
@media screen and (max-width: 1024px) {
	.overview_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.overview_table td {
		font-size: 16px;
	}
	.overview_table td:first-child {
		width: 160px;
	}
}
@media screen and (max-width: 767px) {
	.overview_table tr:first-child {
		border-top: 1px solid #000;
	}
	.overview_table tr {
		border-bottom: 1px solid #000;
		padding: 15px 10px;
	}
	.overview_table tr,
	.overview_table td {
		display: block;
	}
	.overview_table td {
		font-size: 14px;
		padding: 0;
		border: none !important;
	}
	.overview_table td:first-child,
	.overview_table td {
		width: 100%;
	}
	.overview_table td:first-child {
		padding-bottom: 5px;
	}
}

/* アクセス */
.access_content {
	padding-top: 4rem;
	padding-bottom: 6rem;
}
.map iframe {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / .4;
	border-radius: 10px !important;
	box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
	vertical-align: bottom;
}
.map_addr {
	font-size: 18px;
	letter-spacing: 0.04em;
	margin-top: 1rem;
	margin-bottom: 3rem;
}
@media screen and (max-width: 1024px) {
	.access_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.map_addr {
		font-size: 16px;
	}
}
@media screen and (max-width: 767px) {
	.map iframe {
		aspect-ratio: 1 / .7;
		border-radius: 5px !important;
	}
	.map_addr {
		font-size: 14px;
	}
}

/*****************************************
 * お知らせ（アーカイブページ）
*****************************************/
.post-type-archive-news .page-header,
.post-type-archive-news .breadcrumb,
.post-type-archive-news .archive-header-title,
.single-news .page-header,
.single-news .breadcrumb {
	display: none;
}
.post-type-archive-news .site-body,
.single-news .site-body {
	padding-top: 4rem;
	padding-bottom: 6rem;
}
.pagination {
	margin-top: 3rem;
}
h1 {
	font-size: 32px;
}
h2 {
	font-size: 30px;
}
h3 {
	font-size: 28px;
}
h4 {
	font-size: 26px;
}
h5 {
	font-size: 24px;
}
ul.page-numbers li {
	margin: 0 5px;
	overflow: visible;
}
ul.page-numbers li span.page-numbers.current {
	background-color: var(--main-color);
	color: #fff;
}
ul.page-numbers li a,
ul.page-numbers li span.page-numbers {
	background-color: #fff;
	border-radius: 50% !important;
	width: 40px;
    height: 40px;
	color: #1f1f1f;
	font-weight: bold;
	padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
ul.page-numbers li a.next,
ul.page-numbers li a.prev {
	padding-bottom: 5px;
}

@media screen and (max-width: 1024px) {
	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) {
	.post-type-archive-news .site-body,
	.single-news .site-body {
		padding-top: 4rem;
	}
	.post-type-archive-news .type-news.vk_post .vk_post_body {
		padding: 10px;
	}
	.post-type-archive-news .vk_post-btn-display .vk_post_btnOuter {
		margin-top: 0;
	}
	h1 {
		font-size: 22px;
	}
	h2 {
		font-size: 20px;
	}
	h3 {
		font-size: 18px;
	}
	h4 {
		font-size: 17px;
	}
	h5 {
		font-size: 16px;
	}
	ul.page-numbers li {
		margin: 0 5px;
	}
	ul.page-numbers li a,
	ul.page-numbers li span.page-numbers {
		width: 35px;
		height: 35px;
		font-size: 13px;
	}
	ul.page-numbers li a.next,
	ul.page-numbers li a.prev {
		padding-bottom: 3px;
	}
}

/**********************************************
 * お問い合わせ
************************************************/
body:has(.contact_content) .top_contact_content {
	display: none !important;
}
.contact_content {
	padding-top: 6rem;
	padding-bottom: 6rem;
	overflow: visible;
	min-height: 81vh;
}
.contact_content::before {
	content: '';
	width: 75.677vw;
	height: 52.708vw;
	background: url('../../../wp-content/uploads/2025/09/contact_bg_item.webp') center / contain no-repeat;
	position: absolute;
	bottom: -13vw;
	right: 0;
}
.contact_content .simple_title {
	margin-bottom: 4.5rem;
}
.contact_box {
	background: #fff;
	border-radius: 20px;
	padding: 3.2rem 1rem 6rem;
}
.input_area,
.confirm_area,
.thanks_area {
	max-width: 900px;
	margin: 0 auto;
}
.contact_table {
	display: block;
	max-width: 1000px;
	width: 100%;
	margin: 0 auto;
	border: none !important;
}
.contact_table tr,
.contact_table tr th,
.contact_table tr td {
	font-size: 18px;
	text-align: left;
	padding: 0;
	border: none;
}
.contact_table tbody {
	display: block;
	width: 100%;
}
.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 {
	font-family: "Noto Sans JP", sans-serif;
	background: #fff;
	padding: .7em 1em;
	margin-bottom: 0;
	border-radius: 0;
	border: 1px solid #000 !important;
	vertical-align: bottom
}
textarea {
	resize: none;
}
/* select {
	position: relative;
}
select::before {
	content: '';
	width: 20px;
	height: 20px;
	background: url('../../../wp-content/uploads/2025/07/black_arrow.png') center / contain no-repeat;
} */
td:has(select) {
	position: relative;
}
td:has(select)::before {
	content: '';
	width: 20px;
	height: 20px;
	background: url('../../../wp-content/uploads/2025/10/black_arrow.png') center / contain no-repeat;
	border-radius: 50%;
	position: absolute;
	top: 14px;
	right: 20px;
	transform: rotate(90deg);
	z-index: 1;
	pointer-events: none;
}
td:has(textarea) {
	position: relative;
	line-height: 1.6;
	resize: none;
}
td:has(textarea) .wpcf7-not-valid-tip {
	position: absolute;
	bottom: -40px;
	left: 0;
}
.contact_table tr {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 16px 0;
}
.contact_table tr:nth-child(7) {
	align-items: flex-start;
}
.contact_table tr th {
	position: relative;
	font-weight: 500;
	letter-spacing: .12em;
	width: 235px;
}
.contact_table tr th p {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.contact_table tr th span {
	font-size: 14px;
	letter-spacing: 0.12em;
	color: #E21413;
}
.contact_table tr td {
	width: calc(100% - 245px);
	padding: 0 !important;
}
.wpcf7-not-valid-tip {
	font-size: .875em;
}
.privacy_policy {
	font-size: 14px;
	letter-spacing: .38em;
	max-height: 157px;
	padding: 16px;
	margin-bottom: 1.2rem;
	border: 1px solid #c8c8c8;
    overflow: auto;
	-webkit-overflow-scrolling: touch;
}
.policy_box + .policy_box {
	margin-top: 1rem;
}
.policy_box .title {
	font-weight: 600;
}
.privacy-check {
	margin-top: .4rem;
}
.privacy-check .wpcf7-list-item {
	letter-spacing: .39em;
	margin-left: 0;
}
.privacy-check .wpcf7-list-item > label {
	display: flex;
	align-items: center;
	gap: .5em;
	font-size: 16px;
	letter-spacing: 0.12em;
	line-height: 1.2;
}
.privacy-check .wpcf7-list-item input[type="checkbox"] {
	width: 1.35em;
    height: 1.35em;
}
.submit_box {
	position: relative;
	display: block;
    text-align: center;
    max-width: 340px;
    cursor: pointer;
    margin-top: 2rem;
	border-radius: 10px;
}
.contact_content:has(.wpcf7-submit[disabled]) .submit_box {
	user-select: none;
	pointer-events: none;
}
.submit_box + .submit_box {
	margin-top: 1rem;
}
.submit_box p {
	position: relative;
	margin-bottom: 0;
}
.submit_box input {
	color: #fff !important;
	background-color: var(--main-color) !important;
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.2em;
	padding: 0;
	width: 100%;
    padding: 16px 24px 16px 10px;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: opacity .3s;
}
.submit_box input.back_button {
	background-color: #9b9b9b !important;
}
.submit_box input:hover {
	opacity: .6;
}
.wpcf7-spinner {
	display: none !important;
}

/*確認画面と完了画面を非表示*/
.confirm_area,
.thanks_area {
	display: none;
}
.confirm_area .contact_table,
.thanks_area .contact_table {
	margin-top: 2rem;
}
.confirm_area > p,
.thanks_area > p {
	font-size: 20px;
	letter-spacing: 0.2em;
	margin-bottom: 0;
}
.confirm_area .contact_table td p span {
	display: block;
	background: #fff;
	padding: .7em 1em;
	border: 1px solid #000;
}
@media screen and (max-width: 1024px){
	.contact_content {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}
	.contact_content .simple_title {
		margin-bottom: 2.5rem;
	}
	.contact_table tr + tr {
		margin-top: 1.5rem;
	}
	.contact_table tr th,
	.contact_table tr td {
		display: block;
		width: 100%;
		font-size: 16px;
	}
	.contact_table tr {
		padding: 0;
		gap: 5px;
	}
	.contact_table tr th p {
		display: block;
	}
	.contact_table tr th p br {
		display: none;
	}
	.contact_table tr th {
		padding-top: 0;
        padding-bottom: 0;
	}
	.contact_table tr th span {
		margin-left: 1rem;
	}
	input[type=date],
	input[type=email],
	input[type=number],
	input[type=password],
	input[type=tel],
	input[type=text],
	input[type=url],
	select,
	textarea {
		padding: .7em 1em;
	}
	td:has(select)::before {
		top: 11px;
	}
	.submit_box {
		display: block;
		max-width: 250px;
		margin: 1rem auto 0;
	}
	.submit_box input {
		font-size: 16px;
	}
	.submit_box .wpcf7-submit {
		font-size: 16px;
	}
	.privacy-check {
		text-align: center;
	}
	.privacy-check .wpcf7-list-item {
		letter-spacing: .3em;
	}
	
	.confirm_area > p,
	.thanks_area > p {
		font-size: 16px;
	}
	.page_contact_container .contact_title {
		font-size: 26px;
		margin-bottom: 1.5rem;
	}
	.privacy_text {
		font-size: 15px;
		margin-bottom: 1.8rem;
	}
	.privacy-check .wpcf7-list-item > label {
		font-size: 14px;
	}
	.privacy-check .wpcf7-list-item input[type="checkbox"] {
		width: 1.2em;
		height: 1.2em;
	}
	td:has(textarea) .wpcf7-not-valid-tip {
		bottom: -30px;
	}
}
@media screen and (max-width: 767px){
	.contact_box {
		border-radius: 10px;
		padding: 3.2rem 1rem;
	}
	.contact_title {
		font-size: 42px;
	}
	.contact_sub_title {
		font-size: 20px;
	}
	.contact_table {
		width: 100%;
	}
	.contact_table tr th,
	.contact_table tr td {
		font-size: 14px;
	}
	.contact_table tr th span {
		font-size: 12px;
		margin-left: .5rem;
	}
	.contact_table tr th {
		letter-spacing: .25em;
	}
	td:has(select)::before {
		top: 11px;
        right: 10px;
	}
	.privacy_policy {
		font-size: 12px;
		letter-spacing: .25em;
	}
	
	.confirm_area > p,
	.thanks_area > p {
		font-size: 14px;
		letter-spacing: 0.04em;
	}
	.page_contact_container .contact_title {
		font-size: 22px;
	}
	textarea {
		height: 210px;
	}
	.privacy_text {
		font-size: 14px;
		text-align: left;
	}
	.privacy-check .wpcf7-list-item > label {
		font-size: 12px;
	}
	.submit_box {
		max-width: 200px;
	}
	.submit_box .wpcf7-submit {
		font-size: 14px;
	}
	.submit_box input {
		font-size: 14px;
		padding: 13px;
		border-radius: 5px;
	}
}


/*********************************************
 * プライバシーポリシー
**********************************************/
.privacy_content {
	padding-top: 6rem;
	padding-bottom: 6rem;
	overflow: visible;
}
@media screen and (max-width: 1024px) {
	.privacy_content {
		padding-top: 6rem;
		padding-bottom: 4rem;
	}
}
@media screen and (max-width: 767px) {
	.privacy_content {
		padding-top: 4rem;
	}
}

/***********************************************
 * アニメーション
***********************************************/
.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;
}
.delay6 {
	transition-delay: 0.6s !important;
}
.delay7 {
	transition-delay: 0.7s !important;
}
.delay8 {
	transition-delay: 0.8 !important;
}
.delay9 {
	transition-delay: 0.9s !important;
}
.delay10 {
	transition-delay: 1s !important;
}

.animate_en span {
	display: inline-block;
	overflow: hidden;
	transform: translateY(70%);
	opacity: 0;
	transition: all .3s var(--char-index);
}
.animate_en.class_active span {
	opacity: 1;
	transform: translate(0);
}
.animate_en span.space {
	display: inline;
}

/* ふわっと */
.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;
}

/* マスク */
.class_key.mask {
	mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
    mask-size: 340% 340%;
    -webkit-mask-size: 340% 340%;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-position: 130% 130%;
    -webkit-mask-position: 130% 130%;
}
.class_active.mask {
	animation: mask-animation 0.8s linear forwards;
}
@keyframes mask-animation {
	0% {
		mask-position: 130% 130%;
    	-webkit-mask-position: 130% 130%;
		mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
	}
	99% {
		mask-position: 0 0;
    	-webkit-mask-position: 0 0;
		mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 0.4) 45%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0) 100%);
	}
	100% {
		mask-image: unset;
		-webkit-mask-image: unset;
	}
}