@charset "UTF-8";
/*
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELL の子テーマ（Newborn Photo サイト用カスタマイズ）
    Template: swell
    Version: 1.0.0
    Author: focus_newbornphoto
    Text Domain: swell_child
    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================================
   全体フォント：Klee One（手書き風ゴシック）
   ============================================================ */
:root {
	--swl-ff--default: "Klee One", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
}
html, body,
button, input, select, textarea {
	font-family: "Klee One", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
	font-feature-settings: "palt";
}

/* ============================================================
   撮影アイテム（items）SWELLタブの装飾強化
   ============================================================ */
.swell-block-tab {
	position: relative;
	padding: 18px 14px 22px;
	background: linear-gradient(180deg, #FBFAF8 0%, #F4EFEA 100%);
	border-radius: 16px;
	box-shadow: inset 0 0 0 1px rgba(229, 222, 212, 0.7), 0 1px 0 #fff inset;
}
.swell-block-tab > .c-tabList {
	gap: 8px;
	background: transparent;
	border-bottom: 1px dashed #D9CFC1;
	padding-bottom: 14px;
	margin-bottom: 22px;
	justify-content: center;
}
.swell-block-tab > .c-tabList .c-tabList__item {
	flex: 0 1 auto;
}
.swell-block-tab > .c-tabList .c-tabList__button {
	position: relative;
	background: #fff;
	color: #6B7180;
	border: 1px solid #E5DED4;
	border-radius: 100px;
	padding: 14px 28px 14px 38px;
	font-family: "Klee One", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.3;
	transition: all .25s ease;
	box-shadow: 0 1px 0 rgba(255,255,255,.9) inset, 0 2px 6px rgba(123,146,172,0.06);
}
.swell-block-tab > .c-tabList .c-tabList__button::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #D9CFC1;
	transform: translateY(-50%);
	transition: background .25s ease, transform .25s ease;
}
.swell-block-tab > .c-tabList .c-tabList__button:hover {
	color: #3D434E;
	border-color: #C9D2DC;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(123,146,172,0.14);
}
.swell-block-tab > .c-tabList .c-tabList__button:hover::before {
	background: #AEB9C7;
}
.swell-block-tab > .c-tabList .c-tabList__button[aria-selected="true"] {
	background: linear-gradient(180deg, #8FA2B8 0%, #7B92AC 100%);
	color: #fff;
	border-color: #7B92AC;
	box-shadow: 0 6px 16px rgba(123,146,172,0.30), 0 1px 0 rgba(255,255,255,.25) inset;
}
.swell-block-tab > .c-tabList .c-tabList__button[aria-selected="true"]::before {
	background: #fff;
	box-shadow: 0 0 0 2px rgba(255,255,255,0.35);
}
.swell-block-tab > .c-tabList .c-tabList__button[aria-selected="true"]::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -19px;
	transform: translateX(-50%) rotate(45deg);
	width: 10px;
	height: 10px;
	background: #fff;
	border-left: 1px dashed #D9CFC1;
	border-top: 1px dashed #D9CFC1;
}
.swell-block-tab > .c-tabBody {
	background: #fff;
	border-radius: 12px;
	padding: 22px 18px;
	box-shadow: 0 4px 18px rgba(61,67,78,0.04);
}
.swell-block-tab > .c-tabBody .c-tabBody__item > p:first-of-type {
	text-align: center;
	color: #5C6573;
	font-size: 14.5px;
	line-height: 1.9;
	margin: 4px auto 22px;
	max-width: 640px;
}
.swell-block-tab > .c-tabBody .wp-block-gallery {
	gap: 14px !important;
}
.swell-block-tab > .c-tabBody .wp-block-image {
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(61,67,78,0.06);
	transition: transform .35s ease, box-shadow .35s ease;
}
.swell-block-tab > .c-tabBody .wp-block-image:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgba(61,67,78,0.12);
}
.swell-block-tab > .c-tabBody .wp-block-image img {
	border-radius: 0 !important;
	display: block;
}

/* SP: タブをコンパクトに */
@media (max-width: 600px) {
	.swell-block-tab {
		padding: 14px 10px 18px;
		border-radius: 12px;
	}
	.swell-block-tab > .c-tabList {
		gap: 6px;
		padding-bottom: 12px;
		margin-bottom: 18px;
		flex-wrap: wrap;
	}
	.swell-block-tab > .c-tabList .c-tabList__button {
		padding: 11px 18px 11px 30px;
		font-size: 13.5px;
		letter-spacing: 0.04em;
	}
	.swell-block-tab > .c-tabList .c-tabList__button::before {
		left: 14px;
		width: 7px;
		height: 7px;
	}
	.swell-block-tab > .c-tabBody {
		padding: 16px 12px;
	}
}

/* ============================================================
   ボタン（core/button）ブランド統一
   - 背景未指定 → くすみブルー塗りボタン
   - ボーダー付き未塗 → アウトラインボタン
   - hover で浮き上がり + 色が反転 or 暗くなる
   ============================================================ */
.wp-block-button .wp-block-button__link {
	transition: background-color .25s ease, color .25s ease, border-color .25s ease, filter .25s ease, transform .25s ease, box-shadow .25s ease !important;
	will-change: transform;
}

/* ① 塗りつぶしボタン（背景未指定）→ くすみブルー */
.wp-block-button .wp-block-button__link:not(.has-background):not(.has-border-color) {
	background-color: #7B92AC !important;
	color: #fff;
	box-shadow: 0 4px 12px rgba(123, 146, 172, 0.22);
}
.wp-block-button .wp-block-button__link:not(.has-background):not(.has-border-color):hover {
	background-color: #6A82A0 !important;
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(123, 146, 172, 0.38);
}

/* ② アウトラインボタン（ボーダーあり・背景なし）→ 透明 → hover で塗りに反転 */
.wp-block-button .wp-block-button__link.has-border-color:not(.has-background) {
	background-color: transparent !important;
}
.wp-block-button .wp-block-button__link.has-border-color:not(.has-background):hover {
	background-color: #7B92AC !important;
	color: #fff !important;
	border-color: #7B92AC !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(123, 146, 172, 0.32);
}

/* ③ 明示的に背景指定があるボタン（LINE緑など）はそのまま尊重 → hover で僅かに沈み込み */
.wp-block-button .wp-block-button__link.has-background:hover {
	filter: brightness(0.93);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
}

