/*
 * theme.json で表現できない共通スタイル。
 * 色・余白・角丸はデザイントークン（--wp--preset--* / --wp--custom--*）を参照し、
 * 子テーマの theme.json で変わるようにする。
 */

/* ---- ヘッダー ---- */
.weeeeb-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.admin-bar .weeeeb-header {
	top: var(--wp-admin--admin-bar--height, 0);
}

/* ページ内リンクで移動したとき、見出しが固定したヘッダーの下に隠れないようにする */
html {
	scroll-padding-top: calc(var(--wp--custom--header-height, 72px) + 1rem);
}

/* テンプレートパーツの外側の要素（header.wp-block-template-part）の高さの中でしか固定されないため、外側の箱をなくす。
   中のヘッダー（.weeeeb-header）も header 要素なので、ページの構造（ランドマーク）は残る */
.wp-site-blocks > .wp-block-template-part:has(> .weeeeb-header) {
	display: contents;
}

@media (max-width: 600px) {

	.admin-bar .weeeeb-header {
		top: 0;
	}

	/* スマホではヘッダーのボタンを隠し、メニュー内のリンクに任せる（コアの .is-layout-flex より強くする） */
	.weeeeb-header .weeeeb-header__actions {
		display: none;
	}
}

/* ヘッダーのボタン（電話・お問い合わせ・予約）は1行に並べる（折り返すとヘッダーが高くなり、写真に重ねるヘッダーでは写真からはみ出す） */
.weeeeb-header :is(.weeeeb-header__actions > .wp-block-buttons, .wp-block-buttons.weeeeb-header__actions) {
	flex-wrap: nowrap;
}

.weeeeb-header .weeeeb-header__actions .wp-block-button__link {
	white-space: nowrap;
}

/* 外部の予約サイトを使うとき（ヘッダーに予約のボタンがある）：狭い画面では、お問い合わせのボタンを隠して予約を優先する */
@media (max-width: 1024px) {

	.weeeeb-header .weeeeb-header__actions:has(.weeeeb-reserve) .weeeeb-header-contact {
		display: none;
	}
}

/* ---- 日本語の見出しを文節で改行する（対応ブラウザのみ。非対応では通常の改行） ---- */
:where(h1, h2, h3, h4, .wp-block-heading, .weeeeb-eyebrow) {
	word-break: auto-phrase;
}

/* ---- ページ全体の縦の余白 ---- */

/* ヘッダー・本文・フッターの間に blockGap の隙間を作らない */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* 本文が短いページでも、フッターを画面の下端に置く（本文 main を伸ばす。管理バーの高さは除く） */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
}

.wp-site-blocks > main {
	flex: 1 0 auto;
}

/* 本文の最後が全幅セクション（CTA 等）ならフッターに密着させ、それ以外は余白を取る */
.wp-block-post-content.alignfull {
	padding-bottom: var(--wp--preset--spacing--60);
}

.wp-block-post-content.alignfull:has(> .alignfull:last-child) {
	padding-bottom: 0;
}

/* 下層ページ：見出し帯の直後が全幅セクションでなければ上にも余白を取る */
.weeeeb-page-header + .wp-block-post-content.alignfull:not(:has(> .alignfull:first-child)) {
	padding-top: var(--wp--preset--spacing--50);
}

/* ---- フッター ---- */
@media (max-width: 781px) {

	/* カラムが縦積みになる幅では、メニューも左寄せにそろえる（コアは配置を CSS 変数で持つため変数ごと上書き） */
	.weeeeb-footer .wp-block-navigation {
		--navigation-layout-justify: flex-start;
		--navigation-layout-align: flex-start;
		--navigation-layout-justification-setting: flex-start;
	}

	.weeeeb-footer .wp-block-navigation.is-vertical,
	.weeeeb-footer .wp-block-navigation.is-vertical .wp-block-navigation__container,
	.weeeeb-footer .wp-block-navigation.is-vertical .wp-block-page-list,
	.weeeeb-footer .wp-block-navigation.is-vertical .wp-block-navigation-item {
		align-items: flex-start !important;
		justify-content: flex-start !important;
		text-align: left;
	}
}

/* ---- ヘッダーの形（weeeeb/header-*。機能設定の「ヘッダーの形」で選ぶ） ---- */

/* 2段・メガメニュー：上の帯は高さを固定し、スクロールすると帯だけ隠れて下の段が残る */
.weeeeb-header--two-tier,
.weeeeb-header--mega {
	--weeeeb-topbar-height: 2.25rem;
	top: calc(-1 * var(--weeeeb-topbar-height));
}

.admin-bar :is(.weeeeb-header--two-tier, .weeeeb-header--mega) {
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--weeeeb-topbar-height));
}

.weeeeb-header__topbar {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.weeeeb-header__topbar > .alignwide {
	min-height: var(--weeeeb-topbar-height);
	align-items: center;
}

.weeeeb-header__topbar p,
.weeeeb-header__tagline {
	margin: 0;
	white-space: nowrap;
}

.weeeeb-header__tagline {
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}

.weeeeb-header__tel {
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--body));
	font-weight: 700;
	letter-spacing: 0.04em;
}

.weeeeb-header__tel::before {
	content: "TEL ";
	font-size: 0.85em;
}

/* ロゴ中央：上の段にロゴ（右にボタン）、下の段にメニュー */
.weeeeb-header--center .weeeeb-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	grid-template-areas:
		". brand actions"
		"nav nav nav";
	align-items: center;
	row-gap: var(--wp--preset--spacing--20);
}

.weeeeb-header--center .weeeeb-header__inner > * {
	margin: 0;
}

.weeeeb-header--center .weeeeb-header__brand {
	grid-area: brand;
}

.weeeeb-header--center .weeeeb-header__nav {
	grid-area: nav;
}

.weeeeb-header--center .weeeeb-header__actions {
	grid-area: actions;
	justify-content: flex-end;
}

/* メニューボタンだけ：ボタンに「MENU」と添え、全画面のメニューは文字を大きく */
.weeeeb-header__menu .wp-block-navigation__responsive-container-open {
	display: flex;
	gap: 0.375rem;
	align-items: center;
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--body));
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.weeeeb-header__menu .wp-block-navigation__responsive-container-open::after {
	content: "MENU";
}

.weeeeb-header__menu .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}

.weeeeb-header__menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.375rem, 3vw, 2.25rem);
	font-weight: 700;
}

/* 浮いたカプセル型：外側は透明、内側の帯を角丸にして影を付ける（子テーマのヘッダーの背景・線より優先） */
.weeeeb-header.weeeeb-header--capsule {
	border-bottom: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	pointer-events: none;
}

.weeeeb-header--capsule .weeeeb-header__inner {
	padding: 0.5rem 0.75rem 0.5rem 1.5rem;
	border: 1px solid rgb(0 0 0 / 0.06);
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	box-shadow: 0 8px 24px rgb(0 0 0 / 0.08);
	pointer-events: auto;
}

/* 写真に重ねる：高さを固定し（本文を上にずらす量に使う）、ページの先頭が全面写真のときだけ透明にする */
.weeeeb-header--overlay {
	--weeeeb-overlay-h: 5rem;
	transition: background-color 0.3s, box-shadow 0.3s, color 0.3s;
}

.weeeeb-header--overlay > .weeeeb-header__inner {
	min-height: var(--weeeeb-overlay-h);
}

.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) > main {
	margin-top: calc(-1 * var(--weeeeb-overlay-h, 5rem)) !important;
}

.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) > main > .wp-block-post-content > .wp-block-cover:first-child,
.wp-site-blocks:has(> main > .wp-block-post-content > .weeeeb-slider:first-child) > main > .wp-block-post-content > .weeeeb-slider:first-child > .wp-block-cover {
	padding-top: calc(var(--weeeeb-overlay-h, 5rem) + var(--wp--preset--spacing--40));
}

/* 透明のとき（スクロールすると is-scrolled が付き、通常の背景に戻る）。子テーマのヘッダーの背景・線より優先 */
.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled) {
	border-bottom-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #fff;
}

.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled) :is(.wp-block-site-title a, .wp-block-navigation__responsive-container:not(.is-menu-open) a, .wp-block-navigation__responsive-container-open, .weeeeb-tel > .wp-block-button__link, .weeeeb-header__links a, .weeeeb-search-open, .weeeeb-header__tel),
.weeeeb-header--glass :is(.wp-block-site-title a, .wp-block-navigation__responsive-container:not(.is-menu-open) a, .wp-block-navigation__responsive-container-open, .weeeeb-tel > .wp-block-button__link) {
	color: #fff !important;
}

.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled) .weeeeb-tel > .wp-block-button__link,
.weeeeb-header--glass .weeeeb-tel > .wp-block-button__link {
	border-color: #fff !important;
	background: transparent !important;
}

.weeeeb-header--overlay.is-scrolled {
	box-shadow: 0 2px 16px rgb(0 0 0 / 0.08);
}

/* すりガラス：透明でないとき（スクロール後・先頭が全面写真でないページ）は濃い半透明の帯。文字は上の白い文字の指定を共用 */
.weeeeb-header--glass {
	border-bottom-color: transparent !important;
	background: rgb(28 28 28 / 0.9) !important;
	color: #fff;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.weeeeb-header--glass.is-scrolled {
	box-shadow: 0 4px 24px rgb(0 0 0 / 0.12);
}

/* メニューの文字の下に、ホバーで細い線 */
.weeeeb-header--glass .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
	background: linear-gradient(currentcolor, currentcolor) 0 100% / 0 1px no-repeat;
	transition: background-size 0.3s;
}

.weeeeb-header--glass .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content:is(:hover, :focus-visible) {
	background-size: 100% 1px;
}

/* スマホのメニューボタンは半透明の丸 */
.weeeeb-header--glass .wp-block-navigation__responsive-container-open {
	width: 2.875rem;
	height: 2.875rem;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgb(0 0 0 / 0.3);
}

/* スマホのメニューを開いたときは、透明のときでも通常の色にする */
.weeeeb-header--overlay .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}

@media (max-width: 600px) {

	.weeeeb-header--overlay {
		--weeeeb-overlay-h: 4rem;
	}
}

/* 左に縦のメニュー：タブレット・スマホでは標準と同じ横長のヘッダー */
.weeeeb-header--side .weeeeb-header__inner {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left, 1.5rem) var(--wp--style--root--padding-right, 1.5rem);
}

.weeeeb-header--side .weeeeb-header__inner > * {
	margin: 0;
}

.weeeeb-header--side .weeeeb-header__nav {
	margin-left: auto;
}

.weeeeb-header--side .weeeeb-header__foot {
	display: flex;
	gap: 1rem;
	align-items: center;
}

.weeeeb-header--side .weeeeb-header__foot > * {
	margin: 0;
}

.weeeeb-header--side .weeeeb-header__address,
.weeeeb-header--side .weeeeb-header__sns {
	display: none;
}

@media (max-width: 1023px) {

	/* 横長のときは、メニューも横に並べる */
	.weeeeb-header--side .wp-block-navigation__container {
		flex-direction: row !important;
		gap: var(--wp--style--block-gap, 1.5rem);
	}
}

