/*
Theme Name: SYN Ownd Child Blog
Template: syn-ownd
Theme URI: https://syn.design/
Author: 株式会社オートプラネット
Description: SYN Ownd の子テーマ(整備ラボ/ブログ用)。販売サイトのデザイン(濃紺×ゴールド)をモックアップ準拠で全面適用。
Version: 0.3.0
Text Domain: syn-ownd-child-blog
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
@charset "utf-8";

/* ============================================================
   1. デザイントークン(販売サイト syn-ownd-child から移植)
============================================================ */
:root {
	--color-main: #00155b;
	--color-link: #00155b;
	--color-background: #ffffff;
	--color-background-body: #f9f7f4;
	--color-text: #333333;
	--fontfamily: Meiryo, "Meiryo UI", "MS PGothic",
		"Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	--round-common: 6px;

	--ap-gold: #c9a84c;
	--ap-gold-bg: #fff8e8;
	--ap-gold-border: #e8d08a;
	--ap-gold-text: #9a7a30;
	--ap-card-border: #d8d8d8;
	--ap-text-sub: #555555;
	--ap-text-muted: #888888;
}

/* 親テーマのbody上部グラデーション装飾を無効化(フラット背景) */
body:after {
	display: none;
}

/* ============================================================
   2. ヘッダー(濃紺) ※モックアップ準拠
============================================================ */
.hdr,
.hdr-fixed {
	background: var(--color-main);
	box-shadow: none;
}
.hdr__logo-link,
.hdr__logo-ttl,
.hdr-fixed .hdr__logo-link {
	color: #fff;
}
.hdr__logo-link:hover {
	color: #fff;
	opacity: 0.85;
}
.hdr__catchphrase {
	background: #000d3d;
}
/* グローバルナビ */
.ddmenu__list > li {
	border-left: 1px solid rgba(255, 255, 255, 0.18);
}
.ddmenu__list > li > a {
	color: #fff;
	font-weight: 700;
}
.ddmenu__list > li > a:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.12);
}
.ddmenu__list > li:has(.sub-menu) > a {
	color: #fff;
}
.ddmenu__list > li:has(.sub-menu) > a:after {
	color: var(--ap-gold);
}
/* ハンバーガーメニュー(スマホ) */
.ham-menu-btn__icon {
	color: #fff;
}
.ham-menu-btn__text {
	color: var(--ap-gold);
}

/* パンくず */
.breadcrumb {
	background: #f1efe9;
	border-bottom: 1px solid var(--ap-card-border);
}

/* ============================================================
   3. 記事一覧(モックアップ blog-top.html 準拠)
   子テーマの template-parts/loop/entries.php が出力する
   ap-* クラスのスタイル
============================================================ */
.ap-section {
	border: 1px solid var(--ap-card-border);
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 24px;
}
.ap-section-title {
	border-bottom: 1px solid var(--ap-card-border);
	background: var(--color-main);
	padding: 12px 20px;
	color: #fff;
	font-size: 1.125em;
	font-weight: 700;
}
.ap-section-body {
	padding: 20px;
}
@media screen and (max-width: 639.98px) {
	.ap-section-body {
		padding: 14px;
	}
}

