/* ==========================================================================
   BITARX テーマ
   1. 基本設定（色・書体）
   2. ヘッダー・フッター・固定ページ
   3. Elementor で作ったページの見た目の調整
   4. フォーム（Contact Form 7）・表（TablePress）
   5. 旧テーマ（GeneratePress）の追加 CSS から引き継いだクラス
   ========================================================================== */

/* 1. 基本設定 ------------------------------------------------------------ */

:root {
	--bx-ink: #1c2033;
	--bx-text: #3b4050;
	--bx-muted: #6a7080;
	--bx-line: #e4e1da;
	--bx-bg: #f7f5f0;
	--bx-surface: #ffffff;
	--bx-primary: #2e2b6b;
	--bx-primary-soft: #eeedf7;
	--bx-accent: #d0262f;
	--bx-cta: #17a35c;
	--bx-cta-deep: #0f8b4b;
	--bx-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", Meiryo, sans-serif;
	--bx-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
	--bx-radius: 16px;
	--bx-shadow: 0 18px 40px -26px rgba(28, 32, 51, .45), 0 2px 6px -2px rgba(28, 32, 51, .06);
	--bx-wrap: 1140px;
}

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

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

body {
	margin: 0;
	background: var(--bx-bg);
	color: var(--bx-text);
	font-family: var(--bx-sans);
	font-size: 16px;
	line-height: 1.9;
	letter-spacing: .03em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

a { color: var(--bx-primary); text-underline-offset: .25em; transition: color .2s; }
a:hover { color: var(--bx-accent); }

:focus-visible { outline: 3px solid rgba(46, 43, 107, .45); outline-offset: 2px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bx-wrap {
	width: 100%;
	max-width: var(--bx-wrap);
	margin-inline: auto;
	padding-inline: 20px;
}

/* 2. ヘッダー・フッター・固定ページ --------------------------------------- */

.bx-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--bx-line);
}
.admin-bar .bx-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .bx-header { top: 0; } }

.bx-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 76px;
}

.bx-brand .custom-logo-link { display: block; }
.bx-brand .custom-logo { display: block; width: auto; height: 46px; }
.bx-brand__name { color: var(--bx-ink); font-weight: 700; text-decoration: none; font-size: 18px; }

.bx-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bx-nav__list a {
	display: block;
	padding: 9px 16px;
	border-radius: 999px;
	color: var(--bx-ink);
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.bx-nav__list a:hover,
.bx-nav__list .current-menu-item > a {
	background: var(--bx-primary-soft);
	color: var(--bx-primary);
}

.bx-nav-toggle {
	display: none;
	position: relative;
	width: 46px;
	height: 46px;
	border: 1px solid var(--bx-line);
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}
.bx-nav-toggle__bar,
.bx-nav-toggle__bar::before,
.bx-nav-toggle__bar::after {
	position: absolute;
	left: 50%;
	width: 20px;
	height: 2px;
	margin-left: -10px;
	border-radius: 2px;
	background: var(--bx-ink);
	transition: transform .25s, opacity .25s;
}
.bx-nav-toggle__bar { top: 50%; margin-top: -1px; }
.bx-nav-toggle__bar::before,
.bx-nav-toggle__bar::after { content: ""; left: 0; margin-left: 0; }
.bx-nav-toggle__bar::before { top: -6px; }
.bx-nav-toggle__bar::after { top: 6px; }
.bx-nav-open .bx-nav-toggle__bar { background: transparent; }
.bx-nav-open .bx-nav-toggle__bar::before { transform: translateY(6px) rotate(45deg); }
.bx-nav-open .bx-nav-toggle__bar::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px) {
	.bx-header__inner { min-height: 64px; }
	.bx-brand .custom-logo { height: 38px; }
	.bx-nav-toggle { display: block; }
	.bx-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		padding: 8px 20px 20px;
		background: #fff;
		border-bottom: 1px solid var(--bx-line);
		box-shadow: 0 24px 30px -24px rgba(28, 32, 51, .35);
	}
	.bx-nav-open .bx-nav { display: block; }
	.bx-nav__list { flex-direction: column; }
	.bx-nav__list a { padding: 14px 12px; border-radius: 10px; border-bottom: 1px solid var(--bx-line); }
}

