/*
Theme Name : Hapiwaku
Description : Hapiwaku
Author: 金井健人
*/

@charset "utf-8";

:root {
	--font: #444;
	--bg: #faf8f4;
	--bg_secondary: #f0ebe1;
	--main: #399d26;
	--border: #d9cfba;
	--pink: #f45161;
	--shadow: 0 0 15px 0 rgba(40,90,31,.2);
}

* {
	margin: 0;
	padding: 0;
}

html {font-size: 10px;}

img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

body {
	position: relative;
	padding: 50px 0 0;
	line-height: 1.8;
	font-size: 1.5rem;
	color: var(--font);
	background: var(--bg);
	font-family: "M PLUS Rounded 1c", sans-serif;
	-webkit-text-size-adjust: 100%;
}

@media screen and (min-width: 768px) {
	body {
		padding-top: 120px;
		font-size: 1.6rem;
	}
}

a {
	color: var(--font);
	text-decoration: underline;
}
@media (hover: hover) {
	a:hover {text-decoration: none;}
}

ul,
ol {margin-left: 1.5em;}

strong {font-weight: bold;}

.mplus {transform: rotate(.05deg); /* ジャギー対策 */}

/* ヘッダー
======================================== */

.header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	position: fixed;
	top: -.01px;
	left: 0;
	width: 100%;
	height: 50px;
	box-sizing: border-box;
	z-index: 10;
	transition: background .3s;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.header_tit {line-height: 1;}

.header_tit a {
	font-size: 2.4rem;
	font-weight: bold;
	text-decoration: none;
}

.nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav .menu a {text-decoration: none;}

.header_lang {
	margin-left: 1em;
	font-size: 1.4rem;
	transform: rotate(0.05deg); /* ジャギー対策 */
}

.pll-switcher-select {
	margin-left: .5em;
	padding: 4px 5px;
	border-radius: 4px;
	font-size: 1.6rem;
	border: 2px solid var(--border);
	cursor: pointer;
}

/* PC */
@media screen and (min-width: 768px) {
	.header {
		height: 120px;
		padding: 0 32px 0 20px;
		transition: height .3s, background .3s, box-shadow .3s;
	}
	
	.header.fixed {
		height: 60px;
		background: var(--bg);
		box-shadow: var(--shadow);
	}
	
	.header.fixed .header_tit img {
		width: auto;
		max-height: 50px;
	}

	.nav {
		display: flex!important;
		justify-content: flex-end;
		align-items: center;
		position: static;
		height: 100%;
		margin-left: auto;
	}

	.nav {
		display: flex;
		height: 100%;
	}
	
	.nav .menu {
		display: flex;
		justify-content: flex-end;
		width: 100%;
	}

	.nav .menu > li {
		display: flex;
		position: relative;
	}

	.nav .menu > li > a {
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		padding: 5px 16px;
		font-size: 1.8rem;
		font-weight: bold;
		transition: color .3s;
	}
	.nav .menu > li > a:hover,
	.nav .menu > li.current-menu-item:not(.no-current) > a {color: var(--main);}

	.nav .menu > li > a .menu-item-txt {
		display: inline-block;
		position: relative;
	}
	
	.nav .menu > li > a .menu-item-txt::before {
		content: "";
		position: absolute;
		left: calc(50% - 3px);
		bottom: -8px;
		width: 6px;
		height: 6px;
		border-radius: 3px;
		background: var(--main);
		transform: scale(0);
		transition: transform .3s;
	}
	.nav .menu > li > a:hover .menu-item-txt::before,
	.nav .menu > li.current-menu-item:not(.no-current) > a .menu-item-txt::before {transform: none;}

	.nav .menu > .menu-item > .sub-menu {
		display: none;
		position: absolute;
		top: 100%;
		min-width: 100%;
		padding: 16px;
		border-radius: 12px;
		background: var(--bg);
		box-shadow: var(--shadow);
		transform: rotate(.05deg); /* ジャギー対策 */
	}

	.nav .menu .sub-menu a {
		padding-left: 1em;
		background: url(assets/img/ico_arw.svg) 0 .3em / auto .8em no-repeat;
	}
	
	.nav .menu > .menu-item > .sub-menu > .menu-item > a {font-weight: bold;}
	
	.nav .menu .sub-menu .sub-menu {padding-left: 1em;}
	
	#sp_toggle {display: none;}
}

@media screen and (min-width: 768px) and (max-width: 1030px) {
	.nav .menu > li + li {margin-left: 1vw;}
}

/* SP */
@media screen and (max-width: 767.9px) {

	.header {
		padding-left: 3%;
	}
	
	.header::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: #fff;
		z-index: -1;
		transition: opacity .3s;
	}
	
	.header:not(.active)::before {opacity: 0;}
	
	.header .header_tit img {
		width: auto;
		max-height: 40px;
	}
	
	.nav {
		display: none;
		position: fixed;
		top: 50px;
		left: 0;
		width: 100%;
		max-height: calc(100vh - 50px);
		max-height: calc(100dvh - 50px);
		padding: 10px 0;
		box-sizing: border-box;
		overflow: auto;
		background: #fff;
		border-top: 1px solid var(--bg);
		z-index: -2;
		transition: box-shadow .3s;
	}
	
	.header.active .nav {box-shadow: var(--shadow);}

	.nav .menu li + li {border-top: 1px solid var(--bg);}
	
	.nav .menu li a {
		display: block;
		position: relative;
		padding: 10px 5%;
		font-weight: bold;
		background: url(assets/img/ico_arw.svg) right 5% top 50% / 6px auto no-repeat;
	}
	.nav .menu .current-menu-item:not(:has(> * .current-menu-item)):not(.no-current) > a {color: var(--main);}
	
	.nav .menu .menu-item-has-children > a {background: none;}
	.nav .menu .menu-item-has-children > a::before {
		content: "";
		position: absolute;
		right: 5%;
		top: calc(50% - 6px);
		width: 6px;
		height: 12px;
		background: url(assets/img/ico_arw.svg) 50% 50% / contain no-repeat;
		transition: transform .3s;
	}
	.nav .menu .menu-item-has-children:not(.opened) > a::before {transform: rotate(90deg);}
	
	.nav .sub-menu {display: none;}
	
	.nav [class^=".menu-header-"] > .menu > .menu-item-has-children > .sub-menu {background: var(--bg);}
	
	.nav [class^=".menu-header-"] > .menu > .menu-item-has-children > .sub-menu > .menu-item > a {padding-left: 7%;}
	
	.nav [class^=".menu-header-"] > .menu > .menu-item-has-children .sub-menu .sub-menu {background: var(--bg_secondary);}
	
	.nav [class^=".menu-header-"] > .menu > .menu-item-has-children .sub-menu .sub-menu a {padding-left: 9%;}
	
	.header_lang {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 90%;
		margin: 20px auto 0;
	}
}