.ap-entry {
	display: flex;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px dotted var(--ap-card-border);
}
.ap-entry:first-child {
	padding-top: 0;
}
.ap-entry:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.ap-entry-thumb {
	width: 200px;
	flex-shrink: 0;
	aspect-ratio: 4 / 3;
	background: #ececec;
	border: 1px solid var(--ap-card-border);
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}
.ap-entry-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.2s ease;
}
.ap-entry-thumb:hover img {
	opacity: 0.85;
}
.ap-entry-noimg {
	color: #999;
	font-size: 0.75em;
}
.ap-entry-body {
	flex: 1;
	min-width: 0;
}
.ap-entry-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 6px;
	flex-wrap: wrap;
}
.ap-entry-date {
	font-size: 0.75em;
	font-weight: 700;
	color: var(--color-main);
}
.ap-cat-badge {
	display: inline-block;
	font-size: 0.6875em;
	font-weight: 700;
	padding: 2px 10px;
	border-radius: 20px;
	background: var(--ap-gold-bg);
	color: var(--ap-gold-text);
	border: 1px solid var(--ap-gold-border);
	text-decoration: none;
	line-height: 1.6;
}
.ap-cat-badge:hover {
	color: var(--ap-gold-text);
	opacity: 0.75;
}
.ap-entry-title {
	margin: 0;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.7;
}
.ap-entry-title a {
	color: var(--color-text);
	text-decoration: none;
}
.ap-entry-title a:hover {
	color: var(--color-main);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ap-entry-excerpt {
	margin: 8px 0 0;
	font-size: 0.8125em;
	line-height: 1.9;
	color: var(--ap-text-sub);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.ap-entry-more {
	display: inline-block;
	margin-top: 10px;
	padding: 7px 14px;
	background: var(--color-main);
	color: #fff;
	font-size: 0.75em;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	transition: opacity 0.15s;
}
.ap-entry-more:hover {
	color: #fff;
	opacity: 0.82;
}
@media screen and (max-width: 639.98px) {
	.ap-entry {
		flex-direction: column;
		gap: 10px;
	}
	.ap-entry-thumb {
		width: 100%;
	}
}

/* 一覧ページの「新着記事 New Entry」見出し(親テーマ出力)の調整 */
.section__ttl:after {
	background: var(--ap-gold);
}
.section__ttl--small {
	color: var(--ap-gold);
}

/* ページネーション(親テーマ出力)を販売サイトの角丸4pxに */
.pagination__pager {
	border-radius: 4px;
}

/* ============================================================
   4. 記事ページ(single)
============================================================ */
.entry__ttl {
	color: var(--color-main);
}
/* 記事内h3をゴールド左ボーダー様式に */
.post-content > h3,
.post-content h3.wp-block-heading {
	background: var(--color-background);
	border-left: 4px solid var(--ap-gold);
	border-bottom: 1px solid #e8e8e8;
	border-radius: 0;
	padding: 0.6em 0.75em;
}
.post-content > h3:before,
.post-content h3.wp-block-heading:before {
	display: none;
}
/* ボタンの角丸を販売サイトと統一 */
.post-content .synx-btn,
.post-content .synx-btn:before {
	border-radius: 4px;
}

/* ゴールドのポイントタグ・ポイントボックス(記事内で使用可) */
.post-content .ap-point-tag {
	display: inline-block;
	font-size: 0.85em;
	font-weight: 700;
	color: var(--ap-gold-text);
	background: var(--ap-gold-bg);
	border: 1px solid var(--ap-gold-border);
	padding: 4px 10px;
	border-radius: 2px;
}
.post-content .ap-point-box {
	border: 1px solid var(--ap-gold-border);
	background: var(--ap-gold-bg);
	border-radius: 4px;
	padding: 14px 16px;
	color: #6d5a22;
	line-height: 2;
}
.post-content .ap-point-box .ap-point-box-title {
	font-weight: 700;
	color: var(--ap-gold-text);
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
}
.post-content .ap-point-box .ap-point-box-title:before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ap-gold);
	flex-shrink: 0;
}

/* ============================================================
   5. サイドバー(白カード＋ゴールド見出し) ※モックアップ準拠
============================================================ */
.sidebar-widget {
	border: 1px solid var(--ap-card-border);
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
}
.sidebar-widget .widget-common__ttl {
	font-size: 0.9375em;
	border-left: 4px solid var(--ap-gold);
	border-bottom: 1px solid #e8e8e8;
	padding: 11px 16px;
	margin-bottom: 0;
	display: block;
}
.sidebar-widget .widget-common__ttl:before,
.sidebar-widget .widget-common__ttl:after {
	display: none;
}
/* ウィジェット中身の白カード化(親の影付きカードをフラットに) */
.sidebar-widget.widget_categories > ul,
.sidebar-widget.widget_meta > ul,
.sidebar-widget.widget_pages > ul,
.sidebar-widget.widget_archive > ul,
.sidebar-widget .widget-archive-list,
.sidebar-widget.widget_nav_menu > [class^=menu-][class$=-container],
.is-type-list.widget-post,
.widget-user__block,
.sidebar-widget.widget_tag_cloud .tagcloud,
.widget-toc .toc__main {
	background: #fff;
	border-radius: 0;
	box-shadow: none;
	padding: 8px 16px 12px;
}
.widget-post__item {
	box-shadow: none;
	border-radius: 0;
}
/* ランキング1位バッジをゴールドに */
.widget-post__item:first-of-type .widget-post__rank {
	background: var(--ap-gold);
}
/* カスタムHTMLウィジェット用CTA(snippets/sidebar-cta.html とセット) */
.ap-side-cta {
	display: block;
	margin: 12px 16px;
	padding: 11px 0;
	background: var(--color-main);
	color: #fff;
	text-align: center;
	font-size: 0.8125em;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
}
.ap-side-cta:hover {
	color: #fff;
	opacity: 0.82;
}
.ap-side-tel {
	margin: 0 16px 14px;
	text-align: center;
	font-size: 1.375em;
	font-weight: 700;
	color: var(--color-main);
	line-height: 1.3;
}
.ap-side-tel small {
	display: block;
	font-size: 0.5em;
	font-weight: 400;
	color: var(--ap-text-muted);
	margin-top: 2px;
}