/* ④ 救済: 白アウトライン×白文字（背景未指定）→ くすみブルー塗りに矯正 */
.wp-block-button.is-style-outline .wp-block-button__link[style*="color:#ffffff"]:not(.has-background),
.wp-block-button.is-style-outline .wp-block-button__link[style*="color:#FFFFFF"]:not(.has-background),
.wp-block-button .wp-block-button__link[style*="color:#ffffff"][style*="border-color:#ffffff"]:not(.has-background),
.wp-block-button .wp-block-button__link[style*="color:#FFFFFF"][style*="border-color:#FFFFFF"]:not(.has-background) {
	background-color: #7B92AC !important;
	border-color: #7B92AC !important;
	color: #ffffff !important;
	box-shadow: 0 4px 12px rgba(123, 146, 172, 0.22);
}
.wp-block-button.is-style-outline .wp-block-button__link[style*="color:#ffffff"]:not(.has-background):hover,
.wp-block-button.is-style-outline .wp-block-button__link[style*="color:#FFFFFF"]:not(.has-background):hover,
.wp-block-button .wp-block-button__link[style*="color:#ffffff"][style*="border-color:#ffffff"]:not(.has-background):hover,
.wp-block-button .wp-block-button__link[style*="color:#FFFFFF"][style*="border-color:#FFFFFF"]:not(.has-background):hover {
	background-color: #6A82A0 !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(123, 146, 172, 0.38);
}

/* ⑤ 色付き背景セクション（#contact 等）の中ではアウトラインボタンを白アウトラインのまま維持
   .is-style-outline スコープ＋:not(.has-background) で塗りつぶしの LINE ボタンには影響させない */
#contact .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background) {
	background-color: transparent !important;
	border: 1px solid #ffffff !important;
	color: #ffffff !important;
	box-shadow: none !important;
}
#contact .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background):hover {
	background-color: #ffffff !important;
	color: #7B92AC !important;
	border-color: #ffffff !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.22) !important;
}
/* LINE（白塗り）ボタン：has-background のインラインカラーを尊重しつつ hover は穏やかに */
#contact .wp-block-button .wp-block-button__link.has-background {
	background-color: #ffffff !important;
	color: #5F7287 !important;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
#contact .wp-block-button .wp-block-button__link.has-background:hover {
	filter: brightness(0.96);
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.26);
}

/* ⑥ ボタングループのギャップを広く（窮屈な8pxを上書き）*/
.wp-block-buttons.is-layout-flex,
.wp-block-buttons {
	gap: 16px !important;
	row-gap: 16px !important;
	column-gap: 16px !important;
}
@media (max-width: 600px) {
	.wp-block-buttons.is-layout-flex,
	.wp-block-buttons {
		gap: 12px !important;
		row-gap: 12px !important;
		column-gap: 12px !important;
	}
}

/* ============================================================
   core/cover ブロックの背景画像を正しく敷く
   （wp-block-cover__image-background が inline 表示になる問題の修正）
   ============================================================ */
.wp-block-cover,
.wp-block-cover-image {
	position: relative !important;
	overflow: hidden;
}
.wp-block-cover img.wp-block-cover__image-background,
.wp-block-cover video.wp-block-cover__video-background,
.wp-block-cover-image img.wp-block-cover__image-background {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	z-index: 0;
	display: block !important;
}
/* オーバーレイの上に正しくテキストが乗るように */
.wp-block-cover > .wp-block-cover__inner-container,
.wp-block-cover > h1,
.wp-block-cover > h2,
.wp-block-cover > h3,
.wp-block-cover > p {
	position: relative;
	z-index: 1;
}
/* 背景画像の前面に半透明オーバーレイ */
.wp-block-cover::before,
.wp-block-cover .wp-block-cover__background {
	z-index: 0;
}

/* ============================================================
   OTHERギャラリーのスライダー化（プランページ/七五三・お宮参り）
   PC: 3枚を均等に横並び（snap可能）
   SP: 1枚強表示で次の画像がチラ見え、横スワイプで切替
   ============================================================ */
.fnp-other-slider {
	display: flex !important;
	flex-wrap: nowrap !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	gap: 14px !important;
	padding: 4px 4px 12px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	scroll-padding: 4px;
	/* スクロールバー非表示（Firefox / IE / Webkit） */
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.fnp-other-slider::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}
.fnp-other-slider > figure,
.fnp-other-slider > .wp-block-image {
	flex: 0 0 84%;
	margin: 0 !important;
	scroll-snap-align: center;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(61, 67, 78, 0.08);
}
.fnp-other-slider > figure img,
.fnp-other-slider > .wp-block-image img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 0 !important;
}
@media (min-width: 768px) {
	.fnp-other-slider > figure,
	.fnp-other-slider > .wp-block-image {
		flex: 0 0 calc((100% - 28px) / 3);
		scroll-snap-align: start;
	}
}

/* ============================================================
   比較表（TOP）SP対応
   テーブルのまま横スクロールで全体閲覧可能に
   ============================================================ */
.fnp-compare-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
@media (max-width: 600px) {
	.fnp-compare-wrap {
		/* スクロールできることをユーザーに示すヒント */
		position: relative;
		border-radius: 8px;
	}
	.fnp-compare-wrap::after {
		content: "← スクロール →";
		display: block;
		text-align: center;
		font-size: 11px;
		color: #9AA0A8;
		letter-spacing: 0.1em;
		margin-top: 8px;
	}
	table.fnp-compare {
		min-width: 620px !important;
	}
	table.fnp-compare th,
	table.fnp-compare td {
		padding: 10px 12px !important;
		font-size: 12.5px !important;
	}
}

/* ============================================================
   Concept「3つの約束」の 01〜03 数字を大きくエレガントに
   （Cormorant Garamond Light Italic）
   ============================================================ */
#concept p[style*="font-size:13px"][style*="letter-spacing:0.2em"] {
	font-family: "Cormorant Garamond", "Hiragino Mincho ProN", "Yu Mincho", serif !important;
	font-size: clamp(52px, 7vw, 76px) !important;
	font-weight: 300 !important;
	letter-spacing: 0 !important;
	line-height: 1 !important;
	font-style: italic;
	margin-top: 28px !important;
	margin-bottom: 10px !important;
}

/* ============================================================
   英語の見出し（eyebrow: PHOTOGRAPHER'S VOICE 等）に Damion
   ============================================================ */
p[style*="letter-spacing:0.18em"][style*="font-size:12px"],
p[style*="letter-spacing:0.2em"][style*="font-size:12px"] {
	font-family: "Bad Script", "Klee One", cursive !important;
	letter-spacing: 0.02em !important;
	font-size: clamp(22px, 2.4vw, 28px) !important;
	font-weight: 400 !important;
	font-style: normal;
	line-height: 1.35;
}

