@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ===========================================
   からだ整体院 カスタムCSS
   温かみのあるナチュラルデザイン
   参考: 温かいベージュ基調 + オリーブグリーンアクセント
   =========================================== */

:root {
	/* ── メインカラー: オリーブ/ウォームグリーン ── */
	--pika-navy: #4a3f35;
	--pika-navy-light: #6b5d4f;
	--pika-blue: #8ca55c;
	--pika-blue-light: #b3c98e;
	--pika-blue-pale: #eef3e4;
	--pika-pink: #d4a557;
	--pika-pink-light: #e8cc94;

	/* ── 背景色: 温かみのあるベージュ系 ── */
	--pika-bg-cream: #f5f0e8;
	--pika-bg-blue: #f0ece4;
	--pika-bg-warm: #faf6ef;

	/* ── テキスト ── */
	--pika-text: #3a3a3a;
	--pika-text-light: #7a7168;

	/* ── その他 ── */
	--pika-white: #ffffff;
	--pika-border: #e0d8cc;
	--pika-radius: 12px;
	--pika-radius-lg: 20px;
	--pika-shadow: 0 4px 24px rgba(74, 63, 53, 0.07);
	--pika-shadow-hover: 0 8px 36px rgba(74, 63, 53, 0.13);
}

/* ===== 全体 ===== */
body {
	color: var(--pika-text);
	background-color: var(--pika-bg-warm);
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	font-feature-settings: "palt";
	letter-spacing: 0.04em;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
}

/* ===== ヘッダーロゴ ===== */
:root {
	--logo_size_pc: 72px !important;
	--logo_size_pcfix: 56px !important;
	--logo_size_sp: 48px !important;
}

.c-headLogo.-img .c-headLogo__link {
	display: flex;
	align-items: center;
}

.c-headLogo__img {
	height: auto !important;
	width: auto !important;
	max-height: 72px;
	object-fit: contain;
}

@media (max-width: 767px) {
	.c-headLogo__img {
		max-height: 48px;
	}
}

/* ===== ヘッダー ===== */
.l-header {
	background: var(--pika-bg-warm) !important;
	box-shadow: 0 1px 0 var(--pika-border);
}

.l-header__inner {
	max-width: 1200px;
}

.l-header__bar {
	background: var(--pika-navy) !important;
	font-size: 11px;
	letter-spacing: 0.1em;
}

/* ヘッダーナビリンク色 */
.l-header .c-gnav > li > a {
	color: var(--pika-navy) !important;
	font-weight: 500;
	letter-spacing: 0.05em;
}

.l-header .c-gnav > li > a:hover {
	color: var(--pika-blue) !important;
}

.l-header .c-btnWrap a,
.l-header .header_btn a {
	background: var(--pika-blue) !important;
	color: var(--pika-white) !important;
	border-radius: 50px;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 8px 24px;
}

/* ヘッダーナビ内の予約ボタン（通常・固定共通） */
.l-header .c-gnav li:has(a[href*="contact"]),
.l-fixHeader .c-gnav li:has(a[href*="contact"]) {
	display: flex !important;
	align-items: center !important;
	margin-left: 8px;
}

.l-header .c-gnav a[href*="contact"],
.l-fixHeader .c-gnav a[href*="contact"] {
	background: var(--pika-blue) !important;
	color: var(--pika-white) !important;
	border: 2px solid var(--pika-blue) !important;
	border-radius: 50px !important;
	padding: 16px 28px !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em;
	box-shadow: none !important;
	transition: all 0.2s ease;
	height: auto !important;
	line-height: 1.4 !important;
	align-items: center !important;
}

.l-header .c-gnav a[href*="contact"]::after,
.l-fixHeader .c-gnav a[href*="contact"]::after {
	display: none !important;
}

@media (hover: hover) {
	.l-header .c-gnav a[href*="contact"]:hover,
	.l-fixHeader .c-gnav a[href*="contact"]:hover {
		background: var(--pika-white) !important;
		color: var(--pika-blue) !important;
		border-color: var(--pika-blue) !important;
		transform: none !important;
		opacity: 1 !important;
	}
}

/* ===== SWELLデフォルトh2/h3/h4スタイルの上書き ===== */
.post_content h2 {
	background: none !important;
	color: var(--pika-navy) !important;
	padding: 0 !important;
	border: none !important;
	text-align: center;
	font-size: 1.55rem;
	font-weight: 700;
	margin-bottom: 0.6em;
}

.post_content h2::before {
	display: none !important;
	content: none !important;
}

.post_content h3 {
	padding: 0 !important;
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--pika-navy);
}

.post_content h3::before {
	display: none !important;
	content: none !important;
}

.post_content h4 {
	border-left: none !important;
	padding: 0 !important;
}

/* ===== トップページ: SWELL制約の上書き ===== */
.home .l-content,
.home .l-mainContent,
.home .l-mainContent__inner,
.home .post_content {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.home .l-main {
	padding: 0 !important;
	margin: 0 !important;
}

.home .l-content {
	padding-top: 0 !important;
	margin: 0 auto !important;
}

.home .post_content > .wp-block-group {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.home .post_content > .wp-block-group > .wp-block-group__inner-container {
	max-width: 100%;
	margin: 0 auto;
}

.home .c-pageTitle,
.home .l-articleBottom,
.home .post_content > .c-postTitle {
	display: none !important;
}

/* ===== セクション見出し（英語 + 日本語の2段構成） ===== */
.pika-section-head {
	text-align: center;
	margin-bottom: 64px;
}

.pika-section-head .en {
	display: block;
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--pika-blue);
	margin-bottom: 10px;
}

.pika-section-head h2 {
	font-size: 1.55rem;
	font-weight: 700;
	color: var(--pika-navy);
	margin: 0;
	padding: 0;
	border: none;
	position: relative;
}

.pika-section-head h2::after {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	background: var(--pika-blue);
	margin: 18px auto 0;
	border-radius: 2px;
}

/* ===== ファーストビュー（全幅画像） ===== */
.pika-fv {
	position: relative;
	min-height: 90vh;
	overflow: hidden;
	padding: 0 !important;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: #2a2a2a;
}

.pika-fv::before,
.pika-fv::after {
	display: none;
}

/* 背景画像 */
.pika-fv-bg-image {
	position: absolute !important;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	z-index: 1;
}

.pika-fv-bg-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* オーバーレイ（暗めのグラデーション） */
.pika-fv-overlay {
	position: relative;
	z-index: 2;
	min-height: 90vh;
	display: flex !important;
	align-items: center;
	background: linear-gradient(
		135deg,
		rgba(42, 38, 32, 0.72) 0%,
		rgba(42, 38, 32, 0.45) 50%,
		rgba(42, 38, 32, 0.15) 100%
	);
	padding: 0 !important;
}

/* テキストコンテンツ */
.pika-fv-fullwidth .pika-fv-content {
	position: relative;
	z-index: 3;
	max-width: 640px;
	padding: 120px 48px 120px 80px;
}

.pika-fv h1 {
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--pika-white);
	line-height: 1.8;
	margin-bottom: 24px;
	letter-spacing: 0.06em;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.15);
}