/* PC：画面の左に縦に固定し、本文とフッターをその分右にずらす */
@media (min-width: 1024px) {

	.wp-site-blocks:has(.weeeeb-header--side) {
		--weeeeb-side-w: 17rem;
		--wp--style--root--padding-left: clamp(1.5rem, 4vw, 4rem);
		--wp--style--root--padding-right: clamp(1.5rem, 4vw, 4rem);
	}

	.weeeeb-header.weeeeb-header--side {
		position: fixed;
		top: var(--wp-admin--admin-bar--height, 0px);
		bottom: 0;
		left: 0;
		width: var(--weeeeb-side-w, 17rem);
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important;
		overflow-y: auto;
		border-right: 1px solid var(--wp--preset--color--secondary);
		border-bottom: 0;
	}

	.weeeeb-header--side .weeeeb-header__inner {
		flex-direction: column;
		gap: var(--wp--preset--spacing--50);
		align-items: flex-start;
		justify-content: flex-start;
		height: 100%;
		max-width: none;
		padding: 0;
	}

	.weeeeb-header--side .weeeeb-header__nav {
		margin-left: 0;
		font-size: var(--wp--preset--font-size--medium, 1.0625rem);
	}

	.weeeeb-header--side .wp-block-navigation__container {
		gap: 0.875rem !important;
	}

	.weeeeb-header--side .weeeeb-header__foot {
		flex-direction: column;
		gap: 1rem;
		align-items: flex-start;
		margin-top: auto;
	}

	.weeeeb-header--side .weeeeb-header__actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}

	.weeeeb-header--side .weeeeb-header__address {
		display: block;
	}

	.weeeeb-header--side .weeeeb-header__sns {
		display: flex;
	}

	.wp-site-blocks:has(.weeeeb-header--side) > :is(main, footer) {
		margin-left: var(--weeeeb-side-w, 17rem);
	}
}

@media (max-width: 781px) {

	/* 2段：上の帯は電話番号だけにする */
	.weeeeb-header__tagline,
	.weeeeb-header__address {
		display: none;
	}

	.weeeeb-header__topbar > .alignwide {
		justify-content: center !important;
	}
}

@media (max-width: 600px) {

	/* ロゴ中央：スマホではロゴ左・メニューボタン右の1段 */
	.weeeeb-header--center .weeeeb-header__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "brand nav";
	}

	.weeeeb-header--center .weeeeb-header__brand {
		justify-content: flex-start !important;
	}

	.weeeeb-header--capsule .weeeeb-header__inner {
		padding-left: 1rem;
	}
}

/* ---- フッターの形（weeeeb/footer-*。機能設定の「フッターの形」で選ぶ） ---- */
.weeeeb-footer__bottom {
	margin-top: var(--wp--preset--spacing--40);
}

.weeeeb-footer__bottom > * {
	margin-block: 0.25rem 0;
}

/* フッターのリンク（ボタン以外）は文字色にそろえる（淡い背景にテーマカラーの文字だと読みにくいことがあるため） */
.weeeeb-footer a:not(.wp-element-button) {
	color: inherit;
}

/* 標準以外は、最下部の上に細い線を引く（標準は区切り線のブロックがある） */
.weeeeb-footer:not(.weeeeb-footer--standard) .weeeeb-footer__bottom {
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid color-mix(in srgb, currentcolor 18%, transparent);
}

/* 大きなお問い合わせ＋大きな社名 */
.weeeeb-footer__cta {
	row-gap: var(--wp--preset--spacing--40);
}

/* ページの最後がお問い合わせのセクションなら、フッターのお問い合わせは重ねて出さない（社名を大きく見せる部分は残す） */
body:has(.wp-block-post-content > .weeeeb-cta:last-child) .weeeeb-footer__cta,
body:has(.wp-block-post-content > .weeeeb-cta:last-child) .weeeeb-footer__cta + .wp-block-separator {
	display: none;
}

.weeeeb-footer__cta-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--heading));
	font-size: clamp(3rem, 9vw, 7rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.01em;
}

.weeeeb-footer__wordmark {
	margin-top: var(--wp--preset--spacing--50) !important;
	margin-bottom: 0;
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--heading));
	font-size: clamp(2.5rem, 10vw, 9rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.02em;
	overflow-wrap: anywhere;
}

/* 地図つき */
.weeeeb-footer--map p {
	margin-block: 0.375rem 0;
}

.weeeeb-footer__tel {
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--body));
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.weeeeb-footer__tel::before {
	content: "TEL ";
	font-size: 0.6em;
}

.weeeeb-footer__map {
	overflow: hidden;
	border-radius: var(--wp--custom--radius);
	background: color-mix(in srgb, currentcolor 8%, transparent);
}

/* 中央寄せ・小さく */
.weeeeb-footer--simple {
	border-top: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-footer__name {
	margin: 0;
}

.weeeeb-footer__sns {
	justify-content: center;
}

.weeeeb-footer--simple .weeeeb-footer__nav,
.weeeeb-footer--map .weeeeb-footer__nav {
	column-gap: 1.5rem;
}

/* サイトマップ型：メニューの全項目を数列に並べ、子の項目も開いた状態で親の下に並べる */
.weeeeb-footer--sitemap {
	border-top: 6px solid var(--wp--preset--color--primary);
}

.weeeeb-footer__sitemap .wp-block-navigation__container {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	align-items: start !important;
	width: 100%;
}

.weeeeb-footer__sitemap .wp-block-navigation__container > .wp-block-navigation-item {
	display: block;
	padding-top: 0.75rem;
	border-top: 1px solid color-mix(in srgb, currentcolor 35%, transparent);
	font-weight: 700;
}

.weeeeb-footer__sitemap .wp-block-navigation__submenu-icon {
	display: none;
}

.weeeeb-footer__sitemap .wp-block-navigation__submenu-container {
	position: static !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	margin-top: 0.5rem;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: inherit !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	opacity: 1 !important;
	visibility: visible !important;
}

.weeeeb-footer__sitemap .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.25rem 0 !important;
}

.weeeeb-footer__sitemap .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
	content: "– ";
}

/* ---- スマホ下部のボタン（weeeeb/mobile-bar。PC では表示しない） ---- */
.weeeeb-mobile-bar {
	display: none;
}

@media (max-width: 781px) {

	.weeeeb-mobile-bar {
		display: block;
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 90;
		margin: 0 !important;
		padding: 0.5rem 0.5rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
		border-top: 1px solid var(--wp--preset--color--secondary);
		background: var(--wp--preset--color--base);
		box-shadow: 0 -4px 16px rgb(0 0 0 / 0.08);
	}

	/* ボタンの分だけ、ページの下に余白を取る（フッターが隠れないように） */
	body:has(.weeeeb-mobile-bar) {
		padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}

	/* フッターを画面の下端に置く高さからも、ボタンの分を引く */
	body:has(.weeeeb-mobile-bar) .wp-site-blocks {
		min-height: calc(100dvh - 4.25rem - env(safe-area-inset-bottom, 0px) - var(--wp-admin--admin-bar--height, 0px));
	}

	.weeeeb-mobile-bar__buttons {
		display: grid !important;
		grid-auto-columns: minmax(0, 1fr);
		grid-auto-flow: column;
		gap: 0.5rem;
	}

	.weeeeb-mobile-bar .wp-block-button {
		width: auto;
		margin: 0;
	}

	.weeeeb-mobile-bar .wp-block-button__link {
		display: flex;
		flex-direction: column;
		gap: 0.125rem;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		padding: 0.375rem 0.25rem;
		border: 0;
		border-radius: var(--wp--custom--radius);
		font-size: 0.75rem;
		font-weight: 700;
		line-height: 1.3;
	}

	.weeeeb-mobile-bar .wp-block-button__link::before {
		content: "";
		width: 1.25rem;
		height: 1.25rem;
		background: currentcolor;
		mask: var(--weeeeb-icon) center / contain no-repeat;
	}

	.weeeeb-mobile-bar__tel .wp-block-button__link {
		--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E");
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--on-primary);
	}

	.weeeeb-mobile-bar__contact .wp-block-button__link {
		--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5z'/%3E%3C/svg%3E");
		background: var(--wp--preset--color--contrast);
		color: var(--wp--preset--color--base);
	}

	.weeeeb-mobile-bar__map .wp-block-button__link {
		--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
		background: var(--wp--preset--color--secondary);
		color: var(--wp--preset--color--contrast);
	}
}

/* ---- セクション共通 ---- */
.weeeeb-eyebrow {
	margin-bottom: 0;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.15em;
}

.weeeeb-eyebrow + .wp-block-heading {
	margin-top: 0.25rem;
}

.weeeeb-card {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-card .wp-block-image img {
	border-radius: var(--wp--custom--radius);
}

/* 余白を指定していないカード（サービス一覧など）：子テーマで枠や背景を付けても文字が端に付かないよう、写真以外に内側の余白を取る */
.weeeeb-card:not([style*="padding"]) {
	padding-bottom: 1rem;
}

.weeeeb-card:not([style*="padding"]) > :not(.wp-block-image) {
	padding-inline: 1rem;
}

.weeeeb-number {
	margin: 0;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1;
}

.weeeeb-hero .wp-block-cover__inner-container {
	color: var(--wp--preset--color--base);
}

.weeeeb-cta .wp-block-heading {
	color: inherit;
}

/*
 * アクセント色の背景には、アクセント色から計算した読みやすい文字色（白か黒）を使う
 * （functions.php の --weeeeb-on-accent）
 */
.has-accent-background-color.has-on-primary-color {
	color: var(--weeeeb-on-accent, var(--wp--preset--color--on-primary)) !important;
}

/* ---- ギャラリー：キャプションの帯も含めて角丸にする ---- */
.wp-block-gallery.has-nested-images figure.wp-block-image {
	overflow: hidden;
	border-radius: var(--wp--custom--radius);
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
	border-radius: 0;
}

/* ---- メインビジュアル（左右分割・中央配置） ---- */
.weeeeb-hero--split .weeeeb-hero__image,
.weeeeb-hero--center .weeeeb-hero__image {
	margin-bottom: 0;
}

.weeeeb-hero--split .weeeeb-hero__image img,
.weeeeb-hero--center .weeeeb-hero__image img {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-hero__eyebrow {
	margin-bottom: 0;
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: 0.2em;
}

@media (max-width: 600px) {

	.weeeeb-hero--center .weeeeb-hero__image img {
		aspect-ratio: 4 / 3 !important;
	}
}

/* ---- 料金表 ---- */
.weeeeb-price__category {
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--primary);
}

.weeeeb-price__list {
	margin-top: 0 !important;
}

.weeeeb-price__row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.25em 1.5em;
	padding: 1em 0.25em;
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-price__row > * {
	margin: 0 !important;
}

.weeeeb-price__name {
	font-weight: 700;
}

.weeeeb-price__value {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	white-space: nowrap;
	text-align: right;
}

.weeeeb-price__note {
	grid-column: 1 / -1;
	color: var(--wp--preset--color--muted);
}

.weeeeb-price-table table {
	border-collapse: collapse;
	background: var(--wp--preset--color--base);
}

.weeeeb-price-table :is(th, td) {
	padding: 0.8em 0.6em;
	border: 1px solid var(--wp--preset--color--secondary);
	text-align: center;
}

.weeeeb-price-table thead th {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

.weeeeb-price-table tbody td:first-child {
	font-weight: 700;
	text-align: left;
}

/* 狭い画面：横スクロールにすると、キーボードで操作する人が表の右側を読めないため、文字と余白を詰めて収める */
@media (max-width: 600px) {

	.weeeeb-price-table table {
		font-size: 0.8125rem;
	}

	.weeeeb-price-table th,
	.weeeeb-price-table td {
		padding: 0.5em 0.35em;
		word-break: auto-phrase;
	}
}

/* ---- スタッフ紹介 ---- */
.weeeeb-staff__photo {
	max-width: 14rem;
	margin-inline: auto;
}

.weeeeb-staff__photo img {
	border-radius: 50%;
}

.weeeeb-staff__role {
	margin-bottom: 0;
	color: var(--wp--preset--color--primary);
}

.weeeeb-staff__name {
	margin-top: 0.25rem !important;
}

/* ---- ご利用の流れ ---- */
.weeeeb-flow__step {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-flow__step > * {
	margin-block-start: 0.5rem;
}

.weeeeb-flow__step > :first-child {
	margin-block-start: 0;
}

/* ---- 一日の流れ（左に時刻、右に内容。時刻の間を縦の線でつなぐ） ---- */
.weeeeb-schedule__list {
	max-width: 40rem;
	margin-inline: auto;
}

.weeeeb-schedule__row {
	display: grid;
	position: relative;
	grid-template-columns: 5.5rem 1fr;
	gap: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--40);
}

.weeeeb-schedule__row::before {
	content: "";
	position: absolute;
	top: 0.4rem;
	bottom: 0;
	left: calc(5.5rem + var(--wp--preset--spacing--30) / 2);
	width: 2px;
	background: var(--wp--preset--color--secondary);
}

.weeeeb-schedule__row:last-child::before {
	content: none;
}

.weeeeb-schedule__row::after {
	content: "";
	position: absolute;
	top: 0.4rem;
	left: calc(5.5rem + var(--wp--preset--spacing--30) / 2 - 5px);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
}

.weeeeb-schedule__row > * {
	margin-block: 0;
}

.weeeeb-schedule__time {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en), var(--wp--preset--font-family--body);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: right;
}

.weeeeb-schedule__body {
	padding-left: var(--wp--preset--spacing--30);
}

.weeeeb-schedule__body > * {
	margin-block: 0;
}

.weeeeb-schedule__body > * + * {
	margin-block-start: 0.25rem;
}

.weeeeb-schedule__note {
	color: var(--wp--preset--color--muted);
}

/* ---- 年間行事（月を大きく） ---- */
.weeeeb-events__item {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-events__item > * {
	margin-block: 0;
}

.weeeeb-events__month {
	margin-bottom: 0.25rem !important;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en), var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
}

/* ---- 情報一覧（タイル）：広い画面は4列、タブレットは2列、スマホは1列 ---- */
.weeeeb-bento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: dense;
	gap: var(--wp--preset--spacing--30);
}

