/*
Theme Name: Lightning Child (行政書士事務所Navi)
Template: lightning
Description: 行政書士事務所Navi リニューアル用 Lightning 子テーマ
Author: 行政書士事務所Navi
Version: 0.3.0
Text Domain: lightning-child
*/

/* ==========================================================
   0. デザイン変数
   方針：背景は白ベースですっきり。ロゴの蝶の色（#92B2B9）を
   深くしたティールをメインに使い、文字はしっかり濃く。
   ========================================================== */
:root {
	--navi-primary: #2c5f6e;        /* メイン：ロゴの羽色を深くしたティール（白地コントラスト 7:1） */
	--navi-primary-dark: #1f4753;   /* ホバー */
	--navi-wing: #92b2b9;           /* ロゴの羽の色（線・装飾のみ） */
	--navi-tint: #eef4f5;           /* ごく淡いティール（見出し背景・表） */
	--navi-bg-alt: #f7f9fa;         /* サイドバー等の控えめな面 */
	--navi-white: #ffffff;

	--navi-text: #1f2a30;           /* 本文：ほぼ黒で読みやすく */
	--navi-muted: #4a5a64;          /* 補足文字（白地コントラスト 7:1） */
	--navi-border: #d9e3e6;

	--navi-footer-bg: #24363e;
	--navi-footer-text: #eef3f5;

	--navi-radius: 999px;
	--navi-radius-card: 10px;

	/* Lightning のキーカラーを上書き */
	--vk-color-primary: var(--navi-primary);
	--vk-color-primary-dark: var(--navi-primary-dark);
	--vk-color-primary-vivid: #347182;
	--vk-color-text-body: var(--navi-text);
	--vk-color-text-meta: var(--navi-muted);
	--vk-color-border-hr: var(--navi-border);
}

/* ==========================================================
   1. ベース
   ========================================================== */
body {
	background-color: var(--navi-white);
	color: var(--navi-text);
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	line-height: 1.9;
	letter-spacing: 0.03em;
}

a {
	color: var(--navi-primary);
}

a:hover {
	color: var(--navi-primary-dark);
}

/* ==========================================================
   2. ヘッダー
   ========================================================== */
.site-header {
	background-color: var(--navi-white);
	border-bottom: 1px solid var(--navi-border);
}

.global-nav-list > li > a {
	color: var(--navi-text);
	font-weight: 700;
}

.global-nav-list > li > a:hover,
.global-nav-list > li.current-menu-item > a,
.global-nav-list > li.current-menu-ancestor > a {
	color: var(--navi-primary);
}

.global-nav-list > li > ul.sub-menu,
.global-nav-list .sub-menu {
	background-color: var(--navi-white);
	border-top: 3px solid var(--navi-primary);
	box-shadow: 0 8px 24px rgba(31, 42, 48, 0.15);
}

/* 吹き出しの三角もメインカラーに合わせる */
.global-nav-list > li > ul.sub-menu::before {
	border-bottom-color: var(--navi-primary);
}

.global-nav-list .sub-menu li,
.global-nav-list .sub-menu li a {
	background-color: var(--navi-white);
}

.global-nav-list .sub-menu li a,
.global-nav-list .sub-menu li a:visited {
	color: var(--navi-text);
	font-weight: 500;
	border-bottom: 1px solid var(--navi-border);
}

.global-nav-list .sub-menu li:last-child > a {
	border-bottom: none;
}

.global-nav-list .sub-menu li a:hover,
.global-nav-list .sub-menu li.current-menu-item > a {
	background-color: var(--navi-tint);
	color: var(--navi-primary);
}

/* ==========================================================
   3. ヘッダー：電話・お問い合わせボタン（PC表示）
   ========================================================== */
@media (min-width: 992px) {
	.global-nav-list > li.navi-menu-tel,
	.global-nav-list > li.navi-menu-contact {
		display: flex;
		align-items: center;
		margin-left: 0.5rem;
	}

	.global-nav-list > li.navi-menu-tel > a,
	.global-nav-list > li.navi-menu-contact > a {
		padding: 0.55em 1.2em;
		border-radius: var(--navi-radius);
		font-weight: 700;
		line-height: 1.2;
		white-space: nowrap;
		transition: background-color 0.2s ease, color 0.2s ease;
	}

	.global-nav-list > li.navi-menu-tel > a {
		background: var(--navi-white);
		color: var(--navi-primary);
		border: 2px solid var(--navi-primary);
	}

	.global-nav-list > li.navi-menu-tel > a:hover {
		background: var(--navi-tint);
	}

	.global-nav-list > li.navi-menu-contact > a {
		background: var(--navi-primary);
		color: var(--navi-white);
		border: 2px solid var(--navi-primary);
	}

	.global-nav-list > li.navi-menu-contact > a:hover {
		background: var(--navi-primary-dark);
		border-color: var(--navi-primary-dark);
		color: var(--navi-white);
	}

	.global-nav-list > li.navi-menu-tel > a::after,
	.global-nav-list > li.navi-menu-contact > a::after {
		display: none;
	}
}

/* ==========================================================
   4. 下層ページのタイトル帯：メインカラー＋白文字でくっきり
   ========================================================== */
