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

html, body {
	font-family: "Inter", "Noto Sans JP", sans-serif;
}

/*ふわっと表示させるアニメーション*/
.fade-in-up,
.fade-in-left,
.fade-in-right,
.fade-in-only {
  opacity: 0;
  transition: opacity 1.5s ease, transform 1s ease;
}
/* 下から */
.fade-in-up {
  transform: translateY(40px);
}
.fade-in-up.show {
  opacity: 1;
  transform: translateY(0);
}
/* 左から */
.fade-in-left {
  transform: translateX(-40px);
}
.fade-in-left.show {
  opacity: 1;
  transform: translateX(0);
}
/* 右から */
.fade-in-right {
  transform: translateX(40px);
}
.fade-in-right.show {
  opacity: 1;
  transform: translateX(0);
}
/* フェードインのみ（移動なし） */
.fade-in-only {
  opacity: 0;
}
.fade-in-only.show {
  opacity: 1;
}

/*通常ボタン*/
.btn-text-maincolor a {
	color: var(--color_main) !important;
}

.swell-block-button__link .__icon.-right {
	position: relative;
}

/* hover時 */
.swell-block-button__link:hover .__icon.-right {
	animation: arrow-loop 0.6s ease forwards;
}

@keyframes arrow-loop {
	0% {
		transform: translateX(0);
		opacity: 1;
	}

	40% {
		transform: translateX(10px);
		opacity: 0;
	}

	41% {
		transform: translateX(-10px);
		opacity: 0;
	}

	100% {
		transform: translateX(0);
		opacity: 1;
	}
}

/*背景白ボタン*/
.is-style-btn_line.bg-white a {
	color: #333;
	background: #fff;
}

.is-style-btn_line.bg-white.txt-main a {
	color: var(--color_main);
	background: #fff;
}

.is-style-btn_line.bg-white a:hover {
	color: #fff;
	background: var(--color_main);
}

/*色反転ボタン*/
.is-style-btn_line.-rev a {
	color: #fff !important;
	background: var(--color_main) !important;
	border: 1px solid var(--color_main);
}

.is-style-btn_line.-rev a:hover {
	color: var(--color_main) !important;
	background: #fff !important;
	border: 1px solid var(--color_main);
}

/* =========================
   お問い合わせボタン
========================= */

.contact-btn.is-style-btn_normal a,
.contact-btn.is-style-btn_normal button {
	position: relative;
	transition: .5s ease;
	width: 180px;
	height: 40px;
	border: 5px solid var(--color_main);
	border-radius: 50px;
	color: #fff;
	background: var(--color_main);
}

/* buttonのデフォルトスタイルをリセット */
.contact-btn.is-style-btn_normal button {
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
	cursor: pointer;
}

/* hover */
.contact-btn.is-style-btn_normal a:hover,
.contact-btn.is-style-btn_normal button:hover {
	box-shadow: none;
	background: #fff;
	color: var(--the-btn-bg);
}

/* アイコン */
.contact-btn.is-style-btn_normal a .__icon,
.contact-btn.is-style-btn_normal button .__icon {
	position: absolute;
	top: 0;
	left: 5px;
	background: #fff;
	width: 30px;
	height: 30px;
	padding: 5px;
	border-radius: 50px;
	transition: .5s ease;
}

/* hover時：アイコンを右へ */
.contact-btn.is-style-btn_normal a:hover .__icon,
.contact-btn.is-style-btn_normal button:hover .__icon {
	left: 145px;
}

/* SVG */
.contact-btn.is-style-btn_normal .__icon path {
	fill: var(--the-btn-bg);
}

/* テキスト */
.contact-btn.is-style-btn_normal a span,
.contact-btn.is-style-btn_normal button span {
	margin-left: 30px;
	margin-right: 0;
	transition: .5s ease;
}

/* hover時：テキストを左へ */
.contact-btn.is-style-btn_normal a:hover span,
.contact-btn.is-style-btn_normal button:hover span {
	margin-left: 0;
	margin-right: 20px;
}


/*画像は基本角丸*/
.wp-block-image img {
	border-radius: 1rem;
}

/*border-radius*/
.border-radius-right img {
	border-radius: 1rem 0 0 1rem;
}

.not-border-radius-img img {
	border-radius: 0 !important;
}


