/*
 * こうの法律事務所 本体HP の見た目。
 * 旧 WordPress（SWELL）のサイト設定（色・見出し・吹き出しの配色など）の値に合わせて、
 * 同じクラス名で書き直したもの。SWELL の CSS ファイルそのものは使っていない。
 */

:root {
	--color_main: #00afcc;
	--color_text: #222222;
	--color_link: #1176d4;
	--color_htag: #00afcc;
	--color_bg: #faf9f5;
	--color_main_thin: rgba(0, 219, 255, 0.05);
	--color_main_dark: rgba(0, 131, 153, 1);
	--color_gray: rgba(200, 200, 200, 0.15);
	--color_border: rgba(200, 200, 200, 0.5);
	--color_list_check: #00afcc;
	--color_list_num: #00afcc;
	--color_faq_q: #d55656;
	--color_faq_a: #6599b7;
	--color_deep01: #e44141;
	--color_deep02: #3d79d5;
	--color_deep03: #63a84d;
	--color_deep04: #f09f4d;
	--color_pale01: #fff2f0;
	--color_pale02: #f3f8fd;
	--color_pale03: #f1f9ee;
	--color_pale04: #fdf9ee;
	--color_mark_yellow: #fcf69f;
	--color_icon_caution: #f7da38;
	--color_icon_good: #3cd250;
	--color_icon_memo: #00afcc;
	--color_icon_check: #00afcc;
	--color_icon_pen: #7a7a7a;
	--color_header_bg: #ffffff;
	--color_header_text: #222222;
	--color_footer_bg: #00afcc;
	--color_footer_text: #ffffff;
	--container_size: 1200px;
	--article_size: 900px;
	--font: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--fz-content: 4.2vw;
	--pad-container: 4vw;
	--header-h: 0px;
}

@media (min-width: 600px) {
	:root {
		--fz-content: 18px;
	}
}
@media (min-width: 960px) {
	:root {
		--pad-container: 48px;
	}
}

/* ------------------------------------------------------------ 基本 */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color_bg);
	color: var(--color_text);
	font-family: var(--font);
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.1px;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: var(--color_link);
}

figure {
	margin: 0;
}

button {
	font: inherit;
}

.l-container {
	max-width: calc(var(--container_size) + var(--pad-container) * 2);
	margin-inline: auto;
	padding-inline: var(--pad-container);
}

.l-article {
	max-width: calc(var(--article_size) + var(--pad-container) * 2);
	margin-inline: auto;
}

.l-content .l-article {
	max-width: var(--article_size);
}

.u-ta-c {
	text-align: center;
}

.u-thin {
	opacity: 0.8;
}

.pc_only {
	display: none !important;
}

@media (min-width: 960px) {
	.pc_only {
		display: block !important;
	}
	.sp_only {
		display: none !important;
	}
}

/* ------------------------------------------------------------ ヘッダー */

.l-header {
	position: relative;
	z-index: 100;
	background: var(--color_header_bg);
	color: var(--color_header_text);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.l-header__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	position: relative;
}

.l-header__logo {
	text-align: center;
	padding: 8px 0;
}

.c-headLogo {
	margin: 0;
	font-size: inherit;
	line-height: 1;
}

.c-headLogo a {
	display: inline-block;
}

.c-headLogo img {
	display: block;
	height: 50px;
	width: auto;
}

.c-headLogo .-color {
	display: none;
}

.c-catchphrase {
	font-size: 11px;
	line-height: 1;
	margin-top: 8px;
	letter-spacing: 0.2em;
	opacity: 0.8;
}

.l-header__gnav {
	display: none;
}

.l-header__menuBtn {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 64px;
	border: 0;
	background: var(--color_main);
	color: #fff;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 0;
}

.l-header__menuBtn .__bars {
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 22px;
}

.l-header__menuBtn .__bars span {
	display: block;
	height: 1px;
	background: currentColor;
}

.l-header__menuBtn .__label {
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0.05em;
}

@media (min-width: 960px) {
	.l-header__inner {
		flex-direction: column;
		padding-top: 8px;
	}
	.l-header__logo {
		padding: 16px 0;
	}
	.c-headLogo img {
		height: 70px;
	}
	.c-catchphrase {
		font-size: 12px;
		margin-top: 16px;
	}
	.l-header__gnav {
		display: block;
		width: 100%;
	}
	.l-header__menuBtn {
		display: none;
	}
}

.c-gnav {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
}

.c-gnav > li > a {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 16px;
	color: inherit;
	text-decoration: none;
	position: relative;
	line-height: 1.4;
}

.c-gnav .ttl {
	font-size: 14px;
}

.c-gnav .desc {
	font-size: 10px;
	opacity: 0.6;
	letter-spacing: 0.05em;
}

.c-gnav > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: var(--color_main);
	transform: scaleX(0);
	transition: transform 0.25s;
}

.c-gnav > li > a:hover::after,
.c-gnav > li > a[aria-current="page"]::after {
	transform: scaleX(1);
}

/* トップ：写真の上に重ねる透過ヘッダー */
.l-header.-transparent {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	background: transparent;
	box-shadow: none;
	color: #fff;
}

.l-header.-transparent .l-header__menuBtn {
	background: transparent;
}

@media (min-width: 960px) {
	.l-header.-transparent.-scrolled {
		position: fixed;
		background: #fff;
		color: var(--color_header_text);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	}
	.l-header.-transparent.-scrolled .l-header__logo,
	.l-header.-transparent.-scrolled .c-catchphrase {
		display: none;
	}
	.l-header.-transparent.-scrolled .l-header__inner {
		padding-top: 0;
	}
}

@media (max-width: 959px) {
	.l-header.-transparent.-scrolled {
		position: fixed;
		background: #fff;
		color: var(--color_header_text);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	}
	.l-header.-transparent.-scrolled .l-header__menuBtn {
		background: var(--color_main);
	}
	.l-header.-transparent.-scrolled .c-headLogo .-white {
		display: none;
	}
	.l-header.-transparent.-scrolled .c-headLogo .-color {
		display: block;
	}
	.l-header.-transparent.-scrolled .c-catchphrase {
		display: none;
	}
}

/* スマホメニュー */
.p-spMenu {
	position: fixed;
	inset: 0;
	z-index: 200;
}

.p-spMenu[hidden] {
	display: none;
}

.p-spMenu__overlay {
	position: absolute;
	inset: 0;
	background: #000;
	opacity: 0.6;
}

.p-spMenu__inner {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(88vw, 360px);
	background: #fdfdfd;
	color: #333;
	padding: 56px 16px 24px;
	overflow-y: auto;
}

.p-spMenu__close {
	position: absolute;
	top: 0;
	right: 0;
	width: 48px;
	height: 48px;
	border: 0;
	background: transparent;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}

.p-spMenu__title {
	padding: 0.5em 0.75em;
	background: var(--color_main);
	color: #fff;
	text-align: center;
	font-size: 14px;
	margin-bottom: 8px;
}