/* 固定ページの見出し帯と本文 */
.bx-page-header {
	position: relative;
	overflow: hidden;
	padding: 72px 0 104px;
	background:
		radial-gradient(circle at 85% -20%, rgba(255, 255, 255, .14), transparent 45%),
		radial-gradient(circle at 0% 120%, rgba(208, 38, 47, .28), transparent 40%),
		linear-gradient(135deg, #2e2b6b, #1f1d4a);
	color: #fff;
	text-align: center;
}
.bx-page-title {
	margin: 0;
	font-family: var(--bx-serif);
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .08em;
	font-feature-settings: "palt";
}
.bx-page-title::after {
	content: "";
	display: block;
	width: 44px;
	height: 3px;
	margin: 20px auto 0;
	border-radius: 3px;
	background: var(--bx-accent);
}

.bx-page-body { padding-bottom: 96px; }
.bx-page-body > .entry-content {
	position: relative;
	max-width: 920px;
	margin: -64px auto 0;
	padding: clamp(28px, 6vw, 64px);
	background: var(--bx-surface);
	border-radius: 20px;
	box-shadow: var(--bx-shadow);
}

.entry-content > :first-child { margin-top: 0; }
.entry-content > :last-child { margin-bottom: 0; }
.entry-content p { margin: 0 0 1.5em; }
.entry-content h2 {
	position: relative;
	margin: 2.4em 0 1em;
	padding: 0 0 .6em;
	border-bottom: 1px solid var(--bx-line);
	color: var(--bx-ink);
	font-family: var(--bx-serif);
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: .06em;
}
.entry-content h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 56px;
	height: 3px;
	background: var(--bx-accent);
}
.entry-content h3 {
	margin: 2em 0 .8em;
	color: var(--bx-ink);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.6;
}
.entry-content ul,
.entry-content ol { padding-left: 1.4em; }
.entry-content .wp-block-spacer { max-height: 40px; }
.entry-content .wp-block-spacer + :is(h2, h3) { margin-top: .4em; }
.entry-content iframe { max-width: 100%; border-radius: 12px; }

.bx-archive { margin: 0; padding: 0; list-style: none; }
.bx-archive li { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--bx-line); }
.bx-archive time { color: var(--bx-muted); font-size: 14px; white-space: nowrap; }