.page-header {
	background: var(--navi-primary);
	background-image: linear-gradient(120deg, var(--navi-primary-dark) 0%, var(--navi-primary) 60%, #3d7686 100%);
	border-bottom: 4px solid var(--navi-wing);
}

.page-header .page-header-title,
.page-header h1 {
	color: var(--navi-white);
	font-weight: 700;
	letter-spacing: 0.08em;
}

.breadcrumb,
.breadcrumb a {
	color: var(--navi-muted);
}

/* ==========================================================
   5. 本文の見出し・表・ボタン
   ========================================================== */
.entry-body h2 {
	position: relative;
	margin-top: 2.5em;
	margin-bottom: 1em;
	padding: 0.6em 0.9em;
	border: none;
	border-left: 6px solid var(--navi-primary);
	border-radius: 0 6px 6px 0;
	background: var(--navi-tint);
	color: var(--navi-text);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
}

.entry-body h2::after,
.entry-body h2::before {
	display: none;
}

.entry-body h2:first-child {
	margin-top: 0;
}

.entry-body h3 {
	margin-top: 2em;
	padding: 0 0 0.4em;
	border: none;
	border-bottom: 2px solid var(--navi-primary);
	background: none;
	color: var(--navi-text);
	font-size: 1.2rem;
	font-weight: 700;
}

/* 表（料金表・事務所概要） */
.entry-body .wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	background: var(--navi-white);
}

.entry-body .wp-block-table th,
.entry-body .wp-block-table td {
	border: 1px solid var(--navi-border);
	padding: 0.9em 1.1em;
	color: var(--navi-text);
}

.entry-body .wp-block-table thead th {
	background: var(--navi-primary);
	color: var(--navi-white);
	font-weight: 700;
	border-color: var(--navi-primary);
}

.entry-body .wp-block-table tbody td:first-child {
	background: var(--navi-tint);
	font-weight: 700;
	width: 40%;
}

/* ボタン */
.wp-block-button__link,
.btn-primary {
	background-color: var(--navi-primary);
	border-color: var(--navi-primary);
	border-radius: var(--navi-radius);
	color: var(--navi-white);
	font-weight: 700;
}

.wp-block-button__link:hover,
.btn-primary:hover {
	background-color: var(--navi-primary-dark);
	border-color: var(--navi-primary-dark);
	color: var(--navi-white);
}

/* ==========================================================
   6. サイドバー
   ========================================================== */
.sub-section .sub-section-title,
.sub-section .widget-title {
	border-bottom: 2px solid var(--navi-primary);
	color: var(--navi-text);
	font-weight: 700;
}

.sub-section .widget a,
.sub-section .local-navi a {
	color: var(--navi-text);
}

.sub-section .widget a:hover,
.sub-section .local-navi a:hover,
.sub-section .current_page_item > a {
	color: var(--navi-primary);
	background-color: var(--navi-tint);
}

/* ==========================================================
   7. 業務カード（親ページの子ページ一覧）
   ========================================================== */
.navi-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 1.25rem;
	margin: 1.5rem 0 2rem;
	padding: 0;
	list-style: none;
}

.navi-card {
	margin: 0;
}

.navi-card > a {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--navi-white);
	border: 1px solid var(--navi-border);
	border-radius: var(--navi-radius-card);
	color: var(--navi-text);
	text-decoration: none;
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.navi-card > a:hover {
	border-color: var(--navi-wing);
	box-shadow: 0 8px 24px rgba(31, 42, 48, 0.12);
	transform: translateY(-2px);
	color: var(--navi-text);
}

/* 画像エリア：アイキャッチ画像があれば写真、なければアイコン */
.navi-card-media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: linear-gradient(135deg, var(--navi-tint) 0%, #dce9ec 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.navi-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.navi-card > a:hover .navi-card-media img {
	transform: scale(1.04);
}

.navi-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	background: var(--navi-primary);
	color: var(--navi-white);
	font-size: 1.9rem;
	box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7);
}

.navi-card-body {
	flex: 1;
	padding: 1rem 1.2rem 1.2rem;
}

.navi-card-title,
.entry-body .navi-card .navi-card-title {
	margin: 0 0 0.4em;
	padding: 0;
	border: none;
	background: none;
	color: var(--navi-text);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.5;
}

.navi-card-text,
.entry-body .navi-card .navi-card-text {
	margin: 0;
	color: var(--navi-muted);
	font-size: 0.9rem;
	line-height: 1.7;
}

.navi-card-more {
	display: block;
	padding: 0.7rem 1.2rem;
	border-top: 1px solid var(--navi-border);
	color: var(--navi-primary);
	font-size: 0.9rem;
	font-weight: 700;
}

.navi-card-more::after {
	content: " ›";
}

/* ==========================================================
   8. お問い合わせフォーム（Contact Form 7）
   ========================================================== */
.wpcf7 label {
	display: block;
	margin-bottom: 1.2em;
	font-weight: 700;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	margin-top: 0.4em;
	padding: 0.7em 0.9em;
	background: var(--navi-white);
	border: 1px solid #b9c8cd;
	border-radius: 6px;
	color: var(--navi-text);
	font-weight: 400;
}

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--navi-primary);
	box-shadow: 0 0 0 3px rgba(44, 95, 110, 0.18);
}

.wpcf7 input[type="submit"] {
	display: block;
	min-width: 240px;
	margin: 1.5em auto 0;
	padding: 0.9em 2em;
	background: var(--navi-primary);
	border: none;
	border-radius: var(--navi-radius);
	color: var(--navi-white);
	font-weight: 700;
	cursor: pointer;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--navi-primary-dark);
}

/* ==========================================================
   9. フッター
   ========================================================== */
.site-footer {
	background-color: var(--navi-footer-bg);
	color: var(--navi-footer-text);
	border-top: 4px solid var(--navi-wing);
}

.site-footer a,
.site-footer .widget-title,
.site-footer-copyright p {
	color: var(--navi-footer-text);
}

.site-footer a:hover {
	color: var(--navi-white);
}

.site-footer-copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

/* カード内のリンク装飾（テーマ既定の下線など）を消す */
.entry-body .navi-card a,
.entry-body .navi-card a * {
	text-decoration: none;
	background-image: none;
}