.p-spMenu__nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.p-spMenu__nav a {
	display: block;
	padding: 0.85em 1em 0.85em 1.5em;
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid var(--color_border);
	position: relative;
}

.p-spMenu__nav a::before {
	content: "";
	position: absolute;
	left: 0.5em;
	top: 50%;
	width: 6px;
	height: 6px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

html.is-menuOpen {
	overflow: hidden;
}

/* ------------------------------------------------------------ メインビジュアル・タイトル帯・パンくず */

.p-mainVisual {
	position: relative;
}

.p-mainVisual__img {
	display: block;
	width: 100%;
	height: auto;
}

.l-topTitleArea {
	position: relative;
	min-height: 11em;
	padding: 1.5em 0;
	display: flex;
	align-items: center;
	overflow: hidden;
	color: #fff;
}

.l-topTitleArea::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: #000;
	opacity: 0.4;
	background-image: radial-gradient(rgba(0, 0, 0, 0.15) 1px, transparent 1px);
	background-size: 3px 3px;
}

.l-topTitleArea__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.l-topTitleArea__body {
	position: relative;
	z-index: 2;
	width: 100%;
}

.c-pageTitle {
	margin: 0;
	font-size: 6vw;
	font-weight: 700;
	line-height: 1.4;
	text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1);
}

.c-pageTitle.-plain {
	font-size: 1.6em;
	color: var(--color_text);
	text-shadow: none;
	margin-bottom: 1em;
}

@media (min-width: 600px) {
	.l-topTitleArea {
		min-height: 240px;
	}
	.c-pageTitle {
		font-size: 32px;
	}
}

.p-breadcrumb {
	font-size: 10px;
	background: rgba(0, 0, 0, 0.03);
	padding: 12px 0;
	position: relative;
}

.p-breadcrumb__list {
	list-style: none;
	margin: 0 auto;
	display: flex;
	flex-wrap: nowrap;
	overflow: hidden;
	white-space: nowrap;
	opacity: 0.8;
}

.p-breadcrumb__item {
	position: relative;
	margin-right: 10px;
	padding-right: 12px;
}

.p-breadcrumb__item:not(:last-child)::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 4px;
	height: 4px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
	opacity: 0.6;
}

.p-breadcrumb__item:last-child {
	overflow: hidden;
	text-overflow: ellipsis;
}

.p-breadcrumb__text {
	color: inherit;
	text-decoration: none;
}

@media (min-width: 960px) {
	.p-breadcrumb {
		font-size: 11px;
	}
}

/* ------------------------------------------------------------ 本文の器 */

.l-content {
	padding-top: 2em;
	padding-bottom: 4em;
}

.is-top .l-content,
.is-lp .l-content {
	padding-top: 0;
}

@media (min-width: 960px) {
	.l-content {
		padding-top: 4em;
		padding-bottom: 6em;
	}
	.is-top .l-content,
	.is-lp .l-content {
		padding-top: 0;
	}
}

.post_content {
	font-size: var(--fz-content);
	line-height: 1.8;
}

@media (min-width: 768px) {
	/* 旧サイトの追加 CSS：PC では段落を 20px */
	.post_content p {
		font-size: 20px;
	}
}

.post_content > * {
	margin-top: 0;
	margin-bottom: 2em;
}

.post_content :where(p, ul, ol, dl, table, figure, blockquote, .wp-block-group, .swell-block-capbox, .c-balloon, .swell-block-balloon) {
	margin-top: 0;
	margin-bottom: 2em;
}

.post_content :where(div, figure, dl, ul, ol, table) > :last-child {
	margin-bottom: 0;
}

.post_content h2,
.post_content h3,
.post_content h4,
.post_content h5 {
	position: relative;
	font-weight: 700;
	line-height: 1.4;
	z-index: 1;
}

.post_content h2 {
	font-size: 1.2em;
	margin: 4em 0 2em;
}

.post_content h3 {
	font-size: 1.1em;
	margin: 3em 0 2em;
}

.post_content h4 {
	font-size: 1.05em;
	margin: 2.5em 0 1.5em;
}

@media (min-width: 600px) {
	.post_content h2 {
		font-size: 1.4em;
	}
	.post_content h3 {
		font-size: 1.3em;
	}
	.post_content h4 {
		font-size: 1.1em;
	}
}

.post_content > h2:first-child,
.post_content > h3:first-child {
	margin-top: 0;
}

/* 見出し：旧サイトの設定（h2＝帯、h3＝二色の下線、h4＝左線） */
.post_content h2:where(:not([class*="is-style-"]):not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	background: var(--color_htag);
	color: #fff;
	padding: 0.75em 1em;
}

.post_content h3:where(:not([class*="is-style-"]):not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 0 0.5em 0.5em;
}

.post_content h3:where(:not([class*="is-style-"]):not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--color_htag) 0%, var(--color_htag) 29.3%, rgba(150, 150, 150, 0.2) 29.3%, rgba(150, 150, 150, 0.2) 100%);
}

.post_content h4:where(:not([class*="is-style-"]):not([class^="swell-block-"]):not(.faq_q)) {
	padding: 0 0 0 16px;
	border-left: solid 2px var(--color_htag);
}

/* セクション見出し（英字の小見出し付き・中央の短い線） */
.post_content .is-style-section_ttl {
	background: none;
	color: inherit;
	text-align: center;
	padding: 0 0 0.75em;
	margin-top: 0;
	font-size: 1.4em;
	letter-spacing: 0.1em;
}

.post_content .is-style-section_ttl::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: calc(50% - 1.25em);
	width: 2.5em;
	height: 1px;
	background: currentColor;
}

.post_content .is-style-section_ttl.has-text-align-left::after {
	left: 0;
}

.post_content .is-style-section_ttl.has-text-align-left {
	text-align: left;
}

.post_content .is-style-section_ttl.has-background {
	padding: 0.75em 1em 1em;
}

.post_content .is-style-section_ttl .mininote {
	display: block;
	font-size: 0.55em;
	font-weight: 400;
	opacity: 0.8;
	letter-spacing: 0.1em;
	margin-bottom: 0.25em;
}

@media (min-width: 600px) {
	.post_content .is-style-section_ttl {
		font-size: 1.8em;
	}
}

.mininote {
	font-size: 0.8em;
	opacity: 0.8;
}

/* 小さめの見出し・その他の見出しスタイル */
.post_content .is-style-small_ttl {
	font-size: 1em;
}

.post_content .is-style-onborder_ttl,
.post_content .is-style-onborder_ttl2 {
	text-align: center;
	display: flex;
	align-items: center;
	gap: 1em;
}

.post_content .is-style-onborder_ttl::before,
.post_content .is-style-onborder_ttl::after,
.post_content .is-style-onborder_ttl2::before,
.post_content .is-style-onborder_ttl2::after {
	content: "";
	flex: 1;
	height: 1px;
	background: currentColor;
	opacity: 0.4;
}