/*ヘッダーメニュー*/
.l-fixHeader__inner {
	max-width: 100%;
	padding-top: 1rem;
}

@media (min-width: 960px) {
    .-series-right .l-fixHeader__gnav.c-gnavWrap {
		background: rgba(255, 255, 255, 0.9) !important;
    padding: 0 5rem;
		border-radius: 0.5rem;
    }
}

.c-gnav>.menu-item>.sub-menu {
	margin-top: 1rem;
	border-radius: 0.5rem;
}

.l-header .l-header__inner .c-gnav>.menu-item>.sub-menu  {
	background: rgba(51, 51, 51, 0.3) !important;
	color: #fff !important;
}

.l-fixHeader .c-gnav>.menu-item>.sub-menu {
	background: rgba(255, 255, 255, 0.9) !important;
}

.c-gnav .sub-menu:before {
	background: transparent !important;
}

.c-gnav .sub-menu a {
	padding: 1em 2em;
	transition: color .25s ease;
}

.c-gnav .sub-menu a:hover {
    background-color: inherit;
	color: var(--color_main);
}

.c-gnav>.menu-item a .ttl {
	font-weight: bold;
}

.c-gnav .sub-menu a:hover .ttl {
	left: 0;
}

/* SWELL標準のbefore矢印を削除 */
.c-gnav .sub-menu a::before {
	display: none !important;
	content: none !important;
}


/* 新しい矢印 */
.c-gnav .sub-menu a::after {
	content: "\e93b";
	font-family: "icomoon";
	display: inline-block;
	margin-left: 0.6em;
	font-size: 0.8em;
	transform: translateX(0);
	opacity: 1;
}


/* hover時 */
.c-gnav .sub-menu a:hover::after {
	animation: listmenu-arrow-loop 0.6s ease forwards;
}


/* 右へ抜ける → 左から戻る */
@keyframes listmenu-arrow-loop {
	0% {
		transform: translateX(0);
		opacity: 1;
	}

	35% {
		transform: translateX(10px);
		opacity: 0;
	}

	50% {
		transform: translateX(-10px);
		opacity: 0;
	}

	100% {
		transform: translateX(0);
		opacity: 1;
	}
}


/* HOME以外ではデフォルトのヘッダーを非表示 */
#body_wrap:not(.home) #header, #body_wrap:not(.home) #fix_header {
	display: none !important;
}

/*FV*/
.p-top-brand__fixed {
	position: absolute;
	top: 50dvh;
	left: 0;
	width: 100%;
	z-index: 10;
	transform: translateY(-50%);
	color: #fff;
	will-change: transform;
	transition:
		color 0.4s ease,
		-webkit-text-stroke 0.4s ease;
}

.p-top-brand__fixed.stroke {
	-webkit-text-stroke: 2px var(--color_main);
	text-stroke: 2px var(--color_main);
	paint-order: stroke;
}

.p-top-brand__fixed p strong {
	transition: background .3s ease;
}