.entry-body .navi-card .navi-card-title::before,
.entry-body .navi-card .navi-card-title::after {
	display: none;
	content: none;
}

/* ==========================================================
   10. お問い合わせ CTA（[navi_cta]）
   ========================================================== */
.navi-cta {
	position: relative;
	margin: 3rem 0 1rem;
	padding: clamp(2.5rem, 6vw, 4rem) clamp(1.25rem, 4vw, 3rem);
	overflow: hidden;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--navi-primary-dark) 0%, var(--navi-primary) 55%, #3d7686 100%);
	color: var(--navi-white);
	text-align: center;
}

/* ロゴの羽色でやわらかい光を重ねる */
.navi-cta::before,
.navi-cta::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	background: var(--navi-wing);
	opacity: 0.18;
	pointer-events: none;
}

.navi-cta::before {
	top: -80px;
	right: -60px;
	width: 260px;
	height: 260px;
}

.navi-cta::after {
	bottom: -100px;
	left: -70px;
	width: 220px;
	height: 220px;
}

.navi-cta-inner {
	position: relative;
	z-index: 1;
	max-width: 760px;
	margin: 0 auto;
}

.entry-body .navi-cta p {
	margin: 0;
	color: var(--navi-white);
}

.entry-body .navi-cta .navi-cta-eyebrow {
	color: var(--navi-wing);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.3em;
}

.entry-body .navi-cta .navi-cta-title {
	margin: 0.3em 0 0.6em;
	font-size: clamp(1.5rem, 3.5vw, 2rem);
	font-weight: 700;
	letter-spacing: 0.08em;
}

.entry-body .navi-cta .navi-cta-lead {
	margin-bottom: 2rem;
	font-size: 0.95rem;
	line-height: 1.9;
	opacity: 0.95;
}

/* 電話・メール */
.navi-cta-main {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
}

.entry-body .navi-cta .navi-cta-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2em;
	padding: 1.1em 1em;
	border-radius: 10px;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.entry-body .navi-cta .navi-cta-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
}

.navi-cta-btn-label {
	font-size: 0.85rem;
	font-weight: 500;
}

.navi-cta-btn-label i {
	margin-right: 0.5em;
}