#sp_toggle {
	position: relative;
	width: 50px;
	height: 50px;
	padding: 20px 0 0;
	box-sizing: border-box;
	background: none;
	border: none;
	outline: none;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	z-index: 2;
	appearance: none;
	-webkit-appearance: none;
}

#sp_toggle::before,
#sp_toggle::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
	left: calc(50% - 15px);
	width: 30px;
	height: 2px;
	border-radius: 1px;
	background: var(--main);
	transition: transform .4s cubic-bezier(.39,1.58,.58,.76);
}
#sp_toggle::before {transform: translateY(-4px);}
#sp_toggle::after {transform: translateY(4px);}

#sp_toggle.active::before {transform: rotate(45deg);}
#sp_toggle.active::after {transform: rotate(135deg);}

#overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(75,61,25,.4);
	z-index: 9;
	animation: fadein .4s 0s ease forwards;
}
@media screen and (max-width: 767.9px) {
	#overlay.active {display: block;}
}

@keyframes fadein {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

/* レイアウト
======================================== */

.inner {
	width: min(1200px, 90vw);
	margin-left: auto;
	margin-right: auto;
}
.block {
	margin-bottom: 64px;
	margin-bottom: min(80px, calc(32px + 5vw));
}
.inner.secondary {max-width: 860px;}

/* トップページ
======================================== */

/* kv */

.kv {
	position: relative;
	width: 90%;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.kv::before {
	content: "";
	position: absolute;
	left: -4%;
	bottom: -5%;
	width: clamp(calc(260px * 1 / 3), 26vw, 260px);
	height: clamp(calc(217px * 1 / 3), 21.7vw, 217px);
	background: url(assets/img/ico_round_lb.png) 0 100% / contain no-repeat;
}

.kv::after {
	content: "";
	position: absolute;
	right: -4%;
	bottom: -5%;
	width: clamp(calc(260px * 1 / 3), 26vw, 260px);
	height: clamp(calc(258px * 1 / 3), 25.8vw, 258px);
	background: url(assets/img/ico_round_rb.png) 100% 100% / contain no-repeat;
}

.kv_txt {
	position: absolute;
	right: max(5%, calc(50% - 600px));
	top: min(200px, 15vw);
	width: 90%;
	font-size: clamp(1.8rem, 3.5vw, 4.2rem);
	font-weight: bold;
	color: #fff;
	text-shadow: 0 0 10px rgba(0,0,0,.5);
	text-align: right;
}

.kv_img {
	border-radius: 24px;
	overflow: hidden;
}

.kv_img img {width: 100%;}

.kv_scroll {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: center;
	position: absolute;
	bottom: -30px;
	left: calc(50% - 135px);
	width: 270px;
	height: 90px;
	font-size: 1.4rem;
	font-weight: bold;
	overflow: hidden;
	text-align: center;
	z-index: 1;
}

.kv_scroll::before {
	content: "";
	display: block;
	width: 28px;
	height: 39px;
	margin: 0 0 5px;
	background: url(assets/img/ico_scroll.svg) 50% 50% / contain no-repeat;
}

.kv_scroll::after {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% - 175px);
	width: 350px;
	height: 350px;
	border-radius: 50%;
	background: var(--bg);
	z-index: -1;
}

@media screen and (max-width: 767.9px) {
	.kv {width: 100%;}

	.kv::before {left: 0;}

	.kv::after {right: 0;}

	.kv_txt {
		
	}
	
	.kv_img {border-radius: 0;}
}

/* 見出し */

.tit_area {
	margin-bottom: 40px;
	text-align: center;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.tit_area_en {
	margin-bottom: 10px;
	font-weight: bold;
	color: var(--main);
}

.tit_area .wp-block-heading {
	line-height: 1.5;
	font-size: min(4rem, 8vw);
	font-weight: bold;
}

.tit_area._ribon .tit_area_en {
	padding-top: 60px;
	background: url(assets/img/ico_ribon.png) 50% 0 / 72px auto no-repeat;
}

@media screen and (max-width: 767.9px) {
	.tit_area._ribon .tit_area_en {
		padding-top: 50px;
		background-size: 56px auto;
	}
}

.top_tit_h3 {
	position: relative;
	padding-bottom: 10px;
	margin-bottom: 20px;
	font-size: min(2.6rem, 5.4vw);
}

.top_tit_h3::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: calc(50% - 15px);
	width: 30px;
	height: 3px;
	background: var(--main);
}

/* プロフィール */

.top_profile {
	position: relative;
	z-index: 1;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.profiles {gap: 4em;}

.profiles_img {
	position: relative;
	width: 160px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 50%;
	box-shadow: var(--shadow);
}

.profiles_img figure {
	border-radius: 50%;
	overflow: hidden;
}

.profiles_img::before {
	content: "";
	position: absolute;
	bottom: -2%;
	left: -5%;
	width: 70px;
	height: 70px;
	background: url(assets/img/ico_squirrel.png) 0 100% / contain no-repeat;
	z-index: 1;
}

.profiles_img._bird::before {
	left: auto;
	right: -5%;
	background: url(assets/img/ico_bird.png) 100% 100% / contain no-repeat;
}

.note_list li {
	padding: 5px 0;
	border-bottom: 2px dashed var(--bg_secondary);
}

/* PC */
@media screen and (min-width: 768px) {
	.top_profile::after {
		content: "";
		position: absolute;
		bottom: max(-72px, -9vw);
		right: max(calc(50% - 50vw + 10px), calc(50% - 650px));
		width: clamp(90px, 18vw, 180px);
		height: clamp(109px, 21.7vw, 217px);
		background: url(assets/img/ico_r.png) 100% 100% / contain no-repeat;
		z-index: -1;
	}
}

/* SP */
@media screen and (max-width: 767.9px) {
	.profiles > .wp-block-column:nth-child(2) {
		position: relative;
	}
	.profiles > .wp-block-column:nth-child(2)::after {
		content: "";
		position: absolute;
		bottom: 85%;
		right: max(calc(50% - 50vw + 10px), calc(50% - 650px));
		width: clamp(90px, 18vw, 180px);
		height: clamp(109px, 21.7vw, 217px);
		background: url(assets/img/ico_r.png) 100% 100% / contain no-repeat;
		z-index: -1;
	}
}

/* 事業内容 */

.top_service {
	position: relative;
	background: url(assets/img/ico_rabbit.png) right max(2%, calc(50% - 550px)) bottom -1px / 100px auto no-repeat;
	z-index: 1;
}

@media screen and (max-width: 767.9px) {
	.top_service {
		background-size: 70px auto;
	}
}

.top_service::before {
	content: "";
	position: absolute;
	top: max(-106px, -20vw);
	left: max(calc(50% - 50vw + 10px), calc(50% - 650px));
	width: clamp(90px, 18vw, 180px);
	height: clamp(96px, 21.7vw, 192px);
	background: url(assets/img/ico_l.png) 100% 100% / contain no-repeat;
	z-index: -1;
}

.top_service_col {gap: 2em 4em;}

.img_radius {
	display: inline-block;
	border-radius: 24px;
	overflow: hidden;
}

/* スライダー */

.posts_slider .posts_post {
	width: min(370px, 80vw);
	margin: 12px;
}

@media screen and (min-width: 768px) {
	.posts_slider._wide .posts_post {
		width: min(860px, 80vw);
	}

	.posts_slider._wide .posts_post > a {
		display: flex;
	}

	.posts_slider._wide .posts_post .img {
		flex-shrink: 0;
		width: 42%;
	}
	
	.posts_slider._wide .posts_post .img img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	
	.posts_slider._wide .posts_post .txt_area {
		align-self: center;
		padding-left: 30px;
	}
	
	.posts_slider._wide .slick-prev {left: max(2%, calc(50% - 515px));}
	.posts_slider._wide .slick-next {right: max(2%, calc(50% - 515px));}
}

/* slick 調整 */

.slick-arrow {
	top: calc(50% - 25px);
	width: 50px;
	height: 50px;
	border-radius: 50%;
	box-sizing: border-box;
	background: url(assets/img/ico_arw.svg) 50% 50% / 8px auto no-repeat var(--bg);
	border: 2px solid var(--border);
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	transform: none;
	transition: transform .3s, background .3s, border .3s;
	z-index: 2;
}

.slick-prev {transform: rotate(180deg);}

@media (hover: hover) {
	.slick-arrow:hover,
	.slick-arrow:focus {
		background: url(assets/img/ico_arw_white.svg) 50% 50% / 8px auto no-repeat var(--main);
		border-color: var(--main);
		transform: scale(.9);
	}
	.slick-prev:hover,
	.slick-prev:focus {transform: rotate(180deg) scale(.9);}
}

@media screen and (max-width: 767.9px) {
	.slick-arrow {
		top: calc(50% - 20px);
		width: 40px;
		height: 40px;
	}
}

.slick-prev {left: 2%;}
.slick-next {right: 2%;}

.slick-track {display: flex;}
.slick-slide {height: auto!important;}

.slick-dots {bottom: -35px;}

.slick-dots li {
	width: auto;
	height: auto;
	margin: 0 10px;
}

.slick-dots li button {
	width: 12px;
	height: 12px;
	padding: 0;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--border);
	appearance: none;
	-webkit-appearance: none;
}

.slick-dots li.slick-active button {
	border-color: var(--main);
	background: var(--main);
}

.slick-dots li button::before {display: none;}

/* 日々のわくわく */

.top_blog {
	position: relative;
	background: url(assets/img/bg_board.png);
}

.top_blog::before,
.top_blog::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: 80px;
	background: url(assets/img/bg_flower_border.png) 0 50% / auto 100% repeat-x;
	z-index: 1;
}