/* フッター */
.bx-footer {
	padding: 56px 0 28px;
	background: #1c1a43;
	color: rgba(255, 255, 255, .78);
	font-size: 14px;
}
.bx-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 20px 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.bx-footer__name {
	color: #fff;
	font-family: var(--bx-serif);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none;
}
.bx-footer__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.bx-footer a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.bx-footer a:hover { color: #fff; text-decoration: underline; }
.bx-footer__copy { margin: 24px 0 0; text-align: center; color: rgba(255, 255, 255, .55); font-size: 12px; letter-spacing: .08em; }

/* 3. Elementor で作ったページ ------------------------------------------- */

/* 「サイト全体の設定（キット）」の既定色・既定書体を、テーマの色・書体に置き換える。
   要素ごとに色を指定した箇所（写真の上の白文字など）はそのまま残る。 */
body.bx[class*="elementor-kit-"] {
	--e-global-color-primary: var(--bx-primary);
	--e-global-color-secondary: var(--bx-ink);
	--e-global-color-text: var(--bx-text);
	--e-global-color-accent: var(--bx-cta);
	--e-global-typography-primary-font-family: var(--bx-sans);
	--e-global-typography-secondary-font-family: var(--bx-sans);
	--e-global-typography-text-font-family: var(--bx-sans);
	--e-global-typography-accent-font-family: var(--bx-sans);
}

/* 書体の統一（アイコン用の <i> は対象外） */
.bx .elementor :is(h1, h2, h3, h4, h5, h6, p, li, span, a, div, td, th, label, blockquote, cite, strong, b, em, input, select, textarea, button) {
	font-family: var(--bx-sans) !important;
}
.bx .elementor .elementor-heading-title {
	font-family: var(--bx-serif) !important;
	font-weight: 700 !important;
	line-height: 1.55 !important;
	letter-spacing: .06em !important;
	font-feature-settings: "palt";
}
.bx .elementor .elementor-heading-title * { font-family: inherit !important; }

/* 写真・色の背景があるセクションの文中リンクは、周りの文字色＋下線にする（藍色だと背景に埋もれるため） */
.bx .elementor-top-section[data-settings*="background_background"] :is(.elementor-widget-text-editor, .elementor-icon-box-description, .elementor-image-box-description, .elementor-icon-box-title, .elementor-image-box-title) a {
	color: inherit !important;
	text-decoration: underline;
}

/* 本文 */
.bx .elementor-widget-text-editor { line-height: 1.95; }
/* 段落の下の余白は旧テーマと同じ 1.5em（ボタンなどの位置がこの余白を前提に組まれているため） */
.bx .elementor-widget-text-editor p { margin: 0 0 1.5em; }
/* 大きな文字を段落で並べたブロック（Elementor の「CSS クラス」に bx-tight）は段落間を詰める */
.bx .elementor-widget-text-editor.bx-tight :is(p, h1, h2, h3, h4) { margin-bottom: .15em; }
.bx .elementor-widget-text-editor.bx-tight :is(p, h1, h2, h3, h4):last-child { margin-bottom: 0; }
/* 間隔あけ用の空の段落（functions.php で bx-gap を付ける）は高さをそろえる */
.bx .elementor-widget-text-editor p.bx-gap { height: .75em; margin: 0; overflow: hidden; font-size: inherit; line-height: 0; }
/* 文章ブロックの中に直接書かれた見出しの大きさ（旧テーマの指定に合わせる） */
.bx .elementor-widget-text-editor :is(h1, h2, h3, h4) {
	margin: 0 0 .8em;
	color: var(--bx-ink);
	font-family: var(--bx-serif) !important;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .06em;
	font-feature-settings: "palt";
}
.bx .elementor-widget-text-editor h1 { font-size: 30px; }
.bx .elementor-widget-text-editor h2 { font-size: 30px; }
.bx .elementor-widget-text-editor h3 { font-size: 20px; }
.bx .elementor-widget-text-editor h4 { font-size: 18px; }
@media (max-width: 767px) {
	.bx .elementor-widget-text-editor h1 { font-size: 26px; }
	.bx .elementor-widget-text-editor h2 { font-size: 25px; }
}
/* 番号付きの小見出し（/sell/ の ①②③ など。文章ブロック内で class="bx-point__title" を付けた h3） */
.bx .elementor-widget-text-editor h3.bx-point__title {
	margin: 2.2em 0 .6em;
	padding: 2px 0 2px 16px;
	border-left: 4px solid var(--bx-accent);
	color: var(--bx-primary);
	font-size: 24px;
	line-height: 1.6;
}
.bx .elementor-widget-text-editor p.bx-gap + h3.bx-point__title { margin-top: 1em; }
@media (max-width: 767px) {
	.bx .elementor-widget-text-editor h3.bx-point__title { margin-top: 1.8em; font-size: 20px; }
}

/* よくある質問（区切り線のある文章ブロック）をカードに */
.bx .elementor-widget-text-editor:has(> .elementor-widget-container > hr) > .elementor-widget-container {
	padding: clamp(24px, 5vw, 56px);
	background: var(--bx-surface);
	border-radius: 20px;
	box-shadow: var(--bx-shadow);
}
.bx .elementor-widget-text-editor:has(> .elementor-widget-container > hr) p > strong {
	color: var(--bx-primary);
}
.bx .elementor-widget-text-editor hr {
	height: 0;
	margin: 2.2em 0;
	border: 0;
	border-top: 1px dashed #d9d5cc;
}

/* アイコンボックス・画像ボックス（背景のないセクションのものだけカードにする） */
.bx .elementor-icon-box-title,
.bx .elementor-image-box-title {
	font-weight: 700 !important;
	line-height: 1.6 !important;
	letter-spacing: .05em !important;
}
.bx .elementor-icon-box-description,
.bx .elementor-image-box-description { line-height: 1.9 !important; }

.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-widget-image-box, .elementor-widget-icon-box) > .elementor-widget-container {
	height: 100%;
	padding: 28px 22px 26px;
	background: var(--bx-surface);
	border: 1px solid #ece9e2;
	border-radius: var(--bx-radius);
	box-shadow: var(--bx-shadow);
	transition: transform .25s, box-shadow .25s;
}
.bx .elementor-top-section:not([data-settings*="background_background"]) .elementor-widget-image-box > .elementor-widget-container:hover {
	transform: translateY(-3px);
	box-shadow: 0 26px 46px -26px rgba(28, 32, 51, .5);
}
/* カード内の見出し・アイコンの色をそろえる（水色・灰色などの個別指定を藍色に） */
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-icon-box-title, .elementor-image-box-title),
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-icon-box-title, .elementor-image-box-title) :is(a, span) {
	color: var(--bx-primary) !important;
}
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-widget-icon-box, .elementor-widget-icon) .elementor-view-default .elementor-icon,
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-widget-icon-box, .elementor-widget-icon) .elementor-view-framed .elementor-icon {
	color: var(--bx-primary) !important;
	fill: var(--bx-primary) !important;
	border-color: var(--bx-primary) !important;
}
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-widget-icon-box, .elementor-widget-icon) .elementor-view-stacked .elementor-icon {
	background-color: var(--bx-primary) !important;
	color: #fff !important;
	fill: #fff !important;
}
.bx .elementor-top-section:not([data-settings*="background_background"]) :is(.elementor-widget-icon-box, .elementor-widget-icon) .elementor-icon svg { fill: currentColor !important; }
/* 1 列だけのカード（ご依頼の流れなど）は横に広がりすぎないように */
.bx .elementor-col-100 > .elementor-widget-wrap > .elementor-widget-icon-box > .elementor-widget-container {
	max-width: 760px;
	margin-inline: auto;
}
.bx .elementor-image-box-img img { border-radius: 14px; }
.bx .elementor-icon-box-icon .elementor-icon { transition: transform .25s; }