.pika-fv .sub-copy {
	font-size: 1rem;
	color: rgba(255, 255, 255, 0.88);
	line-height: 2;
	margin-bottom: 16px;
}

.pika-fv .clinic-name-en {
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-size: 0.9rem;
	letter-spacing: 0.3em;
	color: rgba(255, 255, 255, 0.65);
	margin-bottom: 40px;
}

.pika-fv .btn-group {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

/* FV上のボタンを白ベースに */
.pika-fv .pika-cta-btn .wp-block-button__link,
.pika-fv .pika-cta-btn a {
	background: var(--pika-white) !important;
	color: var(--pika-navy) !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	font-weight: 700;
}

.pika-fv .pika-cta-btn .wp-block-button__link:hover,
.pika-fv .pika-cta-btn a:hover {
	background: var(--pika-blue) !important;
	color: var(--pika-white) !important;
	box-shadow: 0 6px 28px rgba(0, 0, 0, 0.2);
}

.pika-fv .pika-tel-btn .wp-block-button__link,
.pika-fv .pika-tel-btn a {
	background: transparent !important;
	color: var(--pika-white) !important;
	border: 2px solid rgba(255, 255, 255, 0.7) !important;
}

.pika-fv .pika-tel-btn .wp-block-button__link:hover,
.pika-fv .pika-tel-btn a:hover {
	background: rgba(255, 255, 255, 0.15) !important;
	border-color: var(--pika-white) !important;
}

/* ===== WEB予約ボタン ===== */
.pika-cta-btn .wp-block-button__link,
.pika-cta-btn a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--pika-blue) !important;
	color: var(--pika-white) !important;
	font-size: 0.95rem;
	font-weight: 600;
	padding: 14px 36px;
	border-radius: 50px;
	text-decoration: none !important;
	border: none !important;
	box-shadow: 0 4px 16px rgba(140, 165, 92, 0.3);
	transition: all 0.3s ease;
	min-height: 48px;
	letter-spacing: 0.08em;
}

.pika-cta-btn .wp-block-button__link:hover,
.pika-cta-btn a:hover {
	background: #7a9450 !important;
	box-shadow: 0 6px 24px rgba(140, 165, 92, 0.4);
	transform: translateY(-2px);
}

.pika-tel-btn .wp-block-button__link,
.pika-tel-btn a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--pika-white) !important;
	color: var(--pika-navy) !important;
	font-size: 0.95rem;
	font-weight: 600;
	padding: 14px 36px;
	border: 2px solid var(--pika-navy) !important;
	border-radius: 50px;
	text-decoration: none !important;
	transition: all 0.3s ease;
	min-height: 48px;
	letter-spacing: 0.08em;
}

.pika-tel-btn .wp-block-button__link:hover,
.pika-tel-btn a:hover {
	background: var(--pika-navy) !important;
	color: var(--pika-white) !important;
}

/* ===== セクション共通 ===== */
.pika-section {
	padding-top: 100px;
	padding-bottom: 100px;
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
}

.home .post_content > .wp-block-group {
	margin-bottom: 0 !important;
}

.pika-section.bg-cream {
	background: var(--pika-bg-cream);
}

.pika-section.bg-blue {
	background: var(--pika-bg-blue);
}

.pika-cta-bottom {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	padding-bottom: 80px !important;
}

/* フッター前の余白を詰める */
.home .l-content {
	padding-bottom: 0 !important;
}

.home .l-articleBottom {
	margin: 0 !important;
	padding: 0 !important;
}

/* ===== スマホ固定フッターバー ===== */
.pika-sp-fixed-cta {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: var(--pika-white);
	box-shadow: 0 -2px 12px rgba(0,0,0,0.1);
	padding: 8px 12px;
	gap: 8px;
}

.pika-sp-fixed-cta a {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px 8px;
	border-radius: 50px;
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.05em;
}

.pika-sp-cta-web {
	background: var(--pika-blue);
	color: var(--pika-white) !important;
}

.pika-sp-cta-tel {
	background: var(--pika-white);
	color: var(--pika-navy) !important;
	border: 2px solid var(--pika-navy);
}

@media (max-width: 767px) {
	.pika-sp-fixed-cta {
		display: flex;
	}
	body {
		padding-bottom: 64px;
	}
}

/* ===== サービスカード ===== */
.pika-service-cards {
	gap: 20px !important;
	margin-bottom: 20px !important;
}

/* 親セクションでカウンターリセット（2行分の通し番号のため） */
.pika-section:has(.pika-service-cards) {
	counter-reset: service-counter;
}

.pika-service-card {
	text-align: left;
	padding: 32px 28px 28px;
	border-radius: var(--pika-radius);
	background: var(--pika-white);
	box-shadow: none;
	border: none;
	border-top: 3px solid var(--pika-blue);
	position: relative;
	overflow: hidden;
	counter-increment: service-counter;
}

.pika-service-card::before {
	content: counter(service-counter, decimal-leading-zero);
	font-family: "Cormorant Garamond", "Times New Roman", serif;
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--pika-blue-light);
	line-height: 1;
	display: block;
	margin-bottom: 16px;
	letter-spacing: -0.02em;
}

/* ホバーアニメーションなし（リンクではないカード） */