/* WordPress の文字サイズ・色・配置 */
.has-xs-font-size {
	font-size: 0.75em !important;
}
.has-small-font-size {
	font-size: 0.9em !important;
}
.has-medium-font-size {
	font-size: 1.1em !important;
}
.has-large-font-size {
	font-size: 1.25em !important;
}
.has-huge-font-size {
	font-size: 1.6em !important;
}
.has-x-large-font-size {
	font-size: 42px !important;
}
.u-fz-xs {
	font-size: 0.75em !important;
}
.u-fz-s {
	font-size: 0.9em !important;
}
.u-fz-m {
	font-size: 1em !important;
}
.u-fz-l {
	font-size: 1.1em !important;
}
.u-fz-xl {
	font-size: 1.4em !important;
}
.has-text-align-center {
	text-align: center;
}
.has-text-align-right {
	text-align: right;
}
.has-text-align-left {
	text-align: left;
}
.has-white-color {
	color: #fff !important;
}
.has-black-color {
	color: #000 !important;
}
.has-swl-main-color {
	color: var(--color_main) !important;
}
.u-col-main {
	color: var(--color_main) !important;
}
.has-white-background-color {
	background-color: #fff !important;
}
.has-swl-main-background-color,
.u-bg-main {
	background-color: var(--color_main) !important;
	color: #fff;
}
.has-background {
	padding: 1.5em 1.5em;
}
.has-link-color a {
	color: inherit;
}
.u-mb-0 {
	margin-bottom: 0 !important;
}
.u-mb-10 {
	margin-bottom: 0.5em !important;
}
.u-mb-20 {
	margin-bottom: 1em !important;
}

/* マーカー（管理画面では「下線」） */
.mark_yellow,
.swl-marker.mark_yellow {
	background: linear-gradient(transparent 64%, var(--color_mark_yellow) 0%);
	text-decoration: none;
}

/* 箇条書き */
.post_content ul,
.post_content ol {
	padding-left: 1.5em;
}

.post_content li + li {
	margin-top: 0.25em;
}

.post_content li > ul,
.post_content li > ol {
	margin-top: 0.25em;
	margin-bottom: 0;
}

.post_content ul.is-style-check_list,
.post_content ul.is-style-good_list,
.post_content ol.is-style-num_circle {
	list-style: none;
	padding-left: 0.25em;
}

.post_content ul.is-style-check_list > li,
.post_content ol.is-style-num_circle > li {
	position: relative;
	padding-left: 1.75em;
}

.post_content ul.is-style-check_list > li::before {
	content: "";
	position: absolute;
	left: 0.3em;
	top: 0.45em;
	width: 0.5em;
	height: 0.85em;
	border-right: 2px solid var(--color_list_check);
	border-bottom: 2px solid var(--color_list_check);
	transform: rotate(45deg);
}

.post_content ol.is-style-num_circle {
	counter-reset: num;
}

.post_content ol.is-style-num_circle > li::before {
	counter-increment: num;
	content: counter(num);
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.4em;
	height: 1.4em;
	border-radius: 50%;
	background: var(--color_list_num);
	color: #fff;
	font-size: 0.8em;
	line-height: 1.4em;
	text-align: center;
}

.post_content .-list-under-dashed > li {
	border-bottom: 1px dashed var(--color_border);
	padding-bottom: 0.5em;
}

/* 引用 */
.post_content blockquote {
	position: relative;
	padding: 1.5em 3em;
	background: rgba(0, 0, 0, 0.03);
	border-left: 0;
	margin-inline: 0;
}

.post_content blockquote::before,
.post_content blockquote::after {
	content: "\201c";
	position: absolute;
	font-size: 6em;
	line-height: 1;
	color: rgba(200, 200, 200, 0.4);
	font-family: Arial, Helvetica, sans-serif;
}

.post_content blockquote::before {
	top: 4px;
	left: 8px;
}

.post_content blockquote::after {
	bottom: -0.4em;
	right: 8px;
	transform: rotate(180deg);
}

.post_content blockquote cite {
	display: block;
	font-size: 0.8em;
	opacity: 0.8;
	margin-top: 0.5em;
}

/* 画像 */
.wp-block-image img {
	height: auto;
}

.wp-block-image.aligncenter,
.aligncenter {
	text-align: center;
	margin-inline: auto;
}

.wp-block-image.aligncenter img,
.aligncenter > img {
	margin-inline: auto;
	display: block;
}

.wp-element-caption,
.post_content figcaption {
	font-size: 0.8em;
	text-align: center;
	opacity: 0.8;
	margin-top: 0.5em;
}