/* ============================================================
   6. フッター(濃紺) ※モックアップ準拠
============================================================ */
.ftr,
.ftr-info,
.ftr-nav,
.ftr-head {
	background: var(--color-main);
	color: #fff;
}
.ftr:first-of-type,
.ftr-info {
	border-top: none;
}
.ftr-info__logo-link,
.ftr-info__maincopy {
	color: #fff;
}
.ftr-nav {
	background: #000d3d;
}
.ftrnav-widget .widget-common__ttl,
.ftrnav-widget .widget-common__ttl a {
	color: #fff;
}
.ftrnav-widget.widget_categories [class^=menu-][class$=-container] li a,
.ftrnav-widget.widget_nav_menu > ul li a,
.ftrnav-widget a {
	color: rgba(255, 255, 255, 0.85);
}
.ftrnav-widget.widget_categories [class^=menu-][class$=-container] li a:hover,
.ftrnav-widget.widget_nav_menu > ul li a:hover {
	color: var(--ap-gold);
	background: rgba(255, 255, 255, 0.06);
}
.ftrnav-widget.widget_categories [class^=menu-][class$=-container] li a:after,
.ftrnav-widget.widget_nav_menu > ul li a:after {
	color: var(--ap-gold);
}
.ftrnav-widget.widget_categories [class^=menu-][class$=-container],
.ftrnav-widget.widget_nav_menu > ul {
	border-bottom-color: rgba(255, 255, 255, 0.18);
}
.ftrnav-widget.widget_categories [class^=menu-][class$=-container] li,
.ftrnav-widget.widget_nav_menu > ul li {
	border-top-color: rgba(255, 255, 255, 0.18);
}
.ftr__copy small {
	color: rgba(255, 255, 255, 0.6);
}
.ftr__copy:before,
.ftr__copy:after {
	background: rgba(255, 255, 255, 0.18);
}

/* TOPに戻るボタン */
.return-top a {
	background: var(--color-main);
	border: 1px solid rgba(255, 255, 255, 0.4);
}

/* ============================================================
   7. v0.3.0 完全版テンプレート用スタイル
   (子テーマ独自のheader/footer/single/homeテンプレートに対応)
============================================================ */

/* ---------- ヘッダー(白い上段＋濃紺ナビ) ---------- */
.ap-hdr__top {
	background: #fff;
	border-bottom: 1px solid var(--ap-card-border);
}
.ap-hdr__top-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px;
	padding-top: 14px;
	padding-bottom: 14px;
	position: relative;
}
.ap-hdr__logo {
	margin: 0;
	font-size: 1.375em;
	font-weight: 700;
	line-height: 1.3;
}
.ap-hdr__logo-link {
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--color-main);
	text-decoration: none;
}
.ap-hdr__logo-link:hover {
	color: var(--color-main);
	opacity: 0.85;
}
.ap-hdr__logo-img {
	height: 56px;
	max-height: 56px;
	width: auto;
	display: block;
	flex-shrink: 0;
}
.ap-hdr__logo-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.ap-hdr__logo-main {
	font-size: 1.15em;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.04em;
	color: var(--color-main);
}
.ap-hdr__logo-sub {
	display: block;
	font-size: 0.6em;
	font-weight: 700;
	line-height: 1.5;
	color: var(--ap-text-sub);
	letter-spacing: 0.04em;
	margin-top: 4px;
}
@media screen and (max-width: 639.98px) {
	.ap-hdr__logo-img {
		height: 44px;
		max-height: 44px;
	}
	.ap-hdr__logo-link {
		gap: 10px;
	}
	.ap-hdr__logo-main {
		font-size: 1.1em;
	}
	.ap-hdr__logo-sub {
		font-size: 0.55em;
	}
}
.ap-hdr__info {
	font-size: 0.6875em;
	color: var(--ap-text-muted);
	text-align: right;
	line-height: 1.8;
}
@media screen and (max-width: 785.98px) {
	.ap-hdr__info {
		display: none;
	}
	.ap-hdr__top-inner {
		padding-right: 60px;
	}
}
/* ハンバーガーボタン(親テーマ部品)の配置と色 */
.ap-hdr__top-inner .ham-menu-btn {
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}
.ap-hdr__top-inner .ham-menu-btn__icon {
	color: var(--color-main);
}
.ap-hdr__top-inner .ham-menu-btn__text {
	color: var(--ap-gold);
}