/* ============================================================
   ヘッダー「お問い合わせ」をピル型ボタン化＋ハンバーガー強調
   ============================================================ */
/* グローバルメニューの「お問い合わせ」項目をピル型CTA化（PCで高さ半分・追従ヘッダー対応） */
.l-header .menu-item-160,
.l-fixHeader .menu-item-160 {
	display: flex !important;
	align-items: center !important;  /* 親liの中で中央配置 */
}
.l-header .menu-item-160 > a,
.l-fixHeader .menu-item-160 > a,
.l-header li.menu-item a[href*="/contact"],
.l-fixHeader li.menu-item a[href*="/contact"],
.c-gnav li.menu-item a[href*="/contact"] {
	background-color: #7B92AC !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 8px 20px !important;
	margin: 0 8px 0 4px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1.2 !important;
	height: 38px !important;
	min-height: 38px !important;
	max-height: 38px !important;  /* ヘッダー縦いっぱいに伸びるのを防ぐ */
	align-self: center !important;  /* flex親内で中央配置 */
	box-shadow: 0 2px 8px rgba(123, 146, 172, 0.22);
}
.l-header .menu-item-160 > a:hover,
.l-fixHeader .menu-item-160 > a:hover,
.l-header li.menu-item a[href*="/contact"]:hover,
.l-fixHeader li.menu-item a[href*="/contact"]:hover,
.c-gnav li.menu-item a[href*="/contact"]:hover {
	background-color: #6A82A0 !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(123, 146, 172, 0.42);
}
/* SWELLメニュー項目が aria-current で太く見える対策 */
.l-header .menu-item-160 > a::before,
.l-header .menu-item-160 > a::after,
.l-fixHeader .menu-item-160 > a::before,
.l-fixHeader .menu-item-160 > a::after {
	display: none !important;
}

