@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
*/

/* --------------------------------------------------------------------------
 * リンクトFV（ぱんくず直上）レイアウト
 * ブロック側でフル幅・背景を組む前提で、余白とぱんくずとのつなぎを調整
 * -------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.p-linkedFvArea {
		position: relative;
		box-sizing: border-box;
	}

	.p-linkedFvArea__inner {
		position: relative;
		z-index: 1;
	}
}
.p-linkedFvArea {
	position: relative;
	box-sizing: border-box;
}

.p-linkedFvArea__inner {
	position: relative;
	z-index: 1;
}

/* 先頭ブロックの上余白を詰める（見出しをFV上端に寄せたいとき） */
.p-linkedFvArea__inner > .post_content > *:first-child,
.p-linkedFvArea__inner > *:first-child {
	margin-top: 0;
}

/* アーカイブ系（カテゴリ・タグ・タクソノミー・日付・投稿タイプアーカイブ・投稿一覧ホーム） */
.p-linkedFvArea--archive {
	padding-block: clamp(1.25rem, 3.5vw, 2.75rem);
	padding-inline: 0;
	margin-bottom: 0;
}

/* ぱんくず（上表示）との境界 */
.p-linkedFvArea--archive + #breadcrumb.p-breadcrumb {
	margin-top: 0;
}

.p-linkedFvArea--archive + #breadcrumb.p-breadcrumb.-bg-on {
	border-top: 1px solid var(--color_border, rgba(0, 0, 0, 0.08));
}

/* FV直下のメイン余白を詰めたい場合は数値を指定
.p-linkedFvArea--archive + #breadcrumb + #content.l-content {
	padding-top: clamp(1rem, 3vw, 2rem);
}
*/

/* 固定ページ用（FVと本文でレイアウトを分けたいとき） */
.p-linkedFvArea--page {
	padding-block: clamp(1rem, 2.5vw, 2rem);
	padding-inline: clamp(0.75rem, 2.5vw, 1.25rem);
}

/* --------------------------------------------------------------------------
 * 記事一覧リスト型：p-postList__item > p-postList__body 内ボタン
 * -------------------------------------------------------------------------- */

/* リスト型（左右交互）: 疑似要素 READ MORE を無効化 */
.p-postList.-type-list2 .p-postList__item.has-postListCardBtn--block .p-postList__body::after {
	content: none !important;
	display: none !important;
}

/* p-postList__item 内の body 右下に SWELL ボタン */
.p-postList.-type-list .p-postList__item.has-postListCardBtn--block .p-postList__body,
.p-postList.-type-list2 .p-postList__item.has-postListCardBtn--block .p-postList__body {
	position: relative;
	padding-bottom: 3.5em;
}

.p-postList__item.has-postListCardBtn--block .p-postList__bodyLink {
	display: block;
	color: inherit;
	text-decoration: none;
}

.p-postList__item.has-postListCardBtn--block .p-postList__bodyLink:hover {
	opacity: 0.85;
}

.p-postList__item.has-postListCardBtn--block .p-postListCardBtn.common-btn-inner {
	right: 0;
	bottom: 0;
	z-index: 2;
	margin: 0;
	width: auto;
	max-width: 100%;
}

.p-postList__item.has-postListCardBtn--block .p-postListCardBtn .swl-has-mb--s,
.p-postList__item.has-postListCardBtn--block .p-postListCardBtn .u-mb-60,
.p-postList__item.has-postListCardBtn--block .p-postListCardBtn .swell-block-button {
	margin-bottom: 0 !important;
}

/* SP：記事一覧リンクを縦並び */
@media (max-width: 959px) {
	.p-postList__link {
		flex-direction: column;
	}
	.-type-list .p-postList__thumb, .-type-list2 .p-postList__thumb{
		width: 100%;
	}
	.p-postList.-type-list .p-postList__item.has-postListCardBtn--block .p-postList__body, .p-postList.-type-list2 .p-postList__item.has-postListCardBtn--block .p-postList__body {
		position: relative;
		padding-bottom: 3.5em;
		width: 100%;
	}
	.-type-list2 .p-postList__item {
		border-bottom: 1px solid var(--color_border);
		margin-bottom: 1.5em;
		margin-top: 0;
		padding-bottom: 1.5em;
		padding: 2rem;
	}
}

/* --------------------------------------------------------------------------
 * ヘッダー（headerParts）グロナビ：プルダウンのホバー判定をタブ全体（高さ・幅）に
 * -------------------------------------------------------------------------- */

@media (min-width: 960px) {
	.p-headerPageContent .l-header__inner,
	.l-header .l-header__inner {
		align-items: stretch;
	}

	.p-headerPageContent .l-header__gnav,
	.l-header .l-header__gnav {
		display: block;
	}

	.p-headerPageContent .c-gnav,
	.l-header .c-gnav {
		align-items: stretch;
		height: 100%;
	}

	.p-headerPageContent .c-gnav > .menu-item,
	.l-header .c-gnav > .menu-item {
		align-self: stretch;
		display: flex;
		height: auto;
	}

	.p-headerPageContent .c-gnav > .menu-item > a,
	.l-header .c-gnav > .menu-item > a {
		align-items: center;
		box-sizing: border-box;
		flex: 1 1 auto;
		height: auto;
		justify-content: center;
		min-height: var(--logo_size_pc, 60px);
		padding: 16px 12px;
		width: 100%;
	}

	/* 親タブ下端とサブメニューのすき間を埋め、ホバーが切れないようにする */
	.p-headerPageContent .c-gnav > .menu-item-has-children > .sub-menu,
	.l-header .c-gnav > .menu-item-has-children > .sub-menu {
		box-sizing: border-box;
		margin-top: 0;
		min-width: 100%;
		padding-top: 12px;
		width: max(15em, 100%);
	}

	.p-headerPageContent .c-gnav > .menu-item-has-children > .sub-menu::after,
	.l-header .c-gnav > .menu-item-has-children > .sub-menu::after {
		content: "";
		height: 12px;
		left: 0;
		position: absolute;
		top: 0;
		transform: translateY(-100%);
		width: 100%;
	}

	.p-headerPageContent .c-gnav .sub-menu a,
	.l-header .c-gnav .sub-menu a {
		align-items: center;
		display: flex;
		gap: 0.2em;
		min-height: 2.75em;
		padding: 0.65em 1em 0.65em 0.85em;
		position: relative;
		z-index: 1;
	}

	.p-headerPageContent .c-gnav .sub-menu a::before,
	.l-header .c-gnav .sub-menu a::before {
		flex-shrink: 0;
		left: auto;
		position: static;
		transform: none;
	}

	.p-headerPageContent .c-gnav .sub-menu .ttl,
	.l-header .c-gnav .sub-menu .ttl {
		position: static;
	}
}

/* --------------------------------------------------------------------------
 * Contact Form 7: 郵便番号入力補助 / エラー表示
 * -------------------------------------------------------------------------- */
.wpcf7 form .wpcf7-not-valid-tip {
	color: #d93025;
	font-size: 0.9em;
	font-weight: 700;
	margin-top: 0.35em;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #d93025;
	color: #d93025;
}

/* --------------------------------------------------------------------------
 * headerParts: fixed ではなく sticky で固定
 * -------------------------------------------------------------------------- */
#header.l-header {
	position: sticky;
	top: var(--swl-adminbarH, 0px);
}

/* headerParts 本文側で <header> を使っている場合にも適用 */
.p-headerPageContent > header {
	position: sticky;
	top: var(--swl-adminbarH, 0px);
	z-index: 100;
}

