@charset "UTF-8";
/* ==========================================================================
   Public House - デザイン調整用CSS
   --------------------------------------------------------------------------
   ・色や余白を変えたいときは、まず下の「デザイン変数」を変更してください。
   ・ページ内の部品は、ブロックの「追加 CSS クラス」に ph-〇〇 を付けて使います。
     使えるクラスの一覧は docs/編集マニュアル.md を参照してください。
   ・動きのある演出（パララックス・背景固定など）は、サイトを軽く保つため使いません。
   ・テンプレート的に見えやすい装飾（左の縦ライン、見出し上の英字ラベル、飾りの番号、
     丸いチップ、光彩グラデーション、何にでも付く影や角丸）は意図的に使っていません。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. デザイン変数
   -------------------------------------------------------------------------- */
:root {
	--ph-color-primary: #0a7ea4;      /* メインの濃い水色 */
	--ph-color-primary-dark: #075a78; /* 文字・ホバー用の濃い色 */
	--ph-color-primary-deep: #063a4e; /* フッター・濃い帯 */
	--ph-color-primary-pale: #eaf6fa; /* 薄い水色の背景 */
	--ph-color-bg-soft: #f5f8fa;      /* セクションの薄い背景 */
	--ph-color-text: #1f2a33;
	--ph-color-muted: #5b6b77;
	--ph-color-subtle: #7d8a94;       /* 言語切替などの控えめな文字 */
	--ph-color-border: #dde5ea;
	--ph-color-rule: #1f2a33;         /* 区切りの濃い罫線 */
	--ph-radius: 4px;
	--ph-radius-small: 2px;
	--ph-section-space: clamp(64px, 9vw, 120px);
	--ph-font-en: "Helvetica Neue", Arial, "Hiragino Sans", sans-serif;
}

/* --------------------------------------------------------------------------
   2. ベース
   -------------------------------------------------------------------------- */
body {
	color: var(--ph-color-text);
	letter-spacing: .03em;
	-webkit-font-smoothing: antialiased;
}
.post_content { line-height: 1.95; }
.post_content p { margin-bottom: 1.4em; }
a { transition: color .15s, background-color .15s, border-color .15s, opacity .15s; }
:focus-visible { outline: 3px solid rgba(10, 126, 164, .45); outline-offset: 2px; }

/* パララックス・背景固定は使わない（スクロールと画像がずれる動きを無効化） */
.swell-block-fullWide.-fixbg { background-attachment: scroll !important; }
.swell-block-fullWide .__parallaxLayer { top: 0 !important; height: 100% !important; transform: none !important; }
.wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax { background-attachment: scroll !important; }

/* 見出しの基本（SWELL側の見出し装飾は「なし」に設定しています） */
.post_content h2 {
	word-break: auto-phrase;
	margin: 0 0 .9em;
	padding: 0;
	color: var(--ph-color-text);
	font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.125rem);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: .04em;
}
.post_content h3 {
	margin: 2.4em 0 .8em;
	padding: 0 0 .6em;
	border-bottom: 1px solid var(--ph-color-border);
	color: var(--ph-color-text);
	font-size: clamp(1.1875rem, 1rem + .6vw, 1.375rem);
	line-height: 1.6;
}
.post_content h4 {
	margin: 2em 0 .6em;
	padding: 0;
	border: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
}
.post_content h4::before { display: none; }

/* --------------------------------------------------------------------------
   3. ヘッダー
   -------------------------------------------------------------------------- */
.l-header { background: rgba(255, 255, 255, .96); }
.c-headLogo .c-headLogo__link { color: var(--ph-color-primary-deep); font-family: var(--ph-font-en); font-weight: 700; letter-spacing: .08em; }