.navi-cta-btn-main {
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.entry-body .navi-cta .navi-cta-tel {
	background: rgba(255, 255, 255, 0.08);
	border: 2px solid rgba(255, 255, 255, 0.85);
	color: var(--navi-white);
}

.entry-body .navi-cta .navi-cta-tel:hover {
	background: rgba(255, 255, 255, 0.16);
	color: var(--navi-white);
}

.entry-body .navi-cta .navi-cta-mail {
	background: var(--navi-white);
	border: 2px solid var(--navi-white);
	color: var(--navi-primary-dark);
}

.entry-body .navi-cta .navi-cta-mail:hover {
	color: var(--navi-primary-dark);
}

/* LINE・Instagram・YouTube */
.navi-cta-sns {
	margin-top: 2rem;
	padding-top: 1.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.entry-body .navi-cta .navi-cta-sns-title {
	margin-bottom: 1rem;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.navi-cta-sns-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}

.entry-body .navi-cta .navi-sns-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	min-width: 180px;
	justify-content: center;
	padding: 0.75em 1.5em;
	border-radius: var(--navi-radius);
	color: var(--navi-white);
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transition: transform 0.2s ease, filter 0.2s ease;
}

.entry-body .navi-cta .navi-sns-btn:hover {
	transform: translateY(-2px);
	filter: brightness(1.08);
	color: var(--navi-white);
}

.navi-sns-btn i {
	font-size: 1.3em;
}

.navi-sns-line {
	background: #06c755;
}

.navi-sns-instagram {
	background: linear-gradient(45deg, #f58529 0%, #dd2a7b 50%, #8134af 100%);
}

.navi-sns-youtube {
	background: #ff0000;
}

@media (max-width: 575px) {
	.entry-body .navi-cta .navi-sns-btn {
		width: 100%;
	}
}

/* ==========================================================
   11. トップページ
   ========================================================== */
.home .page-header,
.home .breadcrumb {
	display: none;
}

.home .entry-body > *:first-child {
	margin-top: 0;
}

/* 画面幅いっぱいのセクション */
.navi-full {
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.navi-container {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}

.navi-section {
	padding: clamp(3.5rem, 8vw, 6rem) 0;
}

.entry-body .navi-full p {
	margin: 0;
}

/* トップページの見出しタグ（h1〜h4）に本文用の見出しデザインが付かないようリセット
   ※ 上の p と同じ詳細度にして、見た目を p だったときと同じに保つ */
.entry-body .navi-full :is(h1, h2, h3, h4) {
	position: static;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.entry-body .navi-full :is(h1, h2, h3, h4)::before,
.entry-body .navi-full :is(h1, h2, h3, h4):not(.navi-sec-title)::after {
	display: none;
	content: none;
}

/* p だったときの行の高さ（170%）を維持 */
.entry-body .navi-full :is(.navi-hero-catch, .navi-strength-title, .navi-service-group-title, .navi-price-title, .navi-flow-title) {
	line-height: 170%;
}

/* セクション見出し */
.navi-sec-head {
	margin-bottom: clamp(2rem, 5vw, 3rem);
	text-align: center;
}

.entry-body .navi-sec-en,
.navi-sec-en {
	color: var(--navi-primary);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.3em;
}

.entry-body .navi-sec-title {
	margin-top: 0.4em;
	color: var(--navi-text);
	font-size: clamp(1.5rem, 3.2vw, 2rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.5;
}

.navi-sec-title::after,
.entry-body .navi-full .navi-sec-title::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin: 0.7em auto 0;
	border-radius: 2px;
	background: var(--navi-wing);
}

/* 「一覧を見る」リンク */
.entry-body .navi-link-more {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	color: var(--navi-primary);
	font-weight: 700;
	text-decoration: none;
}

.navi-link-more::after {
	content: "›";
	font-size: 1.2em;
	transition: transform 0.2s ease;
}

.navi-link-more:hover::after {
	transform: translateX(3px);
}

/* ---------- メインビジュアル ---------- */
.navi-hero {
	display: flex;
	align-items: center;
	min-height: clamp(460px, 72vh, 680px);
	padding: 4rem 0;
	background-color: var(--navi-primary-dark);
	background-image:
		linear-gradient(100deg, rgba(20, 50, 60, 0.92) 0%, rgba(31, 71, 83, 0.78) 45%, rgba(44, 95, 110, 0.25) 100%),
		var(--navi-hero-bg, none);
	background-size: cover;
	background-position: center;
	color: var(--navi-white);
}

.navi-hero-inner {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}

.entry-body .navi-hero-catch {
	display: inline-block;
	margin-bottom: 1.2rem;
	padding: 0.35em 1em;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: var(--navi-radius);
	color: var(--navi-white);
	font-size: 0.9rem;
	letter-spacing: 0.1em;
}

/* メインビジュアルの h1（キャッチ＋タイトルをまとめた見出し） */
.entry-body .navi-full .navi-hero-heading {
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
}

.entry-body .navi-hero-heading .navi-hero-catch {
	margin: 0;
	vertical-align: top;
}

.entry-body .navi-hero-heading .navi-hero-title {
	display: block;
}

.entry-body .navi-hero-title {
	color: var(--navi-white);
	font-size: clamp(2rem, 5.2vw, 3.3rem);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.entry-body .navi-hero-lead {
	max-width: 640px;
	margin-top: 1.4rem;
	color: rgba(255, 255, 255, 0.95);
	font-size: clamp(0.95rem, 1.6vw, 1.05rem);
	line-height: 2;
}

.navi-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	margin-top: 2.2rem;
}

.entry-body .navi-hero-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.95em 1.9em;
	border-radius: var(--navi-radius);
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.entry-body .navi-hero-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
}

.entry-body .navi-hero-btn-primary {
	background: var(--navi-white);
	color: var(--navi-primary-dark);
}

.entry-body .navi-hero-btn-primary:hover {
	color: var(--navi-primary-dark);
}

.entry-body .navi-hero-btn-ghost {
	border: 2px solid rgba(255, 255, 255, 0.85);
	color: var(--navi-white);
	font-size: 1.1rem;
	letter-spacing: 0.05em;
}

.entry-body .navi-hero-btn-ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	color: var(--navi-white);
}

.entry-body .navi-hero-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.2rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.entry-body .navi-hero-tags li {
	margin: 0;
	color: rgba(255, 255, 255, 0.9);
	font-size: 0.85rem;
}

.navi-hero-tags li::before {
	content: "✓";
	margin-right: 0.4em;
	color: var(--navi-wing);
	font-weight: 700;
}

/* ---------- 選ばれる理由 ---------- */
.navi-strengths {
	background: var(--navi-white);
}

.navi-strength-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
}

.navi-strength {
	position: relative;
	padding: 2.2rem 1.8rem 2rem;
	border: 1px solid var(--navi-border);
	border-radius: 14px;
	background: var(--navi-white);
	text-align: center;
	box-shadow: 0 6px 24px rgba(31, 42, 48, 0.05);
}

.navi-strength-num {
	position: absolute;
	top: 1rem;
	left: 1.2rem;
	color: var(--navi-wing);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
}

.navi-strength-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.2rem;
	height: 4.2rem;
	margin-bottom: 1.2rem;
	border-radius: 50%;
	background: var(--navi-tint);
	color: var(--navi-primary);
	font-size: 1.7rem;
}

.entry-body .navi-strength-title {
	margin-bottom: 0.7em;
	color: var(--navi-text);
	font-size: 1.15rem;
	font-weight: 700;
}

.entry-body .navi-strength-text {
	color: var(--navi-muted);
	font-size: 0.93rem;
	line-height: 1.9;
	text-align: left;
}

/* ---------- 業務案内 ---------- */
.navi-services {
	background: var(--navi-tint);
}

.navi-service-group + .navi-service-group {
	margin-top: 3.5rem;
}

.navi-service-group-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.8rem;
	border-bottom: 2px solid var(--navi-primary);
}

.entry-body .navi-service-group-title {
	color: var(--navi-text);
	font-size: 1.3rem;
	font-weight: 700;
}

.navi-service-group-title span {
	display: block;
	color: var(--navi-primary);
	font-size: 0.72rem;
	letter-spacing: 0.25em;
}

.navi-services .navi-cards {
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}

/* ---------- 料金への案内帯 ---------- */
.navi-price-band {
	padding: clamp(2.5rem, 6vw, 3.5rem) 0;
	background: linear-gradient(120deg, var(--navi-primary-dark) 0%, var(--navi-primary) 100%);
	color: var(--navi-white);
}

.navi-price-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

.navi-price-band .navi-sec-en {
	color: var(--navi-wing);
}

.entry-body .navi-price-title {
	margin: 0.2em 0 0.4em;
	color: var(--navi-white);
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	font-weight: 700;
}

.entry-body .navi-price-lead {
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.95rem;
}

.entry-body .navi-btn-main {
	display: inline-flex;
	align-items: center;
	gap: 0.7em;
	padding: 1em 2.2em;
	border-radius: var(--navi-radius);
	background: var(--navi-white);
	color: var(--navi-primary-dark);
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.entry-body .navi-btn-main:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
	color: var(--navi-primary-dark);
}

