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

/*******************************************
 * 共通
********************************************/
.noto-sans {
	font-family: "Noto Sans JP", sans-serif;
}
:root {
	--main-color: #0352D0;
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: "Noto Sans JP", sans-serif;
	background-image: linear-gradient(90deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
	color: #000;
}
.main-section {
	margin-bottom: 0 !important;
}
header.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: calc((100% - 600px) / 2);
}
.side_right_box {
	position: fixed;
	top: 0;
	right: 0;
	height: 100vh;
	width: calc((100% - 600px) / 2);
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.site-content {
	max-width: 600px;
	width: 100%;
	margin: 0 auto;
	min-height: 100vh;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	background: #fff;
}
.side_hero_phone {
	position: absolute;
    bottom: 0;
    right: 0;
    max-width: 800px;
    width: 120%;
    margin-left: auto;
    pointer-events: none;
    max-height: calc(100vh - 10% - 250px);
    object-fit: contain;
    object-position: right;
}
.side_hero_title {
	position: absolute;
    top: 10%;
    max-width: 400px;
    width: 58%;
    margin: 0 auto;
	z-index: 1;
}
.site-body-container,
.site-body {
	padding: 0;
}
.site-body-container {
	max-width: 100%;
}
.vk_outer_container {
	width: calc(100% - 40px);
	margin: 0 auto;
}
.page-header,
.breadcrumb {
	display: none;
}
#page_top {
	display: none !important;
}
@media screen and (max-width: 1250px) {
	.side_right_box {
		display: none;
	}
	.site-content {
		margin-right: 0;
	}
	header.site-header {
		width: calc(100% - 600px);
	}
}
@media screen and (max-width: 1024px) {
	.site-content {
		margin-right: auto;
	}
	.side_hero_title {
		max-width: 300px;
		width: 70%;
	}
}
@media screen and (max-width: 767px) {
	.site-content {
		margin-left: auto;
	}
	.side_right_box {
		display: none;
	}
}
@media screen and (max-width: 650px) {
	.site-content {
		max-width: 100%;
	}
}