/* メニュー項目：項目どうしの間隔を広げ、下線は「文字の下だけ」に出す */
.c-gnav > .menu-item > a {
	padding-right: clamp(12px, 1.4vw, 20px);
	padding-left: clamp(12px, 1.4vw, 20px);
	font-size: .9375rem;
	font-weight: 600;
}
.c-gnav > .menu-item > a::after { display: none !important; } /* SWELL標準の下線（リンク幅いっぱい）は使わない */
.c-gnav > .menu-item > a .ttl {
	position: relative;
	display: inline-block;
	padding: 6px 0;
	letter-spacing: .06em;
}
.c-gnav > .menu-item:not(.ph-menu-cta):not(.lang-item) > a .ttl::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 2px;
	background: var(--ph-color-primary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .2s;
}
.c-gnav > .menu-item:not(.ph-menu-cta):not(.lang-item) > a:hover .ttl::after { transform: scaleX(1); }
/* 表示中のページ：文字色で示す（下線は細く常時表示） */
.c-gnav > .menu-item.current-menu-item:not(.lang-item) > a,
.c-gnav > .menu-item.current-menu-ancestor:not(.lang-item) > a { color: var(--ph-color-primary-dark); }
.c-gnav > .menu-item.current-menu-item:not(.ph-menu-cta):not(.lang-item) > a .ttl::after,
.c-gnav > .menu-item.current-menu-ancestor:not(.ph-menu-cta):not(.lang-item) > a .ttl::after { transform: scaleX(1); height: 1px; }

/* メニュー項目に CSS クラス「ph-menu-cta」を付けると、お問い合わせボタンになります */
.c-gnav > .menu-item.ph-menu-cta > a { padding-right: 0; padding-left: 12px; }
.c-gnav > .menu-item.ph-menu-cta > a .ttl {
	display: inline-flex;
	align-items: center;
	padding: .7em 1.4em;
	border-radius: var(--ph-radius);
	background: var(--ph-color-primary);
	color: #fff;
}
.c-gnav > .menu-item.ph-menu-cta > a:hover .ttl { background: var(--ph-color-primary-dark); }

/* 言語切替（Polylang の「言語スイッチャー」メニュー項目）：他のメニューと色・大きさを変える */
.c-gnav > .menu-item.lang-item > a {
	padding-right: 8px;
	padding-left: 8px;
	color: var(--ph-color-subtle);
	font-weight: 400;
}
.c-gnav > .menu-item.lang-item > a .ttl { font-family: var(--ph-font-en); font-size: .75rem; letter-spacing: .1em; }
.c-gnav > .menu-item.lang-item > a:hover { color: var(--ph-color-primary-dark); }
.c-gnav > .menu-item.lang-item.current-lang > a { color: var(--ph-color-primary-dark); font-weight: 700; }
.c-gnav > .menu-item.lang-item.lang-item-first > a { position: relative; margin-left: 12px; }
.c-gnav > .menu-item.lang-item.lang-item-first > a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -6px;
	width: 1px;
	height: 14px;
	background: var(--ph-color-border);
	transform: translateY(-50%);
}
.c-gnav > .menu-item.lang-item + .menu-item.lang-item > a::before {
	content: "/";
	position: absolute;
	left: -2px;
	color: var(--ph-color-border);
	font-size: .75rem;
}
.c-gnav > .menu-item.lang-item + .menu-item.lang-item > a { position: relative; }

/* スマホのメニュー内の言語切替 */
.p-spMenu .c-spnav .lang-item a,
.p-spMenu .lang-item a {
	color: var(--ph-color-subtle) !important;
	font-family: var(--ph-font-en);
	font-size: 13px;
	letter-spacing: .1em;
}
.p-spMenu .lang-item.current-lang a { color: var(--ph-color-primary-dark) !important; font-weight: 700; }
.p-spMenu .lang-item a::before { display: none !important; }

/* --------------------------------------------------------------------------
   4. ページタイトル（下層ページ上部）
   -------------------------------------------------------------------------- */
.l-topTitleArea {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(220px, 26vw, 320px);
	color: #fff;
}
.l-topTitleArea::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(6, 58, 78, .72) !important;
	opacity: 1 !important;
}
.l-topTitleArea__body { position: relative; z-index: 2; width: 100%; }
.l-topTitleArea .c-pageTitle {
	margin: 0;
	padding: 0;
	border: 0;
	color: #fff;
	font-size: clamp(1.625rem, 1.2rem + 2vw, 2.5rem);
	letter-spacing: .06em;
}
.l-topTitleArea .c-pageTitle::before, .l-topTitleArea .c-pageTitle::after { display: none; }
.l-topTitleArea .c-pageTitle__subTitle {
	margin: 0 0 .5em;
	color: rgba(255, 255, 255, .8);
	font-family: var(--ph-font-en);
	font-size: .875rem;
	font-style: normal;
	font-weight: 400;
	letter-spacing: .08em;
}
.l-topTitleArea .c-pageTitle__subTitle::before { display: none; }
.l-topTitleArea .c-pageExcerpt { max-width: 640px; margin-top: 1em; color: rgba(255, 255, 255, .9); line-height: 1.9; }