.post_content .is-style-shadow img,
.post_content img.is-style-shadow {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.post_content .is-style-border img {
	border: 1px solid var(--color_border);
}

/* 全幅・幅広 */
.alignfull {
	position: relative;
	left: calc(50% - 50vw);
	width: 100vw;
	max-width: 100vw;
}

@media (min-width: 1108px) {
	.l-article .alignwide {
		position: relative;
		left: -100px;
		width: calc(100% + 200px);
		max-width: none;
	}
}

.swell-block-fullWide {
	position: relative;
	padding: 2em 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.swell-block-fullWide.has-bg-img {
	background-blend-mode: normal;
}

/* トップのお問い合わせ欄の背景写真が欠けている帯（旧サイトの画像が退避に無かった）に、代わりの写真を敷く */
.swell-block-fullWide.has-bg-img:not([style*="background-image"]) {
	background-image: url(/images/contact-bg.jpg);
}

.swell-block-fullWide.has-bg-img > .swell-block-fullWide__inner {
	position: relative;
	z-index: 1;
}

/* 背景写真＋暗いかぶせ色：style の background-color を写真の上に重ねる */
.swell-block-fullWide.has-bg-img::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: inherit;
	z-index: 0;
}

.swell-block-fullWide.-parallax,
.swell-block-fullWide.-fixbg {
	background-attachment: fixed;
}

@media (max-width: 959px), (hover: none) {
	.swell-block-fullWide.-parallax,
	.swell-block-fullWide.-fixbg {
		background-attachment: scroll;
	}
}

.swell-block-fullWide__inner {
	position: relative;
	z-index: 1;
	padding-inline: var(--pad-container);
	margin-inline: auto;
}

.swell-block-fullWide__inner.l-container {
	max-width: calc(var(--container_size) + var(--pad-container) * 2);
}

.swell-block-fullWide__inner.l-article {
	max-width: calc(var(--article_size) + var(--pad-container) * 2);
}

.swell-block-fullWide__inner > :last-child {
	margin-bottom: 0;
}

.pc-py-0 {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.pc-py-40 {
	padding-top: 40px !important;
	padding-bottom: 40px !important;
}
.pc-py-60 {
	padding-top: 60px !important;
	padding-bottom: 60px !important;
}

@media (max-width: 599px) {
	.sp-py-0 {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
	.sp-py-20 {
		padding-top: 20px !important;
		padding-bottom: 20px !important;
	}
	.sp-py-40 {
		padding-top: 40px !important;
		padding-bottom: 40px !important;
	}
	.sp-py-60 {
		padding-top: 60px !important;
		padding-bottom: 60px !important;
	}
}

.swell-block-fullWide__SVG {
	position: absolute;
	left: 0;
	width: 100%;
	z-index: 0;
}

.swell-block-fullWide__SVG.-top {
	top: 0;
}

.swell-block-fullWide__SVG.-bottom {
	bottom: 0;
}

/* グループ（枠・背景） */
.wp-block-group.has-border,
.has-border {
	border: var(--border, 1px solid var(--color_main));
	padding: 1.5em;
}

.-border01 {
	border: solid 1px var(--color_main) !important;
	padding: 1.5em;
}
.-border02 {
	border: double 4px var(--color_main) !important;
	padding: 1.5em;
}
.-border03 {
	border: dashed 2px var(--color_border) !important;
	padding: 1.5em;
}
.-border04 {
	border: solid 4px rgba(200, 200, 200, 0.6) !important;
	padding: 1em 1.5em;
}

.is-style-bg_stripe {
	background: repeating-linear-gradient(-45deg, rgba(200, 200, 200, 0.1), rgba(200, 200, 200, 0.1) 6px, transparent 6px, transparent 12px);
	padding: 1.5em;
}

.is-style-emboss_box {
	background: #fff;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
	border-top: 4px solid var(--color_main);
	padding: 1.5em;
}

.is-style-balloon_box,
.is-style-balloon_box2 {
	position: relative;
	padding: 1em 1.5em;
	background: var(--color_main);
	color: #fff;
	font-weight: 700;
	display: inline-block;
	min-width: 6em;
	text-align: center;
	margin-bottom: 1.5em !important;
}

.is-style-balloon_box2 {
	background: #fff;
	color: var(--color_text);
	border: 1px solid var(--color_main);
}

.is-style-balloon_box::after,
.is-style-balloon_box2::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translateX(-50%);
	border: 10px solid transparent;
	border-bottom: 0;
	border-top-color: var(--color_main);
}

.post_content p.is-style-balloon_box,
.post_content p.is-style-balloon_box2 {
	display: table;
	margin-inline: auto;
}

[class*="is-style-big_icon_"] {
	position: relative;
	padding: 1.5em 1.5em 1.5em 5em !important;
	border: 2px solid var(--the-color, var(--color_main));
	background: #fff;
}

[class*="is-style-big_icon_"]::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3.5em;
	background: var(--the-color, var(--color_main));
	-webkit-mask: none;
}

[class*="is-style-big_icon_"]::after {
	content: "!";
	position: absolute;
	left: 0;
	top: 50%;
	width: 3.5em;
	text-align: center;
	transform: translateY(-50%);
	color: #fff;
	font-weight: 700;
	font-size: 1.4em;
}

.is-style-big_icon_caution {
	--the-color: var(--color_icon_caution);
}
.is-style-big_icon_good {
	--the-color: var(--color_icon_good);
}
.is-style-big_icon_good::after {
	content: "\2714";
}
.is-style-big_icon_memo {
	--the-color: var(--color_icon_memo);
}
.is-style-big_icon_memo::after {
	content: "\270E";
}
.is-style-big_icon_check {
	--the-color: var(--color_icon_check);
}
.is-style-big_icon_check::after {
	content: "\2713";
}

.is-style-icon_pen {
	position: relative;
	padding: 1em 1em 1em 3.5em !important;
	background: #f8f6ef;
	border-radius: 2px;
}

.is-style-icon_pen::before {
	content: "\270E";
	position: absolute;
	left: 1em;
	top: 50%;
	transform: translateY(-50%);
	color: var(--color_icon_pen);
	font-size: 1.4em;
}

/* 吹き出し */
.c-balloon {
	display: flex;
	align-items: flex-start;
	margin-bottom: 2em;
	gap: 0;
}

.c-balloon.-bln-right {
	flex-direction: row-reverse;
}

.c-balloon__icon {
	flex-shrink: 0;
	width: 80px;
	text-align: center;
	position: relative;
}

.c-balloon__iconImg {
	width: 80px;
	height: 80px;
	object-fit: cover;
	display: block;
	margin: 0 auto;
	border: 1px solid var(--color_border);
	background: #fff;
}

.c-balloon__icon.-circle .c-balloon__iconImg {
	border-radius: 50%;
}

.c-balloon__iconName {
	display: block;
	font-size: 10px;
	text-align: center;
	opacity: 0.8;
	margin-top: 4px;
	line-height: 1.4;
}

.c-balloon__body {
	position: relative;
	max-width: calc(100% - 96px);
	margin: 0 16px;
}

.c-balloon__text {
	position: relative;
	padding: 1em 1.25em;
	border: 2px solid #ccc;
	background: #f7f7f7;
	border-radius: 2px;
	line-height: 1.7;
	white-space: normal;
}

.c-balloon__body.-border-none .c-balloon__text {
	border-color: transparent !important;
}

.c-balloon__shapes {
	position: absolute;
	top: 20px;
	left: -10px;
	width: 10px;
	height: 16px;
}

.-bln-right .c-balloon__shapes {
	left: auto;
	right: -10px;
	transform: scaleX(-1);
}

.c-balloon__before,
.c-balloon__after {
	position: absolute;
	top: 0;
	right: 0;
	border-style: solid;
	border-color: transparent;
	border-width: 8px 10px 8px 0;
}

.c-balloon__after {
	right: -2px;
	border-right-color: inherit;
	display: none;
}

.c-balloon__before {
	border-right-color: #f7f7f7;
	z-index: 1;
}

.c-balloon__body:not(.-border-none) .c-balloon__shapes::before {
	content: "";
	position: absolute;
	top: -2px;
	right: 1px;
	border-style: solid;
	border-color: transparent;
	border-width: 10px 12px 10px 0;
	border-right-color: var(--bln-border, #ccc);
}

[data-col="gray"] .c-balloon__text {
	background: #f7f7f7;
	border-color: #ccc;
}
[data-col="gray"] .c-balloon__before {
	border-right-color: #f7f7f7;
}
[data-col="gray"] {
	--bln-border: #ccc;
}
[data-col="green"] .c-balloon__text {
	background: #d1f8c2;
	border-color: #9ddd93;
}
[data-col="green"] .c-balloon__before {
	border-right-color: #d1f8c2;
}
[data-col="green"] {
	--bln-border: #9ddd93;
}
[data-col="blue"] .c-balloon__text {
	background: #e2f6ff;
	border-color: #93d2f0;
}
[data-col="blue"] .c-balloon__before {
	border-right-color: #e2f6ff;
}
[data-col="blue"] {
	--bln-border: #93d2f0;
}
[data-col="red"] .c-balloon__text {
	background: #ffebeb;
	border-color: #f48789;
}
[data-col="red"] .c-balloon__before {
	border-right-color: #ffebeb;
}
[data-col="red"] {
	--bln-border: #f48789;
}
[data-col="yellow"] .c-balloon__text {
	background: #f9f7d2;
	border-color: #fbe593;
}
[data-col="yellow"] .c-balloon__before {
	border-right-color: #f9f7d2;
}
[data-col="yellow"] {
	--bln-border: #fbe593;
}

.c-balloon__body.-thinking .c-balloon__text {
	border-radius: 1.5em;
}

@media (max-width: 599px) {
	.c-balloon__icon {
		width: 60px;
	}
	.c-balloon__iconImg {
		width: 60px;
		height: 60px;
	}
	.c-balloon__body {
		max-width: calc(100% - 72px);
		margin: 0 12px;
	}
}

/* キャプション付きボックス */
.cap_box {
	--capbox-color: var(--color_main);
	--capbox-color--bg: #f7f7f7;
	position: relative;
	margin-bottom: 2em;
}

.cap_box[data-colset="col2"] {
	--capbox-color: #5fb9f5;
	--capbox-color--bg: #edf5ff;
}
.cap_box[data-colset="col3"] {
	--capbox-color: #2fcd90;
	--capbox-color--bg: #eafaf2;
}

.cap_box_ttl {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.5em 1em;
	background: var(--capbox-color);
	color: #fff;
	font-weight: 700;
	font-size: 0.9em;
	line-height: 1.4;
	position: relative;
	z-index: 1;
}

.cap_box_ttl svg {
	width: var(--the-icon-size, 1em);
	height: var(--the-icon-size, 1em);
	fill: currentColor;
	flex-shrink: 0;
}

.cap_box_content {
	padding: 1.5em;
	border: 1px solid var(--capbox-color);
	background: #fff;
	position: relative;
	top: -1px;
}

.cap_box_content > :last-child {
	margin-bottom: 0;
}

.cap_box.is-style-small_ttl .cap_box_ttl {
	font-size: 0.8em;
}

.cap_box.is-style-onborder_ttl .cap_box_ttl {
	background: var(--color_bg);
	color: var(--capbox-color);
	position: absolute;
	left: 1em;
	top: -0.9em;
	padding: 0 0.5em;
}

.cap_box.is-style-onborder_ttl .cap_box_content {
	padding-top: 2em;
}

.cap_box.is-style-intext {
	border: 1px solid var(--capbox-color);
	background: #fff;
	padding: 0;
}

.cap_box.is-style-intext .cap_box_ttl {
	background: none;
	color: var(--capbox-color);
	padding: 1em 1.5em 0;
	display: flex;
	border-bottom: 0;
}

.cap_box.is-style-intext .cap_box_content {
	border: 0;
	top: 0;
	padding-top: 0.75em;
}

.cap_box.is-style-shadow {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
	background: #fff;
}

.cap_box.is-style-shadow .cap_box_ttl {
	display: flex;
	padding: 0.75em 1.25em;
}

.cap_box.is-style-shadow .cap_box_content {
	border: 0;
	top: 0;
}

/* ステップ */
.swell-block-step {
	counter-reset: step;
	margin-bottom: 2em;
}

.swell-block-step__item {
	position: relative;
	padding-left: 4.25em;
	padding-bottom: 2em;
}

.swell-block-step__item::before {
	content: "";
	position: absolute;
	left: calc(1.75em - 1px);
	top: 3.5em;
	bottom: 0;
	width: 2px;
	background: var(--color_border);
}

.swell-block-step__item:last-child {
	padding-bottom: 0;
}

.swell-block-step__item:last-child::before {
	display: none;
}

.swell-block-step__number {
	position: absolute;
	left: 0;
	top: 0;
	width: 3.5em;
	height: 3.5em;
	border-radius: 50%;
	background: var(--color_main);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-size: 0.9em;
	counter-increment: step;
}

.swell-block-step__number .__label {
	font-size: 10px;
	letter-spacing: 0.05em;
}

.swell-block-step__number::after {
	content: counter(step);
	font-size: 1.4em;
	font-weight: 700;
	margin-top: 2px;
}

.swell-block-step[data-num-style="circle"] .swell-block-step__number::after {
	content: counter(step);
}

.swell-block-step__title {
	font-weight: 700;
	line-height: 1.5;
	padding-top: 0.6em;
	margin-bottom: 0.75em;
	font-size: 1.1em;
}

.swell-block-step__body > :last-child {
	margin-bottom: 0;
}

.swell-block-step.is-style-big .swell-block-step__item {
	padding-left: 0;
	padding-bottom: 3em;
}

.swell-block-step.is-style-big .swell-block-step__item::before {
	display: none;
}

.swell-block-step.is-style-big .swell-block-step__number {
	position: relative;
	width: auto;
	height: auto;
	border-radius: 0;
	background: none !important;
	color: var(--color_main);
	flex-direction: row;
	justify-content: flex-start;
	gap: 0.4em;
	font-size: 1em;
	margin-bottom: 0.5em;
}

.swell-block-step.is-style-big .swell-block-step__number .__label {
	font-size: 1em;
	font-weight: 700;
}

.swell-block-step.is-style-big .swell-block-step__number::after {
	font-size: 1.6em;
	margin: 0;
}

.swell-block-step.is-style-big .swell-block-step__title {
	font-size: 1.2em;
	padding: 0 0 0.5em;
	border-bottom: 1px solid var(--color_border);
}

/* FAQ */
.swell-block-faq {
	margin-bottom: 2em;
}

.swell-block-faq__item {
	margin-bottom: 1.5em;
}

.swell-block-faq .faq_q,
.swell-block-faq .faq_a {
	position: relative;
	padding: 1em 1em 1em 3.5em;
	margin: 0;
	line-height: 1.6;
}

.swell-block-faq .faq_q {
	font-weight: 700;
}

.swell-block-faq .faq_q::before,
.swell-block-faq .faq_a::before {
	position: absolute;
	left: 1em;
	top: 0.75em;
	font-size: 1.4em;
	font-weight: 700;
	font-family: Arial, Helvetica, sans-serif;
	line-height: 1.2;
}

.swell-block-faq .faq_q::before {
	content: "Q";
	color: var(--color_faq_q);
}

.swell-block-faq .faq_a::before {
	content: "A";
	color: var(--color_faq_a);
}

.swell-block-faq.is-style-faq-stripe .faq_q {
	background: rgba(200, 200, 200, 0.2);
}

.swell-block-faq.is-style-faq-stripe .faq_a {
	background: #fff;
}

.swell-block-faq .faq_a > :last-child {
	margin-bottom: 0;
}

/* 定義リスト */
.swell-block-dl {
	margin-bottom: 2em;
}

.swell-block-dl__dt {
	font-weight: 700;
	padding: 0.5em 0;
}

.swell-block-dl__dd {
	margin: 0 0 1.5em;
	padding-left: 1em;
}

.swell-block-dl.is-style-border .swell-block-dl__dt {
	border-bottom: 1px solid var(--color_main);
	padding: 0.5em 0.5em;
	margin-bottom: 0.75em;
}

.swell-block-dl.is-style-border .swell-block-dl__dd {
	padding-left: 0.5em;
}

.swell-block-dl.is-style-vtabel .swell-block-dl__dt {
	background: var(--color_main);
	color: #fff;
	padding: 0.5em 1em;
}

.swell-block-dl.is-style-vtabel .swell-block-dl__dd {
	border: 1px solid var(--color_border);
	border-top: 0;
	padding: 1em;
	background: #fff;
}

.swl-inline-icon::before {
	content: "";
	display: inline-block;
	width: var(--the-icon-size, 1em);
	height: var(--the-icon-size, 1em);
	background: currentColor;
	-webkit-mask: var(--the-icon-svg) center / contain no-repeat;
	mask: var(--the-icon-svg) center / contain no-repeat;
	vertical-align: -0.15em;
	margin-right: 0.2em;
}

/* ボタン */
.swell-block-button {
	text-align: center;
	margin-bottom: 2em;
	--the-btn-color: var(--color_main);
	--the-btn-color2: #35eaff;
	--the-btn-radius: 80px;
}

.swell-block-button.red_ {
	--the-btn-color: #f74a4a;
}
.swell-block-button.blue_ {
	--the-btn-color: #338df4;
}
.swell-block-button.green_ {
	--the-btn-color: #62d847;
}

.swell-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-width: 60%;
	padding: 1em 2em;
	border-radius: var(--the-btn-radius);
	background: var(--the-btn-color);
	color: #fff !important;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.5;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
	transition: opacity 0.25s, transform 0.25s;
	position: relative;
	overflow: hidden;
}

.swell-block-button__link:hover {
	opacity: 0.85;
}

.swell-block-button__link .__icon {
	width: 1.2em;
	height: 1.2em;
	fill: currentColor;
}

.swell-block-button.-size-l .swell-block-button__link {
	font-size: 1.1em;
	padding: 1.1em 2.5em;
	min-width: 80%;
}

.swell-block-button.-size-s .swell-block-button__link {
	font-size: 0.9em;
	min-width: 40%;
	padding: 0.75em 1.5em;
}

.is-style-btn_shiny .swell-block-button__link::before {
	content: "";
	position: absolute;
	top: -50%;
	left: -30%;
	width: 20%;
	height: 200%;
	background: rgba(255, 255, 255, 0.4);
	transform: rotate(25deg);
	animation: btn-shiny 3s ease-in-out infinite;
}

@keyframes btn-shiny {
	0% {
		left: -30%;
	}
	20%,
	100% {
		left: 120%;
	}
}

.is-style-btn_line .swell-block-button__link {
	background: transparent;
	color: var(--the-btn-color) !important;
	border: 1px solid currentColor;
	box-shadow: none;
}

.is-style-more_btn a,
a.is-style-more_btn {
	display: inline-block;
	padding: 0.75em 2.5em;
	border: 1px solid currentColor;
	border-radius: 40px;
	text-decoration: none;
	color: var(--color_text);
}

/* 箱メニュー */
.swell-block-box-menu {
	margin-bottom: 2em;
}

.swell-block-box-menu__inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--the-gap, 8px);
}