.pika-service-card h3 {
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 10px;
	color: var(--pika-navy);
	text-align: left;
}

.pika-service-card p {
	font-size: 0.82rem;
	color: var(--pika-text-light);
	line-height: 1.85;
	margin: 0;
	text-align: left;
}

/* カードアイコン → 番号デザインに変更のため非表示 */
.pika-service-card .icon-wrap {
	display: none !important;
}

/* 全身調整 - 人体シルエットアイコン */
.icon-fullbody {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='8' r='4'/%3E%3Cpath d='M24 14v10M18 20h12M20 24l-4 14M28 24l4 14'/%3E%3Cpath d='M20 32l-2 8M28 32l2 8'/%3E%3C/svg%3E");
}

/* 部分ケア - ターゲットポイントアイコン */
.icon-partial {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='14'/%3E%3Ccircle cx='24' cy='24' r='8'/%3E%3Ccircle cx='24' cy='24' r='2' fill='%237a9450'/%3E%3Cpath d='M24 6v4M24 38v4M6 24h4M38 24h4'/%3E%3C/svg%3E");
}

/* 産後ケア - 母子アイコン */
.icon-postnatal {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='20' cy='10' r='4'/%3E%3Cpath d='M20 16c-6 0-8 4-8 8v4h16v-4c0-4-2-8-8-8z'/%3E%3Ccircle cx='33' cy='16' r='3'/%3E%3Cpath d='M33 20c-3 0-5 2-5 5v3h10v-3c0-3-2-5-5-5z'/%3E%3Cpath d='M14 36h24M14 40h24'/%3E%3C/svg%3E");
}

/* 骨盤矯正 - 骨盤アイコン */
.icon-pelvis {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 8v8'/%3E%3Cpath d='M16 16c-4 2-8 8-6 14 1 3 4 6 8 6h12c4 0 7-3 8-6 2-6-2-12-6-14'/%3E%3Ccircle cx='20' cy='26' r='3'/%3E%3Ccircle cx='28' cy='26' r='3'/%3E%3Cpath d='M24 16v20'/%3E%3C/svg%3E");
}

/* 猫背矯正 - 姿勢改善アイコン */
.icon-posture {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='30' cy='8' r='3.5'/%3E%3Cpath d='M30 12v4c0 2-1 4-3 5l-8 5c-2 1-3 3-3 5v7' stroke-width='2.5'/%3E%3Cpath d='M18 38h-4M18 38l4-4'/%3E%3Cpath d='M34 14l4 6' stroke-dasharray='3 3' stroke-width='1.5'/%3E%3Cpath d='M30 12v20M30 32h-4M30 32l4-4' stroke-dasharray='3 3' stroke-width='1.5' opacity='0.4'/%3E%3C/svg%3E");
}

/* 筋膜リリース - 筋膜アイコン */
.icon-fascia {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14c4-2 8 2 12 0s8-2 12 0'/%3E%3Cpath d='M10 22c4-2 8 2 12 0s8-2 12 0'/%3E%3Cpath d='M10 30c4-2 8 2 12 0s8-2 12 0'/%3E%3Ccircle cx='18' cy='22' r='2' fill='%23eef3e4'/%3E%3Ccircle cx='30' cy='22' r='2' fill='%23eef3e4'/%3E%3Cpath d='M16 20l4 4M28 20l4 4' stroke-width='1.8'/%3E%3C/svg%3E");
}

/* ===== ごあいさつセクション ===== */
.pika-greeting-section {
	background: var(--pika-bg-warm);
}

.pika-greeting-columns {
	align-items: flex-start !important;
	gap: 64px !important;
}

.pika-greeting-photo img {
	border-radius: var(--pika-radius-lg);
	box-shadow: var(--pika-shadow);
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
}

.pika-greeting-name {
	color: var(--pika-navy);
	font-weight: 500;
}

.pika-greeting-text-col p {
	color: var(--pika-text);
	line-height: 2.1;
	font-size: 0.95rem;
}

@media (max-width: 767px) {
	.pika-greeting-columns {
		flex-direction: column !important;
	}
	.pika-greeting-photo-col {
		max-width: 240px;
		margin: 0 auto 32px;
	}
}

/* ===== 当院の特徴セクション ===== */
.pika-feature-cards {
	gap: 20px !important;
}

.pika-feature-card {
	text-align: center;
	padding: 0;
	border-radius: var(--pika-radius-lg);
	background: var(--pika-bg-warm);
	border: 1px solid var(--pika-border);
	overflow: hidden;
}

.pika-feature-card .pika-feature-image {
	margin: 0 !important;
}

.pika-feature-card .pika-feature-image img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
}

.pika-feature-card .icon-wrap {
	width: 64px;
	height: 64px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background-color: var(--pika-blue-pale);
	box-shadow: 0 2px 8px rgba(140, 165, 92, 0.12);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 32px 32px;
}

.pika-feature-card h3 {
	font-weight: 700;
	margin-bottom: 10px !important;
	color: var(--pika-navy);
	padding: 0 20px;
}

.pika-feature-card p {
	color: var(--pika-text-light);
	line-height: 1.8;
	margin: 0;
	padding: 0 20px 28px;
}

/* 特徴アイコン: カウンセリング */
.icon-counseling {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 32V16a4 4 0 014-4h24a4 4 0 014 4v12a4 4 0 01-4 4H18l-6 6v-6H12a4 4 0 01-4-4z'/%3E%3Ccircle cx='18' cy='22' r='1.5' fill='%237a9450'/%3E%3Ccircle cx='24' cy='22' r='1.5' fill='%237a9450'/%3E%3Ccircle cx='30' cy='22' r='1.5' fill='%237a9450'/%3E%3C/svg%3E");
}

/* 特徴アイコン: ソフト施術 */
.icon-painless {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 40s-12-8-12-18c0-5 3-10 8-10 3 0 4 2 4 2s1-2 4-2c5 0 8 5 8 10 0 10-12 18-12 18z'/%3E%3Cpath d='M20 22l3 3 5-6'/%3E%3C/svg%3E");
}