#breadcrumb { font-size: .75rem; }

/* 下層ページ本文の上下余白 */
.page .l-mainContent__inner > .post_content { margin-top: 0; }
.page:not(.home) #content { padding-top: 0; }
.page:not(.home) .post_content > :first-child:not(.ph-section) { margin-top: clamp(40px, 6vw, 72px); }

/* --------------------------------------------------------------------------
   5. セクション
   -------------------------------------------------------------------------- */
/* グループブロックに「ph-section」→ 上下に大きな余白 */
.post_content .ph-section {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: var(--ph-section-space);
	padding-bottom: var(--ph-section-space);
}
.post_content .ph-section--soft { background: var(--ph-color-bg-soft); }
.post_content .ph-section--pale { background: var(--ph-color-primary-pale); }
.post_content .ph-section.alignfull > * { max-width: var(--container_size, 1200px); margin-right: auto; margin-left: auto; padding-right: var(--swl-pad_container, 4vw); padding-left: var(--swl-pad_container, 4vw); box-sizing: border-box; }
.post_content .ph-section.alignfull > .alignfull { max-width: none; padding: 0; }
.post_content > .ph-section:last-child { margin-bottom: 0; }

/* 見出しまとめ（見出し + リード文）。見出しは左揃え */
.post_content .ph-heading { margin-bottom: clamp(32px, 5vw, 56px); text-align: left; }
.post_content .ph-heading--center { text-align: left; }
.post_content .ph-heading h2 { margin-bottom: .5em; }
.post_content .ph-lead {
	max-width: 760px;
	margin-bottom: 0 !important;
	color: var(--ph-color-muted);
	font-size: clamp(.9375rem, .9rem + .2vw, 1.0625rem);
	line-height: 2;
}
/* 旧デザインの英字ラベルが残っていても表示しない */
.post_content .ph-eyebrow { display: none; }

/* --------------------------------------------------------------------------
   6. トップのメインビジュアル
      グループ（ph-hero）の中に、背景画像（画像ブロック：ph-hero__bg）と
      文字のグループ（ph-hero__inner）を入れています。画像は画像ブロックの「置換」で差し替えできます。
   -------------------------------------------------------------------------- */
.post_content .ph-hero {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	min-height: clamp(520px, 74vh, 760px);
	margin-top: 0 !important;
	margin-bottom: 0;
	background: var(--ph-color-primary-deep);
}
/* SWELL（クラシックテーマ）ではグループの中に inner-container が入るため、配置上は無視させる */
.post_content .ph-hero > .wp-block-group__inner-container { display: contents; }
.post_content .ph-hero .ph-hero__inner > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.post_content .ph-hero .ph-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
}
.post_content .ph-hero .ph-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% center;
}
.post_content .ph-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(6, 58, 78, .88) 0%, rgba(6, 58, 78, .7) 55%, rgba(6, 58, 78, .35) 100%);
	pointer-events: none;
}
.post_content .ph-hero .ph-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: var(--container_size, 1200px);
	margin: 0 auto;
	padding: clamp(64px, 10vw, 120px) var(--swl-pad_container, 4vw);
	box-sizing: border-box;
	color: #fff;
}
.post_content .ph-hero h1, .post_content .ph-hero .ph-hero__title {
	max-width: 900px;
	margin: 0 0 .7em;
	color: #fff;
	font-size: clamp(1.75rem, 1.1rem + 2.6vw, 2.875rem);
	word-break: auto-phrase; /* 日本語を文節で改行（対応ブラウザのみ） */
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .05em;
}
.post_content .ph-hero .ph-hero__text {
	max-width: 620px;
	margin-bottom: 2.2em;
	color: rgba(255, 255, 255, .92);
	font-size: clamp(.9375rem, .9rem + .3vw, 1.125rem);
	line-height: 2;
}

