/* =============================================================
   Design layer（サイト全体の見た目を1つの規則にそろえる最終レイヤー）

   ねらい
   - 見たい情報へすぐ届く：左のサイドメニューにエリア・入口・ページ内目次を集約
   - エリアの区切りが分かる：エリアごとに色を決め、タブ・見出し・現在地に同じ色を使う
   - イベントらしい高揚感：墨色×朱×黄の3色、太い見出し、はっきりした影の動き
   - 余白・グラデーション・絵文字は使わない。長い文字は折り返すか省略する

   body（SWELL は #body_wrap）に .ec-ds が付いたページだけに効く。
   既存スタイルより後に読み込み、#body_wrap.ec-ds で上書きする。
   ============================================================= */

:root {
	--ds-ink: #12151c;
	--ds-ink-2: #39404d;
	--ds-mute: #646c7a;
	--ds-line: #dcdfe5;
	--ds-ground: #f1f2f4;
	--ds-soft: #f6f7f9;
	--ds-surface: #fff;
	--ds-accent: #e8380d;
	--ds-accent-ink: #bf2c08;
	--ds-pop: #ffd400;
	--ds-pop-soft: #fff4b8;
	--ds-ok: #0b8457;
	--ds-radius: 6px;
	--ds-radius-lg: 8px;
	--ds-gap: 16px;
	--ds-pad: 20px;
	--ds-rail-w: 216px;
	--ds-ease: cubic-bezier(.2, .8, .2, 1);
	--ds-area: var(--ds-accent);
	--ds-area-chiba: #009e78;
	--ds-area-saitama: #e07b00;
	--ds-area-tokyo: #6f47f5;
	--ds-area-kanagawa: #0a7fe6;
}

.ec-area--chiba { --ds-area: var(--ds-area-chiba); }
.ec-area--saitama { --ds-area: var(--ds-area-saitama); }
.ec-area--tokyo { --ds-area: var(--ds-area-tokyo); }
.ec-area--kanagawa { --ds-area: var(--ds-area-kanagawa); }

/* =============================================================
   1. サイドメニュー（レール）
   ============================================================= */
.ec-rail {
	--rail-bg: var(--ds-ink);
	--rail-fg: #fff;
	--rail-mute: #99a1b0;
	--rail-line: #2a2f3a;
	--rail-hover: #1e232d;
	display: none;
	box-sizing: border-box;
	background: var(--rail-bg);
	color: var(--rail-fg);
	font-family: var(--ec-font-sans, -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif);
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
}
.ec-rail *,
.ec-rail *::before,
.ec-rail *::after { box-sizing: border-box; }
.ec-rail a { color: inherit; text-decoration: none; }
.ec-rail__inner { display: grid; gap: 18px; padding: 16px 12px 24px; }
.ec-rail__group { min-width: 0; }
.ec-rail__group[hidden] { display: none; }
.ec-rail__label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px;
	padding: 0 4px;
	color: var(--rail-mute);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
}
.ec-rail__label::after { content: ""; flex: 1; height: 1px; background: var(--rail-line); }

/* エリア：2列のボタン。現在地はエリア色で塗る */
.ec-rail__areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.ec-rail__area {
	--mark: var(--ds-accent);
	position: relative;
	display: flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	min-height: 40px;
	padding: 6px 8px;
	border: 1px solid var(--rail-line);
	border-radius: var(--ds-radius);
	font-weight: 700;
	transition: background-color .18s, border-color .18s, color .18s, transform .18s var(--ds-ease);
}
.ec-rail__area--all { grid-column: 1 / -1; --mark: var(--ds-pop); }
.ec-rail__area--chiba { --mark: var(--ds-area-chiba); }
.ec-rail__area--saitama { --mark: var(--ds-area-saitama); }
.ec-rail__area--tokyo { --mark: var(--ds-area-tokyo); }
.ec-rail__area--kanagawa { --mark: var(--ds-area-kanagawa); }
.ec-rail__area-mark { flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--mark); transition: transform .25s var(--ds-ease); }
.ec-rail__area-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ec-rail__area:hover { border-color: var(--mark); background: var(--rail-hover); }
.ec-rail__area:hover .ec-rail__area-mark { transform: scale(1.5) rotate(45deg); }
.ec-rail__area.is-current { border-color: var(--mark); background: var(--mark); color: #fff; }
.ec-rail__area--all.is-current { color: var(--ds-ink); }
.ec-rail__area.is-current .ec-rail__area-mark { background: currentColor; }

/* 入口 */
.ec-rail__nav { display: grid; gap: 2px; }
.ec-rail__link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	min-height: 40px;
	padding: 6px 8px 6px 12px;
	border-radius: var(--ds-radius);
	font-weight: 600;
	transition: background-color .18s, color .18s;
}
.ec-rail__link::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	bottom: 8px;
	width: 3px;
	border-radius: 2px;
	background: var(--ds-pop);
	transform: scaleY(0);
	transition: transform .22s var(--ds-ease);
}
.ec-rail__icon { flex: none; color: var(--rail-mute); transition: color .18s, transform .22s var(--ds-ease); }
.ec-rail__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ec-rail__link:hover { background: var(--rail-hover); }
.ec-rail__link:hover .ec-rail__icon { color: var(--ds-pop); transform: translateX(2px); }
.ec-rail__link.is-current { background: var(--rail-hover); font-weight: 700; }
.ec-rail__link.is-current::before,
.ec-rail__link:hover::before { transform: scaleY(1); }
.ec-rail__link.is-current .ec-rail__icon { color: var(--ds-pop); }

/* 日付から */
.ec-rail__when { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.ec-rail__chip {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 4px 6px;
	border: 1px solid var(--rail-line);
	border-radius: var(--ds-radius);
	font-weight: 700;
	white-space: nowrap;
	transition: background-color .18s, border-color .18s, color .18s;
}
.ec-rail__chip:hover { border-color: var(--ds-pop); background: var(--ds-pop); color: var(--ds-ink); }

/* このページ */
.ec-rail__toc { display: grid; gap: 0; border-left: 1px solid var(--rail-line); margin-left: 5px; }
.ec-rail__toc a {
	position: relative;
	display: block;
	padding: 6px 4px 6px 12px;
	color: var(--rail-mute);
	font-size: 12px;
	line-height: 1.5;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: color .18s;
}
.ec-rail__toc a::before {
	content: "";
	position: absolute;
	left: -1px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: var(--ds-pop);
	transform: scaleY(0);
	transition: transform .22s var(--ds-ease);
}
.ec-rail__toc a:hover,
.ec-rail__toc a.is-active { color: var(--rail-fg); }
.ec-rail__toc a.is-active { font-weight: 700; }
.ec-rail__toc a.is-active::before { transform: scaleY(1); }

.ec-rail a:focus-visible { outline: 2px solid var(--ds-pop); outline-offset: 2px; }

/* PC：左に固定して、本文をその分だけ右へ寄せる */
@media (min-width: 1200px) {
	.ec-has-rail { padding-left: var(--ds-rail-w); }
	.ec-rail {
		display: block;
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		z-index: 99;
		width: var(--ds-rail-w);
		overflow-y: auto;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		scrollbar-color: #3a404d transparent;
	}
	.admin-bar .ec-rail { top: 32px; }
	.ec-has-rail .l-fixHeader { left: var(--ds-rail-w); width: calc(100% - var(--ds-rail-w)); }
	.ec-has-rail .c-shareBtns.-fix { left: calc(var(--ds-rail-w) + 4px); }
	/* #body_wrap の外に出る要素（運営者情報リンク・自動広告）も同じだけ右へ寄せる */
	.ec-footer-meta,
	.ec-has-rail ~ .google-auto-placed { box-sizing: border-box; max-width: calc(100% - var(--ds-rail-w)); margin-left: var(--ds-rail-w); }
}

/* 自動広告が画面幅を超えて差し込まれても、ページ全体が横に動かないようにする */
html { overflow-x: clip; }

/* スマートフォン・タブレット：テーマのドロワーメニュー内へ移す（design.js） */
.ec-rail.is-in-drawer { display: block; margin: 0 0 16px; background: transparent; }
.ec-rail.is-in-drawer .ec-rail__inner { padding: 0; gap: 16px; }
.ec-rail.is-in-drawer .ec-rail__group--toc { display: none; }
.ec-rail.is-in-drawer .ec-rail__areas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ec-rail.is-in-drawer .ec-rail__area { justify-content: center; padding: 6px 4px; }
.ec-rail.is-in-drawer .ec-rail__area:not(.ec-rail__area--all) .ec-rail__area-mark { display: none; }
.ec-rail.is-in-drawer .ec-rail__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.ec-rail.is-in-drawer .ec-rail__link { border: 1px solid var(--rail-line); min-height: 44px; }
.ec-rail.is-in-drawer .ec-rail__when { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ec-rail.is-in-drawer .ec-rail__chip { min-height: 40px; }

/* =============================================================
   2. 共通の土台（背景・ヘッダー・ドロワー・フッター）
   ============================================================= */
#body_wrap.ec-ds {
	--ec-ink: var(--ds-ink);
	--ec-ink-2: var(--ds-ink-2);
	--ec-mute: var(--ds-mute);
	--ec-line: var(--ds-line);
	--ec-accent: var(--ds-accent-ink);
	--ec-paper: var(--ds-ground);
	--ec-home-green: var(--ds-ink);
	--ec-home-soft: var(--ds-soft);
	--ec-home-radius: var(--ds-radius-lg);
	--ec-home-space: var(--ds-gap);
	--color_main: var(--ds-ink);
	--color_htag: var(--ds-ink);
	--color_link: var(--ds-accent-ink);
	--color_footer_bg: var(--ds-ink);
	background: var(--ds-ground);
	color: var(--ds-ink);
}
#body_wrap.ec-ds::before,
#body_wrap.ec-ds::after { display: none; }
#body_wrap.ec-ds ::selection { background: var(--ds-pop); color: var(--ds-ink); }

/* 上部バー：単色の細い帯 */
#body_wrap.ec-ds .l-header__bar { display: block; background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .l-header__bar .c-catchphrase { letter-spacing: .04em; font-family: inherit; opacity: .85; }
#body_wrap.ec-ds .l-header,
#body_wrap.ec-ds .l-fixHeader {
	background: #fff;
	border-bottom: 2px solid var(--ds-ink);
	box-shadow: none;
}
#body_wrap.ec-ds .c-headLogo__link { color: var(--ds-ink); }