.weeeeb-bento > * {
	margin-block: 0 !important;
}

.weeeeb-bento__tile {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
	padding: var(--wp--preset--spacing--40);
	overflow: hidden;
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--secondary);
}

.weeeeb-bento__tile > * {
	margin-block: 0;
}

.weeeeb-bento__tile--hero {
	grid-row: span 2;
	grid-column: span 2;
	min-height: 28rem;
	padding: var(--wp--preset--spacing--50);
}

.weeeeb-bento__tile--news,
.weeeeb-bento__tile--hours,
.weeeeb-bento__tile--contact {
	grid-column: span 2;
}

.weeeeb-bento__tile--photo {
	padding: 0;
}

.weeeeb-bento__tile--photo img {
	width: 100%;
	height: 100% !important;
	min-height: 12rem;
	border-radius: var(--wp--custom--radius);
}

.weeeeb-bento__tile--menu,
.weeeeb-bento__tile--contact {
	justify-content: space-between;
}

.weeeeb-bento__eyebrow {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--body));
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.weeeeb-bento__tile--hero .weeeeb-bento__eyebrow,
.weeeeb-bento__tile--contact .weeeeb-bento__eyebrow {
	color: inherit;
	opacity: 0.85;
}

.weeeeb-bento__catch {
	line-height: 1.4;
}

.weeeeb-bento__title {
	line-height: 1.5;
}

.weeeeb-bento__tile .weeeeb-hours-table,
.weeeeb-bento__tile .weeeeb-post-list {
	margin: 0;
}

.weeeeb-bento__link a {
	font-weight: 700;
	text-decoration: none;
}

.weeeeb-bento__link a::after {
	content: " →";
}

@media (max-width: 1024px) {

	.weeeeb-bento {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {

	.weeeeb-bento {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-bento__tile--hero,
	.weeeeb-bento__tile--news,
	.weeeeb-bento__tile--hours,
	.weeeeb-bento__tile--contact {
		grid-column: auto;
	}

	.weeeeb-bento__tile--hero {
		grid-row: auto;
		min-height: 22rem;
	}

	/* 1列のときは写真を横長にして、縦に長くなりすぎないようにする */
	.weeeeb-bento__tile--photo img {
		aspect-ratio: 16 / 9 !important;
	}
}

/* ---- メインビジュアル（文字だけ）：大きな文字、下にキーワードを罫線で区切って並べる ---- */
.weeeeb-hero--type .weeeeb-hero__copy {
	font-size: clamp(2.25rem, 6vw, 4.5rem);
	line-height: 1.3;
	letter-spacing: 0.02em;
}

.weeeeb-hero--type .weeeeb-hero__eyebrow {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--body));
	font-weight: 700;
	letter-spacing: 0.18em;
}

.weeeeb-hero__lead {
	max-width: 40em;
	font-size: 1.0625rem;
}

.weeeeb-hero__keywords {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: var(--wp--preset--spacing--50) !important;
	border-top: 1px solid currentcolor;
}

.weeeeb-hero__keywords > p {
	margin: 0;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) 0 0;
	font-weight: 700;
}

.weeeeb-hero__keywords > p + p {
	padding-left: var(--wp--preset--spacing--30);
	border-left: 1px solid color-mix(in srgb, currentcolor 25%, transparent);
}

@media (max-width: 600px) {

	.weeeeb-hero__keywords {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-hero__keywords > p + p {
		padding-left: 0;
		border-left: 0;
	}
}

/* ---- 紹介（文字だけ） ---- */
.weeeeb-statement__label {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-statement__heading {
	font-size: clamp(1.5rem, 3.2vw, 2.25rem);
	line-height: 1.6;
}

/* ---- サービス一覧（文字の行）：番号・名前・説明を1行に、罫線で区切る ---- */
.weeeeb-services-list__items {
	border-top: 1px solid var(--wp--preset--color--contrast);
}

.weeeeb-services-list__row {
	display: grid;
	grid-template-columns: 4rem minmax(0, 18rem) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--30);
	align-items: baseline;
	padding-block: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-services-list__row > * {
	margin: 0 !important;
}

.weeeeb-services-list__name {
	font-size: var(--wp--preset--font-size--large);
}

@media (max-width: 781px) {

	.weeeeb-services-list__row {
		grid-template-columns: 3rem minmax(0, 1fr);
	}

	.weeeeb-services-list__text {
		grid-column: 2;
	}
}

/* ---- ストーリー（weeeeb/story） ---- */
.weeeeb-story__steps > * + * {
	margin-top: var(--wp--preset--spacing--50);
}

.weeeeb-story__step > * {
	margin: 0;
}

.weeeeb-story__text {
	padding-top: var(--wp--preset--spacing--30);
}

.weeeeb-story__image img {
	width: 100%;
	border-radius: var(--wp--custom--radius);
}

@media (min-width: 782px) {

	/* 留めた写真が画面からはみ出さない高さにする */
	.weeeeb-story__image img {
		max-height: calc(100vh - var(--wp--custom--header-height, 72px) - 6rem);
	}
}

.weeeeb-story__label {
	margin: 0;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--heading));
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.weeeeb-story__title {
	margin-top: 0.5rem;
	font-size: clamp(1.375rem, 2.4vw, 2rem);
}

/* PC：組ごとに、写真を左に留めたまま右の文章を流す（写真は組の範囲でだけ留まるので、次の組で入れ替わる） */
@media (min-width: 782px) {

	.weeeeb-story__steps > * + * {
		margin-top: 0;
	}

	.weeeeb-story__step {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: var(--wp--preset--spacing--60);
		align-items: start;
		min-height: 120vh;
	}

	.weeeeb-story__image {
		position: sticky;
		top: calc(var(--wp--custom--header-height, 72px) + var(--wp--preset--spacing--40));
	}

	.weeeeb-story__text {
		padding-top: 30vh;
		padding-bottom: 30vh;
		border-left: 1px solid var(--wp--preset--color--secondary);
		padding-left: var(--wp--preset--spacing--50);
	}

	/* 左右を入れ替えて、写真の位置に変化をつける */
	.weeeeb-story__step:nth-child(even) .weeeeb-story__image {
		grid-column: 2;
		grid-row: 1;
	}

	.weeeeb-story__step:nth-child(even) .weeeeb-story__text {
		grid-column: 1;
		grid-row: 1;
		padding-right: var(--wp--preset--spacing--50);
		padding-left: 0;
		border-right: 1px solid var(--wp--preset--color--secondary);
		border-left: 0;
	}
}

/* ---- 施工事例・実績 ---- */
.weeeeb-works__item > * {
	margin-block-start: 0.5rem;
}

.weeeeb-works__item > :first-child {
	margin-block-start: 0;
}

.weeeeb-works__item .wp-block-image img {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-works__meta {
	margin-block-start: 0.875rem !important;
	color: var(--wp--preset--color--muted);
	letter-spacing: 0.08em;
}

.weeeeb-works__title {
	font-size: 1.0625rem;
}

/* 分類がリンクのとき（実績・事例の投稿）も、テーマで付けた分類の文字色・飾りに合わせる */
.weeeeb-works__meta a {
	color: inherit;
	text-decoration: none;
}

/* 実績・事例（投稿）の一覧：写真の角、分類のリンクは丸いボタン風に横に並べる */
.weeeeb-works-query .wp-block-post-featured-image img {
	border-radius: var(--wp--custom--radius);
}

.weeeeb-works-query .wp-block-post-template > li > * + * {
	margin-block-start: 0.5rem;
}

.weeeeb-works-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--40);
	padding: 0;
	list-style: none;
}

.weeeeb-works-cats a {
	display: inline-block;
	padding: 0.35em 1em;
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: 999px;
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.weeeeb-works-cats .cat-item-none {
	display: none;
}

/* ---- 目的別メニュー：タイル全体をリンクにする ---- */
.weeeeb-tile {
	position: relative;
	transition: transform 0.2s;
}

.weeeeb-tile:hover {
	transform: translateY(-3px);
}

.weeeeb-tile > * {
	margin-block-start: 0.5rem;
}

.weeeeb-tile > :first-child {
	margin-block-start: 0;
}

.weeeeb-tile__en {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en);
	letter-spacing: 0.12em;
}

.weeeeb-tile__title a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-tile__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.weeeeb-tile__title::after {
	content: " →";
	color: var(--wp--preset--color--primary);
}

/* ---- 数字で見る ---- */
.weeeeb-numbers__item {
	padding-block: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-numbers__item > * {
	margin-block: 0;
}

.weeeeb-numbers__label {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-numbers__value {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en);
	font-size: clamp(2.5rem, 5vw, 3.75rem);
	font-weight: 700;
	line-height: 1.3;
}

.weeeeb-numbers__unit {
	margin-left: 0.15em;
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem;
}

/* ---- お客様の声 ---- */
.weeeeb-voice__item {
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--base);
}

.weeeeb-voice__text::before {
	content: "“";
	display: block;
	color: var(--wp--preset--color--primary);
	font-size: 3em;
	line-height: 0.6;
}

.weeeeb-voice__name {
	color: var(--wp--preset--color--muted);
}