/* --------------------------------------------------------------------------
   7. ボタン（ボタンブロックに ph-btn / ph-btn--outline / ph-btn--white / ph-btn--ghost）
   -------------------------------------------------------------------------- */
.post_content .wp-block-buttons { gap: 12px 16px; }
.post_content .wp-block-button.ph-btn .wp-block-button__link {
	display: inline-flex;
	gap: 1em;
	align-items: center;
	padding: 1em 1.8em;
	border: 1px solid var(--ph-color-primary);
	border-radius: var(--ph-radius);
	background: var(--ph-color-primary);
	color: #fff;
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
}
.post_content .wp-block-button.ph-btn .wp-block-button__link::after { content: "→"; font-weight: 400; }
.post_content .wp-block-button.ph-btn .wp-block-button__link:hover { background: var(--ph-color-primary-dark); border-color: var(--ph-color-primary-dark); }
.post_content .wp-block-button.ph-btn--outline .wp-block-button__link { background: transparent; color: var(--ph-color-primary-dark); }
.post_content .wp-block-button.ph-btn--outline .wp-block-button__link:hover { background: var(--ph-color-primary-dark); color: #fff; }
.post_content .wp-block-button.ph-btn--white .wp-block-button__link { border-color: #fff; background: #fff; color: var(--ph-color-primary-deep); }
.post_content .wp-block-button.ph-btn--white .wp-block-button__link:hover { background: var(--ph-color-primary-pale); border-color: var(--ph-color-primary-pale); color: var(--ph-color-primary-deep); }
.post_content .wp-block-button.ph-btn--ghost .wp-block-button__link { border-color: rgba(255, 255, 255, .7); background: transparent; color: #fff; }
.post_content .wp-block-button.ph-btn--ghost .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--ph-color-primary-deep); }

/* テキストリンク（段落に ph-link-more） */
.post_content .ph-link-more a {
	display: inline-flex;
	gap: .6em;
	align-items: center;
	padding-bottom: 2px;
	border-bottom: 1px solid currentColor;
	color: var(--ph-color-primary-dark);
	font-weight: 700;
	text-decoration: none;
}
.post_content .ph-link-more a::after { content: "→"; font-weight: 400; }
.post_content .ph-link-more a:hover { color: var(--ph-color-primary); }

/* --------------------------------------------------------------------------
   8. カード（カラムブロックに ph-cards、各カラムに ph-card）
      カード自体はリンクではないため、マウスオーバーの演出は付けない
   -------------------------------------------------------------------------- */
.post_content .wp-block-columns.ph-cards { gap: clamp(20px, 3vw, 32px); margin-bottom: 0; }
.post_content .ph-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding-bottom: clamp(28px, 3vw, 36px);
	border: 1px solid var(--ph-color-border);
	border-radius: var(--ph-radius);
	background: #fff;
}
.post_content .ph-card > .wp-block-image { margin: 0; }
.post_content .ph-card > .wp-block-image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
.post_content .ph-card > :not(.wp-block-image) { margin-right: clamp(20px, 2.4vw, 28px); margin-left: clamp(20px, 2.4vw, 28px); }
.post_content .ph-card > :not(.wp-block-image):first-child, .post_content .ph-card > .wp-block-image + * { margin-top: clamp(24px, 2.6vw, 32px); }
.post_content .ph-card > :last-child { margin-bottom: 0 !important; }
.post_content .ph-card h3 { margin-top: 0; margin-bottom: .6em; padding: 0; border: 0; font-size: 1.1875rem; }
.post_content .ph-card p { margin-bottom: 1.2em; font-size: .9375rem; line-height: 1.9; }
.post_content .ph-card .ph-link-more { margin-top: auto; padding-top: .6em; }