/* ボタン（お問い合わせ・ご相談） */
.bx .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 18px 44px !important;
	background: linear-gradient(180deg, #1db466, var(--bx-cta-deep)) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: 0 12px 26px -12px rgba(15, 139, 75, .75), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
	color: #fff !important;
	fill: #fff !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
	letter-spacing: .08em !important;
	text-align: center;
	transition: transform .2s, box-shadow .2s, filter .2s;
}
.bx .elementor-button * { color: inherit !important; font-weight: inherit !important; letter-spacing: inherit !important; }
.bx .elementor-button:hover,
.bx .elementor-button:focus-visible {
	transform: translateY(-2px);
	filter: brightness(1.06);
	box-shadow: 0 18px 32px -14px rgba(15, 139, 75, .8), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
}
@media (max-width: 767px) {
	.bx .elementor-button { padding: 16px 28px !important; font-size: 16px !important; }
}

/* お客様の声 */
.bx .elementor-testimonial-wrapper {
	padding: 32px clamp(22px, 4vw, 44px) 26px;
	background: var(--bx-surface);
	border-radius: 20px;
	box-shadow: var(--bx-shadow);
	text-align: left !important;
}
.bx .elementor-testimonial-content {
	position: relative;
	padding-top: 22px;
	color: var(--bx-text) !important;
	font-size: 16px !important;
	line-height: 1.95 !important;
}
.bx .elementor-testimonial-content::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 32px;
	height: 3px;
	border-radius: 3px;
	background: var(--bx-accent);
}
.bx .elementor-testimonial-meta { margin-top: 18px !important; }
.bx .elementor-testimonial-image img { width: 44px !important; height: 44px !important; }
.bx .elementor-testimonial-name { color: var(--bx-primary) !important; font-weight: 700 !important; }