/* ---------- ご依頼の流れ ---------- */
.navi-flow {
	background: var(--navi-white);
}

.entry-body .navi-flow-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.entry-body .navi-flow-step {
	position: relative;
	margin: 0;
	padding: 1.8rem 1.4rem;
	border-radius: 14px;
	background: var(--navi-tint);
	text-align: center;
}

/* ステップ間の矢印（PC） */
@media (min-width: 992px) {
	.entry-body .navi-flow-step:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 50%;
		right: -0.95rem;
		z-index: 1;
		width: 0;
		height: 0;
		border-top: 10px solid transparent;
		border-bottom: 10px solid transparent;
		border-left: 10px solid var(--navi-wing);
		transform: translateY(-50%);
	}
}

.navi-flow-num {
	display: inline-block;
	padding: 0.2em 0.9em;
	border-radius: var(--navi-radius);
	background: var(--navi-primary);
	color: var(--navi-white);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

.navi-flow-icon {
	display: block;
	margin: 1rem 0 0.6rem;
	color: var(--navi-primary);
	font-size: 2rem;
}

.entry-body .navi-flow-title {
	margin-bottom: 0.5em;
	color: var(--navi-text);
	font-size: 1.1rem;
	font-weight: 700;
}

.entry-body .navi-flow-text {
	color: var(--navi-muted);
	font-size: 0.9rem;
	line-height: 1.8;
	text-align: left;
}

/* ---------- お知らせ・コラム ---------- */
.navi-news {
	background: var(--navi-bg-alt);
}

.entry-body .navi-news-list {
	max-width: 860px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--navi-border);
}

.entry-body .navi-news-list li {
	margin: 0;
	border-bottom: 1px solid var(--navi-border);
}

.entry-body .navi-news-list a {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1.2rem;
	padding: 1.2rem 0.5rem;
	color: var(--navi-text);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.entry-body .navi-news-list a:hover {
	background: var(--navi-white);
}

.navi-news-list time {
	color: var(--navi-muted);
	font-size: 0.9rem;
}

.navi-news-cat {
	padding: 0.15em 0.8em;
	border-radius: var(--navi-radius);
	background: var(--navi-primary);
	color: var(--navi-white);
	font-size: 0.75rem;
}

.navi-news-title {
	flex: 1 1 300px;
	font-weight: 500;
}

.entry-body .navi-news-empty {
	color: var(--navi-muted);
	text-align: center;
}

.entry-body .navi-news-more {
	margin-top: 2rem;
	text-align: center;
}

/* トップページ下部の CTA は幅を揃える */
.home .navi-cta {
	max-width: 1100px;
	margin: 4rem auto;
}

@media (max-width: 767px) {
	.navi-hero {
		background-image:
			linear-gradient(180deg, rgba(20, 50, 60, 0.9) 0%, rgba(31, 71, 83, 0.82) 100%),
			var(--navi-hero-bg, none);
	}

	.entry-body .navi-hero-btn {
		width: 100%;
		justify-content: center;
	}
}

/* 全幅セクションによる横スクロールを防ぐ */
.home .site-body {
	overflow-x: clip;
}

/* Lightning 標準のトップスライドショーを非表示（メインビジュアルを使用） */
.home .ltg-slide,
.home .ltg-slide-outer {
	display: none;
}

/* ==========================================================
   12. 業務ページ本文
   ========================================================== */
.entry-body .navi-lead {
	margin-bottom: 2rem;
	font-size: 1.05rem;
	line-height: 2;
}

/* 補足・注意書き */
.entry-body .navi-note {
	position: relative;
	margin: 1.2rem 0;
	padding: 1rem 1.2rem 1rem 3rem;
	border-radius: 8px;
	background: #fff8e8;
	border: 1px solid #f0dfb4;
	color: var(--navi-text);
	font-size: 0.95rem;
	line-height: 1.8;
}

.entry-body .navi-note::before {
	content: "!";
	position: absolute;
	top: 1rem;
	left: 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	background: #c98a12;
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
}

.entry-body .navi-small {
	color: var(--navi-muted);
	font-size: 0.88rem;
}

/* チェックリスト */
.entry-body ul.navi-check-list {
	margin: 1rem 0 1.5rem;
	padding: 1.2rem 1.4rem;
	border-radius: 10px;
	background: var(--navi-tint);
	list-style: none;
}

.entry-body ul.navi-check-list li {
	position: relative;
	margin: 0.4em 0;
	padding-left: 1.8em;
}

.entry-body ul.navi-check-list li::before {
	content: "";
	position: absolute;
	top: 0.45em;
	left: 0.2em;
	width: 0.9em;
	height: 0.5em;
	border-left: 3px solid var(--navi-primary);
	border-bottom: 3px solid var(--navi-primary);
	transform: rotate(-45deg);
}

/* 手続きの流れ（ステップ） */
.entry-body ol.navi-steps {
	margin: 1.2rem 0 2rem;
	padding: 0;
	list-style: none;
	counter-reset: navi-step;
}

.entry-body ol.navi-steps li {
	position: relative;
	margin: 0;
	padding: 0.2em 0 1.4em 3.4em;
	counter-increment: navi-step;
}

.entry-body ol.navi-steps li::before {
	content: counter(navi-step);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.2em;
	height: 2.2em;
	border-radius: 50%;
	background: var(--navi-primary);
	color: #fff;
	font-weight: 700;
}

.entry-body ol.navi-steps li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 2.2em;
	bottom: 0;
	left: 1.05em;
	width: 2px;
	background: var(--navi-wing);
}