/* タイトル */
.title01 {
	position: relative;
	font-size: 30px;
	line-height: 1.2;
	padding-bottom: 22px;
	margin-bottom: 20px;
}
.title01::before {
	content: '';
	width: 80px;
	height: 2px;
	background-image: linear-gradient(90deg, rgba(42, 99, 229, 1), rgba(6, 175, 180, 1));
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
@media screen and (max-width: 767px) {
	.title01 {
		font-size: 24px;
		padding-bottom: 10px;
	}
}
/* ボタン */
.btn01 {
	max-width: 400px;
	margin: 0 auto;
	width: 100%;
}
.btn01 a {
	position: relative;
	display: block;
	width: 100%;
	color: #fff !important;
	background-color: var(--main-color) !important;
    font-size: 16px !important;
    font-weight: bold;
    width: 100%;
    padding: 12px 30px !important;
    border: none !important;
    border-radius: 9999px;
}
.btn01 a::before {
	content: '';
    width: 7.16px;
    height: 12px;
    background: url('../../../wp-content/uploads/2026/06/btn_arrow.png') center / contain no-repeat;
    position: absolute;
    top: 50%;
    right: 17px;
    transform: translateY(-50%);
	transition: all .3s;
}
.btn01 a:hover::before {
	right: 12px;
}
@media screen and (max-width: 767px) {
	.btn01 {
		max-width: 250px;
	}
	.btn01 a {
		font-size: 14px !important;
	}
}

/* テーブル */
.table01 {
	border: 1px solid var(--main-color);
}
.table01 tr,
.table01 td {
	display: block;
	width: 100%;
}
.table01 td {
	border: none;
	font-size: 14px;
	line-height: 1.2;
	padding: 10px;
}
.table01 td:first-child {
	background: var(--main-color);
	color: #fff;
}



/*******************************************
 * ヘッダー
********************************************/
.site-header {
	background: transparent;
	height: 100vh;
	box-shadow: none;
}
.site-header-container {
	padding: 20px;
	height: 100%;
    position: relative;
    max-width: 500px;
    margin-left: auto;
    margin-right: 0;
}
.site-header .global-nav {
	margin: 0 !important;
	padding-right: 20px;
	max-width: 100%;
	position: absolute;
	bottom: 30px;
	left: 30px;
}
.site-header .menu {
	flex-wrap: wrap;
	max-width: 400px;
	width: 100%;
	background: #fff;
	padding: 20px;
	border-radius: 20px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.site-header .menu li {
	width: 100%;
	border: none !important;
}
.site-header .menu li::before {
	width: 100%;
    background-image: linear-gradient(90deg, rgba(42, 99, 229, 1), rgba(6, 175, 180, 1));
    height: 1px;
    border: none;
}
.site-header .menu li a {
	color: #000;
	text-align: left;
	padding: 15px 10px !important;
	transition: color .3s;
}
.site-header .menu li a:hover {
	color: var(--main-color);
}
.global-nav-list>li .global-nav-name {
	font-size: 16px;
}
.site-header-logo {
	padding-top: 0;
	margin-bottom: 0;
	float: unset !important;
    width: max-content;
    max-width: 100%;
}
.site-header-sub {
	float: none;
    display: block;
    padding-left: 0;
}
.header_contact_btn {
	position: absolute;
	top: 30px;
    left: 250px;
	max-width: 120px;
	width: 100%;
}
.header_contact_btn a {
	display: block;
	width: 100%;
	font-size: 14px !important;
	font-weight: bold;
	line-height: 1;
	background-image: linear-gradient(180deg, rgba(3, 70, 232, 1), rgba(10, 69, 175, 1));
	border-radius: 9999px;
	padding: 10px !important;
}
.header_contact_btn a span {
	position: relative;
	padding-left: 20px;
}
.header_contact_btn a span::before {
	content: '';
	width: 14px;
	height: 14px;
	background: url('../../../wp-content/uploads/2026/06/mail_icon.png') center / contain no-repeat;
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.side_title {
	font-size: 24px;
    line-height: 1.8;
}
.side_title strong {
	background-image: radial-gradient(circle at center, #11B2B8 20%, transparent 20%);
    background-position: top right;
    background-repeat: repeat-x;
    background-size: 1em 5px;
    padding-top: .14em;
	font-weight: bold;
}

.vk-mobile-nav-menu-btn {
/* 	display: block !important; */
	width: 40px;
	height: 40px;
	border-radius: 0;
	border: none;
    right: calc((100% - 585px) / 2) !important;
    top: 7px !important;
	background: url("../../../wp-content/themes/lightning/_g3/inc/vk-mobile-nav/package/images/vk-menu-btn-black.svg") center 50% no-repeat transparent;
/* 	box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; */
}
.vk-mobile-nav-menu-btn.menu-open {
	background: url("../../../wp-content/themes/lightning/_g3/inc/vk-mobile-nav/package/images/vk-menu-close-black.svg") center 50% no-repeat transparent;
	border: none;
}
.vk-mobile-nav {
	max-width: 600px;
	padding: 15px 25px 45px 25px;
	background: #fff;
	overflow: hidden;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
	left: 50%;
    transform: translateX(-50%);
}
.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
	left: calc(100% - 500px);
}
.vk-mobile-nav nav ul li a {
	font-size: 16px;
	font-weight: bold;
	letter-spacing: 0.04em;
	color: #000;
	padding: 20px 10px;
}
.vk-mobile-nav nav ul li a,
.vk-mobile-nav nav>ul {
	border-color: #000;
}
body {
	position: relative;
}
body::before {
	content: '';
	width: 100%;
	height: 100vh;
	background: #000;
	opacity: 0;
	position: fixed;
	top: 0;
	left: 0;
	transition: all .3s;
	pointer-events: none;
	z-index: 1001;
}
body:has(.vk-mobile-nav-open)::before {
	opacity: .7;
	pointer-events: auto;
}
.sp_logo {
	max-width: 200px;
	margin-bottom: 40px;
}
@media screen and (max-width: 1380px) {
	.site-header-sub .widget:has(.header_contact_btn) {
		margin-bottom: 15px;
	}
	.header_contact_btn {
		position: static;
	}
}
@media screen and (max-width: 1250px) {
	.site-header-sub .widget:has(.header_contact_btn) {
		margin-bottom: 0;
	}
	.header_contact_btn {
		position: absolute;
	}
	.site-header .menu {
		max-width: 250px;
	}
	.site-header .menu li a {
		padding: 12px 5px !important;
	}
	.global-nav-list>li .global-nav-name {
		font-size: 14px;
	}
}
@media screen and (max-width: 1024px) {
	header.site-header {
		position: fixed;
        top: 0;
        left: 50%;
		transform: translateX(-50%);
        max-width: 600px;
        width: 100%;
        background: #fff;
        height: auto;
        z-index: 2;
	}
	.site-header-sub {
		margin: 0;
	}
	.site-header-sub .widget:has(.side_title) {
		display: none;
	}
	.site-header-sub .widget:has(.header_contact_btn) {
		margin-bottom: 0;
	}
	.header_contact_btn {
		margin-bottom: 0;
		position: static;
	}
	.header_contact_btn a {
		font-size: 12px !important;
		border-radius: 5px;
	}
	.site-header-container {
		display: flex;
        gap: 10px;
        justify-content: space-between;
        align-items: center;
        padding: 2px 10px;
        max-width: 100%;
        padding-right: 60px;
	}
	.site-header-logo img {
		max-height: 50px;
	}
	.site-header .global-nav {
		display: none;
	}
	.vk-mobile-nav-menu-btn,
	.vk-mobile-nav {
		display: block !important;
	}
}
@media screen and (max-width: 767px) {
	header.site-header {
		margin: 0 auto;
	}
	.vk-mobile-nav {
		max-width: 100%;
	}
	.vk-mobile-nav.vk-mobile-nav-open.vk-mobile-nav-right-in {
		left: 20%;
	}
	.vk-mobile-nav {
		padding: 10px 10px 20px;
	}
	.vk-mobile-nav nav ul li a {
		font-size: 14px;
		padding: 15px 10px;
	}
	.sp_logo {
		max-width: 155px;
		margin-bottom: 20px;
	}
}
@media screen and (max-width: 650px) {
	header.site-header {
		max-width: 100%;
	}
	.vk-mobile-nav-menu-btn {
		right: 10px !important;
	}
}

/*******************************************
 * フッター
********************************************/
.site-footer {
	border-top: none;
	background: rgb(3 82 208 / 10%);
}
.site-footer-content {
	padding-top: 15px;
}
.site-footer .widget:has(.footer_logo) {
	margin-bottom: 8px;
}
.footer_logo figure {
	max-width: 155px;
	margin: 0 auto !important;
}
.site-footer .menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 5px 0;
}
.site-footer .menu li {
	position: relative;
}
.site-footer .menu li + li::before {
	content: '';
	width: 1px;
	height: 10px;
	background: #5A6470;
	position: absolute;
	top: 55%;
	left: 0;
	transform: translateY(-50%);
}
.site-footer .menu a {
	font-size: 10px;
	font-weight: bold;
	padding: 5px;
	border-bottom: none;
	color: var(--main-color);
}
.site-footer-copyright {
	padding: 18px 20px;
}
.site-footer-copyright p {
	margin: 0;
	font-size: 10px;
	font-weight: bold;
	line-height: 1.2;
	color: #5A6470;
}


/*******************************************
 * トップページ
********************************************/
/* FV */
.fv_content {
	position: relative;
	z-index: 1;
	padding-top: 25px;
	padding-bottom: clamp(1.063rem, 0.063rem + 4vw, 1.563rem);
	background-image: linear-gradient(90deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.fv_content .vk_outer_container {
	position: static !important;
}
.fv_bg_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	margin-bottom: 0;
	z-index: -1;
}
.fv_title {
	font-size: clamp(2.25rem, 1rem + 5vw, 2.875rem);
	line-height: 1.2;
	margin-bottom: 7px;
}
.fv_hero_title {
	font-size: clamp(1rem, -0.125rem + 4.5vw, 1.563rem);
	line-height: 1.687;
	margin-bottom: 13px;
}
.fv_hero_title strong {
	background-image: radial-gradient(circle at center, #11B2B8 20%, transparent 20%);
    background-position: top right;
    background-repeat: repeat-x;
    background-size: 1em 5px;
    padding-top: .14em;
	font-weight: bold;
}
.fv_img {
	max-width: 59.3%;
	margin-bottom: 0;
}
.fv_img img,
.fv_bg_img img {
	width: 100%;
}
@media screen and (max-width: 1024px) {
	.fv_content {
		padding-top: 74px;
	}
	.fv_bg_img {
		top: 50px;
	}
}

/* ポイント */
.point_content {
	padding-top: 15px;
	padding-bottom: 20px;
	background-image: linear-gradient(90deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.point_items {
	max-width: 500px;
	margin: 0 auto;
}
.point_items .row {
	margin: 0;
	gap: 10px;
}
.point_items .vk_gridColumn_item {
	max-width: 100%;
	width: calc((100% - 30px) / 4);
	flex: 0 0 calc((100% - 30px) / 4);
	padding: 0;
	background: #fff;
	padding: 7.5px 5px 17.5px;
	border-radius: 10px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.point_img {
	max-width: 51px;
	margin: 0 auto;
}
.point_img figure {
	margin-bottom: 0 !important;
}
.point_text {
	font-size: 13px;
	font-weight: bold;
	line-height: 1.27;
	text-align: center;
}
@media screen and (max-width: 767px) {
	.point_text {
		font-size: 11px;
	}
}

/* こんなお悩みありませんか？ */
.problem_content {
	padding-top: 40px;
	padding-bottom: 40px;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.problem_content .title01 {
	font-size: 24px;
}
.problem_item + .problem_item {
	margin-top: 10px;
}
.problem_item {
	padding: 10px 20px;
	border-radius: 10px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	margin-bottom: 0;
	gap: 15px;
}
.problem_item > .wp-block-column:has(.problem_title) {
	flex-basis: calc(100% - 15px - 51px) !important;
}
.problem_title {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.2;
}
.problem_img {
	margin-bottom: 0;
}

/* 定額WEBラボが選ばれる理由 */
.solution_content {
	padding-top: 40px;
	padding-bottom: 40px;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.solution_items .row {
	gap: 10px;
	margin: 0;
}
.solution_items .vk_gridColumn_item {
	max-width: 100%;
	width: calc((100% - 10px) / 2);
	flex: 0 0 calc((100% - 10px) / 2);
	padding: 0;
	background: #fff;
	padding: 15px 9px;
	border-radius: 10px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.solution_img figure {
	max-width: 60px;
	margin-bottom: 10px !important;
}
.solution_title {
	font-size: 18px;
	font-weight: 500;
	color: var(--main-color);
	line-height: 1.25;
	margin-bottom: 10px;
}
.solution_text {
	font-size: 14px;
	line-height: 1.2;
}
@media screen and (max-width: 767px) {
	.solution_title {
		font-size: 16px;
		margin-bottom: 10px;
	}
	.solution_text {
		font-size: 12px;
	}
}

/* 定額WEBラボが選ばれる理由 */
.reason_content {
	padding-top: 40px;
	padding-bottom: 40px;
}
.reason_items {
	counter-reset: listnum;
}
.reason_item {
	position: relative;
	padding: 9px 10px;
	padding-left: 35px;
	border-radius: 10px;
	border: 1px solid #EEF1F5;
	margin-bottom: 0;
	gap: 18px;
}
.reason_item::before {
	counter-increment: listnum;
	content: "0"counter(listnum);
	font-size: 11px;
	font-weight: bold;
	line-height: 1.2;
	color: #fff;
	width: 30px;
	height: 30px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 5px;
	left: 5px;
	background-image: linear-gradient(135deg, rgba(22, 189, 169, 1), rgba(37, 99, 217, 1));
	border-radius: 50%;
}
.reason_item + .reason_item {
	margin-top: 10px;
}
.reason_item > .wp-block-column:has(.reason_title) {
	flex-basis: calc(100% - 18px - 68px) !important;
}
.reason_title {
	font-size: 18px;
	line-height: 1.2;
	color: #1F2D4D;
	margin-bottom: 11px !important;
}
.reason_text {
	font-size: 14px;
	line-height: 1.2;
	color: #5B6573;
}
.reason_img {
	margin-bottom: 0;
}
@media screen and (max-width: 767px) {
	.reason_item {
		gap: 10px;
	}
	.reason_item > .wp-block-column:has(.reason_title) {
		flex-basis: calc(100% - 10px - 68px) !important;
	}
	.reason_title {
		font-size: 16px;
	}
	.reason_text {
		font-size: 10px;
	}
}

/* 製作実績 */
.product_content {
	padding-top: 40px;
	padding-bottom: 26px;
}
.product_slider {
	max-width: 500px;
	margin: 0 auto;
	overflow: visible;
}
.product_slider.vk_post_list_slider .vk_post {
	width: calc(100% - 20px);
	padding: 10px;
	border-radius: 10px;
	border: 1px solid #EEF1F5;
	box-shadow: 0 4px 4px rgba(0,0,0,0.25);
	margin-bottom: 25px;
}
.product_slider .vk_post_imgOuter {
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid #000;
	aspect-ratio: 1 / .58;
	margin-bottom: 10px;
}
.product_slider .vk_post_body {
	padding: 0;
}
.product_slider .vk_post_title {
	display: none !important;
}
.product_slider a {
	pointer-events: none !important;
}
.product_slider .vk_post_taxonomies {
	margin-top: 0;
}
.product_slider .vk_post_taxonomy {
	justify-content: center;
}
.product_slider .vk_post_taxonomy_title {
	position: relative;
	font-size: 12px;
	font-weight: bold;
	line-height: 1.2;
	color: #2F93EC;
	text-align: left;
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
}
.product_slider .vk_post_taxonomy_title::before {
	content: '';
	width: 20.5px;
	height: 20.5px;
	background: url('../../../wp-content/uploads/2026/06/product_icon.png') center / contain no-repeat;
}
.product_slider .vk_post_taxonomy_title_inner {
	background: transparent;
	border: none;
	min-width: unset;
}
.product_slider .vk_post_taxonomy_terms {
	padding-left: 10px;	
	margin: 0;
}
.product_slider .vk_post_taxonomy_terms p {
	font-size: 14px;
	font-weight: bold;
	color: #1A2440;
	line-height: 1.5;
}
.product_slider .swiper-pagination-bullet {
	width: 6.5px;
	height: 6.5px;
	border-radius: 50%;
	background: #C9D2DE;
	margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 7px) !important;
}
.swiper-pagination-bullet.swiper-pagination-bullet-active {
	background-image: linear-gradient(180deg, rgba(74, 168, 242, 1), rgba(31, 111, 224, 1));
}
@media screen and (max-width: 767px) {
	.product_slider .vk_post_taxonomy_terms p {
		font-size: 12px;
	}
	.product_slider .vk_post_taxonomy_title {
		font-size: 10px;
	}
}

/* 料金プラン */
.price_content {
	padding-top: 40px;
	padding-bottom: 40px;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.price_read_text {
	font-size: 14px;
	line-height: 1.2;
	margin-bottom: 20px;
}
.price_text {
	font-size: 14px;
	line-height: 1.2;
	color: #333;
}
.price_text a {
	color: #333;
	text-decoration: underline;
}
.price_img figure {
	max-width: 500px;
	width: 100%;
	margin-bottom: 20px !important;
}
.price_img img {
	width: 100%;
}
@media screen and (max-width: 767px) {
	.price_read_text {
		font-size: 12px;
	}
}

/* 制作の流れ */
.flow_content {
	padding-top: 30px;
	padding-bottom: 30px;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.flow_content .title01 {
	margin-bottom: 30px;
}
.flow_items {
	position: relative;
	padding-left: 23px;
}
.flow_items::before {
	content: '';
	width: 1px;
	height: calc(100% - 80px);
	background: #7FD6CC;
	position: absolute;
	top: 50%;
	left: 5px;
	transform: translateY(-50%);
}
.flow_item + .flow_item {
	margin-top: 10px;
}
.flow_item {
	position: relative;
	gap: 15px;
	padding: 10px 9px;
	border-radius: 10px;
	margin-bottom: 0;
}
.flow_item::before {
	content: '';
	width: 8px;
	height: 8px;
	background: #14B8A6;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: -21px;
	transform: translateY(-50%);
}
.flow_item > .wp-block-column:has(.flow_img) {
	flex-basis: 60px !important;
}
.flow_item > .wp-block-column:has(.flow_title) {
	flex-basis: calc(100% - 15px - 60px) !important;
}
.flow_title_box > .wp-block-group__inner-container {
	display: flex;
	gap: 5px 11px;
	align-items: center;
	margin-bottom: 8px;
}
.flow_num {
	flex-shrink: 0;
	font-size: 20px;
	font-weight: bold;
	line-height: 1.2;
}
.flow_title {
	font-size: 17px;
	line-height: 1.2;
	color: #1F2D4D;
}
.flow_text {
	font-size: 14px;
	line-height: 1.2;
	color: #5B6573;
}
.flow_img {
	margin-bottom: 0;
}
@media screen and (max-width: 767px) {
	.flow_title {
		font-size: 14.5px;
	}
	.flow_num {
		font-size: 17px;
	}
	.flow_text {
		font-size: 12px;
	}
}

/* Q&A */
.faq_content {
	padding-top: 30px;
	padding-bottom: 30px;
	background-image: linear-gradient(180deg, rgba(246, 250, 253, 1), rgba(247, 249, 253, 1) 50%, rgba(232, 241, 253, 1));
}
.faq_content .title01 {
	margin-bottom: 30px;
}
.faq_item {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: none;
	background: #fff;
	border-radius: 10px;
}
.faq_item + .faq_item {
	margin-top: 20px;
}
.faq_items .vk_faq-body {
	margin: 0;
}
.faq_items .vk_faq .vk_faq_content {
	padding: 20px 15px 15px;
	padding-left: 56px;
}
.faq_items .vk_faq .vk_faq_content::before {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: bold;
	font-size: 16px;
	width: 36px;
	height: 36px;
	background: #DCE8F7;
	border-radius: 50%;
	color: #14B8A6;
	left: 10px;
}
.faq_items .vk_faq .vk_faq_content p {
	font-size: 14px;
	line-height: 1.2;
	color: #1F2D4D;
}
.faq_items .vk_faq .vk_faq_title {
	font-size: 17px;
	font-weight: bold;
	color: #1F2D4D;
	padding: 12px 10px;
	padding-left: 56px;
	background: #DCE8F7;
	border-bottom: none;
	min-height: 56px;
	display: flex;
    justify-content: center;
	flex-direction: column;
}
.faq_items .vk_faq .vk_faq_title::before {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: bold;
	font-size: 16px;
	width: 36px;
	height: 36px;
	background: #0352D0;
	border-radius: 50%;
	color: #fff;
	left: 10px;
}
.faq_items .vk_faq .vk_faq_title p {
	line-height: 1.2;
}
@media screen and (max-width: 767px) {
	.faq_items .vk_faq .vk_faq_title::before,
	.faq_items .vk_faq .vk_faq_content::before {
		padding-top: 2px;
	}
	.faq_items .vk_faq .vk_faq_title {
		font-size: 14px;
	}
	.faq_items .vk_faq .vk_faq_content p {
		font-size: 12px;
	}
}

/* お問い合わせ */
.contact_content {
	padding-top: 40px;
	padding-bottom: 40px;
}
.contact_read_text {
	font-size: 14px;
	line-height: 1.2;
	color: #8A939E;
	margin: 30px 0;
}
.contact_box {
	padding: 20px;
	border: 1px solid #EEF0F3;
	border-radius: 10px;
	background: #fff;
}
.input_area,
.confirm_area,
.thanks_area {
	max-width: 950px;
	margin: 0 auto;
}
.contact_table {
	display: block;
	width: 100%;
	border: none !important;
}
.contact_table tr,
.contact_table tr th,
.contact_table tr td {
	display: block;
	width: 100%;
	text-align: left;
	padding: 0;
	line-height: 1.2;
	border: none;
}
.contact_table tbody {
	display: block;
	width: 100%;
}
.contact_table p {
	margin-bottom: 0;
}
.wpcf7-radio {
	font-size: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem 2.4rem;
	padding-top: .5rem;
}
.wpcf7-radio .wpcf7-list-item {
	margin-left: 0;
}
.wpcf7-radio input {
	scale: 1.6;
	margin-right: 11px;
}
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: 5px;
	border: 1px solid #E3E6EA !important;
	vertical-align: bottom;
	line-height: 1.2;
}
input[type=date],
input[type=email],
input[type=number],
input[type=password],
input[type=tel],
input[type=text],
input[type=url] {
	height: 39px;
	padding: 10px 15px;
}
textarea {
	resize: none;
	height: 110px;
}
td:has(select) {
	position: relative;
}
td:has(select)::before {
	content: '';
	width: 20px;
	height: 20px;
	background: url('../../../wp-content/uploads/2025/09/black_arrow.png') center / contain no-repeat;
	border-radius: 50%;
	position: absolute;
	top: 14px;
	right: 20px;
/* 	transform: translateY(-50%); */
	z-index: 1;
	pointer-events: none;
}
::placeholder {
  color: #B6BCC4;
}
.contact_table tr {
	display: block;
	width: 100%;
}
.contact_table tr + tr {
	margin-top: 20px;
}
.contact_table tr:last-child {
	margin-top: 6px;
}
.contact_table tr th {
	position: relative;
	padding-bottom: 10px;
}
.contact_table tr th p {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13.5px;
	font-weight: bold;
	color: #52606D;
	line-height: 1.2;
}
.contact_table tr th span {
	font-size: 10px;
	color: #3B74E0;
	line-height: 1.2;
	padding: 2.5px 5px;
	border-radius: 5px;
	background: #DCE8FF;
}
.contact_table tr th span.hissu {
	background: #CE2E2E;
	color: #fff;
}
.contact_table tr td {
	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: 0;
	text-align: center;
}
.privacy-check .wpcf7-list-item {
	letter-spacing: .39em;
	margin-left: 0;
}
.privacy-check .wpcf7-list-item > label {
	display: flex;
	align-items: center;
	gap: 7px;
	font-size: 12px;
	font-weight: bold;
	line-height: 1.2;
	letter-spacing: 0;
}
.privacy-check .wpcf7-list-item > label a {
	color: #1D5FD6;
	text-decoration: none !important;
}
.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: 100%;
    cursor: pointer;
    border-radius: 9999px;
    margin: 10px auto 0;
}
.contact_content:has(.wpcf7-submit[disabled]) .submit_box {
	user-select: none;
	pointer-events: none;
}
.submit_box + .submit_box {
	margin-top: 5px;
}
.submit_box p {
	position: relative;
	margin-bottom: 0;
}
.submit_box p::before {
	content: '';
    width: 7.16px;
    height: 12px;
    background: url('../../../wp-content/uploads/2026/06/btn_arrow.png') center / contain no-repeat;
    position: absolute;
    top: 50%;
    right: 17px;
    transform: translateY(-50%);
}
.submit_box input {
	color: #fff !important;
	background-color: var(--main-color) !important;
	font-size: 16px;
	font-weight: bold;
	width: 100%;
    padding: 12px 30px;
	border: none !important;
	border-radius: 9999px;
	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;
}
/*デフォルトのサンクスメッセージを非表示*/
.wpcf7-response-output{
	display: none;
}
.confirm_area > p,
.thanks_area > p {
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 0;
}
.confirm_area .contact_table td p span {
	display: block;
	background: #fff;
	padding: 10px 15px;
	border: 1px solid #E3E6EA;
	border-radius: 5px;
}
@media screen and (max-width: 767px) {
	.contact_read_text {
		font-size: 13px;
	}
}

/*******************************************
 * プライバシーポリシー
********************************************/
.policy_content {
	padding-top: 40px;
	padding-bottom: 40px;
}
.policy_content .title01 {
	margin-bottom: 30px;
}
.policy_item + .policy_item {
	margin-top: 30px;
}
.policy_item {
	margin-bottom: 0 !important;
}
.policy_title {
	font-size: 18px;
	line-height: 1.2;
	color: #333;
	margin-bottom: 10px !important;
}
.policy_text {
	font-size: 14px;
	line-height: 1.2;
	color: #333;
}
.policy_list {
	font-size: 14px;
	line-height: 1.2;
	color: #333;
}
@media screen and (max-width: 1024px) {
	.policy_content {
		padding-top: 90px;
	}
}


/***********************************************
 * アニメーション
***********************************************/
.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;
}

/* opacity */
.class_key.opacity {
	opacity: 0;
	transition: all .3s;
}
.opacity.class_active {
	opacity: 1;
}

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

/* ふわっと下 */
.class_key.down {
	transform: translateY(-30px);
	opacity: 0;
	transition: all .3s;
}
.down.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;
	}
}




















































