/* ============================================================
   The Events Calendar — テーマ「blue-dive」と同系統の見た目
   （base.css の --bd-* を前提）
   配置: テーマ/tribe-events/tribe-events.css（プラグインがイベント画面で自動読み込み）

   body セレクタ: TEC 公式の archive / single クラスを含める（URL が /event/ でも post-type は tribe_events）
   bd-tec-events は inc/events-calendar.php の補助用。本番で PHP 未反映でもスタイルが当たるように併記。
   ============================================================ */

/* イベント系の body（TEC ドキュメント: archive に post-type-archive-tribe_events 等） */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content {
	/* TEC のアクセントをサイトの海色へ（紫系のデフォルトを置き換え） */
	--tec-color-accent-primary: var(--bd-ocean-mid);
	--tec-color-accent-primary-hover: var(--bd-ocean-deep);
	--tec-color-accent-primary-active: var(--bd-ocean-deep);
	--tec-color-accent-primary-background: rgba(26, 95, 138, 0.12);
	--tec-color-text-primary: var(--bd-text);
	--tec-color-text-secondary: var(--bd-text-muted);
	--tec-color-border-default: rgba(26, 95, 138, 0.22);
	--tec-color-border-secondary: rgba(26, 95, 138, 0.14);
	--tec-color-background: rgba(255, 255, 255, 0.78);
	--tec-color-background-events: rgba(255, 255, 255, 0.55);
	--tec-color-background-secondary: rgba(227, 242, 250, 0.65);
	--tec-color-day-marker-month: var(--bd-ocean-mid);
	--tec-color-day-marker-month--current: var(--bd-ocean-deep);
	--tec-color-icon-focus: var(--bd-ocean-bright);
	--tec-color-icon-active: var(--bd-ocean-deep);
	--tec-color-link-primary: var(--bd-ocean-mid);
	--tec-color-link-hover: var(--bd-ocean-deep);
}

/* ルート枠：トップページのカードに近いガラス感 */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	#tribe-events-pg-template {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-view {
	background: linear-gradient(165deg, var(--bd-ocean-glass) 0%, rgba(255, 255, 255, 0.88) 50%, var(--bd-ocean-foam) 100%);
	border: 1px solid var(--bd-border-soft);
	border-radius: var(--bd-radius-lg);
	box-shadow: var(--bd-shadow-card);
	padding: clamp(1.25rem, 3vw, 2rem);
	overflow: hidden;
}

/* 見出し（「イベント」など） */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-header__title,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-page-title,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-single-event-title {
	color: var(--bd-ocean-deep);
	font-weight: 700;
	letter-spacing: 0.02em;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-header__title::after,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-page-title::after {
	content: "";
	display: block;
	width: 3.5rem;
	height: 4px;
	margin-top: 0.75rem;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--bd-ocean-bright), var(--bd-ocean-light), transparent);
}