.top_blog::before {top: -40px;}
.top_blog::after {bottom: -40px;}

/* Recruit */

@media screen and (min-width: 768px) {
	.top_recruit_col {
		flex-direction: row-reverse;
	}
}

/* 下層ページ
======================================== */

.wrapper {
	width: min(1200px, 90vw);
	margin: 0 auto 60px;
	padding: 40px 0 0;
}

.wrapper:not(.col2) {transform: rotate(0.05deg); /* ジャギー対策 */}

.wrapper.col2 .contents,
.side {transform: rotate(0.05deg); /* ジャギー対策 */}

@media screen and (min-width: 768px) {
	.wrapper {
		margin-bottom: 80px;
		padding-top: 60px;
	}
	
	.wrapper.col2 {
		display: flex;
		justify-content: space-between;
	}

	.wrapper.col2 .contents {width: 73%;}

	.side {width: 22%;}
}

@media screen and (max-width: 767.9px) {
	.side {margin-top: 60px;}
}

/* kv_un */

.kv_un {
	display: flex;
	flex-direction: column;
	position: relative;
	padding: 10px 0;
	background: url(assets/img/ico_rabbit.png) right max(2%, calc(50% - 550px)) bottom -1px / 100px auto no-repeat, url(assets/img/bg_board.png);
	transform: rotate(.05deg); /* ジャギー対策 */
}

.kv_un::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -40px;
	width: 100%;
	height: 80px;
	background: url(assets/img/bg_flower_border.png) 0 50% / auto 100% repeat-x;
	z-index: 1;
}

@media screen and (max-width: 767.9px) {
	.kv_un {background-size: 50px auto, auto;}
	.kv_un::after {
		bottom: -25px;
		height: 50px;
	}
}

.breadcrumb {
	display: flex;
	margin: 0;
	font-size: 1.2rem;
	list-style: none;
	overflow-x: auto;
	white-space: nowrap;
}

.breadcrumb li + li::before {
	content: ">";
	margin: 0 1em;
}

.breadcrumb li a {text-decoration: none;}

@media (hover: hover) {
	.breadcrumb li a:hover {text-decoration: underline;}
}