/* グローバルナビ：下線が左から伸びる */
#body_wrap.ec-ds .c-gnav { gap: 0; }
#body_wrap.ec-ds .c-gnav > .menu-item > a { color: var(--ds-ink); font-family: inherit; font-size: .875rem; font-weight: 700; letter-spacing: .02em; }
#body_wrap.ec-ds .c-gnav > .menu-item > a .ttl { padding: 8px 12px; color: inherit; white-space: nowrap; }
#body_wrap.ec-ds .c-gnav > .menu-item > a .ttl::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 4px;
	left: 12px;
	height: 3px;
	background: var(--ds-pop);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .28s var(--ds-ease);
}
#body_wrap.ec-ds .c-gnav > .menu-item > a:is(:hover, :focus-visible) .ttl::after { transform: scaleX(1); }
#body_wrap.ec-ds .c-gnav > .menu-item:is(.-current, .current-menu-item) > a .ttl { color: var(--ds-ink); }
#body_wrap.ec-ds .c-gnav > .menu-item:is(.-current, .current-menu-item) > a .ttl::after { background: var(--ds-ink); transform: scaleX(1); }
#body_wrap.ec-ds .c-gnav .sub-menu { border: 2px solid var(--ds-ink); border-radius: var(--ds-radius); box-shadow: 4px 4px 0 var(--ds-ink); }
#body_wrap.ec-ds .c-gnav .sub-menu a:hover { background: var(--ds-pop-soft); }

/* パンくず */
#body_wrap.ec-ds .p-breadcrumb { background: transparent; }
#body_wrap.ec-ds .p-breadcrumb__list { flex-wrap: nowrap; overflow: hidden; }
#body_wrap.ec-ds .p-breadcrumb__item { min-width: 0; }
#body_wrap.ec-ds .p-breadcrumb__text { color: var(--ds-mute); }

/* ドロワー：レールと同じ墨色の面にする */
#body_wrap.ec-ds .p-spMenu__inner { background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .p-spMenu__inner::before { background: var(--ds-ink); opacity: 1; }
#body_wrap.ec-ds .p-spMenu__closeBtn .c-iconBtn { color: #fff; }
#body_wrap.ec-ds .p-spMenu__overlay { background: rgba(18, 21, 28, .6); -webkit-backdrop-filter: none; backdrop-filter: none; }
#body_wrap.ec-ds .c-widget__title.-spmenu { margin-bottom: 4px; padding: 0 4px 8px; border-bottom: 1px solid #2a2f3a; color: #99a1b0; font-family: inherit; font-size: 11px; letter-spacing: .12em; }
#body_wrap.ec-ds .c-spnav .menu-item > a { padding: 11px 26px 11px 4px; border-bottom: 1px solid #2a2f3a; color: #fff; font-family: inherit; }
#body_wrap.ec-ds .c-spnav .menu-item > a::after { color: #99a1b0; }
#body_wrap.ec-ds .c-spnav .menu-item > a:is(:hover, :focus-visible),
#body_wrap.ec-ds .c-spnav > .current-menu-item > a { color: var(--ds-pop); }
#body_wrap.ec-ds .p-spMenu .c-widget,
#body_wrap.ec-ds .p-spMenu .c-widget a { color: #fff; }

/* SP 下部の固定メニュー */
#body_wrap.ec-ds #fix_bottom_menu { border-top: 2px solid var(--ds-ink); box-shadow: none; }
#body_wrap.ec-ds #fix_bottom_menu::before { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; opacity: 1; }
#body_wrap.ec-ds #fix_bottom_menu .menu-item :is(a, span) { color: var(--ds-ink); font-family: inherit; }
#body_wrap.ec-ds #fix_bottom_menu .menu-item a { font-size: 10px; font-weight: 700; line-height: 1.3; }
#body_wrap.ec-ds #fix_bottom_menu .menu-item a.ec-area-ranking-link { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; padding: 0 4px; background: none; }
#body_wrap.ec-ds #fix_bottom_menu .menu-item :is(i, [class*="icon-"]) { color: var(--ds-accent); }

/* ページ上部へ戻る */
#body_wrap.ec-ds .c-fixBtn {
	border: 2px solid var(--ds-ink);
	border-radius: var(--ds-radius);
	background: var(--ds-pop);
	color: var(--ds-ink);
	box-shadow: 3px 3px 0 var(--ds-ink);
	transition: transform .18s var(--ds-ease), box-shadow .18s var(--ds-ease);
}
#body_wrap.ec-ds .c-fixBtn:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--ds-ink); }

/* フッター：単色、波線なし */
#body_wrap.ec-ds .l-content { margin-bottom: 32px; }
#body_wrap.ec-ds .l-footer { margin-top: 0; background: var(--ds-ink); border-top: 4px solid var(--ds-pop); }
#body_wrap.ec-ds .l-footer::before { display: none; }
#body_wrap.ec-ds .l-footer__nav { gap: 4px 6px; }
#body_wrap.ec-ds .l-footer__nav a { padding: 6px 12px; border-radius: var(--ds-radius); background: transparent; font-family: inherit; font-weight: 600; }
#body_wrap.ec-ds .l-footer__nav a:hover { background: var(--ds-pop); color: var(--ds-ink); }

/* テーマ側サイドバー */
#body_wrap.ec-ds .l-sidebar .c-widget,
#body_wrap.ec-ds .l-sidebar .widget {
	padding: 16px;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-lg);
	background: #fff;
	box-shadow: none;
}
#body_wrap.ec-ds .c-widget__title.-side { font-family: inherit; }

/* =============================================================
   3. 共通部品
   ============================================================= */