/* 画像・地図 */
.bx .elementor-widget-image img { border-radius: 14px; }
.bx .elementor-widget-google_maps iframe,
.bx .elementor-custom-embed iframe { border-radius: var(--bx-radius); }

/* ページ上部・下部のメニュー（テンプレート内のナビ） */
.bx .elementor-top-section:has(.rent2026-nav) { background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--bx-line); }
.bx [data-elementor-type] > .elementor-top-section:last-child:has(.rent2026-nav) { border-top: 1px solid var(--bx-line); border-bottom: 0; }
.bx .rent2026-nav ul { gap: 2px 6px !important; }
.bx .rent2026-nav a {
	padding: 9px 16px !important;
	border-radius: 999px;
	color: var(--bx-ink) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	transition: background-color .2s, color .2s;
}
.bx .rent2026-nav a:hover,
.bx .rent2026-nav .current-menu-item > a { background: var(--bx-primary-soft); color: var(--bx-primary) !important; }

/* 比較表（Tables for Elementor） */
.bx .elementor-widget-standard-table .elementor-widget-container {
	overflow: hidden;
	border-radius: var(--bx-radius);
	box-shadow: var(--bx-shadow);
}

/* 4. フォーム ------------------------------------------------------------ */

.bx .wpcf7 {
	padding: clamp(22px, 4vw, 40px);
	background: var(--bx-surface);
	border: 1px solid #ece9e2;
	border-radius: 20px;
	box-shadow: var(--bx-shadow);
	color: var(--bx-ink);
	text-align: left;
}
.bx .wpcf7-form > p,
.bx .wpcf7-form label {
	color: var(--bx-ink) !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.8;
}
.bx .wpcf7-form > p { margin: 0 0 20px; }
.bx .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea) {
	display: block;
	width: 100%;
	max-width: 100%;
	margin-top: 6px;
	padding: 13px 16px;
	background: #fcfbf9;
	border: 1px solid #d8d4cb;
	border-radius: 12px;
	color: var(--bx-ink);
	font: 400 16px/1.6 var(--bx-sans);
	letter-spacing: .02em;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.bx .wpcf7 select { width: auto; min-width: 220px; }
.bx .wpcf7 textarea { min-height: 180px; resize: vertical; }
.bx .wpcf7 :is(input, select, textarea):focus {
	outline: none;
	background: #fff;
	border-color: var(--bx-primary);
	box-shadow: 0 0 0 4px rgba(46, 43, 107, .12);
}
.bx .wpcf7-list-item { display: inline-flex; align-items: center; margin: 6px 20px 6px 0; font-weight: 400; }
.bx .wpcf7-list-item input { width: 18px; height: 18px; margin: 0 8px 0 0; accent-color: var(--bx-primary); }
.bx .wpcf7-list-item-label { font-weight: 400; }
.bx .wpcf7-acceptance .wpcf7-list-item { margin-right: 0; }
.bx .wpcf7 input[type="submit"] {
	display: block;
	width: 100%;
	max-width: 320px;
	margin: 8px auto 0;
	padding: 16px 32px;
	background: linear-gradient(180deg, #1db466, var(--bx-cta-deep));
	border: 0;
	border-radius: 999px;
	box-shadow: 0 12px 26px -12px rgba(15, 139, 75, .75);
	color: #fff;
	font: 700 17px/1.5 var(--bx-sans);
	letter-spacing: .12em;
	cursor: pointer;
	transition: transform .2s, filter .2s;
}
.bx .wpcf7 input[type="submit"]:hover { transform: translateY(-2px); filter: brightness(1.06); }
.bx .wpcf7 .wpcf7-spinner { display: block; margin: 12px auto 0; }
.bx .wpcf7-form:not(.submitting) .wpcf7-spinner { display: none; }
.bx .wpcf7-form > p:last-of-type { margin-bottom: 0; }
.bx .wpcf7-not-valid-tip { margin-top: 6px; font-size: 14px; font-weight: 400; }
.bx .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 14px 18px; border-radius: 12px; font-weight: 400; }

/* 表（TablePress：会社概要・特定商取引法に基づく表記） */
.bx .tablepress {
	width: 100%;
	margin: 0 0 1.5em;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--bx-line);
	border-radius: var(--bx-radius);
	overflow: hidden;
	background: #fff;
	font-size: 15px;
	line-height: 1.8;
}
.bx .tablepress :is(th, td) {
	padding: 16px 22px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--bx-line) !important;
	background: #fff !important;
	color: var(--bx-text);
	vertical-align: top;
	text-align: left;
}
.bx .tablepress tr:last-child > * { border-bottom: 0 !important; }
.bx .tablepress tr > :first-child {
	background: #f6f5fa !important;
	color: var(--bx-ink);
	font-weight: 700;
	white-space: normal;
}
/* 文章ブロック・固定ページに直接書かれた表（TablePress 以外） */
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) {
	width: 100%;
	margin: 0 0 1.5em;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid #d3cfc5;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	font-size: .94em;
	line-height: 1.8;
}
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) :is(th, td) {
	padding: 14px 18px;
	border: 0;
	border-right: 1px solid #e2ded5;
	border-bottom: 1px solid #e2ded5;
	vertical-align: middle;
	text-align: left;
}
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) tr > :last-child { border-right: 0; }
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) tr:last-child > * { border-bottom: 0; }
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) thead th {
	background: var(--bx-primary);
	border-color: rgba(255, 255, 255, .18);
	color: #fff;
	font-weight: 700;
	text-align: center;
	letter-spacing: .08em;
}
.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) tbody th {
	width: 28%;
	background: #f6f5fa;
	color: var(--bx-ink);
	font-weight: 700;
}
@media (max-width: 600px) {
	.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) { font-size: .88em; }
	.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) :is(th, td) { padding: 10px 12px; }
	.bx :is(.elementor-widget-text-editor, .entry-content) table:not(.tablepress) tbody th { width: 36%; }
}

