*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	/* iOSのダークモードでフォーム部品が自動反転して文字が読めなくなるのを防ぐ */
	color-scheme: light;
}

body {
	position: relative;
	overflow-x: clip;
}

/* ガターのSP値。%でなくvw: has-global-paddingのpaddingとalignfullの
   負マージンが同一参照で相殺され、全幅要素の幅が正確に出る */
@media (max-width: 960px) {
	body {
		--wp--custom--gutter: 5vw;
	}
}

/* メインが短くてもフッターを最下部へ（スティッキーフッター） */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > main {
	flex-grow: 1;
}

body .img {
	overflow: hidden;
	line-height: 0;
}

header,
main,
footer {
	margin-block-start: 0;
}

.wrapper {
	position: relative;
	z-index: 1;
	padding: 140px 0 200px;
}

@media (max-width: 960px) {
	.wrapper {
		padding: 130px 0 150px;
	}
}

.wrapper .container,
.wrapper.container {
	position: relative;
	z-index: 2;
}

.container {
	max-width: 1020px;
	margin: 0 auto;
	padding: 0 20px;
}

.container-large {
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 30px;
}

.container-xlarge {
	max-width: 1370px;
	margin: 0 auto;
	padding: 0 30px;
}

@media (max-width: 1020px) {
	.container,
	.container-large,
	.container-xlarge {
		max-width: 100%;
	}
}

@media (max-width: 960px) {
	.container,
	.container-large,
	.container-xlarge {
		padding: 0 5%;
	}
}

.dispc {
	display: block !important;
}

@media (max-width: 767px) {
	.dispc {
		display: none !important;
	}
}

.dissp,
.breaksp {
	display: block !important;
}

@media (min-width: 768px) {
	.dissp,
	.breaksp {
		display: none !important;
	}
}

/* レスポンシブ改行: RichTextは<br>の属性を編集ビューで剥がすため、
   段落内のbrが全てレスポンシブ改行なら「ブロック自身のクラス+素の<br>」で
   表現する(sp-nobr=SPでは改行しない / pc-nobr=PCでは改行しない)。
   常時<br>と混在する段落だけspanユーティリティ(.br-sp/.br-pc)を使う */
@media (max-width: 767px) {
	.sp-nobr br {
		display: none;
	}

	.br-sp::before {
		content: "\A";
		white-space: pre;
	}
}

@media (min-width: 768px) {
	.pc-nobr br {
		display: none;
	}

	.br-pc::before {
		content: "\A";
		white-space: pre;
	}
}

.fontgothic {
	font-family: var(--wp--preset--font-family--body) !important;
}

.text_center {
	text-align: center !important;
}

.text_right {
	text-align: right !important;
}

.text_right .wp-block-buttons,
.text_rightSP .wp-block-buttons {
	display: block;
}

@media (max-width: 960px) {
	.text_rightSP {
		max-width: 425px;
		margin: 0 auto;
		text-align: right;
	}
}

.text_left {
	text-align: left !important;
}

.text_bold {
	font-weight: bold !important;
}

.is-style-section-gray {
	background: var(--wp--preset--color--footer-background);
}

.mt15 {
	margin-top: 15px !important;
}

.ahover {
	position: relative;
}

.ahover > a::after,
.ahover > p > a::after {
	content: "";
	position: absolute;
	bottom: 2px;
	left: 50%;
	width: 0;
	height: 3px;
	background: var(--wp--preset--color--accent);
	border-radius: 99px;
	transition: all 0.35s ease;
}

@media (min-width: 769px) {
	.ahover > a:hover,
	.ahover > p > a:hover {
		
		opacity: 1;
		color: var(--wp--preset--color--accent) !important;
	}

	.ahover > a:hover::after,
	.ahover > p > a:hover::after {
		left: 12.5%;
		width: 75%;
	}
}

.wp-block-buttons {
	gap: 0;
}

/* 標準ボタン(塗りつぶし/輪郭)はarrow-linkの矢印なし版。塗り⇔枠線をhoverで反転 */
.wp-block-button__link {
	transition: all 0.3s;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	padding: 24px 22px 23px;
	background-color: transparent;
	border: 1px solid var(--wp--preset--color--body-text);
	color: var(--wp--preset--color--body-text);
}