/* 見出し：黄色いマーカーを下に敷く */
#body_wrap.ec-ds :is(
	.ec-home-section__title,
	.ec-home-popular-compact__head h2,
	.ec-home-shop-types .ec-section-header h2,
	.ec-future-weeks__heading strong,
	.ec-sub-areas-header .ec-ui-heading,
	.ec-section-header .ec-ui-heading,
	.ec-features__section-heading h2,
	.ec-shop-results__header h2,
	.ec-news-results__header h2,
	.ec-news-important > h2,
	.ec-ranking-features > h2,
	.ec-area-period-sidebar > .ec-ui-heading,
	.ec-event-search-heading .ec-ui-heading
) {
	display: inline;
	margin: 0;
	padding: 0 2px;
	border: 0;
	background: none;
	color: var(--ds-ink);
	font-size: clamp(1.0625rem, 1rem + .5vw, 1.3125rem);
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0;
	box-shadow: inset 0 -.42em 0 var(--ds-pop);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
#body_wrap.ec-ds :is(.ec-home-section__title, .ec-home-popular-compact__head h2, .ec-section-header h2, .ec-features__section-heading h2, .ec-ui-heading)::before,
#body_wrap.ec-ds :is(.ec-home-section__title, .ec-home-popular-compact__head h2, .ec-section-header h2, .ec-features__section-heading h2, .ec-ui-heading)::after { display: none; }

/* 面：白地・細い罫線・小さな角丸にそろえる */
#body_wrap.ec-ds :is(
	.ec-home-popular-compact,
	.ec-home-shop-types,
	.ec-future-weeks,
	.ec-home-area-content > .ec-home-section,
	.ec-home-main > .ec-home-section,
	.ec-home-main > .ec-sub-areas,
	.ec-home-editorial__selector,
	.ec-home-more-links,
	.ec-event-search,
	.ec-area-period-sidebar,
	.ec-recent-event-articles,
	.ec-ranking-features,
	.ec-event-map-section,
	.ec-features__header,
	.ec-features__section,
	.ec-shop-tabs,
	.ec-shop-type-filter,
	.ec-directory-map-disclosure,
	.ec-news-important
) {
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-lg);
	background: #fff;
	box-shadow: none;
}

/* 「もっと見る」系のリンク：矢印が動く小さなボタン */
#body_wrap.ec-ds :is(
	.ec-home-section__more,
	.ec-home-shop-types .ec-section-header > a,
	.ec-home-popular-compact__head > a
) {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 4px 12px;
	border: 1px solid var(--ds-ink);
	border-radius: var(--ds-radius);
	background: #fff;
	color: var(--ds-ink);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .18s, box-shadow .18s var(--ds-ease), transform .18s var(--ds-ease);
}
#body_wrap.ec-ds :is(
	.ec-home-section__more,
	.ec-home-shop-types .ec-section-header > a,
	.ec-home-popular-compact__head > a
):hover { background: var(--ds-pop); color: var(--ds-ink); border-color: var(--ds-ink); box-shadow: 3px 3px 0 var(--ds-ink); transform: translate(-1px, -1px); }

/* エリア切り替え（一覧・ランキング・特集・店舗・スポット・ニュース共通）
   ：横並びのタブ。選択中はエリア色。あふれたら横スクロール */
#body_wrap.ec-ds :is(.ec-area-scope-switch-options, .ec-shop-tabs, .ec-news-areas) {
	display: flex;
	flex-wrap: nowrap;
	gap: 0;
	max-width: 100%;
	margin: 0;
	padding: 0;
	overflow-x: auto;
	border: 2px solid var(--ds-ink);
	border-radius: var(--ds-radius);
	background: #fff;
	box-shadow: none;
	scrollbar-width: none;
}
#body_wrap.ec-ds :is(.ec-area-scope-switch-options, .ec-shop-tabs, .ec-news-areas)::-webkit-scrollbar { display: none; }
#body_wrap.ec-ds .ec-area-scope-switch { display: block; max-width: 100%; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a) {
	--tab: var(--ds-ink);
	position: relative;
	flex: 1 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 44px;
	margin: 0;
	padding: 6px 16px;
	border: 0;
	border-right: 1px solid var(--ds-line);
	border-radius: 0;
	background: #fff;
	color: var(--ds-ink-2);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	text-decoration: none;
	box-shadow: none;
	transform: none;
	transition: background-color .18s, color .18s;
}
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a):last-child { border-right: 0; }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a) strong { color: inherit; font: inherit; }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a)[href*="chiba"] { --tab: var(--ds-area-chiba); }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a)[href*="saitama"] { --tab: var(--ds-area-saitama); }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a)[href*="tokyo"] { --tab: var(--ds-area-tokyo); }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a)[href*="kanagawa"] { --tab: var(--ds-area-kanagawa); }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a)::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 4px;
	background: var(--tab);
	transform: scaleY(0);
	transform-origin: center bottom;
	transition: transform .22s var(--ds-ease);
}
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a):hover { background: var(--ds-soft); color: var(--ds-ink); }
#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a):hover::after { transform: scaleY(1); }
#body_wrap.ec-ds :is(.ec-area-scope-option.is-active, .ec-shop-tab.is-active, .ec-news-areas > a[aria-current]) { background: var(--ds-area); color: #fff; }
#body_wrap.ec-ds.ec-area--all :is(.ec-area-scope-option.is-active, .ec-shop-tab.is-active, .ec-news-areas > a[aria-current]) { background: var(--ds-ink); }
#body_wrap.ec-ds :is(.ec-area-scope-option.is-active, .ec-shop-tab.is-active, .ec-news-areas > a[aria-current])::after { display: none; }

/* ボタン */
#body_wrap.ec-ds :is(.ec-button, .ec-home-ranking-cta, .ec-features__ranking) {
	border: 2px solid var(--ds-ink);
	border-radius: var(--ds-radius);
	background: var(--ds-accent);
	background-image: none;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	box-shadow: 3px 3px 0 var(--ds-ink);
	transform: none;
	transition: transform .18s var(--ds-ease), box-shadow .18s var(--ds-ease), background-color .18s;
}
#body_wrap.ec-ds :is(.ec-button, .ec-features__ranking):hover { background: var(--ds-accent-ink); color: #fff; transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--ds-ink); }
#body_wrap.ec-ds :is(.ec-button, .ec-features__ranking):active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--ds-ink); }
#body_wrap.ec-ds .ec-button.ec-button-secondary { background: #fff; color: var(--ds-ink); border-width: 1px; box-shadow: none; }
#body_wrap.ec-ds .ec-button.ec-button-secondary:hover { background: var(--ds-pop); color: var(--ds-ink); box-shadow: 3px 3px 0 var(--ds-ink); }

/* 状態バッジ：角丸を小さく、色面ではっきり */
#body_wrap.ec-ds .ec-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 2px 7px;
	border: 0;
	border-radius: 3px;
	background: var(--ds-soft);
	color: var(--ds-ink-2);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.6;
	white-space: nowrap;
	box-shadow: none;
}
#body_wrap.ec-ds .ec-badge.ec-badge-ongoing { background: var(--ds-ok); color: #fff; }
#body_wrap.ec-ds .ec-badge.ec-badge-upcoming { background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-badge.ec-badge-ended { background: #e6e8ec; color: var(--ds-mute); }
#body_wrap.ec-ds .ec-badge::before { background: currentColor; }
#body_wrap.ec-ds .ec-badge.ec-badge-ongoing::before { animation: ds-pulse 1.6s ease-in-out infinite; }
@keyframes ds-pulse { 50% { opacity: .25; } }

/* カード共通：罫線の白い面。ホバーで左上へ浮き、墨色の影が出る */
#body_wrap.ec-ds :is(
	.ec-card,
	.ec-home-tile,
	.ec-home-event,
	.ec-shop-card,
	.ec-feature,
	.ec-news-card,
	.ec-ranking-feature,
	.ec-sub-area-card,
	.ec-internal-link-card
) {
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius-lg);
	background: #fff;
	box-shadow: none;
	animation: none;
	transition: transform .2s var(--ds-ease), box-shadow .2s var(--ds-ease), border-color .2s;
}
@media (hover: hover) {
	#body_wrap.ec-ds :is(
		.ec-card,
		.ec-home-tile,
		.ec-home-event,
		.ec-shop-card,
		.ec-feature,
		.ec-news-card,
		.ec-ranking-feature,
		.ec-sub-area-card,
		.ec-internal-link-card
	):hover {
		border-color: var(--ds-ink);
		box-shadow: 4px 4px 0 var(--ds-ink);
		transform: translate(-2px, -2px);
	}
	#body_wrap.ec-ds :is(.ec-card-image, .ec-home-tile__img, .ec-shop-card-image, .ec-feature__media img, .ec-news-card__image, .ec-home-spot__media img, .ec-home-popular-compact__image img) { transition: transform .5s var(--ds-ease); }
	#body_wrap.ec-ds :is(.ec-card, .ec-home-tile, .ec-shop-card, .ec-feature, .ec-news-card, .ec-home-spot, .ec-home-popular-compact__list a):hover :is(.ec-card-image, .ec-home-tile__img, .ec-shop-card-image, .ec-feature__media img, .ec-news-card__image, .ec-home-spot__media img, .ec-home-popular-compact__image img) { transform: scale(1.05); }
}
#body_wrap.ec-ds :is(.ec-card-media, .ec-home-tile__media, .ec-shop-card__media, .ec-feature__media, .ec-news-card__media, .ec-home-spot__media, .ec-home-popular-compact__image) { overflow: hidden; background: #e6e8ec; }