/* 文字だけのカード（支援内容など）：箱にせず、上の罫線で区切る */
.post_content .ph-cards--text { margin-top: clamp(28px, 4vw, 48px); }
.post_content .ph-cards--text .ph-card {
	padding: 20px 0 0;
	border: 0;
	border-top: 1px solid var(--ph-color-rule);
	border-radius: 0;
	background: transparent;
}
.post_content .ph-cards--text .ph-card > * { margin-right: 0; margin-left: 0; }
.post_content .ph-cards--text .ph-card > :first-child { margin-top: 0; }

/* 特長（カラムに ph-points、各カラムに ph-point）：番号や箱は使わず、罫線で区切る */
.post_content .wp-block-columns.ph-points { gap: clamp(24px, 4vw, 56px); margin-bottom: 0; }
.post_content .ph-point {
	padding: 24px 0 0;
	border-top: 2px solid var(--ph-color-primary);
	background: transparent;
}
.post_content .ph-point::before { display: none; }
.post_content .ph-point h3 { margin: 0 0 .7em; padding: 0; border: 0; font-size: 1.125rem; line-height: 1.6; }
.post_content .ph-point p { margin-bottom: 0; font-size: .9375rem; line-height: 1.95; }

/* --------------------------------------------------------------------------
   9. 画像とテキスト（メディアとテキストブロックに ph-media）
   -------------------------------------------------------------------------- */
.post_content .wp-block-media-text.ph-media { gap: 0; margin-bottom: 0; }
.post_content .ph-media .wp-block-media-text__media img { border-radius: var(--ph-radius); aspect-ratio: 4 / 3; object-fit: cover; }
.post_content .ph-media .wp-block-media-text__content { padding: 0 0 0 clamp(24px, 5vw, 72px); }
.post_content .ph-media.has-media-on-the-right .wp-block-media-text__content { padding: 0 clamp(24px, 5vw, 72px) 0 0; }
.post_content .ph-media .wp-block-media-text__content > :last-child { margin-bottom: 0; }
@media (max-width: 781px) {
	.post_content .ph-media .wp-block-media-text__content,
	.post_content .ph-media.has-media-on-the-right .wp-block-media-text__content { padding: 28px 0 0; }
}

/* 代表の写真（ph-portrait）
   白背景の写真がページの白に溶け込まないよう、薄いグレーの台紙に「乗算」で重ねる。
   白い部分が台紙の色になり、人物はそのまま見えます。 */
.post_content .ph-portrait {
	overflow: hidden;
	border-radius: var(--ph-radius);
	background: #e6ecf0;
}
.post_content .ph-portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 0 !important;
	mix-blend-mode: multiply;
}
.post_content .ph-signature { margin-top: 1.5em; text-align: right; font-weight: 700; }
.post_content .ph-signature small { display: block; color: var(--ph-color-muted); font-size: .8125rem; font-weight: 400; }

/* --------------------------------------------------------------------------
   10. 流れ（リストブロック（番号付き）に ph-flow）
   -------------------------------------------------------------------------- */
.post_content ol.ph-flow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
	gap: 0 24px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ph-flow;
}
.post_content ol.ph-flow > li {
	position: relative;
	margin: 0;
	padding: 18px 0 20px;
	border-top: 1px solid var(--ph-color-rule);
	font-size: .9375rem;
	line-height: 1.8;
	counter-increment: ph-flow;
}
.post_content ol.ph-flow > li::before {
	content: counter(ph-flow) ".";
	position: static;
	display: inline;
	width: auto;
	height: auto;
	margin-right: .4em;
	background: none;
	color: var(--ph-color-primary-dark);
	font-family: var(--ph-font-en);
	font-size: 1.0625rem;
	font-weight: 700;
	transform: none;
}
.post_content ol.ph-flow > li strong { display: inline; font-size: 1.0625rem; }
.post_content ol.ph-flow > li strong::after { content: ""; display: block; margin-bottom: .35em; }

/* 箇条書き（リストブロックに ph-checklist）：アイコンは使わず、小さな角の印 */
.post_content ul.ph-checklist { margin: 0; padding: 0; list-style: none; }
.post_content ul.ph-checklist > li { position: relative; margin: 0 0 .7em; padding-left: 1.4em; line-height: 1.8; }
.post_content ul.ph-checklist > li::before {
	content: "";
	position: absolute;
	top: .8em;
	left: 0;
	width: 6px;
	height: 6px;
	border-radius: 0;
	background: var(--ph-color-primary);
}