/* 濃紺ナビゲーションバー */
.ap-nav {
	background: var(--color-main);
}
.ap-nav__inner {
	width: 92%;
}
.ap-nav__list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}
.ap-nav__list li {
	border-left: 1px solid rgba(255, 255, 255, 0.18);
}
.ap-nav__list li:first-child {
	border-left: none;
}
.ap-nav__list a {
	display: block;
	color: #fff;
	font-size: 0.8125em;
	font-weight: 700;
	padding: 12px 18px;
	text-decoration: none;
	line-height: 1.4;
}
.ap-nav__list a:hover {
	color: #fff;
	background: rgba(255, 255, 255, 0.12);
}
.ap-nav__list .current-menu-item > a {
	background: rgba(201, 168, 76, 0.25);
	box-shadow: inset 0 -3px 0 var(--ap-gold);
}
@media screen and (max-width: 785.98px) {
	.ap-nav {
		display: none; /* スマホはドロワーメニューを使用 */
	}
}

/* ---------- トップページのページヘッダーカード ---------- */
.ap-page-head {
	border: 1px solid var(--ap-card-border);
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 24px;
}
.ap-page-head__inner {
	padding: 20px;
}
.ap-eyebrow {
	font-size: 0.8125em;
	font-weight: 700;
	color: var(--ap-gold);
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}
.ap-page-head__ttl {
	margin: 0;
	font-size: 1.5em;
	line-height: 1.5;
	color: var(--color-main);
	font-weight: 700;
}
.ap-page-head__desc {
	margin: 10px 0 0;
	font-size: 0.8125em;
	line-height: 2;
	color: var(--ap-text-sub);
}
@media screen and (max-width: 639.98px) {
	.ap-page-head__ttl {
		font-size: 1.25em;
	}
}

/* ---------- 記事ページ ---------- */
.ap-article__head {
	margin-bottom: clamp(10px, 3vw, 24px);
}
.ap-article__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 10px;
}
.ap-article__modified {
	font-size: 0.75em;
	color: var(--ap-text-muted);
}
.ap-article .entry__ttl {
	font-size: 1.5em;
	line-height: 1.6;
}
.ap-article .entry__thumb {
	margin-top: clamp(10px, 3vw, 24px);
	border-radius: 4px;
}

/* お問い合わせCTA */
.ap-cta {
	border: 1px solid var(--ap-card-border);
	background: #f8f9fc;
	border-radius: 6px;
	padding: 20px;
	margin-top: 2.4em;
	text-align: center;
}
.ap-cta__ttl {
	font-size: 1.0625em;
	font-weight: 700;
	color: var(--color-main);
	margin: 0 0 8px;
}
.ap-cta__txt {
	font-size: 0.8125em;
	margin: 0 0 14px;
	line-height: 1.9;
	color: var(--ap-text-sub);
}
.ap-cta__tel {
	font-size: 1.875em;
	font-weight: 700;
	color: var(--color-main);
	line-height: 1.2;
	margin: 0;
}
.ap-cta__tel small {
	display: block;
	font-size: 0.36em;
	font-weight: 400;
	color: var(--ap-text-muted);
	margin-top: 4px;
}
.ap-cta__btns {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 14px;
	flex-wrap: wrap;
}
.ap-btn-primary {
	display: inline-block;
	padding: 11px 22px;
	background: var(--color-main);
	color: #fff;
	font-size: 0.8125em;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
}
.ap-btn-primary:hover {
	color: #fff;
	opacity: 0.82;
}
.ap-btn-secondary {
	display: inline-block;
	padding: 11px 22px;
	border: 1px solid #c8c8c8;
	background: #fff;
	color: var(--color-text);
	font-size: 0.8125em;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
}
.ap-btn-secondary:hover {
	color: var(--color-text);
	opacity: 0.82;
}