/* 長い題名は行数で省略する */
#body_wrap.ec-ds :is(.ec-card-title a, .ec-home-spot__title, .ec-ranking-row-title, .ec-feature--standard .ec-feature__title, .ec-ranking-feature__title, .ec-news-card h3) {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

/* スクロールで下から現れる（design.js が付与） */
.ds-reveal { opacity: 0; transform: translateY(16px); }
.ds-reveal.is-in { opacity: 1; transform: none; transition: opacity .5s var(--ds-ease), transform .5s var(--ds-ease); transition-delay: calc(var(--ds-i, 0) * 55ms); }

/* 目次から移動したとき、固定ヘッダーに見出しが隠れないようにする */
.ec-ds-anchor { scroll-margin-top: calc(var(--swl-offset_y, 64px) + 16px); }

/* 記事の読了位置 */
.ec-ds-progress { position: fixed; top: 0; right: 0; left: 0; z-index: 120; height: 3px; background: var(--ds-accent); transform: scaleX(0); transform-origin: left center; pointer-events: none; }
@media (min-width: 1200px) { .ec-has-rail .ec-ds-progress { left: var(--ds-rail-w); } }

/* =============================================================
   4. トップページ
   ============================================================= */
#body_wrap.ec-ds.ec-home-page #content { max-width: 1320px; padding-top: 16px; }
#body_wrap.ec-ds .ec-home.ec-home--with-sidebar { display: block; }
#body_wrap.ec-ds .ec-home-sidebar { display: none; }
#body_wrap.ec-ds .ec-home .ec-home-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
#body_wrap.ec-ds .ec-home .ec-home-main > * { min-width: 0; }

/* 重要ニュース */
#body_wrap.ec-ds .ec-home .ec-home-important { margin: 0 0 12px; padding: 0 12px 0 0; gap: 12px; border: 0; border-radius: var(--ds-radius); background: var(--ds-ink); overflow: hidden; }
#body_wrap.ec-ds .ec-home .ec-home-important__label { align-self: stretch; display: flex; align-items: center; padding: 0 12px; border: 0; background: var(--ds-pop); color: var(--ds-ink); font-size: 11px; font-weight: 800; }
#body_wrap.ec-ds .ec-home .ec-home-important__link { min-height: 44px; min-width: 0; }
#body_wrap.ec-ds .ec-home .ec-home-important__area { border: 0; border-radius: 3px; background: #fff; color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-home .ec-home-important.ec-ticker-on .ec-home-important__item { min-width: 0; }
#body_wrap.ec-ds .ec-home .ec-home-important.ec-ticker-on .ec-home-important__title { overflow: hidden; text-overflow: ellipsis; }

/* 入口タイル：ランキングを朱色の大きな面に、ほかは写真付きの小さなカードに */
#body_wrap.ec-ds .ec-home .ec-home-tiles.ec-home-tiles--compact { gap: 10px; margin: 0 0 10px; }
#body_wrap.ec-ds .ec-home .ec-home-tiles.ec-home-tiles--compact > .ec-home-tile { border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); overflow: hidden; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__media { height: 104px; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__body { min-height: 60px; padding: 10px 40px 10px 12px; gap: 4px; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__label { font-size: 15px; font-weight: 800; line-height: 1.4; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__meta { border-radius: 3px; background: var(--ds-pop-soft); color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__arrow { border-radius: var(--ds-radius); background-color: var(--ds-soft); transition: transform .2s var(--ds-ease), background-color .2s; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile:hover .ec-home-tile__arrow { background-color: var(--ds-pop); transform: translateX(3px); }

#body_wrap.ec-ds .ec-home .ec-home-tiles.ec-home-tiles--compact > .ec-home-tile--ranking {
	min-height: 0;
	border: 2px solid var(--ds-ink);
	background: var(--ds-accent);
	color: #fff;
}
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking:hover { background: var(--ds-accent); border-color: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__body { width: 62%; padding: 20px; gap: 8px; }
#body_wrap.ec-ds .ec-home .ec-home-ranking-eyebrow { color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .06em; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__label { color: #fff; font-size: clamp(26px, 3.4vw, 40px); font-weight: 900; line-height: 1.25; letter-spacing: 0; }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__meta { justify-self: start; border-radius: 3px; background: var(--ds-ink); color: #fff; font-weight: 700; }
#body_wrap.ec-ds .ec-home .ec-home-ranking-cta { min-height: 44px; padding: 8px 16px; background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-tile--ranking:hover .ec-home-ranking-cta { background: #fff; border-color: var(--ds-ink); color: var(--ds-ink); text-decoration: none; transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__media { inset: 0 0 0 auto; width: 38%; height: 100%; border-left: 2px solid var(--ds-ink); border-radius: 0; background: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__img { object-fit: cover; }

#body_wrap.ec-ds .ec-home .ec-home-more-links { margin: 0 0 10px; }
#body_wrap.ec-ds .ec-home .ec-home-more-links > summary { padding: 9px 14px; font-weight: 700; }
#body_wrap.ec-ds .ec-home .ec-home-more-links > summary::marker { color: var(--ds-accent); }
#body_wrap.ec-ds .ec-home .ec-home-more-links__list > a { border-radius: var(--ds-radius); background: #fff; font-weight: 600; }
#body_wrap.ec-ds .ec-home .ec-home-more-links__list > a:hover { border-color: var(--ds-ink); background: var(--ds-pop-soft); }

/* エリアから探す：見出しとタブを1行に。スクロールしても上部に残す */
#body_wrap.ec-ds .ec-home .ec-home-editorial { margin: 0; padding: 0; }
#body_wrap.ec-ds .ec-home .ec-home-editorial__selector {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px;
	border: 2px solid var(--ds-ink);
}
#body_wrap.ec-ds .ec-home .ec-home-editorial__selector-head { flex: none; margin: 0; padding: 0 4px 0 8px; }
#body_wrap.ec-ds .ec-home .ec-home-editorial__label { font-size: 13px; font-weight: 800; white-space: nowrap; }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tabs { flex: 1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; min-width: 0; }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab {
	--tab: var(--ds-ink);
	min-height: 40px;
	padding: 4px 6px;
	border: 1px solid var(--ds-line);
	border-bottom: 3px solid var(--tab);
	border-radius: var(--ds-radius);
	background: #fff;
	color: var(--ds-ink);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	box-shadow: none;
	transition: background-color .18s, color .18s, transform .18s var(--ds-ease);
}
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab[data-ec-editorial-tab="chiba"] { --tab: var(--ds-area-chiba); }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab[data-ec-editorial-tab="saitama"] { --tab: var(--ds-area-saitama); }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab[data-ec-editorial-tab="tokyo"] { --tab: var(--ds-area-tokyo); }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab[data-ec-editorial-tab="kanagawa"] { --tab: var(--ds-area-kanagawa); }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab:hover { border-color: var(--tab); background: var(--ds-soft); transform: translateY(-1px); }
#body_wrap.ec-ds .ec-home .ec-home-editorial__tab[aria-selected="true"] { border-color: var(--tab); background: var(--tab); color: #fff; box-shadow: none; }

/* 各セクション */
#body_wrap.ec-ds .ec-home :is(.ec-home-popular-compact, .ec-home-shop-types, .ec-home-area-content > .ec-home-section, .ec-home-main > .ec-sub-areas) { margin: var(--ds-gap) 0 0; padding: var(--ds-pad); }
#body_wrap.ec-ds .ec-home .ec-home-future { margin: var(--ds-gap) 0 0; }
#body_wrap.ec-ds .ec-home .ec-future-weeks { padding: var(--ds-pad); }
#body_wrap.ec-ds .ec-home :is(.ec-home-popular-compact__head, .ec-home-section__head, .ec-home-shop-types .ec-section-header) { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 14px; }

