@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/



/*==================================
 フォント
==================================*/
body {
  font-family: "Raleway", "Noto Sans JP", sans-serif;
}


/*==================================
 セクションタイトル
==================================*/
.wp-block-heading.is-style-section_ttl.sec-title_custom {
	padding-bottom: 12px;
}

.wp-block-heading.is-style-section_ttl.sec-title_custom:after {
	position: absolute;
	display: block;
	content: "";
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	height: 2px;
	width: 30px;
	background: #9a00b3;
}

.wp-block-heading.is-style-section_ttl.sec-title_custom.left:after {
	left: 0;
	transform: translateX(0);
}

/*==================================
 カラム背景
==================================*/
.bg_white_col {
	border-radius: 10px;
	background: #fff;
	box-shadow: 0px 5px 10px rgba(0,0,0,0.1);
}

/*==================================
 カラム角丸
==================================*/
.bg_radius_col {
	border-radius: 20px;
}

/*==================================
 デフォルトリストのチェック
==================================*/
.is-style-check_list li:before {
	font-weight: bold;
	color: #9a00b3;
}

/*==================================
 ボタンホバー時
==================================*/
.is-style-btn_normal a {
	position: relative;
	overflow: hidden;
	z-index: 1;
	transition: opacity .3s ease, box-shadow .3s ease;
}

/* hover用グラデ */
.is-style-btn_normal a::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #4e6c97, #620072);
	opacity: 0;
	transition: opacity 0.4s ease;
	z-index: -1;
}

.is-style-btn_normal a:hover::before {
	opacity: 1;
}

/*==================================
 ブログパーツ・下余白調整
==================================*/
.p-blogParts.post_content {
	margin-bottom: 0;
}

/*==================================
 ページタイトル下線
==================================*/
.c-pageTitle[data-style=b_bottom] {
    border-bottom: 2px solid var(--color_border);
}

.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner {
	position: relative;
	border: none;
}

.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner:before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, #1d3557, #a500c0);
}

/*==================================
 TOPページ・事例セクション余白調整
==================================*/
@media (min-width: 960px) {
    .-type-card.-pc-col2 .p-postList__item {
        padding: 0 2em;
    }
	
	.-type-card .p-postList__item {
		margin-bottom: 4em;
	}
}

/*==================================
 TOPページ・サービスセクション画像丸背景
==================================*/
.img_bg-round img {
	padding: 10px;
	border-radius: 50%;
	background: #ebedff;
}

/*==================================
 投稿詳細・カテゴリータグ（記事一覧は外観で設定）
==================================*/
.c-categoryList:before {
    color: #5e006e;
}

.c-categoryList__link {
    background-color: #5e006e;
}

/*==================================
 投稿詳細・タクソノミータグ
==================================*/
.c-taxList:before {
	color: #5e006e;
}

.c-taxList__link {
	background-color: #5e006e;
	color: #fff;
}

/*==================================
 ABOUTページ・VALUE
==================================*/
.value_row {
    border-bottom: 1px solid #dcdcdc;
    padding-bottom: 4em;
}

@media screen and (min-width: 600px) {
	.value_img-col {
		border-right: 1px solid #e4c7ff;
	}
}

@media screen and (min-width: 960px) {
	.swell-block-column.swl-has-mb--s.value_text-col {
		margin-left: 2.5rem;
	}
}

/*==================================
 ABOUTページ・概要テーブル
==================================*/
.table_custom {
	padding: min(60px, calc(60/960*100vw)) min(80px, calc(80/960*100vw)) min(80px, calc(80/960*100vw));
    background: #ffffff;
    border-radius: 20px;
	box-shadow: 0 8px 24px rgba(29, 53, 87, 0.05);
}

@media screen and (max-width: 599px) {
	.table_custom {
		padding: 40px 20px;
	}
}

.wp-block-table td, .wp-block-table th {
	padding: 1.5em .75em;
}

.wp-block-table tr:first-child td, .wp-block-table tr:first-child th {
	border-top: none;
}

.wp-block-table th {
	font-weight: 400;
}

/*==================================
 サービスページ・カラムSP時リバース
==================================*/
@media screen and (max-width: 599px) {
	.col_reverse .swell-block-columns__inner {
		flex-direction: column-reverse;
	}
}

/*==================================
 サービスページ・画像シャドウ
==================================*/
.img-shadow {
		box-shadow: 0 10px 20px rgba(29, 53, 87, 0.1);
}

/*==================================
 サービスページ・FLOWセクション
==================================*/
.flow_custom {
	padding: min(100px, calc(100 / 960 * 100vw)) min(80px, calc(80 / 960 * 100vw));
    background: rgba(255,255,255,.5);
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(29, 53, 87, 0.05);
}

/*==================================
  Contact Form 7
==================================*/
.wpcf7 {
	max-width: 760px;
	margin: 0 auto;
}

.wpcf7 form {
	background: #fff;
	padding: 48px;
	border-radius: 24px;
	box-shadow: 0 8px 24px rgba(29, 53, 87, 0.05);
}

.wpcf7 p {
	margin: 0 0 24px;
}

.wpcf7 label {
	display: block;
	font-size: 15px;
	font-weight: 600;
	color: #333;
	margin-bottom: 8px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 textarea {
	width: 100%;
	padding: 14px 16px;
	font-size: 15px;
	line-height: 1.7;
	color: #333;
	background: #fff;
	border: 1px solid #dfe3ea;
	border-radius: 10px;
	outline: none;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.wpcf7 textarea {
	min-height: 220px;
	resize: vertical;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	border-color: #8d63ff;
	box-shadow: 0 0 0 4px rgba(141, 99, 255, 0.12);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: #aaa;
}

.wpcf7 input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	padding: 10px 32px;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
	background: #1d3557;
	border: none;
	border-radius: 999px;
	cursor: pointer;
	transition: opacity 0.3s ease, box-shadow 0.3s ease;
}

.wpcf7 input[type="submit"]:hover {
	opacity: 0.8;
	box-shadow: 0 8px 20px rgba(29, 53, 87, 0.18);
}

.wpcf7-spinner {
	margin-left: 12px;
}

.wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
	color: #d94b4b;
}

.wpcf7-response-output {
	margin: 24px 0 0;
	padding: 16px 20px;
	border-radius: 10px;
	font-size: 14px;
}

.form-item {
	margin-bottom: 28px;
}

.form-label {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 10px;
	font-size: 15px;
	font-weight: 600;
	color: #333;
	line-height: 1;
}

.required {
	display: inline-flex;
	align-items: center;
	margin-left: 6px;
	padding: 4px 6px;
	border-radius: 4px;
	background: rgba(98, 0, 114, 0.08);
	color: #620072;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
}

.form-submit {
	text-align: center;
}

/* スマホ */
@media screen and (max-width: 767px) {
	.wpcf7 form {
		padding: 32px 20px;
		border-radius: 18px;
	}

	.wpcf7 textarea {
		min-height: 180px;
	}

	.wpcf7 input[type="submit"] {
		width: 100%;
	}
}