/* 取引実績（リストブロックに ph-client-list）：箱や縦ラインを使わず、罫線の一覧に */
.post_content ul.ph-client-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 0 clamp(24px, 4vw, 48px);
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--ph-color-rule);
	list-style: none;
}
.post_content ul.ph-client-list > li {
	margin: 0;
	padding: 1.1em 0;
	border-bottom: 1px solid var(--ph-color-border);
	font-weight: 600;
	line-height: 1.6;
	word-break: auto-phrase;
}
.post_content ul.ph-client-list > li::before { display: none; }
.post_content ul.ph-client-list + .wp-block-buttons { justify-content: flex-start; margin-top: clamp(40px, 5vw, 56px); }

/* --------------------------------------------------------------------------
   11. 表（会社概要など：表ブロックに ph-table）
   -------------------------------------------------------------------------- */
.post_content .wp-block-table.ph-table table { border-top: 1px solid var(--ph-color-rule); border-collapse: collapse; }
.post_content .wp-block-table.ph-table th,
.post_content .wp-block-table.ph-table td {
	padding: 1.3em 1em;
	border: 0;
	border-bottom: 1px solid var(--ph-color-border);
	background: none;
	text-align: left;
	vertical-align: top;
	line-height: 1.9;
}
.post_content .wp-block-table.ph-table th,
.post_content .wp-block-table.ph-table td:first-child {
	width: 28%;
	color: var(--ph-color-text);
	font-weight: 700;
	white-space: nowrap;
}
@media (max-width: 599px) {
	.post_content .wp-block-table.ph-table tr { display: block; padding: 1em 0; border-bottom: 1px solid var(--ph-color-border); }
	.post_content .wp-block-table.ph-table td { display: block; width: auto !important; padding: .2em 0; border: 0; white-space: normal !important; }
}

/* --------------------------------------------------------------------------
   12. よくある質問（詳細ブロックに ph-faq）
   -------------------------------------------------------------------------- */