/* 特徴アイコン: 女性施術者 */
.icon-woman {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='14' r='6'/%3E%3Cpath d='M12 38v-4c0-5 4-8 12-8s12 3 12 8v4'/%3E%3Cpath d='M20 14c0-4 1.5-8 4-8s4 4 4 8' stroke-width='1.8'/%3E%3C/svg%3E");
}

/* 特徴アイコン: 完全予約制 */
.icon-reservation {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%237a9450' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='10' width='32' height='28' rx='3'/%3E%3Cpath d='M16 6v8M32 6v8M8 18h32'/%3E%3Cpath d='M20 26l3 3 5-6'/%3E%3C/svg%3E");
}

@media (max-width: 767px) {
	.pika-feature-cards {
		flex-wrap: wrap !important;
	}
	.pika-feature-card {
		flex-basis: calc(50% - 12px) !important;
		padding: 24px 14px 20px;
	}
}

/* ===== 営業時間テーブル ===== */
.pika-schedule-section .wp-block-table table,
.pika-schedule-table table {
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
	border-collapse: collapse;
	background: var(--pika-white);
	border-radius: var(--pika-radius-lg);
	overflow: hidden;
	box-shadow: var(--pika-shadow);
}

.pika-schedule-section .wp-block-table thead th,
.pika-schedule-table th {
	background: var(--pika-navy);
	color: var(--pika-white);
	padding: 14px 12px;
	font-weight: 600;
	font-size: 0.82rem;
	letter-spacing: 0.05em;
	border: none;
	text-align: center;
}

.pika-schedule-section .wp-block-table td,
.pika-schedule-table td {
	padding: 14px 12px;
	text-align: center;
	border-bottom: 1px solid var(--pika-border);
	font-size: 0.88rem;
	color: var(--pika-text);
}

.pika-schedule-section .wp-block-table tbody tr:last-child td {
	border-bottom: none;
}

.pika-schedule-section .wp-block-table tbody tr td:first-child {
	font-weight: 600;
	color: var(--pika-navy);
	background: var(--pika-bg-cream);
	border-right: 1px solid var(--pika-border);
}

/* ○ マーク（営業）*/
.pika-open {
	color: var(--pika-blue);
	font-weight: 700;
	font-size: 1.1rem;
}

/* ✕ マーク（休診）*/
.pika-closed {
	color: #c45a5a;
	font-weight: 700;
	font-size: 0.95rem;
}

/* △ マーク（時短）*/
.pika-short {
	color: var(--pika-pink);
	font-weight: 700;
	font-size: 1.1rem;
}

/* 営業時間テーブル SP対応 */
@media (max-width: 767px) {
	.pika-schedule-section .wp-block-table table,
	.pika-schedule-table table {
		max-width: 100%;
		table-layout: auto !important;
	}

	.pika-schedule-section .wp-block-table thead th,
	.pika-schedule-table th {
		padding: 10px 4px;
		font-size: 0.7rem;
		letter-spacing: 0;
		white-space: nowrap;
	}

	.pika-schedule-section .wp-block-table td,
	.pika-schedule-table td {
		padding: 10px 4px;
		font-size: 0.75rem;
	}

	.pika-schedule-section .wp-block-table tbody tr td:first-child {
		white-space: nowrap;
		font-size: 0.68rem;
		padding: 10px 6px;
	}

	.pika-open, .pika-closed, .pika-short {
		font-size: 0.9rem !important;
	}
}

/* ===== お知らせ ===== */
.pika-news-section .wp-block-latest-posts {
	padding: 0;
	list-style: none;
}

.pika-news-section .wp-block-latest-posts li {
	padding: 24px 0;
	border-bottom: 1px solid var(--pika-border);
}

.pika-news-section .wp-block-latest-posts__post-date {
	color: var(--pika-blue);
	font-weight: 600;
	font-size: 0.85rem;
	margin-right: 16px;
}

.pika-news-section .wp-block-latest-posts__post-title {
	color: var(--pika-navy);
	font-weight: 500;
	text-decoration: none;
	transition: color 0.3s;
}

.pika-news-section .wp-block-latest-posts__post-title:hover {
	color: var(--pika-blue);
}

/* ===== お客様の声セクション ===== */
.pika-voice-section {
	padding-top: 100px;
	padding-bottom: 100px;
}

.pika-voice-card {
	background: var(--pika-white);
	padding: 36px 28px;
	border-radius: var(--pika-radius-lg);
	box-shadow: var(--pika-shadow);
	border-left: 4px solid var(--pika-blue);
}

.pika-voice-card .voice-title {
	font-weight: 700;
	color: var(--pika-navy);
	font-size: 1rem;
	margin-bottom: 12px;
}

.pika-voice-card .voice-text {
	color: var(--pika-text-light);
	font-size: 0.9rem;
	line-height: 1.9;
	margin-bottom: 12px;
}

.pika-voice-card .voice-info {
	color: var(--pika-blue);
	font-size: 0.8rem;
	font-weight: 600;
}

/* ===== 料金テーブル ===== */
.pika-price-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--pika-radius-lg);
	overflow: hidden;
	box-shadow: var(--pika-shadow);
	background: var(--pika-white);
}

.pika-price-table th {
	background: var(--pika-navy);
	color: var(--pika-white);
	padding: 16px 24px;
	font-weight: 600;
	font-size: 0.9rem;
	border: none;
}

.pika-price-table td {
	padding: 18px 24px;
	border-bottom: 1px solid var(--pika-border);
	font-size: 0.95rem;
}

.pika-price-table tbody tr:last-child td {
	border-bottom: none;
}

.pika-price-table tbody tr:nth-child(even) td {
	background: var(--pika-bg-cream);
}

.pika-price-highlight {
	color: var(--pika-blue);
	font-weight: 700;
	font-size: 1.1rem;
}

/* ===== 施術の流れ ===== */
.pika-flow-section {
	max-width: 900px;
	margin: 0 auto;
	padding: 64px 24px;
}

.pika-flow-section h2 {
	text-align: center;
	margin-bottom: 48px !important;
}

.pika-flow-steps {
	position: relative;
}

.pika-flow-step {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	padding: 28px 0;
	position: relative;
}

.pika-flow-step::after {
	content: '';
	position: absolute;
	left: 23px;
	top: 72px;
	bottom: -4px;
	width: 2px;
	background: var(--pika-border);
}

