/*
Theme Name:   GeneratePress Child – Parasol
Theme URI:    https://parasol-house.site/
Description:  長崎の空き家管理 パラソル 用の GeneratePress 子テーマ
Author:       Parasol
Template:     generatepress
Version:      1.0.0
Text Domain:  generatepress-child
*/

/* =========================================================
   0. デザインの基本値（色・書体）
   ここを変えればサイト全体の色がそろって変わる
   ========================================================= */
:root {
	--prs-navy: #25374e;
	--prs-navy-2: #4a6283;
	--prs-yellow: #ffff00;
	--prs-yellow-2: #ffd908;
	--prs-cream: #fffbe0;
	--prs-gray: #f3f3f3;
	--prs-gray-2: #f7f8fa;
	--prs-line: #d6dae0;
	--prs-line-2: #ececec;
	--prs-text: #1f2328;
	--prs-muted: #555555;
	--prs-sub: #444444;
	--prs-on-navy: #dfe4ec;
	--prs-green: #06c755;
	--prs-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	--prs-num: "Oswald", "Noto Sans JP", sans-serif;
}

/* =========================================================
   1. サイト全体（GeneratePress の初期値を上書き）
   ========================================================= */
html { overflow-x: clip; }
body,
button,
input,
select,
textarea {
	font-family: var(--prs-font);
}
body {
	color: var(--prs-text);
	background: #ffffff;
	font-size: 16px;
	line-height: 1.8;
	-webkit-text-size-adjust: 100%;
}
a { color: var(--prs-navy); }
a:hover, a:focus { color: var(--prs-navy-2); }

/* 見出しを言葉の切れ目で改行し、1文字だけ次の行に落ちるのを防ぐ */
h1, h2, h3, h4, summary,
.prs-h1, .prs-h2, .prs-h3, .prs-card__title, .prs-title, .prs-statement, .prs-band, .prs-box__title {
	word-break: auto-phrase;
	text-wrap: balance;
}

/* ---------- 固定ページ：親テーマの余白・枠をすべて外す ---------- */
body.prs-page #page,
body.prs-page .site.grid-container {
	max-width: none;
	padding: 0;
}
body.prs-page .site-content {
	display: block;
	padding: 0;
}
body.prs-page .content-area {
	width: 100%;
	float: none;
}
body.prs-page .site-main {
	margin: 0;
}
body.prs-page .inside-article {
	padding: 0;
	background: transparent;
}
body.prs-page article,
body.prs-page .entry-content {
	margin: 0;
}
body.prs-page .entry-header,
body.prs-page .page-header {
	display: none;
}
body.prs-page .entry-content > *:first-child { margin-top: 0; }

/* =========================================================
   2. ヘッダー（GeneratePress のヘッダーをそのまま使って装飾）
   ========================================================= */
.site-header {
	background: #ffffff;
	border-bottom: 1px solid var(--prs-line-2);
}
.main-title {
	font-size: 20px;
	font-weight: 900;
	letter-spacing: 0.04em;
	line-height: 1.4;
}
.main-title a,
.main-title a:hover,
.main-title a:visited {
	color: var(--prs-navy);
	text-decoration: none;
}
.site-description { display: none; }

.main-navigation,
.main-navigation ul ul {
	background: #ffffff;
}
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle {
	color: var(--prs-navy);
	font-size: 14px;
	font-weight: 500;
	padding-left: 11px;
	padding-right: 11px;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--prs-navy);
	background: transparent;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
/* メニューの「お問い合わせ」：メニュー項目のCSSクラスに nav-cta を付ける */
.main-navigation .main-nav ul li.nav-cta > a {
	display: inline-block;
	background: var(--prs-navy);
	color: #ffffff;
	line-height: 36px;
	margin: 0 0 0 8px;
	padding: 0 18px;
	border-radius: 20px;
	text-decoration: none;
}
.main-navigation .main-nav ul li.nav-cta {
	display: flex;
	align-items: center;
}
.main-navigation .main-nav ul li.nav-cta > a:hover {
	background: var(--prs-navy-2);
	color: #ffffff;
	text-decoration: none;
}
/* スマホメニュー */
.main-navigation.toggled .main-nav ul li.nav-cta {
	display: block;
	padding: 10px 20px 16px;
}
.main-navigation.toggled .main-nav ul li.nav-cta > a {
	display: block;
	margin: 0;
	text-align: center;
}

/* =========================================================
   3. フッター（functions.php で出力）
   ========================================================= */