.post_content details.ph-faq {
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--ph-color-border);
	border-radius: 0;
	background: transparent;
}
.post_content .ph-faq-list details.ph-faq:first-of-type { border-top: 1px solid var(--ph-color-rule); }
.post_content details.ph-faq summary {
	position: relative;
	padding: 22px 48px 22px 2em;
	font-weight: 700;
	line-height: 1.7;
	list-style: none;
	cursor: pointer;
}
.post_content details.ph-faq summary::-webkit-details-marker { display: none; }
.post_content details.ph-faq summary::before {
	content: "Q.";
	position: absolute;
	top: 22px;
	left: 0;
	color: var(--ph-color-primary-dark);
	font-family: var(--ph-font-en);
	font-weight: 700;
}
.post_content details.ph-faq summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 8px;
	width: 9px;
	height: 9px;
	border-right: 1.5px solid var(--ph-color-muted);
	border-bottom: 1.5px solid var(--ph-color-muted);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .2s;
}
.post_content details.ph-faq summary:hover { color: var(--ph-color-primary-dark); }
.post_content details.ph-faq[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.post_content details.ph-faq > :not(summary) { margin: 0; padding: 0 48px 24px 2em; color: var(--ph-color-text); line-height: 1.9; }

/* --------------------------------------------------------------------------
   13. お問い合わせ誘導（グループに ph-cta）：光彩グラデーションは使わず単色
   -------------------------------------------------------------------------- */
.post_content .ph-cta {
	position: relative;
	margin: 0;
	padding: clamp(56px, 8vw, 96px) var(--swl-pad_container, 4vw);
	background: var(--ph-color-primary-deep);
	color: #fff;
	text-align: center;
}
.post_content .ph-cta::after { display: none; }
.post_content .ph-cta h2 { color: #fff; }
.post_content .ph-cta p { color: rgba(255, 255, 255, .88); }
.post_content .ph-cta .wp-block-buttons { justify-content: center; margin-top: 2em; }

/* 本文中の小さなお知らせ枠（グループに ph-note） */
.post_content .ph-note {
	padding: 1.25em 1.5em;
	border-radius: var(--ph-radius);
	background: var(--ph-color-bg-soft);
	font-size: .9375rem;
}
.post_content .ph-note > :last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   14. お知らせ一覧・投稿
   -------------------------------------------------------------------------- */
.p-postList.-type-simple .p-postList__item { border-color: var(--ph-color-border); }
.p-postList__title { font-weight: 600; }

/* トップページのお知らせ（[ph_news]） */
.post_content .ph-section--news .ph-heading { margin-bottom: 24px; }
.post_content ul.ph-news { margin: 0 0 1.5em; padding: 0; border-top: 1px solid var(--ph-color-rule); list-style: none; }
.post_content ul.ph-news > li { margin: 0; padding: 0; border-bottom: 1px solid var(--ph-color-border); }
.post_content ul.ph-news > li::before { display: none; }
.post_content ul.ph-news a {
	display: flex;
	flex-wrap: wrap;
	gap: .25em 2em;
	padding: 1.2em .25em;
	color: var(--ph-color-text);
	text-decoration: none;
}
.post_content ul.ph-news a:hover { color: var(--ph-color-primary-dark); }
.post_content ul.ph-news time { color: var(--ph-color-muted); font-family: var(--ph-font-en); font-size: .875rem; letter-spacing: .06em; }
.post_content .ph-news-empty { color: var(--ph-color-muted); }

/* --------------------------------------------------------------------------
   14-2. 画像とテキストの2カラム（カラムブロックに ph-split）
   -------------------------------------------------------------------------- */
.post_content .wp-block-columns.ph-split {
	gap: clamp(32px, 6vw, 80px);
	align-items: center;
	margin-bottom: 0;
}
.post_content .ph-split--top { align-items: flex-start !important; }
.post_content .ph-split__media .wp-block-image { margin: 0; }
.post_content .ph-split__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--ph-radius); }
.post_content .ph-split__body > :last-child { margin-bottom: 0; }
.post_content .ph-split__body .wp-block-group__inner-container > :last-child { margin-bottom: 1.4em; }
@media (min-width: 782px) {
	.post_content .ph-split--profile > .ph-split__media { flex: 0 0 38% !important; }
	.post_content .ph-split--top > .ph-split__media { position: sticky; top: 100px; }
}
.post_content .ph-split--profile .ph-split__media img { aspect-ratio: 1 / 1; }
.post_content .ph-split__body h3 { margin-top: 2em; }
.post_content .ph-split__body h2 + h3 { margin-top: 1.2em; }
@media (max-width: 781px) {
	.post_content .ph-split--reverse { flex-direction: column-reverse; }
	.post_content .ph-split--profile .ph-split__media { max-width: 480px; }
}
.post_content .ph-profile-name { margin: 0 0 1.2em; color: var(--ph-color-muted); font-size: .875rem; line-height: 1.8; }
.post_content .ph-profile-name strong { color: var(--ph-color-text); font-size: 1.25rem; letter-spacing: .08em; }

/* 2列の箇条書き */
@media (min-width: 782px) {
	.post_content ul.ph-checklist--columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4em 2.5em; }
	.post_content ul.ph-checklist--columns > li { margin-bottom: 0; }
}
.post_content .ph-issues ul.ph-checklist {
	padding: clamp(24px, 4vw, 40px) 0;
	border-top: 1px solid var(--ph-color-rule);
	border-bottom: 1px solid var(--ph-color-border);
}
.post_content .ph-issues-answer { margin: 1.8em 0 0 !important; font-weight: 700; }

.post_content .ph-faq-list { max-width: 880px; }

/* 比較表 */
.post_content .wp-block-table.ph-table--compare { overflow-x: auto; }
.post_content .wp-block-table.ph-table--compare table { min-width: 640px; table-layout: fixed; }
.post_content .wp-block-table.ph-table--compare thead th {
	padding: 1em;
	border: 0;
	border-bottom: 1px solid var(--ph-color-rule);
	background: transparent;
	color: var(--ph-color-muted);
	font-size: .875rem;
	text-align: left;
}
.post_content .wp-block-table.ph-table--compare thead th:nth-child(2) { color: var(--ph-color-primary-dark); }
.post_content .wp-block-table.ph-table--compare td:first-child { width: 20%; }
.post_content .wp-block-table.ph-table--compare td:nth-child(2) { background: var(--ph-color-bg-soft); font-weight: 600; }
@media (max-width: 599px) {
	.post_content .wp-block-table.ph-table--compare tr { display: table-row; padding: 0; }
	.post_content .wp-block-table.ph-table--compare td { display: table-cell; padding: 1em; border-bottom: 1px solid var(--ph-color-border); }
}

