@charset "UTF-8";
/*
Theme Name: SANGO Child - カメトリ（カメラ買取メディア）
Template: sango-theme
Version: 2.0.0
Description: カメラ買取メディア「カメトリ」用の子テーマ。グリーン #13867F ＋ ゴールド #CB9B2D。ヘッダー・フッター・トップ・記事ページはワイヤー実装。
*/

:root {
	--cam-green: #13867F;        /* メイン */
	--cam-green-dark: #0B4F4A;   /* フッター・濃い面 */
	--cam-green-text: #0E6A63;   /* 白背景に置く緑の文字（4.5:1 を満たす） */
	--cam-gold: #CB9B2D;         /* アクセント。小さいパーツにだけ使う */
	--cam-ink: #23242A;
	--cam-sub: #5E6B69;
	--cam-mute: #7C8A87;
	--cam-line: #E1E8E6;
	--cam-tint: #E6F1EF;
	--cam-tint2: #F2F7F6;
	--cam-gray: #F7F9F8;
	--cam-ph: #E8ECEB;           /* アイキャッチのプレースホルダ */
	--cam-th: #E8EFEE;           /* 比較表の見出し行＝薄いグレーよりの緑 */
	--cam-th-1st: #E3EDEB;       /* 1列目の見出しだけ一段濃く */
	--cam-td-line: #DCE7E5;
	--cam-wrap: 1280px;
	--cam-gutter: 60px;
}

/* =========================================================================
 * 土台
 * ========================================================================= */
body {
	background: #fff;
	color: var(--cam-ink);
	-webkit-font-smoothing: antialiased;
}
.cam-wrap {
	max-width: var(--cam-wrap);
	margin: 0 auto;
	padding: 0 var(--cam-gutter);
	box-sizing: border-box;
}
.cam-visually-hidden {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.cam-skip {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--cam-green); color: #fff; padding: 10px 16px;
}
.cam-skip:focus { left: 0; }
.cam-meta { font-size: 12px; color: var(--cam-mute); }

/* =========================================================================
 * ヘッダー
 * ========================================================================= */
.cam-header {
	background: #fff;
	border-bottom: 1px solid var(--cam-line);
	position: relative;
	z-index: 50;
}
.cam-header__inner {
	max-width: var(--cam-wrap);
	margin: 0 auto;
	padding: 0 var(--cam-gutter);
	height: 76px;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}
.cam-logo { display: flex; align-items: center; text-decoration: none; color: var(--cam-ink); }
.cam-logo__img { display: block; width: auto; height: 44px; }
.cam-logo__text { font-size: 21px; font-weight: 900; letter-spacing: .01em; }