.kv_un .txt {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: clamp(80px, 20vw, 140px);
	padding: 10px 0;
}

.kv_un .tit {
	line-height: 1.5;
	font-size: clamp(2.8rem, 6.4vw, 4rem);
	font-weight: bold;
}

/* 投稿一覧 */

.posts {
	display: flex;
	flex-wrap: wrap;
	gap: 40px 36px;
}

.posts .posts_post {width: 100%;}

@media screen and (min-width: 650px) {
	.posts .posts_post {
		display: flex;
		width: calc(50% - 18px);
	}
}

.posts_post a {
	display: block;
	height: 100%;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: var(--shadow);
	text-decoration: none;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.posts_post .img {overflow: hidden;}

.posts_post .img img {
	display: block;
	width: 100%;
	aspect-ratio: 40 / 21;
	object-fit: cover;
	transition: transform .3s;
}

@media (hover: hover) {
	.posts_post a:link:hover .img img {transform: scale(1.03);}
}

.posts_post .txt_area {
	display: flex;
	flex-wrap: wrap;
	padding: 15px 20px 20px;
}

.posts_post .txt_area time {
	margin-right: 10px;
	font-size: 1.4rem;
}

.categories {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 5px;
	margin: 0;
	line-height: 1;
	list-style: none;
}

.categories_link {
	display: inline-block;
	padding: 3px 5px;
	border-radius: 5px;
	line-height: 1.5;
	font-size: 1.2rem;
	font-weight: bold;
	color: #fff;
	background: var(--main);
	text-decoration: none;
}

.posts_post_tit,
.wrapper .posts_post_tit{
	width: 100%;
	margin: 5px 0;
	padding: 0;
	border: none;
	font-size: 2.2rem;
	font-weight: bold;
}

/* 見出し */

.wrapper h2:not(.no_style) {
	margin: 40px 0 20px;
	padding: 0 0 0 15px;
	line-height: 1.5;
	font-size: 2.4rem;
	font-weight: bold;
	border-left: 2px solid var(--main);
}

.wrapper h3:not(.no_style) {
	position: relative;
	margin: 20px 0 15px;
	margin: min(30px, 4.5vw) 0 min(20px, 2vw);
	padding: 0 0 0 22px;
	line-height: 1.5;
	font-size: 2rem;
	font-size: clamp(1.8rem, 4.4vw, 2.4rem);
	font-weight: bold;
}
.wrapper h3:not(.no_style)::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(50% - 1.5px);
	width: 14px;
	height: 3px;
	background: var(--main);
}

.wrapper h4:not(.no_style) {
	margin: 20px 0 15px;
	padding: 0 0 4px;
	line-height: 1.5;
	font-size: 1.8rem;
	font-weight: bold;
}

@media screen and (min-width: 768px) {
	.wrapper h2:not(.no_style) {
		margin: 60px 0 30px;
		font-size: 2.8rem;
	}
}

/* 投稿タイトル */

.page_tit_area {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding-bottom: 10px;
	margin-bottom: 20px;
	border-bottom: 2px solid var(--border);
}

.page_tit_area time {margin-right: 15px;}

.entry_title {
	width: 100%;
	margin: 10px 0 0;
	line-height: 1.5;
	font-size: 3rem;
	font-weight: bold;
}

.page_tit_area .categories_link {font-size: 1.4rem;}

/* ページャー */
ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	margin: 60px 0 0;
	list-style: none;
}
ul.page-numbers .page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 40px;
	padding: 0 12px;
	margin: 0 4px;
	font-size: 1.4rem;
	font-weight: 500;
	text-decoration: none;
}
ul.page-numbers a.page-numbers {
	border-radius: 4px;
	background: #fff;
	border: 1px solid var(--border);
}
ul.page-numbers .page-numbers.current {
	font-weight: bold;
	color: var(--main);
}

/* side */

.side > .wp-block-heading:first-child {margin-top: 0;}

.side h2 {font-size: 2rem;}

@media screen and (min-width: 768px) {
	.side h2 {font-size: 2.2rem;}
}

.sidebar_list {
	margin-left: 0;
	list-style: none;
}

.sidebar_list > li {
	position: relative;
	background: url(assets/img/ico_arw.svg) 100% 50% / 6px auto no-repeat;
	z-index: 1;
}

.sidebar_list > li + li {border-top: 1px solid var(--border);}

.sidebar_list > li a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.wp-block-categories-list > .cat-item a {
	display: inline-block;
	padding: 8px 0;
}

.wp-block-latest-posts__list > li {
	padding: 8px 16px 8px 0;
	line-height: 1.5;
}

.wp-block-latest-posts__list > li a {display: block;}
.wp-block-latest-posts__list > li .wp-block-latest-posts__post-date {display: inline-block;}

.sidebar_list > li a {text-decoration: none;}
@media (hover: hover) {
	.sidebar_list > li a:hover {text-decoration: underline;}
}

.side .wp-block-search__label {display: none;}

.wp-block-search__input {
	padding: 8px;
	border-radius: 5px 0 0 5px;
	font-size: 1.6rem;
	background: #fff;
	border: 2px solid var(--border);
}

.wp-block-search__button {
	flex-shrink: 0;
	width: 36px;
	margin: 0;
	border-radius: 0 5px 5px 0;
	background: url(assets/img/ico_search.svg) 50% 50% / 16px auto no-repeat var(--bg_secondary);
	border: 2px solid var(--border);
	border-left: none;
	appearance: none;
	-webkit-appearance: none;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
}

/* 引用 */

.wp-block-quote,
.bg_text_area {
	position: relative;
	margin: 30px 0;
	padding: 28px min(35px, 5%);
	border-radius: 16px;
	background: var(--bg_secondary);
}

.wp-block-quote::before,
.wp-block-quote::after {
	content: "";
	position: absolute;
	width: 40px;
	height: 30px;
	background: url(assets/img/ico_quote.svg) 50% 50% / contain no-repeat;
}
.wp-block-quote::before {
	left: -1%;
	top: -10px;
}
.wp-block-quote::after {
	right: -1%;
	bottom: -10px;
	transform: rotate(180deg);
}
@media screen and (max-width: 767.9px) {
	.wp-block-quote::before,
	.wp-block-quote::after {
		width: 32px;
		height: 24px;
	}
}

