/*
Theme Name:   Astra Child - Prestige Party
Theme URI:    https://example.com
Description:  Astra child theme for PRESTIGE PARTY design implementation
Author:       Your Name
Template:     astra
Version:      1.0.0
Text Domain:  astra-child
*/

/* ==========================================================
   0. 変数・共通設定
   ========================================================== */
:root {
	--pp-gold: #c9a961;
	--pp-gold-dark: #a98a4a;
	--pp-navy: #0d1b2a;
	--pp-black: #0a0a0a;
	--pp-cream: #FAF8F6;
	--pp-gray-footer: #4a4a4a;
	--pp-white: #ffffff;
	--pp-font-en: 'Quattrocento', serif;
	--pp-font-jp:  "Shippori Mincho", serif;
}

body {
	font-family: var(--pp-font-jp);
	overflow-x: hidden; /* full-bleed時の横スクロール防止 */
}

#page{
	min-height: auto!important;
}

/* ホーム以外のヘッダー背景色 */
body:not(.home) #masthead,
body:not(.home) #ast-desktop-header,
body:not(.home) #ast-mobile-header,
body:not(.home) .ast-main-header-wrap,
body:not(.home) .ast-primary-header-bar {
	background-color: #0F1940 !important;
}

/* ヘッダー内部の背景を透明にして親の青を表示 */
body:not(.home) #masthead .site-primary-header-wrap,
body:not(.home) #masthead .ast-builder-grid-row-container {
	background-color: transparent !important;
}

.main-header-menu > .menu-item > .menu-link{
	    letter-spacing: 0.15em;
}


/* ==========================================================
   0-1. Astraのコンテナ制約を打ち破る（full-bleed）
   ========================================================== */
.pp-full-bleed {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.pp-en {
	font-family: var(--pp-font-en);
	letter-spacing: 6px ! Important;
    font-weight: bold !important;
    font-size: 30px !important;
    margin-bottom: 30px ! Important;
    background: linear-gradient(90deg, #EBB455 0%, #E0A948 35%, #D69C3A 47%, #FCF1E0 50%, #D69C3A 53%, #E0A948 65%, #EBB455 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.ast-single-post.ast-page-builder-template .site-main > article, .ast-page-builder-template .post-navigation{
	padding:0px;
}

.ast-page-builder-template .entry-header{
	margin: 0px;
}

.ast-primary-header-bar {
    background-color: transparent;
}

.entry-title{
	display: none;
}

.entry-content p{
	margin: 0px;
	letter-spacing: 0.2em;
}

.ast-primary-header-bar{
	border: none;
}

/* ==========================================================
   1. ヘッダー（トップページ：ヒーロー画像に重ねる透過ヘッダー）
   ========================================================== */
body.pp-transparent-header .site-header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 100;
	background: transparent !important;
	border: none;
}

body.pp-transparent-header .site-header,
body.pp-transparent-header .site-header * {
	color: #fff;
}

.pp-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 28px 60px;
}

.pp-logo {
	font-family: var(--pp-font-en);
	font-size: 22px;
	letter-spacing: 0.25em;
	color: #fff;
}

.pp-nav {
	display: flex;
	align-items: center;
	gap: 48px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pp-nav a {
	color: #fff;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-decoration: none;
}

/* ==========================================================
   1-1. ヘッダー（下層ページ：紺色固定ヘッダー）
   トップページ以外の固定ページで使用。
   body に pp-page-header クラスを自動付与しています。
   ========================================================== */
body.pp-page-header .site-header {
	position: relative;
	width: 100%;
	background: var(--pp-navy) !important;
	border: none;
}

body.pp-page-header .site-header,
body.pp-page-header .site-header * {
	color: #fff;
}

/* ナビ内の「パーティー一覧」ボタン（枠線付き） */
.pp-nav-btn {
	display: inline-block;
	padding: 14px 32px;
	border: 1px solid var(--pp-gold);
	color: #fff !important;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-decoration: none;
}

/* ==========================================================
   1-2. 下層ページ：ページタイトル・本文エリア
   ========================================================== */
.pp-page-title-area {
	background: var(--pp-cream);
	padding: 90px 20px 50px;
	text-align: center;
}

.pp-page-title {
	font-family: var(--pp-font-jp);
	font-size: 22px;
	letter-spacing: 0.15em;
	font-weight: 500;
	color: #1a1a1a;
	margin: 0;
}

.pp-page-content {
	background: var(--pp-cream);
	padding: 0 20px 60px !important;
}

.pp-page-content-inner {
	max-width: 800px!important;
	margin: 0 auto;
	font-size: 15px;
	line-height: 2.1;
	color: #333;
}

.pp-page-content-inner h2{
	font-size: 18px;
}

.pp-page-content-inner h3{
	font-size: 16px;
}

.pp-page-content-inner h4{
	font-size: 14px;
}

.pp-page-content-inner p {
	margin: 0 0 1.6em;
}

/* ==========================================================
   2. ヒーローセクション
   ========================================================== */

.pp-hero {
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	min-height: 750px;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	box-sizing: border-box;
	background: #0d1220;
}

/* ==========================================================
   背景スライド
   ========================================================== */

.pp-hero-slides {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

/* 各背景画像 */
.pp-hero-slide {
	position: absolute;
	inset: -2%;
	width: 104%;
	height: 104%;
	opacity: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	transform: scale(1.04);
	animation: ppHeroFade 18s infinite;
	will-change: opacity, transform;
}

/* 1枚目 */
.pp-hero-slide-01 {
	animation-delay: 0s;
}

/* 2枚目 */
.pp-hero-slide-02 {
	animation-delay: 6s;
}

/* 3枚目 */
.pp-hero-slide-03 {
	animation-delay: 12s;
}

/*
  18秒で1周
  1枚あたり約6秒表示
  前後でふわっとクロスフェード
*/
@keyframes ppHeroFade {
	0% {
		opacity: 0;
		transform: scale(1.04);
	}

	5% {
		opacity: 1;
	}

	28% {
		opacity: 1;
	}

	38% {
		opacity: 0;
		transform: scale(1.1);
	}

	100% {
		opacity: 0;
		transform: scale(1.1);
	}
}

/* 背景画像を少し暗くして文字を見やすくする */
.pp-hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(
			180deg,
			rgba(9, 10, 13, 0.18) 0%,
			rgba(8, 9, 12, 0.08) 55%,
			rgba(8, 9, 12, 0.2) 100%
		);
}

/* ==========================================================
   テキスト
   ========================================================== */

.pp-hero-inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1250px;
	margin: 0 auto;
	padding: 135px 40px 0;
	box-sizing: border-box;
	text-align: center;
	color: #fff;
}

