/*===============================
* ページ内スクロールを正常に機能させる
* ヘッダーが被らない様にする
* =================================*/
#fix_header{
	height: var(--swl-headerH);
}
[data-scrolled=true] #fix_header{
	opacity: 0;
	-webkit-transform: translateY(calc(var(--swl-fix_headerH, 100px)*-1));
	transform: translateY(calc(var(--swl-fix_headerH, 100px)*-1));
	visibility: hidden;
}

.l-header {
	position: sticky;
	box-shadow: 0 4px 4px 0 rgba(51, 51, 51, .05);
}
.l-header__logo {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}
.l-header__customBtn {
	height: unset;
	line-height: unset;
	width: unset;
}
@media (min-width: 960px) {
	.-parallel-bottom .l-header__logo {
		padding: 1rem 1.5rem;
		display: flex;
		justify-content: space-between;
		border-bottom: 1px solid #eee;
	}
}

.-parallel-bottom .l-header__inner {
	padding: 1rem var(--swl-pad_container, 0);
	gap: .25rem;
	align-items: baseline;
}
@media (min-width: 960px) {
	.-parallel-bottom .l-header__inner {
		padding: unset;
		gap: .75rem;
	}
}

/* ロゴ */
.c-headLogo {
	height: clamp(2rem, 1.643rem + 0.95vw, 2.5rem);
}

/* 営業時間・定休日・文字サイズ & CTAの親ブロック */
.header-content {
	display: flex;
	gap: 1rem;
	min-width: fit-content;
}
@media (min-width: 1120px) {
	.header-content {
		gap: 2rem;
	}
}

/* 営業時間・定休日 & 文字サイズの親ブロック */
.header-usability {
	display: flex;
	align-items: center;
	gap: 1rem;
}
/* 営業時間・定休日 */
.header-time {
	display: none;
	font-size: 1.25rem;
	line-height: 1em;
	font-weight: var(--fw-lg);
}
.header-time p:not(:last-of-type) {
	margin-bottom: .5rem;
}
.header-time p:last-of-type {
	font-size: 1rem;
}
@media (min-width: 960px) {
	.header-time {
		display: block;
	}
}

/* 文字サイズ --- parts/header-fontsize.php */
.header-fz {
	background: var(--c-blue--light);
	padding: .4rem;
	border-radius: 4px;
	max-width: 8rem;
}
.header-fz__ttl {
	display: flex;
	align-items: center;
	gap: clamp(.25rem, .38vw + .16rem, .5rem);
	margin-bottom: .5rem;
}
.header-fz__img {
	width: clamp(0.6rem, 0.314rem + 0.76vw, 1rem);
	height: clamp(0.6rem, 0.314rem + 0.76vw, 1rem);
}
.header-fz__ttl p {
	font-size: clamp(0.5rem, 0.143rem + 0.95vw, 1rem);
	font-weight: var(--fw-lg);
	line-height: 1em;
}
/* 文字サイズ（ハンバーガーメニュー内の設置） */
#sp_menu .header-fz {
	position: fixed;
	top: 1rem;
	right: 5rem;
	z-index: 1000;
}
@media (min-width: 600px) {
	#sp_menu .header-fz {
		right: 6rem;
	}
}

/* 中・大 切り替え */
.header-fz__tab {
	--tab-color: var(--c-main);
	display: flex;
	margin-inline: auto;
	gap: 4px;
}

.header-fz__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: .25rem 0;
	width: 100%;
	max-height: 1.75rem;
	background: var(--c-blue--dark);
	color: var(--c-light);
	cursor: pointer;
	order: -1;
	text-align: center;
	border-radius: 4px;
	font-size: 1rem;
	font-weight: var(--fw-lg);
}
.header-fz__btn.--large {
	font-size: 1.25rem;
}
.header-fz__btn.is-active {
	background: var(--tab-color);
	color: var(--c-light);
}


/* CTA */
.header-cta {
	display: none;
}
.header-btn {
	max-width: 17rem !important;
	min-width: 17.75rem !important;
	border-radius: 100vmax !important;
	font-size: 1.25rem !important;
}
@media (min-width: 960px) {
	.header-cta {
		display: flex;
		--gap: 1rem;
		align-items: center;
		gap: var(--gap);
		width: min-content;
	}
}