.bg_text_area > .wp-block-heading:first-child,
.bg_text_area .wp-block-group__inner-container > .wp-block-heading:first-child {margin-top: 0;}

/* ブログカード */

.article_box_in {
	display: inline-flex;
	border-radius: 16px;
	background: var(--bg);
	border: 2px solid var(--border);
	text-decoration: none;
	overflow: hidden;
}

.article_box_in .img {
	flex-shrink: 0;
	width: 30%;
	max-width: 300px;
}

.article_box_in .img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.article_box_in .txt_area {
	align-self: center;
	padding: 16px 5%;
}

.article_box_catch {
	display: inline-block;
	padding: 1px 5px;
	margin-bottom: 5px;
	font-size: 1.2rem;
	font-weight: bold;
	color: #fff;
	background: var(--main);
}

/* テーブル */

.wp-block-table table {
	width: 100%;
	margin: 0 auto;
	border: none;
	border-collapse: collapse;
	background: #fff;
	border-left: 1px solid var(--border);
	border-top: 1px solid var(--border);
}

.wp-block-table th,
.wp-block-table td {
	padding: 8px min(12px, 2%);
	border: none;
	border-right: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	text-align: left;
}

.wp-block-table th {
	font-weight: bold;
	background: var(--bg_secondary);
}

.wp-block-table thead {border-bottom: none;}

@media screen and (max-width: 560px) {
	.wp-block-table.sp_tbr table,
	.wp-block-table.sp_tbr thead,
	.wp-block-table.sp_tbr tbody,
	.wp-block-table.sp_tbr tr,
	.wp-block-table.sp_tbr td,
	.wp-block-table.sp_tbr th {display: block;}
	
	.wp-block-table.sp_scroll {overflow-x: auto;}
	
	.wp-block-table.sp_scroll table {
		min-width: 560px;
	}
}

/* 目次 */

#ez-toc-container {
	background: #fff;
	border: 2px solid var(--border);
}
#ez-toc-container .ez-toc-js-icon-con {background: var(--bg_secondary);}

/* お問い合わせ */

.form {border: none;}

.form > label {
	display: block;
	position: relative;
	padding: 8px 50px 8px 0;
	font-weight: bold;
}

.form > label .req {
	display: inline-block;
	position: absolute;
	right: 10px;
	top: calc(50% - 11px);
	padding: 3px 5px 2px;
	line-height: 1.5;
	font-size: 1rem;
	font-weight: bold;
	color: #fff;
	background: var(--pink);
}

form input[type=text],
form input[type=email],
form input[type=tel],
form textarea {
	width: 100%;
	padding: 8px;
	box-sizing: border-box;
	border-radius: 5px;
	font-size: 1.6rem;
	border: 2px solid var(--border);
}

.form .wpcf7-spinner {
	position: absolute;
}

input.form_btn,
.form-submit input.submit {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	width: 320px;
	width: min(90vw, 320px);
	max-width: 100%;
	min-height: 55px;
	margin-left: auto;
	margin-right: auto;
	padding: 10px 20px;
	border-radius: 60px;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-size: 1.6rem;
	font-weight: bold;
	color: #fff;
	background: url(assets/img/ico_arw_white.svg) right 20px top 50% / 7px auto no-repeat var(--main);
	border: 2px solid var(--main);
	box-shadow: var(--shadow);
	text-align: center;
	cursor: pointer;
	transition: color .3s, background .3s, transform .3s;
}

@media (hover: hover) {
	input.form_btn:hover,
	.form-submit input.submit:hover {
		color: var(--main);
		background-image: url(assets/img/ico_arw.svg);
		background-color: #fff;
		transform: scale(.96);
	}
}

.grecaptcha-badge {
	transform: translateX(100%);
	transition: transform .4s, right .4s!important;
}
.grecaptcha-badge.visible {
	transform: none;
}

@media screen and (max-width: 767.9px) {
	.form .cont + label {margin-top: 12px;}
}

@media screen and (min-width: 768px) {
	.form {
		display: grid;
		grid-template-columns: 30% 1fr;
		align-items: center;
		grid-gap: 12px;
	}

	.form > label {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	
	.form .req {font-size: 1.2rem;}

	.form .cont {padding: 8px;}

	.form .wide {grid-column: 1 / 3;}
}

/* コメント */

.commets-list {
	margin-left: 0;
	list-style: none;
}

.comment-body {
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 2px solid var(--border);
}

.commets-list .children {list-style: none;}

.comment-meta {
	margin-bottom: 10px;
	font-size: 1.4rem;
}

.comment-meta a {text-decoration: none;}

@media (hover: hover) {.comment-meta a:hover {text-decoration: underline;}}

.comment-body .reply {margin-top: 10px;}

#cancel-comment-reply-link {
	font-size: 1.6rem;
	font-weight: normal;
}

.comment-form > * {margin-bottom: 10px;}

.comment-form label:not([for="wp-comment-cookies-consent"]) {font-weight: bold;}

@media screen and (min-width: 768px) {
	.comment-form > [class^="comment-form-"]:not(.comment-form-cookies-consent) {
		display: flex;
		align-items: center;
	}
	
	.comment-form > [class^="comment-form-"]:not(.comment-form-cookies-consent) > label {width: 30%;}
	
	.comment-form > [class^="comment-form-"]:not(.comment-form-cookies-consent) > textarea,
	.comment-form > [class^="comment-form-"]:not(.comment-form-cookies-consent) > input {flex-grow: 1;}
	
	.comment-form > * {margin-bottom: 20px;}
}

/* フッター
======================================== */

.cv_area {
	position: relative;
	padding: min(40px, 7vw) min(60px, 5%);
	box-sizing: border-box;
	border-radius: 24px;
	background: url(assets/img/bg_board.png);
}

.cv_area::before {
	content: "";
	position: absolute;
	left: -4%;
	bottom: -5%;
	width: clamp(130px, calc(26vw * 2 / 3), 260px);
	height: clamp(108px, calc(21.7vw * 2 / 3), 217px);
	background: url(assets/img/ico_round_lb.png) 0 100% / contain no-repeat;
}