@media (min-width: 961px) {
	.wp-block-button.is-style-outline .wp-block-button__link:hover {
		background-color: var(--wp--preset--color--body-text);
		color: var(--wp--preset--color--background);
	}
}

.is-style-arrow-link {
	display: block;
	width: 100%;
	max-width: 320px;
}

.is-style-arrow-link .wp-block-button__link {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 24px 22px 23px;
	background-color: transparent;
	border: 1px solid var(--wp--preset--color--body-text);
	border-radius: 0;
	color: var(--wp--preset--color--body-text);
	transition: all 0.3s;
}

@media (min-width: 961px) {
	.is-style-arrow-link .wp-block-button__link:hover {
		background: var(--wp--preset--color--body-text);
	}

	.is-style-arrow-link .wp-block-button__link:hover span {
		background-image: url("../../images/common/arrwhite.png");
		color: var(--wp--preset--color--background);
	}
}

.is-style-arrow-link .wp-block-button__link span {
	padding: 0 25px;
	background: url("../../images/common/arr.png") no-repeat right top 2px;
	background-size: 14px;
	font-family: var(--wp--preset--font-family--light);
	line-height: 1;
	text-transform: uppercase;
	transition: all 0.3s;
}

@media (max-width: 960px) {
	.is-style-arrow-link .wp-block-button__link span {
		background-position: right top 3px;
		background-size: 10px;
		padding: 0 20px;
	}
}

.is-style-view-more-link .wp-block-button__link {
	position: relative;
	display: inline-block;
	padding: 0 22px 11px 80px;
	background-color: transparent;
	border: 0;
	border-bottom: 0.5px solid var(--wp--preset--color--body-text);
	border-radius: 0;
	color: var(--wp--preset--color--body-text);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1;
}

.is-style-view-more-link .wp-block-button__link::after {
	content: "";
	position: absolute;
	top: 1px;
	right: 0;
	width: 14px;
	height: 14px;
	background: url("../../images/common/arr.png") no-repeat right top;
	background-size: 14px;
}

/* hover: 赤下線が左から伸び、文字と矢印が赤化(::afterは矢印に使用済みのため下線は::before) */
.is-style-view-more-link .wp-block-button__link::before {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 0;
	height: 0.5px;
	background: var(--wp--preset--color--accent);
	transition: all 0.3s;
}

.is-style-view-more-link .wp-block-button__link:hover {
	color: var(--wp--preset--color--accent);
}

.is-style-view-more-link .wp-block-button__link:hover::before {
	width: 100%;
}

.is-style-view-more-link .wp-block-button__link:hover::after {
	background-image: url("../../images/common/arr-red.png");
}

@media (max-width: 960px) {
	.is-style-view-more-link .wp-block-button__link {
		padding-bottom: 6px;
		border-bottom-width: 1px;
		font-size: 10px;
	}

	.is-style-view-more-link .wp-block-button__link::after {
		top: 0;
		width: 10px;
		height: 10px;
		background-size: 10px;
	}
}

.block-head,
.is-style-section-head {
	position: relative;
	margin: 0 0 150px;
	text-align: center;
}

section.wp-block-group.is-style-section-head {
	margin-bottom: 150px;
}

@media (max-width: 960px) {
	.block-head,
	.is-style-section-head {
		margin: 0 0 100px;
	}

	section.wp-block-group.is-style-section-head {
		margin-bottom: 100px;
	}
}

.block-head h1,
.block-head h2,
.is-style-section-head h1,
.is-style-section-head h2,
.is-style-section-head .is-style-deco-heading {
	margin-top: 0;
	margin-bottom: 30px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 400;
	line-height: 1.2;
	text-align: center;
}

.is-style-deco-heading :is(h1, h2, h3, h4, h5, h6) {
	margin: 0;
	font-size: 100%;
	font-weight: 400;
}

.block-head h1 span,
.block-head h2 span,
.is-style-section-head h1 span,
.is-style-section-head h2 span,
.is-style-section-head .is-style-deco-heading span {
	display: block;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.2;
}