/* ---- ロゴ一覧 ---- */
.weeeeb-logo-grid__label {
	width: fit-content;
	margin-inline: auto !important;
	padding: 0.2em 1.25em;
	border-radius: 999px;
	background: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.weeeeb-logo-grid__item {
	margin: 0;
}

.weeeeb-logo-grid__item img {
	box-sizing: border-box;
	width: 100%;
	padding: 0.75rem;
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: var(--wp--custom--radius);
	background: #fff;
}

.weeeeb-logo-grid__item .wp-element-caption {
	margin-top: 0.5em;
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	text-align: center;
}

/* ---- 情報テーブル（会社概要・アクセス） ---- */
.weeeeb-info-table {
	border-top: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-section.has-secondary-background-color .weeeeb-info-table,
.weeeeb-section.has-secondary-background-color .weeeeb-info-row {
	border-color: var(--wp--preset--color--base);
}

.weeeeb-info-row {
	display: grid;
	grid-template-columns: 10em 1fr;
	gap: 0.5em 1.5em;
	padding: 1em 0.5em;
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-info-row > * {
	margin: 0 !important;
}

.weeeeb-info-row__label {
	font-weight: 700;
}

@media (max-width: 600px) {

	.weeeeb-info-row {
		grid-template-columns: 1fr;
		gap: 0.25em;
	}
}

/* ---- よくある質問 ---- */
.weeeeb-faq .wp-block-details summary {
	font-weight: 700;
	cursor: pointer;
}

.weeeeb-faq .wp-block-details summary::before {
	content: "Q.";
	margin-right: 0.5em;
	color: var(--wp--preset--color--primary);
}

.weeeeb-faq .wp-block-details > :not(summary) {
	margin-top: 0.75em;
	padding-left: 1.75em;
}

/* ---- 下層ページ見出し・投稿 ---- */
.weeeeb-page-header .wp-block-post-title,
.weeeeb-page-header .wp-block-query-title,
.weeeeb-page-header .wp-block-heading {
	margin: 0;
}

/* ---- 下層ページの見出しの形（weeeeb/page-header-*。機能設定の「下層ページの見出しの形」で選ぶ） ---- */
.weeeeb-page-header__inner > * {
	margin-block: 0;
}

.weeeeb-page-header__inner > * + * {
	margin-block-start: 0.5rem;
}

.weeeeb-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-breadcrumbs a:hover {
	text-decoration: underline;
}

.weeeeb-page-header--band .weeeeb-breadcrumbs,
.weeeeb-page-header--line .weeeeb-breadcrumbs,
.weeeeb-page-header--photo .weeeeb-breadcrumbs {
	margin-block-end: 1rem;
}

/* 細い線：背景なし、大きなタイトル、下に線 */
.weeeeb-page-header--line {
	border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.weeeeb-page-header--line :is(.wp-block-post-title, .wp-block-query-title, .wp-block-heading) {
	font-size: clamp(2rem, 5vw, 3.25rem);
}

/* 中央：英語の小見出し＋タイトル、下に短いアクセントの線 */
.weeeeb-page-header--center .weeeeb-page-header__inner {
	text-align: center;
}

.weeeeb-page-header--center :is(.wp-block-post-title, .wp-block-query-title, .wp-block-heading)::after {
	content: "";
	display: block;
	width: 3rem;
	height: 3px;
	margin: 1rem auto 0;
	background: var(--wp--preset--color--accent);
}

.weeeeb-page-header--center .weeeeb-breadcrumbs {
	margin-block-start: 1.25rem;
}

.weeeeb-page-header--center .weeeeb-breadcrumbs ol {
	justify-content: center;
}

/* 写真：アイキャッチ画像を背景に白い文字（画像がないときはテーマカラーの帯） */
.weeeeb-page-header--photo {
	color: #fff;
}

.weeeeb-page-header--photo.is-no-image {
	color: var(--wp--preset--color--on-primary);
}

.weeeeb-page-header--photo :is(.wp-block-post-title, .wp-block-query-title, .wp-block-heading) {
	color: inherit;
	font-size: clamp(2rem, 5vw, 3rem);
	text-shadow: 0 1px 12px rgb(0 0 0 / 0.25);
}

.weeeeb-page-header__eyebrow {
	font-family: var(--wp--preset--font-family--en, var(--wp--preset--font-family--heading));
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.weeeeb-post-terms a {
	display: inline-block;
	padding: 0.1em 0.75em;
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
	font-size: 0.85em;
	text-decoration: none;
}

/* ---- お問い合わせフォーム（Contact Form 7） ---- */
.wpcf7-form p {
	margin: 0 0 1.25em;
}

/* CF7 が hidden input を囲む fieldset の既定の枠を消す */
.wpcf7-form .hidden-fields-container {
	margin: 0;
	padding: 0;
	border: 0;
}

.wpcf7-form label {
	display: block;
	font-weight: 700;
}

.wpcf7-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea) {
	box-sizing: border-box;
	width: 100%;
	margin-top: 0.4em;
	padding: 0.7em 0.9em;
	border: 1px solid #c8ced5; /* 固定の色：入力欄の枠（グレー） */
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.wpcf7-form :is(input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
}

.wpcf7-form input[type="submit"] {
	padding: 0.8em 3em;
	border: 0;
	border-radius: var(--wp--custom--radius);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.wpcf7-form input[type="submit"]:hover {
	background: var(--wp--preset--color--contrast);
}

.wpcf7-not-valid-tip {
	margin-top: 0.25em;
	font-size: var(--wp--preset--font-size--small);
}

/* =================================================================
 * ページ数の多いサイト（病院・大学・企業など）向けの部品
 * ================================================================= */

/* ---- メガメニューのヘッダー（weeeeb/header-mega） ---- */
.weeeeb-header--mega .weeeeb-header__topbar {
	background: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-header__links {
	display: flex;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.weeeeb-header__links a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-header__links a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

.weeeeb-search-open {
	display: inline-flex;
	text-decoration: none;
	gap: 0.375em;
	align-items: center;
	padding: 0.25em 0.875em;
	border: 1px solid currentcolor;
	border-radius: 999px;
	background: none;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

/* PC：サブメニューを横幅いっぱいのパネルにする（親のページのアイキャッチ画像を左に） */
@media (min-width: 601px) {

	.weeeeb-header--mega .weeeeb-header__main {
		position: relative;
	}

	/* パネルの位置の基準を、メニューではなくヘッダーの下の段にする */
	.weeeeb-header--mega .weeeeb-header__main :is(.wp-block-group, .wp-block-navigation, .wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .has-child) {
		position: static;
	}

	.weeeeb-header--mega .wp-block-navigation .wp-block-navigation__submenu-container {
		top: 100% !important;
		right: 0 !important;
		left: 0 !important;
		display: grid !important;
		grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
		gap: 0.25rem 1.5rem;
		width: auto !important;
		max-width: var(--wp--style--global--wide-size, 1200px);
		margin-inline: auto;
		padding: 1.5rem 2rem !important;
		border: 0 !important;
		border-top: 3px solid var(--wp--preset--color--primary) !important;
		background: var(--wp--preset--color--base) !important;
		box-shadow: 0 16px 32px rgb(0 0 0 / 0.12);
	}

	/* メニューの項目からパネルまでのすき間（ヘッダーの余白）を、透明な面で埋める。マウスを移すあいだにパネルが閉じないように */
	.weeeeb-header--mega .wp-block-navigation .wp-block-navigation__submenu-container::before {
		content: "";
		position: absolute;
		right: 0;
		bottom: 100%;
		left: 0;
		height: 1.5rem;
	}

	.weeeeb-header--mega .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.625rem 0.25rem !important;
		border-bottom: 1px solid var(--wp--preset--color--secondary);
	}

	.weeeeb-mega__image {
		grid-row: span 3;
	}

	.weeeeb-mega__image img {
		display: block;
		width: 100%;
		height: 100%;
		max-height: 10rem;
		object-fit: cover;
		border-radius: var(--wp--custom--radius, 4px);
	}
}

@media (max-width: 600px) {

	.weeeeb-header__links,
	.weeeeb-mega__image {
		display: none;
	}
}

/* 写真に重ねるメガメニュー：2段分の高さだけ本文を上にずらし、透明のときは上の段の背景も消す */
.wp-site-blocks:has(.weeeeb-header--mega.weeeeb-header--overlay) {
	--weeeeb-overlay-h: 7.25rem;
}

.weeeeb-header--mega.weeeeb-header--overlay > .weeeeb-header__main > .alignwide {
	min-height: 0;
}

.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--mega.weeeeb-header--overlay:not(.is-scrolled) .weeeeb-header__topbar {
	background: transparent;
}

@media (max-width: 600px) {

	.wp-site-blocks:has(.weeeeb-header--mega.weeeeb-header--overlay) {
		--weeeeb-overlay-h: 6.25rem;
	}
}

/* ---- 検索のパネル（メガメニューのヘッダーの「検索」） ---- */
.weeeeb-search {
	right: 0;
	left: 0;
	width: min(44rem, calc(100% - 2rem));
	margin: 10vh auto auto;
	padding: 0;
	border: 0;
	border-radius: var(--wp--custom--radius, 8px);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 24px 48px rgb(0 0 0 / 0.2);
}

.weeeeb-search::backdrop {
	background: rgb(0 0 0 / 0.5);
}

.weeeeb-search__inner {
	display: grid;
	gap: 1rem;
	padding: 2rem;
}

.weeeeb-search__label {
	font-weight: 700;
}

.weeeeb-search__field {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
}

.weeeeb-search__field input {
	flex: 1;
	min-width: 0;
	padding: 0.75rem 1rem;
	border: 1px solid #c8ced5; /* 固定の色：入力欄の枠（グレー） */
	border-radius: var(--wp--custom--radius, 4px);
	font: inherit;
}

.weeeeb-search__field button {
	display: inline-flex;
	gap: 0.375em;
	align-items: center;
	padding: 0 1.25rem;
	border: 0;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font: inherit;
	cursor: pointer;
}

.weeeeb-search__quick-label {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-search__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.weeeeb-search__quick a {
	display: block;
	padding: 0.375em 1em;
	border-radius: 999px;
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.weeeeb-search__quick a::before {
	content: "#";
	margin-right: 0.125em;
	color: var(--wp--preset--color--primary);
}

.weeeeb-search__close {
	justify-self: end;
	padding: 0.375em 1em;
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: 999px;
	background: none;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

/* ---- 質問して探す（検索のパネルで、よくある質問の答えを出す。weeeeb-core の inc/faq-search.php） ---- */
.weeeeb-search {
	max-height: calc(100dvh - 10vh - 1rem);
	overflow-y: auto;
}

.weeeeb-search__note {
	margin: 0.25rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* 読み上げ用の「〇件見つかりました」（画面には出さない） */
.weeeeb-faq-status {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.weeeeb-faq-results {
	display: grid;
	gap: 0.75rem;
}

.weeeeb-faq-results[hidden],
.weeeeb-faq-examples[hidden] {
	display: none;
}

.weeeeb-faq-results__lead {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-faq-results__list {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* 答え：吹き出し（左上の角だけ小さく） */
.weeeeb-faq-answer {
	padding: 1rem 1.25rem;
	border-radius: 4px var(--wp--custom--radius, 12px) var(--wp--custom--radius, 12px) var(--wp--custom--radius, 12px);
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
}

.weeeeb-faq-answer > * {
	margin: 0;
}

.weeeeb-faq-answer__q {
	font-weight: 700;
}

.weeeeb-faq-answer__q::before {
	content: "Q. ";
	color: var(--wp--preset--color--primary);
}

.weeeeb-faq-answer__a {
	margin-top: 0.375rem;
	line-height: 1.8;
}

.weeeeb-faq-answer__link {
	display: inline-block;
	margin-top: 0.5rem;
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
}

@media (prefers-reduced-motion: no-preference) {

	.weeeeb-faq-answer {
		animation: weeeeb-faq-in 0.25s ease-out both;
	}

	.weeeeb-faq-answer:nth-child(2) {
		animation-delay: 0.05s;
	}

	.weeeeb-faq-answer:nth-child(3) {
		animation-delay: 0.1s;
	}
}

@keyframes weeeeb-faq-in {

	from {
		opacity: 0;
		transform: translateY(0.375rem);
	}
}

/* 見つからなかったとき：サイト内検索・お問い合わせ・電話 */
.weeeeb-faq-none > p {
	margin: 0;
}

.weeeeb-faq-none__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.weeeeb-faq-none__actions a {
	padding: 0.5em 1em;
	border: 1px solid currentcolor;
	border-radius: 999px;
	color: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.weeeeb-faq-none__actions a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

.weeeeb-faq-results__pages {
	margin: 0;
	padding-left: 1.25em;
}

.weeeeb-faq-results__pages a {
	color: inherit;
}

/* ヘッダーに足した「検索」のボタン（メガメニュー以外の形）。スマホでは虫めがねだけにして、ほかのボタンはメニューに任せる */
.weeeeb-header-search .weeeeb-search-open {
	min-height: 2.25rem;
}

.weeeeb-search-open {
	white-space: nowrap;
}

/* 虫めがねだけにする（ヘッダーのサイト名・メニュー・ボタンの幅を詰めないため。「検索」の文字は読み上げ用に残す） */
.weeeeb-header-search .weeeeb-search-open {
	justify-content: center;
	min-width: 2.5rem;
	padding: 0.25em;
}

.weeeeb-header-search .weeeeb-search-open span {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

@media (max-width: 600px) {

	.weeeeb-header .weeeeb-header__actions:has(.weeeeb-header-search) {
		display: flex;
	}

	.weeeeb-header .weeeeb-header__actions:has(.weeeeb-header-search) > .wp-block-buttons {
		display: none;
	}

	/* 検索はメニューのボタンの左に（ネットショップは、カートの並びを変えない） */
	.weeeeb-header .weeeeb-header__actions:has(.weeeeb-header-search):not(:has(.weeeeb-shop-header)) {
		order: -1;
	}

	.weeeeb-header-search .weeeeb-search-open {
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
		padding: 0;
		border: 0;
	}

	.weeeeb-header-search .weeeeb-search-open svg {
		width: 22px;
		height: 22px;
	}

	.weeeeb-header-search .weeeeb-search-open span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
	}

	/* ロゴ中央の形：ロゴ・検索・メニューのボタンを1行に */
	.weeeeb-header--center .weeeeb-header__inner:has(.weeeeb-header-search) {
		grid-template-columns: minmax(0, 1fr) auto auto;
		grid-template-areas: "brand actions nav";
	}
}

/* ---- タブ（weeeeb/tabs）。スクリプトが動くまでは全部の枠を縦に並べる ---- */
.weeeeb-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	border-bottom: 2px solid var(--wp--preset--color--primary);
}

.weeeeb-tabs__list button {
	padding: 0.625em 1.5em;
	border: 0;
	border-radius: var(--wp--custom--radius, 4px) var(--wp--custom--radius, 4px) 0 0;
	background: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	cursor: pointer;
}

.weeeeb-tabs__list button[aria-selected="true"] {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

.weeeeb-tabs.is-ready > .weeeeb-tabs__panel {
	margin: 0;
	padding: 1.5rem 0.25rem;
}

/* タブにしたあとは、枠の見出しを画面に出さない（読み上げ用に残す） */
.weeeeb-tabs.is-ready .weeeeb-tabs__heading {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.weeeeb-tabs:not(.is-ready) > .weeeeb-tabs__panel + .weeeeb-tabs__panel {
	margin-top: 1.5rem;
}

/* ---- スライダー（weeeeb/hero-slider）。写真を同じ場所に重ね、表示中の1枚だけを見せる ---- */
.weeeeb-slider {
	position: relative;
	display: grid;
	margin-block: 0 !important;
}

.weeeeb-slider > .wp-block-cover {
	grid-area: 1 / 1;
	margin: 0 !important;
	transition: opacity 0.8s ease;
}

/* スクリプトが動かないときは1枚目だけ */
.weeeeb-slider > .wp-block-cover:not(:first-child),
.weeeeb-slider.is-ready > .wp-block-cover:not(.is-active) {
	visibility: hidden;
	opacity: 0;
}

.weeeeb-slider.is-ready > .wp-block-cover.is-active {
	visibility: visible;
	opacity: 1;
}

.weeeeb-slider__label {
	margin: 0;
	font-family: var(--wp--preset--font-family--en, inherit);
	font-size: 0.875rem;
	letter-spacing: 0.2em;
}

.weeeeb-slider__controls {
	position: absolute;
	right: max(1rem, calc((100% - var(--wp--style--global--wide-size, 1200px)) / 2));
	bottom: 1.5rem;
	z-index: 2;
	display: flex;
	gap: 0.25rem;
	align-items: center;
}

.weeeeb-slider__controls button {
	padding: 0.25rem 0.5rem;
	border: 0;
	background: none;
	color: #fff;
	font-family: var(--wp--preset--font-family--en, inherit);
	font-size: 0.875rem;
	opacity: 0.7;
	cursor: pointer;
}

.weeeeb-slider__controls button:is([aria-current="true"], :hover, :focus-visible) {
	opacity: 1;
}

.weeeeb-slider__dot[aria-current="true"] {
	text-decoration: underline;
	text-underline-offset: 0.4em;
}

.weeeeb-slider__pause {
	margin-left: 0.5rem;
	border: 1px solid rgb(255 255 255 / 0.6) !important;
	border-radius: 999px;
	font-size: 0.75rem !important;
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-slider > .wp-block-cover {
		transition: none;
	}
}

/* ---- 目次（weeeeb/toc）。見出しが2つ以上あって一覧ができたときだけ表示する ---- */
.weeeeb-toc-wrap:not(:has(.weeeeb-toc.is-ready)) {
	display: none;
}

.weeeeb-toc {
	padding: 1rem 1.5rem;
	border: 1px solid var(--wp--preset--color--secondary);
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--surface, #fff);
}

.weeeeb-toc summary {
	font-weight: 700;
	cursor: pointer;
}

.weeeeb-toc__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
	gap: 0.25rem 1.5rem;
	margin: 0.75rem 0 0;
	padding-left: 1.25rem;
}

/* ---- 写真のコラージュ（weeeeb/hero-collage）：写真3枚を少しずつ傾けて重ねる ---- */
.weeeeb-collage {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: repeat(12, minmax(0, 1fr));
	aspect-ratio: 1 / 0.92;
}

.weeeeb-collage .weeeeb-collage__item {
	margin: 0;
}

.weeeeb-collage__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.weeeeb-collage__item--1 {
	z-index: 1;
	grid-area: 1 / 1 / 8 / 8;
	transform: rotate(-4deg);
}

.weeeeb-collage__item--2 {
	z-index: 2;
	grid-area: 4 / 6 / 11 / 13;
	transform: rotate(3deg);
}

.weeeeb-collage__item--3 {
	z-index: 3;
	grid-area: 8 / 2 / 13 / 7;
	transform: rotate(-2deg);
}

@media (prefers-reduced-motion: no-preference) {

	.weeeeb-collage__item {
		transition: transform 0.3s ease;
	}

	.weeeeb-collage__item:hover {
		z-index: 4;
		transform: rotate(0deg) scale(1.03);
	}
}

/* ---- 1ページ完結（.weeeeb-onepage）：ページ内の移動をなめらかに、メニューの今いる区切りに下線 ---- */
@media (prefers-reduced-motion: no-preference) {

	html:has(.weeeeb-onepage) {
		scroll-behavior: smooth;
	}
}

.wp-block-navigation a.is-current {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.45em;
}

/* 見た目には出さず、読み上げ・検索エンジンには伝える */
.weeeeb-visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ---- 作品のスライダー（weeeeb/hero-gallery）：横長の写真を切り替え、下にキャプションと操作のボタン ---- */
.weeeeb-hero--gallery {
	--weeeeb-gs-inset: max(var(--wp--style--root--padding-left, 1.5rem), calc((100% - var(--wp--style--global--wide-size, 1200px)) / 2));
	margin-block: 0;
}

/* スクリプトが動かないとき：横にスクロールして見る */
.weeeeb-gslider {
	position: relative;
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
}

.weeeeb-gslider__slide {
	flex: 0 0 100%;
	margin: 0 !important;
	scroll-snap-align: start;
}

.weeeeb-gslider.is-ready {
	display: grid;
	overflow: visible;
}

.weeeeb-gslider.is-ready > .weeeeb-gslider__slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.8s ease, visibility 0.8s;
}

.weeeeb-gslider.is-ready > .weeeeb-gslider__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.weeeeb-gslider__image {
	margin: 0;
}

.weeeeb-gslider__image img {
	display: block;
	width: 100%;
	max-height: 78vh;
}

.weeeeb-gslider__caption {
	padding: 1.5rem var(--weeeeb-gs-inset);
	border-bottom: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.12);
}

.weeeeb-gslider__caption > * {
	margin: 0;
}

.weeeeb-gslider__label {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.12em;
}

.weeeeb-gslider__title {
	margin-top: 0.25rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	letter-spacing: 0.08em;
}

.weeeeb-gslider__controls {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	justify-content: flex-end;
	padding: 0.75rem var(--weeeeb-gs-inset);
}

.weeeeb-gslider__count {
	margin-right: 0.5rem;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--en);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.08em;
}

.weeeeb-gslider__controls button {
	min-width: 44px;
	height: 44px;
	padding: 0 0.75rem;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.2);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.weeeeb-gslider__controls button:hover {
	border-color: var(--wp--preset--color--contrast);
}

.weeeeb-gslider__controls button:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* PC：操作のボタンを、キャプションの行の右端に重ねる */
@media (min-width: 782px) {

	.weeeeb-gslider.is-ready .weeeeb-gslider__caption {
		padding-right: calc(var(--weeeeb-gs-inset) + 20rem);
	}

	.weeeeb-gslider__controls {
		position: absolute;
		right: 0;
		bottom: 0;
		height: var(--weeeeb-gs-caption-h, 5.5rem);
		padding-block: 0;
		border-left: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.12);
		padding-left: 1.5rem;
	}
}

@media (max-width: 781px) {

	.weeeeb-gslider__image img {
		aspect-ratio: 4 / 3 !important;
	}
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-gslider.is-ready > .weeeeb-gslider__slide {
		transition: none;
	}
}

/* ---- 実績・事例の絞り込み（weeeeb/works-filter）：見出しの下に線、検索欄と分類のボタン、正方形の写真の3列 ---- */
.weeeeb-works-filter__head {
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--wp--preset--color--contrast);
}

.weeeeb-works-filter__head .wp-block-group > * {
	margin: 0;
}

.weeeeb-works-filter__title {
	font-family: var(--wp--preset--font-family--en);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.weeeeb-works-filter__sub {
	margin-top: 0.25rem !important;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-works-filter__lead {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	line-height: 1.8;
	white-space: pre-line;
}

.weeeeb-works-filter__tools {
	display: grid;
	gap: 1rem;
	margin-bottom: var(--wp--preset--spacing--50);
}

.weeeeb-works-filter__search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	align-items: center;
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-works-filter__search input {
	width: min(100%, 18rem);
	padding: 0.7em 1em;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.15);
	border-radius: 2px;
	background: oklch(from var(--wp--preset--color--contrast) l c h / 0.04);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.weeeeb-works-filter__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.weeeeb-works-filter__cats button {
	padding: 0.55em 1.25em;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.15);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	cursor: pointer;
}

.weeeeb-works-filter__cats button[aria-pressed="true"] {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

.weeeeb-works-filter__grid > li[hidden] {
	display: none;
}

.weeeeb-works-filter__grid .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.weeeeb-works-filter__grid .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	transition: transform 0.6s ease;
}

.weeeeb-works-filter__grid .wp-block-post-featured-image a:hover img {
	transform: scale(1.04);
}

/* 写真のない事例も、写真の場所を空けて形をそろえる */
.weeeeb-works-filter__grid > li:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	display: block;
	aspect-ratio: 1;
	background: var(--wp--preset--color--secondary);
}

.weeeeb-works-filter__grid .weeeeb-works__title {
	margin-top: 1rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	letter-spacing: 0.06em;
}

.weeeeb-works-filter__grid .weeeeb-works__title a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-works-filter__grid .weeeeb-works__meta {
	margin-top: 0.25rem;
	letter-spacing: 0.1em;
}

.weeeeb-works-filter__grid .weeeeb-works__meta a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

/* スマホは2列（正方形の写真が1列に並ぶと長くなりすぎるため） */
@media (max-width: 781px) {

	.weeeeb-works-filter__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.5rem 1rem !important;
	}

	.weeeeb-works-filter__grid .weeeeb-works__title {
		margin-top: 0.6rem;
		font-size: var(--wp--preset--font-size--small);
	}
}

.weeeeb-works-filter__empty {
	padding: 2rem 0;
	color: var(--wp--preset--color--muted);
	text-align: center;
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-works-filter__grid .wp-block-post-featured-image img {
		transition: none;
	}
}

/* ---- マガジン（weeeeb/magazine）：特集（先頭に固定した投稿）を大きく、新着の記事をカードで ---- */
.weeeeb-magazine__feature-card {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

.weeeeb-magazine__feature-image,
.weeeeb-magazine .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius, 8px);
}

.weeeeb-magazine .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	transition: transform 0.6s ease;
}

.weeeeb-magazine .wp-block-post-featured-image a:hover img {
	transform: scale(1.04);
}

/* 写真のない記事も、写真の場所を空けて形をそろえる */
.weeeeb-magazine__feature-card:not(:has(.wp-block-post-featured-image))::before,
.weeeeb-magazine__grid > li:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: var(--wp--custom--radius, 8px);
	background: oklch(from var(--wp--preset--color--primary) l c h / 0.1);
}

.weeeeb-magazine__feature-card:not(:has(.wp-block-post-featured-image))::before {
	aspect-ratio: 3 / 2;
}

.weeeeb-magazine__feature-body > * {
	margin-block: 0;
}

.weeeeb-magazine__feature-body > * + * {
	margin-top: 0.75rem;
}

.weeeeb-magazine__label {
	display: inline-block;
	padding: 0.2em 0.9em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: #fff;
	font-family: var(--wp--preset--font-family--en);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.weeeeb-magazine__feature-title {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1.45;
}

.weeeeb-magazine__feature-title a,
.weeeeb-magazine__title a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-magazine__feature-title a:hover,
.weeeeb-magazine__title a:hover {
	text-decoration: underline;
}

.weeeeb-magazine__cat {
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.weeeeb-magazine__cat a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.weeeeb-magazine__title {
	margin-top: 0.25rem;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
}

.weeeeb-magazine__date {
	margin-top: 0.25rem;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-magazine__head h2 {
	margin-top: 0.25rem;
}

.weeeeb-magazine__cats-title {
	margin: 0 0 0.75rem;
	font-size: var(--wp--preset--font-size--medium);
}

.weeeeb-magazine__cat-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* カテゴリ名と記事の数を、ひとつの丸い札に（記事の数はリンクの外に出るため、札は項目 li に付ける） */
.weeeeb-magazine__cat-list li {
	display: inline-flex;
	gap: 0.25em;
	align-items: center;
	padding: 0.35em 1em;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.15);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-magazine__cat-list li a {
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--medium);
	text-decoration: none;
}

.weeeeb-magazine__cat-list li:hover {
	border-color: var(--wp--preset--color--primary);
}

.weeeeb-magazine__cat-list li:hover a {
	color: var(--wp--preset--color--primary);
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-magazine .wp-block-post-featured-image img {
		transition: none;
	}
}

@media (max-width: 781px) {

	.weeeeb-magazine__feature-card {
		grid-template-columns: minmax(0, 1fr);
	}

	/* スマホの新しい記事：写真を左に小さく、右にカテゴリ・タイトル・日付（縦に長くなりすぎないように） */
	.weeeeb-magazine__grid > li {
		display: grid;
		grid-template-columns: 7rem minmax(0, 1fr);
		column-gap: 1rem;
		align-content: start;
	}

	.weeeeb-magazine__grid > li > * {
		grid-column: 2;
	}

	.weeeeb-magazine__grid > li > .wp-block-post-featured-image,
	.weeeeb-magazine__grid > li:not(:has(.wp-block-post-featured-image))::before {
		grid-column: 1;
		grid-row: 1 / span 3;
		align-self: start;
	}

	.weeeeb-magazine__grid .weeeeb-magazine__cat {
		margin-top: 0;
	}

	.weeeeb-magazine__grid .weeeeb-magazine__title {
		font-size: var(--wp--preset--font-size--medium);
	}
}

/* ---- 動画のメインビジュアル（weeeeb/hero-video）：右下の「止める・再生する」ボタン（ui.js が付ける） ---- */
.weeeeb-video-toggle {
	position: absolute;
	z-index: 2;
	right: clamp(0.75rem, 2vw, 1.5rem);
	bottom: clamp(0.75rem, 2vw, 1.5rem);
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 0.7);
	border-radius: 50%;
	background: rgb(0 0 0 / 0.35);
	color: #fff;
	cursor: pointer;
}

/* 再生中は「止める」（2本の縦線）、止めているときは「再生」（三角） */
.weeeeb-video-toggle::before {
	content: "";
	width: 12px;
	height: 14px;
	border-right: 4px solid currentcolor;
	border-left: 4px solid currentcolor;
}

.weeeeb-video-toggle.is-paused::before {
	width: 0;
	height: 0;
	margin-left: 4px;
	border-top: 8px solid transparent;
	border-right: 0;
	border-bottom: 8px solid transparent;
	border-left: 13px solid currentcolor;
}

.weeeeb-video-toggle:hover {
	background: rgb(0 0 0 / 0.55);
}

.weeeeb-video-toggle:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

/* ---- 画面いっぱいの区切り（weeeeb/fullscreen） ---- */

/* 画面の高さいっぱいに写真を敷く。続けて並べると、スクロールが区切りの頭の近くで止まる */
.weeeeb-fullscreen.wp-block-cover {
	min-height: 100vh !important;
	min-height: 100svh !important;
	margin-block: 0;
	padding-block: var(--wp--preset--spacing--60);
}

/* 文字の左端は本文の幅（wide）にそろえ、1行の長さは読みやすい幅にとどめる */
.weeeeb-fullscreen.wp-block-cover > .wp-block-cover__inner-container {
	width: 100% !important;
}

/* スマホ下部のボタンがあるときは、区切りの文字がボタンに隠れないよう下を空ける */
@media (max-width: 781px) {

	body:has(.weeeeb-mobile-bar) .weeeeb-fullscreen.wp-block-cover {
		padding-bottom: calc(var(--wp--preset--spacing--60) + 4.25rem + env(safe-area-inset-bottom, 0px));
	}
}

.weeeeb-fullscreen__body > * {
	max-width: 38rem;
	margin-block: 0;
}

.weeeeb-fullscreen__body > * + * {
	margin-top: 1rem;
}

.weeeeb-fullscreen .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: currentcolor;
	color: #fff;
}

@media (prefers-reduced-motion: no-preference) {

	html:has(.weeeeb-fullscreen + .weeeeb-fullscreen) {
		scroll-snap-type: y proximity;
	}

	.weeeeb-fullscreen {
		scroll-snap-align: start;
	}
}

/* 今どの区切りかを示す点（ui.js が、続けて並んだ区切りの右側に置く） */
.weeeeb-fullscreen-dots {
	position: fixed;
	z-index: 20;
	top: 50%;
	right: clamp(0.5rem, 2vw, 1.5rem);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	transform: translateY(-50%);
	transition: opacity 0.3s, visibility 0.3s;
}

.weeeeb-fullscreen-dots[hidden] {
	display: flex;
	opacity: 0;
	visibility: hidden;
}

.weeeeb-fullscreen-dots button {
	display: block;
	width: 12px;
	height: 12px;
	padding: 0;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	box-shadow: 0 0 0 1px rgb(0 0 0 / 0.25);
	cursor: pointer;
}

.weeeeb-fullscreen-dots button[aria-current="true"] {
	background: #fff;
	transform: scale(1.25);
}

.weeeeb-fullscreen-dots button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (max-width: 781px) {

	.weeeeb-fullscreen-dots {
		right: 0.5rem;
		gap: 0.6rem;
	}

	.weeeeb-fullscreen-dots button {
		width: 10px;
		height: 10px;
	}
}

/* ---- 目的診断（weeeeb/finder）：質問とおすすめの枠をカードにし、答えのボタンを縦に大きく並べる ---- */
.weeeeb-finder {
	scroll-margin-top: calc(var(--wp--custom--header-height, 72px) + 1rem);
}

.weeeeb-finder__step {
	padding: clamp(1.5rem, 4vw, 2.75rem);
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.12);
	border-radius: var(--wp--custom--radius, 8px);
	background: var(--wp--preset--color--surface);
	scroll-margin-top: calc(var(--wp--custom--header-height, 72px) + 1rem);
}

/* スクリプトが動かないとき：枠を順に並べる */
.weeeeb-finder__step + .weeeeb-finder__step {
	margin-top: var(--wp--preset--spacing--40);
}

.weeeeb-finder.is-ready .weeeeb-finder__step + .weeeeb-finder__step {
	margin-top: 0;
}

.weeeeb-finder__step[hidden] {
	display: none;
}

.weeeeb-finder__step.is-current {
	animation: weeeeb-finder-in 0.35s ease;
}

@keyframes weeeeb-finder-in {

	from {
		opacity: 0;
		transform: translateY(0.75rem);
	}
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-finder__step.is-current {
		animation: none;
	}
}

.weeeeb-finder__label {
	margin: 0;
	color: var(--weeeeb-accent-text, var(--wp--preset--color--accent));
	font-family: var(--wp--preset--font-family--en);
	font-weight: 700;
	letter-spacing: 0.12em;
}

.weeeeb-finder__question {
	margin-top: 0.25rem;
	font-size: var(--wp--preset--font-size--x-large);
}

.weeeeb-finder__question:focus {
	outline: none;
}

.weeeeb-finder__choices {
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--40);
}

.weeeeb-finder__choices .wp-block-button {
	width: 100%;
}

.weeeeb-finder__choices .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding-block: 1.1em;
	text-align: left;
}

.weeeeb-finder__choices .wp-block-button__link::after {
	content: "→";
	margin-left: 1em;
	transition: transform 0.2s;
}

.weeeeb-finder__choices .wp-block-button__link:hover::after {
	transform: translateX(0.25em);
}

.weeeeb-finder__result {
	border-color: var(--wp--preset--color--primary);
	border-width: 2px;
}

.weeeeb-finder__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin-top: var(--wp--preset--spacing--40);
	padding-top: 1rem;
	border-top: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.1);
}

.weeeeb-finder__nav button {
	padding: 0.25rem 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	text-decoration: underline;
	text-underline-offset: 0.3em;
	cursor: pointer;
}

.weeeeb-finder__nav .weeeeb-finder__back::before {
	content: "← ";
}

/* ---- 地図と一覧（weeeeb/map-list）：PC では右に地図を画面に留め、左に一覧。スマホは地図の下に一覧 ---- */
.weeeeb-map-list {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}

.weeeeb-map-list__map {
	position: sticky;
	top: calc(var(--wp--custom--header-height, 72px) + 1rem);
	grid-column: 2;
	grid-row: 1;
}

.weeeeb-map-list__map .wp-block-weeeeb-map {
	height: calc(100vh - var(--wp--custom--header-height, 72px) - 2rem);
	max-height: 44rem;
	aspect-ratio: auto !important;
	border-radius: var(--wp--custom--radius, 8px);
	overflow: hidden;
}

.weeeeb-map-list__list {
	grid-column: 1;
	grid-row: 1;
}

.weeeeb-map-list__list > * + * {
	margin-top: 0.75rem;
}

.weeeeb-map-list__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1.25rem;
}

.weeeeb-map-list__filter button {
	padding: 0.4em 1.1em;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.2);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}