.p-top-brand__fixed.is-stopped p strong {
	color: transparent;
	background: linear-gradient(
		90deg,
		#eeb61c 0%,
		#F9E000 50%,
		#eeb61c 100%
	);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.p-top-brand__fixed.stroke.is-stopped {
	-webkit-text-stroke: 0 transparent;
	text-stroke: 0 transparent;
}

/*背景のロゴ*/
.absolute-bg-logo {
	position: absolute;
	opacity: 0.05;
	bottom: 0;
	width: 70%;
	right: 10%;
}

/*スライドショー*/
.slides>.swell-block-columns__inner{
	animation: slide 50s linear infinite;
	width:3200px;
}

@media (max-width: 600px) {
	.slides>.swell-block-columns__inner{
		width:2800px;
	}
}


@keyframes slide {
    0% {
        transform: translateX(0%);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* 飛んでくるハチ */

.fade-in-bee {
	opacity: 0;
	transform: translate(70vw, 60vh) rotate(12deg) scale(0.85);
	transition:
		transform 2s ease,
		opacity 1.5s ease;
	will-change: transform, opacity;
	transform-origin: center center;
}

.bee-flight-svg.bee-flight-line01 {
	position: absolute;
    top: -10%;
    left: 40%;
    width: 200px;
    z-index: -1;
    height: auto;
}

.bee-flight-svg.bee-flight-line02 {
	position: absolute;
	top: 50%;
    right: 10%;
    width: 300px;
    z-index: -1;
    height: auto;
}

.bee-flight-svg.bee-flight-line03 {
	position: absolute;
    bottom: -75%;
    left: 40%;
    width: 250px;
    z-index: -1;
    height: auto;
}

.bee-flight-svg.bee-flight-line-sp {
	position: absolute;
    top:-5%;
    left: -10%;
    width: 200px;
    z-index: -1;
    height: auto;
}

.bee-flight-svg.bee-flight-line-sp.-right {
	left: auto;
	right: -10%;
}


/*ページ最後のハチ*/
.bee-flight-svg {
	display: block;
	width: 50%;
	height: auto;
}

@media (max-width: 600px) {
	.bee-flight-svg {
		width: 100%;
	}
}

/* 表示後 */
.fade-in-bee.is-show {
	opacity: 1;
	transform: translate(0, 0) rotate(0deg) scale(1);
}


/*投稿リスト*/
.-type-card .p-postList__link .c-postThumb__figure {
	border-radius: 5px 20px 5px 5px;
	transition: .25s ease;
}

.-type-card .p-postList__link:hover .c-postThumb__figure,
.-type-card .p-postList__link:hover .p-postList__thumb:before {
	transform: scale3d(0.95, 0.95, 0.95);
}

.p-postList__meta :before {
	display: none;
}

.p-postList__tag {
	padding: 0.25em 1em;
    border: 1px solid;
    border-radius: 50px;
    background: #fff;
}

.-type-card .p-postList__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

/* metaをレイアウト上だけ解除 */
.-type-card .p-postList__meta {
	display: contents;
}

/* 日付 */
.-type-card .p-postList__times {
	order: 1;
}

/* タイトル */
.-type-card .p-postList__title {
	order: 2;
}

/* タグ */
.-type-card .tags-wrapper {
	order: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

/*テキスト型*/
.-type-simple .p-postList__link {
	position: relative;
	transition: .25s ease;
}

.-type-simple .p-postList__link:hover {
	color: var(--color_main);
    background-color: transparent;
}

.-type-simple .p-postList__tag {
	color: #fff;
	background: var(--color_main);
	border: 1px solid var(--color_main);
}

/* View more */

@media (min-width: 600px) {
.-type-simple .p-postList__body::after {
	content: "View more";
	position: absolute;
	right: 30px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.05em;
	color: var(--color_main);
	pointer-events: none;
}

.p-postList__link:hover .p-postList__body:after {
	background: transparent;
    box-shadow: none;
    color: var(--color_main);
    opacity: 1;
}

.-type-simple .p-postList__link::after {
	content: "\e93b";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-family: "icomoon";
	font-size: 14px;
	color: var(--color_main);
	pointer-events: none;
}

.-type-simple .p-postList__link:hover::after {
	animation: post-arrow-loop 0.6s ease forwards;
}

@keyframes post-arrow-loop {

	0% {
		transform: translate(0, -50%);
		opacity: 1;
	}

	35% {
		transform: translate(10px, -50%);
		opacity: 0;
	}

	50% {
		transform: translate(-10px, -50%);
		opacity: 0;
	}

	100% {
		transform: translate(0, -50%);
		opacity: 1;
	}
	}
}

/* カラム */
.wp-block-columns {
    --wp-column-gap: 3em;
}

@media (max-width: 960px) {
	.wp-block-columns.sp-reverse {
		flex-direction: column-reverse;
	}
}

/*コンテンツヘッダー*/

#top_title_area {
	position: relative;
	overflow: hidden;
	min-height: 500px;
	background: #fff;
}


/* SWELL標準オーバーレイを削除 */
#top_title_area.c-filterLayer::before {
	display: none !important;
}

/* ========================================
   画像
======================================== */

#top_title_area .l-topTitleArea__img {
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	width: 60% !important;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 1 !important;
	filter: none !important;
	clip-path: url(#content-header-clip-pc);
	-webkit-clip-path: url(#content-header-clip-pc);
}


/* ========================================
   タイトル側
======================================== */

#top_title_area .l-topTitleArea__body {
	position: relative;
	z-index: 2;
	width: 50% !important;
	max-width: none;
	min-height: 500px !important;
	margin: 0;
	padding: 60px 5vw;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	text-shadow: none;
}


/* タイトル */
#top_title_area .c-pageTitle {
	display: flex;
	flex-direction: column;
	margin: 0;
	text-align: left;
	color: #555;
	font-size: clamp(36px, 3.5vw, 64px);
	line-height: 1.3;
	font-weight: 700;
}


/* サブタイトル */
#top_title_area .c-pageTitle__subTitle {
	display: block;
	margin-top: 12px;
	margin-left: 0;
	color: #eeb61c;
	font-style: normal;
	font-size: clamp(18px, 2vw, 28px);
	font-weight: 700;
	line-height: 1.4;
}