.cv_area::after {
	content: "";
	position: absolute;
	right: -4%;
	bottom: -5%;
	width: clamp(130px, calc(26vw * 2 / 3), 260px);
	height: clamp(129px, calc(25.8vw * 2 / 3), 258px);
	background: url(assets/img/ico_round_rb.png) 100% 100% / contain no-repeat;
}

.footer {
	position: relative;
	padding: 60px 0 10px;
}

.footer_top {
	display: flex;
	transform: rotate(.05deg); /* ジャギー対策 */
}

@media screen and (max-width: 767.9px) {
	.footer_top {
		flex-direction: column;
		align-items: center;
	}
}

.sns_list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	list-style: none;
}

.sns_list_item {
	width: 50px;
	margin: 0 15px 15px 0;
}

@media screen and (min-width: 768px) {
	.footer [class^="menu-footer-"]{margin: 0 0 0 auto;}
}

.footer .menu {
	columns: 2;
	margin: 0;
	list-style: none;
}

.footer .menu > li {margin: 0 0 5px 10px;}

.footer .menu > li > a {
	font-size: 1.8rem;
	font-weight: bold;
}

.footer .menu a {text-decoration: none;}

@media (hover: hover) {.footer .menu a:hover {text-decoration: underline;}}

.footer .sub-menu {
	margin-left: 1em;
	list-style: none;
}

.footer .copy {
	width: 100%;
	margin: 30px 0 0;
	font-size: 1.3rem;
	text-align: center;
	transform: rotate(.05deg); /* ジャギー対策 */
}

#pagetop {
	position: fixed;
	right: 5%;
	bottom: 0;
	margin-bottom: 20px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	white-space: nowrap;
	overflow: hidden;
	text-indent: 100%;
	background: url(assets/img/ico_arw.svg) 50% 50% / 7px auto no-repeat var(--bg);
	border: 1px solid var(--border);
	transform: translateY(20px) rotate(-90deg);
	opacity: 0;
	transition: transform .3s, opacity .3s, background .3s, border .3s;
	pointer-events: none;
	outline: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	z-index: 8;
}
#pagetop.visible {
	transform: rotate(-90deg);
	opacity: 1;
	pointer-events: auto;
}
#pagetop.foot {
	position: absolute;
	bottom: calc(100% - 45px);
}
@media (hover: hover) {
	#pagetop:hover {
		background-image: url(assets/img/ico_arw_white.svg);
		background-color: var(--main);
		border-color: var(--main);
		transform: rotate(-90deg) scale(.9);
	}
}

/* 汎用スタイル
======================================== */

.btn {
	text-align: center;
	transform: rotate(.05deg); /* ジャギー対策 */
}

.btn a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-weight: bold;
	text-decoration: none;
}

.btn a::after {
	content: "";
	display: block;
	width: 60px;
	height: 60px;
	margin-left: 30px;
	border-radius: 50%;
	background: url(assets/img/ico_arw.svg) 50% 50% / 8px auto no-repeat var(--bg_secondary);
	border: 2px solid var(--border);
	transition: transform .3s, background .3s, border .3s;
}