.weeeeb-map-list__filter button[aria-pressed="true"] {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

.weeeeb-map-list__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 1rem;
	padding: 1.25rem 1.5rem;
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.12);
	border-radius: var(--wp--custom--radius, 8px);
	background: var(--wp--preset--color--surface);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.weeeeb-map-list__item[hidden] {
	display: none;
}

.weeeeb-map-list__item > * {
	grid-column: 1;
	margin: 0;
}

.weeeeb-map-list__item > * + * {
	margin-top: 0.25rem;
}

.weeeeb-map-list__item.is-selected {
	border-color: var(--wp--preset--color--primary);
	box-shadow: inset 4px 0 0 var(--wp--preset--color--primary);
}

.weeeeb-map-list__cat {
	color: var(--weeeeb-accent-text, var(--wp--preset--color--accent));
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
}

.weeeeb-map-list__name {
	font-size: var(--wp--preset--font-size--large);
}

.weeeeb-map-list__address {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-map-list__show {
	grid-column: 2;
	grid-row: 1 / span 4;
	align-self: center;
	margin: 0;
	padding: 0.55em 1em;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	background: none;
	color: var(--wp--preset--color--primary);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	white-space: nowrap;
	cursor: pointer;
}

.weeeeb-map-list__show:hover,
.weeeeb-map-list__item.is-selected .weeeeb-map-list__show {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

@media (max-width: 781px) {

	.weeeeb-map-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-map-list__map {
		position: static;
		grid-column: 1;
	}

	.weeeeb-map-list__map .wp-block-weeeeb-map {
		height: auto;
		aspect-ratio: 4 / 3 !important;
	}

	.weeeeb-map-list__list {
		grid-row: 2;
	}

	.weeeeb-map-list__item {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-map-list__show {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
		margin-top: 0.75rem;
	}
}

/* ---- 左右分割・写真を留める（weeeeb/split・weeeeb/split-hero） ---- */

/* 左半分の写真を、区切りを読み終えるまで画面に留める */
.weeeeb-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	margin-block: 0;
}

.weeeeb-split__media.wp-block-image {
	position: sticky;
	top: var(--wp--custom--header-height, 72px);
	height: calc(100vh - var(--wp--custom--header-height, 72px));
	height: calc(100dvh - var(--wp--custom--header-height, 72px));
	margin: 0;
}

.weeeeb-split__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.weeeeb-split__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	min-height: calc(100vh - var(--wp--custom--header-height, 72px));
	min-height: calc(100dvh - var(--wp--custom--header-height, 72px));
	padding: var(--wp--preset--spacing--70) clamp(1.5rem, 6vw, 6rem);
}

.weeeeb-split__body > * {
	max-width: 36rem;
}

/* スクリプトが動くとき（PC）：写真を画面の左半分に固定し、表示中の区切り（is-active）の写真だけを出す */
@media (min-width: 782px) {

	/* 位置・幅・切り取りは ui.js が区切りの実際の位置から決める（左に縦のメニューのヘッダー・2段のヘッダー・前後の区切りとの重なり） */
	.weeeeb-split-js .weeeeb-split__media.wp-block-image {
		position: fixed;
		z-index: 0;
		top: var(--weeeeb-split-top, var(--wp--custom--header-height, 72px));
		left: var(--weeeeb-split-left, 0);
		width: var(--weeeeb-split-w, 50%);
		height: calc(100vh - var(--weeeeb-split-top, var(--wp--custom--header-height, 72px)));
		clip-path: inset(var(--weeeeb-split-clip-top, 0) 0 var(--weeeeb-split-clip-bottom, 0) 0);
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.6s ease, visibility 0s linear 0.6s;
		pointer-events: none;
	}

	.weeeeb-split-js .weeeeb-split.is-active .weeeeb-split__media.wp-block-image {
		opacity: 1;
		visibility: visible;
		transition: opacity 0.6s ease, visibility 0s;
	}

	.weeeeb-split-js .weeeeb-split__body {
		grid-column: 2;
	}
}

@media (max-width: 781px) {

	.weeeeb-split {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-split__media.wp-block-image {
		position: static;
		height: auto;
	}

	.weeeeb-split__media img {
		aspect-ratio: 4 / 3;
	}

	.weeeeb-split__body {
		min-height: 0;
		padding: var(--wp--preset--spacing--50) var(--wp--style--root--padding-left, 1rem);
	}
}

/* ---- 下層ページのサイドメニュー（weeeeb/page-body。デザイン設定の「サイドメニュー」が表示のとき） ---- */
.weeeeb-page-body--sidebar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 16rem;
	gap: var(--wp--preset--spacing--60);
	align-items: start;
	margin-top: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--60);
}