/* 人気のイベント記事：順位の数字を写真に重ねる */
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list { gap: 12px; counter-reset: ds-rank; }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list > li > a { position: relative; gap: 8px; border-radius: var(--ds-radius); }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__image { height: auto; aspect-ratio: 16 / 9; border-radius: var(--ds-radius); }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__copy { display: block; }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__rank {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 6px;
	border-radius: var(--ds-radius) 0 var(--ds-radius) 0;
	background: var(--ds-ink);
	color: #fff;
	font-size: 16px;
	font-weight: 900;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list > li:first-child .ec-home-popular-compact__rank { background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__title { font-size: 14px; font-weight: 700; line-height: 1.55; -webkit-line-clamp: 2; }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__date { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; margin-top: 4px; font-size: 11px; }
#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list > li > a:hover .ec-home-popular-compact__title { color: var(--ds-accent-ink); text-decoration: none; }

/* 店舗を種類から探す */
#body_wrap.ec-ds .ec-home .ec-home-shop-types__links { gap: 6px; }
#body_wrap.ec-ds .ec-home .ec-home-shop-types__links a { min-height: 40px; padding: 4px 12px; gap: 8px; border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); font-weight: 700; transition: background-color .18s, border-color .18s, transform .18s var(--ds-ease); }
#body_wrap.ec-ds .ec-home .ec-home-shop-types__links a:hover { border-color: var(--ds-ink); background: var(--ds-pop); transform: translateY(-2px); }
#body_wrap.ec-ds .ec-home .ec-home-shop-types__links small { color: var(--ds-mute); font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-home .ec-home-shop-types__links a:hover small { color: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-shop-types__rating { min-height: 0; margin-top: 10px; padding: 4px 0; color: var(--ds-accent-ink); font-weight: 700; }

/* 先の予定を探す（トップ・一覧共通） */
#body_wrap.ec-ds .ec-future-weeks { margin: 0; padding: var(--ds-pad); }
#body_wrap.ec-ds .ec-future-weeks__heading { margin-bottom: 12px; }
#body_wrap.ec-ds .ec-future-weeks__list { gap: 6px; }
#body_wrap.ec-ds .ec-future-weeks__week { min-width: 0; padding: 8px 4px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); box-shadow: none; transition: background-color .18s, border-color .18s, transform .18s var(--ds-ease); }
#body_wrap.ec-ds .ec-future-weeks__week > span { font-weight: 800; }
#body_wrap.ec-ds .ec-future-weeks__week time { white-space: nowrap; font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-future-weeks__week:hover { border-color: var(--ds-ink); background: var(--ds-pop); color: var(--ds-ink); box-shadow: none; transform: translateY(-2px); }
#body_wrap.ec-ds .ec-future-weeks__week[aria-current] { border-color: var(--ds-ink); background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .ec-future-weeks__adjacent { margin-top: 8px; }
#body_wrap.ec-ds .ec-future-weeks__adjacent a { color: var(--ds-accent-ink); font-weight: 700; }

/* 人気のスポット */
#body_wrap.ec-ds .ec-home .ec-home-spots__grid { gap: 12px; }
#body_wrap.ec-ds .ec-home .ec-home-spot { gap: 6px; }
#body_wrap.ec-ds .ec-home .ec-home-spot__media { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); }
#body_wrap.ec-ds .ec-home .ec-home-spot__title { font-size: 14px; font-weight: 700; line-height: 1.5; -webkit-line-clamp: 2; }
#body_wrap.ec-ds .ec-home .ec-home-spot:hover .ec-home-spot__title { color: var(--ds-accent-ink); text-decoration: none; }
#body_wrap.ec-ds .ec-home :is(.ec-home-spot__genre, .ec-home-news__cat) { border: 0; border-radius: 3px; background: var(--ds-soft); color: var(--ds-ink-2); font-weight: 700; white-space: nowrap; }

/* 新着記事 */
#body_wrap.ec-ds .ec-home .ec-home-news__link { padding: 10px 6px; transition: background-color .18s, padding-left .2s var(--ds-ease); }
#body_wrap.ec-ds .ec-home .ec-home-news__link:hover { padding-left: 12px; background: var(--ds-pop-soft); }
#body_wrap.ec-ds .ec-home .ec-home-news__link:hover .ec-home-news__title { color: var(--ds-ink); }
#body_wrap.ec-ds .ec-home .ec-home-news__title { font-weight: 700; line-height: 1.6; }
#body_wrap.ec-ds .ec-home .ec-home-news__date { font-variant-numeric: tabular-nums; white-space: nowrap; }
#body_wrap.ec-ds .ec-home .ec-home-news__cat { min-width: 7.5em; text-align: center; }

/* エリアごとに見る */
#body_wrap.ec-ds .ec-sub-areas-header { padding: 0 0 12px; border: 0; background: none; }
#body_wrap.ec-ds .ec-sub-areas-grid { gap: 8px; padding: 0; }
#body_wrap.ec-ds :is(.ec-sub-area-card, .ec-sub-area-card.is-primary-area-card) { --tab: var(--ds-ink); border: 1px solid var(--ds-line); border-left: 4px solid var(--tab); border-radius: var(--ds-radius); background: #fff; }
#body_wrap.ec-ds .ec-sub-area-card[href*="saitama"] { --tab: var(--ds-area-saitama); }
#body_wrap.ec-ds .ec-sub-area-card[href*="tokyo"] { --tab: var(--ds-area-tokyo); }
#body_wrap.ec-ds .ec-sub-area-card[href*="kanagawa"] { --tab: var(--ds-area-kanagawa); }
#body_wrap.ec-ds .ec-sub-area-card.is-primary-area-card { --tab: var(--ds-area-chiba); }
#body_wrap.ec-ds .ec-sub-area-card:hover { border-color: var(--ds-ink); border-left-color: var(--tab); background: #fff; }
#body_wrap.ec-ds .ec-sub-area-card-title { font-weight: 800; }
#body_wrap.ec-ds .ec-sub-area-card-more { border-radius: var(--ds-radius); background: var(--ds-soft); transition: transform .2s var(--ds-ease), background-color .2s; }
#body_wrap.ec-ds .ec-sub-area-card-more span { color: var(--ds-ink); }
#body_wrap.ec-ds .ec-sub-area-card:hover .ec-sub-area-card-more { background: var(--ds-pop); transform: translateX(3px); }

/* 広告枠：周囲と同じ罫線の面に */
#body_wrap.ec-ds :is(.ec-affiliate-banner, .ec-adsense-banner) { border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); background: #fff; box-shadow: none; }
#body_wrap.ec-ds .ec-home .ec-affiliate-banner { margin: var(--ds-gap) 0 0; }
#body_wrap.ec-ds .ec-affiliate-label { border: 0; border-radius: 3px; background: var(--ds-soft); color: var(--ds-mute); }

/* =============================================================
   5. イベント一覧・ランキング
   ============================================================= */
#body_wrap.ec-ds .ec-page { background: transparent; }
#body_wrap.ec-ds .ec-page .ec-container { padding-top: 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#body_wrap.ec-ds .ec-page .ec-container > * + * { margin-top: var(--ds-gap); }

/* ページ見出し：墨色の面＋エリア色の帯 */
#body_wrap.ec-ds .ec-page-header {
	position: relative;
	margin-bottom: 0;
	padding: 22px 20px 20px 24px;
	overflow: hidden;
	border: 0;
	border-radius: var(--ds-radius-lg);
	background: var(--ds-ink);
	background-image: none;
	color: #fff;
	box-shadow: none;
	animation: none;
}
#body_wrap.ec-ds .ec-page-header::before { content: ""; display: block; position: absolute; inset: 0 auto 0 0; width: 8px; height: auto; border-radius: 0; background: var(--ds-area); background-image: none; opacity: 1; transform: none; animation: none; }
#body_wrap.ec-ds .ec-page-header::after { display: none; }
#body_wrap.ec-ds .ec-page-ranking .ec-page-header { background: var(--ds-accent); }
#body_wrap.ec-ds .ec-page-ranking .ec-page-header::before { background: var(--ds-pop); }
#body_wrap.ec-ds .ec-page-header h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.25rem); font-weight: 900; line-height: 1.3; letter-spacing: 0; text-shadow: none; }
#body_wrap.ec-ds .ec-page-kicker { display: inline-flex; margin: 0 0 6px; padding: 2px 8px; border: 0; border-radius: 3px; background: var(--ds-pop); color: var(--ds-ink); font-size: 12px; font-weight: 800; }
#body_wrap.ec-ds .ec-page-kicker::before { background: var(--ds-ink); }
#body_wrap.ec-ds .ec-page-header .ec-nav-links { gap: 6px; }
#body_wrap.ec-ds .ec-page-header .ec-nav-link { border: 1px solid rgba(255, 255, 255, .45); border-radius: var(--ds-radius); background: transparent; color: #fff; font-weight: 700; box-shadow: none; transition: background-color .18s, color .18s, border-color .18s; }
#body_wrap.ec-ds .ec-page-header a.ec-nav-link:hover { border-color: var(--ds-pop); background: var(--ds-pop); color: var(--ds-ink); transform: none; }
#body_wrap.ec-ds .ec-page-header .ec-nav-link.ec-nav-link--active { border-color: #fff; background: #fff; color: var(--ds-ink); }
#body_wrap.ec-ds .ec-overview-stat { border: 0; border-radius: var(--ds-radius); background: #fff; box-shadow: none; }
#body_wrap.ec-ds .ec-overview-stat dt { color: var(--ds-mute); font-weight: 700; }
#body_wrap.ec-ds .ec-overview-stat dd { color: var(--ds-ink); font-weight: 900; font-variant-numeric: tabular-nums; }

#body_wrap.ec-ds .ec-page > .ec-container > .ec-nav-links { gap: 6px; }
#body_wrap.ec-ds .ec-page > .ec-container > .ec-nav-links > a { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); font-weight: 700; box-shadow: none; }
#body_wrap.ec-ds .ec-page > .ec-container > .ec-nav-links > a:hover { border-color: var(--ds-ink); background: var(--ds-pop); }

/* ツールバー（エリア＋絞り込み） */
#body_wrap.ec-ds .ec-week-toolbar { display: grid; gap: 10px; padding: 0; border: 0; background: none; box-shadow: none; }
#body_wrap.ec-ds .ec-week-quick-filter { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
#body_wrap.ec-ds .ec-week-quick-filter__buttons { gap: 6px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#body_wrap.ec-ds .ec-week-quick-filter__buttons button {
	min-height: 40px;
	padding: 4px 12px;
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	background: #fff;
	color: var(--ds-ink);
	font-weight: 700;
	white-space: nowrap;
	box-shadow: none;
	transition: background-color .18s, border-color .18s, color .18s;
}
#body_wrap.ec-ds .ec-week-quick-filter__buttons button:hover { border-color: var(--ds-ink); background: var(--ds-pop-soft); }
#body_wrap.ec-ds .ec-week-quick-filter__buttons button[aria-pressed="true"] { border-color: var(--ds-ink); background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .ec-week-quick-filter__buttons button span { border-radius: 3px; background: var(--ds-pop); color: var(--ds-ink); font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-week-filter-note { margin: 0; color: var(--ds-mute); }