/* よくあるご質問（開閉式） */
.entry-body .navi-faq {
	margin: 0 0 0.8rem;
	border: 1px solid var(--navi-border);
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.entry-body .navi-faq summary {
	position: relative;
	padding: 1rem 3rem 1rem 3.2rem;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.entry-body .navi-faq summary::-webkit-details-marker {
	display: none;
}

.entry-body .navi-faq summary::before {
	content: "Q";
	position: absolute;
	top: 0.9rem;
	left: 1rem;
	color: var(--navi-primary);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
}

.entry-body .navi-faq summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 1.2rem;
	color: var(--navi-primary);
	font-size: 1.4rem;
	transform: translateY(-50%);
	transition: transform 0.2s ease;
}

.entry-body .navi-faq[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.entry-body .navi-faq[open] summary {
	background: var(--navi-tint);
}

.entry-body .navi-faq > p {
	position: relative;
	margin: 0;
	padding: 1rem 1.4rem 1.2rem 3.2rem;
	line-height: 1.9;
}

.entry-body .navi-faq > p::before {
	content: "A";
	position: absolute;
	top: 0.95rem;
	left: 1rem;
	color: #c98a12;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
}

/* ==========================================================
   13. 業務ページ上部の画像・料金表
   ========================================================== */
.entry-body .navi-eyecatch {
	margin: 0 0 2rem;
	overflow: hidden;
	border-radius: 12px;
	aspect-ratio: 21 / 9;
	background: var(--navi-tint);
}

.entry-body .navi-eyecatch img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 料金表：金額の列を右寄せ・太字に */
.entry-body .navi-price-table td:last-child {
	font-weight: 700;
	text-align: right;
	white-space: nowrap;
	color: var(--navi-primary-dark);
}

.entry-body .navi-price-table tbody td:first-child {
	width: auto;
}

/* 3列（永住許可のプラン表） */
.entry-body .navi-price-table-3col tbody td:first-child {
	width: 7em;
	text-align: center;
	white-space: nowrap;
}

.entry-body .navi-price-table-3col tbody td:nth-child(2) {
	background: #fff;
	font-weight: 400;
}

@media (max-width: 575px) {
	.entry-body .navi-eyecatch {
		aspect-ratio: 16 / 9;
	}

	.entry-body .navi-price-table td:last-child {
		white-space: normal;
	}
}

/* 料金表の列幅 */
.entry-body .navi-price-table thead th:first-child {
	width: 65%;
}

.entry-body .navi-price-table-3col thead th:first-child {
	width: 16%;
}

.entry-body .navi-price-table-3col thead th:last-child {
	width: 22%;
}

.entry-body .navi-price-table-3col thead th:nth-child(2) {
	width: auto;
}

.entry-body .navi-price-table .navi-price-desc {
	display: inline-block;
	margin-top: 0.3em;
	color: var(--navi-muted);
	font-size: 0.85rem;
	font-weight: 400;
	line-height: 1.6;
}

/* ==========================================================
   14. 料金表へのリンク・料金表の目次
   ========================================================== */
.entry-body .navi-price-link {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	margin: 1.5rem 0 2rem;
	padding: 1.2rem 1.4rem;
	border: 2px solid var(--navi-primary);
	border-radius: 12px;
	background: var(--navi-tint);
}

.entry-body .navi-price-link-text {
	flex: 1 1 280px;
	margin: 0;
	color: var(--navi-text);
	font-size: 0.92rem;
	line-height: 1.8;
}

.entry-body .navi-price-link-text i {
	margin-right: 0.4em;
	color: var(--navi-primary);
}

.entry-body .navi-price-link-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	padding: 0.85em 1.6em;
	border-radius: var(--navi-radius);
	background: var(--navi-primary);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 4px 12px rgba(44, 95, 110, 0.25);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.entry-body .navi-price-link-btn:hover {
	background: var(--navi-primary-dark);
	color: #fff;
	transform: translateY(-2px);
}

@media (max-width: 575px) {
	.entry-body .navi-price-link-btn {
		width: 100%;
		justify-content: center;
		white-space: normal;
	}
}

/* 料金表ページの目次 */
.navi-price-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
	margin: 0 0 2.5rem;
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--navi-border);
	border-radius: 12px;
	background: var(--navi-bg-alt);
}

.entry-body .navi-price-nav-title {
	margin: 0 0 0.6rem;
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--navi-primary);
	color: var(--navi-text);
	font-weight: 700;
}

.entry-body .navi-price-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.entry-body .navi-price-nav li {
	margin: 0;
}

.entry-body .navi-price-nav a {
	display: inline-block;
	padding: 0.4em 1em;
	border: 1px solid var(--navi-wing);
	border-radius: var(--navi-radius);
	background: #fff;
	color: var(--navi-primary-dark);
	font-size: 0.88rem;
	font-weight: 500;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.entry-body .navi-price-nav a:hover {
	background: var(--navi-primary);
	border-color: var(--navi-primary);
	color: #fff;
}

.entry-body .navi-price-top {
	margin: -0.5rem 0 1rem;
	text-align: right;
	font-size: 0.85rem;
}

.entry-body .navi-price-top a {
	color: var(--navi-muted);
	text-decoration: none;
}

/* ジャンプ先がヘッダーに隠れないように */
[id^="price-"],
#navi-price-nav {
	scroll-margin-top: 110px;
}

html {
	scroll-behavior: smooth;
}

/* ジャンプしてきた見出しを一瞬ハイライト */
.entry-body h3:target {
	animation: navi-target-flash 1.8s ease;
}

@keyframes navi-target-flash {
	0%,
	40% {
		background: #fff3c4;
	}
	100% {
		background: transparent;
	}
}