/* 日本語サブタイトル */
.pp-hero-sub {
	margin: 0 0 17px !important;
	font-family:
		var(--pp-font-jp),
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"Noto Serif JP",
		serif;
	font-size: clamp(24px, 2.7vw, 32px) !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	letter-spacing: 0.2em;

	background: linear-gradient(
		180deg,
		#fff6cb 0%,
		#f2d477 35%,
		#c99225 68%,
		#f0cf6d 100%
	);

	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;

	filter:
		drop-shadow(0 7px 15px rgba(0, 0, 0, 0.95))
		drop-shadow(0 2px 0 rgba(0, 0, 0, 0.95));
}

/* 英字メインタイトル */
.pp-hero-title {
	margin: 0;
	font-family:
		var(--pp-font-en),
		"Times New Roman",
		"Didot",
		"Bodoni MT",
		serif;
	font-size: clamp(58px, 7vw, 40px);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: 0.12em;
	white-space: nowrap;

	background: linear-gradient(
		180deg,
		#fff5bf 0%,
		#f4dc87 30%,
		#d2a73e 62%,
		#f2d56f 100%
	);

	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;

	filter:
		drop-shadow(0 7px 15px rgba(0, 0, 0, 0.95))
		drop-shadow(0 2px 0 rgba(0, 0, 0, 0.95));
}

/* ==========================================================
   タブレット
   ========================================================== */

@media screen and (max-width: 900px) {
	.pp-hero {
		min-height: 600px;
	}

	.pp-hero-inner {
		padding: 90px 25px 0;
	}

	.pp-hero-sub {
		font-size: 25px !important;
		letter-spacing: 0.14em;
	}

	.pp-hero-title {
		font-size: 58px;
		letter-spacing: 0.09em;
	}
}

/* ==========================================================
   スマートフォン
   ========================================================== */

@media screen and (max-width: 600px) {
	.pp-hero {
		min-height: 520px;
	}

	.pp-hero-slide {
		background-position: center;
	}

	.pp-hero-inner {
		padding: 75px 18px 0;
	}

	.pp-hero-sub {
		margin-bottom: 14px !important;
		font-size: 17px !important;
		line-height: 1.65 !important;
		letter-spacing: 0.1em;
	}

	.pp-hero-title {
		font-size: clamp(34px, 11vw, 48px);
		line-height: 1.15;
		letter-spacing: 0.06em;
		white-space: normal;
	}
}

/* 動きを減らす設定のユーザーには静止画で表示 */
@media (prefers-reduced-motion: reduce) {
	.pp-hero-slide {
		animation: none;
		opacity: 0;
		transform: none;
	}

	.pp-hero-slide-01 {
		opacity: 1;
	}
}
/* ==========================================================
   ABOUTセクション
   ========================================================== */

.pp-about {
	font-family: var(--pp-font-jp);
	position: relative;
	overflow: hidden;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 120px 20px 120px;
	box-sizing: border-box;
	text-align: center;
	color: #f6f2e9;

	/* 粒子画像を背景として指定 */
	background-color: #101521;
	background-image:
		linear-gradient(
			180deg,
			rgba(20, 25, 39, 0.35) 0%,
			rgba(12, 16, 27, 0.15) 100%
		),
		url("http://prestigeparty.jp/wp-content/uploads/2026/07/about-bg-1-scaled.png");

	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}

/* 下部の淡い光 */
.pp-about::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -190px;
	width: 950px;
	height: 350px;
	transform: translateX(-50%);
	pointer-events: none;
	background: radial-gradient(
		ellipse,
		rgba(75, 85, 107, 0.18) 0%,
		rgba(16, 20, 31, 0) 70%
	);
}

.pp-about-inner {
	position: relative;
	z-index: 1;
	max-width: 1180px;
	margin: 0 auto;
}

/* 英字見出し */

.pp-about-label {
    letter-spacing: 6px!Important;
    font-weight: bold !important;
    font-size: 28px !important;
    margin-bottom: 30px!Important;
    background: linear-gradient(90deg, #EBB455 0%, #E0A948 35%, #D69C3A 47%, #FCF1E0 50%, #D69C3A 53%, #E0A948 65%, #EBB455 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 2px 6px rgba(0, 0, 0, 0.35);
}

/* 日本語メイン見出し */
.pp-about-title {
	margin: 0 0 45px;
	font-size: clamp(30px, 4.3vw, 30px);
	font-weight: bold;
	line-height: 1.5;
	letter-spacing: 0.12em;

	/* 添付に近いゴールドグラデーション */
	background: linear-gradient(
		180deg,
		#fff1c4 0%,
		#f5ce79 35%,
		#dca446 68%,
		#f0c666 100%
	);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;

	text-shadow:
		0 0 14px rgba(235, 180, 81, 0.08),
		0 1px 0 rgba(255, 255, 255, 0.06);
}

/* 本文全体 */
.pp-about-content {
	max-width: 1000px;
	margin: 0 auto;
}

/* 本文 */
.pp-about-text {
    font-size: 17.6px !important;
    color: #ffffff;
    line-height: 1.8;
    font-weight: 500 !important;
    margin-bottom: 20px;
	letter-spacing: 0.4em!important;
}

.pp-about-text:last-child {
	margin-bottom: 0;
}

/* ==========================================================
   タブレット
   ========================================================== */

@media screen and (max-width: 900px) {
	.pp-about {
		padding: 62px 28px 48px;
		background-position: center bottom;
	}

	.pp-about-label {
		margin-bottom: 32px !important;
	}

	.pp-about-title {
		margin-bottom: 36px;
	}

	.pp-about-text {
		font-size: 15px;
		margin-bottom: 34px;
		line-height: 2;
	}
}

/* ==========================================================
   スマートフォン
   ========================================================== */

@media screen and (max-width: 600px) {
	.pp-about {
		padding: 52px 20px 44px;
		background-position: center bottom;
	}

	.pp-about-label {
		margin-bottom: 28px !important;
		font-size: 22px !important;
		letter-spacing: 0.18em;
	}

	.pp-about-title {
		margin-bottom: 32px;
		font-size: 27px;
		line-height: 1.65;
		letter-spacing: 0.08em;
	}

	.pp-about-text {
		margin-bottom: 31px;
		font-size: 14px;
		line-height: 2;
		letter-spacing: 0.08em;
	}

	.pp-about-text br {
		display: none;
	}
}
/* ==========================================================
   4. UP COMING PARTY（カードセクション）
   ========================================================== */
.pp-upcoming {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--pp-cream);
	padding: 90px 40px;
	box-sizing: border-box;
}