@media (max-width: 959px) {

	#top_title_area {
		position: relative;
		margin-top: 72px;
		min-height: 650px;
		overflow: hidden;
		background: #fff;
	}

	#top_title_area .l-topTitleArea__body {
		position: absolute;
		z-index: 10;
		top: 0;
		right: 0;
		left: auto;
		bottom: auto;
		width: 100% !important;
		height: 180px;
		min-height: 0 !important;
		margin: 0;
		padding: 40px 7vw 20px;
		display: flex;
		align-items: center;
		justify-content: start;
		box-sizing: border-box;
		pointer-events: none;
	}

	#top_title_area .c-pageTitle {
		width: auto;
		margin: 0;
		display: flex;
		flex-direction: column;
		align-items: start;
		text-align: left;
		color: #555;
		font-size: clamp(28px, 7vw, 38px);
		line-height: 1.4;
		font-weight: 700;
	}

	#top_title_area .c-pageTitle__subTitle {
		display: block;
		margin-top: 5px;
		color: #eeb61c;
		font-size: 14px;
		line-height: 1.4;
		font-weight: 700;
	}


	/* ========================================
	   画像
	======================================== */

	#top_title_area .l-topTitleArea__img {
		position: absolute;
		top: auto;
		right: 0;
		bottom: 0;
		left: 0;
		width: 100% !important;
		height: 72% !important;
		object-fit: cover;
		object-position: center;
		clip-path: url(#content-header-clip-sp);
		-webkit-clip-path: url(#content-header-clip-sp);
	}

}

/*サイドバー*/
#sidebar .c-listMenu a,
#sidebar .c-listMenu a:hover {
	padding-left: 1em;
}
@media (max-width: 959px) {
	.l-sidebar {
		width: 100%;
	}	
}

@media (min-width: 960px) {
    .w-fixSide {
        margin-top: 0;
    }
	#custom_html-8 {
	display: none;
	}
}



/* もともとのbeforeアイコンを削除 */
#sidebar .c-listMenu a::before {
	display: none !important;
	content: none !important;
}

#sidebar ul {
	border: 1px solid var(--color_border);
	border-bottom: none;
}

/* aを矢印配置の基準にする */
#sidebar .c-listMenu a {
	position: relative;
	padding-right: 40px;
}


/* 右端に新しい矢印 */
#sidebar .c-listMenu a::after {
	content: "\e93b";
	font-family: "icomoon";

	position: absolute;
	right: 10px;
	top: 50%;

	display: inline-block;
	font-size: 0.8em;

	transform: translate(0, -50%);
	opacity: 1;
}


/* hover時 */
#sidebar .c-listMenu a:hover::after {
	animation: sidebar-arrow-loop 0.6s ease forwards;
}


/* 右へ抜ける → 左から戻る */
@keyframes sidebar-arrow-loop {
	0% {
		transform: translate(0, -50%);
		opacity: 1;
	}

	35% {
		transform: translate(10px, -50%);
		opacity: 0;
	}

	50% {
		transform: translate(-10px, -50%);
		opacity: 0;
	}

	100% {
		transform: translate(0, -50%);
		opacity: 1;
	}
}

/*フッター*/
.l-footer {
	display: none;
}

.w-beforeFooter .c-widget .textwidget>:not(:last-child) {
	margin-bottom: 0;
}

.w-beforeFooter .post_content>* {
	margin-bottom: 0;
}

/*ハンバーガーメニュー*/
/*スマホ開閉メニュー*/
@media (min-width: 960px) {
	.p-spMenu {
		display: block;
	}
}