/* 関連記事 */
.ap-related {
	border: 1px solid var(--ap-card-border);
	background: #fff;
	border-radius: 6px;
	overflow: hidden;
	margin-top: 24px;
}
.ap-related__grid {
	padding: 20px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.ap-related__card {
	border: 1px solid var(--ap-card-border);
	background: #fcfcfc;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none;
	transition: opacity 0.15s;
	display: block;
}
.ap-related__card:hover {
	opacity: 0.82;
}
.ap-related__thumb {
	display: block;
	aspect-ratio: 4 / 3;
	background: #ececec;
	border-bottom: 1px solid var(--ap-card-border);
	overflow: hidden;
}
.ap-related__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ap-related__ttl {
	display: block;
	padding: 12px;
	font-size: 0.75em;
	font-weight: 700;
	line-height: 1.7;
	color: var(--color-text);
}
@media screen and (max-width: 639.98px) {
	.ap-related__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- フッター(濃紺・3カラム) ---------- */
.ap-ftr {
	background: var(--color-main);
	color: #fff;
	margin-top: 60px;
}
.ap-ftr__inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 24px;
	padding-top: 32px;
	padding-bottom: 32px;
	font-size: 0.75em;
	line-height: 2;
}
.ap-ftr__ttl {
	font-size: 1.25em;
	margin: 0 0 10px;
	color: #fff;
	font-weight: 700;
}
.ap-ftr__ttl small {
	display: block;
	font-size: 0.65em;
	color: var(--ap-gold);
	font-weight: 400;
	letter-spacing: 0.1em;
}
.ap-ftr__note {
	color: rgba(255, 255, 255, 0.7);
}
.ap-ftr__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ap-ftr__list a {
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
}
.ap-ftr__list a:hover {
	color: var(--ap-gold);
}
.ap-ftr__copy {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	text-align: center;
	padding: 14px;
	font-size: 0.6875em;
	color: rgba(255, 255, 255, 0.6);
}
@media screen and (max-width: 785.98px) {
	.ap-ftr__inner {
		grid-template-columns: 1fr;
	}
}

/* 画面には出さず、HTML上には残す（見出し構造・読み上げ用） */
.ap-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.ap-page-head__ttl.ap-sr-only + .ap-page-head__desc {
	margin-top: 0;
}

/* ============================================================
   お問い合わせページ・フォーム（Contact Form 7）
   フォーム本体は CF7 のフォームタブ（class="ap-form"）で出力
============================================================ */

/* ---------- ページ上部の案内 ---------- */
.ap-contact-lead {
	margin-bottom: 1.6em;
}
.post-content .ap-contact-lead__txt {
	margin: 0 0 1em;
	line-height: 1.9;
}
.post-content .ap-contact-lead__list {
	list-style: none;
	margin: 0 0 1em;
	padding: 14px 18px;
	background: var(--ap-gold-bg);
	border: 1px solid var(--ap-gold-border);
	border-radius: var(--round-common);
}
.post-content .ap-contact-lead__list li {
	position: relative;
	margin: 0;
	padding: 3px 0 3px 1.5em;
	font-weight: 700;
	color: var(--color-main);
}
.post-content .ap-contact-lead__list li::before {
	content: "";
	position: absolute;
	left: 0.2em;
	top: 0.55em;
	width: 0.45em;
	height: 0.8em;
	border-right: 2px solid var(--ap-gold);
	border-bottom: 2px solid var(--ap-gold);
	transform: rotate(45deg);
}

.ap-contact-note {
	margin-bottom: 1.6em;
	padding: 16px 18px;
	background: #f8f9fc;
	border: 1px solid var(--ap-card-border);
	border-radius: var(--round-common);
	font-size: 0.9375em;
}
.post-content .ap-contact-note__ttl {
	margin: 0 0 8px;
	font-weight: 700;
	color: var(--color-main);
	line-height: 1.6;
}
.post-content .ap-contact-note__list {
	margin: 0;
	padding-left: 1.4em;
	list-style: decimal;
}
.post-content .ap-contact-note__list li {
	margin: 0 0 6px;
	line-height: 1.8;
}
.post-content .ap-contact-note__list li:last-child {
	margin-bottom: 0;
}

.ap-contact-tel {
	margin-bottom: 2em;
	padding: 14px 16px;
	text-align: center;
	border: 1px solid var(--ap-gold-border);
	border-radius: var(--round-common);
	background: #fff;
}
.post-content .ap-contact-tel p {
	margin: 0;
	line-height: 1.6;
}
.post-content .ap-contact-tel__lead {
	font-size: 0.875em;
	color: var(--ap-text-sub);
}
.post-content .ap-contact-tel__num {
	font-size: 1.5em;
	font-weight: 700;
	letter-spacing: 0.04em;
}
.post-content .ap-contact-tel__num a {
	color: var(--color-main);
	text-decoration: none;
}
.post-content .ap-contact-tel__time {
	font-size: 0.8125em;
	color: var(--ap-text-muted);
}

/* ---------- フォーム本体 ---------- */
.ap-form [hidden] {
	display: none !important;
}
.ap-form__section {
	margin: 0 0 24px;
	background: #fff;
	border: 1px solid var(--ap-card-border);
	border-radius: var(--round-common);
	overflow: hidden;
}
.post-content .ap-form__section-ttl {
	margin: 0;
	padding: 12px 18px;
	font-size: 1em;
	line-height: 1.5;
	color: #fff;
	background: var(--color-main);
	border: 0;
	border-radius: 0;
}
.post-content .ap-form__section-ttl::before,
.post-content .ap-form__section-ttl::after {
	content: none;
}

.ap-form__row {
	display: grid;
	grid-template-columns: 30% 1fr;
	gap: 8px 20px;
	align-items: start;
	padding: 18px;
	border-top: 1px solid #ececec;
}
.ap-form__section-ttl + .ap-form__row {
	border-top: 0;
}
.ap-form__row.is-stack {
	grid-template-columns: 1fr;
}
.ap-form__label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	padding-top: 10px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-text);
}
.ap-form__row.is-stack .ap-form__label {
	padding-top: 0;
}
.ap-form__badge {
	display: inline-block;
	padding: 1px 8px;
	font-size: 0.6875em;
	font-weight: 700;
	line-height: 1.7;
	color: var(--ap-text-muted);
	background: #f1f1f1;
	border-radius: 3px;
	white-space: nowrap;
}
.ap-form__badge.is-req {
	color: #fff;
	background: #c0392b;
}
.ap-form__field {
	min-width: 0;
}
.post-content .ap-form__hint {
	margin: 6px 0 0;
	font-size: 0.8125em;
	line-height: 1.7;
	color: var(--ap-text-sub);
}
.post-content .ap-form__hint.is-top {
	margin: 0 0 10px;
}