.swell-block-box-menu__item {
	flex: 1 1 calc(33.333% - var(--the-gap, 8px));
	min-width: 0;
}

.swell-block-box-menu[data-direction="vertical"] .swell-block-box-menu__item {
	flex-basis: var(--the-box-width--mb, 100%);
}

@media (min-width: 600px) {
	.swell-block-box-menu[data-direction="vertical"] .swell-block-box-menu__item {
		flex-basis: var(--the-box-width--tab, 100%);
	}
}

.swell-block-box-menu__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5em;
	height: 100%;
	padding: 1.25em 1em;
	background: #fff;
	color: var(--the-text-color, inherit);
	text-decoration: none;
	text-align: center;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

.swell-block-box-menu[data-direction="vertical"] .swell-block-box-menu__link {
	flex-direction: row;
	text-align: left;
	gap: 1em;
}

.swell-block-box-menu.is-style-fill .swell-block-box-menu__link {
	background: var(--the-icon-color, var(--color_main));
	box-shadow: none;
}

.swell-block-box-menu__figure {
	font-size: var(--the-icon-size, 2em);
	line-height: 1;
	color: var(--color_main);
	flex-shrink: 0;
}

.swell-block-box-menu.is-style-fill .swell-block-box-menu__figure {
	color: var(--the-text-color, var(--color_main));
}