/*===============================================================================
ハンバーガーメニューの開閉ボタンの位置を揃える
================================================================================*/
@media not all and (min-width: 960px) {
	:root {
		--header-vertical-gap: 0rem;
		--header-side-gap: 0rem;
		--icon-size: 5rem;
	}
	/* ヘッダーロゴ周りの余白を削除 */
	:is(#header, #fix_header) :is(.l-header__logo, .c-headLogo__link) {
		padding: 0;
	}
	/* 開けるボタンの位置 */
	#header {
		padding: var(--header-vertical-gap) var(--header-side-gap);
	}
}

.p-spMenu__inner {
	padding-top: unset;
}


/*===============================================================================
グロナビ
================================================================================*/
#gnav .menu-item {
	background-position: 50% 50%;
	background-size: contain;
	background-repeat: no-repeat;
}

#gnav .menu-item.--service {
	background-image: url(/wp-content/uploads/header-service.png);
}
#gnav .menu-item.--company {
	background-image: url(/wp-content/uploads/header-company.png);
}
#gnav .menu-item.--strong {
	background-image: url(/wp-content/uploads/header-strong.png);
}
#gnav .menu-item.--privacy {
	background-image: url(/wp-content/uploads/header-privacy.png);
}
#gnav .menu-item.--voice {
	background-image: url(/wp-content/uploads/header-voice.png);
}
#gnav .menu-item.--blog {
	background-image: url(/wp-content/uploads/header-blog.png);
}
#gnav .menu-item.--access {
	background-image: url(/wp-content/uploads/header-access.png);
}
#gnav .menu-item.--news {
	background-image: url(/wp-content/uploads/header-news.png);
}

#gnav .ttl {
	font-weight: var(--fw-lg);
	font-size: 1.25rem;
	color: var(--c-main);
}

#gnav a {
	padding: .4em .625rem;
}

@media (min-width: 960px) {
	.-parallel-bottom .l-header__gnav {
		margin-bottom: .75rem;
	}
}
.c-gnav .menu-item {
	border-left: 1px dashed var(--c-gray);
}
.c-gnav .menu-item:last-of-type {
	border-right: 1px dashed var(--c-gray);
}

/*===============================================================================
ハンバーガーメニュー
================================================================================*/
[data-spmenu="closed"] #sp_menu .p-spMenu__inner {
	-webkit-transform: translateX(100vw);
	transform: translateX(100vw);
}
#sp_menu .p-spMenu__inner {
	padding-top: unset;
	width: 100vw;
}

/* ハンバーガーメニュー */
#header .l-header__menuBtn {
	display: contents;
}
#sp_menu .p-spMenu__closeBtn {
	padding: 1rem var(--swl-pad_container, 0) 1.5rem;
	background: var(--c-light);
	position: relative;
	display: flex;
	justify-content: space-between;
	width: 100%;
	height: fit-content;
}
#sp_menu .p-spMenu__closeBtn::before {
	content: "";
	max-width: 15rem;
	width: 100%;
	aspect-ratio: 196 / 39;
	background-image: url(/wp-content/uploads/header-logo.png);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}
@media (min-width: 600px) {
	#sp_menu .p-spMenu__closeBtn::before {
		max-width: 25rem;
	}
}
#header .l-header__menuBtn .c-iconBtn,
#sp_menu .p-spMenu__closeBtn .c-iconBtn {
	position: relative;
	max-width: 3.25rem;
	width: 100%;
	height: 3rem;
	--c-current: var(--c-light);
	--c-bg: var(--c-act02);
	--c-shadow: #6695C3;
	background: var(--c-bg);
	box-shadow: 0 4px 0 var(--c-shadow);
	color: var(--c-current);
	cursor: pointer;
	transition: var(--ani-t--normal) ease-out;
	border-radius: 4px;
}