/* 本文の列では、画面いっぱいの区切り（alignfull）を列の幅に収める（背景のある区切りは角の丸い面になる） */
.weeeeb-page-body__main > .alignfull,
.weeeeb-page-body__main > .alignwide {
	width: auto;
	max-width: none;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.weeeeb-page-body__main > .alignfull.has-background {
	border-radius: var(--wp--custom--radius, 4px);
}

.weeeeb-page-body__main > :first-child {
	margin-top: 0;
}

.weeeeb-page-aside {
	display: grid;
	gap: 1.5rem;
	position: sticky;
	top: calc(var(--wp--custom--header-height, 72px) + 1rem);
	max-height: calc(100vh - var(--wp--custom--header-height, 72px) - 2rem);
	overflow-y: auto;
	font-size: var(--wp--preset--font-size--small);
}

.weeeeb-local-nav__title {
	margin: 0 0 0.5rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--primary);
	font-weight: 700;
}

.weeeeb-local-nav__title a {
	color: inherit;
	text-decoration: none;
}

.weeeeb-local-nav__list {
	display: grid;
	gap: 0.125rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.weeeeb-local-nav__list a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-left: 3px solid transparent;
	border-radius: 0 var(--wp--custom--radius, 4px) var(--wp--custom--radius, 4px) 0;
	color: inherit;
	text-decoration: none;
}