.swell-block-box-menu__figure svg {
	width: 1em;
	height: 1em;
	display: block;
}

.swell-block-box-menu__figure img {
	max-width: 3em;
}

.swell-block-box-menu__text {
	font-size: 0.95em;
	line-height: 1.5;
}

/* カラム */
.swell-block-columns {
	margin-bottom: 2em;
}

.swell-block-columns__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
}

.swell-block-column {
	flex: 1 1 var(--clmn-w--pc, 0);
	min-width: 240px;
}

.swell-block-columns.is-style-clmn-border .swell-block-column {
	border: 1px solid var(--color_border);
	padding: 1.25em;
	background: #fff;
}

/* メディアと文章 */
.wp-block-media-text {
	display: grid;
	grid-template-columns: 50% auto;
	grid-template-rows: auto;
	align-items: center;
	margin-bottom: 2em;
}

.wp-block-media-text.has-media-on-the-right {
	grid-template-columns: auto 50%;
}

.wp-block-media-text__media {
	grid-column: 1;
	grid-row: 1;
	margin: 0;
}

.wp-block-media-text__media img {
	width: 100%;
	height: auto;
	display: block;
}

.wp-block-media-text__content {
	grid-column: 2;
	grid-row: 1;
	padding: 0 8%;
	word-break: break-word;
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {
	grid-column: 2;
}

.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
	grid-column: 1;
}

.wp-block-media-text.is-style-broken .wp-block-media-text__content {
	background: rgba(255, 255, 255, 0.92);
	color: var(--color_text);
	padding: 2em;
	margin-left: -10%;
	position: relative;
	z-index: 1;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.wp-block-media-text.is-style-broken.has-media-on-the-right .wp-block-media-text__content {
	margin-left: 0;
	margin-right: -10%;
}

@media (max-width: 599px) {
	.wp-block-media-text.is-stacked-on-mobile {
		grid-template-columns: 100% !important;
	}
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}
	.wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
		padding: 1.5em 0 0;
	}
	.wp-block-media-text.is-style-broken .wp-block-media-text__content,
	.wp-block-media-text.is-style-broken.has-media-on-the-right .wp-block-media-text__content {
		margin: -2em 1em 0;
		padding: 1.5em;
	}
}

/* 表 */
.wp-block-table {
	overflow-x: auto;
}

.post_content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
	line-height: 1.6;
	background: #fff;
}

.post_content th,
.post_content td {
	border: 1px solid var(--color_border);
	padding: 0.75em 1em;
	text-align: left;
	vertical-align: top;
}

.post_content thead th,
.post_content thead td {
	background: var(--color_main);
	color: #fff;
}

.post_content .is-style-simple table,
.post_content .is-style-simple th,
.post_content .is-style-simple td {
	border: 0;
	border-bottom: 1px solid var(--color_border);
	background: transparent;
}