/* トップバー・検索・ナビ */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-top-bar,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-events-bar {
	border-color: var(--bd-border-soft);
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-search__input-control
	input[type="text"],
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-search__input-control
	input[type="search"] {
	border-radius: 10px;
	border: 1px solid var(--bd-border-soft);
	background: rgba(255, 255, 255, 0.95);
	color: var(--bd-text);
	min-height: 2.75rem;
	padding: 0.65rem 0.95rem;
	line-height: 1.5;
	font-size: 1rem;
	flex: 1 1 auto;
	min-width: 0;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-common-form-control-text__input {
	border-radius: 10px;
	border: 1px solid var(--bd-border-soft);
	background: rgba(255, 255, 255, 0.95);
	color: var(--bd-text);
	min-height: 2.75rem;
	padding: 0.65rem 0.95rem;
	line-height: 1.5;
	font-size: 1rem;
}

/* 検索バー: 外枠・検索ボタンとの左右の余白（リスト・月共通） */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	form.tribe-events-c-search {
	display: flex;
	align-items: center;
	padding-left: 15px;
	column-gap: 15px;
}

/* 検索欄: 虫眼鏡と入力が重ならないよう横並び＋余白（リスト・月共通） */
.main-content .tribe-events-c-search__input-control {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
}

.main-content .tribe-events-c-search__input-control .tribe-events-c-search__input-control-icon-link,
.main-content .tribe-events-c-search__input-control button.tribe-events-c-search__input-control-icon-link {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* デフォルトの absolute 等で文字と重なる場合、通常フローに戻して flex の gap で離す */
	position: static;
	inset: auto;
	margin: 0;
}

/*
 * 虫眼鏡 SVG は親内で position:absolute; left:16px; — プレースホルダ／入力がアイコン下に入るため左余白を確保。
 * TEC のキーワード欄 id（プラグイン既定）。プラグイン側の padding より後に勝つよう !important を使う。
 */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	#tribe-events-events-bar-keyword {
	padding-left: 45px !important;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-common-c-btn,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-search__button {
	border-radius: 10px;
	background: linear-gradient(180deg, var(--bd-ocean-mid), var(--bd-ocean-deep));
	border: none;
	color: #fff;
	font-weight: 600;
}

/* 検索ボタン: 入力と同じ高さ感・折り返しで縦に膨らまない */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-search__button {
	min-height: 2.75rem;
	padding: 0.65rem 1.15rem;
	line-height: 1.4;
	white-space: nowrap;
	align-self: center;
	box-sizing: border-box;
	margin-right: 15px;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-common-c-btn:hover,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-search__button:hover {
	opacity: 0.94;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-nav__list-item
	a,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-subscribe-dropdown__button-text {
	color: var(--bd-ocean-mid);
	font-weight: 600;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-nav__list-item--active
	a {
	color: var(--bd-ocean-deep);
	border-bottom-color: var(--bd-ocean-bright);
}

/* 月表示：背景写真が透けるセル */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__header-column-title,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__header-column-title-mobile {
	color: var(--bd-ocean-deep);
	font-weight: 700;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__body,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__week {
	background-color: transparent;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__day-cell,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__calendar-event {
	background-color: rgba(255, 255, 255, 0.38);
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__day-cell:hover,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__day-cell:focus-within {
	background-color: rgba(255, 255, 255, 0.55);
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__calendar-event {
	border-radius: 6px;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__day--other-month
	.tribe-events-calendar-month__day-date {
	opacity: 0.45;
}

/* 土日の日付色（プラグインの週末色を海系へ） */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__day-date-datetime--weekend,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-month__header-column-title--weekend {
	color: var(--bd-ocean-bright);
}

/* リスト表示：各イベントをカード風に */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-view--list
	.tribe-events-calendar-list__event-row {
	border-radius: var(--bd-radius-md);
	border: 1px solid var(--bd-border-soft);
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 4px 18px rgba(12, 45, 66, 0.06);
	margin-bottom: 1rem;
	overflow: hidden;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-list__event-title,
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-list__event-title
	a {
	color: var(--bd-ocean-deep);
	font-weight: 700;
}

:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-calendar-list__event-title
	a:hover {
	color: var(--bd-ocean-mid);
}

/* 単一イベントページ */
body.single-tribe_events .main-content .tribe-events-single {
	background: linear-gradient(165deg, var(--bd-ocean-glass) 0%, #ffffff 55%, var(--bd-ocean-foam) 100%);
	border: 1px solid var(--bd-border-soft);
	border-radius: var(--bd-radius-lg);
	box-shadow: var(--bd-shadow-card);
	padding: clamp(1.25rem, 3vw, 2rem);
}

body.single-tribe_events .main-content .tribe-events-single-section-title {
	border-left: 4px solid var(--bd-ocean-mid);
	padding-left: 0.85rem;
	color: var(--bd-ocean-mid);
	font-weight: 700;
}

/* 「自分のカレンダーと連携」周り */
:is(
		body.bd-tec-events,
		body.post-type-archive-tribe_events,
		body.single-tribe_events,
		body.tax-tribe_events_cat,
		body.single-tribe_venue,
		body.single-tribe_organizer
	)
	.main-content
	.tribe-events-c-subscribe-dropdown__container {
	border-radius: var(--bd-radius-md);
}

/* ----------------------------------------------------------------
   月表示: 検索行の余白・カレンダーグリッドの境界をはっきり
   （.tribe-events-view--month のみ）
   ---------------------------------------------------------------- */
/* stretch だと隣のナビ行に合わせて検索ボタンだけ縦に伸びることがある → リスト表示と同様に中央揃え */
.main-content .tribe-events-view--month .tribe-events-c-events-bar__search-container,
.main-content .tribe-events-view--month .tribe-events-c-search {
	align-items: center;
}

.main-content .tribe-events-view--month .tribe-events-c-search__input {
	flex: 1 1 auto;
	min-width: 0;
}

.main-content .tribe-events-view--month .tribe-events-c-search__button {
	align-self: center;
}

/* 月グリッド: 罫線を濃く（セルは inset で二重線を避ける） */
.main-content .tribe-events-view--month .tribe-events-calendar-month__body {
	border: 1px solid rgba(12, 45, 66, 0.35);
	border-radius: var(--bd-radius-md);
	overflow: hidden;
}

.main-content .tribe-events-view--month .tribe-events-calendar-month__header-column {
	border-bottom: 2px solid rgba(12, 45, 66, 0.32);
}

.main-content .tribe-events-view--month .tribe-events-calendar-month__day-cell {
	box-shadow: inset 0 0 0 1px rgba(12, 45, 66, 0.34);
}