/* 入力欄（親テーマのリセットで枠が消えているため明示） */
.ap-form input[type="text"],
.ap-form input[type="email"],
.ap-form input[type="tel"],
.ap-form textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	font-family: var(--fontfamily);
	font-size: 16px; /* iPhoneで入力時に画面が拡大されないよう16px以上 */
	line-height: 1.6;
	color: var(--color-text);
	background: #fff;
	border: 1px solid #bdbdbd;
	border-radius: var(--round-common);
	transition: border-color 0.2s, box-shadow 0.2s;
}
.ap-form textarea {
	min-height: 180px;
	resize: vertical;
}
.ap-form input::placeholder,
.ap-form textarea::placeholder {
	color: #aaa;
}
.ap-form input[type="text"]:focus,
.ap-form input[type="email"]:focus,
.ap-form input[type="tel"]:focus,
.ap-form textarea:focus {
	outline: none;
	border-color: var(--color-main);
	box-shadow: 0 0 0 3px rgba(0, 21, 91, 0.12);
}
.ap-form .ap-form__input-short {
	max-width: 12em;
}

/* ラジオ・チェックボックス：指で押しやすいボタン型 */
.ap-form .wpcf7-radio,
.ap-form .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.ap-form .wpcf7-radio .wpcf7-list-item,
.ap-form .wpcf7-checkbox .wpcf7-list-item {
	margin: 0;
}
.ap-form .wpcf7-radio label,
.ap-form .wpcf7-checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid #bdbdbd;
	border-radius: var(--round-common);
	line-height: 1.4;
	cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s;
}
.ap-form .wpcf7-radio label:hover,
.ap-form .wpcf7-checkbox label:hover {
	border-color: var(--color-main);
}
.ap-form .wpcf7-radio label:has(input:checked),
.ap-form .wpcf7-checkbox label:has(input:checked) {
	border-color: var(--color-main);
	background: #eef1f8;
	font-weight: 700;
	color: var(--color-main);
}
.ap-form input[type="radio"],
.ap-form input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	flex-shrink: 0;
	accent-color: var(--color-main);
}
.ap-form input[type="radio"]:focus-visible,
.ap-form input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--color-main);
	outline-offset: 2px;
}