/* ハンバーガーメニューボタン強調（SP/タブレット） */
.l-header__menuBtn .c-iconBtn.-menuBtn,
.l-header__menuBtn button {
	background-color: #7B92AC !important;
	color: #fff !important;
	border-radius: 50% !important;
	width: 44px !important;
	height: 44px !important;
	box-shadow: 0 4px 12px rgba(123, 146, 172, 0.30);
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.l-header__menuBtn .c-iconBtn.-menuBtn:hover,
.l-header__menuBtn button:hover {
	background-color: #6A82A0 !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(123, 146, 172, 0.45);
}
.l-header__menuBtn .c-iconBtn__icon,
.l-header__menuBtn i {
	color: #fff !important;
	font-size: 22px !important;
}

/* SPメニュー（ハンバーガー開）内のお問い合わせをCTAボタン化 */
.p-spMenu .menu-item-160,
.p-spMenu li.menu-item:has(a[href*="/contact"]) {
	background: transparent !important;
	border: none !important;
	margin-top: 14px !important;
}
.p-spMenu .menu-item-160 > a,
.p-spMenu li.menu-item a[href*="/contact"] {
	background-color: #7B92AC !important;
	color: #fff !important;
	border-radius: 100px !important;
	padding: 16px 22px !important;
	margin: 12px 18px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-align: center !important;
	display: block !important;
	box-shadow: 0 6px 16px rgba(123, 146, 172, 0.32);
	transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease;
	font-size: 15px !important;
}
.p-spMenu .menu-item-160 > a:active,
.p-spMenu .menu-item-160 > a:hover,
.p-spMenu li.menu-item a[href*="/contact"]:active,
.p-spMenu li.menu-item a[href*="/contact"]:hover {
	background-color: #6A82A0 !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(123, 146, 172, 0.45);
}
/* SWELLメニュー項目の左ボーダー/区切り線を消す */
.p-spMenu .menu-item-160 > a::before,
.p-spMenu .menu-item-160 > a::after,
.p-spMenu li.menu-item a[href*="/contact"]::before,
.p-spMenu li.menu-item a[href*="/contact"]::after {
	display: none !important;
}

/* ============================================================
   ブロック復元後のコンテンツ幅制約を復元
   alignfull グループの内側コンテナが失われたケースを救済
   ============================================================ */
.post_content > .wp-block-group.alignfull > *:not(.alignfull):not(.alignwide):not(.wp-block-cover):not(.wp-block-group__inner-container) {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}
.post_content > .wp-block-group.alignfull > .wp-block-columns,
.post_content > .wp-block-group.alignfull > .wp-block-gallery,
.post_content > .wp-block-group.alignfull > .wp-block-buttons,
.post_content > .wp-block-group.alignfull > .alignwide,
.post_content .wp-block-gallery,
.post_content .swell-block-tab,
.post_content .wp-block-buttons {
	max-width: 1080px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ギャラリーの3列レイアウトを強制（WP core CSSが効かない場合の救済）
   ※ fnp-other-slider はスライダー専用CSSが優先されるよう除外 */
.post_content .wp-block-gallery.columns-3:not(.fnp-other-slider) {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 14px !important;
}
.post_content .wp-block-gallery.columns-3:not(.fnp-other-slider) > .wp-block-image {
	flex: 0 0 calc((100% - 28px) / 3) !important;
	max-width: calc((100% - 28px) / 3) !important;
	margin: 0 !important;
}
.post_content .wp-block-gallery.columns-2:not(.fnp-other-slider) {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 14px !important;
}
.post_content .wp-block-gallery.columns-2:not(.fnp-other-slider) > .wp-block-image {
	flex: 0 0 calc((100% - 14px) / 2) !important;
	max-width: calc((100% - 14px) / 2) !important;
	margin: 0 !important;
}
@media (max-width: 600px) {
	.post_content .wp-block-gallery.columns-3:not(.fnp-other-slider) > .wp-block-image {
		flex: 0 0 calc((100% - 14px) / 2) !important;
		max-width: calc((100% - 14px) / 2) !important;
	}
	.post_content .wp-block-gallery.columns-2:not(.fnp-other-slider) > .wp-block-image {
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}
.post_content > .wp-block-group.alignfull > .alignfull {
	max-width: none;
}
/* 既に inner-container がある場合はそちらに制約を */
.post_content > .wp-block-group.alignfull > .wp-block-group__inner-container {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

/* SWELLタブはコンテンツ幅を広めに（タブ内のギャラリーが3列で並ぶように） */
.post_content > .wp-block-group.alignfull > .swell-block-tab,
.post_content > .wp-block-group.alignfull > .wp-block-group__inner-container > .swell-block-tab,
.post_content .swell-block-tab {
	max-width: 1080px !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* タブ内のギャラリーが3列で並ぶよう強制 */
.swell-block-tab .wp-block-gallery.columns-3 {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 14px !important;
}
.swell-block-tab .wp-block-gallery.columns-3 > .wp-block-image {
	flex: 0 0 calc((100% - 28px) / 3) !important;
	max-width: calc((100% - 28px) / 3) !important;
	margin: 0 !important;
}
@media (max-width: 600px) {
	.swell-block-tab .wp-block-gallery.columns-3 > .wp-block-image {
		flex: 0 0 calc((100% - 14px) / 2) !important;
		max-width: calc((100% - 14px) / 2) !important;
	}
}

/* ============================================================
   サイト全体：wp-block-columns を確実に flex 横並びに
   （is-layout-flex クラスが無い旧マークアップ救済）
   PC（≥782px）= 横並び nowrap / SP = 縦積み
   ============================================================ */
.wp-block-columns:not(.is-layout-flex):not(.is-layout-grid) {
	display: flex !important;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 2em;
	align-items: flex-start;
}
.wp-block-columns:not(.is-layout-flex):not(.is-layout-grid) > .wp-block-column {
	flex: 1 1 0;
	min-width: 0;
}
/* 垂直中央寄せのカラム（私の想いなど）はalign-itemsを上書き */
.wp-block-columns.are-vertically-aligned-center:not(.is-layout-flex) {
	align-items: center;
}
@media (max-width: 781px) {
	.wp-block-columns:not(.is-layout-flex):not(.is-layout-grid) {
		flex-direction: column;
		flex-wrap: wrap;
		gap: 32px;
	}
	.wp-block-columns:not(.is-layout-flex):not(.is-layout-grid) > .wp-block-column {
		flex: 1 1 100% !important;
	}
}

/* ============================================================
   Concept「3つの約束」SP時の並び順を 数字→写真→タイトル→テキスト に
   （PCは 写真→数字→タイトル→テキスト のまま）
   ============================================================ */
@media (max-width: 800px) {
	#concept .wp-block-column { display: flex; flex-direction: column; }
	#concept .wp-block-column > .wp-block-image { order: 2; }
	#concept .wp-block-column > p:first-of-type { order: 1; }
	#concept .wp-block-column > h3 { order: 3; }
	#concept .wp-block-column > p:last-of-type { order: 4; }
}

/* ============================================================
   下層ページのタイトルヒーロー（高さを確保して切れを和らげる）
   ============================================================ */
.l-topTitleArea,
.l-topTitleArea__img {
	height: clamp(520px, 58vw, 780px) !important;
}
.l-topTitleArea__img {
	object-fit: cover;
	object-position: center 38%;
}
@media (max-width: 768px) {
	.l-topTitleArea,
	.l-topTitleArea__img {
		height: clamp(240px, 50vw, 360px) !important;
	}
}

/* ============================================================
   Scroll fade-in (ふわっと表示)
   ============================================================ */
.js-anime .wp-block-group.alignfull,
.js-anime .wp-block-cover.alignfull {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 1s ease, transform 1s ease;
	will-change: opacity, transform;
}
.js-anime .wp-block-group.alignfull.is-visible,
.js-anime .wp-block-cover.alignfull.is-visible {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.js-anime .wp-block-group.alignfull,
	.js-anime .wp-block-cover.alignfull {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ============================================================
   Contact Form 7 — focus newborn photo
   ============================================================ */
.cf7form {
	max-width: 720px;
	margin: 0 auto;
	text-align: left;
}
.cf7-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 22px 24px;
}
.cf7form .cf7-field { margin: 0; }
.cf7form .cf7-full { grid-column: 1 / -1; margin-top: 22px; }
.cf7-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #3D434E;
	margin-bottom: 8px;
	letter-spacing: .02em;
}
.cf7-req {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: #fff;
	background: #7B92AC;
	border-radius: 100px;
	padding: 2px 10px;
	margin-left: 6px;
	vertical-align: middle;
	letter-spacing: .05em;
}
.cf7form input[type="text"],
.cf7form input[type="email"],
.cf7form input[type="tel"],
.cf7form input[type="date"],
.cf7form select,
.cf7form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 16px;
	border: 1px solid #E5DED4;
	border-radius: 8px;
	background-color: #fff;
	font-size: 16px;
	color: #3D434E;
	line-height: 1.6;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.cf7form input[type="text"],
.cf7form input[type="email"],
.cf7form input[type="tel"],
.cf7form select,
.cf7form textarea {
	-webkit-appearance: none;
	appearance: none;
}
.cf7form select {
	background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2012%208'%3E%3Cpath%20fill%3D'%237B92AC'%20d%3D'M6%208L0%200h12z'%2F%3E%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	background-size: 11px;
	padding-right: 42px;
	cursor: pointer;
}
.cf7form textarea { min-height: 168px; resize: vertical; }
.cf7form input:focus,
.cf7form select:focus,
.cf7form textarea:focus {
	outline: none;
	border-color: #7B92AC;
	box-shadow: 0 0 0 3px rgba(123,146,172,.15);
}
.cf7form input::placeholder,
.cf7form textarea::placeholder { color: #BBB6AE; }

.cf7-submit-wrap { text-align: center; margin-top: 36px; }
.cf7form .wpcf7-submit {
	display: inline-block;
	min-width: 250px;
	padding: 16px 44px;
	border: none;
	border-radius: 100px;
	background: #7B92AC;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .08em;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
	box-shadow: 0 8px 20px rgba(123,146,172,.30);
}
.cf7form .wpcf7-submit:hover {
	background: #6A82A0;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(123,146,172,.42);
}
.cf7form .wpcf7-spinner { margin: 12px auto 0; display: block; }

.cf7form .wpcf7-not-valid { border-color: #d98c8c !important; }
.wpcf7 .wpcf7-not-valid-tip { color: #c0392b; font-size: 12px; margin-top: 5px; }
.wpcf7 .wpcf7-response-output {
	border-radius: 8px;
	padding: 14px 18px;
	font-size: 14px;
	margin: 28px 0 0 !important;
}

@media (max-width: 599px) {
	.cf7-grid { grid-template-columns: 1fr; gap: 18px; }
}



/* ==========================================================
 *  Concept #concept - 3つの約束 SP順序変更
 *  PCはそのまま（画像→番号→見出し→説明）
 *  SPは: 番号 → 見出し → 画像 → 説明 の順に明示的に並べ替え
 * ========================================================== */
@media (max-width: 781px) {
  #concept .wp-block-columns > .wp-block-column {
    display: flex;
    flex-direction: column;
  }
  /* 空のラッパー段落を非表示にして詰める */
  #concept .wp-block-columns > .wp-block-column > p:empty {
    display: none !important;
  }
  /* 番号(01,02,03) - .u-mb-ctrl/.u-mb-20 classで識別 */
  #concept .wp-block-columns > .wp-block-column > p.u-mb-ctrl,
  #concept .wp-block-columns > .wp-block-column > p.u-mb-20 {
    order: 1 !important;
    margin-top: 8px !important;
    margin-bottom: 4px !important;
  }
  /* 見出し(h3) */
  #concept .wp-block-columns > .wp-block-column > h3.wp-block-heading {
    order: 2 !important;
    margin-top: 4px !important;
    margin-bottom: 12px !important;
  }
  /* 画像(figure) */
  #concept .wp-block-columns > .wp-block-column > figure,
  #concept .wp-block-columns > .wp-block-column > .wp-block-image {
    order: 3 !important;
    margin-top: 8px !important;
    margin-bottom: 12px !important;
  }
  /* 説明文(centered, NOT u-mb-ctrl/u-mb-20) */
  #concept .wp-block-columns > .wp-block-column > p.has-text-align-center:not(.u-mb-ctrl):not(.u-mb-20),
  #concept .wp-block-columns > .wp-block-column > p:not(.wp-block-paragraph):not(.u-mb-ctrl):not(.u-mb-20):not(:empty) {
    order: 4 !important;
    margin-top: 0 !important;
  }
}




/* ==========================================================
 *  FAQ末尾の「ご利用ガイドを見る」ボタンをSPで中央寄せ
 *  単独の.wp-block-buttonはデフォルトで左寄りなので、
 *  SPだけ margin auto + display block で中央配置
 * ========================================================== */
@media (max-width: 599px) {
  #faq .wp-block-button.is-style-outline--16 {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
    max-width: 100%;
  }
}



/* ==========================================================
 *  撮影アイテムページのタブを中央寄せ
 *  SWELL is-style-default のデフォルトは左寄り（flex-start）
 *  これを center に上書きして横並び＆中央配置
 * ========================================================== */
.swell-block-tab > .c-tabList {
  justify-content: center !important;
}
.swell-block-tab.is-style-default > .c-tabList {
  justify-content: center !important;
}



/* ==========================================================
 *  SP: セクション間&セクション内の余白を詰める
 *  - alignfullセクションのpadding を48pxに統一
 *  - 空のpタグ(wp:paragraph空ブロック)を潰す
 *  - 英語ラベル(eyebrow) と日本語h2の間隔を詰める
 *  - 生HTMLパターン(About PROFILE等)とブロックエディタパターン両対応
 * ========================================================== */
@media (max-width: 599px) {
  /* セクションpadding縮小 */
  .wp-block-group.alignfull[id],
  .wp-block-group.alignfull.has-background,
  .wp-block-group.alignfull[style*=background-color] {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  
  /* 空の<p></p>を潰す */
  .wp-block-group__inner-container > p:empty,
  .wp-block-group__inner-container > .wp-block-paragraph:empty,
  .wp-block-group.alignfull > p:empty {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
    min-height: 0 !important;
  }
  
  /* h2見出しの上余白を縮小 (両パターン対応) */
  .wp-block-group.alignfull > h2.wp-block-heading,
  .wp-block-group.alignfull .wp-block-group__inner-container > h2.wp-block-heading {
    margin-top: 4px !important;
  }
  
  /* eyebrowラベル(英語小文字)の余白を詰める (両パターン対応) */
  .wp-block-group__inner-container > p.wp-block-paragraph,
  .wp-block-group.alignfull > p.has-text-align-center,
  .wp-block-group.alignfull .wp-block-group__inner-container > p.has-text-align-center {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }
  
  /* h2のmargin-bottomも縮小(節間ジャンプ抑制) */
  .wp-block-group.alignfull h2.wp-block-heading {
    margin-bottom: 24px !important;
  }
}




/* ==========================================================
 *  SP: 見出し(h2/h3)の改行を自然に
 *  - word-break: auto-phrase → 日本語文節改行
 *  - text-wrap: balance → 行長バランス
 *  - インライン font-size が指定されている見出しは尊重 (カードラベル等)
 * ========================================================== */
@media (max-width: 599px) {
  /* 改行最適化は全ての見出しに適用 */
  h2.wp-block-heading,
  h3.wp-block-heading,
  .wp-block-group h2,
  .wp-block-group h3,
  .post_title,
  .p-mainVisual__slideTitle,
  .l-mainContent h1,
  .l-mainContent h2,
  .l-mainContent h3 {
    word-break: auto-phrase;
    text-wrap: balance;
    overflow-wrap: break-word;
    line-height: 1.55 !important;
  }
  
  /* font-size override - インライン style にfont-sizeが無いものだけ */
  .wp-block-group h2.wp-block-heading:not([style*=font-size]) {
    font-size: clamp(20px, 5.5vw, 26px) !important;
  }
  .wp-block-group h3.wp-block-heading:not([style*=font-size]) {
    font-size: clamp(15px, 4.5vw, 18px) !important;
  }
  
  /* 下層ページのFV見出し */
  .p-mainVisual__slideTitle {
    font-size: clamp(20px, 6vw, 28px) !important;
    padding-left: 16px;
    padding-right: 16px;
  }
  
  /* MISSION/VISION/MEDIA等のカードラベル(h3): SWELLデフォルト装飾を除去 */
  .wp-block-column[style*=border-radius] h3.wp-block-heading {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    text-decoration: none !important;
  }
  .wp-block-column[style*=border-radius] h3.wp-block-heading::before,
  .wp-block-column[style*=border-radius] h3.wp-block-heading::after {
    display: none !important;
    content: none !important;
  }
  
  /* カードの余白を SP で詰める */
  .wp-block-column[style*=border-radius] {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }
}



/* ==========================================================
 *  撮影アイテムページ: ギャラリー画像の比率統一
 *  - 4:3 aspect ratio に統一
 *  - object-fit:cover でクロップ表示
 * ========================================================== */
.swell-block-tab .wp-block-gallery figure.wp-block-image {
  aspect-ratio: 4/3 !important;
  overflow: hidden;
  margin: 0;
  border-radius: 6px;
}
.swell-block-tab .wp-block-gallery figure.wp-block-image img,
.swell-block-tab .wp-block-gallery figure.wp-block-image picture {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}
.swell-block-tab .wp-block-gallery figure.wp-block-image picture img {
  width: 100%;
  height: 100%;
}



/* ==========================================================
 *  追従LINEボタン（右下フローティング・丸型）
 *  - 円形ボタン: 縦並びでLINEアイコン+「LINEで相談」テキスト
 *  - スクロール100px超で表示
 *  - LINE公式カラー: #06C755
 * ========================================================== */
.fnp-line-fab {
  position: fixed;
  right: 16px;
  bottom: 80px;
  z-index: 9999;
  width: 76px;
  height: 76px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background-color: #06C755;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(6, 199, 85, 0.40);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.92);
  transition: opacity .35s ease, visibility .35s ease, transform .35s ease, background-color .25s ease, box-shadow .25s ease;
  font-family: inherit;
  text-align: center;
  padding: 0;
}
.fnp-line-fab.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.fnp-line-fab:hover,
.fnp-line-fab:focus-visible {
  background-color: #05B14C;
  box-shadow: 0 12px 28px rgba(6, 199, 85, 0.55);
  transform: translateY(-3px) scale(1.02);
}
.fnp-line-fab__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  margin-bottom: 1px;
}
.fnp-line-fab__label {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: #fff;
}
.fnp-line-fab__label br {
  display: block;
}

@media (max-width: 599px) {
  .fnp-line-fab {
    right: 12px;
    bottom: 72px;
    width: 68px;
    height: 68px;
  }
  .fnp-line-fab__icon {
    width: 22px;
    height: 22px;
  }
  .fnp-line-fab__label {
    font-size: 10px;
  }
}

/* SWELLのページトップボタンとの干渉を防ぐ位置調整 */
.p-fixBtnWrap {
  bottom: 16px !important;
}



/* ==========================================================
 *  パフォーマンス最適化
 *  - 画像 content-visibility で初期描画を高速化
 *  - Instagram フィードを画面外で計算スキップ
 * ========================================================== */
.wp-block-image {
  contain-intrinsic-size: auto 400px;
}

/* Instagram フィードは可視時のみレンダリング計算 */
#sb_instagram {
  content-visibility: auto;
  contain-intrinsic-size: auto 600px;
}