.weeeeb-local-nav__list a:hover {
	background: var(--wp--preset--color--secondary);
}

.weeeeb-local-nav__list a[aria-current="page"] {
	border-left-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--secondary);
	font-weight: 700;
}

.weeeeb-toc-wrap--aside .weeeeb-toc {
	padding: 1rem;
}

.weeeeb-toc-wrap--aside .weeeeb-toc__list {
	grid-template-columns: 1fr;
	padding-left: 1.25rem;
}

@media (max-width: 1024px) {

	.weeeeb-page-body--sidebar {
		grid-template-columns: minmax(0, 1fr);
	}

	.weeeeb-page-aside {
		position: static;
		max-height: none;
		overflow: visible;
	}

	/* 狭い画面では目次を出さない（本文の下にあっても役に立たないため） */
	.weeeeb-toc-wrap--aside {
		display: none;
	}
}

/* ---- 受付時間と電話（weeeeb/hours-tel） ---- */
.weeeeb-hours-tel__contact {
	padding: 1.5rem;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--secondary);
	text-align: center;
}

.weeeeb-hours-tel__contact .wp-block-buttons {
	justify-content: center;
}

.weeeeb-hours-tel__contact p {
	margin-block: 0.25rem;
}

/* ---- 診療科のページ（weeeeb/page-department） ---- */
.weeeeb-dept-page > h2 {
	margin-top: var(--wp--preset--spacing--60);
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--primary);
}

.weeeeb-dept-page > h2:first-child {
	margin-top: 0;
}

.weeeeb-dept-page__tags,
.weeeeb-dept-page__diseases {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	list-style: none;
}

.weeeeb-dept-page__tags li {
	padding: 0.25em 1em;
	border-radius: 999px;
	background: var(--wp--preset--color--secondary);
}

.weeeeb-dept-page__diseases {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
}

.weeeeb-dept-page__diseases li {
	padding: 0.625rem 0.25rem 0.625rem 1.25rem;
	border-bottom: 1px solid var(--wp--preset--color--secondary);
	background: linear-gradient(var(--wp--preset--color--primary), var(--wp--preset--color--primary)) 0.25rem 50% / 0.375rem 0.375rem no-repeat;
}

.weeeeb-dept-page__features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: 1.25rem;
}

.weeeeb-dept-page__feature {
	padding: 1.5rem;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--secondary);
}

.weeeeb-dept-page__feature > * {
	margin-block: 0.25rem;
}

.weeeeb-dept-page__message {
	padding: 1.5rem 2rem;
	border-left: 4px solid var(--wp--preset--color--primary);
	background: var(--wp--preset--color--surface, #fff);
}

/* ---- スマホ下部のアイコンメニュー（サイト情報の「スマホ下部のアイコンメニュー」） ---- */
@media (max-width: 781px) {

	.weeeeb-mobile-bar--icons {
		padding-inline: 0.25rem;
	}

	.weeeeb-mobile-bar__icons ul {
		display: grid;
		grid-auto-columns: minmax(0, 1fr);
		grid-auto-flow: column;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.weeeeb-mobile-bar__icons a {
		display: flex;
		flex-direction: column;
		gap: 0.125rem;
		align-items: center;
		padding: 0.25rem 0;
		color: var(--wp--preset--color--contrast);
		font-size: 0.625rem;
		line-height: 1.3;
		text-align: center;
		text-decoration: none;
	}

	.weeeeb-mobile-bar__icons .weeeeb-icon {
		color: var(--wp--preset--color--primary);
	}
}

/* ---- フッターの関連施設・関連サイト（サイト情報） ---- */
.weeeeb-footer__related {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	margin: 0 0 1rem;
	padding: 1rem 0 0;
	border-top: 1px solid var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--small);
	list-style: none;
}

.weeeeb-footer__related a {
	color: inherit;
}

/* ---- アイコンメニュー（weeeeb/icon-menu。サイト情報の「スマホ下部のアイコンメニュー」をカードで） ---- */
.weeeeb-icon-cards {
	display: grid;
	overflow: hidden;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
	margin: 0;
	padding: 0;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--surface, #fff);
	box-shadow: 0 8px 32px rgb(0 0 0 / 0.08);
	list-style: none;
}

.weeeeb-icon-cards li + li {
	border-left: 1px solid var(--wp--preset--color--secondary);
}

/* 高さ 100% に余白を含める（ホバーの背景がカードからはみ出さないように） */
.weeeeb-icon-cards a {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	align-items: center;
	height: 100%;
	padding: 1.75rem 0.5rem 1.5rem;
	color: var(--wp--preset--color--contrast);
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s;
}

.weeeeb-icon-cards a:is(:hover, :focus-visible) {
	background: var(--wp--preset--color--secondary);
}

.weeeeb-icon-cards .weeeeb-icon {
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: 0.75rem;
	color: var(--wp--preset--color--primary);
	stroke-width: 1.2;
}

.weeeeb-icon-cards__label {
	font-size: 1.0625rem;
	letter-spacing: 0.08em;
}

.weeeeb-icon-cards__en {
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--en, inherit);
	font-size: 0.75rem;
}

@media (max-width: 600px) {

	.weeeeb-icon-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.weeeeb-icon-cards li {
		border-top: 1px solid var(--wp--preset--color--secondary);
	}

	.weeeeb-icon-cards li:nth-child(odd) {
		border-left: 0;
	}

	.weeeeb-icon-cards li:nth-child(-n + 2) {
		border-top: 0;
	}
}

/* ---- 写真カード（weeeeb/card-carousel）。横にスクロールし、カードの左端でそろえて止める ---- */
.weeeeb-carousel {
	display: grid;
	grid-auto-columns: minmax(15rem, calc((100% - 3rem) / 3));
	grid-auto-flow: column;
	gap: 1.5rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	padding-bottom: 0.5rem;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}

.weeeeb-carousel > .wp-block-cover {
	margin: 0 !important;
	border-radius: var(--wp--custom--radius, 4px);
	scroll-snap-align: start;
}