/* 「その他」の保険会社名 */
.ap-form__sub {
	margin-top: 12px;
	padding: 12px;
	background: #f8f9fc;
	border-radius: var(--round-common);
}
.ap-form__sub-label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.875em;
	font-weight: 700;
}

/* ファイル添付 */
.ap-form__file {
	margin-bottom: 8px;
	padding: 10px 12px;
	border: 1px dashed #bdbdbd;
	border-radius: var(--round-common);
	background: #fafafa;
}
.ap-form input[type="file"] {
	width: 100%;
	font-size: 0.875em;
}
.ap-form input[type="file"]::file-selector-button {
	margin-right: 10px;
	padding: 6px 14px;
	font-family: var(--fontfamily);
	color: var(--color-main);
	background: #fff;
	border: 1px solid var(--color-main);
	border-radius: var(--round-common);
	cursor: pointer;
}

/* 同意・送信 */
.ap-form__consent {
	margin: 8px 0 20px;
	text-align: center;
}
.ap-form__consent label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	font-weight: 700;
	cursor: pointer;
}
.ap-form__consent a {
	color: var(--color-main);
	text-decoration: underline;
}
.ap-form__submit-wrap {
	text-align: center;
}
.ap-form .ap-form__submit {
	display: inline-block;
	width: 100%;
	max-width: 400px;
	padding: 16px 24px;
	font-family: var(--fontfamily);
	font-size: 1.0625em;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: #fff;
	background: var(--color-main);
	border: 0;
	border-radius: var(--round-common);
	box-shadow: 0 3px 0 #000d3d;
	cursor: pointer;
	transition: opacity 0.2s, transform 0.1s;
}
.ap-form .ap-form__submit:hover {
	opacity: 0.9;
}
.ap-form .ap-form__submit:active {
	transform: translateY(2px);
	box-shadow: 0 1px 0 #000d3d;
}
.ap-form .ap-form__submit:disabled {
	background: #b5b9c6;
	box-shadow: none;
	cursor: not-allowed;
}
.ap-form .wpcf7-spinner {
	display: block;
	margin: 12px auto 0;
}

/* エラー・送信結果の表示 */
.ap-form .wpcf7-not-valid {
	border-color: #c0392b !important;
	background: #fff8f7 !important;
}
.ap-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 0.8125em;
	font-weight: 700;
	color: #c0392b;
}
.wpcf7 form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 14px 16px;
	border-width: 1px;
	border-radius: var(--round-common);
	line-height: 1.7;
}
.wpcf7 form.sent .wpcf7-response-output {
	color: #1e6b3a;
	background: #eef8f1;
	border-color: #7cc49a;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	color: #8a2a1f;
	background: #fff8f7;
	border-color: #e6a39b;
}

/* スマホ：1列にする */
@media screen and (max-width: 785.98px) {
	.ap-form__row {
		grid-template-columns: 1fr;
		padding: 16px 14px;
	}
	.ap-form__label {
		padding-top: 0;
	}
	.post-content .ap-form__section-ttl {
		padding: 11px 14px;
	}
	.ap-form .wpcf7-radio label,
	.ap-form .wpcf7-checkbox label {
		flex: 1 1 auto;
	}
	.ap-form__consent {
		text-align: left;
	}
}