.btn.secondary a::after {background-color: #fff;}

.btn.cv a::after {
	background-image: url(assets/img/ico_cv.svg);
	background-size: 22px auto;
	background-position: 45% 52%;
}

@media (hover: hover) {
	.btn a:hover::after {
		background-image: url(assets/img/ico_arw_white.svg);
		background-color: var(--main);
		transform: scale(.9);
		border-color: var(--main);
	}
	
	.btn.cv a:hover::after {
		background-image: url(assets/img/ico_cv_white.svg);
	}
}

@media screen and (max-width: 767.9px) {
	.btn a::after {
		width: 50px;
		height: 50px;
		margin-left: 20px;
	}
}

.arw a {
	padding-left: 1em;
	background: url(assets/img/ico_arw.svg) 0 .3em / auto .8em no-repeat;
}

.blank a {
	padding-left: 1em;
	background: url(assets/img/ico_blank.svg) 0 .4em / auto .8em no-repeat;
}
span.blank {margin-left: .2em;}

.inline {display: inline-block;}

.fadeup,
.prx > * {transition: transform .4s, opacity .4s;}
.fadeup:not(.visible),
.prx:not(.visible) > * {
	transform: translateY(20px);
	opacity: 0;
}

.prx > *:nth-child(2) {transition-delay: .1s;}
.prx > *:nth-child(3) {transition-delay: .2s;}
.prx > *:nth-child(4) {transition-delay: .3s;}
.prx > *:nth-child(5) {transition-delay: .4s;}
.prx > *:nth-child(6) {transition-delay: .5s;}
.prx > *:nth-child(7) {transition-delay: .6s;}
.prx > *:nth-child(8) {transition-delay: .7s;}
.prx > *:nth-child(9) {transition-delay: .8s;}
.prx > *:nth-child(10) {transition-delay: .9s;}

@media (hover: hover) {
	.overimg {transition: opacity .3s;}
	.overimg:hover {opacity: .8;}
}

.mb0 {margin-bottom: 0px!important;}
.mb10 {margin-bottom: 10px!important;}
.mb20 {margin-bottom: 20px!important;}
.mb30 {margin-bottom: 30px!important;}
.mb40 {margin-bottom: 40px!important;}
.mb50 {margin-bottom: 50px!important;}
.mb60 {margin-bottom: 60px!important;}
.mb70 {margin-bottom: 70px!important;}
.mb80 {margin-bottom: 80px!important;}
.mb90 {margin-bottom: 90px!important;}
.mb100 {margin-bottom: 100px!important;}
.mb110 {margin-bottom: 110px!important;}
.mb120 {margin-bottom: 120px!important;}

@media screen and (max-width: 767.9px) {
	.mb10 {margin-bottom: 5px!important;}
	.mb20 {margin-bottom: 10px!important;}
	.mb30 {margin-bottom: 15px!important;}
	.mb40 {margin-bottom: 20px!important;}
	.mb50 {margin-bottom: 25px!important;}
	.mb60 {margin-bottom: 30px!important;}
	.mb70 {margin-bottom: 35px!important;}
	.mb80 {margin-bottom: 40px!important;}
	.mb90 {margin-bottom: 45px!important;}
	.mb100 {margin-bottom: 50px!important;}
	.mb110 {margin-bottom: 55px!important;}
	.mb120 {margin-bottom: 60px!important;}

	.mb_sp_0 {margin-bottom: 0px!important;}
	.mb_sp_10 {margin-bottom: 10px!important;}
	.mb_sp_20 {margin-bottom: 20px!important;}
	.mb_sp_30 {margin-bottom: 30px!important;}
	.mb_sp_40 {margin-bottom: 40px!important;}
	.mb_sp_50 {margin-bottom: 50px!important;}
	.mb_sp_60 {margin-bottom: 60px!important;}
	.mb_sp_70 {margin-bottom: 70px!important;}
	.mb_sp_80 {margin-bottom: 80px!important;}
	.mb_sp_90 {margin-bottom: 90px!important;}
	.mb_sp_100 {margin-bottom: 100px!important;}
	.mb_sp_110 {margin-bottom: 110px!important;}
	.mb_sp_120 {margin-bottom: 120px!important;}
}

.mt0 {margin-top: 0px!important;}
.mt10 {margin-top: 10px!important;}
.mt20 {margin-top: 20px!important;}
.mt30 {margin-top: 30px!important;}
.mt40 {margin-top: 40px!important;}
.mt50 {margin-top: 50px!important;}
.mt60 {margin-top: 60px!important;}
.mt70 {margin-top: 70px!important;}
.mt80 {margin-top: 80px!important;}
.mt90 {margin-top: 90px!important;}
.mt100 {margin-top: 100px!important;}
.mt110 {margin-top: 110px!important;}
.mt120 {margin-top: 120px!important;}

@media screen and (max-width: 767.9px) {
	.mt10 {margin-top: 5px!important;}
	.mt20 {margin-top: 10px!important;}
	.mt30 {margin-top: 15px!important;}
	.mt40 {margin-top: 20px!important;}
	.mt50 {margin-top: 25px!important;}
	.mt60 {margin-top: 30px!important;}
	.mt70 {margin-top: 35px!important;}
	.mt80 {margin-top: 40px!important;}
	.mt90 {margin-top: 45px!important;}
	.mt100 {margin-top: 50px!important;}
	.mt110 {margin-top: 55px!important;}
	.mt120 {margin-top: 60px!important;}

	.mt_sp_0 {margin-top: 0px!important;}
	.mt_sp_10 {margin-top: 10px!important;}
	.mt_sp_20 {margin-top: 20px!important;}
	.mt_sp_30 {margin-top: 30px!important;}
	.mt_sp_40 {margin-top: 40px!important;}
	.mt_sp_50 {margin-top: 50px!important;}
	.mt_sp_60 {margin-top: 60px!important;}
	.mt_sp_70 {margin-top: 70px!important;}
	.mt_sp_80 {margin-top: 80px!important;}
	.mt_sp_90 {margin-top: 90px!important;}
	.mt_sp_100 {margin-top: 100px!important;}
	.mt_sp_110 {margin-top: 110px!important;}
	.mt_sp_120 {margin-top: 120px!important;}
}

.p10 {padding: 10px!important;}
.p20 {padding: 20px!important;}
.p30 {padding: 30px!important;}
.p40 {padding: 40px!important;}
.p50 {padding: 50px!important;}
.p60 {padding: 60px!important;}
.p70 {padding: 70px!important;}
.p80 {padding: 80px!important;}
.p90 {padding: 90px!important;}
.p100 {padding: 100px!important;}
.p110 {padding: 110px!important;}
.p120 {padding: 120px!important;}

@media screen and (max-width: 767.9px) {
	.p10 {padding: 5px!important;}
	.p20 {padding: 10px!important;}
	.p30 {padding: 15px!important;}
	.p40 {padding: 20px!important;}
	.p50 {padding: 25px!important;}
	.p60 {padding: 30px!important;}
	.p70 {padding: 35px!important;}
	.p80 {padding: 40px!important;}
	.p90 {padding: 45px!important;}
	.p100 {padding: 50px!important;}
	.p110 {padding: 55px!important;}
	.p120 {padding: 60px!important;}

	.p_sp_10 {padding: 10px!important;}
	.p_sp_20 {padding: 20px!important;}
	.p_sp_30 {padding: 30px!important;}
	.p_sp_40 {padding: 40px!important;}
	.p_sp_50 {padding: 50px!important;}
	.p_sp_60 {padding: 60px!important;}
	.p_sp_70 {padding: 70px!important;}
	.p_sp_80 {padding: 80px!important;}
	.p_sp_90 {padding: 90px!important;}
	.p_sp_100 {padding: 100px!important;}
	.p_sp_110 {padding: 110px!important;}
	.p_sp_120 {padding: 120px!important;}
}

.pb10 {padding-bottom: 10px!important;}
.pb20 {padding-bottom: 20px!important;}
.pb30 {padding-bottom: 30px!important;}
.pb40 {padding-bottom: 40px!important;}
.pb50 {padding-bottom: 50px!important;}
.pb60 {padding-bottom: 60px!important;}
.pb70 {padding-bottom: 70px!important;}
.pb80 {padding-bottom: 80px!important;}
.pb90 {padding-bottom: 90px!important;}
.pb100 {padding-bottom: 100px!important;}
.pb110 {padding-bottom: 110px!important;}
.pb120 {padding-bottom: 120px!important;}

@media screen and (max-width: 767.9px) {
	.pb10 {padding-bottom: 5px!important;}
	.pb20 {padding-bottom: 10px!important;}
	.pb30 {padding-bottom: 15px!important;}
	.pb40 {padding-bottom: 20px!important;}
	.pb50 {padding-bottom: 25px!important;}
	.pb60 {padding-bottom: 30px!important;}
	.pb70 {padding-bottom: 35px!important;}
	.pb80 {padding-bottom: 40px!important;}
	.pb90 {padding-bottom: 45px!important;}
	.pb100 {padding-bottom: 50px!important;}
	.pb110 {padding-bottom: 55px!important;}
	.pb120 {padding-bottom: 60px!important;}

	.pb_sp_10 {padding-bottom: 10px!important;}
	.pb_sp_20 {padding-bottom: 20px!important;}
	.pb_sp_30 {padding-bottom: 30px!important;}
	.pb_sp_40 {padding-bottom: 40px!important;}
	.pb_sp_50 {padding-bottom: 50px!important;}
	.pb_sp_60 {padding-bottom: 60px!important;}
	.pb_sp_70 {padding-bottom: 70px!important;}
	.pb_sp_80 {padding-bottom: 80px!important;}
	.pb_sp_90 {padding-bottom: 90px!important;}
	.pb_sp_100 {padding-bottom: 100px!important;}
	.pb_sp_110 {padding-bottom: 110px!important;}
	.pb_sp_120 {padding-bottom: 120px!important;}
}

.pt10 {padding-top: 10px!important;}
.pt20 {padding-top: 20px!important;}
.pt30 {padding-top: 30px!important;}
.pt40 {padding-top: 40px!important;}
.pt50 {padding-top: 50px!important;}
.pt60 {padding-top: 60px!important;}
.pt70 {padding-top: 70px!important;}
.pt80 {padding-top: 80px!important;}
.pt90 {padding-top: 90px!important;}
.pt100 {padding-top: 100px!important;}
.pt110 {padding-top: 110px!important;}
.pt120 {padding-top: 120px!important;}

@media screen and (max-width: 767.9px) {
	.pt10 {padding-top: 5px!important;}
	.pt20 {padding-top: 10px!important;}
	.pt30 {padding-top: 15px!important;}
	.pt40 {padding-top: 20px!important;}
	.pt50 {padding-top: 25px!important;}
	.pt60 {padding-top: 30px!important;}
	.pt70 {padding-top: 35px!important;}
	.pt80 {padding-top: 40px!important;}
	.pt90 {padding-top: 45px!important;}
	.pt100 {padding-top: 50px!important;}
	.pt110 {padding-top: 55px!important;}
	.pt120 {padding-top: 60px!important;}

	.pt_sp_10 {padding-top: 10px!important;}
	.pt_sp_20 {padding-top: 20px!important;}
	.pt_sp_30 {padding-top: 30px!important;}
	.pt_sp_40 {padding-top: 40px!important;}
	.pt_sp_50 {padding-top: 50px!important;}
	.pt_sp_60 {padding-top: 60px!important;}
	.pt_sp_70 {padding-top: 70px!important;}
	.pt_sp_80 {padding-top: 80px!important;}
	.pt_sp_90 {padding-top: 90px!important;}
	.pt_sp_100 {padding-top: 100px!important;}
	.pt_sp_110 {padding-top: 110px!important;}
	.pt_sp_120 {padding-top: 120px!important;}
}

.fs_10 {font-size: 1rem!important;}
.fs_11 {font-size: 1.1rem!important;}
.fs_12 {font-size: 1.2rem!important;}
.fs_13 {font-size: 1.3rem!important;}
.fs_14 {font-size: 1.4rem!important;}
.fs_15 {font-size: 1.5rem!important;}
.fs_16 {font-size: 1.6rem!important;}
.fs_17 {font-size: 1.7rem!important;}
.fs_18 {font-size: 1.8rem!important;}
.fs_19 {font-size: 1.9rem!important;}
.fs_20 {font-size: 2.0rem!important;}
.fs_22 {font-size: 2.2rem!important;}
.fs_24 {font-size: 2.4rem!important;}
.fs_26 {font-size: 2.6rem!important;}
.fs_28 {font-size: 2.8rem!important;}
.fs_30 {font-size: 3.0rem!important;}
.fs_32 {font-size: 3.2rem!important;}
.fs_34 {font-size: 3.4rem!important;}
.fs_36 {font-size: 3.6rem!important;}
.fs_38 {font-size: 3.8rem!important;}
.fs_40 {font-size: 4.0rem!important;}

@media screen and (max-width: 767.9px) {
	.fs_sp_10 {font-size: 1rem!important;}
	.fs_sp_11 {font-size: 1.1rem!important;}
	.fs_sp_12 {font-size: 1.2rem!important;}
	.fs_sp_13 {font-size: 1.3rem!important;}
	.fs_sp_14 {font-size: 1.4rem!important;}
	.fs_sp_15 {font-size: 1.5rem!important;}
	.fs_sp_16 {font-size: 1.6rem!important;}
	.fs_sp_17 {font-size: 1.7rem!important;}
	.fs_sp_18 {font-size: 1.8rem!important;}
	.fs_sp_19 {font-size: 1.9rem!important;}
	.fs_sp_20 {font-size: 2.0rem!important;}
	.fs_sp_22 {font-size: 2.2rem!important;}
	.fs_sp_24 {font-size: 2.4rem!important;}
	.fs_sp_26 {font-size: 2.6rem!important;}
	.fs_sp_28 {font-size: 2.8rem!important;}
	.fs_sp_30 {font-size: 3.0rem!important;}
	.fs_sp_32 {font-size: 3.2rem!important;}
	.fs_sp_34 {font-size: 3.4rem!important;}
	.fs_sp_36 {font-size: 3.6rem!important;}
	.fs_sp_38 {font-size: 3.8rem!important;}
	.fs_sp_40 {font-size: 4.0rem!important;}
}

.lh_10 {line-height: 1!important;}
.lh_12 {line-height: 1.2!important;}
.lh_14 {line-height: 1.4!important;}
.lh_15 {line-height: 1.5!important;}
.lh_16 {line-height: 1.6!important;}
.lh_18 {line-height: 1.8!important;}
.lh_20 {line-height: 2!important;}

.color_white {color: #fff!important;}

.tal {text-align: left!important;}
.tac {text-align: center!important;}
.tar {text-align: right!important;}

@media screen and (max-width: 767.9px) {
	.sp_tal {text-align: left!important;}
	.sp_tac {text-align: center!important;}
	.sp_tar {text-align: right!important;}
}

.fw_normal {font-weight: 400!important;}
.fw_medium {font-weight: 500!important;}
.fw_bold {font-weight: 600!important;}

.td_none {text-decoration: none!important;}
.td_underline {text-decoration: underline!important;}

@media screen and (min-width: 768px) {
	.pc_none {display: none!important;}
}
@media screen and (max-width: 767.9px) {
	.sp_none {display: none!important;}
}

.hidden {display: none!important;}
.visibility_hidden {visibility: hidden!important;}

.clearfix::after {
	content: "";
	display: block;
	clear: both;
}