/*
 * Public House サイト機能 - 基本スタイル
 * 色は子テーマの --ph-* 変数を使います（未定義時は右側の値）。
 */

/* ---------- 仮の目印 ---------- */
.ph-show-drafts .ph-draft {
	position: relative;
	outline: 2px dashed #e0a100;
	outline-offset: 4px;
}
.ph-show-drafts .ph-draft::before {
	content: "仮";
	position: absolute;
	top: -12px;
	left: -8px;
	z-index: 5;
	padding: 4px 7px;
	border-radius: 3px;
	background: #e0a100;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .05em;
	pointer-events: none;
}
.ph-show-drafts.ph-lang-en .ph-draft::before { content: "DRAFT"; }
.ph-draft-badge { display: none; }

/* ---------- コンサルタント ---------- */
.ph-consultants { display: grid; gap: clamp(40px, 6vw, 72px); }
.ph-consultant {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
}
/* 白背景の写真がページに溶け込まないよう、薄いグレーの台紙に乗算で重ねる */
.ph-consultant__photo {
	overflow: hidden;
	border-radius: var(--ph-radius, 4px);
	background: #e6ecf0;
}
.ph-consultant__photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	mix-blend-mode: multiply;
}
.ph-consultant__position {
	margin: 0 0 .25em;
	color: var(--ph-color-primary, #0a7ea4);
	font-size: .875rem;
	font-weight: 600;
	letter-spacing: .08em;
}
.ph-consultant__name {
	margin: 0 0 1em !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--ph-color-text, #1f2a33) !important;
	font-size: clamp(1.5rem, 3vw, 2rem) !important;
	line-height: 1.4;
}
.ph-consultant__name::before, .ph-consultant__name::after { display: none !important; }
.ph-consultant__name-en {
	display: block;
	margin-top: .2em;
	color: var(--ph-color-muted, #5b6b77);
	font-size: .8125rem;
	font-weight: 400;
	letter-spacing: .12em;
}
/* 保有資格：箱・縦ライン・背景色を使わず、上下の罫線で1行の情報として見せる */
.ph-qualification {
	display: flex;
	flex-wrap: wrap;
	gap: .25em 1.25em;
	align-items: baseline;
	margin: 0 0 1.5em;
	padding: .9em 0;
	border-top: 1px solid var(--ph-color-border, #dde5ea);
	border-bottom: 1px solid var(--ph-color-border, #dde5ea);
}
.ph-qualification__label {
	color: var(--ph-color-muted, #5b6b77);
	font-size: .8125rem;
	font-weight: 400;
}
.ph-qualification__name { font-weight: 700; }
.ph-qualification__no { color: var(--ph-color-muted, #5b6b77); font-size: .875rem; }
.ph-consultant__message {
	margin: 0 0 1.5em;
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.9;
}
.ph-consultant__career h4, .ph-consultant__specialties h4 {
	margin: 1.75em 0 .75em !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--ph-color-text, #1f2a33);
	font-size: 1rem !important;
	letter-spacing: .08em;
}
.ph-consultant__career h4::before, .ph-consultant__specialties h4::before { display: none !important; }
.ph-consultant__specialties, .ph-consultant__links { margin-top: 2em; }
.ph-consultant__career > :last-child { margin-bottom: 0; }
/* 専門領域：丸いタグにせず、スラッシュ区切りの文章として並べる */
.ph-consultant__specialties ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.ph-consultant__specialties li {
	margin: 0 !important;
	padding: 0 !important;
	font-size: .9375rem;
	line-height: 2;
}
.ph-consultant__specialties li + li::before {
	content: "／" !important;
	display: inline !important;
	position: static !important;
	margin: 0 .5em;
	color: var(--ph-color-border, #dde5ea);
	background: none !important;
}
.ph-consultant__specialties li::before { display: none !important; }
.ph-consultants--compact .ph-consultant { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }

@media (max-width: 767px) {
	.ph-consultant, .ph-consultants--compact .ph-consultant { grid-template-columns: 1fr; }
	.ph-consultant__photo { max-width: 420px; }
}

/* ---------- 実績 ---------- */
.ph-cases {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 16px clamp(24px, 4vw, 48px);
}
.ph-case {
	padding: 24px 0 8px;
	border-top: 1px solid var(--ph-color-rule, #1f2a33);
	background: transparent;
}
/* 区分（法人向け／個人向け）：チップにせず小さな文字で */
.ph-case__type {
	display: block;
	margin-bottom: .5em;
	color: var(--ph-color-muted, #5b6b77);
	font-size: .8125rem;
}
.ph-case__title {
	margin: 0 0 .5em !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--ph-color-text, #1f2a33) !important;
	font-size: 1.125rem !important;
}
.ph-case__title::before, .ph-case__title::after { display: none !important; }
.ph-case__meta { margin: 0 0 1em; color: var(--ph-color-muted, #5b6b77); font-size: .875rem; }
.ph-case__meta span { margin-left: 1em; }
.ph-case__rows { margin: 0; }
.ph-case__row { padding: .75em 0; border-top: 1px solid var(--ph-color-border, #dfe7ec); }
.ph-case__row dt { margin: 0 0 .25em; color: var(--ph-color-text, #1f2a33); font-size: .8125rem; font-weight: 700; }
.ph-case__row dd { margin: 0; font-size: .9375rem; line-height: 1.8; }

/* ---------- 地図 ---------- */
.ph-map {
	overflow: hidden;
	border-radius: var(--ph-radius, 4px);
	background: var(--ph-color-bg-soft, #f5f9fb);
}
.ph-map iframe {
	display: block;
	width: 100%;
	height: var(--ph-map-height, 420px);
	border: 0;
}
@media (max-width: 767px) {
	.ph-map iframe { height: min(var(--ph-map-height, 420px), 320px); }
}

/* ---------- 言語切替 ---------- */
.ph-lang-switcher { display: inline-flex; gap: .5em; align-items: center; font-size: .875rem; }
.ph-lang-switcher a { color: inherit; text-decoration: none; opacity: .65; }
.ph-lang-switcher a.is-current { font-weight: 700; opacity: 1; }