.custom-menu-btn {
	width: 30px;
	height: 30px;
	margin-bottom: 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 7px;
}

.custom-menu-btn__line {
	display: block;
	width: 30px;
	height: 2px;
	background: #fff;
	transition:
		transform .35s ease,
		opacity .25s ease;
}

/* 開いているとき */
.custom-menu-btn.is-open .custom-menu-btn__line:nth-child(1) {
	transform: translateY(9px) rotate(45deg);
}

.custom-menu-btn.is-open .custom-menu-btn__line:nth-child(2) {
	opacity: 0;
}

.custom-menu-btn.is-open .custom-menu-btn__line:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

/*追従メニュー*/
.fixed-menu {
	position: fixed;
	right: 0;
	top: var(--swl-adminbarH, 0);
	width: 90px;
	z-index: 10001;
}

@media (max-width: 960px) {
	.fixed-menu {
		width: 100%;
	}
	
	.fixed-menu .swell-block-columns__inner {
		flex-direction: row-reverse;
	}
}

.fixed-menu .swell-block-column {
	width: 90px;
	height: 90px;
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

@media (max-width: 960px) {
	.fixed-menu .swell-block-column {
		width: 33.33333%;
		height: 72px;
	}
}

.fixed_menu_hamburger {
	cursor: pointer;
}

/*カラム全体をクリックできるようにする*/
/* 親要素（カード全体）のスタイル */
.u-card-link {
    position: relative;
    transition: 0.25s ease;
    cursor: pointer;
}

.u-card-link:hover,
.fixed_menu_hamburger:hover {
    filter: brightness(1.1);
}

.u-stretched-link a::after { 
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: auto;
}



/*開閉メニュー内*/
.p-spMenu {
	margin-top: var(--swl-adminbarH, 0);
	overflow-y: scroll;
}

.p-spMenu__body {
	padding-bottom: 2vw;
}

.p-spMenu__inner {
	width: 600px;
	max-width: 100%;
	transform: translateX(0) !important;
	opacity: 0;
	transition: opacity 0.4s ease !important;
}

#body_wrap:not(.home) .p-spMenu__inner {
	padding-top: 1.5rem;
}

@media (max-width: 960px) {
	#body_wrap:not(.home) .p-spMenu__inner {
		margin-top: 72px;
	}
}

[data-spmenu="opened"] .p-spMenu__inner {
	opacity: 1;
	transform: translateX(0) !important;
}

.p-spMenu .c-widget__title {
	display: none;
}

.p-spMenu__nav {
	margin-top: 0; 
	max-width: 400px;
}

.p-spMenu .c-listMenu a:before {
	display: none;
}

.p-spMenu .c-listMenu a {
	padding: 0.7em 1em !important;
	border-bottom: none;
	font-weight: 700;
}

.p-spMenu .c-listMenu a:hover {
    background-color: color-mix(in srgb, var(--color_main) 30%, transparent);
}

.p-spMenu .c-listMenu .sub-menu a {
    padding-left: 2.5em !important;
}

.p-spMenu .c-listMenu .sub-menu a:before {
	display: block;
	content: "－";
}


#body_wrap:not(.home) .p-spMenu__inner .p-spMenu__closeBtn {
	display: none;
}

/*開閉メニューSNSリンク*/
.sns-links .swell-block-linkList__link {
	width: 40px;
    height: 40px;
}

.sns-links .link-instagram a {
	background-color: var(--the-color) !important;
    color: #fff !important;
}

.instagram_details {
	position: relative;
	padding: 1em !important;
}

.instagram_details::before {
	content: "";
	position: absolute;
	top: 0;
	right: 105px;
	transform: translateY(-100%);
	width: 0;
	height: 0;
	border-left: 12px solid transparent;
	border-right: 12px solid transparent;
	border-bottom: 12px solid #333;
}


/* ページネーション */

.c-pagination.custom-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}


/* ページ番号 */
.custom-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: #333;
	font-size: 16px;
	font-weight: 400;
	line-height: 1;

	text-decoration: none;
}


/* 現在ページ */
.custom-pagination .page-numbers.current {
	background: #333;
	color: #fff;
}


/* hover */
.custom-pagination a.page-numbers:hover {
	background: #f2f2f2;
	color: #333;
}