/* スマホでは「項目名 → 内容」の縦並びにする */
@media (max-width: 600px) {
	.bx .tablepress,
	.bx .tablepress :is(thead, tbody, tfoot, tr, th, td) { display: block; width: 100% !important; }
	.bx .tablepress colgroup { display: none; }
	.bx .tablepress :is(th, td) { padding: 12px 16px !important; font-size: 15px; }
	.bx .tablepress tr > :first-child { padding: 10px 16px !important; border-bottom: 0 !important; font-size: 14px; }
	.bx .tablepress tr:last-child > :first-child { border-bottom: 0 !important; }
}

/* 5. 旧テーマの追加 CSS から引き継いだクラス -------------------------------- */

@media (min-width: 768px) {
	.br-sp { display: none; }
}
@media (max-width: 600px) {
	.blocks-gallery-grid .blocks-gallery-image img,
	.blocks-gallery-grid .blocks-gallery-item img,
	.wp-block-gallery .blocks-gallery-image img,
	.wp-block-gallery .blocks-gallery-item img { max-width: 60%; }
}
#el-tables-tripple .table-cell:first-child { outline: 1px solid #efefef; }
.warn { font-size: 26px; background-color: #ff9; }
.red { color: #cf2e2e; }

ul.faq_list { padding: 10px 0 20px; list-style: none; }
ul.faq_list li { margin-bottom: 20px; padding-left: 45px; }
ul.faq_list li.qus { font-weight: bold; }
ul.faq_list li.qus::before,
ul.faq_list li.ans::before {
	display: inline-block;
	margin: 0 6px 0 -40px;
	padding: 0 11px 3px;
	border-radius: 18px;
	font-size: 18px;
	font-weight: bold;
	line-height: 32px;
	text-align: center;
}
ul.faq_list li.qus::before { content: "Q"; background-color: var(--bx-primary); color: #fff; }
ul.faq_list li.ans::before { content: "A"; background-color: #fff; border: 1px solid var(--bx-primary); color: var(--bx-primary); }