.prs-footer {
	background: var(--prs-navy);
	color: #ffffff;
	font-size: 14px;
	line-height: 1.9;
}
.prs-footer__inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: space-between;
}
.prs-footer__info { flex: 1 1 300px; }
.prs-footer__name {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 900;
}
.prs-footer__info p { margin: 0; }
.prs-footer__nav {
	flex: 1 1 200px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.prs-footer a,
.prs-footer a:visited {
	color: #ffffff;
	text-decoration: none;
}
.prs-footer a:hover { color: var(--prs-yellow); }
.prs-footer__copy {
	margin: 0;
	padding: 14px 20px;
	text-align: center;
	font-size: 12px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

/* =========================================================
   4. ページ本文の共通ルール（.prs の中だけに効く）
   ========================================================= */
.prs {
	color: var(--prs-text);
	font-size: 16px;
	line-height: 1.8;
	line-break: strict;      /* 句読点や小さい「っ」などが行頭に来ないようにする */
	overflow-wrap: anywhere;
}
.prs *,
.prs *::before,
.prs *::after {
	box-sizing: border-box;
}
.prs p { margin: 0 0 1em; }
.prs p:last-child { margin-bottom: 0; }
.prs h1, .prs h2, .prs h3, .prs h4 {
	margin: 0 0 0.6em;
	font-family: var(--prs-font);
	font-weight: 900;
	line-height: 1.45;
	color: inherit;
	text-transform: none;
	letter-spacing: 0;
}
.prs ul, .prs ol {
	margin: 0 0 1em 1.3em;
	padding: 0;
}
.prs li { margin: 0 0 0.4em; }
.prs img {
	display: block;
	max-width: 100%;
	height: auto;
}
.prs strong { font-weight: 700; }
.prs a { color: var(--prs-navy); }

/* ---------- セクションと横幅 ---------- */
.prs-sec { padding: 80px 0; }
.prs-sec--sm { padding: 60px 0; }
.prs-sec--white { background: #ffffff; }
.prs-sec--cream { background: var(--prs-cream); }
.prs-sec--gray { background: var(--prs-gray); }
.prs-sec--yellow { background: var(--prs-yellow); }
.prs-sec--navy { background: var(--prs-navy); color: #ffffff; }
.prs-sec--navy a { color: var(--prs-yellow); }

.prs-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 20px;
}
.prs-wrap--md { max-width: 1040px; }
.prs-wrap--sm { max-width: 900px; }

.prs .prs-center { text-align: center; }
.prs .prs-mt { margin-top: 32px; }
.prs .prs-mt-sm { margin-top: 16px; }
.prs .prs-row > p { margin: 0; }

/* ---------- 文字 ---------- */
.prs .prs-eyebrow {
	margin: 0 0 6px;
	font-weight: 700;
	color: var(--prs-navy);
}
.prs .prs-sec--navy .prs-eyebrow,
.prs .prs-pagehead .prs-eyebrow { color: var(--prs-yellow); }
.prs .prs-h1 { font-size: clamp(30px, 4vw, 42px); line-height: 1.35; }
.prs .prs-h2 { font-size: clamp(24px, 3vw, 32px); }
.prs .prs-h3 { font-size: 20px; }
.prs .prs-lead {
	margin: 0 0 36px;
	color: var(--prs-sub);
	text-wrap: pretty;
}
.prs .prs-sec--navy .prs-lead { color: var(--prs-on-navy); }
.prs .prs-note {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--prs-muted);
}
.prs .prs-small { font-size: 14px; }
.prs .prs-marker {
	background: linear-gradient(transparent 62%, var(--prs-yellow) 62%);
}
.prs .prs-nb { display: inline-block; } /* この中では改行しない */
.prs .prs-num {
	font-family: var(--prs-num);
	font-weight: 700;
}

/* ---------- 小さな調整用 ---------- */
.prs .prs-right { text-align: right; }
.prs .prs-muted { color: var(--prs-muted); }
.prs .prs-sub { color: var(--prs-sub); }
.prs .prs-em { color: var(--prs-navy); font-weight: 700; }
.prs .prs-yellow { color: var(--prs-yellow); }
.prs .prs-on-navy { color: var(--prs-on-navy); }
.prs .prs-statement { margin: 0 0 6px; font-size: 22px; font-weight: 900; line-height: 1.6; }
.prs .prs-list-left { margin-top: 14px; text-align: left; }
.prs .prs-stack { display: flex; flex-direction: column; gap: 16px; }

/* ---------- 並べ方 ---------- */
.prs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
}
.prs-grid--sm { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.prs-grid--lg { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

.prs-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 32px;
}
.prs-row--top { align-items: flex-start; }
.prs-grow { flex: 999 1 420px; min-width: 0; }
.prs-side { flex: 1 1 300px; min-width: 0; }
.prs .prs-illust {
	flex: 0 1 260px;
	width: 260px;
	max-width: 70%;
	margin: 0 auto;
}
.prs .prs-illust--sm { flex-basis: 180px; width: 180px; max-width: 50%; }
.prs .prs-illust--logo { flex: 0 0 150px; width: 150px; max-width: 40%; }
.prs .prs-illust--xs { flex: 0 0 90px; width: 90px; max-width: 30%; margin: 0; }
.prs-row--tight { gap: 20px; }
.prs-grow--sm { flex-basis: 220px; }

/* ---------- カード ---------- */
.prs-card {
	background: #ffffff;
	color: var(--prs-text);
	border-radius: 14px;
	padding: 24px 26px;
}
.prs-card--line { border: 2px solid var(--prs-line); }
.prs-card--dashed { border: 2px dashed var(--prs-line); }
.prs-card--cream { background: var(--prs-cream); }
.prs-card--gray { background: var(--prs-gray); }
.prs-card--top { border-top: 5px solid var(--prs-navy); }
.prs-card--navy { background: var(--prs-navy); color: #ffffff; }
.prs-card--yellow { background: var(--prs-yellow); }
.prs-card--ghost { border: 1px solid rgba(255, 255, 255, 0.35); }
.prs .prs-card__num {
	margin: 0 0 4px;
	font-family: var(--prs-num);
	font-weight: 700;
	font-size: 28px;
	line-height: 1.2;
	color: var(--prs-navy);
}
.prs .prs-card--navy .prs-card__num { color: var(--prs-yellow); }
.prs .prs-card__title {
	margin: 0 0 8px;
	font-weight: 900;
	font-size: 19px;
	line-height: 1.5;
}
.prs .prs-card__text { font-size: 15px; }
.prs .prs-card--navy .prs-card__label { color: var(--prs-yellow); font-weight: 700; margin: 0 0 6px; }

/* リンクになっているカード */
.prs a.prs-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: var(--prs-text);
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.prs a.prs-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(37, 55, 78, 0.12);
}
.prs a.prs-card .prs-more {
	margin-top: auto;
	font-weight: 700;
	color: var(--prs-navy);
}

/* ---------- ボタン ---------- */
.prs .prs-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
}
.prs .prs-btns--left { justify-content: flex-start; }
.prs a.prs-btn,
.prs a.prs-btn:visited {
	display: inline-block;
	padding: 14px 32px;
	border: 2px solid transparent;
	border-radius: 40px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	transition: opacity 0.15s ease;
}
.prs a.prs-btn:hover { opacity: 0.85; }
.prs a.prs-btn--navy,
.prs a.prs-btn--navy:visited,
.prs a.prs-btn--navy:hover { background: var(--prs-navy); color: #ffffff; }
.prs a.prs-btn--yellow,
.prs a.prs-btn--yellow:visited,
.prs a.prs-btn--yellow:hover { background: var(--prs-yellow); color: var(--prs-text); }
.prs a.prs-btn--line,
.prs a.prs-btn--line:visited,
.prs a.prs-btn--line:hover { background: var(--prs-green); color: #ffffff; }
.prs a.prs-btn--outline,
.prs a.prs-btn--outline:visited,
.prs a.prs-btn--outline:hover { background: #ffffff; color: var(--prs-navy); border-color: var(--prs-navy); }
.prs a.prs-btn--block { display: block; }

/* ---------- 小さなラベル ---------- */
.prs .prs-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 18px;
}
.prs .prs-chip {
	background: var(--prs-cream);
	border: 1px solid var(--prs-yellow-2);
	border-radius: 30px;
	padding: 5px 16px;
	font-size: 15px;
	line-height: 1.6;
}
.prs .prs-badge {
	display: inline-block;
	align-self: flex-start;
	background: var(--prs-yellow);
	color: var(--prs-text);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.6;
	padding: 3px 14px;
	border-radius: 20px;
}

/* ---------- 箱・注意書き ---------- */
.prs .prs-box {
	background: var(--prs-cream);
	color: var(--prs-text);
	border-radius: 14px;
	padding: 22px 26px;
}
.prs .prs-box--white { background: #ffffff; }
.prs .prs-box--gray { background: var(--prs-gray); }
.prs .prs-box--dashed { background: #ffffff; border: 1px dashed var(--prs-navy); }
.prs .prs-box--yellow { background: var(--prs-yellow); }
.prs .prs-box__title { margin: 0 0 8px; font-weight: 700; }
.prs .prs-box__title--lg { font-size: 19px; font-weight: 900; line-height: 1.6; }
.prs .prs-box--accent { border: 2px solid var(--prs-yellow-2); }
.prs .prs-callout {
	border-left: 4px solid var(--prs-navy);
	padding: 4px 0 4px 14px;
	font-size: 15px;
}

/* ---------- 料金の数字 ---------- */
.prs .prs-price-box {
	background: #ffffff;
	color: var(--prs-text);
	border: 3px solid var(--prs-navy);
	border-radius: 16px;
	padding: 26px 24px;
	text-align: center;
}
.prs .prs-price-box--shadow { box-shadow: 6px 6px 0 var(--prs-yellow); }
.prs .prs-price {
	margin: 4px 0;
	font-family: var(--prs-num);
	font-weight: 700;
	font-size: clamp(44px, 6vw, 64px);
	line-height: 1.15;
	white-space: nowrap;
	color: var(--prs-text);
}
.prs .prs-price--navy { color: var(--prs-navy); }
.prs .prs-price--yellow { color: var(--prs-yellow); }
.prs .prs-price__unit {
	font-family: var(--prs-font);
	font-size: 18px;
	font-weight: 700;
	color: var(--prs-text);
}
.prs .prs-sec--navy .prs-price__unit,
.prs .prs-card--navy .prs-price__unit { color: #ffffff; }

/* ---------- 横に並ぶ手順（1→5） ---------- */
.prs .prs-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: prs-step;
}
.prs .prs-steps > li {
	margin: 0;
	padding: 20px 16px;
	background: var(--prs-cream);
	border-radius: 12px;
	text-align: center;
	counter-increment: prs-step;
}
.prs .prs-sec--cream .prs-steps > li { background: #ffffff; }
.prs .prs-sec--gray .prs-steps > li { background: #ffffff; }
.prs .prs-steps > li::before {
	content: counter(prs-step);
	display: block;
	width: 40px;
	height: 40px;
	margin: 0 auto 8px;
	border-radius: 50%;
	background: var(--prs-navy);
	color: #ffffff;
	font-weight: 700;
	line-height: 40px;
}
.prs .prs-steps strong { display: block; }
.prs .prs-steps span { display: block; margin-top: 4px; font-size: 14px; color: var(--prs-muted); }

/* ---------- 縦の手順（ご利用の流れ） ---------- */
.prs .prs-timeline {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: prs-tl;
}
.prs .prs-timeline > li {
	position: relative;
	margin: 0;
	padding: 0 0 32px 68px;
	counter-increment: prs-tl;
}
.prs .prs-timeline > li::before {
	content: counter(prs-tl);
	position: absolute;
	left: 0;
	top: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--prs-navy);
	color: #ffffff;
	font-family: var(--prs-num);
	font-size: 20px;
	font-weight: 700;
	line-height: 48px;
	text-align: center;
}
.prs .prs-timeline > li::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 56px;
	bottom: 6px;
	width: 3px;
	background: var(--prs-yellow-2);
}
.prs .prs-timeline > li:last-child { padding-bottom: 0; }
.prs .prs-timeline > li:last-child::after { display: none; }
.prs .prs-timeline > li:last-child::before { background: var(--prs-yellow); color: var(--prs-text); }
.prs .prs-timeline h3 { margin: 8px 0 6px; font-size: 20px; }

/* ---------- 表 ---------- */
.prs .prs-table-wrap {
	overflow-x: auto;
	background: #ffffff;
	border-radius: 12px;
	border: 1px solid var(--prs-line-2);
}
.prs table.prs-table {
	width: 100%;
	min-width: 480px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 15px;
}
.prs table.prs-table th,
.prs table.prs-table td {
	padding: 14px 18px;
	border: 0;
	border-bottom: 1px solid var(--prs-line-2);
	text-align: left;
	vertical-align: top;
}
.prs table.prs-table thead th {
	background: var(--prs-navy);
	color: #ffffff;
}
.prs table.prs-table tbody th {
	width: 200px;
	background: var(--prs-gray-2);
	font-weight: 700;
}
.prs table.prs-table tbody tr:last-child th,
.prs table.prs-table tbody tr:last-child td { border-bottom: 0; }
.prs table.prs-table--plain tbody th { width: auto; background: transparent; }

/* ---------- 下層ページの見出し帯 ---------- */
.prs .prs-pagehead {
	background: var(--prs-navy);
	color: #ffffff;
	padding: 48px 0 52px;
}
.prs .prs-pagehead--cream { background: var(--prs-cream); color: var(--prs-text); }
.prs .prs-pagehead--gray { background: var(--prs-gray); color: var(--prs-text); }
.prs .prs-pagehead .prs-h1 { margin: 0 0 12px; }
.prs .prs-pagehead p { margin: 0; }
.prs .prs-breadcrumb {
	margin: 0 0 10px;
	font-size: 13px;
	color: var(--prs-on-navy);
}
.prs .prs-breadcrumb a { color: var(--prs-on-navy); }
.prs .prs-pagehead--cream .prs-breadcrumb,
.prs .prs-pagehead--cream .prs-breadcrumb a,
.prs .prs-pagehead--gray .prs-breadcrumb,
.prs .prs-pagehead--gray .prs-breadcrumb a { color: var(--prs-sub); }
.prs .prs-pagehead--cream .prs-eyebrow,
.prs .prs-pagehead--gray .prs-eyebrow { color: var(--prs-navy); }
.prs .prs-pagehead .prs-price-box .prs-eyebrow { color: var(--prs-navy); }
.prs .prs-pagehead .prs-price-box p { margin: 0 0 4px; }
.prs .prs-anchors {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 22px;
}
.prs .prs-anchors a {
	padding: 7px 18px;
	border: 1px solid #ffffff;
	border-radius: 30px;
	color: #ffffff;
	font-weight: 700;
	text-decoration: none;
}
.prs .prs-anchors a:hover { background: #ffffff; color: var(--prs-navy); }

/* ---------- トップページ ---------- */
.prs .prs-hero { padding: 64px 0 56px; background: #ffffff; }
.prs .prs-hero__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 36px 40px; }
.prs .prs-hero__logo { flex: 0 1 200px; width: 200px; max-width: 40%; margin: 0 auto; }
.prs .prs-hero__copy { flex: 999 1 420px; min-width: 0; }
.prs .prs-hero__title { margin: 0 0 16px; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.4; }
.prs .prs-hero__text { font-size: 18px; margin: 0 0 28px; }
.prs .prs-hero__price { flex: 1 1 300px; }
.prs .prs-band {
	margin: 0;
	padding: 18px 20px;
	background: var(--prs-yellow);
	text-align: center;
	font-weight: 900;
	font-size: clamp(17px, 2vw, 22px);
	letter-spacing: 0.08em;
	line-height: 1.6;
}

.prs .prs-services {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
}
.prs .prs-service { flex: 1 1 280px; }
.prs .prs-service img { height: 110px; width: auto; align-self: center; margin-bottom: 4px; }
.prs .prs-service--main {
	flex: 1.15 1 300px;
	padding: 30px 28px;
	background: var(--prs-navy);
	color: #ffffff;
	box-shadow: 6px 6px 0 var(--prs-yellow);
}
.prs a.prs-service--main { color: #ffffff; }
.prs .prs-service--main .prs-service__label { color: var(--prs-yellow); }
.prs .prs-service--main img { background: #ffffff; border-radius: 10px; padding: 8px; }
.prs .prs-service--main .prs-price { font-size: 32px; color: var(--prs-yellow); }
.prs .prs-service--main .prs-price__unit { font-size: 14px; color: #ffffff; }
.prs .prs-service__label { font-size: 13px; font-weight: 700; color: var(--prs-navy); }
.prs .prs-service__name { font-weight: 900; font-size: 20px; line-height: 1.5; }
.prs .prs-service--main .prs-service__name { font-size: 24px; }

/* ---------- よくある質問 ---------- */
.prs .prs-faq-group + .prs-faq-group { margin-top: 44px; }
.prs .prs-faq-group > h2 {
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 3px solid var(--prs-yellow);
	font-size: 22px;
}
.prs .prs-faq { display: flex; flex-direction: column; gap: 10px; }
.prs .prs-faq details {
	background: #ffffff;
	border: 2px solid var(--prs-line);
	border-radius: 12px;
	padding: 14px 20px;
}
.prs .prs-faq summary {
	position: relative;
	padding-right: 30px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.prs .prs-faq summary::-webkit-details-marker { display: none; }
.prs .prs-faq summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: -2px;
	font-size: 22px;
	line-height: 1.4;
	color: var(--prs-navy);
}
.prs .prs-faq details[open] summary::after { content: "−"; }
.prs .prs-faq details p { margin: 10px 0 0; }

/* ---------- 管理レポートの見本 ---------- */
.prs .prs-report {
	background: #ffffff;
	border-radius: 6px;
	box-shadow: 0 6px 24px rgba(37, 55, 78, 0.12);
	padding: 40px 44px;
}
.prs .prs-report__head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-end;
	gap: 12px;
	padding-bottom: 14px;
	border-bottom: 4px solid var(--prs-yellow);
}
.prs .prs-report__meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 8px 20px;
	margin-top: 18px;
	font-size: 14px;
}
.prs .prs-report h2 { margin: 28px 0 10px; font-size: 18px; }
.prs .prs-report table.prs-table { font-size: 14px; }
.prs .prs-report table.prs-table th,
.prs .prs-report table.prs-table td { padding: 8px 12px; }
.prs .prs-report tr.is-warn td { background: var(--prs-cream); font-weight: 700; }
.prs .prs-photo {
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #e6e9ee;
	border-radius: 4px;
	color: var(--prs-muted);
	font-size: 13px;
}
.prs .prs-tag {
	background: var(--prs-navy);
	color: #ffffff;
	font-size: 13px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 4px;
}

/* ---------- 電話番号（画像） ---------- */
.prs-tel {
	display: inline-block;
	height: 1.15em;
	width: auto;
	vertical-align: -0.15em;
	color: var(--prs-text);
}

/* ---------- お問い合わせの帯（ショートコード [prs_cta]） ---------- */
.prs .prs-cta {
	padding: 64px 0;
	background: var(--prs-yellow);
	text-align: center;
}
.prs .prs-cta h2 { font-size: clamp(24px, 3vw, 30px); margin-bottom: 8px; }
.prs .prs-cta p { margin: 0 0 28px; }

/* ---------- 料金シミュレーション（ショートコード [prs_simulator]） ---------- */
.prs .prs-sim {
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	align-items: flex-start;
}
.prs .prs-sim__qs {
	flex: 999 1 520px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.prs .prs-sim__q {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}
.prs .prs-sim__q legend {
	margin: 0 0 10px;
	padding: 0;
	font-size: 17px;
	font-weight: 700;
	color: var(--prs-navy);
}
.prs .prs-sim__opts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
}
.prs button.prs-sim__opt,
.prs button.prs-sim__opt:hover,
.prs button.prs-sim__opt:focus {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 12px 14px;
	border: 2px solid var(--prs-line);
	border-radius: 10px;
	background: #ffffff;
	color: var(--prs-text);
	font: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	text-align: left;
	text-transform: none;
	cursor: pointer;
}
.prs button.prs-sim__opt:hover { border-color: var(--prs-navy-2); }
.prs button.prs-sim__opt:focus-visible { outline: 3px solid var(--prs-navy-2); outline-offset: 2px; }
.prs button.prs-sim__opt.is-on,
.prs button.prs-sim__opt.is-on:hover,
.prs button.prs-sim__opt.is-on:focus {
	background: var(--prs-yellow);
	border-color: var(--prs-navy);
}
.prs .prs-sim__pt {
	flex-shrink: 0;
	font-weight: 700;
	color: var(--prs-navy);
	white-space: nowrap;
}
.prs .prs-sim__result {
	flex: 1 1 300px;
	padding: 28px 26px;
	background: var(--prs-navy);
	color: #ffffff;
	border-radius: 16px;
}
.prs .prs-sim__result p { margin: 0; }
.prs .prs-sim__total {
	margin: 4px 0 0;
	font-family: var(--prs-num);
	font-weight: 700;
	font-size: 56px;
	line-height: 1.15;
	color: var(--prs-yellow);
	white-space: nowrap;
}
.prs .prs-sim__total .prs-price__unit { color: #ffffff; }
.prs .prs-sim__lines {
	margin: 16px 0 22px;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	font-size: 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.prs .prs-sim__lines div { display: flex; justify-content: space-between; gap: 10px; }
.prs .prs-sim__result .prs-note { color: var(--prs-on-navy); font-size: 12px; margin-top: 12px; }

/* ---------- お問い合わせフォーム（Contact Form 7） ---------- */
.prs .prs-form {
	background: #ffffff;
	border-radius: 16px;
	padding: 34px 32px;
}
.prs .prs-form__group {
	margin: 0 0 18px;
	padding-bottom: 6px;
	border-bottom: 3px solid var(--prs-yellow);
	font-size: 19px;
	font-weight: 900;
}
.prs .prs-form__group:not(:first-child) { margin-top: 34px; }
.prs .prs-form__field { margin: 0 0 20px; }
.prs .prs-form__cols { display: flex; flex-wrap: wrap; gap: 0 18px; }
.prs .prs-form__cols > .prs-form__field { flex: 1 1 260px; min-width: 0; }
.prs .prs-form__label { display: block; margin: 0 0 6px; font-weight: 700; }
.prs .prs-form__hint { font-size: 13px; font-weight: 400; color: var(--prs-muted); }
.prs .prs-req {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: 4px;
	background: var(--prs-navy);
	color: #ffffff;
	font-size: 12px;
	font-weight: 700;
	vertical-align: 2px;
}
.prs .wpcf7-form-control-wrap { display: block; }
.prs .wpcf7 input[type="text"],
.prs .wpcf7 input[type="email"],
.prs .wpcf7 input[type="tel"],
.prs .wpcf7 select,
.prs .wpcf7 textarea {
	display: block;
	width: 100%;
	margin: 0;
	padding: 12px 14px;
	border: 2px solid var(--prs-line);
	border-radius: 8px;
	background: #ffffff;
	color: var(--prs-text);
	font: inherit;
	font-size: 16px; /* iPhone で入力時に拡大されないよう16px以上 */
	line-height: 1.6;
}
.prs .wpcf7 input:focus,
.prs .wpcf7 select:focus,
.prs .wpcf7 textarea:focus {
	border-color: var(--prs-navy);
	outline: none;
	background: #ffffff;
}
.prs .wpcf7 textarea { min-height: 160px; resize: vertical; }
.prs .wpcf7-radio,
.prs .wpcf7-checkbox,
.prs .wpcf7-acceptance { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.prs .wpcf7-list-item { margin: 0; }
.prs .wpcf7-list-item label { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.prs .wpcf7-list-item input { margin: 0; width: 18px; height: 18px; flex-shrink: 0; }
.prs .prs-form__agree { margin: 28px 0 0; font-size: 15px; }
.prs .prs-form__submit { margin: 24px 0 0; text-align: center; }
.prs .wpcf7 input[type="submit"],
.prs .wpcf7 input[type="submit"]:hover,
.prs .wpcf7 input[type="submit"]:focus {
	display: inline-block;
	min-width: 240px;
	padding: 16px 56px;
	border: 0;
	border-radius: 40px;
	background: var(--prs-navy);
	color: #ffffff;
	font: inherit;
	font-size: 17px;
	font-weight: 700;
	cursor: pointer;
}
.prs .wpcf7 input[type="submit"]:hover { background: var(--prs-navy-2); }
.prs .wpcf7 input[type="submit"]:disabled { opacity: 0.5; cursor: not-allowed; }
.prs .wpcf7-spinner { display: block; margin: 10px auto 0; }
.prs .wpcf7-not-valid-tip { margin-top: 6px; font-size: 14px; color: #c0392b; }
.prs .wpcf7 form .wpcf7-response-output {
	margin: 24px 0 0;
	padding: 14px 18px;
	border-radius: 8px;
	font-size: 15px;
}
.prs .prs-form__foot { margin: 16px 0 0; text-align: center; font-size: 13px; color: var(--prs-muted); }

/* =========================================================
   5. コラム（投稿・一覧）
   ========================================================= */
.single-post .entry-content,
.blog .entry-summary,
.archive .entry-summary {
	font-size: 16px;
	line-height: 1.9;
}
.single-post .entry-content h2 {
	margin: 2em 0 0.8em;
	padding: 0 0 8px;
	border-bottom: 3px solid var(--prs-yellow);
	font-size: 24px;
	font-weight: 900;
}
.single-post .entry-content h3 {
	margin: 1.6em 0 0.6em;
	padding-left: 12px;
	border-left: 4px solid var(--prs-navy);
	font-size: 20px;
	font-weight: 900;
}
.single-post .entry-title,
.blog .entry-title,
.archive .entry-title {
	font-weight: 900;
	line-height: 1.5;
}
.blog .entry-title a,
.archive .entry-title a { color: var(--prs-text); }

/* =========================================================
   6. スマホ
   ========================================================= */
@media (max-width: 768px) {
	.prs-sec { padding: 56px 0; }
	.prs-sec--sm { padding: 44px 0; }
	.prs .prs-hero { padding: 40px 0 40px; }
	.prs .prs-hero__text { font-size: 16px; }
	.prs .prs-card { padding: 20px 18px; }
	.prs .prs-box { padding: 18px 18px; }
	.prs .prs-report { padding: 24px 18px; }
	.prs .prs-form { padding: 26px 18px; }
	.prs .prs-pagehead { padding: 36px 0 40px; }
	.prs table.prs-table tbody th { width: 120px; }
	.prs .prs-timeline > li { padding-left: 60px; }
	.prs .prs-sim__total { font-size: 48px; }
	.prs a.prs-btn { padding: 14px 24px; }
}

/* =========================================================
   7. 念のため：自動で入った空の段落・改行を無視する
   ========================================================= */
body.prs-page .entry-content > p:empty,
body.prs-page .entry-content > br,
.prs p:empty,
.prs-grid > br,
.prs-grid > p:empty,
.prs-services > br,
.prs-services > p:empty,
.prs-row > br,
.prs a.prs-card > br,
.prs .prs-steps > br,
.prs .prs-chips > br,
.prs .prs-btns > br {
	display: none;
}

/* =========================================================
   8. コラム（一覧・記事ページ）
   ========================================================= */

/* ---------- 記事カード ---------- */
.prs .prs-posts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 20px;
}
.prs .prs-posts--3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.prs a.prs-post {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px 26px 24px;
	background: #ffffff;
	border-radius: 14px;
	border-top: 5px solid var(--prs-yellow-2);
	color: var(--prs-text);
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.prs a.prs-post:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(37, 55, 78, 0.12);
	color: var(--prs-text);
}
.prs .prs-post__cat {
	align-self: flex-start;
	padding: 2px 12px;
	border-radius: 20px;
	background: var(--prs-cream);
	border: 1px solid var(--prs-yellow-2);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;
	color: var(--prs-navy);
}
.prs .prs-post__title {
	font-size: 18px;
	font-weight: 900;
	line-height: 1.6;
	word-break: auto-phrase;
	text-wrap: pretty;
}
.prs .prs-post__excerpt {
	font-size: 14px;
	line-height: 1.8;
	color: var(--prs-sub);
}
.prs .prs-post__more {
	margin-top: auto;
	padding-top: 6px;
	font-size: 14px;
	font-weight: 700;
	color: var(--prs-navy);
}
.prs a.prs-post:hover .prs-post__more { text-decoration: underline; }

/* 最新の1本：大きく、紺で */
.prs a.prs-post--feature {
	grid-column: 1 / -1;
	padding: 36px 36px 32px;
	background: var(--prs-navy);
	border-top: 0;
	color: #ffffff;
	box-shadow: 6px 6px 0 var(--prs-yellow);
}
.prs a.prs-post--feature:hover { color: #ffffff; box-shadow: 6px 6px 0 var(--prs-yellow), 0 10px 24px rgba(37, 55, 78, 0.2); }
.prs .prs-post--feature .prs-post__cat { background: var(--prs-yellow); border-color: var(--prs-yellow); color: var(--prs-text); }
.prs .prs-post--feature .prs-post__title { font-size: clamp(20px, 2.4vw, 26px); }
.prs .prs-post--feature .prs-post__excerpt { font-size: 15px; color: var(--prs-on-navy); }
.prs .prs-post--feature .prs-post__more { color: var(--prs-yellow); }
.prs .prs-post__cat--onnavy { display: inline-block; margin-bottom: 10px; background: var(--prs-yellow); border-color: var(--prs-yellow); color: var(--prs-text); }

/* ---------- ページ送り ---------- */
.prs .prs-pager { margin-top: 36px; }
.prs .prs-pager .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}
.prs .prs-pager .page-numbers {
	display: inline-block;
	min-width: 44px;
	padding: 8px 14px;
	border-radius: 30px;
	background: #ffffff;
	border: 2px solid var(--prs-line);
	color: var(--prs-navy);
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}
.prs .prs-pager .page-numbers.current { background: var(--prs-navy); border-color: var(--prs-navy); color: #ffffff; }
.prs .prs-pager .page-numbers.dots { border: 0; background: transparent; }
.prs .prs-pager .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- 記事ページ ---------- */
.prs .prs-wrap--article { max-width: 800px; }
.prs .prs-article__title { margin: 0; font-size: clamp(24px, 3.2vw, 34px); line-height: 1.5; }
.prs .prs-article {
	font-size: 17px;
	line-height: 2;
}
.prs .prs-article > * + * { margin-top: 1.4em; }
.prs .prs-article p { margin: 0; }
.prs .prs-article p + p { margin-top: 1.2em; }
.prs .prs-article h2 {
	margin: 2.4em 0 1em;
	padding: 0 0 10px;
	border-bottom: 3px solid var(--prs-yellow);
	font-size: 24px;
	line-height: 1.5;
}
.prs .prs-article h3 {
	margin: 2em 0 0.8em;
	padding-left: 12px;
	border-left: 5px solid var(--prs-navy);
	font-size: 20px;
	line-height: 1.5;
}
.prs .prs-article h4 { margin: 1.6em 0 0.6em; font-size: 18px; }
.prs .prs-article ul,
.prs .prs-article ol { margin: 1.2em 0 1.2em 1.4em; }
.prs .prs-article li { margin-bottom: 0.5em; }
.prs .prs-article strong { background: linear-gradient(transparent 65%, var(--prs-yellow) 65%); }
.prs .prs-article a { color: var(--prs-navy); text-underline-offset: 3px; }
.prs .prs-article img { border-radius: 10px; margin: 1.6em auto; }
.prs .prs-article figure { margin: 1.6em 0; }
.prs .prs-article figcaption { font-size: 13px; color: var(--prs-muted); text-align: center; }
.prs .prs-article blockquote {
	margin: 1.6em 0;
	padding: 18px 22px;
	background: var(--prs-gray);
	border-left: 4px solid var(--prs-line);
	border-radius: 0 10px 10px 0;
	font-size: 15px;
	font-style: normal;
}
.prs .prs-article table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 1.6em 0; }
.prs .prs-article th,
.prs .prs-article td { padding: 10px 14px; border: 1px solid var(--prs-line-2); text-align: left; }
.prs .prs-article th { background: var(--prs-gray-2); }
.prs .prs-article hr { margin: 2.4em 0; border: 0; border-top: 1px solid var(--prs-line); }

/* 記事の書き手 */
.prs .prs-author {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	margin-top: 56px;
	padding: 22px 24px;
	background: var(--prs-cream);
	border-radius: 14px;
}
.prs .prs-author img { flex: 0 0 64px; width: 64px; height: auto; }
.prs .prs-author p { margin: 0; }
.prs .prs-author__label { font-size: 12px; font-weight: 700; color: var(--prs-navy); }
.prs .prs-author__name { font-size: 17px; font-weight: 900; margin-bottom: 4px !important; }

@media (max-width: 768px) {
	.prs a.prs-post { padding: 22px 20px 20px; }
	.prs a.prs-post--feature { padding: 26px 22px 24px; }
	.prs .prs-article { font-size: 16px; }
	.prs .prs-article h2 { font-size: 21px; }
	.prs .prs-article h3 { font-size: 18px; }
}

/* =========================================================
   9. 巡回メニュー：項目と画像を同じマスで並べる
   ========================================================= */
.prs .prs-grid--menu {
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.prs .prs-card--illust {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px;
}
.prs .prs-card--illust img {
	width: auto;
	max-width: 100%;
	max-height: 130px;
	margin: 0 auto;
}
@media (max-width: 540px) {
	/* スマホでは2列にして、画像のマスが大きくなりすぎないようにする */
	.prs .prs-grid--menu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.prs .prs-grid--menu .prs-card { padding: 16px 14px; }
	.prs .prs-grid--menu .prs-card__title { font-size: 15px; }
	.prs .prs-grid--menu .prs-card__text { font-size: 13px; }
	.prs .prs-card--illust img { max-height: 90px; }
}