/* ==========================================================
   15. 事務所案内
   ========================================================== */
.entry-body .navi-greeting {
	gap: 2.5rem;
	align-items: flex-start;
	margin-bottom: 2.5rem;
}

.entry-body .navi-rep-photo {
	margin: 0 0 1rem;
}

.entry-body .navi-rep-photo img {
	width: 100%;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(31, 42, 48, 0.12);
}

.entry-body .navi-rep-name {
	margin: 0;
	color: var(--navi-muted);
	font-size: 0.9rem;
	line-height: 1.7;
	text-align: center;
}

.entry-body .navi-rep-name strong {
	color: var(--navi-text);
	font-size: 1.35rem;
	letter-spacing: 0.1em;
}

.entry-body .navi-rep-name span {
	font-size: 0.8rem;
	letter-spacing: 0.1em;
}

.entry-body .navi-greeting-catch {
	margin-bottom: 1.5rem;
	color: var(--navi-primary-dark);
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

.entry-body .navi-greeting-body p:not(.navi-greeting-catch):not(.navi-signature) {
	line-height: 2;
	text-indent: 1em;
}

.entry-body .navi-signature {
	margin-top: 2rem;
	color: var(--navi-muted);
	text-align: right;
	line-height: 1.8;
}

.entry-body .navi-sign-name {
	margin-left: 0.3em;
	color: var(--navi-text);
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

/* プロフィール */
.entry-body .navi-profile {
	position: relative;
	margin: 0 0 3rem;
	padding: 2rem 1.6rem 1.4rem;
	border: 1px solid var(--navi-border);
	border-radius: 12px;
	background: var(--navi-bg-alt);
}

.entry-body .navi-profile p {
	margin: 0 0 0.5em;
	line-height: 1.9;
}

.entry-body .navi-profile .navi-profile-label {
	position: absolute;
	top: -0.9rem;
	left: 1.2rem;
	margin: 0;
	padding: 0.15em 1.1em;
	border-radius: 6px;
	background: var(--navi-primary);
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.15em;
}

/* 事務所概要の表 */
.entry-body .navi-office-table th {
	width: 30%;
	background: var(--navi-tint);
	color: var(--navi-text);
	font-weight: 700;
	text-align: left;
	vertical-align: top;
}

.entry-body .navi-office-table td {
	line-height: 1.8;
}

@media (max-width: 781px) {
	.entry-body .navi-greeting-photo {
		max-width: 260px;
		margin: 0 auto;
	}

	.entry-body .navi-office-table th {
		width: 38%;
	}
}

/* ==========================================================
   16. お知らせ・コラム（一覧・記事）
   ========================================================== */
/* 一覧 */
.main-section .vk_post.media {
	margin-bottom: 1.2rem;
	padding: 1.2rem;
	border: 1px solid var(--navi-border);
	border-radius: 12px;
	background: #fff;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.main-section .vk_post.media:hover {
	border-color: var(--navi-wing);
	box-shadow: 0 8px 24px rgba(31, 42, 48, 0.08);
}

.main-section .vk_post .vk_post_imgOuter {
	overflow: hidden;
	border-radius: 8px;
}

.main-section .vk_post .vk_post_imgOuter_singleTermLabel {
	border-radius: 0 0 6px 0;
	background: var(--navi-primary) !important;
	color: #fff;
	font-weight: 700;
}

.main-section .vk_post .vk_post_title,
.main-section .vk_post .vk_post_title a {
	color: var(--navi-text);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.6;
}

.main-section .vk_post .vk_post_title a:hover {
	color: var(--navi-primary);
}

.main-section .vk_post .vk_post_date {
	color: var(--navi-muted);
}

.main-section .vk_post .vk_post_btn {
	border-radius: var(--navi-radius);
	padding: 0.35em 1.2em;
}

/* 記事末尾：関連業務 */
.entry-body .navi-related-service {
	margin: 3rem 0 1.5rem;
}

.entry-body .navi-related-label {
	margin: 0 0 0.6rem;
	color: var(--navi-primary);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.entry-body .navi-related-link {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.2rem;
	border: 2px solid var(--navi-primary);
	border-radius: 12px;
	background: var(--navi-tint);
	color: var(--navi-text);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.entry-body .navi-related-link:hover {
	background: #fff;
	color: var(--navi-text);
}

.entry-body .navi-related-link img {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	border-radius: 8px;
	object-fit: cover;
}

.entry-body .navi-related-title {
	flex: 1;
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.5;
}

.entry-body .navi-related-title small {
	display: block;
	color: var(--navi-muted);
	font-size: 0.85rem;
	font-weight: 400;
}

.entry-body .navi-related-link i {
	color: var(--navi-primary);
	font-size: 1.2rem;
}

/* 記事末尾：執筆者 */
.entry-body .navi-author-box {
	display: flex;
	gap: 1.2rem;
	align-items: flex-start;
	margin: 1.5rem 0 2rem;
	padding: 1.4rem;
	border: 1px solid var(--navi-border);
	border-radius: 12px;
	background: var(--navi-bg-alt);
}

.entry-body .navi-author-box img {
	flex: 0 0 96px;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	object-position: top;
}

.entry-body .navi-author-body p {
	margin: 0 0 0.4em;
}

.entry-body .navi-author-label {
	color: var(--navi-primary);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.entry-body .navi-author-name {
	font-size: 1.15rem;
	font-weight: 700;
}

.entry-body .navi-author-name span {
	margin-left: 0.8em;
	color: var(--navi-muted);
	font-size: 0.8rem;
	font-weight: 400;
}

.entry-body .navi-author-text {
	color: var(--navi-muted);
	font-size: 0.9rem;
	line-height: 1.8;
}

@media (max-width: 575px) {
	.entry-body .navi-author-box {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}

/* フッターの事務所情報 */
.site-footer .widget_text p {
	margin-bottom: 0.9em;
	line-height: 1.8;
}

.site-footer .widget_text i {
	width: 1.2em;
	color: var(--navi-wing);
}

.site-footer .widget_text strong {
	color: #fff;
	font-size: 0.85rem;
}

/* SNS：Threads・Facebook の色 */
.navi-sns-threads {
	background: #000;
}

.navi-sns-facebook {
	background: #1877f2;
}

/* 記事末尾：公式SNSフォロー */
.entry-body .navi-follow {
	margin: 1.5rem 0 2rem;
	padding: 1.2rem 1.4rem;
	border-radius: 12px;
	background: var(--navi-tint);
	text-align: center;
}

.entry-body .navi-follow-title {
	margin: 0 0 0.9rem;
	color: var(--navi-text);
	font-weight: 700;
}

.navi-follow-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.6rem;
}

.entry-body .navi-follow-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.6em 1.3em;
	border-radius: var(--navi-radius);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.2s ease, filter 0.2s ease;
}

.entry-body .navi-follow-btn:hover {
	color: #fff;
	transform: translateY(-2px);
	filter: brightness(1.1);
}

.entry-body .navi-follow-btn.navi-sns-youtube {
	background: #ff0000;
}

.entry-body .navi-follow-btn.navi-sns-instagram {
	background: linear-gradient(45deg, #f58529 0%, #dd2a7b 50%, #8134af 100%);
}

.entry-body .navi-follow-btn.navi-sns-line {
	background: #06c755;
}

/* ==========================================================
   17. 言語切替ボタン（한국어 ⇔ 日本語）
   ========================================================== */
@media (min-width: 992px) {
	.global-nav-list > li.navi-lang-switch {
		display: flex;
		align-items: center;
		margin-left: 0.5rem;
	}

	.global-nav-list > li.navi-lang-switch > a {
		padding: 0.5em 1em;
		border: 2px solid var(--navi-wing);
		border-radius: 999px;
		font-weight: 700;
		line-height: 1.2;
		white-space: nowrap;
		color: var(--navi-primary);
		transition: background-color 0.2s ease, border-color 0.2s ease;
	}

	.global-nav-list > li.navi-lang-switch > a:hover {
		background: var(--navi-tint);
		border-color: var(--navi-primary);
	}

	.global-nav-list > li.navi-lang-switch > a::after {
		display: none;
	}
}

li.navi-lang-switch > a .global-nav-name::before,
li.navi-lang-switch > a::before {
	content: "\f0ac";
	margin-right: 0.4em;
	font-family: "Font Awesome 7 Free", "Font Awesome 6 Free", "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--navi-primary);
}

li.navi-lang-switch > a:has(.global-nav-name)::before {
	content: none;
}

/* 韓国語ページ：ハングルが読みやすいフォント */
html[lang^="ko"] body {
	font-family: "Noto Sans KR", "Zen Kaku Gothic New", sans-serif;
	word-break: keep-all;
}

/* ==========================================================
   18. ヘッダーロゴ：横長ロゴがつぶれないよう高さを固定
   ========================================================== */
.site-header .site-header-container > .site-header-logo {
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	margin-right: 1rem;
}

.site-header-logo img {
	height: 34px;
	width: auto;
	max-width: none;
	max-height: none;
}

@media (min-width: 992px) {
	.site-header-logo img {
		height: 28px;
	}

	/* ロゴを大きくした分、メニューの左右余白を詰めて1行に収める */
	.global-nav-list > li:not(.navi-menu-tel):not(.navi-menu-contact):not(.navi-lang-switch) > a {
		padding-left: 7px;
		padding-right: 7px;
	}

	.global-nav-list > li.navi-menu-tel,
	.global-nav-list > li.navi-menu-contact,
	.global-nav-list > li.navi-lang-switch {
		margin-left: 0.3rem;
	}
}

@media (min-width: 1400px) {
	.site-header-logo img {
		height: 42px;
	}

	.global-nav-list > li:not(.navi-menu-tel):not(.navi-menu-contact):not(.navi-lang-switch) > a {
		padding-left: 14px;
		padding-right: 14px;
	}
}

@media (min-width: 992px) and (max-width: 1199px) {
	.site-header-logo img {
		height: 22px;
	}

	.global-nav-list > li > a .global-nav-name {
		font-size: 13px;
	}

	.global-nav-list > li:not(.navi-menu-tel):not(.navi-menu-contact):not(.navi-lang-switch) > a {
		padding-left: 5px;
		padding-right: 5px;
	}
}

@media (max-width: 575px) {
	.site-header-logo img {
		height: 28px;
	}
}

/* ==========================================================
   代表者名（羅 卿均）の字形
   「卿」は日本語フォント（Zen Kaku Gothic New）では日本の字形で
   表示されるため、名前の部分だけ韓国語フォントで表示する。
   本文中の名前は <span class="navi-name"> で囲む。
   ========================================================== */
.navi-name,
.navi-author-name,
.vcard .fn {
	font-family: "Noto Sans KR", "Zen Kaku Gothic New", sans-serif;
}

.navi-author-name > span {
	font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* ==========================================================
   投稿一覧のサムネイル比率
   アイキャッチは 1200×630（OGP標準 1.91:1）で作成するため、
   一覧・ウィジェットのサムネイル枠も同じ比率にして切れないようにする。
   （Lightning 標準は 62%）
   ========================================================== */
.vk_post .vk_post_imgOuter::before {
	padding-top: 52.5%;
}