.pika-flow-step:last-child::after {
	display: none;
}

.pika-flow-num {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	background: var(--pika-blue);
	color: var(--pika-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Cormorant Garamond", serif;
	font-size: 1.2rem;
	font-weight: 700;
	position: relative;
	z-index: 2;
}

.pika-flow-content h4 {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--pika-navy);
	margin-bottom: 6px !important;
}

.pika-flow-content p {
	font-size: 0.88rem;
	color: var(--pika-text-light);
	line-height: 1.8;
}

/* ===== 料金表（メニューページ下部） ===== */
.pika-price-summary {
	max-width: 900px;
	margin: 0 auto;
	padding: 0 24px 64px;
}

.pika-price-summary h2 {
	text-align: center;
	margin-bottom: 32px !important;
}

.pika-price-note {
	text-align: center;
	color: var(--pika-text-light);
	font-size: 0.85rem;
	margin-top: 16px !important;
}

/* ===== アクセスセクション ===== */
.pika-access-body {
	max-width: 900px;
	margin: 0 auto;
	padding: 64px 24px 80px;
}

.pika-access-info {
	line-height: 2.2;
}

.pika-access-table table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--pika-radius-lg);
	overflow: hidden;
	box-shadow: var(--pika-shadow);
	background: var(--pika-white);
}

.pika-access-table th {
	background: var(--pika-bg-cream);
	color: var(--pika-navy);
	font-weight: 600;
	padding: 18px 24px;
	width: 140px;
	border-bottom: 1px solid var(--pika-border);
	font-size: 0.9rem;
	text-align: left;
	vertical-align: top;
}

.pika-access-table td {
	padding: 18px 24px;
	border-bottom: 1px solid var(--pika-border);
	font-size: 0.92rem;
	color: var(--pika-text);
}

.pika-access-table tr:last-child th,
.pika-access-table tr:last-child td {
	border-bottom: none;
}

.pika-access-table a {
	color: var(--pika-blue) !important;
	font-weight: 600;
}

/* マップ */
.pika-access-map {
	margin-top: 40px !important;
}

.pika-access-map h3 {
	margin-bottom: 20px !important;
}

.pika-map-wrap {
	border-radius: var(--pika-radius-lg);
	overflow: hidden;
	box-shadow: var(--pika-shadow);
}

.pika-map-wrap iframe {
	width: 100%;
	height: 450px;
	display: block;
	border: none;
}

/* アクセス方法 */
.pika-access-routes {
	margin-top: 40px !important;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.pika-access-route {
	background: var(--pika-white);
	padding: 28px 24px;
	border-radius: var(--pika-radius);
	box-shadow: var(--pika-shadow);
}

.pika-access-route h4 {
	color: var(--pika-navy);
	font-size: 1rem;
	margin-bottom: 8px !important;
	display: flex;
	align-items: center;
	gap: 10px;
}

.pika-access-route h4::before {
	content: '';
	display: inline-block;
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	background-color: var(--pika-blue-pale);
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 20px 20px;
}

.pika-access-route.route-train h4::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a9450' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='14' rx='3'/%3E%3Cpath d='M4 11h16'/%3E%3Ccircle cx='8.5' cy='14' r='1'/%3E%3Ccircle cx='15.5' cy='14' r='1'/%3E%3Cpath d='M6 17l-2 4M18 17l2 4M10 17h4'/%3E%3C/svg%3E");
}

.pika-access-route.route-car h4::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a9450' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14v-5l-2-6H7L5 12v5z'/%3E%3Ccircle cx='7.5' cy='17' r='2'/%3E%3Ccircle cx='16.5' cy='17' r='2'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
}

.pika-access-route p {
	font-size: 0.88rem;
	color: var(--pika-text-light);
	line-height: 1.8;
}

.pika-access-info h3 {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--pika-navy);
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--pika-blue-light);
}

.pika-access-info p {
	margin-bottom: 20px;
}

.pika-access-info a {
	color: var(--pika-blue);
	font-weight: 700;
	text-decoration: none;
	transition: color 0.3s;
}

.pika-access-info a:hover {
	color: var(--pika-navy);
}

.pika-map-wrap {
	border-radius: var(--pika-radius-lg);
	overflow: hidden;
	box-shadow: var(--pika-shadow);
}

.pika-map-wrap iframe {
	width: 100%;
	height: 100%;
	min-height: 400px;
	border: 0;
	display: block;
	border-radius: 0 !important;
}

/* Google Mapsコンテナ - カラム高さに合わせる */
.pika-map-wrap {
	min-height: 400px;
	height: 100%;
}

/* アクセスセクションのカラムを高さ揃えにする */
.pika-access-section .wp-block-columns {
	align-items: stretch !important;
}

/* ===== 予約CTAセクション ===== */
.pika-cta-section {
	text-align: center;
	padding: 80px 48px;
	background: var(--pika-navy);
	border-radius: var(--pika-radius-lg);
	color: var(--pika-white);
	position: relative;
	overflow: hidden;
}

.pika-cta-section::before {
	content: "";
	position: absolute;
	top: -50px;
	right: -50px;
	width: 250px;
	height: 250px;
	border-radius: 50%;
	background: rgba(140, 165, 92, 0.12);
}

.pika-cta-section::after {
	content: "";
	position: absolute;
	bottom: -30px;
	left: -30px;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	background: rgba(212, 165, 87, 0.1);
}

.pika-cta-section h2 {
	color: var(--pika-white) !important;
	font-size: 1.5rem;
	margin-bottom: 20px;
}

.pika-cta-section h2::after {
	background: rgba(255, 255, 255, 0.3);
}

.pika-cta-section p {
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 2.5em;
}

.pika-cta-section .pika-cta-btn .wp-block-button__link,
.pika-cta-section .pika-cta-btn a {
	background: var(--pika-white) !important;
	color: var(--pika-navy) !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.pika-cta-section .pika-cta-btn .wp-block-button__link:hover,
.pika-cta-section .pika-cta-btn a:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
}

.pika-cta-section .pika-tel-btn .wp-block-button__link,
.pika-cta-section .pika-tel-btn a {
	background: transparent !important;
	color: var(--pika-white) !important;
	border-color: rgba(255, 255, 255, 0.6) !important;
}