.pp-section-title {
	text-align: center;
	font-family: var(--pp-font-en);
	font-size: 30px;
	letter-spacing: 0.25em;
	color: var(--pp-gold-dark);
	margin-bottom: 60px;
}

.pp-card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	max-width: 1200px;
	margin: 0 auto;
}

@media (max-width: 900px) {
	.pp-card-grid { grid-template-columns: 1fr; }
}


.pp-card-thumb {
	position: relative;
}

.pp-card-thumb img {
	width: 100%;
	display: block;
}

.pp-card-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	padding: 6px 14px;
	font-size: 12px;
	color: #fff;
	background: #b23b3b; /* 残りわずか(赤) */
}
.pp-card-badge.wait   { background: #4a7a5a; } /* キャンセル待ち(緑) */
.pp-card-badge.open   { background: #1a1a1a; } /* 募集中(黒) */

.pp-card-body {
	padding: 20px 4px 0;
}

.pp-card-area {
	font-size: 13px;
	color: #888;
	border-bottom: 1px solid #ddd;
	padding-bottom: 14px;
	margin-bottom: 14px;
}

.pp-card-title {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
	margin-bottom: 16px;
}

.pp-card-info {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	font-size: 13px;
	color: #555;
}

.pp-card-info li {
	display: flex;
	gap: 10px;
	padding: 4px 0;
}

.pp-card-info .label {
	color: var(--pp-gold-dark);
}

.pp-card-status {
	display: flex;
	gap: 10px;
	margin-bottom: 14px;
}

.pp-card-status span {
	flex: 1;
	text-align: center;
	font-size: 12px;
	padding: 8px 0;
	border: 1px solid #d8cbb0;
	color: #6b5a3a;
}

.pp-card-btn {
	display: block;
	text-align: center;
	padding: 14px 0;
	background: linear-gradient(180deg, #d8bf7e, #b8944f);
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	letter-spacing: 0.1em;
}

/* ==========================================================
   5. NEWSセクション（黒背景）
   ========================================================== */
.pp-news {
	width: 100vw;
	max-width: 100vw!important;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--pp-black);
	color: #fff;
	padding: 120px 20px;
	box-sizing: border-box;
}

.pp-news .pp-section-title {
	color: var(--pp-gold);
}


.pp-news-list {
	max-width: 700px!important;
	margin: 0 auto!important;
	list-style: none;
	padding: 0;
}

.pp-news-item {
	padding: 20px 0;
	border-bottom: 1px solid #333;
}

.pp-news-date {
	font-family: var(--pp-font-en);
	color: var(--pp-gold);
	font-size: 14px;
	margin-bottom: 10px!important;
}

.pp-news-text {
	font-size: 15px;
}

/* ==========================================================
   6. フッター
   ========================================================== */
.pp-footer {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--pp-gray-footer);
	color: #eee;
	padding: 70px 60px 30px;
	box-sizing: border-box;
}

.pp-footer-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 60px;
	justify-content: space-between;
	max-width: 1200px;
	margin: 0 auto;
}

.pp-footer-logo {
	font-family: var(--pp-font-en);
	font-size: 18px;
	letter-spacing: 0.2em;
}

.pp-footer-cols {
	display: flex;
	gap: 60px;
}

.pp-footer-cols ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pp-footer-cols li {
	margin-bottom: 14px;
	font-size: 13px;
}

.pp-footer-cols a {
	color: #eee;
	letter-spacing: 0.18em;
	text-decoration: none!important;
}

.pp-footer-social {
	display: flex;
	gap: 14px;
}

.pp-footer-bottom {
    text-align: center;
    font-size: 12px;
    color: #ccc;
    font-family: "Noto Sans JP" !important;
    letter-spacing: 0.1em;
    margin-top: 80px;
}

@media (max-width: 768px) {
	.pp-footer-inner { flex-direction: column; gap: 30px; }
	.pp-footer-cols { flex-direction: column; gap: 20px; }
}


/* ============================================================
   特定商取引法に基づく表記
============================================================ */

.pp-law-table {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  border-top: 1px solid #d4d4d4;
  color: #666;
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 2;
}

.pp-law-row {
  display: grid;
  grid-template-columns: 245px minmax(0, 1fr);
  border-bottom: 1px solid #d4d4d4;
}

.pp-law-label {
  display: flex;
  align-items: center;
  min-height: 74px;
  padding: 24px 45px;
  border-right: 1px solid #d4d4d4;
  background: #f1f1ef;
  color: #777;
}

.pp-law-value {
  display: flex;
  align-items: center;
  min-height: 74px;
  padding: 24px 52px;
  background: white;
}

.pp-law-value p {
  width: 100%;
  margin: 0 0 12px;
}

.pp-law-value p:last-child {
  margin-bottom: 0;
}

.pp-law-value a {
  color: #666;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pp-law-value a:hover {
  opacity: 0.65;
}