/* 検索 */
#body_wrap.ec-ds .ec-event-search { padding: 12px 14px; }
#body_wrap.ec-ds .ec-event-search-field { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; }
#body_wrap.ec-ds .ec-event-search-field:focus-within { border-color: var(--ds-ink); box-shadow: 3px 3px 0 var(--ds-pop); }
#body_wrap.ec-ds .ec-ended-events-control { margin: 0; }

/* 件数・並び替え */
#body_wrap.ec-ds .ec-results-header { gap: 8px 12px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#body_wrap.ec-ds .ec-results-count { margin: 0; white-space: nowrap; }
#body_wrap.ec-ds .ec-results-count strong { color: var(--ds-ink); font-size: 1.75rem; font-weight: 900; font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-rating-sort { gap: 0; padding: 0; border: 1px solid var(--ds-ink); border-radius: var(--ds-radius); background: #fff; overflow: hidden; }
#body_wrap.ec-ds .ec-rating-sort a { min-height: 40px; border: 0; border-radius: 0; background: #fff; color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-rating-sort a[aria-current] { background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .ec-results-ranking-link { background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-results-ranking-link:hover { background: var(--ds-pop); color: var(--ds-ink); }

/* イベントカード */
#body_wrap.ec-ds .ec-card-grid { gap: 12px; }
#body_wrap.ec-ds .ec-card { overflow: hidden; }
#body_wrap.ec-ds .ec-card-body { padding: 12px 14px 14px; gap: 6px; }
#body_wrap.ec-ds .ec-card-title { margin: 0; }
#body_wrap.ec-ds .ec-card-title a { color: var(--ds-ink); font-weight: 800; line-height: 1.5; text-decoration: none; }
#body_wrap.ec-ds .ec-card:hover .ec-card-title a { color: var(--ds-accent-ink); }
#body_wrap.ec-ds .ec-card-date { color: var(--ds-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds :is(.ec-card-location, .ec-card-price, .ec-card-excerpt) { margin: 0; color: var(--ds-ink-2); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
#body_wrap.ec-ds .ec-card-conditions { gap: 4px; margin: 0; }
#body_wrap.ec-ds .ec-card-conditions li { padding: 2px 7px; border: 1px solid var(--ds-line); border-radius: 3px; background: #fff; color: var(--ds-ink-2); font-size: 11px; font-weight: 700; }
#body_wrap.ec-ds .ec-card .ec-user-ratings { margin: 0; padding: 0; border: 0; background: none; }
#body_wrap.ec-ds :is(.ec-listing-views, .ec-ranking-row-views) { padding: 0; border: 0; background: none; color: var(--ds-mute); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* 期間から探す・最近の記事 */
#body_wrap.ec-ds .ec-area-period-sidebar { padding: 14px; }
#body_wrap.ec-ds .ec-area-period-sidebar li { border-color: var(--ds-line); }
#body_wrap.ec-ds .ec-area-period-sidebar li a { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-area-period-sidebar li a:hover { border-color: var(--ds-ink); background: var(--ds-pop); }
#body_wrap.ec-ds .ec-recent-event-articles { padding: var(--ds-pad); }
#body_wrap.ec-ds .ec-recent-event-articles li a { color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-recent-event-articles li a:hover { color: var(--ds-accent-ink); }

/* ランキング：順位バッジと11位以下の行 */
#body_wrap.ec-ds .ec-ranking-features { padding: 14px; }
#body_wrap.ec-ds .ec-ranking-features__grid { gap: 8px; }
#body_wrap.ec-ds .ec-ranking-feature { overflow: hidden; }
#body_wrap.ec-ds .ec-ranking-podium { gap: 12px; }
#body_wrap.ec-ds .ec-card--ranked { border-width: 1px; }
#body_wrap.ec-ds .ec-rank-badge { top: 0; left: 0; min-width: 40px; height: 40px; border: 0; border-radius: var(--ds-radius-lg) 0 var(--ds-radius-lg) 0; background: var(--ds-ink); color: #fff; font-size: 18px; font-weight: 900; box-shadow: none; font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-rank-badge--1 { background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-rank-badge--2,
#body_wrap.ec-ds .ec-rank-badge--3 { background: var(--ds-accent); color: #fff; }
#body_wrap.ec-ds .ec-ranking-podium > li:first-child { border: 2px solid var(--ds-ink); box-shadow: 4px 4px 0 var(--ds-pop); }
#body_wrap.ec-ds .ec-ranking-rest { border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); background: #fff; overflow: hidden; }
#body_wrap.ec-ds .ec-ranking-rest > li { border-color: var(--ds-line); }
#body_wrap.ec-ds .ec-ranking-row { transition: background-color .18s; }
#body_wrap.ec-ds .ec-ranking-row:hover { background: var(--ds-pop-soft); }
#body_wrap.ec-ds .ec-ranking-row-num { color: var(--ds-ink); font-size: 1.25rem; font-weight: 900; font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-ranking-row-title { color: var(--ds-ink); font-weight: 800; -webkit-line-clamp: 2; }
#body_wrap.ec-ds .ec-ranking-row-arrow { transition: transform .2s var(--ds-ease); }
#body_wrap.ec-ds .ec-ranking-row:hover .ec-ranking-row-arrow { transform: translateX(4px); }

/* 地図 */
#body_wrap.ec-ds .ec-event-map-section { padding: 14px; }
#body_wrap.ec-ds :is(.ec-event-map-frame, .ec-directory-map) { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); overflow: hidden; box-shadow: none; }
#body_wrap.ec-ds :is(.ec-event-map-pin-num, .ec-directory-map-number) { border-radius: 3px; background: var(--ds-ink); color: #fff; font-weight: 800; }

/* =============================================================
   6. 店舗・スポット・特集・ニュース
   ============================================================= */
#body_wrap.ec-ds :is(.ec-shop-hero, .ec-news-header) {
	position: relative;
	min-height: 0;
	padding: 18px 20px 18px 28px;
	overflow: hidden;
	border: 0;
	border-radius: var(--ds-radius-lg);
	background: var(--ds-ink);
	background-image: none;
	color: #fff;
	box-shadow: none;
}
#body_wrap.ec-ds :is(.ec-shop-hero, .ec-news-header)::before { content: ""; display: block; position: absolute; inset: 0 auto 0 0; width: 8px; height: auto; border-radius: 0; background: var(--ds-area); opacity: 1; }
#body_wrap.ec-ds.ec-area--all :is(.ec-shop-hero, .ec-news-header, .ec-page-header)::before { background: var(--ds-pop); }
#body_wrap.ec-ds :is(.ec-shop-hero, .ec-news-header)::after { display: none; }
#body_wrap.ec-ds :is(.ec-shop-hero, .ec-news-header) h1 { margin: 0; color: #fff; font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.25rem); font-weight: 900; line-height: 1.3; }
#body_wrap.ec-ds :is(.ec-shop-eyebrow, .ec-news-eyebrow) { margin: 0 0 4px; color: var(--ds-pop); font-size: 12px; font-weight: 800; letter-spacing: .06em; }
#body_wrap.ec-ds .ec-news-header > p:not(.ec-news-eyebrow) { margin: 6px 0 0; color: #d5d9e0; }
#body_wrap.ec-ds .ec-shop-hero__mark { width: 64px; height: 64px; border: 0; border-radius: var(--ds-radius); background: var(--ds-pop); color: var(--ds-ink); }
#body_wrap.ec-ds .ec-shop-container > * + *,
#body_wrap.ec-ds .ec-news-container > * + * { margin-top: var(--ds-gap); }