.pika-cta-section .pika-tel-btn .wp-block-button__link:hover,
.pika-cta-section .pika-tel-btn a:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	border-color: var(--pika-white) !important;
}

/* ===== 汎用ボタン（アウトライン） ===== */
.pika-more-btn .wp-block-button__link {
	background: transparent !important;
	color: var(--pika-navy) !important;
	border: 2px solid var(--pika-navy) !important;
	border-radius: 50px;
	padding: 12px 32px;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	transition: all 0.3s ease;
}

.pika-more-btn .wp-block-button__link:hover {
	background: var(--pika-navy) !important;
	color: var(--pika-white) !important;
}

/* ===== フッター ===== */
.l-footer {
	background: var(--pika-navy);
	color: rgba(255, 255, 255, 0.75);
}

.l-footer__widgetArea {
	padding: 64px 0 48px;
}

.l-footer a {
	color: rgba(255, 255, 255, 0.75);
	transition: color 0.3s;
}

.l-footer a:hover {
	color: var(--pika-white);
}

.l-footer .copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding: 24px 0;
	font-size: 0.8rem;
}

/* ===== フェードインアニメーション ===== */
.pika-fade-in {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.pika-fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.pika-service-cards .pika-service-card.pika-fade-in:nth-child(2) {
	transition-delay: 0.1s;
}
.pika-service-cards .pika-service-card.pika-fade-in:nth-child(3) {
	transition-delay: 0.2s;
}

/* ===== レスポンシブ ===== */
@media (max-width: 1023px) {
	.pika-fv {
		min-height: 70vh;
	}

	.pika-fv-overlay {
		min-height: 70vh;
	}

	.pika-fv-fullwidth .pika-fv-content {
		padding: 80px 32px;
	}

	.pika-fv h1 {
		font-size: 1.9rem;
	}

	.pika-section {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}

@media (max-width: 767px) {
	.pika-fv {
		min-height: 85vh;
	}

	.pika-fv-overlay {
		min-height: 85vh;
		background: linear-gradient(
			180deg,
			rgba(42, 38, 32, 0.25) 0%,
			rgba(42, 38, 32, 0.65) 50%,
			rgba(42, 38, 32, 0.80) 100%
		);
		align-items: flex-end;
	}

	.pika-fv-fullwidth .pika-fv-content {
		padding: 40px 24px 60px;
		max-width: 100%;
	}

	.pika-fv h1 {
		font-size: 1.6rem;
		line-height: 1.8;
	}

	.pika-fv .sub-copy {
		font-size: 0.9rem;
	}

	.pika-fv .btn-group {
		flex-direction: column;
		align-items: stretch;
	}

	.pika-cta-btn .wp-block-button__link,
	.pika-cta-btn a,
	.pika-tel-btn .wp-block-button__link,
	.pika-tel-btn a {
		width: 100%;
		text-align: center;
		justify-content: center;
	}

	.pika-section {
		padding-top: 64px;
		padding-bottom: 64px;
	}

	.pika-section-head {
		margin-bottom: 40px;
	}

	.pika-section-head h2 {
		font-size: 1.3rem;
	}

	.post_content h2 {
		font-size: 1.3rem;
	}

	.pika-service-card {
		padding: 28px 16px 24px;
	}

	.pika-cta-section {
		padding: 50px 20px;
		border-radius: var(--pika-radius);
	}

	.pika-map-wrap iframe {
		height: 220px;
	}

	.pika-access-section .wp-block-columns {
		gap: 32px;
	}

	.pika-voice-card {
		padding: 24px 20px;
	}
}

/* ===========================================
   下層ページ共通スタイル
   =========================================== */

/* 下層ページ: SWELL制約の上書き */
.page .l-mainContent__inner {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.page .l-content {
	padding-top: 0 !important;
}

.page .post_content {
	max-width: 100% !important;
	margin-top: 0 !important;
}

/* ページヘッダー: フルワイドバナー */
.pika-page-header {
	position: relative;
	overflow: hidden;
	margin-bottom: 0 !important;
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	background: var(--pika-navy);
	padding: 80px 24px 72px;
}

.pika-page-header::before {
	content: '';
	position: absolute;
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(140,165,92,0.15) 0%, transparent 70%);
	border-radius: 50%;
	top: -150px;
	right: -100px;
}

.pika-page-header::after {
	content: '';
	position: absolute;
	width: 250px;
	height: 250px;
	background: radial-gradient(circle, rgba(212,165,87,0.1) 0%, transparent 70%);
	border-radius: 50%;
	bottom: -80px;
	left: -60px;
}

.pika-page-header .pika-section-head {
	position: relative;
	z-index: 2;
	margin-bottom: 0;
}

.pika-page-header .pika-section-head .en {
	font-family: "Cormorant Garamond", serif;
	font-size: 0.85rem;
	letter-spacing: 0.25em;
	color: var(--pika-blue-light);
	margin-bottom: 8px;
	text-transform: uppercase;
}

.pika-page-header .pika-section-head h2 {
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--pika-white) !important;
	position: relative;
	padding-bottom: 20px;
}

.pika-page-header .pika-section-head h2::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 48px;
	height: 3px;
	background: var(--pika-blue-light);
	border-radius: 2px;
}

/* 下層ページ本文エリア */
.pika-page-body {
	max-width: 900px;
	margin: 0 auto;
	padding: 64px 24px 80px;
}

.pika-detail-heading {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--pika-navy);
	padding-left: 16px;
	border-left: 3px solid var(--pika-blue);
	margin-bottom: 20px !important;
	margin-top: 48px !important;
}

.pika-detail-heading:first-child,
h3.pika-detail-heading:first-of-type {
	margin-top: 0 !important;
}

.wp-block-separator.is-style-wide {
	border-color: var(--pika-border);
	opacity: 0.5;
	margin: 48px 0 !important;
}

/* ===== スタッフ紹介ページ ===== */
.pika-staff-list {
	max-width: 900px;
	margin: 0 auto;
}

.pika-staff-photo img {
	border-radius: var(--pika-radius-lg);
	box-shadow: var(--pika-shadow);
	width: 100%;
	aspect-ratio: 4/5;
	object-fit: cover;
}