.post_content .is-style-stripes tbody tr:nth-child(odd) td {
	background: rgba(0, 0, 0, 0.03);
}

.post_content .td_to_th_ tbody td:first-child {
	background: rgba(0, 0, 0, 0.04);
	font-weight: 700;
	white-space: nowrap;
}

.post_content .has-fixed-layout {
	table-layout: fixed;
}

/* タブ */
.swell-block-tab {
	margin-bottom: 2em;
}

.c-tabList {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 4px;
}

.c-tabList__item {
	flex: 1;
	margin: 0 !important;
}

.c-tabList__button {
	width: 100%;
	border: 0;
	padding: 0.75em 0.5em;
	background: rgba(200, 200, 200, 0.4);
	color: inherit;
	cursor: pointer;
	font-size: 0.9em;
	line-height: 1.4;
	position: relative;
}

.c-tabList__button[aria-selected="true"] {
	background: var(--color_main);
	color: #fff;
}

.swell-block-tab.is-style-balloon .c-tabList__button[aria-selected="true"]::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -8px;
	transform: translateX(-50%);
	border: 8px solid transparent;
	border-bottom: 0;
	border-top-color: var(--color_main);
}

.c-tabBody {
	padding: 1.5em 0 0;
}

.c-tabBody__item[aria-hidden="true"] {
	display: none;
}

/* ブログカード（記事への内部リンク） */
.swell-block-postLink {
	margin-bottom: 2em;
}

.p-blogCard {
	position: relative;
	border: 1px solid var(--color_border);
	background: #fff;
	padding: 1.5em 1.25em 1.25em;
	transition: box-shadow 0.25s;
}

.p-blogCard:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.p-blogCard__caption {
	position: absolute;
	top: -0.75em;
	left: 1em;
	padding: 0 0.5em;
	font-size: 11px;
	line-height: 1.5;
	background: var(--color_main);
	color: #fff;
}

.p-blogCard__inner {
	display: flex;
	align-items: center;
	gap: 1em;
}

.p-blogCard__thumb {
	width: 30%;
	flex-shrink: 0;
}

.p-blogCard__thumb img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.p-blogCard__body {
	flex: 1;
	min-width: 0;
}

.p-blogCard__title {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
	line-height: 1.5;
	font-size: 0.95em;
	display: block;
}

.p-blogCard__title::after {
	content: "";
	position: absolute;
	inset: 0;
}

.p-blogCard__excerpt {
	display: block;
	font-size: 0.8em;
	opacity: 0.8;
	margin-top: 0.25em;
}

.p-blogCard__excerpt:empty {
	display: none;
}

/* 記事一覧カード */
.p-postListWrap {
	margin-bottom: 2em;
}

.p-postList {
	list-style: none;
	margin: 0 -0.75em !important;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
}

.p-postList__item {
	width: 50%;
	padding: 0 0.75em;
	margin: 0 0 2em !important;
}

.p-postList.-sp-col1 .p-postList__item {
	width: 100%;
}

@media (min-width: 600px) {
	.p-postList__item,
	.p-postList.-sp-col1 .p-postList__item {
		width: 50%;
	}
}

@media (min-width: 960px) {
	.p-postList.-pc-col3 .p-postList__item,
	.p-relatedPosts .p-postList__item {
		width: 33.333%;
	}
}

.p-postList__link {
	display: block;
	color: inherit;
	text-decoration: none;
	height: 100%;
}

.p-postList__link:hover .c-postThumb__img {
	transform: scale(1.06);
}

.c-postThumb__figure {
	position: relative;
	overflow: hidden;
	padding-top: 56.25%;
	background: #eee;
}

.c-postThumb__img,
.c-postThumb__noimg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.25s;
}

.p-postList__body {
	padding-top: 0.75em;
}

.post_content .p-postList__title,
.p-postList__title {
	font-size: 0.95em;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 0.5em;
	padding: 0;
	background: none;
	color: inherit;
	white-space: normal;
}

.p-postList__meta {
	font-size: 11px;
	opacity: 0.8;
}

.c-postTimes__posted::before,
.c-postTimes__modified::before {
	content: "";
	display: inline-block;
	width: 0.9em;
	height: 0.9em;
	margin-right: 0.3em;
	vertical-align: -0.1em;
	background: currentColor;
	-webkit-mask: var(--icon-clock) center / contain no-repeat;
	mask: var(--icon-clock) center / contain no-repeat;
}

.c-postTimes__modified::before {
	-webkit-mask-image: var(--icon-refresh);
	mask-image: var(--icon-refresh);
}

.c-postTimes__modified {
	margin-left: 0.75em;
}

:root {
	--icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--icon-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M20 11a8 8 0 1 0-2.3 5.7'/%3E%3Cpath d='M20 5v6h-6'/%3E%3C/svg%3E");
	--icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
	--icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L4 7.3V8l8 5 8-5v-.7z'/%3E%3C/svg%3E");
	--icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}

/* 本文中のアイコン（旧サイトのアイコンフォントの代わり） */
.icon-phone::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.12em;
	background: currentColor;
	-webkit-mask: var(--icon-phone) center / contain no-repeat;
	mask: var(--icon-phone) center / contain no-repeat;
}

/* 区切り・余白 */
.wp-block-spacer {
	margin: 0 !important;
}

.post_content hr {
	border: 0;
	border-top: 1px solid var(--color_border);
	margin: 2.5em 0;
}

/* 旧サイトのブログパーツ（記事末尾の案内など） */
.p-blogParts {
	margin-bottom: 2em;
}

/* 動きの演出（旧サイトの fadeInUp）：表示時に一度だけ */
.animated {
	animation: fadeInUp 0.8s ease both;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.animated {
		animation: none;
	}
}

/* Google マップ等の埋め込み */
.post_content iframe {
	max-width: 100%;
	border: 0;
}

/* ------------------------------------------------------------ 投稿ページ */

.p-articleHead {
	margin-bottom: 1em;
}

.c-postTitle__ttl {
	font-size: 5vw;
	line-height: 1.4;
	margin: 0;
	font-weight: 700;
}

@media (min-width: 600px) {
	.c-postTitle__ttl {
		font-size: 1.5em;
	}
}

@media (min-width: 960px) {
	.c-postTitle__ttl {
		font-size: 24px;
	}
}

.p-articleMetas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em 1em;
	font-size: 12px;
	margin-bottom: 1.5em;
}