/* 「...」 */
.custom-pagination .c-pagination__dot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 40px;
	color: #333;
}


/* ========================================
   左右矢印
======================================== */

.custom-pagination__arrow {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 30px;
	height: 40px;

	flex-shrink: 0;
}


/* 左右の余白 */
.custom-pagination__arrow--prev {
	margin-right: 8px;
}

.custom-pagination__arrow--next {
	margin-left: 8px;
}


/* 三角形 */
.custom-pagination__arrow::before {
	content: "";
	display: block;

	width: 0;
	height: 0;

	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
}


/* 左矢印 */
.custom-pagination__arrow--prev::before {
	border-right: 8px solid #333;
}


/* 右矢印 */
.custom-pagination__arrow--next::before {
	border-left: 8px solid #333;
}


/* 無効状態 */
.custom-pagination__arrow--prev.is-disabled::before {
	border-right-color: #bbb;
}

.custom-pagination__arrow--next.is-disabled::before {
	border-left-color: #bbb;
}


/* リンクの矢印 hover */
a.custom-pagination__arrow--prev:hover::before {
	border-right-color: #777;
}

a.custom-pagination__arrow--next:hover::before {
	border-left-color: #777;
}

/*パンくずリスト*/
.p-breadcrumb__list {
	justify-content: right;
}

.p-breadcrumb__text .__home:before {
	display: none;
}

/*投稿ページ*/
.single-post {
	background: var(--color_main_thin);
}

.p-articleFoot {
	display: none;
}

.single-post #content.has-single-hero {
	display: flex;
	flex-wrap: wrap;
}

.single-post .p-singleHero {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	margin-bottom: 40px;
}

.single-post .p-singleHero .p-articleThumb {
	width: 100%;
	margin: 0;
	overflow: hidden;
}

.single-post .p-singleHero .p-articleThumb img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 1rem 8rem 1rem 1rem;
	aspect-ratio: 4 / 3;
    object-fit: cover;
}

.single-post .p-singleHero__text {
    position: absolute;
    left: -1rem;
    bottom: -1.5rem;
    z-index: 2;
    max-width: calc(100% - 60px);
}

.single-post .p-singleHero .p-articleHead {
	margin: 0;
}

.single-post .p-singleHero .c-postTitle__ttl {
	display: inline;
	padding: 5px 10px;
	background: #fff;
	color: #333;
	font-size: clamp(18px, 2vw, 28px);
	line-height: 1.7;
	border: 2px solid #333;
	border-radius: 5px;
	box-shadow: 2px 2px var(--color_text);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}

.single-post .p-singleHero .c-postTitle__date {
	display: none;
}

@media (max-width: 959px) {
	.single-post .p-singleHero {
		margin-bottom: 30px;
	}

	.single-post .p-singleHero__text {
		left: -0.5rem;
		bottom: -1rem;
		max-width: calc(100% - 30px);
	}

	.single-post .p-singleHero .c-postTitle__ttl {
		padding: 4px 8px;
		font-size: 18px;
		line-height: 1.6;
	}
	
	.single-post .p-breadcrumb {
		margin-top: 72px;
	}

}

.icon-posted:before {
	display: none;
}

.c-postTimes {
	opacity: 1;
	font-weight: 700;
	font-size: 1rem;
}

/*投稿のデフォルト見出し*/
.post-template-default .l-mainContent__inner .post_content h2 {
    border: 2px solid var(--color_text);
	border-right: none;
    border-radius: 1.5rem 0 0 0.25rem;
	padding: 1rem 1.5rem;
}

.post-template-default .l-mainContent__inner .post_content h3 {
	font-size: 1.2rem !important;
	position: relative !important;
	display: inline-block !important;
	padding: 0 45px !important;
}
.post-template-default .l-mainContent__inner .post_content h3:before, 
.post-template-default .l-mainContent__inner .post_content h3:after {
  content: '';
  position: absolute !important;
  top: 50% !important;
  display: inline-block !important;
  width: 44px !important;
  height: 1.5px !important;
  background-color: #333 !important;
  -webkit-transform: rotate(-60deg) !important;
  transform: rotate(-60deg) !important;
}
.post-template-default .l-mainContent__inner .post_content h3:before {
  left:0 !important;
}
.post-template-default .l-mainContent__inner .post_content h3:after {
  right: 0 !important;
}

