/* NESTA Core — テーマに依存しない最低限の見た目。色や余白はテーマ側で上書きできます。 */
:root {
	--nesta-blue: #003da5;
	--nesta-red: #dc1c2e;
	--nesta-ink: #222;
	--nesta-sub: #666;
	--nesta-line: #e3e6ea;
	--nesta-bg: #f6f8fb;
}

.nesta-hero { padding: 2.5rem 0 1.5rem; }
.nesta-hero h1 { font-size: clamp(1.8rem, 5vw, 2.8rem); line-height: 1.3; margin-bottom: .5rem; }
.nesta-hero-sub { font-size: clamp(1rem, 2.6vw, 1.3rem); color: var(--nesta-blue); font-weight: 700; }
.nesta-entrances .wp-block-column { background: var(--nesta-bg); border-radius: 12px; padding: 1.5rem; }

.nesta-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 1rem 0 2rem; }
.nesta-card { display: flex; flex-direction: column; gap: .4rem; background: #fff; border: 1px solid var(--nesta-line); border-radius: 12px; padding: .9rem; color: var(--nesta-ink); text-decoration: none; position: relative; }
.nesta-card-link { display: flex; flex-direction: column; gap: .4rem; color: inherit; text-decoration: none; }
.nesta-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.nesta-agent-card img { aspect-ratio: 1 / 1; }
.nesta-card strong { font-size: 1.05rem; }
.nesta-card:hover { border-color: var(--nesta-blue); }
.nesta-meta { color: var(--nesta-sub); font-size: .9rem; }
.nesta-noimg { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: var(--nesta-bg); color: var(--nesta-sub); border-radius: 8px; font-size: .9rem; }

.nesta-tags { list-style: none; margin: .4rem 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.nesta-tags li { margin: 0; }
.nesta-tags a, .nesta-tags span { display: inline-block; padding: .2rem .65rem; border-radius: 999px; background: #eaf0fb; color: var(--nesta-blue); font-size: .85rem; text-decoration: none; }
.nesta-filter { margin-bottom: 1.25rem; }
.nesta-filter a.is-active { background: var(--nesta-blue); color: #fff; }

.nesta-agent-head { display: grid; grid-template-columns: minmax(0, 280px) 1fr; gap: 1.5rem; align-items: start; margin-bottom: 1.5rem; }
.nesta-agent-head.nesta-no-photo { grid-template-columns: 1fr; }
.nesta-agent-photo img { width: 100%; height: auto; border-radius: 12px; }
.nesta-catch { font-size: 1.25rem; font-weight: 700; line-height: 1.5; margin: 0 0 .6rem; }
.nesta-area { margin: .6rem 0; }
.nesta-agent-profile { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

.nesta-box { background: var(--nesta-bg); border-radius: 12px; padding: 1.1rem 1.25rem; margin: 1rem 0; }
.nesta-box h2 { font-size: 1.1rem; margin: 0 0 .6rem; padding: 0; border: 0; }
.nesta-list { margin: 0; padding-left: 1.2em; }
.nesta-list li { margin: .2rem 0; }

.nesta-sns { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.nesta-btn { display: inline-block; padding: .45rem 1rem; border-radius: 999px; border: 1px solid var(--nesta-blue); color: var(--nesta-blue); text-decoration: none; font-size: .9rem; background: #fff; }
.nesta-btn:hover { background: var(--nesta-blue); color: #fff; }
.nesta-btn-look { background: var(--nesta-red); border-color: var(--nesta-red); color: #fff; }
.nesta-btn-look:hover { background: #b51524; border-color: #b51524; }

.nesta-note { font-size: .85rem; color: var(--nesta-sub); }
.nesta-review { background: #fff; border-left: 4px solid var(--nesta-blue); border-radius: 8px; padding: .9rem 1rem; margin: .8rem 0; }
.nesta-review-title { font-weight: 700; margin: 0 0 .3rem; }
.nesta-review cite { display: block; text-align: right; color: var(--nesta-sub); font-style: normal; font-size: .9rem; }

.nesta-status { display: inline-block; padding: .15rem .6rem; border-radius: 4px; font-size: .8rem; background: var(--nesta-blue); color: #fff; width: fit-content; }
.nesta-status-成約済み, .nesta-status-%e6%88%90%e7%b4%84%e6%b8%88%e3%81%bf { background: #888; }

.nesta-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.nesta-table th, .nesta-table td { border: 1px solid var(--nesta-line); padding: .6rem .8rem; text-align: left; vertical-align: top; }
.nesta-table th { background: var(--nesta-bg); width: 30%; white-space: nowrap; }

.nesta-postlist { list-style: none; margin: 0; padding: 0; }
.nesta-postlist li { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--nesta-line); }
.nesta-postlist span { color: var(--nesta-sub); font-size: .85rem; white-space: nowrap; }

.nesta-author { margin: 2rem 0 1rem; border: 1px solid var(--nesta-line); border-radius: 12px; padding: 1rem; }
.nesta-author-h { margin: 0 0 .5rem; font-size: .85rem; color: var(--nesta-sub); }
.nesta-author a { display: flex; gap: 1rem; align-items: center; color: inherit; text-decoration: none; }
.nesta-author img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.nesta-author em { display: block; font-style: normal; color: var(--nesta-sub); font-size: .9rem; }

@media (max-width: 640px) {
	.nesta-agent-head { grid-template-columns: 1fr; }
	.nesta-agent-photo { max-width: 320px; }
	.nesta-postlist li { flex-direction: column; gap: .2rem; }
}