.pp-law-list {
  width: 100%;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

.pp-law-list li {
  position: relative;
  margin: 4px 0;
  padding-left: 16px;
}

.pp-law-list li::before {
  content: "・";
  position: absolute;
  top: 0;
  left: 0;
}

/* 複数行の内容を上揃え */
.pp-law-row:has(.pp-law-value p),
.pp-law-row:has(.pp-law-list) {
  align-items: stretch;
}

.pp-law-row:has(.pp-law-value p) .pp-law-label,
.pp-law-row:has(.pp-law-list) .pp-law-label {
  align-items: center;
}

.pp-law-row:has(.pp-law-value p) .pp-law-value,
.pp-law-row:has(.pp-law-list) .pp-law-value {
  display: block;
}

/* ページ全体の余白 */
.pp-page-content {
  padding: 80px 30px 150px;
}

.pp-page-content-inner {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

/* タブレット */
@media screen and (max-width: 1024px) {
  .pp-law-table {
    max-width: 850px;
  }

  .pp-law-row {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  .pp-law-label {
    padding: 22px 30px;
  }

  .pp-law-value {
    padding: 22px 36px;
  }
}

/* スマートフォン */
@media screen and (max-width: 767px) {
  .pp-page-content {
    padding: 50px 18px 90px;
  }

  .pp-law-table {
    font-size: 13px;
    line-height: 1.9;
  }

  .pp-law-row {
    display: block;
  }

  .pp-law-label {
    display: block;
    min-height: 0;
    padding: 14px 18px;
    border-right: 0;
    border-bottom: 1px solid #d4d4d4;
    background: #f1f1ef;
    color: #555;
    font-weight: 500;
  }

  .pp-law-value {
    display: block;
    min-height: 0;
    padding: 18px;
  }

  .pp-law-value p {
    margin-bottom: 10px;
  }
}







/* ============================================================
   カレンダー外側
============================================================ */

.pp-schedule {
  width: 100%;
  padding: 0 30px 170px;
  overflow: visible;
  box-sizing: border-box;
  background: #FAF8F6;
}

.pp-schedule-inner {
  width: 100%;
  max-width: 980px!important;
  margin: 0 auto;
}

.pp-calendar-box {
  width: 100%;
  padding: 62px 70px 70px;
  overflow: visible;
  border: 1px solid #d8d8d8;
  background: #fff;
  box-sizing: border-box;
}



/* ============================================================
   FullCalendar全体
============================================================ */

.pp-calendar-box .wpfc-calendar-wrapper,
.pp-calendar-box .wpfc-calendar,
.pp-calendar-box .fc {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0;
  overflow: visible !important;
  color: #626262;
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  box-sizing: border-box;
}

/* 検索欄が空の場合は非表示 */
.pp-calendar-box .wpfc-calendar-search:empty {
  display: none !important;
}

/* ============================================================
   ツールバー
   ＜ 9 / September. 2026 ＞
============================================================ */

.pp-calendar-box .fc-toolbar.fc-header-toolbar {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 115px;
  margin: 0 0 28px !important;
  padding: 0 70px;
  box-sizing: border-box;
}

/* FullCalendar旧版のfloatを解除 */
.pp-calendar-box .fc-toolbar .fc-left,
.pp-calendar-box .fc-toolbar .fc-center,
.pp-calendar-box .fc-toolbar .fc-right {
  float: none !important;
}

/* 左側の操作ボタン */
.pp-calendar-box .fc-toolbar .fc-left {
  position: static !important;
  display: block !important;
}

/* 中央年月 */
.pp-calendar-box .fc-toolbar .fc-center {
  position: static !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
}

/* 右側 */
.pp-calendar-box .fc-toolbar .fc-right {
  display: none !important;
}

/* float解除用要素 */
.pp-calendar-box .fc-toolbar .fc-clear {
  display: none !important;
}

/* ============================================================
   不要なボタンを非表示
============================================================ */

/* 今日ボタン */
.pp-calendar-box .fc-today-button {
  display: none !important;
}

/* 月・週・日表示切り替え */
.pp-calendar-box .fc-month-button,
.pp-calendar-box .fc-basicWeek-button,
.pp-calendar-box .fc-basicDay-button,
.pp-calendar-box .fc-agendaWeek-button,
.pp-calendar-box .fc-agendaDay-button,
.pp-calendar-box .fc-listMonth-button,
.pp-calendar-box .fc-listWeek-button,
.pp-calendar-box .fc-listDay-button {
  display: none !important;
}

/* 右側にある表示切り替えグループ */
.pp-calendar-box .fc-toolbar .fc-right,
.pp-calendar-box .fc-toolbar .fc-right .fc-button-group {
  display: none !important;
}

/* ============================================================
   前月・次月ボタン
============================================================ */

/* 前月・次月が入っているグループ */
.pp-calendar-box .fc-toolbar .fc-left > .fc-button-group {
  position: static !important;
  display: block !important;
  margin: 0 !important;
}

/* 前月ボタン */
.pp-calendar-box .fc-prev-button {
  position: absolute !important;
  top: 50%;
  left: 0;
  z-index: 3;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 46px;
  min-width: 46px;
  height: 46px;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #464646 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transform: translateY(-50%);
  cursor: pointer;
}

/* 次月ボタン */
.pp-calendar-box .fc-next-button {
  position: absolute !important;
  top: 50%;
  right: 0;
  z-index: 3;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 46px;
  min-width: 46px;
  height: 46px;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #464646 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transform: translateY(-50%);
  cursor: pointer;
}

/* jQuery UIの標準装飾を解除 */
.pp-calendar-box .fc-prev-button.ui-button,
.pp-calendar-box .fc-next-button.ui-button,
.pp-calendar-box .fc-prev-button.ui-state-default,
.pp-calendar-box .fc-next-button.ui-state-default,
.pp-calendar-box .fc-prev-button.ui-state-hover,
.pp-calendar-box .fc-next-button.ui-state-hover,
.pp-calendar-box .fc-prev-button.ui-state-active,
.pp-calendar-box .fc-next-button.ui-state-active {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* プラグイン標準矢印を非表示 */
.pp-calendar-box .fc-prev-button .ui-icon,
.pp-calendar-box .fc-next-button .ui-icon {
  display: none !important;
  background-image: none !important;
}

/* CSSで矢印を作る */
.pp-calendar-box .fc-prev-button::before,
.pp-calendar-box .fc-next-button::before {
  content: "";
  display: block;
  width: 11px;
  height: 11px;
  border-top: 1px solid currentColor;
  border-left: 1px solid currentColor;
}

/* 左矢印 */
.pp-calendar-box .fc-prev-button::before {
  transform: rotate(-45deg);
}

/* 右矢印 */
.pp-calendar-box .fc-next-button::before {
  transform: rotate(135deg);
}

/* ホバー */
.pp-calendar-box .fc-prev-button:hover,
.pp-calendar-box .fc-next-button:hover {
  color: #111a45 !important;
  opacity: 0.55;
}

/* クリック・フォーカス */
.pp-calendar-box .fc-prev-button:focus,
.pp-calendar-box .fc-next-button:focus,
.pp-calendar-box .fc-prev-button:active,
.pp-calendar-box .fc-next-button:active {
  border: 0 !important;
  background: transparent !important;
  color: #111a45 !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ============================================================
   月タイトル
============================================================ */

.pp-calendar-box .fc-center h2,
.pp-calendar-box .fc-toolbar-title {
  display: flex !important;
  align-items: baseline;
  justify-content: center;
  width: auto;
  min-width: 0;
  margin: 0 !important;
  color: #3b3b3b;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}

/* ============================================================
   月タイトル
   添付デザイン：
   
        3
   March. 2026
============================================================ */


/* JS変換後の元文字を非表示 */
.pp-calendar-box .fc-center h2.pp-calendar-title-formatted,
.pp-calendar-box .fc-toolbar-title.pp-calendar-title-formatted {
  font-size: 0 !important;
}
/* ===========================================
   月タイトル
=========================================== */

.pp-calendar-box .fc-center h2,
.pp-calendar-box .fc-toolbar-title {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    text-align: center;
    font-family: Georgia, "Times New Roman", serif;
}

/* 月の数字 */
.pp-calendar-box .pp-calendar-month-number{
    display:block !important;
    font-size:54px !important;
    line-height:.9 !important;
    font-weight:400 !important;
    color:#373737 !important;
    margin:0 !important;
}
/* March. 2026 */
.pp-calendar-box .pp-calendar-month-text{
    display:block;
    margin-top:18px;
    font-size:22px;
    line-height:1;
    font-weight:400;
    letter-spacing:.12em;
    color:#555;
    font-family:Georgia,"Times New Roman",serif;
}
/* JSが動かなかった場合の標準タイトル */
.pp-calendar-box .fc-center h2:not(.pp-calendar-title-formatted),
.pp-calendar-box .fc-toolbar-title:not(.pp-calendar-title-formatted) {
  font-size: 18px;
  letter-spacing: 0.08em;
}

/* ============================================================
   カレンダー内スクロールを解除
============================================================ */

.pp-calendar-box .fc-view-container,
.pp-calendar-box .fc-view,
.pp-calendar-box .fc-month-view,
.pp-calendar-box .fc-basic-view,
.pp-calendar-box .fc-scroller,
.pp-calendar-box .fc-day-grid-container,
.pp-calendar-box .fc-day-grid,
.pp-calendar-box .fc-body,
.pp-calendar-box .fc-body > tr,
.pp-calendar-box .fc-body > tr > td {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
}

/* インライン指定の高さとoverflowを上書き */
.pp-calendar-box .fc-scroller.fc-day-grid-container {
  height: auto !important;
  overflow: visible !important;
}

/* カレンダー内にスクロールバーを出さない */
.pp-calendar-box .fc-scroller {
  overflow-x: visible !important;
  overflow-y: visible !important;
}

/* ============================================================
   カレンダー本体
============================================================ */

.pp-calendar-box .fc-view table,
.pp-calendar-box .fc-head table,
.pp-calendar-box .fc-bg table,
.pp-calendar-box .fc-content-skeleton table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse;
  border-spacing: 0;
}

/* カレンダー外枠 */
.pp-calendar-box .fc-view > table {
  border: 1px solid #bcbcbc !important;
}

/* セルの境界線 */
.pp-calendar-box .fc-view table th,
.pp-calendar-box .fc-view table td {
  min-width: 0 !important;
  border-color: #bcbcbc !important;
  box-sizing: border-box;
}

/* 7列均等 */
.pp-calendar-box .fc-day-header,
.pp-calendar-box .fc-day,
.pp-calendar-box .fc-day-top {
  width: 14.285714% !important;
  min-width: 0 !important;
  max-width: 14.285714% !important;
}

/* ============================================================
   曜日ヘッダー
============================================================ */

.pp-calendar-box .fc-day-header {
  height: 54px;
  padding: 0 !important;
  border-color: #bcbcbc !important;
  background: #f0efec;
  color: #606060;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.12em;
  line-height: 54px;
  text-align: center;
}

/* 曜日の文字 */
.pp-calendar-box .fc-day-header span,
.pp-calendar-box .fc-day-header a {
  display: block;
  width: 100%;
  padding: 0 !important;
  color: inherit;
  font-weight: 400;
  line-height: 54px;
  text-decoration: none;
}

/* 日曜日 */
.pp-calendar-box .fc-day-header.fc-sun,
.pp-calendar-box .fc-sun .fc-day-number {
  color: #da5555;
}

/* 土曜日 */
.pp-calendar-box .fc-day-header.fc-sat,
.pp-calendar-box .fc-sat .fc-day-number {
  color: #6784c8;
}

/* ============================================================
   日付セル
============================================================ */

.pp-calendar-box .fc-row.fc-week {
  min-height: 168px !important;
}

/* セル背景 */
.pp-calendar-box .fc-day,
.pp-calendar-box .fc-day-top {
  background: #fff;
}

/* 土日背景 */
.pp-calendar-box .fc-day.fc-sun,
.pp-calendar-box .fc-day.fc-sat {
  background: #fbfaf5;
}

/* 日付を左上へ */
.pp-calendar-box .fc-day-top {
  text-align: left;
}

/* 日付数字 */
.pp-calendar-box .fc-day-number {
  float: none !important;
  display: block;
  padding: 13px 12px !important;
  color: #666;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  text-align: left;
  text-decoration: none;
}

/* 前月・翌月 */
.pp-calendar-box .fc-other-month .fc-day-number,
.pp-calendar-box .fc-day.fc-other-month {
  opacity: 0.35;
}

/* 今日の強調背景を解除 */
.pp-calendar-box .fc-today,
.pp-calendar-box .fc-day.fc-today {
  background: #fff !important;
}

/* 今日が土日 */
.pp-calendar-box .fc-day.fc-today.fc-sun,
.pp-calendar-box .fc-day.fc-today.fc-sat {
  background: #fbfaf5 !important;
}

/* ============================================================
   イベント
============================================================ */

.pp-calendar-box .fc-event,
.pp-calendar-box .fc-day-grid-event,
.pp-calendar-box a.fc-event {
  max-width: calc(100% - 8px);
  margin: 3px 4px;
  padding: 7px 8px;
  overflow: hidden;
  border: 0 !important;
  border-radius: 3px;
  background: #111a45 !important;
  color: #fff !important;
  font-family:
    "Yu Mincho",
    "Hiragino Mincho ProN",
    "Noto Serif JP",
    serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.45;
  text-decoration: none;
  box-shadow: none;
  box-sizing: border-box;
}

/* イベント内の文字 */
.pp-calendar-box .fc-event,
.pp-calendar-box .fc-event .fc-content,
.pp-calendar-box .fc-event .fc-title,
.pp-calendar-box .fc-event .fc-time {
  color: #fff !important;
}

/* イベント名 */
.pp-calendar-box .fc-event .fc-title {
  display: block;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* イベントホバー */
.pp-calendar-box .fc-event:hover {
  opacity: 0.8;
}

/* ============================================================
   タブレット
============================================================ */

@media screen and (max-width: 1024px) {
  .pp-schedule-title-area {
    padding: 70px 20px 50px;
  }

  .pp-schedule {
    padding: 0 24px 130px;
  }

  .pp-calendar-box {
    padding: 45px 35px 50px;
  }

  .pp-calendar-box .fc-toolbar.fc-header-toolbar {
    min-height: 100px;
    padding: 0 55px;
  }

  .pp-calendar-box .fc-row.fc-week {
    min-height: 125px !important;
  }

  .pp-calendar-box .fc-event,
  .pp-calendar-box .fc-day-grid-event,
  .pp-calendar-box a.fc-event {
    padding: 6px;
    font-size: 10px;
  }
}

/* ============================================================
   スマートフォン
============================================================ */

@media screen and (max-width: 767px) {
  .pp-schedule-title-area {
    padding: 50px 18px 38px;
  }

  .pp-schedule-title-area .pp-page-title {
    font-size: 22px;
    letter-spacing: 0.14em;
  }

  .pp-schedule {
    width: 100%;
    padding: 0 8px 90px;
    overflow: visible;
  }

  .pp-schedule-inner {
    width: 100%;
    max-width: 100%;
  }

  .pp-calendar-box {
    width: 100%;
    padding: 24px 4px 28px;
    overflow: visible;
  }

  .pp-calendar-box .wpfc-calendar-wrapper,
  .pp-calendar-box .wpfc-calendar,
  .pp-calendar-box .fc {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  /* 左矢印・年月・右矢印 */
  .pp-calendar-box .fc-toolbar.fc-header-toolbar {
    min-height: 82px;
    margin-bottom: 18px !important;
    padding: 0 36px;
  }

  .pp-calendar-box .fc-prev-button,
  .pp-calendar-box .fc-next-button {
    width: 32px;
    min-width: 32px;
    height: 32px;
  }

  .pp-calendar-box .fc-prev-button::before,
  .pp-calendar-box .fc-next-button::before {
    width: 8px;
    height: 8px;
  }

  /* 月数字 */
  .pp-calendar-box .pp-calendar-month-number {
    font-size: 25px;
  }

  /* スラッシュ */
  .pp-calendar-box .pp-calendar-month-number::after {
    margin: 0 6px;
    font-size: 13px;
    transform: translateY(-2px);
  }

  /* September. 2026 */
  .pp-calendar-box .pp-calendar-month-text {
    font-size: 10px;
    letter-spacing: 0.03em;
    transform: translateY(-2px);
  }

  /* 曜日 */
  .pp-calendar-box .fc-day-header {
    height: 36px;
    font-size: 8px;
    letter-spacing: 0;
    line-height: 36px;
  }

  .pp-calendar-box .fc-day-header span,
  .pp-calendar-box .fc-day-header a {
    line-height: 36px;
  }

  /* 日付セル */
  .pp-calendar-box .fc-row.fc-week {
    min-height: 70px !important;
  }

  /* 日付数字 */
  .pp-calendar-box .fc-day-number {
    padding: 5px 3px !important;
    font-size: 9px;
  }

  /* イベント */
  .pp-calendar-box .fc-event,
  .pp-calendar-box .fc-day-grid-event,
  .pp-calendar-box a.fc-event {
    max-width: calc(100% - 2px);
    margin: 1px;
    padding: 3px 1px;
    border-radius: 2px;
    font-size: 6px;
    letter-spacing: 0;
    line-height: 1.2;
  }

  .pp-calendar-box .fc-event .fc-time {
    display: none;
  }
}







/* ==========================================================
   よくある質問ページ
   ========================================================== */

.pp-faq-title-area {
	padding-bottom: 50px;
}

/* FAQ全体 */
.pp-faq {
	width: 100%;
	padding: 0 20px 180px;
	box-sizing: border-box;
	background: #fbfaf8;
}

.pp-faq-inner {
	width: 100%;
	max-width: 900px!important;
	margin: 0 auto;
}

/* 各質問 */
.pp-faq-item {
	width: 100%;
	margin: 0 0 18px;
	border: 1px solid #d2d2d2;
	background: #fff;
	box-sizing: border-box;
}

/* details標準アイコンを非表示 */
.pp-faq-item > summary {
	list-style: none;
}

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

/* 質問部分 */
.pp-faq-question {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	min-height: 62px;
	padding: 16px 50px;
	box-sizing: border-box;
	cursor: pointer;
	font-family:
		var(--pp-font-jp),
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"Noto Serif JP",
		serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.12em;
	color: #333;
	transition:
		background-color 0.25s ease,
		color 0.25s ease;
}

.pp-faq-question:hover {
	background: #fafafa;
}

/* フォーカス時 */
.pp-faq-question:focus-visible {
	outline: 2px solid #152044;
	outline-offset: 2px;
}

/* 矢印 */
.pp-faq-icon {
	position: relative;
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	margin-right: 2px;
}

.pp-faq-icon::before,
.pp-faq-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 8px;
	height: 1px;
	background: #1e2735;
	transition: transform 0.25s ease;
}

.pp-faq-icon::before {
	left: 0;
	transform: rotate(45deg);
}

.pp-faq-icon::after {
	right: 0;
	transform: rotate(-45deg);
}

/* 開いているときは上向き */
.pp-faq-item[open] .pp-faq-icon::before {
	transform: rotate(-45deg);
}

.pp-faq-item[open] .pp-faq-icon::after {
	transform: rotate(45deg);
}

/* 回答部分 */
.pp-faq-answer {
	padding: 32px 50px 31px;
	border-top: 1px solid #d6d6d6;
	background: #f2f1ef;
	box-sizing: border-box;
	font-family:
		var(--pp-font-jp),
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"Noto Serif JP",
		serif;
	color: #555;
}

.pp-faq-answer p {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.07em;
	color: #555;
}

.pp-faq-answer p:last-child {
	margin-bottom: 0;
}

.pp-faq-answer-heading {
	margin-top: 24px !important;
	margin-bottom: 6px !important;
	color: #444 !important;
}

.pp-faq-note {
	margin-top: 25px !important;
	font-size: 12px !important;
	line-height: 2.1 !important;
}

/* 開閉時の表示 */
.pp-faq-item:not([open]) .pp-faq-answer {
	display: none;
}

/* ==========================================================
   タブレット
   ========================================================== */

@media screen and (max-width: 900px) {
	.pp-faq {
		padding: 0 30px 140px;
	}

	.pp-faq-question {
		padding: 16px 30px;
	}

	.pp-faq-answer {
		padding: 28px 30px;
	}
}

/* ==========================================================
   スマートフォン
   ========================================================== */

@media screen and (max-width: 600px) {
	.pp-faq-title-area {
		padding-bottom: 38px;
	}

	.pp-faq {
		padding: 0 16px 100px;
	}

	.pp-faq-item {
		margin-bottom: 12px;
	}

	.pp-faq-question {
		gap: 16px;
		min-height: 58px;
		padding: 14px 18px;
		font-size: 13px;
		line-height: 1.7;
		letter-spacing: 0.06em;
	}

	.pp-faq-icon {
		width: 10px;
		height: 10px;
	}

	.pp-faq-icon::before,
	.pp-faq-icon::after {
		width: 7px;
	}

	.pp-faq-answer {
		padding: 23px 18px;
	}

	.pp-faq-answer p {
		font-size: 12px;
		line-height: 1.9;
		letter-spacing: 0.04em;
	}

	.pp-faq-note {
		font-size: 11px !important;
	}
}





/* ============================================================
   お問い合わせページ
============================================================ */

.pp-contact-title-area {
  padding-bottom: 0;
}

.pp-contact-lead {
  max-width: 760px!important;
  margin: 38px auto 0!important;
  padding: 0 20px;
  color: #666;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.12em;
  text-align: center;
}

.pp-contact {
  padding: 50px 20px 180px;
  background: #faf9f7;
}

.pp-contact-inner {
  width: 100%;
  max-width: 820px!important;
  margin: 0 auto;
}

/* フォーム全体の枠 */
.pp-contact-form {
  box-sizing: border-box;
  width: 100%;
  padding: 20px 55px 55px;
  border: 1px solid #dedbd5;
  background: rgba(255, 255, 255, 0.55);
}

/* 各入力項目 */
.pp-form-row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 38px;
  margin: 0;
  padding: 32px 0;
  border-bottom: 1px solid #e8e5df;
}

.pp-form-row:first-child {
  border-top: none;
}

.pp-form-heading {
  padding-top: 11px;
}

.pp-form-heading label {
  display: inline-block;
  color: #383838;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.16em;
}

/* 必須ラベルを付ける場合 */
.pp-required {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 7px;
  border: 1px solid #c8a869;
  color: #9d7b3f;
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  vertical-align: middle;
}

.pp-form-content {
  width: 100%;
  min-width: 0;
}

.pp-name-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.pp-contact-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

/* 入力欄 */
.pp-contact-form .pp-form-control {
  box-sizing: border-box;
  display: block;
  width: 100%;
  height: 48px;
  padding: 10px 16px;
  border: 1px solid #dedbd5;
  border-radius: 0;
  outline: none;
  background: #fff;
  color: #333;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0.08em;
  transition:
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    background-color 0.25s ease;
}

.pp-contact-form .pp-form-control:hover {
  border-color: #c9c4bb;
}

.pp-contact-form .pp-form-control:focus {
  border-color: #9e8a65;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(158, 138, 101, 0.08);
}

.pp-contact-form .pp-form-control::placeholder {
  color: #bbb6ae;
  opacity: 1;
}

.pp-contact-form select.pp-form-control {
  appearance: auto;
  padding-right: 36px;
  cursor: pointer;
}

/* 住所欄 */
.pp-address-field {
  margin-bottom: 20px;
}

.pp-address-field:last-child {
  margin-bottom: 0;
}

.pp-address-small {
  width: 58%;
}

.pp-field-label {
  display: block;
  margin-bottom: 8px;
  color: #555;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.12em;
}

/* お問い合わせ内容 */
.pp-message-row {
  align-items: start;
}

.pp-contact-form .pp-form-textarea {
  height: 190px;
  min-height: 190px;
  padding: 15px 16px;
  line-height: 1.8;
  resize: vertical;
}

/* 送信ボタン */
.pp-form-submit {
  margin-top: 48px;
  text-align: center;
}

.pp-contact-form .pp-submit-button {
  box-sizing: border-box;
  min-width: 280px;
  padding: 18px 45px;
  border: 1px solid #172044;
  border-radius: 0;
  background: #172044;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0.22em;
  cursor: pointer;
  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    border-color 0.3s ease;
}

.pp-contact-form .pp-submit-button:hover {
  border-color: #172044;
  background: transparent;
  color: #172044;
}

/* Contact Form 7 */
.pp-contact-form .wpcf7-spinner {
  display: block;
  margin: 15px auto 0;
}

.pp-contact-form .wpcf7-not-valid-tip {
  margin-top: 7px;
  color: #a65b52;
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.pp-contact-form .wpcf7-response-output {
  margin: 30px 0 0;
  padding: 14px 18px;
  border-width: 1px;
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

/* タブレット・スマートフォン */
@media screen and (max-width: 767px) {
  .pp-contact-lead {
    margin-top: 28px;
    font-size: 13px;
    line-height: 2;
    text-align: left;
  }

  .pp-contact {
    padding: 45px 16px 100px;
  }

  .pp-contact-form {
    padding: 5px 22px 38px;
  }

  .pp-form-row {
    display: block;
    padding: 26px 0;
  }

  .pp-form-heading {
    padding-top: 0;
    margin-bottom: 12px;
  }

  .pp-form-heading label {
    font-size: 13px;
  }

  .pp-name-fields {
    gap: 10px;
  }

  .pp-address-small {
    width: 100%;
  }

  .pp-contact-form .pp-form-control {
    height: 46px;
  }

  .pp-contact-form .pp-form-textarea {
    height: 180px;
  }

  .pp-form-submit {
    margin-top: 38px;
  }

  .pp-contact-form .pp-submit-button {
    width: 100%;
    min-width: 0;
  }
}

@media screen and (max-width: 480px) {
  .pp-contact-form {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pp-name-fields {
    grid-template-columns: 1fr;
  }
}






/* ============================================================
   Events Manager イベント詳細ページ
============================================================ */

.single-event .site-content,
.single-event .ast-container,
.single-event .content-area,
.single-event .site-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.single-event .entry-header,
.single-event .entry-title {
  display: none;
}

.pp-event-detail {
  background: #faf9f6;
  color: #303030;
  font-family: "Noto Serif JP", serif;
}

/* メインビジュアル */
.pp-event-hero {
  width: 100%;
  height: clamp(280px, 37vw, 570px);
  overflow: hidden;
  background: #ece9e3;
}

.pp-event-hero img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

/* 2カラム */
.pp-event-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 70px;
  width: min(1120px, calc(100% - 80px));
  margin: 0 auto;
  padding: 95px 0 150px;
}

.pp-event-main {
  min-width: 0;
}

.pp-event-heading {
  margin-bottom: 65px;
}

.pp-event-title {
  margin: 0;
  color: #282828;
  font-size: clamp(23px, 2.2vw, 34px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.12em;
}

/* 各セクション */
.pp-event-section {
  margin-top: 75px;
}

.pp-event-section:first-of-type {
  margin-top: 0;
}

.pp-event-section-title {
  position: relative;
  margin: 0 0 28px;
  padding-bottom: 15px;
  color: #333;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.15em;
}

.pp-event-section-title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 1px;
  background: #a88952;
  content: "";
}

.pp-event-text {
  color: #555;
  font-size: 14px;
  line-height: 2.25;
  letter-spacing: 0.08em;
}

.pp-event-text p {
  margin: 0 0 1.5em;
}

.pp-event-text h2,
.pp-event-text h3 {
  margin: 40px 0 18px;
  font-weight: 500;
  letter-spacing: 0.12em;
}

/* 表形式 */
.pp-event-table {
  border-top: 1px solid #d8d4cc;
}

.pp-event-table-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  border-bottom: 1px solid #d8d4cc;
}

.pp-event-table-heading,
.pp-event-table-content {
  padding: 20px 10px;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.07em;
}

.pp-event-table-heading {
  color: #555;
}

.pp-event-table-content {
  color: #4d4d4d;
}

/* ============================================================
   開催会場
============================================================ */

.pp-event-venue {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  align-items: start;
  gap: 34px;
}

.pp-event-venue-image {
  width: 100%;
  overflow: hidden;
  background: #ece9e3;
}

.pp-event-venue-image img {
  display: block;
  width: 100%;
  height: 210px;
  margin: 0;
  object-fit: cover;
}

.pp-event-venue-info {
  min-width: 0;
}

.pp-event-venue-name {
  margin: 0 0 15px;
  color: #333;
  font-size: 19px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.09em;
}

.pp-event-venue-description {
  color: #555;
  font-size: 13px;
  line-height: 2.1;
  letter-spacing: 0.07em;
}

.pp-event-venue-description p {
  margin: 0 0 1.2em;
}

.pp-event-address {
  margin: 25px 0 0;
  color: #555;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.07em;
}

.pp-event-map {
  margin-top: 28px;
}

.pp-event-map iframe,
.pp-event-map .em-location-map-container {
  width: 100% !important;
  min-height: 320px;
}

@media screen and (max-width: 600px) {
  .pp-event-venue {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .pp-event-venue-image img {
    height: 220px;
  }

  .pp-event-venue-name {
    font-size: 17px;
  }
}

/* サイドバー */
.pp-event-sidebar {
  min-width: 0;
}

.pp-event-booking-card {
  position: sticky;
  top: 110px;
  padding: 38px 28px 32px;
  background: #efede8;
}

.pp-event-booking-label {
  margin: 0 0 28px;
  color: #444;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.11em;
}

.pp-event-summary {
  padding-bottom: 24px;
  border-bottom: 1px solid #d3cec5;
}

.pp-event-summary p {
  margin: 0 0 8px;
  color: #555;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: 0.06em;
}

.pp-event-summary-category a {
  color: inherit;
  text-decoration: none;
}

.pp-event-summary-date {
  margin-top: 16px !important;
}

.pp-event-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 24px 0 18px;
  padding: 14px 15px;
  background: #fff;
}

.pp-event-price span {
  color: #555;
  font-size: 13px;
  letter-spacing: 0.1em;
}

.pp-event-price strong {
  color: #333;
  font-size: 14px;
  font-weight: 500;
}

.pp-event-booking-button {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 54px;
  border: 1px solid #14141a;
  background: #14141a;
  color: #fff !important;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.25em;
  text-decoration: none !important;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.pp-event-booking-button:hover {
  background: transparent;
  color: #14141a !important;
}

.pp-event-booking-closed {
  margin-top: 24px;
  padding: 16px;
  border: 1px solid #d1ccc3;
  color: #666;
  font-size: 12px;
  line-height: 1.8;
  text-align: center;
}

.pp-event-sidebar-location {
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid #d3cec5;
}

.pp-event-sidebar-location h3 {
  margin: 0 0 18px;
  color: #444;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.13em;
}

.pp-event-sidebar-location-name {
  margin: 0 0 10px;
  color: #333;
  font-size: 14px;
  line-height: 1.8;
  letter-spacing: 0.07em;
}

.pp-event-sidebar-address {
  margin: 0;
  color: #666;
  font-size: 11px;
  line-height: 1.9;
}

.pp-event-sidebar-map {
  margin-top: 20px;
}

.pp-event-sidebar-map iframe,
.pp-event-sidebar-map .em-location-map-container {
  width: 100% !important;
  min-height: 240px;
}

.pp-event-booking-button-bottom {
  margin-top: 22px;
}

/* 予約フォーム */
.pp-event-booking-form-section {
  padding: 100px 30px 140px;
  background: #fff;
}

.pp-event-booking-form-inner {
  width: min(820px, 100%);
  margin: 0 auto;
}

/* キャンセル表示 */
.pp-event-cancelled {
  padding: 18px 30px;
  background: #8d3f3f;
  color: #fff;
  font-size: 14px;
  text-align: center;
  letter-spacing: 0.08em;
}

/* ============================================================
   Events Manager予約フォーム
============================================================ */

.pp-event-booking-form-inner .em-booking-form,
.pp-event-booking-form-inner .em-booking-form-details {
  width: 100%;
}

.pp-event-booking-form-inner input[type="text"],
.pp-event-booking-form-inner input[type="email"],
.pp-event-booking-form-inner input[type="tel"],
.pp-event-booking-form-inner input[type="number"],
.pp-event-booking-form-inner select,
.pp-event-booking-form-inner textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 10px 15px;
  border: 1px solid #d8d4cc;
  border-radius: 0;
  background: #fff;
  font-family: inherit;
}

.pp-event-booking-form-inner textarea {
  min-height: 150px;
}

.pp-event-booking-form-inner input[type="submit"],
.pp-event-booking-form-inner button {
  min-width: 250px;
  min-height: 55px;
  padding: 15px 35px;
  border: 1px solid #151621;
  border-radius: 0;
  background: #151621;
  color: #fff;
  font-family: inherit;
  letter-spacing: 0.18em;
  cursor: pointer;
}

/* ============================================================
   タブレット・スマートフォン
============================================================ */

@media screen and (max-width: 900px) {
  .pp-event-container {
    grid-template-columns: 1fr;
    gap: 65px;
    width: min(720px, calc(100% - 40px));
    padding: 65px 0 100px;
  }

  .pp-event-booking-card {
    position: static;
  }

  .pp-event-sidebar {
    order: -1;
  }
}

@media screen and (max-width: 600px) {
  .pp-event-hero {
    height: 250px;
  }

  .pp-event-container {
    width: calc(100% - 32px);
    padding-top: 48px;
  }

  .pp-event-heading {
    margin-bottom: 45px;
  }

  .pp-event-title {
    font-size: 21px;
    line-height: 1.7;
  }

  .pp-event-section {
    margin-top: 58px;
  }

  .pp-event-section-title {
    font-size: 17px;
  }

  .pp-event-table-row {
    grid-template-columns: 1fr;
    padding: 17px 0;
  }

  .pp-event-table-heading,
  .pp-event-table-content {
    padding: 0;
  }

  .pp-event-table-heading {
    margin-bottom: 8px;
    font-weight: 500;
  }

  .pp-event-booking-card {
    padding: 30px 20px;
  }

  .pp-event-booking-form-section {
    padding: 70px 16px 100px;
  }
}

/* Events Managerのイベント詳細ページのみAstraの余白を解除 */
.single-event.ast-separate-container .ast-article-single {
  padding: 0;
}
.ast-separate-container #primary{
	margin: 0;
}