.pika-staff-card {
	background: var(--pika-white);
	padding: 32px 28px;
	border-radius: var(--pika-radius-lg);
	box-shadow: var(--pika-shadow);
	text-align: center;
}

.pika-staff-card .staff-role {
	display: inline-block;
	background: var(--pika-blue-pale);
	color: var(--pika-blue);
	font-size: 0.75rem;
	font-weight: 700;
	padding: 4px 16px;
	border-radius: 50px;
	margin-bottom: 8px !important;
	letter-spacing: 0.05em;
}

.pika-staff-card h4 {
	color: var(--pika-navy);
	font-size: 1.15rem;
	margin-bottom: 24px !important;
	position: relative;
	padding-bottom: 32px !important;
}

.pika-staff-card h4::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 30px;
	height: 2px;
	background: var(--pika-blue);
}

/* カード高さ揃え */
.pika-staff-list {
	align-items: stretch !important;
}

.pika-staff-list .wp-block-column {
	display: flex;
}

.pika-staff-card {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.pika-staff-card .staff-license {
	font-size: 0.8rem;
	color: var(--pika-text-light);
	margin-bottom: 12px !important;
}

.pika-staff-card .staff-bio {
	font-size: 0.88rem;
	color: var(--pika-text);
	line-height: 1.9;
	text-align: left;
}

/* スタッフメッセージ */
.pika-staff-message {
	max-width: 900px;
	margin: 0 auto;
	background: var(--pika-bg-cream);
	border-radius: var(--pika-radius-lg);
	padding: 48px 40px;
	margin-top: 48px !important;
}

.pika-staff-message h3 {
	text-align: center;
	margin-bottom: 24px !important;
}

.pika-staff-message p {
	color: var(--pika-text);
	line-height: 2;
	font-size: 0.95rem;
}

/* ===== FAQページ ===== */
.pika-faq-item {
	background: var(--pika-white);
	border: 1px solid var(--pika-border);
	border-radius: var(--pika-radius);
	padding: 0;
	margin-bottom: 16px !important;
	overflow: hidden;
	transition: box-shadow 0.3s ease;
}

.pika-faq-item:hover {
	box-shadow: var(--pika-shadow);
}

.pika-faq-item summary {
	padding: 20px 24px;
	font-weight: 600;
	color: var(--pika-navy);
	cursor: pointer;
	position: relative;
	padding-left: 52px;
	list-style: none;
	line-height: 1.6;
}

.pika-faq-item summary::-webkit-details-marker {
	display: none;
}

.pika-faq-item summary::before {
	content: 'Q';
	position: absolute;
	left: 20px;
	top: 18px;
	width: 24px;
	height: 24px;
	background: var(--pika-blue);
	color: var(--pika-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
	font-weight: 700;
	font-family: "Cormorant Garamond", serif;
}

.pika-faq-item summary::after {
	content: '';
	position: absolute;
	right: 20px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--pika-text-light);
	border-bottom: 2px solid var(--pika-text-light);
	transform: translateY(-60%) rotate(45deg);
	transition: transform 0.3s ease;
}

.pika-faq-item[open] summary::after {
	transform: translateY(-40%) rotate(-135deg);
}

.pika-faq-item p {
	padding: 0 24px 20px 52px;
	color: var(--pika-text-light);
	line-height: 1.8;
}

/* ===== 固定ページタイトル非表示（pika-page-headerを使用するため） ===== */
.page .post_title,
.page .c-pageTitle {
	display: none !important;
}

/* ===== お問い合わせページ ===== */
.pika-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	max-width: 900px;
	margin: 0 auto 40px;
}

.pika-contact-tel,
.pika-contact-line {
	border: 1px solid var(--pika-border);
	box-shadow: var(--pika-shadow);
	text-align: center;
	padding: 48px 28px;
	border-radius: var(--pika-radius-lg);
	background: var(--pika-white);
	margin-bottom: 0 !important;
}

.pika-contact-form {
	border: 1px solid var(--pika-border);
	box-shadow: var(--pika-shadow);
	text-align: center;
	padding: 48px 40px;
	margin-bottom: 40px !important;
	border-radius: var(--pika-radius-lg);
	background: var(--pika-white);
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.pika-contact-tel h3,
.pika-contact-line h3,
.pika-contact-form h3 {
	color: var(--pika-navy);
	margin-bottom: 20px !important;
	font-size: 1.1rem;
}

.pika-contact-tel h3::before {
	content: '📞';
	display: block;
	font-size: 2rem;
	margin-bottom: 12px;
}

.pika-contact-line h3::before {
	content: '💬';
	display: block;
	font-size: 2rem;
	margin-bottom: 12px;
}

.pika-contact-form h3::before {
	content: '✉️';
	display: block;
	font-size: 2rem;
	margin-bottom: 12px;
}

.pika-contact-tel .pika-tel-number {
	margin-bottom: 12px !important;
}

.pika-contact-tel .pika-tel-number a {
	color: var(--pika-navy) !important;
	text-decoration: none !important;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.pika-contact-tel a {
	color: var(--pika-navy) !important;
	text-decoration: none !important;
}

.pika-line-button .wp-block-button__link {
	background: #06C755 !important;
	color: var(--pika-white) !important;
	border-radius: 50px;
	padding: 14px 36px;
	font-weight: 700;
	letter-spacing: 0.05em;
	transition: all 0.3s ease;
}

.pika-line-button .wp-block-button__link:hover {
	background: #05a848 !important;
	transform: translateY(-2px);
}

/* ===== メニュー・料金ページ コースカード ===== */
.pika-course-list {
	max-width: 900px;
	margin: 0 auto;
}

.pika-course-card {
	background: var(--pika-white);
	border: 1px solid var(--pika-border);
	border-radius: var(--pika-radius-lg);
	padding: 40px 36px;
	margin-bottom: 28px !important;
	position: relative;
	overflow: hidden;
	box-shadow: var(--pika-shadow);
}

.pika-course-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 5px;
	height: 100%;
	background: var(--pika-blue);
}

.pika-course-card .pika-course-badge {
	display: inline-block;
	background: var(--pika-blue);
	color: var(--pika-white);
	font-size: 0.75rem;
	font-weight: 700;
	padding: 4px 16px;
	border-radius: 50px;
	margin-bottom: 12px;
	letter-spacing: 0.05em;
}

.pika-course-card h3 {
	color: var(--pika-navy) !important;
	font-size: 1.3rem !important;
	margin-bottom: 8px !important;
	background: none !important;
	border: none !important;
	padding: 0 !important;
}

.pika-course-card h3::after {
	display: none !important;
}

.pika-course-card .pika-course-price {
	font-family: "Cormorant Garamond", serif;
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--pika-blue);
	margin-bottom: 16px;
}