.c-categoryList {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.c-categoryList__link {
	display: inline-block;
	padding: 0.3em 0.8em;
	background: var(--color_main);
	color: #fff;
	text-decoration: none;
	font-size: 11px;
	border-radius: 1px;
	line-height: 1.4;
}

.p-articleThumb {
	margin-bottom: 2em;
	text-align: center;
}

.p-articleThumb__img {
	width: 100%;
	height: auto;
}

.p-toc {
	border: 1px solid var(--color_border);
	padding: 1.25em;
	margin: 3em auto;
	max-width: 800px;
	font-size: 0.9em;
	background: #fff;
}

.p-toc__ttl {
	display: block;
	font-size: 1.1em;
	line-height: 1;
	padding: 0 0.5em 0.75em;
	margin-bottom: 1em;
	border-bottom: 1px dashed var(--color_border);
	font-weight: 700;
}

.p-toc__list {
	margin: 0;
	padding-left: 1.5em;
	white-space: normal;
}

.p-toc__item {
	line-height: 1.6;
	white-space: normal;
}

.p-toc__item + .p-toc__item {
	margin-top: 0.5em;
}

.p-toc__item.-h3 {
	list-style: none;
	margin-left: 1em;
	font-size: 0.9em;
}

.p-toc__item a {
	color: inherit;
	text-decoration: none;
}

.p-toc__item a:hover {
	text-decoration: underline;
}

.p-articleFoot {
	margin: 3em 0 2em;
}

.l-articleBottom__section {
	margin-top: 4em;
}

.c-secTitle {
	font-size: 1.1em;
	font-weight: 700;
	text-align: center;
	margin: 0 0 1.5em;
	position: relative;
}

.p-authorBox {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5em;
	padding: 1.5em;
	border: 1px solid var(--color_border);
	background: #fff;
}

.p-authorBox__l {
	text-align: center;
	width: 100%;
}

.p-authorBox .avatar {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	margin: 0 auto 0.75em;
}

.p-authorBox__name {
	display: block;
	font-weight: 700;
}

.p-authorBox__position {
	display: block;
	font-size: 12px;
	opacity: 0.8;
}

.p-authorBox__r {
	flex: 1;
	font-size: 14px;
	line-height: 1.8;
}

.p-authorBox__desc {
	margin: 0;
	opacity: 0.85;
}

@media (min-width: 600px) {
	.p-authorBox__l {
		width: 140px;
	}
}

/* ------------------------------------------------------------ お問い合わせの案内（電話・外部フォームへのボタン） */

.kouno-contact {
	border: 2px solid var(--color_main);
	background: #fff;
	padding: 1.5em;
	text-align: center;
	margin-bottom: 2em;
}

.kouno-contact p {
	margin: 0 0 0.5em;
	white-space: normal;
}

.kouno-contact__tel a {
	font-size: 1.6em;
	font-weight: 700;
	color: var(--color_text);
	text-decoration: none;
}

.kouno-contact__tel a::before {
	content: "";
	display: inline-block;
	width: 0.9em;
	height: 0.9em;
	margin-right: 0.25em;
	background: var(--color_main);
	-webkit-mask: var(--icon-phone) center / contain no-repeat;
	mask: var(--icon-phone) center / contain no-repeat;
}

.kouno-contact__hours {
	font-size: 0.85em;
	opacity: 0.8;
}

.kouno-contact__form {
	padding-bottom: 1.25em;
	margin-bottom: 1.25em;
	border-bottom: 1px dashed var(--color_border);
}

.kouno-contact__form:last-child {
	padding-bottom: 0;
	margin-bottom: 0;
	border-bottom: 0;
}

/* ------------------------------------------------------------ フッター・固定メニュー */

.l-footer {
	background: var(--color_footer_bg);
	color: var(--color_footer_text);
	text-align: center;
	padding: 1em 0;
	font-size: 12px;
}

.l-footer .copyright {
	margin: 0;
}

/* 表示事項（事務所名・代表弁護士と所属弁護士会・所在地・電話） */
.l-footer__info {
	margin: 0.5em 0 1.25em;
	font-size: 13px;
	line-height: 1.8;
}

.l-footer__info p {
	margin: 0;
}

.l-footer__info .l-footer__name {
	font-size: 15px;
	font-weight: bold;
	margin-bottom: 0.25em;
}

.l-footer a {
	color: inherit;
}

/* LP は元の作りに合わせて控えめに */
.l-footer.-lp {
	background: #f7f7f7;
	color: #333;
}


#fix_bottom_menu {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 100;
	background: var(--color_main);
	color: #fff;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.1);
	padding-bottom: calc(env(safe-area-inset-bottom) * 0.5);
}

#fix_bottom_menu ul {
	list-style: none;
	margin: 0;
	padding: 2px 0 0;
	display: flex;
	height: 50px;
	align-items: center;
}

#fix_bottom_menu li {
	flex: 1 1 100%;
	text-align: center;
}

#fix_bottom_menu a {
	display: block;
	color: inherit;
	text-decoration: none;
	line-height: 1;
}

#fix_bottom_menu i {
	display: block;
	width: 20px;
	height: 20px;
	margin: 0 auto;
	background: currentColor;
	-webkit-mask: var(--icon-mail) center / contain no-repeat;
	mask: var(--icon-mail) center / contain no-repeat;
}

#fix_bottom_menu .icon-map i {
	-webkit-mask-image: var(--icon-map);
	mask-image: var(--icon-map);
}

#fix_bottom_menu .icon-phone i {
	-webkit-mask-image: var(--icon-phone);
	mask-image: var(--icon-phone);
}

#fix_bottom_menu .icon-phone::before {
	display: none;
}

#fix_bottom_menu span {
	display: block;
	font-size: 10px;
	margin-top: 4px;
}

@media (max-width: 959px) {
	body {
		padding-bottom: 52px;
	}
}

@media (min-width: 960px) {
	#fix_bottom_menu {
		display: none;
	}
}

.c-pagetop {
	position: fixed;
	right: 16px;
	bottom: 66px;
	z-index: 99;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: #fff;
	color: var(--color_main);
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}

.c-pagetop.is-show {
	opacity: 1;
	visibility: visible;
}

.c-pagetop:hover {
	background: var(--color_main);
	color: #fff;
}

@media (min-width: 960px) {
	.c-pagetop {
		bottom: 24px;
	}
}

.p-404 {
	text-align: center;
	padding: 4em 0;
}

/* ------------------------------------------------------------ 調整 */

/* 全幅ブロックの中の「幅広」は、はみ出させない */
.swell-block-fullWide__inner.l-container .alignwide,
.swell-block-fullWide__inner:not(.l-article) .alignwide {
	left: 0 !important;
	width: 100% !important;
}

html,
body {
	overflow-x: clip;
}

/* 吹き出しの中の段落 */
.c-balloon__text > p {
	margin: 0 0 0.5em;
}

.c-balloon__text > p:last-of-type {
	margin-bottom: 0;
}

/* カードの題名 */
.post_content .p-postList__title,
.p-postList__title {
	font-size: 3.6vw;
}

@media (min-width: 600px) {
	.post_content .p-postList__title,
	.p-postList__title {
		font-size: 15px;
	}
}

/* 全幅の「メディアと文章」は、文章側に左右の余白を持たせる */
.wp-block-media-text.alignfull .wp-block-media-text__content {
	padding-inline: var(--pad-container);
}

@media (min-width: 600px) {
	.wp-block-media-text.alignfull .wp-block-media-text__content {
		padding-inline: 8%;
	}
}