#header .l-header__menuBtn .c-iconBtn::before,
#sp_menu .p-spMenu__closeBtn .c-iconBtn::before {
	position: absolute;
	content: "メニュー";
	display: block;
	font-size: .75rem;
	font-weight: var(--fw-lg);
	line-height: 1em;
	color: var(--c-act02);
	left: 50%;
	bottom: -1.25rem;
	transform: translateX(-50%);
	width: 100%;
	letter-spacing: normal;
}
#header .l-header__menuBtn .c-iconBtn:is(:focus, :hover),
#sp_menu .p-spMenu__closeBtn .c-iconBtn:is(:focus, :hover) {
	box-shadow: 0 0 0 var(--c-shadow);
	transform: translateY(4px);
}

#header .c-iconBtn,
#sp_menu .c-iconBtn {
	font-size: calc(var(--icon-size) / 2.5);
}
#header .c-iconBtn__icon,
#sp_menu .c-iconBtn__icon {
	font-size: 1.75rem;
}

/*===============================
ハンバーガーメニューが開いている時はｽｸﾛｰﾙ禁止
* =================================*/
[data-spmenu="opened"] body {
	height: 100%;
	overflow: hidden;
}
.c-widget__title.-spmenu {
	display: none;
}

/* ハンバーガーメニュー内 レイアウト順序入れ替え */
.p-spMenu__body {
	display: flex;
	flex-direction: column;
}
.p-spMenu__bottom {
	display: contents;
}

/* ハンバーガーメニュー内 無料相談の流れ */
.header-flow-btn {
	max-width: unset !important;
	padding: 1.75rem 0 !important;
}
.c-widget+.c-widget {
	margin-top: unset;
}
.p-spMenu__bottom .widget_custom_html:nth-of-type(2) {
	padding-top: 2.5rem;
	border-top: 1px solid #EEE;
	margin-bottom: 1rem;
}

/* ハンバーガーメニュー内 グローバルメニュー */
.p-spMenu__nav {
	order: 1;
	margin-top: unset;
	padding-bottom: 2.5rem;
}
.c-spnav {
	--count: 2;
	--gap: 1rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--gap);
	max-width: 60rem;
	margin-inline: auto;
}
.c-spnav .menu-item {
	padding: 1.75rem 0;
	width: calc((100% - var(--gap) * (var(--count) - 1)) / var(--count));
	background: var(--c-blue);
	border-radius: 8px;
	--c-current: var(--c-light);
	--c-bg: var(--c-blue);
	--c-shadow: #A9BCCF;
	background: var(--c-bg);
	box-shadow: 0 4px 0 var(--c-shadow);
	color: var(--c-current);
	cursor: pointer;
	transition: var(--ani-t--normal) ease-out;
	align-content: center;
}
.c-spnav .menu-item:is(:focus, :hover) {
	box-shadow: 0 0 0 var(--c-shadow);
	transform: translateY(4px);
}
.c-spnav .menu-item:nth-child(4) a {
	font-size: 1rem;
}
.c-spnav .menu-item a {
	font-weight: var(--fw-xl);
	color: var(--c-main);
}
.c-spnav a,
.c-listMenu a {
	border-bottom: unset;
	padding: unset;
	text-align: center;
}
.c-listMenu a:hover {
	background-color: unset;
}
.p-spMenu a {
	color: var(--c-current);
}

/* ハンバーガーメニュー内 ご相談予約 */
.p-spMenu__bottom .widget_custom_html:nth-of-type(3) {
	order: 2;
	max-width: 35rem;
	width: 100%;
	margin-inline: auto;
	margin-bottom: var(--g-sec--lg);
}
.header-free__btn {
	margin-bottom: 1rem;
}
.header-free__tel {
	font-weight: var(--fw-lg);
}
.header-free__number {
	--c-current: #2C3E50;
	display: flex;
	align-items: baseline;
	gap: .5rem;
	margin-bottom: .5rem;
	font-size: clamp(2.75rem, 2.214rem + 1.43vw, 3.5rem);
	font-weight: var(--fw-xl);
	line-height: 1em;
}
.header-free__number svg {
	width: .7em;
}
.header-free__info {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1em;
	color: #2C3E50;
}