#body_wrap.ec-ds .ec-shop-type-filter { gap: 6px; padding: 12px 14px; }
#body_wrap.ec-ds .ec-shop-type-filter__label { color: var(--ds-mute); font-weight: 800; }
#body_wrap.ec-ds :is(.ec-shop-type-filter > a, .ec-directory-control > a) { min-height: 40px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); font-weight: 700; white-space: nowrap; box-shadow: none; transition: background-color .18s, border-color .18s; }
#body_wrap.ec-ds :is(.ec-shop-type-filter > a, .ec-directory-control > a):hover { border-color: var(--ds-ink); background: var(--ds-pop-soft); }
#body_wrap.ec-ds :is(.ec-shop-type-filter > a, .ec-directory-control > a):is(.is-active, [aria-current]) { border-color: var(--ds-ink); background: var(--ds-ink); color: #fff; }
#body_wrap.ec-ds .ec-shop-count { color: var(--ds-mute); font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-directory-map-disclosure > summary { font-weight: 800; }
#body_wrap.ec-ds .ec-directory-map-list li { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; box-shadow: none; }

#body_wrap.ec-ds .ec-shop-grid { gap: 12px; }
#body_wrap.ec-ds .ec-shop-card { overflow: hidden; }
#body_wrap.ec-ds .ec-shop-card__body { padding: 12px 14px 14px; }
#body_wrap.ec-ds .ec-shop-card h3 { margin: 0; }
#body_wrap.ec-ds .ec-shop-card h3 a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--ds-ink); font-weight: 800; text-decoration: none; }
#body_wrap.ec-ds .ec-shop-card:hover h3 a { color: var(--ds-accent-ink); }
#body_wrap.ec-ds :is(.ec-shop-tag, .ec-shop-genre, .ec-shop-status) { padding: 2px 7px; border: 1px solid var(--ds-line); border-radius: 3px; background: #fff; color: var(--ds-ink-2); font-size: 11px; font-weight: 700; white-space: nowrap; }
#body_wrap.ec-ds .ec-shop-status--open { border-color: var(--ds-ok); background: var(--ds-ok); color: #fff; }
#body_wrap.ec-ds .ec-shop-card__toggle { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-soft); color: var(--ds-ink); font-weight: 700; }

/* 特集 */
#body_wrap.ec-ds .ec-features__header { padding: 12px; }
#body_wrap.ec-ds .ec-features__index { gap: 6px; }
#body_wrap.ec-ds .ec-features__index > a { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-features__index > a:hover { border-color: var(--ds-ink); background: var(--ds-pop); }
#body_wrap.ec-ds .ec-features__section { padding: var(--ds-pad); }
#body_wrap.ec-ds .ec-features > * + * { margin-top: var(--ds-gap); }
#body_wrap.ec-ds .ec-features__week { color: var(--ds-mute); font-variant-numeric: tabular-nums; white-space: nowrap; }
#body_wrap.ec-ds .ec-feature { overflow: hidden; }
#body_wrap.ec-ds .ec-feature__title { color: var(--ds-ink); font-weight: 800; }
#body_wrap.ec-ds .ec-feature--lead { border: 2px solid var(--ds-ink); }
#body_wrap.ec-ds .ec-feature__more { transition: transform .2s var(--ds-ease); }
#body_wrap.ec-ds .ec-feature:hover .ec-feature__more { transform: translateX(4px); }

/* ニュース */
#body_wrap.ec-ds .ec-news-important { padding: 14px; border: 2px solid var(--ds-ink); }
#body_wrap.ec-ds .ec-news-card { overflow: hidden; }
#body_wrap.ec-ds .ec-news-card + .ec-news-card { margin-top: 8px; }
#body_wrap.ec-ds .ec-news-card__link { padding: 12px; gap: 12px; }
#body_wrap.ec-ds .ec-news-card__media { border-radius: var(--ds-radius); }
#body_wrap.ec-ds .ec-news-card h3 { margin: 0; color: var(--ds-ink); font-weight: 800; line-height: 1.5; -webkit-line-clamp: 2; }
#body_wrap.ec-ds .ec-news-card__meta { margin: 0 0 4px; }
#body_wrap.ec-ds .ec-news-card__meta time { color: var(--ds-mute); font-variant-numeric: tabular-nums; }
#body_wrap.ec-ds .ec-news-card__meta span { padding: 1px 7px; border-radius: 3px; background: var(--ds-ink); color: #fff; font-size: 11px; font-weight: 700; }
#body_wrap.ec-ds .ec-news-card__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 4px 0 0; color: var(--ds-ink-2); }

/* サイドメニューの分だけ狭くなる幅でも、テーマ側サイドバーを本文の横に保つ */
@media (min-width: 1200px) {
	#body_wrap.ec-ds.ec-has-rail #content:has(> .ec-news-page) { flex-wrap: nowrap; }
	#body_wrap.ec-ds.ec-has-rail #content > .ec-news-page { flex: 1 1 0; width: auto; min-width: 0; }
	#body_wrap.ec-ds.ec-has-rail #content > .ec-news-page + .l-sidebar { flex: none; }
}
#body_wrap.ec-ds .ec-news-page { padding-top: 12px; }

/* テーマ標準のアーカイブ・固定ページの見出し */
#body_wrap.ec-ds .c-pageTitle { border: 0; }
#body_wrap.ec-ds .c-pageTitle__inner { padding: 0 2px; border: 0; color: var(--ds-ink); font-weight: 900; box-shadow: inset 0 -.42em 0 var(--ds-pop); }

/* =============================================================
   7. 記事ページ
   ============================================================= */
#body_wrap.ec-ds.ec-article-page .l-mainContent__inner { border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); background: #fff; box-shadow: none; }
#body_wrap.ec-ds.ec-article-page .c-postTitle__ttl { color: var(--ds-ink); font-weight: 900; line-height: 1.4; }
#body_wrap.ec-ds.ec-article-page .c-postTitle__date { color: var(--ds-ink); border-color: var(--ds-ink); }
#body_wrap.ec-ds .c-categoryList__link { border-radius: 3px; background: var(--ds-ink); color: #fff; font-weight: 700; }
#body_wrap.ec-ds.ec-article-page .p-articleThumb__img { border-radius: var(--ds-radius); box-shadow: none; }

/* 見出し：h2 は墨色の帯、h3 は黄色のマーカー */
#body_wrap.ec-ds.ec-article-page .post_content h2 {
	margin: 2em 0 .9em;
	padding: 10px 14px;
	border: 0;
	border-left: 8px solid var(--ds-area);
	border-radius: 0 var(--ds-radius) var(--ds-radius) 0;
	background: var(--ds-ink);
	color: #fff;
	font-weight: 800;
	line-height: 1.45;
}
#body_wrap.ec-ds.ec-article-page.ec-area--all .post_content h2 { border-left-color: var(--ds-pop); }
#body_wrap.ec-ds.ec-article-page .post_content h2::before,
#body_wrap.ec-ds.ec-article-page .post_content h2::after { display: none; }
#body_wrap.ec-ds.ec-article-page .post_content h3 {
	margin: 1.8em 0 .7em;
	padding: 0 0 6px;
	border: 0;
	border-bottom: 3px solid var(--ds-pop);
	background: none;
	color: var(--ds-ink);
	font-weight: 800;
}
#body_wrap.ec-ds.ec-article-page .post_content h3::before,
#body_wrap.ec-ds.ec-article-page .post_content h3::after { display: none; }
#body_wrap.ec-ds.ec-article-page .post_content a:not([class]) { color: var(--ds-accent-ink); text-underline-offset: 3px; }