.border-shadow {
    border: 3px solid var(--color_text);
    box-shadow: 2px 2px var(--color_text);
	border-radius: 1rem;
}

/*サイドバースクロール固定*/
.sticky-box {
	height: auto;
	align-items: start;
}

.aside-sticky {
	position: sticky;
	position: -webkit-sticky;
	top: 150px;
	left: 0;
	height: fit-content;
}

@media (max-width: 960px) {
	.aside-sticky {
		position: relative;
	}
}

/*サイドバー追従目次 */

.sidebar-index a {
	display: inline-flex;
	align-items: center;
	position: relative;
}

/* 左側の点 */
.sidebar-index a::before {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(100% + 10px);
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	transform: translateY(-50%) scale(0);
	opacity: 0;
	transition:
		transform 0.3s ease,
		opacity 0.3s ease;
}

/* active時に点を表示 */
.sidebar-index .active a::before {
	transform: translateY(-50%) scale(1);
	opacity: 1;
}

/* active・hover */
.sidebar-index .active a,
.sidebar-index a:hover {
	color: var(--the-color);
	font-weight: bold;
}

/*ルビ*/
ruby {
	ruby-position: over;
}

ruby rt {
	font-size: 0.25em;
	letter-spacing: 0.05em;
}

/* フェードインする画像 */
.fadein-picture {
	display: block;
	overflow: hidden;
	border-radius: 1rem;
	transform: scale(1.1);
}

.fadein-picture img {
	display: block;
	width: 100%;
	opacity: 0;
	transform: scale(1.2);
	transition:
		opacity 1s ease,
		transform 1s ease;
}

.fadein-picture.show {
	transform: scale(1);
}

.fadein-picture.show img {
	opacity: 1;
	transform: scale(1);
}

/*下に吹き出しのあるブロック*/
.fukidashi-under {
	position: relative;
}

.fukidashi-under::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -20px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-top: 20px solid #fff;
}

/*小さい線をつけた見出し*/
.post_content .mini-line {
  position: relative;
  padding: 1.5rem;
  text-align: center;
}

.post_content .mini-line:before {
  position: absolute;
  bottom: 0px;
  left: calc(50% - 30px);
  width: 72px;
  height: 2px;
  content: '';
  border-radius: 3px;
  background: var(--color_main);
}

/*両サイドに線*/
.post_content .two-side-line {
  position: relative;
  padding: 0 10%;
  text-align: center;
}

.post_content .two-side-line:before {
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  width: 100%;
  height: 1px;
  content: '';
  background: #333;
}

.post_content .two-side-line .wp-block-heading {
	position: relative;
	padding: 0 1em;
	background: #fff;
	display: inline-block;
}

/*固定ページ*/
.page .l-content {
	margin-bottom: 0;
}

.w-beforeFooter {
	margin-top: 0;
}

/*サービス内容*/
.service-fee .swl-bg-color {
	border-radius: 50px;
	padding: 0.25em 0.5em;
}

/*アコーディオン*/
.swell-block-accordion.is-style-border .swell-block-accordion__body, .swell-block-accordion.is-style-simple .swell-block-accordion__body {
	border-top: none;
}

/*点線テーブル*/
.dashed-table.wp-block-table td, .dashed-table.wp-block-table th {
	padding: 1em 0;
	border: 1px dashed #aaaaaa;
	border-left: none;
	border-right: none;
}

.dashed-table .post_content th {
	color: #888;
	font-weight: 500;
}


/* ========================================
   Contact Form 7
======================================== */

.contact-form {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}

/* 1行 */
.contact-form__row {
  display: grid;
  grid-template-columns: 42% 58%;
  align-items: center;
  padding: 28px 10px;
  border-top: 1px solid #e5e5e5;
}

.contact-form__row:last-of-type {
  border-bottom: 1px solid #e5e5e5;
}

/* 左側 */
.contact-form__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-right: 24px;
  font-weight: 500;
}