/* アクセス */
.post_content .ph-access-address { margin-bottom: .3em; font-weight: 700; }
.post_content .ph-access-note { margin-bottom: 1.5em; color: var(--ph-color-muted); font-size: .9375rem; }

/* お問い合わせページの前文 */
.post_content .ph-contact-intro { max-width: 800px; margin: 0 auto clamp(32px, 5vw, 48px); }
.post_content .ph-contact-sub { color: var(--ph-color-muted); font-size: .875rem; }

/* プライバシーポリシー */
.post_content .ph-privacy { max-width: 880px; margin-right: auto; margin-left: auto; }
.post_content .ph-privacy-date { margin-top: 3em; color: var(--ph-color-muted); text-align: right; }

/* ブログパーツ内の全幅CTAを、ページ最下部でフッターにつなげる */
.post_content > .p-blogParts:last-child { margin-bottom: 0; }
.post_content .p-blogParts > .ph-cta:last-child { margin-bottom: 0; }
.l-content:has(.post_content > .p-blogParts:last-child .ph-cta) { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   15. フッター
   -------------------------------------------------------------------------- */
.l-footer { background: var(--ph-color-primary-deep); color: rgba(255, 255, 255, .86); }
.l-footer a { color: rgba(255, 255, 255, .86); }
.l-footer a:hover { color: #fff; }
.l-footer__widgetArea { padding-top: clamp(48px, 6vw, 72px); padding-bottom: 24px; }
.l-footer .c-widget__title {
	margin-bottom: 1.2em;
	padding: 0;
	border: 0;
	color: #fff;
	font-family: var(--ph-font-en);
	font-size: .875rem;
	letter-spacing: .06em;
}
.l-footer .c-widget__title::before, .l-footer .c-widget__title::after { display: none; }
.l-footer .ph-footer-brand { margin: 0 0 .8em; color: #fff; font-family: var(--ph-font-en); font-size: 1.25rem; font-weight: 700; letter-spacing: .08em; }
.l-footer .ph-footer-address { margin: 0 0 1.4em; font-size: .8125rem; line-height: 1.9; }
.l-footer .ph-footer-lead { margin: 0; color: rgba(255, 255, 255, .6); font-size: .75rem; line-height: 1.8; }
.l-footer .menu li { border: 0; }
.l-footer .menu a, .l-footer .c-listMenu a { padding: .45em 0; border: 0; font-size: .875rem; }
.l-footer .c-listMenu a::before { display: none; }
.l-footer .c-listMenu a:hover { background: none; }
.l-footer__foot { border-top: 1px solid rgba(255, 255, 255, .12); background: transparent; }
.l-footer__foot .copyright { color: rgba(255, 255, 255, .6); font-size: .75rem; }
.l-footer__nav a { color: rgba(255, 255, 255, .75); font-size: .75rem; }

/* スマホ下部の固定ボタン等 */
#pagetop { background: var(--ph-color-primary); border-color: var(--ph-color-primary); color: #fff; }

/* --------------------------------------------------------------------------
   16. スマホ調整
   -------------------------------------------------------------------------- */
@media (max-width: 959px) {
	.post_content .ph-hero { min-height: 560px; }
	.post_content .ph-hero::after { background: rgba(6, 58, 78, .76); }
}
@media (max-width: 599px) {
	.post_content .ph-heading br, .post_content .ph-hero br { display: none; }
	.post_content .wp-block-buttons.is-content-justification-center .wp-block-button.ph-btn,
	.post_content .ph-hero .wp-block-button.ph-btn { width: 100%; }
	.post_content .wp-block-button.ph-btn .wp-block-button__link { justify-content: center; width: 100%; box-sizing: border-box; }
}