.weeeeb-carousel__label {
	display: inline-block;
	margin: 0;
	padding: 0.5em 0.875em;
	border-radius: 2px;
	background: var(--wp--preset--color--surface, #fff);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	letter-spacing: 0.12em;
}

.weeeeb-carousel__nav {
	display: flex;
	justify-content: center;
	gap: 1rem;
	margin-top: 1.5rem;
}

.weeeeb-carousel__nav[hidden] {
	display: none;
}

.weeeeb-carousel__nav button {
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 50%;
	background: var(--wp--preset--color--surface, #fff);
	color: var(--wp--preset--color--primary);
	cursor: pointer;
}

.weeeeb-carousel__nav button::before {
	content: "←";
}

.weeeeb-carousel__nav .weeeeb-carousel__next::before {
	content: "→";
}

.weeeeb-carousel__nav button:disabled {
	opacity: 0.35;
	cursor: default;
}

@media (max-width: 781px) {

	.weeeeb-carousel {
		grid-auto-columns: 78%;
	}
}

/* ---- 横に流す帯（.weeeeb-reel。weeeeb/works-reel・weeeeb/hero-reel） ---- */

/* 画面の右端まで広げ、左端は本文の幅（wide）にそろえる */
.weeeeb-reel {
	--weeeeb-reel-inset: max(var(--wp--style--root--padding-left, 1.5rem), calc((100% - var(--wp--style--global--wide-size, 1200px)) / 2));
	grid-auto-columns: clamp(15rem, 26vw, 22rem);
	gap: clamp(1rem, 2vw, 1.75rem);
	margin: 0;
	padding: 0 var(--weeeeb-reel-inset) 0.75rem;
	list-style: none;
	scroll-padding-inline: var(--weeeeb-reel-inset);
}

.weeeeb-reel > * {
	margin: 0 !important;
	scroll-snap-align: start;
}

.weeeeb-reel .wp-block-post-featured-image,
.weeeeb-reel .weeeeb-reel__photo {
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius, 4px);
}

.weeeeb-reel .wp-block-post-featured-image img,
.weeeeb-reel .weeeeb-reel__photo img {
	display: block;
	width: 100%;
	transition: transform 0.6s ease;
}

.weeeeb-reel .wp-block-post-featured-image a:hover img {
	transform: scale(1.04);
}

/* 写真のない事例も、写真の場所を空けて形をそろえる */
.weeeeb-reel > li:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--secondary);
}

.weeeeb-reel .weeeeb-works__meta {
	margin-top: 0.75rem;
}

.weeeeb-reel--hero {
	grid-auto-columns: clamp(14rem, 24vw, 20rem);
}

/* 帯の前・次のボタンは、本文の幅の右端に */
.weeeeb-reel + .weeeeb-carousel__nav {
	justify-content: flex-end;
	max-width: var(--wp--style--global--wide-size, 1200px);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-left, 1.5rem);
}

.weeeeb-reel-section__head h2 {
	margin-top: 0.25rem;
}

@media (prefers-reduced-motion: reduce) {

	.weeeeb-reel .wp-block-post-featured-image img {
		transition: none;
	}
}

@media (max-width: 781px) {

	.weeeeb-reel,
	.weeeeb-reel--hero {
		grid-auto-columns: 70%;
	}
}

/* ---- 重なるカード（weeeeb/stack） ---- */

/* カードを画面に留め、次のカードが上に重なる。留める位置を少しずつずらして、下のカードの上端を見せる */
.weeeeb-stack {
	--weeeeb-stack-top: calc(var(--wp--custom--header-height, 72px) + 1.5rem);
	--weeeeb-stack-step: 1.25rem;
}

.weeeeb-stack__card {
	position: sticky;
	top: var(--weeeeb-stack-top);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
	min-height: min(28rem, 70vh);
	margin: 0 0 clamp(2rem, 8vh, 5rem) !important;
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid oklch(from var(--wp--preset--color--contrast) l c h / 0.1);
	border-radius: calc(var(--wp--custom--radius, 8px) * 2);
	background: var(--wp--preset--color--surface);
	box-shadow: 0 -10px 30px oklch(from var(--wp--preset--color--contrast) l c h / 0.08);
}

.weeeeb-stack__card:last-child {
	margin-bottom: 0 !important;
}

.weeeeb-stack__card:nth-child(2) {
	top: calc(var(--weeeeb-stack-top) + var(--weeeeb-stack-step));
}

.weeeeb-stack__card:nth-child(3) {
	top: calc(var(--weeeeb-stack-top) + var(--weeeeb-stack-step) * 2);
}

.weeeeb-stack__card:nth-child(4) {
	top: calc(var(--weeeeb-stack-top) + var(--weeeeb-stack-step) * 3);
}

.weeeeb-stack__card:nth-child(5) {
	top: calc(var(--weeeeb-stack-top) + var(--weeeeb-stack-step) * 4);
}

.weeeeb-stack__body > * {
	margin-block: 0;
}

.weeeeb-stack__body > * + * {
	margin-top: 1rem;
}

.weeeeb-stack__num {
	color: var(--weeeeb-accent-text, var(--wp--preset--color--accent));
	font-family: var(--wp--preset--font-family--en);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 700;
	line-height: 1;
}

.weeeeb-stack__title {
	font-size: var(--wp--preset--font-size--x-large);
}

.weeeeb-stack__media {
	margin: 0;
}

.weeeeb-stack__media img {
	display: block;
	width: 100%;
	border-radius: var(--wp--custom--radius, 8px);
}

@media (max-width: 781px) {

	.weeeeb-stack {
		--weeeeb-stack-step: 0.75rem;
	}

	/* スマホ：カードが画面に収まるよう写真を横長にし、次のカードが重なるまでの間を広げて、文章を読み終えられるようにする */
	.weeeeb-stack__card {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
		min-height: 0;
		margin-bottom: 30vh !important;
	}

	.weeeeb-stack__media {
		grid-row: 1;
	}

	.weeeeb-stack__media img {
		aspect-ratio: 16 / 9 !important;
	}

	.weeeeb-stack__num {
		font-size: 2.25rem;
	}
}

/* ---- 診療時間（大きな文字）と電話（weeeeb/hours-big） ---- */
.weeeeb-hours-big__title {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--wp--preset--color--secondary);
	font-size: 1.375rem;
}

.weeeeb-hours-big__title + .weeeeb-hours-big__row,
.weeeeb-hours-big__note + .weeeeb-hours-big__title {
	margin-top: 0;
}

.weeeeb-hours-big__note + .weeeeb-hours-big__title {
	margin-top: 2rem;
}

/* 見出しのアイコン（時計・カレンダー）。線のアイコンを、文字の色で塗る */
.weeeeb-hours-big__title::before,
.weeeeb-hours-big__links .wp-block-button__link::before {
	content: "";
	display: block;
	flex: none;
	width: 1.75rem;
	height: 1.75rem;
	background: currentcolor;
	-webkit-mask: var(--weeeeb-icon) center / contain no-repeat;
	mask: var(--weeeeb-icon) center / contain no-repeat;
}

.is-clock::before {
	--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
}

.is-closed::before {
	--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M10 13l4 4M14 13l-4 4'/%3E%3C/svg%3E");
}

.is-calendar .wp-block-button__link::before {
	--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M7 14h2M11 14h2M15 14h2M7 17h2M11 17h2'/%3E%3C/svg%3E");
}

.is-map .wp-block-button__link::before {
	--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.is-mail .wp-block-button__link::before {
	--weeeeb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

.weeeeb-hours-big__title::before {
	color: var(--wp--preset--color--primary);
}

.weeeeb-hours-big__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.5rem;
	align-items: baseline;
	margin: 0.5rem 0;
}

.weeeeb-hours-big__day {
	min-width: 4em;
	font-weight: 700;
	letter-spacing: 0.2em;
}

.weeeeb-hours-big__time {
	font-family: var(--wp--preset--font-family--en, inherit);
	font-size: clamp(1.375rem, 2.6vw, 2rem);
	font-weight: 700;
	letter-spacing: 0.02em;
}

.weeeeb-hours-big__holiday {
	font-size: 1.125rem;
	font-weight: 700;
}

.weeeeb-hours-big__contact {
	align-self: start;
	padding: 2rem 1.5rem;
	border-radius: var(--wp--custom--radius, 4px);
	background: var(--wp--preset--color--surface, #fff);
	box-shadow: 0 8px 32px rgb(0 0 0 / 0.08);
}

.weeeeb-hours-big__contact-label {
	font-weight: 700;
}

.weeeeb-hours-big__tel .wp-block-button__link {
	border: 0 !important;
	background: none !important;
	color: var(--wp--preset--color--primary) !important;
	font-family: var(--wp--preset--font-family--en, inherit);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
}

.weeeeb-hours-big__tel .wp-block-button__link::before {
	content: "Tel.";
	margin-right: 0.375rem;
	font-size: 0.5em;
}

.weeeeb-hours-big__links {
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.weeeeb-hours-big__links .wp-block-button {
	flex: 1 1 0;
}

.weeeeb-hours-big__links .wp-block-button__link {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: center;
	width: 100%;
	padding: 1rem 0.5rem;
	border-color: var(--wp--preset--color--secondary) !important;
	border-radius: var(--wp--custom--radius, 4px);
	font-size: 0.875rem;
}

.weeeeb-hours-big__links .wp-block-button__link::before {
	width: 2rem;
	height: 2rem;
	color: var(--wp--preset--color--primary);
}

/* ---- 写真の見出し（weeeeb/photo-heading）。写真をモノクロにして、テーマカラーを重ねる ---- */
.weeeeb-photo-heading {
	overflow: hidden;
	border-radius: var(--wp--custom--radius, 4px);
}

.weeeeb-photo-heading .wp-block-cover__image-background {
	filter: grayscale(1) contrast(1.05);
}

.weeeeb-photo-heading .wp-block-cover__background {
	mix-blend-mode: multiply;
}

/* ---- お知らせの帯（サイト情報の「お知らせの帯」。ヘッダーの上に1行） ---- */
.weeeeb-notice-bar {
	padding: 0.5rem var(--wp--style--root--padding-right, 1rem) 0.5rem var(--wp--style--root--padding-left, 1rem);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.06em;
	text-align: center;
}

.weeeeb-notice-bar__text {
	margin: 0;
}

.weeeeb-notice-bar a {
	color: inherit;
	text-underline-offset: 0.2em;
}

/* ---- ロゴ（サイト情報の「ロゴ」。高さは --weeeeb-logo-h・--weeeeb-logo-h-sp） ---- */
.wp-block-site-logo img {
	width: auto !important;
	max-width: min(60vw, 320px);
	height: var(--weeeeb-logo-h, 40px) !important;
	object-fit: contain;
}

.wp-block-site-logo .weeeeb-logo-white {
	display: none;
}

/* 「ロゴだけ」：ヘッダーのサイト名（文字）を隠す（ロゴの代わりの文字がサイト名） */
.weeeeb-logo-only .weeeeb-header .wp-block-site-title {
	display: none;
}

/* 暗い背景（写真に重ねるヘッダー・すりガラス・濃い色のフッター）：白抜きのロゴに入れ替える。なければ白く塗りつぶす */
:is(.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled), .weeeeb-header--glass, .weeeeb-footer:is(.has-contrast-background-color, .has-primary-background-color)) .wp-block-site-logo.has-white-logo img:not(.weeeeb-logo-white) {
	display: none;
}

:is(.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled), .weeeeb-header--glass, .weeeeb-footer:is(.has-contrast-background-color, .has-primary-background-color)) .wp-block-site-logo.has-white-logo .weeeeb-logo-white {
	display: block;
}

:is(.wp-site-blocks:has(> main > .wp-block-post-content > :is(.wp-block-cover.alignfull, .weeeeb-slider):first-child) .weeeeb-header--overlay:not(.is-scrolled), .weeeeb-header--glass, .weeeeb-footer:is(.has-contrast-background-color, .has-primary-background-color)) .wp-block-site-logo:not(.has-white-logo) img {
	filter: brightness(0) invert(1);
}

@media (max-width: 600px) {

	.wp-block-site-logo img {
		height: var(--weeeeb-logo-h-sp, 32px) !important;
	}
}