.pika-course-card .pika-course-price small {
	font-size: 0.7rem;
	color: var(--pika-text-light);
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	margin-left: 4px;
}

.pika-course-card .pika-course-desc {
	color: var(--pika-text-light);
	font-size: 0.9rem;
	line-height: 1.8;
}

.pika-course-card .pika-course-note {
	font-size: 0.8rem;
	color: var(--pika-text-light);
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--pika-border);
}

.wpcf7 {
	max-width: 100%;
	text-align: left;
}

.pika-form-group {
	margin-bottom: 24px;
}

.pika-form-group label {
	display: block;
	font-weight: 600;
	color: var(--pika-navy);
	margin-bottom: 8px;
	font-size: 0.9rem;
}

.pika-required {
	font-size: 0.7rem;
	color: var(--pika-white);
	background: #c45a5a;
	padding: 2px 8px;
	border-radius: 4px;
	margin-left: 6px;
	font-weight: 600;
	vertical-align: middle;
}

.pika-form-submit {
	text-align: center;
	margin-top: 32px;
}

.wpcf7 select {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--pika-border);
	border-radius: var(--pika-radius);
	font-size: 0.95rem;
	font-family: inherit;
	background: var(--pika-white);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237a7168' stroke-width='2' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	cursor: pointer;
}

.wpcf7 select:focus {
	border-color: var(--pika-blue);
	box-shadow: 0 0 0 3px rgba(140, 165, 92, 0.15);
	outline: none;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--pika-border);
	border-radius: var(--pika-radius);
	font-size: 0.95rem;
	font-family: inherit;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
	background: var(--pika-white);
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 textarea:focus {
	border-color: var(--pika-blue);
	box-shadow: 0 0 0 3px rgba(140, 165, 92, 0.15);
	outline: none;
}

.wpcf7 textarea {
	min-height: 160px;
	resize: vertical;
}

.wpcf7 .wpcf7-submit {
	display: inline-block;
	background: var(--pika-blue);
	color: var(--pika-white);
	padding: 16px 60px;
	border: none;
	border-radius: 50px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.3s ease, transform 0.2s ease;
	letter-spacing: 0.1em;
}

.wpcf7 .wpcf7-submit:hover {
	background: var(--pika-navy);
	transform: translateY(-2px);
}

.wpcf7 label {
	display: block;
	font-weight: 600;
	color: var(--pika-navy);
	margin-bottom: 6px;
	font-size: 0.9rem;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-bottom: 24px;
}

/* ===== 下層ページ CTA（TOPページと同じデザイン） ===== */
.page .pika-cta-bottom {
	width: 100vw;
	margin-left: calc(50% - 50vw) !important;
}

.page .pika-cta-section {
	background: var(--pika-navy);
	position: relative;
	overflow: hidden;
	border-radius: var(--pika-radius-lg);
}

.page .pika-cta-section::before {
	content: '';
	position: absolute;
	width: 300px;
	height: 300px;
	background: rgba(140, 165, 92, 0.12);
	border-radius: 50%;
	top: -100px;
	right: -80px;
}

.page .pika-cta-section::after {
	content: '';
	position: absolute;
	width: 200px;
	height: 200px;
	background: rgba(212, 165, 87, 0.1);
	border-radius: 50%;
	bottom: -60px;
	left: -40px;
}

.page .pika-cta-section p {
	color: rgba(255, 255, 255, 0.8);
}

.page .pika-cta-section .pika-section-head {
	margin-bottom: 24px;
}

/* ===== 下層ページ レスポンシブ ===== */
@media (max-width: 767px) {
	.pika-page-header {
		padding: 56px 20px 48px;
	}

	.pika-page-header .pika-section-head h2 {
		font-size: 1.4rem;
	}

	.pika-page-body {
		padding: 40px 20px 60px;
	}

	.pika-detail-heading {
		font-size: 1.15rem;
	}

	.pika-faq-item summary {
		padding: 16px 40px 16px 44px;
		font-size: 0.9rem;
	}

	.pika-faq-item summary::before {
		left: 14px;
		top: 14px;
	}

	.pika-faq-item p {
		padding: 0 16px 16px 44px;
		font-size: 0.9rem;
	}

	.pika-contact-grid {
		grid-template-columns: 1fr;
	}

	.pika-contact-tel,
	.pika-contact-line {
		padding: 32px 20px;
	}

	.pika-contact-form {
		padding: 32px 20px;
	}

	.pika-contact-tel a {
		font-size: 1.5rem !important;
	}

	.pika-staff-photo img {
		max-width: 220px;
		margin: 0 auto;
		display: block;
	}

	.pika-staff-message {
		padding: 32px 24px;
	}

	.pika-course-card {
		padding: 28px 20px;
	}

	.pika-flow-section {
		padding: 40px 20px;
	}

	.pika-access-body {
		padding: 40px 20px 60px;
	}

	.pika-access-routes {
		grid-template-columns: 1fr;
	}

	.pika-access-table th {
		width: 100px;
		padding: 14px 12px;
		font-size: 0.82rem;
	}

	.pika-access-table td {
		padding: 14px 12px;
		font-size: 0.85rem;
	}
}

/* ===== フッターカスタム ===== */
.l-footer__widgetArea .c-widget__title.-footer {
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.l-footer__widgetArea .c-widget {
	font-size: 0.85rem;
	line-height: 1.8;
}

.l-footer__widgetArea a {
	color: rgba(255, 255, 255, 0.75) !important;
	text-decoration: none !important;
	transition: color 0.3s ease;
}

.l-footer__widgetArea a:hover {
	color: var(--pika-blue-light) !important;
}