.contact-form__label>p {
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

/* 必須 */
.contact-form__required {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border-radius: 4px;
  background: #f04438;
  color: #fff;
  font-size: 11px;
  line-height: 1.3;
  font-weight: 500;
	height: 28px;
}

/* 右側 */
.contact-form__field {
  min-width: 0;
}

/* input / textarea */
.contact-form input[type="text"],
.contact-form input[type="tel"],
.contact-form input[type="email"],
.contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 16px;
  border: 0;
  border-radius: 4px;
  background: #f1f1f1;
  font-size: 15px;
  line-height: 1.6;
}

.contact-form input[type="text"],
.contact-form input[type="tel"],
.contact-form input[type="email"] {
  min-height: 46px;
}

.contact-form textarea {
  min-height: 210px;
  resize: vertical;
}

/* placeholder */
.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #999;
}

/* フォーカス */
.contact-form input:focus,
.contact-form textarea:focus {
  outline: 1px solid #aaa;
  background: #f7f7f7;
}

/* textarea行は上揃え */
.contact-form__row--textarea {
  align-items: start;
}

.contact-form__row--textarea .contact-form__label {
  padding-top: 12px;
}

/* プライバシー */
.contact-form__row--privacy {
  align-items: start;
}

.contact-form__row--privacy .contact-form__label {
  padding-top: 4px;
}

.contact-form__privacy-text {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.8;
}

.contact-form__privacy-text a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* acceptance */
.contact-form .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}

.contact-form .wpcf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.contact-form .wpcf7-acceptance input[type="checkbox"] {
  width: 16px;
  height: 16px;
}

/* 送信 */
.contact-form__submit {
  margin-top: 35px;
  text-align: center;
}

.contact-form__submit input[type="submit"] {
  width: min(220px, 100%);
  padding: 12px 30px;
  border: 0;
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.contact-form__submit input[type="submit"]:hover {
  opacity: 0.75;
}

/* CF7エラー */
.contact-form .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-size: 12px;
}

/* ========================================
   スマホ
======================================== */
@media (max-width: 767px) {

  .contact-form__row {
    display: block;
    padding: 22px 0;
  }

  .contact-form__label {
    justify-content: flex-start;
    gap: 12px;
    padding-right: 0;
    margin-bottom: 12px;
  }

  .contact-form__row--textarea .contact-form__label,
  .contact-form__row--privacy .contact-form__label {
    padding-top: 0;
  }

  .contact-form input[type="text"],
  .contact-form input[type="tel"],
  .contact-form input[type="email"],
  .contact-form textarea {
    font-size: 16px;
  }

  .contact-form textarea {
    min-height: 180px;
  }

}

.contact-form select {
  width: 100%;
  box-sizing: border-box;
  min-height: 46px;
  padding: 12px 16px;
  border: 0;
  border-radius: 4px;
  background: #f1f1f1;
  font-size: 15px;
  line-height: 1.6;
}

.contact-form__submit p {
	display: flex;
    justify-content: center;
}

a.underline {
	text-decoration: underline;
}

/*無限ループするスライダー*/
.loop-slider {
    display: flex;
    overflow: hidden;
    gap: 1.5rem; /* 画像間の余白を指定 */
}

.loop-slider .wp-block-group__inner-container,
.loop-slider .swell-block-columns {
    display: contents;
}

.loop-slider .swell-block-columns__inner {
    flex-wrap: nowrap;
    animation: infinity-scroll-left 120s infinite linear; /* アニメーションの時間を指定 */
}

.loop-slider .swell-block-column {
	width: 30dvw;
	height: 100%;
}

.loop-slider .swell-block-column figure {
    position: relative;
}

.loop-slider .swell-block-column figure::before {
    padding-top: 65%; /* 画像の縦横比を指定 */
    display: block;
    content: "";
}

.loop-slider .swell-block-column figure img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100% !important;
    object-fit: cover;
    object-position: center;
}

.loop-slider .swell-block-column .wp-block-columns {
	height: 100%;
}

@media screen and (max-width: 959px) {
    .loop-slider .swell-block-column {
        width: 300px; /* 画像の横幅を指定（スマホ） */
    }
}

@keyframes infinity-scroll-left {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}
/* 全ページでreCAPTCHAバッジを非表示 */
.grecaptcha-badge {
  visibility: hidden !important;
}

/* お問い合わせページ（ID：32）だけ表示 */
body:has(#body_wrap.page-id-32) .grecaptcha-badge {
  visibility: visible !important;
}