/* セクション群も同じ最適化（ファーストビュー以外） */
#flow,
#plan,
#faq,
#instagram,
#contact,
.wp-block-group.alignfull[id]:not(#about):not(#concept) {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}

/* GPU合成でアニメ最適化 */
.fnp-line-fab,
.l-fixHeader {
  will-change: transform, opacity;
  transform: translateZ(0);
}

/* ==========================================================
 *  SWELL Block CSS (fallback for raw HTML blocks)
 *  The page uses swell-block-step / swell-block-faq inside
 *  wp:html blocks, which SWELL's 'load only used CSS'
 *  optimizer does not detect. Include the CSS here so the
 *  blocks always render correctly.
 * ========================================================== */
/* swell-block-step (FLOW section) */
.swell-block-step{--swl-step_arrow_color:#dedede;counter-reset:step}.swell-block-step__item{margin-bottom:0!important;padding:0 0 3em 64px;position:relative}.swell-block-step__item:before{border-left:1px dashed var(--color_border);content:"";display:block;height:100%;left:23px;position:absolute;top:0;width:0}.swell-block-step__item:last-child:before{content:none}.swell-block-step__item .swell-block-step__title{font-weight:700;margin:0;padding:0}.swell-block-step__number{box-sizing:content-box;color:#fff;display:flex;flex-direction:column;height:48px;justify-content:center;left:0;line-height:1;position:absolute;text-align:center;top:0;width:48px}.swell-block-step__number .__label{content:attr(data-label);display:block;font-size:10px;padding-bottom:1px}.swell-block-step__number:after{content:counter(step);counter-increment:step;display:block;font-size:20px}.swell-block-step__number[data-num]:after{content:attr(data-num)}.swell-block-step__number[data-hide] .__label,.swell-block-step__number[data-hide]:after{display:none}[data-num-style=circle] .swell-block-step__number,[data-num-style=circle] .swell-block-step__number .__shape{border-radius:50%}[data-num-style=horizontal] .swell-block-step__number{align-items:flex-end;flex-direction:row}[data-num-style=horizontal] .swell-block-step__number .__label{padding-bottom:4px;padding-right:4px}.swell-block-step__title+.swell-block-step__body{margin-top:1em}.swell-block-step:not(.is-style-big)>.swell-block-step__item:last-child{padding-bottom:0}.swell-block-step:not(.is-style-big):not(.is-style-small)>.swell-block-step__item>.swell-block-step__title{display:flex;flex-direction:column;justify-content:center;min-height:48px}@media not all and (min-width:600px){.swell-block-step:not(.is-style-big):not(.is-style-small)>.swell-block-step__item:before{display:none}.swell-block-step:not(.is-style-big):not(.is-style-small)>.swell-block-step__item>.swell-block-step__body{margin-left:-48px}}.is-style-big>.swell-block-step__item{border-bottom:1px dashed var(--swl-step_arrow_color);padding:2em}@media not all and (min-width:600px){.is-style-big>.swell-block-step__item{padding:2em 1em}}.is-style-big>.swell-block-step__item:first-child{border-top:1px dashed var(--swl-step_arrow_color)}.is-style-big>.swell-block-step__item:before{border:12px solid transparent;border-top:12px solid var(--swl-step_arrow_color);display:block;height:0;left:50%;top:100%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:0}.is-style-big>.swell-block-step__item>.swell-block-step__number{border-radius:0;color:inherit;height:auto;margin:0 auto 1em;position:relative;width:auto}.is-style-big>.swell-block-step__item>.swell-block-step__number .__label{font-size:12px}.is-style-big>.swell-block-step__item>.swell-block-step__number:after{font-size:24px}.is-style-big .swell-block-step__title{text-align:center}.is-style-small .swell-block-step__item{padding:0 0 2em 24px}.is-style-small .swell-block-step__item:before{border-left:2px solid var(--color_border);height:calc(100% - 20px);left:7px;top:18px}.is-style-small .swell-block-step__title{margin-top:.25em;text-align:left}.is-style-small .swell-block-step__body{margin-top:.5em}.is-style-small .swell-block-step__number{align-items:center;color:inherit;flex-direction:row;height:auto;justify-content:flex-start;margin-left:-24px;position:relative;width:auto}.is-style-small .swell-block-step__number .__shape{border:2px solid;box-sizing:border-box;height:16px;margin-right:8px;width:16px}.is-style-small .swell-block-step__number .__label{font-size:12px;opacity:.8;padding:0 2px 0 0}.is-style-small .swell-block-step__number:after{font-size:14px;opacity:.8}.is-style-small [data-hide]+.swell-block-step__title{margin-top:-24px}

/* swell-block-faq (FAQ section) */
.swell-block-faq{--swl-faq_icon_radius:0}.swell-block-faq.-icon-rounded{--swl-faq_icon_radius:10%}.swell-block-faq.-icon-circle{--swl-faq_icon_radius:50%}.swell-block-faq .swell-block-faq__item+.swell-block-faq__item{margin-top:1em}.swell-block-faq .faq_q{font-size:inherit;font-weight:700;line-height:1.5;margin:0;padding:1em 1em 1em 3em;position:relative}.swell-block-faq .faq_q:before{border-radius:var(--swl-faq_icon_radius);bottom:unset;content:"Q";display:block;font-family:Arial,sans-serif;font-weight:400;left:0;line-height:2;position:absolute;text-align:center;top:.75em;width:2em}.swell-block-faq .faq_a{line-height:1.5;padding:1em 1em 1em 3em;position:relative}.swell-block-faq .faq_a:before{border-radius:var(--swl-faq_icon_radius);content:"A";display:block;font-family:Arial,sans-serif;left:0;line-height:2;position:absolute;text-align:center;top:.75em;width:2em}.is-style-faq-border .swell-block-faq__item{padding-left:.5em;padding-right:.5em}.is-style-faq-border .swell-block-faq__item+.swell-block-faq__item{border-top:1px solid var(--color_border);padding-top:1em}.is-style-faq-box .swell-block-faq__item{border:1px solid var(--color_border)}.is-style-faq-box .faq_q{border-bottom:1px dashed var(--color_border)}.is-style-faq-box .faq_a,.is-style-faq-box .faq_q,.is-style-faq-stripe .faq_a,.is-style-faq-stripe .faq_q{padding:1.25em 1em 1.25em 4em}.is-style-faq-box .faq_a:before,.is-style-faq-box .faq_q:before,.is-style-faq-stripe .faq_a:before,.is-style-faq-stripe .faq_q:before{left:1em;position:absolute;top:1em}.is-style-faq-stripe .swell-block-faq__item:not(:last-child){margin-bottom:1.5em}.is-style-faq-stripe .faq_q{background-color:var(--color_gray)}[data-a=col-text] .faq_a:before,[data-q=col-text] .faq_q:before{box-shadow:0 0 0 1px currentcolor}[data-a=fill-text] .faq_a:before,[data-q=fill-text] .faq_q:before{background-color:var(--color_text);color:#fff}[data-a=col-main] .faq_a:before,[data-q=col-main] .faq_q:before{box-shadow:0 0 0 1px currentcolor;color:var(--color_main)}[data-a=fill-main] .faq_a:before,[data-q=fill-main] .faq_q:before{background-color:var(--color_main);color:#fff}[data-q=col-custom] .faq_q:before{box-shadow:0 0 0 1px currentcolor;color:var(--color_faq_q)}[data-a=col-custom] .faq_a:before{box-shadow:0 0 0 1px currentcolor;color:var(--color_faq_a)}[data-q=fill-custom] .faq_q:before{background-color:var(--color_faq_q);color:#fff}[data-a=fill-custom] .faq_a:before{background-color:var(--color_faq_a);color:#fff}

/* ==========================================================
 *  Contact CTA - SP normalize button widths
 *  TOP/下層ページ問わず、中央寄せボタングループをSPで縦並び＆幅統一
 * ========================================================== */
#contact .wp-block-buttons .wp-block-button .wp-block-button__link,
.wp-block-buttons.is-content-justification-center .wp-block-button .wp-block-button__link {
  padding-left: 32px !important;
  padding-right: 32px !important;
}
@media (max-width: 599px) {
  #contact .wp-block-buttons,
  .wp-block-buttons.is-content-justification-center {
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    row-gap: 12px !important;
  }
  #contact .wp-block-buttons > .wp-block-button,
  .wp-block-buttons.is-content-justification-center > .wp-block-button {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
  }
  #contact .wp-block-buttons > .wp-block-button > .wp-block-button__link,
  .wp-block-buttons.is-content-justification-center > .wp-block-button > .wp-block-button__link {
    display: block;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
}

/* swell-block-tab (items page tabs) */
.p-postListTab{margin:4em auto 2em;width:96%}.c-tabList{--the-tab-margin:0;--the-tab-flex:0 1 auto;--the-tab-flex_wrap:nowrap;--the-tab-btn-padding:1em .5em;--the-tab-item-margin:0;display:flex;flex-wrap:var(--the-tab-flex_wrap);justify-content:center;margin:var(--the-tab-margin)!important;position:relative}.swell-block-tab>.c-tabList{list-style:none;padding:0}#content .c-tabList{list-style:none;padding-left:0}@media(min-width:960px){[data-width-pc=auto]>.c-tabList{--the-tab-flex_wrap:wrap;--the-tab-btn-padding:1em}[data-width-pc="25"]>.c-tabList{--the-tab-flex_wrap:wrap;--the-tab-flex:0 0 25%}[data-width-pc=flex-50]>.c-tabList{--the-tab-flex:0 1 50%}[data-width-pc=flex-auto]>.c-tabList{--the-tab-flex:1 1 auto}}@media not all and (min-width:960px){[data-width-sp=auto]>.c-tabList{--the-tab-flex_wrap:wrap;--the-tab-btn-padding:1em}[data-width-sp="50"] .c-tabList{--the-tab-flex_wrap:wrap;--the-tab-flex:0 0 50%}[data-width-sp=flex-50] .c-tabList{--the-tab-flex:0 1 50%}[data-width-sp=flex-auto] .c-tabList{--the-tab-flex:1 1 auto}}.c-tabList::-webkit-scrollbar{background-color:var(--color_gray);box-shadow:inset 0 0 2px 0 rgba(0,0,0,.15);height:11px}.c-tabList::-webkit-scrollbar-thumb{background:hsla(0,0%,78%,.9);background-clip:padding-box;border:solid transparent;border-radius:8px;border-width:3px 3px 4px}.c-tabList .c-tabList__item{flex:var(--the-tab-flex);margin:var(--the-tab-item-margin);text-align:center}.c-tabList__button{border:none;box-sizing:border-box;color:var(--color_text);display:block;font-size:13px;height:100%;line-height:1;padding:var(--the-tab-btn-padding);position:relative;transition:background-color .25s,color .25s;width:100%}@media(min-width:600px){.c-tabList__button{font-size:14px}}.c-tabList__button:hover{outline:none}.is-style-balloon,.is-style-bb,.is-style-simple{--the-tab-margin:0 0 1em}@media not all and (min-width:960px){[data-scroll-sp].swell-block-tab{position:relative}[data-scroll-sp].swell-block-tab:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-animation:FloatHorizontal 3s ease-in-out infinite alternate;animation:FloatHorizontal 3s ease-in-out infinite alternate;background:#fff;border-radius:8px;bottom:100%;box-shadow:0 0 8px rgba(0,0,0,.1);color:#333;content:"";font-family:icomoon!important;font-size:13px;font-weight:400;letter-spacing:-8px;line-height:1;padding:2px 12px 2px 4px;position:absolute;right:-2px}[data-scroll-sp].has-background:after,[data-scroll-sp].has-border:after{bottom:calc(100% - 1.5em);right:4px}[data-scroll-sp]>.c-tabList{-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;justify-content:flex-start;overflow-x:auto;scroll-behavior:smooth;z-index:1}[data-scroll-sp]>.c-tabList .c-tabList__item{flex-shrink:0}[data-scroll-sp].is-style-bb>.c-tabList{--the-tab-item-margin:0 0 4px}}@media(min-width:960px){[data-scroll-pc]>.c-tabList{-webkit-overflow-scrolling:touch;flex-wrap:nowrap!important;justify-content:flex-start;overflow-x:auto;scroll-behavior:smooth;z-index:1}[data-scroll-pc]>.c-tabList .c-tabList__item{flex-shrink:0}[data-scroll-pc].is-style-bb>.c-tabList{--the-tab-item-margin:0 0 4px}}.is-style-default>.c-tabList{justify-content:flex-start;margin:0;position:relative;width:100%}.is-style-default>.c-tabList .c-tabList__button{background:none;box-sizing:border-box;opacity:.5;padding-bottom:.75em;padding-top:.75em}.is-style-default>.c-tabList .c-tabList__button:hover,.is-style-default>.c-tabList .c-tabList__button[aria-selected=true]{background-color:var(--color_text);color:var(--color_content_bg);opacity:1}.is-style-default>.c-tabList .c-tabList__button:hover:before,.is-style-default>.c-tabList .c-tabList__button[aria-selected=true]:before{opacity:1}.is-style-balloon>.c-tabList{--the-tab-item-margin:0 0 16px}.is-style-balloon>.c-tabList .c-tabList__item{padding:0 4px;transition:background-color .1s,color .1s}.is-style-balloon>.c-tabList .c-tabList__button{background:var(--color_gray);transition:background-color .25s,color .25s}.is-style-balloon>.c-tabList .c-tabList__button:before{border:8px solid transparent;border-bottom:0;border-top:8px solid var(--color_main);bottom:-8px;content:"";display:block;height:0;left:50%;opacity:0;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);transition:opacity .25s;width:0}.is-style-balloon>.c-tabList .c-tabList__button:hover,.is-style-balloon>.c-tabList .c-tabList__button[aria-selected=true]{background-color:var(--color_main);color:#fff}.is-style-balloon>.c-tabList .c-tabList__button:hover:before,.is-style-balloon>.c-tabList .c-tabList__button[aria-selected=true]:before{opacity:1}.is-style-simple>.c-tabList{--the-tab-item-margin:0 0 8px}.is-style-simple>.c-tabList .c-tabList__item:not(:first-child){margin-left:-1px}.is-style-simple>.c-tabList .c-tabList__button{background:none;border:1px solid #ddd;box-shadow:none;color:#666}.is-style-simple>.c-tabList .c-tabList__button:hover,.is-style-simple>.c-tabList .c-tabList__button[aria-selected=true]{background:#ddd;color:#333}.is-style-simple>.c-tabList .c-tabList__button:hover:before,.is-style-simple>.c-tabList .c-tabList__button[aria-selected=true]:before{opacity:1}.is-style-bb>.c-tabList{--the-tab-item-margin:0 0 .75em}.is-style-bb>.c-tabList .c-tabList__button{background:none;box-shadow:none;opacity:.7;padding-top:.25em;transition:color .25s,opacity .25s}.is-style-bb>.c-tabList .c-tabList__button:after,.is-style-bb>.c-tabList .c-tabList__button:before{bottom:0;content:"";display:block;left:0;position:absolute;width:100%}.is-style-bb>.c-tabList .c-tabList__button:before{background-color:var(--color_text);height:1px;opacity:.4;z-index:0}.is-style-bb>.c-tabList .c-tabList__button:after{background-color:var(--color_main);height:2px;opacity:0;transition:opacity .25s;z-index:1}.is-style-bb>.c-tabList .c-tabList__button:hover,.is-style-bb>.c-tabList .c-tabList__button[aria-selected=true]{color:var(--color_main);font-weight:700;opacity:1}.is-style-bb>.c-tabList .c-tabList__button:hover:after,.is-style-bb>.c-tabList .c-tabList__button[aria-selected=true]:after{opacity:1}@-webkit-keyframes tabFadeUp{0%{display:none;opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}1%{display:block;opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{display:block;opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes tabFadeUp{0%{display:none;opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}1%{display:block;opacity:0;-webkit-transform:translateY(8px);transform:translateY(8px)}to{display:block;opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes tabFade{0%{display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1}}@keyframes tabFade{0%{display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1}}.c-tabBody{position:relative}.is-style-default .c-tabBody{border:1px solid var(--color_text);margin-top:-1px;padding:1.5em}@media(min-width:600px){.is-style-default .c-tabBody{padding:2em}}.p-postListTabBody .c-tabBody__item{position:relative;-webkit-transform:translateY(0);transform:translateY(0);width:100%;z-index:0}.p-postListTabBody .c-tabBody__item[aria-hidden=true]{height:0;left:0;opacity:0;overflow:hidden;position:absolute;top:0;-webkit-transform:translateY(8px);transform:translateY(8px);visibility:hidden}.p-postListTabBody .c-tabBody__item[aria-hidden=false]{transition:opacity .5s,visibility .5s,-webkit-transform .5s;transition:opacity .5s,visibility .5s,transform .5s;transition:opacity .5s,visibility .5s,transform .5s,-webkit-transform .5s;transition-timing-function:ease-out;z-index:1}.is-style-default .p-postListTabBody .c-tabBody__item[aria-hidden=true]{-webkit-transform:translateY(0);transform:translateY(0)}.swell-block-tab .c-tabBody__item{position:relative;width:100%}.swell-block-tab .c-tabBody__item[aria-hidden=true]{display:none}.c-tabBody__pager{padding-left:24px}.c-tabBody__moreText{box-shadow:none!important;color:#aaa;position:absolute;right:48px}

/* ==========================================================
 *  投稿ページ先頭のアイキャッチ画像を非表示
 *  記事本文内で自然に扱うため、冒頭の重複を回避
 *  一覧ページのサムネイル(.p-postList__thumb)には影響しない
 * ========================================================== */
.p-articleThumb {
  display: none !important;
}