.cam-gnav { margin-left: auto; }
.cam-gnav__list {
	display: flex; align-items: center; gap: 36px;
	list-style: none; margin: 0; padding: 0;
}
.cam-gnav__list a {
	font-size: 15px; font-weight: 700; color: var(--cam-ink); text-decoration: none;
}
.cam-gnav__list a:hover { color: var(--cam-green-text); }
.cam-gnav__list .cam-cta a,
a.cam-cta {
	display: inline-flex; align-items: center;
	height: 46px; padding: 0 24px;
	border-radius: 10px;
	background: var(--cam-green); color: #fff;
}
.cam-gnav__list .cam-cta a:hover,
a.cam-cta:hover { background: var(--cam-green-dark); color: #fff; }

.cam-burger { display: none; }

/* ---- SPドロワー ---- */
.cam-drawer {
	position: fixed; inset: 0; z-index: 90;
	background: rgba(11, 79, 74, .45);
	opacity: 0; transition: opacity .2s ease;
}
body.cam-drawer-open .cam-drawer { opacity: 1; }
.cam-drawer__inner {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: min(86vw, 340px);
	background: #fff;
	padding: 24px 20px 40px;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform .22s ease;
}
body.cam-drawer-open .cam-drawer__inner { transform: translateX(0); }
.cam-drawer__list { list-style: none; margin: 20px 0 0; padding: 0; }
.cam-drawer__list a {
	display: flex; align-items: center; height: 52px;
	font-size: 15px; font-weight: 700; color: var(--cam-ink);
	text-decoration: none; border-bottom: 1px solid var(--cam-line);
}
.cam-drawer__list .cam-cta a {
	height: 52px; margin-top: 14px; border-bottom: none;
	justify-content: center; border-radius: 10px;
	background: var(--cam-green); color: #fff;
}
.cam-drawer__head {
	margin: 26px 0 8px; font-size: 12px; font-weight: 700;
	letter-spacing: .12em; color: var(--cam-sub);
}
.cam-drawer__cats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cam-drawer__cats a {
	display: inline-flex; align-items: center; height: 34px; padding: 0 13px;
	border-radius: 17px; background: #F3F3F3; color: var(--cam-ink);
	font-size: 13px; text-decoration: none;
}

/* =========================================================================
 * 検索ボックス（トップ・サイドバー・ドロワー共通）
 * ========================================================================= */
.cam-searchbox {
	display: flex; align-items: center;
	border: 2px solid var(--cam-green);
	border-radius: 32px;
	background: #fff;
	padding: 0 6px 0 18px;
	gap: 10px;
	box-sizing: border-box;
}
.cam-searchbox .cam-ico-search { color: var(--cam-mute); flex-shrink: 0; }
.cam-searchbox input[type="search"] {
	flex-grow: 1; min-width: 0;
	border: none; outline: none; background: transparent;
	font-family: inherit; font-size: 16px; color: var(--cam-ink);
	height: 44px; padding: 0;
	-webkit-appearance: none;
}
.cam-searchbox input[type="search"]::placeholder { color: #9AA8A5; }
.cam-searchbox button {
	flex-shrink: 0; border: none; cursor: pointer;
	background: var(--cam-green); color: #fff;
	font-family: inherit; font-weight: 700;
	border-radius: 24px;
}
.cam-searchbox--lg { width: 720px; max-width: 100%; height: 64px; }
.cam-searchbox--lg button { height: 48px; padding: 0 30px; font-size: 15px; }
.cam-searchbox--sb,
.cam-searchbox--drawer { height: 48px; padding: 0 5px 0 14px; border-radius: 24px; }
.cam-searchbox--sb input[type="search"],
.cam-searchbox--drawer input[type="search"] { height: 38px; }
.cam-searchbox--sb button,
.cam-searchbox--drawer button { height: 38px; padding: 0 16px; font-size: 13.5px; border-radius: 19px; }

/* =========================================================================
 * トップ：FV カルーセル
 * ========================================================================= */
.cam-fv { background: var(--cam-tint2); padding: 44px 0; }
.cam-fv__row { display: flex; align-items: center; gap: 16px; }
.cam-fv__arrow {
	width: 48px; height: 48px; flex-shrink: 0;
	border-radius: 24px; border: 1px solid #C9D8D5; background: #fff;
	color: var(--cam-green);
	display: flex; align-items: center; justify-content: center;
	cursor: pointer;
}
.cam-fv__arrow:hover { background: var(--cam-tint); }
.cam-fv__viewport { flex-grow: 1; min-width: 0; }
.cam-fv__track { list-style: none; margin: 0; padding: 0; }
.cam-fv__slide { display: none; }
.cam-fv__slide.is-current { display: block; }
.cam-fv__card {
	display: flex;
	height: 400px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid var(--cam-line);
	overflow: hidden;
	text-decoration: none;
	color: var(--cam-ink);
}
.cam-fv__thumb {
	width: 520px; flex-shrink: 0;
	background: var(--cam-ph);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.cam-fv__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cam-fv__body {
	flex-grow: 1; min-width: 0;
	padding: 40px 44px;
	display: flex; flex-direction: column; justify-content: center; gap: 16px;
}
.cam-fv__title {
	font-size: 30px; font-weight: 900; line-height: 1.45;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.cam-fv__excerpt {
	font-size: 14.5px; line-height: 1.85; color: var(--cam-sub);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.cam-fv__dots { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 28px; }
.cam-fv__dot {
	width: 10px; height: 6px; border-radius: 3px; border: none; padding: 0;
	background: #C2D2CF; cursor: pointer; transition: width .2s, background .2s;
}
.cam-fv__dot.is-current { width: 32px; background: var(--cam-gold); }

.cam-badges { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* =========================================================================
 * トップ：検索セクション
 * ========================================================================= */
.cam-search-sec { padding: 56px 0; background: #fff; }
.cam-search-sec .cam-wrap { display: flex; flex-direction: column; align-items: center; }
.cam-search-sec__h { margin: 0 0 6px; font-size: 23px; font-weight: 900; text-align: center; border: none; padding: 0; background: none; }
.cam-search-sec__lead { margin: 0 0 20px; font-size: 13.5px; color: var(--cam-sub); }

.cam-kw { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.cam-kw__label { font-size: 12.5px; font-weight: 700; color: var(--cam-sub); }
.cam-kw__tag {
	display: inline-flex; align-items: center; height: 30px; padding: 0 14px;
	border-radius: 15px; background: #F3F3F3; color: var(--cam-ink);
	font-size: 12.5px; text-decoration: none;
}
.cam-kw__tag:hover { background: var(--cam-tint); color: var(--cam-green-text); }

/* =========================================================================
 * セクション見出し（中央寄せ・ENラベル・アクセントバー）
 * ========================================================================= */
.cam-sec { padding: 72px 0; }
.cam-sec--white { background: #fff; }
.cam-sec--gray { background: var(--cam-gray); }
.cam-sec-head { display: flex; flex-direction: column; align-items: center; margin-bottom: 28px; }
.cam-sec-head .en { font-size: 11px; font-weight: 700; letter-spacing: .16em; color: var(--cam-sub); }
.cam-sec-head h2 { margin: 3px 0 0; font-size: 26px; font-weight: 900; text-align: center; border: none; padding: 0; background: none; }
.cam-sec-head .bar { width: 44px; height: 4px; border-radius: 2px; margin-top: 8px; background: var(--cam-green); }
.cam-sec-head--gold .bar { background: var(--cam-gold); }
.cam-sec__more { display: flex; justify-content: center; margin-top: 36px; }
.cam-btn-outline {
	display: inline-flex; align-items: center; justify-content: center;
	height: 56px; padding: 0 44px; border-radius: 28px;
	border: 2px solid var(--cam-green); background: #fff;
	color: var(--cam-green-text); font-size: 15px; font-weight: 700; text-decoration: none;
}
.cam-btn-outline:hover { background: var(--cam-green); color: #fff; }

/* =========================================================================
 * 記事カード
 * ========================================================================= */
.cam-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.cam-card {
	display: flex; flex-direction: column;
	border: 1px solid var(--cam-line); border-radius: 14px;
	background: #fff; overflow: hidden;
	text-decoration: none; color: var(--cam-ink);
	transition: box-shadow .15s, transform .15s;
}
.cam-card:hover { box-shadow: 0 6px 20px rgba(15, 23, 42, .08); transform: translateY(-2px); color: var(--cam-ink); }
.cam-card__thumb {
	aspect-ratio: 16 / 9; background: var(--cam-ph);
	display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.cam-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cam-card__body { flex-grow: 1; padding: 20px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.cam-card__title {
	font-size: 16.5px; font-weight: 700; line-height: 1.55;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.cam-card__meta { margin-top: auto; }

/* サムネのプレースホルダ */
.cam-thumb__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }

/* ============ カテゴリバッジ ============ */
.cam-badge {
	display: inline-flex; align-items: center; height: 22px; padding: 0 10px;
	border-radius: 4px; background: var(--cam-tint); color: var(--cam-green-text);
	font-size: 11.5px; font-weight: 700;
}
.cam-badge--gold { background: var(--cam-gold); color: var(--cam-ink); letter-spacing: .06em; }
.cam-badge--sand { background: #F1EADB; color: #6B5310; }

/* =========================================================================
 * 一覧ページ・固定ページ・記事ページの共通枠
 * ========================================================================= */
.cam-breadbar { background: var(--cam-gray); }
.cam-bc { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 48px; font-size: 12.5px; }
.cam-bc a { color: var(--cam-sub); text-decoration: none; }
.cam-bc a:hover { color: var(--cam-green-text); }
.cam-bc__sep { color: #9AA8A5; font-size: 11px; }
.cam-bc__current { color: var(--cam-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 44em; }

.cam-pagehead { background: var(--cam-gray); padding: 8px 0 36px; }
.cam-pagehead .cam-bc { margin-bottom: 10px; }
.cam-pagehead__en { font-size: 11px; font-weight: 700; letter-spacing: .16em; color: var(--cam-sub); }
.cam-pagehead__h { margin: 4px 0 0; font-size: 30px; font-weight: 900; border: none; padding: 0; background: none; }
.cam-pagehead__lead { margin: 10px 0 0; font-size: 14.5px; line-height: 1.9; color: var(--cam-sub); }

.cam-list-page__body,
.cam-single__body { display: flex; gap: 40px; align-items: flex-start; padding-top: 48px; padding-bottom: 64px; }
.cam-list-page__body > #main { flex-grow: 1; min-width: 0; }
.cam-single__body > #main { width: 760px; flex-shrink: 0; min-width: 0; }

.cam-page__body { padding: 40px 0 72px; }
.cam-page__body > #main { max-width: 820px; margin: 0 auto; }
.cam-page .entry-title { margin: 0 0 8px; font-size: 30px; font-weight: 900; line-height: 1.5; border: none; padding: 0; background: none; }
.cam-page .entry-header { margin-bottom: 28px; }
.cam-page__updated { margin: 8px 0 0; font-size: 12.5px; color: var(--cam-mute); }

.cam-empty { font-size: 15px; line-height: 1.95; margin: 0 0 24px; }

/* ページネーション */
.cam-list-page .page-numbers {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 8px;
	list-style: none; margin: 40px 0 0; padding: 0;
}
.cam-list-page .page-numbers li a,
.cam-list-page .page-numbers li span {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--cam-line); border-radius: 8px;
	color: var(--cam-ink); text-decoration: none; font-size: 14px; background: #fff;
}
.cam-list-page .page-numbers li span.current { background: var(--cam-green); border-color: var(--cam-green); color: #fff; font-weight: 700; }

/* =========================================================================
 * 記事ページ
 * ========================================================================= */
.cam-single .entry-title { margin: 12px 0 16px; font-size: 32px; font-weight: 900; line-height: 1.5; }
.cam-single .entry-header .cam-badge { margin: 0; }
.cam-single .entry-meta { margin-bottom: 24px; }
.cam-single__thumb { margin: 0 0 32px; }
.cam-single__thumb img { width: 100%; height: auto; border-radius: 12px; display: block; }

/* ---- サイドバー ---- */
.cam-single__body #sidebar1,
.cam-list-page__body #sidebar1 {
	width: 360px; flex-shrink: 0; float: none; margin: 0; padding: 0;
}
#sidebar1 .insidesp { padding: 0; }
#sidebar1 .widget,
#sidebar1 .normal-sidebar > div,
#sidebar1 section {
	border: 1px solid var(--cam-line); border-radius: 12px;
	padding: 20px; background: #fff; margin: 0 0 32px;
	box-shadow: none;
}
#sidebar1 .widget:last-child { margin-bottom: 0; }
.cam-sb__h {
	margin: 0 0 14px; font-size: 15px; font-weight: 700;
	display: flex; align-items: center; gap: 8px;
	border: none; padding: 0; background: none;
}
.cam-sb__bar { width: 4px; height: 17px; border-radius: 2px; background: var(--cam-gold); flex-shrink: 0; }
.cam-sb__list { display: flex; flex-direction: column; }
.cam-sb__item {
	display: flex; gap: 12px; align-items: center;
	padding: 12px 0; border-bottom: 1px solid #EDF1F0;
	text-decoration: none; color: var(--cam-ink);
}
.cam-sb__item:last-child { border-bottom: none; }
.cam-sb__thumb {
	width: 96px; height: 54px; flex-shrink: 0; border-radius: 6px;
	background: var(--cam-ph); overflow: hidden;
	display: flex; align-items: center; justify-content: center;
}
.cam-sb__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cam-sb__ttl { font-size: 13px; font-weight: 700; line-height: 1.6; }

/* ============ リンク ============ */
.entry-content a { color: var(--cam-green-text); }
.entry-content a:hover { color: var(--cam-green-dark); }

/* ============ 記事内 h2：下辺のみ 4px のグリーン（グラデは使わない） ============ */
body.single .entry-content h2,
body.page .entry-content h2 {
	padding: 10px 0 10px 10px;
	border: 0;
	border-bottom: 4px solid var(--cam-green);
	background: transparent;
	color: var(--cam-ink);
	font-weight: 900;
}

/* ============ 記事内 h3：左辺のみ 4px のグリーン ============ */
body.single .entry-content h3,
body.page .entry-content h3 {
	padding: 6px 0 6px 12px;
	border: 0;
	border-left: 4px solid var(--cam-green);
	background: transparent;
	color: var(--cam-ink);
}

/* ============ 目次（SANGO の目次ブロック） ============ */
#toc_container {
	border: none !important;
	border-top: 4px solid var(--cam-green) !important;
	background: #F9F9F9 !important;
	box-shadow: 0 2px 12px rgba(15, 23, 42, .07) !important;
	border-radius: 0 0 6px 6px;
	padding: 20px 25px;
	margin: 2em 0;
	width: 100%;
	box-sizing: border-box;
}
#toc_container .toc_title {
	display: flex;
	align-items: center;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--cam-green-text);
	margin: 0;
	background: none;
}
#toc_container .toc_title::before {
	content: "\f0ca";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cam-green);
	color: #fff;
	font-size: 16px;
	margin-right: 12px;
	flex-shrink: 0;
}
/* 開閉ボタン：薄いグレー地に濃いグレーの文字（白文字だと読めないため反転させている） */
#toc_container .toc_toggle {
	display: inline-block;
	margin-left: 12px;
	padding: 4px 15px;
	border-radius: 999px;
	background: #DCE3E1;
	color: #4A5654;
	font-size: .78rem;
	font-weight: 700;
	cursor: pointer;
}
#toc_container .toc_list {
	margin: 12px 0 0;
	padding-left: 1.4em;
	border: none;
	background: none;
	list-style: disc;
}
#toc_container .toc_list li { margin: 7px 0; font-size: .95rem; line-height: 1.6; }
#toc_container .toc_list li::marker { color: #333; }
#toc_container .toc_list a { color: #555; text-decoration: none; }
#toc_container .toc_list a:hover { color: var(--cam-green); text-decoration: underline; }
#toc_container .toc_list.toc_list-close { display: none; }
/* H3 の入れ子 */
#toc_container .toc_list .toc_list {
	margin: 4px 0;
	padding-left: 1.3em;
	font-size: .92em;
}
.sgb-toc-button { background-color: var(--cam-green); }

/* ============ 比較表：全幅＋横スクロール＋先頭列固定 ============ */
.tw-table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 1.5em 0;
}
.tw-table-scroll table {
	display: table;
	table-layout: fixed;
	width: 100%;
	min-width: 600px;
	margin: 0;
	border-collapse: collapse;
}
.tw-table-scroll tbody { display: table-row-group; }
.tw-table-scroll td,
.tw-table-scroll th { overflow-wrap: break-word; }
.tw-table-scroll th:first-child,
.tw-table-scroll td:first-child {
	position: sticky;
	left: 0;
	z-index: 1;
	background: #fff;
	width: 108px;
	max-width: 108px;
}
.tw-table-scroll thead th:first-child { background: var(--cam-th-1st); }

.single .entry-content th,
.single .entry-content td {
	border: 1px solid var(--cam-td-line);
	padding: 10px 12px;
	font-size: 13px;   /* 本文 15px に対して 2px 下げる */
	line-height: 1.7;
}
.single .entry-content th,
.single .entry-content table:not(:has(thead)) tr:first-child td {
	background: var(--cam-th);
	color: var(--cam-ink);
	font-weight: 700;
	white-space: nowrap;
}

/* ============ 記事末尾の関連記事（同一カテゴリー 3列×2行） ============ */
.tw-related { margin: 48px 0 8px; border-top: 1px solid var(--cam-line); padding-top: 40px; }
.tw-related-h {
	font-size: 1.3rem;
	font-weight: 900;
	color: var(--cam-ink);
	border: none;
	background: none;
	padding: 0 0 0 12px;
	margin: 0 0 20px;
	border-left: 5px solid var(--cam-green);
}
.tw-related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px 20px;
}
.tw-related-grid a { color: var(--cam-ink); text-decoration: none; display: block; }
.tw-related-thumb {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 16 / 9; border-radius: 8px; background: var(--cam-ph); overflow: hidden;
}
.tw-related-grid img { border-radius: 8px; display: block; width: 100%; height: 100%; object-fit: cover; }
.tw-related-grid .ttl { font-size: 13.5px; font-weight: 700; line-height: 1.6; margin-top: 9px; display: block; }
/* SANGO 標準の関連記事は自前のものと二重になるので消す */
body.single .related-posts { display: none !important; }

/* =========================================================================
 * フッター
 * ========================================================================= */
.cam-footer { background: var(--cam-green-dark); color: #fff; margin-top: 0; }
.cam-footer__inner {
	max-width: var(--cam-wrap); margin: 0 auto;
	padding: 56px var(--cam-gutter) 32px;
	box-sizing: border-box;
}
.cam-footer__top { display: flex; align-items: flex-start; gap: 40px; }
.cam-footer__brand { width: 420px; max-width: 100%; }
.cam-logo--footer { gap: 12px; }
.cam-logo--footer .cam-logo__icon { flex-shrink: 0; }
.cam-logo--footer .cam-logo__text { color: #fff; font-size: 20px; font-weight: 900; }
.cam-footer__desc { margin: 14px 0 0; font-size: 13px; line-height: 1.9; color: #C4DAD7; }
.cam-footer__nav { margin-left: auto; display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.cam-footer__list { display: flex; align-items: center; gap: 32px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.cam-footer__list a { font-size: 14px; font-weight: 500; color: #fff; text-decoration: none; }
.cam-footer__list a:hover { color: #fff; text-decoration: underline; }
.cam-footer__cta {
	display: inline-flex; align-items: center;
	height: 46px; padding: 0 26px; border-radius: 10px;
	background: #fff; color: var(--cam-green-dark);
	font-size: 14.5px; font-weight: 700; text-decoration: none;
}
.cam-footer__cta:hover { background: var(--cam-tint); color: var(--cam-green-dark); }
.cam-footer__bottom {
	display: flex; align-items: center;
	margin-top: 36px; padding-top: 20px;
	border-top: 1px solid #2E6D68;
	font-size: 12px; color: #A9C7C3;
}
.cam-footer__note { margin-left: auto; }

/* SANGO 標準のフッター要素は使わない */
.footer-links, #footer-menu, .footer-widget { display: none; }

/* =========================================================================
 * SP（1023px 以下）
 * ========================================================================= */
@media (max-width: 1023px) {
	:root { --cam-gutter: 16px; }

	.cam-header__inner { height: 60px; }
	.cam-logo__img { height: 37px; }
	.cam-logo__text { font-size: 17px; }
	.cam-gnav { display: none; }
	.cam-burger {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
		margin-left: auto; width: 44px; height: 44px; border: none; background: transparent; cursor: pointer;
	}
	.cam-burger span { width: 22px; height: 2px; background: var(--cam-ink); border-radius: 1px; }

	.cam-fv { padding: 20px 0; }
	.cam-fv__arrow { display: none; }
	.cam-fv__card { flex-direction: column; height: auto; border-radius: 14px; }
	.cam-fv__thumb { width: 100%; aspect-ratio: 16 / 9; }
	.cam-fv__body { padding: 14px 16px 18px; gap: 8px; }
	.cam-fv__title { font-size: 17px; -webkit-line-clamp: 3; }
	.cam-fv__excerpt { display: none; }
	.cam-fv__dots { margin-top: 16px; }
	.cam-fv__dot { width: 8px; height: 5px; }
	.cam-fv__dot.is-current { width: 24px; }

	.cam-search-sec { padding: 32px 0; }
	.cam-search-sec__h { font-size: 17px; }
	.cam-search-sec__lead { font-size: 12px; margin-bottom: 16px; }
	.cam-searchbox--lg { width: 100%; height: 54px; border-radius: 27px; padding: 0 6px 0 16px; }
	.cam-searchbox--lg button { height: 42px; padding: 0 18px; font-size: 14px; border-radius: 21px; }
	.cam-kw { gap: 8px; margin-top: 16px; }
	.cam-kw__label { display: none; }

	.cam-sec { padding: 40px 0; }
	.cam-sec-head h2 { font-size: 20px; }
	.cam-sec-head .bar { width: 36px; }
	.cam-sec__more { margin-top: 20px; }
	.cam-btn-outline { width: 100%; height: 48px; padding: 0 16px; border-radius: 24px; font-size: 14px; }

	.cam-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.cam-card { border-radius: 12px; }
	.cam-card__body { padding: 10px 12px 12px; gap: 6px; }
	.cam-card__title { font-size: 13px; -webkit-line-clamp: 3; }
	.cam-card__meta { font-size: 11px; }

	.cam-pagehead { padding: 4px 0 24px; }
	.cam-pagehead__h { font-size: 22px; }

	.cam-list-page__body,
	.cam-single__body { flex-direction: column; gap: 32px; padding-top: 24px; padding-bottom: 40px; }
	.cam-single__body > #main,
	.cam-single__body #sidebar1,
	.cam-list-page__body #sidebar1 { width: 100%; }

	.cam-single .entry-title { font-size: 22px; }
	.cam-single__thumb { margin-bottom: 24px; }

	.cam-bc { min-height: 40px; font-size: 11.5px; gap: 6px; }
	.cam-bc__current { max-width: 100%; }

	body.single .entry-content h2 { font-size: 20px; }
	body.single .entry-content h3 { font-size: 17px; }

	.tw-table-scroll th:first-child,
	.tw-table-scroll td:first-child { width: 108px; max-width: 108px; }

	.tw-related-grid { grid-template-columns: repeat(2, 1fr); gap: 18px 14px; }
	.tw-related-grid .ttl { font-size: 12.5px; }
	.tw-related-h { font-size: 1.15rem; }

	.cam-footer__inner { padding: 36px var(--cam-gutter) 24px; }
	.cam-footer__top { flex-direction: column; gap: 24px; }
	.cam-footer__brand { width: 100%; }
	.cam-footer__nav { margin-left: 0; width: 100%; flex-direction: column; align-items: stretch; gap: 0; }
	.cam-footer__list { flex-direction: column; align-items: stretch; gap: 0; }
	.cam-footer__list a { display: flex; align-items: center; height: 44px; }
	.cam-footer__cta { margin-top: 12px; height: 52px; justify-content: center; font-size: 15px; }
	.cam-footer__bottom { flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 24px; font-size: 11.5px; }
	.cam-footer__note { margin-left: 0; }

	.single .entry-content th,
	.single .entry-content td { font-size: 12px; padding: 8px 9px; line-height: 1.6; }
}

@media (max-width: 600px) {
	.cam-fv__title { font-size: 16px; }
}

/* ============ コメント欄は使わない ============ */
#comments, .comments-area, #respond, .comment-respond,
.entry-content + #comments, .sng-comment, #trackback { display: none !important; }

/* =========================================================================
 * お問い合わせフォーム（Contact Form 7）
 * ========================================================================= */
.cam-form { max-width: 720px; margin: 0 auto; }
.cam-form .cam-row { margin: 0 0 22px; }
.cam-form label {
	display: flex; align-items: center; gap: 10px;
	font-size: 15px; font-weight: 700; color: var(--cam-ink); margin-bottom: 8px;
}
.cam-form .cam-req {
	display: inline-flex; align-items: center; height: 20px; padding: 0 8px;
	border-radius: 3px; background: #C0392B; color: #fff;
	font-size: 11px; font-weight: 700; letter-spacing: .04em; flex-shrink: 0;
}
.cam-form input[type="text"],
.cam-form input[type="email"],
.cam-form input[type="tel"],
.cam-form textarea {
	width: 100%; box-sizing: border-box;
	border: 1px solid #C9D8D5; border-radius: 8px;
	padding: 13px 14px; font-size: 16px;   /* 16px 未満だと iOS で拡大する */
	font-family: inherit; color: var(--cam-ink); background: #fff;
	transition: border-color .15s, box-shadow .15s;
}
.cam-form input:focus,
.cam-form textarea:focus {
	outline: none;
	border-color: var(--cam-green);
	box-shadow: 0 0 0 3px rgba(19, 134, 127, .15);
}
.cam-form textarea { min-height: 220px; line-height: 1.8; resize: vertical; }
.cam-form ::placeholder { color: #9AA8A5; }

/* 姓名・メール/電話は横2列。SPでは1列に落とす */
.cam-form .cam-col2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
@media (max-width: 600px) {
	.cam-form .cam-col2 { grid-template-columns: 1fr; gap: 0; }
}

/* プライバシーポリシー同意 */
.cam-form .cam-consent {
	margin: 4px 0 26px; padding: 16px 18px;
	background: var(--cam-gray); border: 1px solid var(--cam-line); border-radius: 8px;
	font-size: 14.5px; text-align: center;
}
.cam-form .cam-consent .wpcf7-list-item { margin: 0; }
.cam-form .cam-consent input[type="checkbox"] { width: 18px; height: 18px; margin-right: 8px; accent-color: var(--cam-green); vertical-align: -3px; }
.cam-form .cam-consent a { color: var(--cam-green-text); text-decoration: underline; }

/* 送信ボタン */
.cam-form .cam-submit { text-align: center; margin: 0; }
.cam-form input[type="submit"] {
	min-width: 260px; height: 58px; padding: 0 40px;
	border: none; border-radius: 10px;
	background: var(--cam-green); color: #fff;
	font-size: 17px; font-weight: 700; font-family: inherit; cursor: pointer;
	transition: background .15s;
}
.cam-form input[type="submit"]:hover { background: var(--cam-green-dark); }
.cam-form input[type="submit"]:disabled { background: #9AA8A5; cursor: not-allowed; }

/* エラー・完了メッセージ */
.wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0; padding: 14px 16px; border-radius: 8px;
	border-width: 1px; font-size: 14.5px;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--cam-green); background: var(--cam-tint); color: var(--cam-green-dark); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { border-color: #C0392B; background: #FDEDEC; color: #922B21; }
.wpcf7-not-valid-tip { color: #C0392B; font-size: 13px; margin-top: 6px; display: block; }
.cam-form .wpcf7-not-valid { border-color: #C0392B; }

/* reCAPTCHA v3 のバッジは右下に固定で出る。フォーム以外では隠す */
.grecaptcha-badge { visibility: hidden; }
body.cam-has-form .grecaptcha-badge { visibility: visible; }