.block-head h1 small,
.block-head h2 small,
.is-style-section-head h1 small,
.is-style-section-head h2 small,
.is-style-section-head .is-style-deco-heading small {
	display: block;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.2;
}

.is-style-section-head .is-style-deco-heading h3 {
	margin: 0;
}

@media (max-width: 960px) {
	.block-head h1,
	.block-head h2,
	.is-style-section-head h1,
	.is-style-section-head h2,
	.is-style-section-head .is-style-deco-heading {
		margin-bottom: 25px;
		font-size: var(--wp--preset--font-size--x-large);
	}

	.block-head h1 span,
	.block-head h2 span,
	.is-style-section-head h1 span,
	.is-style-section-head h2 span,
	.is-style-section-head .is-style-deco-heading span {
		font-size: var(--wp--preset--font-size--x-large);
	}
}

.block-head p,
.is-style-section-head p {
	position: relative;
	display: block;
	margin: 0;
	padding-bottom: 50px;
	font-weight: bold;
}

@media (max-width: 960px) {
	.block-head p,
	.is-style-section-head p {
		padding-bottom: 35px;
	}
}

.block-head p::after,
.is-style-section-head p::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 66px;
	height: 0.5px;
	margin-left: -33px;
	background: var(--wp--preset--color--body-text);
}

.about .block-desc {
	margin-bottom: 100px;
}

.block-desc-text h2,
.block-desc-text h3 {
	margin-bottom: 45px;
	font-size: 20px;
	font-weight: bold;
}

@media (max-width: 960px) {
	.block-desc-text h2,
	.block-desc-text h3 {
		margin-bottom: 35px;
	}
}

.block-button {
	position: relative;
	z-index: 2;
	max-width: var(--wp--custom--width--button);
	margin: 0 auto;
	margin-top: 190px;
}

.block-button .wp-block-buttons {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

@media (max-width: 960px) {
	.block-button {
		margin-top: 170px;
	}

	.block-button .wp-block-button {
		margin: 0 20px;
	}
}

@media (max-width: 640px) {
	.block-button .wp-block-buttons {
		flex-wrap: wrap;
		justify-content: center;
	}

	.block-button .wp-block-button {
		margin: 0;
	}

	.block-button .wp-block-button:first-child {
		margin-bottom: 40px;
	}
}

.fz20 {
	font-size: 20px !important;
}

.backlink {
	margin-top: 140px;
	text-align: center;
}

.backlink .wp-block-buttons {
	display: block;
}

@media (max-width: 960px) {
	.backlink {
		margin-top: 100px;
	}
}

.backlink .is-style-arrow-link {
	margin: 0 auto;
}

.containerx {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 30px;
}

@media (max-width: 960px) {
	.containerx {
		padding: 0 5%;
	}
}

.is-style-titline {
	max-width: var(--wp--custom--width--section);
	margin: 0 auto;
	padding: 0 30px;
}

@media (max-width: 960px) {
	.is-style-titline {
		padding: 0 5%;
		margin-bottom: 90px;
	}
}

.is-style-section-title {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0;
	padding-bottom: 15px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--huge);
	font-weight: 400;
	line-height: 1;
	border-bottom: 0.5px solid var(--wp--preset--color--body-text);
}

.is-style-section-title::after {
	content: "";
	position: absolute;
	right: -45%;
	bottom: -1px;
	width: 45%;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
}

@media (max-width: 960px) {
	.is-style-section-title {
		font-size: 26px;
	}
}

.is-style-section-title small {
	margin-left: 30px;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
}

@media (max-width: 960px) {
	.is-style-section-title small {
		margin-left: 15px;
	}
}

.titsub,
.is-style-titsub {
	position: relative;
	padding-bottom: 15px;
	margin-bottom: 40px;
	font-size: var(--wp--preset--font-size--large);
}

.titsub::after,
.is-style-titsub::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 40px;
	height: 0.5px;
	background: var(--wp--preset--color--body-text);
}

.titsub h3 {
	margin: 0;
	padding: 0;
	font-size: inherit;
	font-weight: normal;
}

.is-style-titsub {
	margin-top: 0;
	font-weight: normal;
}