/* 概要ボックス */
#body_wrap.ec-ds .ec-event-overview { border: 2px solid var(--ds-ink); border-radius: var(--ds-radius-lg); background: #fff; background-image: none; box-shadow: 4px 4px 0 var(--ds-pop); overflow: hidden; }
#body_wrap.ec-ds .ec-event-overview::before,
#body_wrap.ec-ds .ec-event-overview::after { display: none; }
#body_wrap.ec-ds .ec-event-overview-eyebrow { border: 0; border-radius: 3px; background: var(--ds-area); color: #fff; font-weight: 800; }
#body_wrap.ec-ds.ec-area--all .ec-event-overview-eyebrow { background: var(--ds-ink); }
#body_wrap.ec-ds .ec-event-overview-facts li { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-soft); color: var(--ds-ink); font-weight: 700; box-shadow: none; }
#body_wrap.ec-ds .ec-event-overview-facts li:first-child { border-color: var(--ds-accent); background: var(--ds-accent); color: #fff; }
#body_wrap.ec-ds .ec-event-overview-link { border: 2px solid var(--ds-ink); border-radius: var(--ds-radius); background: var(--ds-ink); color: #fff; font-weight: 800; box-shadow: none; transition: transform .18s var(--ds-ease), box-shadow .18s var(--ds-ease), background-color .18s; }
#body_wrap.ec-ds .ec-event-overview-link:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--ds-accent); }
#body_wrap.ec-ds .ec-event-overview-link.ec-event-overview-link-secondary { background: #fff; color: var(--ds-ink); }

#body_wrap.ec-ds .ec-information-notice { border: 1px solid var(--ds-line); border-left: 4px solid var(--ds-ink); border-radius: var(--ds-radius); background: var(--ds-soft); }
#body_wrap.ec-ds .p-toc { border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); background: var(--ds-soft); box-shadow: none; }
#body_wrap.ec-ds .p-toc::before { display: none; }
#body_wrap.ec-ds .ec-image-zoom { border: 1px solid var(--ds-ink); border-radius: var(--ds-radius); background: #fff; color: var(--ds-ink); box-shadow: none; }
#body_wrap.ec-ds .ec-image-zoom:hover { background: var(--ds-pop); }
#body_wrap.ec-ds :is(.ec-inline-picks, .ec-event-discovery, .ec-article-footer__info, .ec-organizer-cta, .ec-user-ratings, .ec-topic-calendar) { border-color: var(--ds-line); border-radius: var(--ds-radius-lg); box-shadow: none; }
#body_wrap.ec-ds .ec-internal-link-card { overflow: hidden; }
#body_wrap.ec-ds .ec-internal-link-card__title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--ds-ink); font-weight: 800; }
/* 関連イベント：茶色・生成り色の面をやめ、ほかのページと同じ白い面に */
#body_wrap.ec-ds .ec-event-discovery { padding: 16px; border: 1px solid var(--ds-line); background: #fff; background-image: none; }
#body_wrap.ec-ds .ec-event-discovery-title { margin: 0 0 12px; padding: 0 0 0 10px; border: 0; border-left: 6px solid var(--ds-area); background: none; color: var(--ds-ink); font-weight: 800; }
#body_wrap.ec-ds.ec-area--all .ec-event-discovery-title { border-left-color: var(--ds-pop); }
#body_wrap.ec-ds .ec-event-discovery-item { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; box-shadow: none; transition: transform .2s var(--ds-ease), box-shadow .2s var(--ds-ease), border-color .2s; }
#body_wrap.ec-ds .ec-event-discovery-item:hover { border-color: var(--ds-ink); box-shadow: 4px 4px 0 var(--ds-ink); transform: translate(-2px, -2px); }
#body_wrap.ec-ds .ec-event-discovery-item-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--ds-ink); font-weight: 800; }
#body_wrap.ec-ds .ec-event-discovery-item-meta,
#body_wrap.ec-ds .ec-event-discovery-item-place { color: var(--ds-mute); }
#body_wrap.ec-ds :is(.ec-event-discovery-primary, .ec-event-discovery-secondary) { border: 2px solid var(--ds-ink); border-radius: var(--ds-radius); font-weight: 800; box-shadow: none; transition: transform .18s var(--ds-ease), box-shadow .18s var(--ds-ease), background-color .18s; }
#body_wrap.ec-ds .ec-event-discovery-primary { background: var(--ds-ink); background-image: none; color: #fff; }
#body_wrap.ec-ds .ec-event-discovery-secondary { background: #fff; color: var(--ds-ink); }
#body_wrap.ec-ds :is(.ec-event-discovery-primary, .ec-event-discovery-secondary):hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--ds-accent); }
#body_wrap.ec-ds .ec-event-discovery-tertiary { color: var(--ds-accent-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-inline-picks { background: #fff; }
#body_wrap.ec-ds .ec-inline-picks__heading { color: var(--ds-ink); font-weight: 800; }
#body_wrap.ec-ds .ec-inline-picks__more { color: var(--ds-accent-ink); font-weight: 700; }
#body_wrap.ec-ds .ec-organizer-cta { background: var(--ds-soft); background-image: none; }

/* 記事の右下に出るランキング導線 */
#body_wrap.ec-ds .ec-event-discovery-fab,
.ec-ds ~ .ec-event-discovery-fab { border: 2px solid var(--ds-ink); border-radius: var(--ds-radius); background: var(--ds-ink); background-image: none; color: #fff; box-shadow: 4px 4px 0 var(--ds-pop); transition: transform .18s var(--ds-ease), box-shadow .18s var(--ds-ease); }
#body_wrap.ec-ds .ec-event-discovery-fab:hover,
.ec-ds ~ .ec-event-discovery-fab:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 var(--ds-pop); }

#body_wrap.ec-ds .ec-table-scroll { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); }
#body_wrap.ec-ds.ec-article-page .post_content th { background: var(--ds-ink); color: #fff; }

/* =============================================================
   8. 画面幅ごとの調整
   ============================================================= */
@media (max-width: 1199px) {
	/* サイドメニューが隠れる幅では、エリアのタブをヘッダーの下に残す */
	#body_wrap.ec-ds .ec-home .ec-home-editorial { position: sticky; top: var(--swl-offset_y, 48px); z-index: 20; }
}
@media (max-width: 800px) {
	:root { --ds-gap: 12px; --ds-pad: 14px; }
	#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
	#body_wrap.ec-ds .ec-home .ec-home-popular-compact__list > li > a { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 0; }
	#body_wrap.ec-ds .ec-home .ec-home-popular-compact__image { height: auto; }
	#body_wrap.ec-ds .ec-home .ec-home-popular-compact__rank { top: 8px; min-width: 28px; height: 28px; font-size: 13px; }
}
@media (max-width: 600px) {
	#body_wrap.ec-ds.ec-home-page #content { padding-top: 10px; }
	#body_wrap.ec-ds .ec-home .ec-home-important__label { padding: 0 8px; font-size: 10px; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__media { height: 84px; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__body { min-height: 52px; padding: 8px 34px 8px 10px; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile__label { font-size: 14px; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles.ec-home-tiles--compact > .ec-home-tile--ranking { min-height: 0; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__body { width: 66%; padding: 14px 12px; gap: 6px; }
	#body_wrap.ec-ds .ec-home .ec-home-tiles--compact .ec-home-tile--ranking .ec-home-tile__media { inset: 0 0 0 auto; width: 34%; height: 100%; }
	#body_wrap.ec-ds .ec-home .ec-home-editorial__selector { display: block; padding: 6px; }
	#body_wrap.ec-ds .ec-home .ec-home-editorial__selector-head { display: none; }
	#body_wrap.ec-ds .ec-home .ec-home-editorial__tabs { gap: 4px; }
	#body_wrap.ec-ds .ec-home .ec-home-editorial__tab { min-height: 40px; padding: 4px 1px; font-size: 12px; }
	#body_wrap.ec-ds .ec-page-header { padding: 16px 14px 16px 20px; }
	#body_wrap.ec-ds :is(.ec-shop-hero, .ec-news-header) { padding: 14px 14px 14px 22px; }
	#body_wrap.ec-ds :is(.ec-area-scope-option, .ec-shop-tab, .ec-news-areas > a) { padding: 6px 12px; font-size: .8125rem; }
}

@media (prefers-reduced-motion: reduce) {
	#body_wrap.ec-ds *,
	#body_wrap.ec-ds *::before,
	#body_wrap.ec-ds *::after,
	.ec-rail *,
	.ec-rail *::before { animation: none !important; transition: none !important; }
	.ds-reveal { opacity: 1; transform: none; }
	.ec-ds-progress { display: none; }
}
