/* ==========================================================================
   Purple Gourmet Theme - Frontend Styles
   ========================================================================== */

/* --------------------------------------------------------------------------
   Global — ページ幅からのはみ出し防止
   -------------------------------------------------------------------------- */
body {
	overflow-x: hidden;
}

/* --------------------------------------------------------------------------
   Accessibility
   -------------------------------------------------------------------------- */

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}

/* --------------------------------------------------------------------------
   Icons
   -------------------------------------------------------------------------- */

.pgm-icon {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	fill: none;
	stroke: currentColor;
	flex-shrink: 0;
}

.pgm-icon--sm { width: 16px; height: 16px; }
.pgm-icon--md { width: 20px; height: 20px; }
.pgm-icon--lg { width: 24px; height: 24px; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

header,
.pgm-header-v2 {
	position: sticky;
	top: 0;
	z-index: 9999;
}

/* Header: white/paper background with purple text (Figma spec) */
.pgm-header .pgm-header-subtitle {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	margin: 0;
	text-align: center;
}

@media (max-width: 781px) {
	.pgm-header .pgm-header-subtitle {
		font-size: 12px;
	}
}

.pgm-header-search .wp-block-search__button {
	background: transparent;
	border: none;
	color: var(--wp--preset--color--primary);
	padding: 0.25rem;
	cursor: pointer;
}

.pgm-header-search .wp-block-search__button:hover {
	color: var(--wp--preset--color--primary-dark);
}

.pgm-header-search .wp-block-search__inside-wrapper {
	border: none;
	padding: 0;
}

/* Category Navigation in Header (PC: inline with logo, Mobile: hidden — hamburger handles it) */
.pgm-header-category-nav {
	display: none;
}

.pgm-category-nav-wrapper {
	border-top: 1px solid var(--wp--preset--color--border);
}

/* Figma 215:4139: gap:20px between items */
.pgm-category-nav {
	gap: 20px;
	font-family: var(--wp--preset--font-family--heading);
}

/* Category Nav Icons (観光/グルメ/イベント) — Figma 215:4140 */
.pgm-category-nav .wp-block-navigation-item a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.pgm-category-nav .wp-block-navigation-item a::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}

/* Figma 215:4150: 矢印アイコン (2.582x5.164px) — 各カテゴリリンクの後ろ */
.pgm-category-nav .wp-block-navigation-item a::after {
	content: "";
	display: inline-block;
	width: 3px;
	height: 5px;
	background-image: url('../icons/icon-dropdown-arrow.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-left: 2px;
	flex-shrink: 0;
}

.pgm-nav-tourism a::before {
	background-image: url('../icons/icon-tourism.svg');
}

.pgm-nav-gourmet a::before {
	background-image: url('../icons/icon-gourmet.svg');
}

.pgm-nav-event a::before {
	background-image: url('../icons/icon-event.svg');
}

/* Figma 215:4151: 縦線セパレーター h:16.782px */
.pgm-category-nav .wp-block-navigation-item + .wp-block-navigation-item::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 17px;
	background-color: var(--wp--preset--color--primary);
	margin-right: 20px;
	vertical-align: middle;
}

/* Figma: BIZ UDMincho Regular 20px #4B2E83 letter-spacing:2.6px */
.pgm-category-nav .wp-block-navigation-item a {
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	font-weight: 400;
	letter-spacing: 2.6px;
	padding: var(--wp--preset--spacing--20) 0;
	border-bottom: 2px solid transparent;
	transition: border-color 0.2s;
}

.pgm-category-nav .wp-block-navigation-item a:hover,
.pgm-category-nav .wp-block-navigation-item.current-menu-item a {
	border-bottom-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

@media (max-width: 781px) {
	.pgm-category-nav .wp-block-navigation-item a {
		font-size: 15px;
		letter-spacing: 2.18px;
	}
}

/* --------------------------------------------------------------------------
   News Ticker
   -------------------------------------------------------------------------- */

/* Figma 215:4181: bg:white, border-top/bottom: #4b2e83, py:3px */
.pgm-news-ticker {
	background-color: #FFFFFF;
	overflow: hidden;
	display: flex;
	align-items: center;
	padding: 3px 0;
	border-top: 1px solid var(--wp--preset--color--primary);
	border-bottom: 1px solid var(--wp--preset--color--primary);
}

.pgm-news-ticker__track {
	display: flex;
	white-space: nowrap;
	animation: pgm-ticker-scroll 20s linear infinite;
}

.pgm-news-ticker__text {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	font-weight: 300;
	color: var(--wp--preset--color--primary);
	padding-right: 60px;
}

@media (max-width: 781px) {
	.pgm-news-ticker__text {
		font-size: 12px;
	}
}

@keyframes pgm-ticker-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* Mobile Header Layout: hamburger(left) / logo(center) / search(right) */
@media (max-width: 781px) {
	header .wp-block-group.alignwide {
		display: flex;
		align-items: center;
	}

	header .wp-block-group.alignwide > .wp-block-site-title,
	header .wp-block-group.alignwide > .pgm-site-logo-group {
		order: 2;
		flex: 1;
		text-align: center;
	}

	header .wp-block-group.alignwide > .wp-block-group:last-child {
		order: 1;
		display: flex;
		flex-direction: row-reverse;
	}

	/* Search to the far right */
	header .pgm-header-search {
		order: 3;
		position: absolute;
		right: var(--wp--preset--spacing--50);
	}

	/* Hamburger to the far left */
	header .pgm-main-nav {
		order: 1;
	}
}

/* Hamburger Navigation */
.pgm-hamburger-nav .wp-block-navigation__responsive-container-open,
.pgm-main-nav .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Hamburger Menu Overlay (2-column layout matching Figma)
   -------------------------------------------------------------------------- */

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 80px 30px 30px;
}

/* Menu items UL: 2-column grid */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: repeat(4, auto) auto auto auto;
	gap: 0;
	align-content: start;
	width: 100%;
}

/* Menu item styling */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	padding: 0;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.05em;
	line-height: 70px;
	padding: 0;
}

/* Left column items: 観光(1), グルメ(2), イベント(3) */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) {
	grid-column: 1;
	grid-row: 2;
}
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) {
	grid-column: 1;
	grid-row: 3;
}

/* Right column items: 新着記事(4), ランキング(5), おすすめ(6), 新店舗(7) */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) {
	grid-column: 2;
	grid-row: 1;
}
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5) {
	grid-column: 2;
	grid-row: 2;
}
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(6) {
	grid-column: 2;
	grid-row: 3;
}
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(7) {
	grid-column: 2;
	grid-row: 4;
}

/* "ぱーぷるについて"(8) and "お知らせ"(9) span full width */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(8) {
	grid-column: 1 / -1;
	grid-row: 5;
	margin-top: var(--wp--preset--spacing--50);
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(8) a,
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(9) a {
	line-height: 50px;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(9) {
	grid-column: 1 / -1;
	grid-row: 6;
}

/* Social links wrapper li: span full width, under お知らせ */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > li:nth-child(10) {
	grid-column: 1 / -1;
	grid-row: 7;
	margin-top: var(--wp--preset--spacing--50);
}

/* SNS icons in hamburger menu: larger size + wider gap (Figma: ~27px icons, ~20px gap) */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .pgm-nav-social {
	gap: 20px !important;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .pgm-nav-social .wp-social-link {
	width: 30px !important;
	height: 30px !important;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .pgm-nav-social .wp-social-link a {
	padding: 0;
	line-height: 1;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .pgm-nav-social .wp-social-link svg {
	width: 27px;
	height: 27px;
}

/* Replace "chain" social icon with LINE icon */
.pgm-nav-social .wp-social-link-chain svg {
	display: none !important;
}

.pgm-nav-social .wp-social-link-chain a::before {
	content: "";
	display: block;
	width: 27px;
	height: 27px;
	background-image: url('../icons/icon-line.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* Close button: move to left side (Figma: left:19px, top:29px) */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	position: absolute;
	left: 19px;
	right: auto;
	top: 29px;
}

/* Copyright text via ::after on the UL grid */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container::after {
	content: "\00A9  N.I.PLANNING CO.,LTD. all rights reserved.";
	display: block;
	grid-column: 1 / -1;
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 9px;
	font-weight: 400;
	color: var(--wp--preset--color--white);
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--70);
}

/* Make the overlay fill full height so copyright goes to bottom */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	height: 100%;
}

.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	min-height: 100%;
}

/* --------------------------------------------------------------------------
   Category Tabs
   -------------------------------------------------------------------------- */

/* Figma 1:530: bottom border line under all tabs */
.pgm-category-tabs {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	border-bottom: 1px solid var(--wp--preset--color--primary);
}

.pgm-category-tabs::-webkit-scrollbar {
	display: none;
}

/* Figma 1:529-1:539: Tab-style (rounded top, border, BIZ UDMincho) */
.pgm-tab,
.pgm-tab-active {
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.2s, color 0.2s;
	border-radius: 4px 4px 0 0 !important;
	border: 1px solid var(--wp--preset--color--primary) !important;
	border-bottom: none !important;
}

.pgm-tab p,
.pgm-tab-active p {
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	letter-spacing: 1.95px;
	color: var(--wp--preset--color--primary);
}

.pgm-tab-active p {
	font-size: 16px !important;
	letter-spacing: 2.08px;
}

.pgm-tab:hover {
	background-color: var(--wp--preset--color--primary-light) !important;
}

.pgm-tab:hover p {
	color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Article List Grid Background (Figma: #F1EFF5 — ぱーぷる最薄紫)
   -------------------------------------------------------------------------- */

.pgm-article-grid-bg {
	background-color: var(--wp--preset--color--primary-light);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	border-radius: 4px;
}

/* --------------------------------------------------------------------------
   Spot Card
   -------------------------------------------------------------------------- */

.pgm-spot-card {
	overflow: hidden;
	transition: box-shadow 0.2s, transform 0.15s;
	position: relative;
}

.pgm-spot-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.pgm-spot-card .wp-block-post-featured-image {
	margin: 0;
}

.pgm-spot-card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
}

/* Spot card meta row: genre tag(s) + date in one line */
.pgm-spot-card__meta {
	overflow: hidden;
	margin-bottom: 8px;
}

/* Limit genre tags to first child only inside card */
.pgm-spot-card__genre {
	display: flex;
	flex-wrap: nowrap;
	overflow: hidden;
	gap: 0;
}

/* Hide all genre separators and links after the first one in cards */
.pgm-spot-card__genre .wp-block-post-terms__separator {
	display: none;
}

.pgm-spot-card__genre a ~ a {
	display: none;
}

/* Card title: 2-line clamp */
.pgm-spot-card .wp-block-post-title {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pgm-spot-card .wp-block-post-title a {
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
}

.pgm-spot-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   PR Label Badge
   -------------------------------------------------------------------------- */

/* Positioning context for spot card thumbnails */
.pgm-spot-card .wp-block-post-featured-image {
	position: relative;
}

/* PRアイコン（SVG） — 記事カードサムネイル左上 & 記事詳細ジャンル横 */
.pgm-pr-icon {
	display: inline-flex;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
}

/* 記事詳細のジャンル横（article-meta内）ではバッジに合わせたサイズ */
.article-meta .pgm-pr-icon {
	width: 22px;
	height: 22px;
}

.pgm-pr-icon svg {
	width: 100%;
	height: 100%;
}

/* カードサムネイル左上配置用 */
.pgm-pr-icon--thumb {
	position: absolute !important;
	top: 0;
	left: 0;
	z-index: 2;
	pointer-events: none;
	max-width: none !important;
	margin: 0 !important;
}

/* Hero slider slides need position context for the PR label */
.pgm-hero-slider__slide a {
	position: relative;
	display: block;
}

/* --------------------------------------------------------------------------
   Ad Banner — 記事詳細・一覧共通（モックアップ準拠）
   -------------------------------------------------------------------------- */

.pgm-ad-banner-wrapper {
	width: 100%;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
	display: flex;
	justify-content: center;
}

.pgm-ad-banner--pair {
	width: 100%;
	max-width: 1400px;
	display: flex;
	gap: 20px;
}

.pgm-ad-banner__unit {
	flex: 1;
	aspect-ratio: 544 / 136;
	background-color: var(--wp--preset--color--white, #fff);
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pgm-ad-banner__unit a {
	display: block;
	width: 100%;
	height: 100%;
}

.pgm-ad-banner__unit img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.pgm-ad-banner--single {
	max-width: 700px;
}

.pgm-ad-banner--single .pgm-ad-banner__unit {
	flex: none;
	width: 100%;
}

/* --------------------------------------------------------------------------
   記事カード — 記事詳細・一覧共通（viewed-articles JS描画用）
   -------------------------------------------------------------------------- */
.article-card-section {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	padding: 0 var(--page-padding, 60px);
	overflow: hidden;
}
.article-card-section--related {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	padding: 40px var(--page-padding, 60px);
}
.article-card-grid {
	display: flex;
	gap: 30px;
	width: 100%;
	max-width: 1400px;
	justify-content: center;
}
.article-card-grid--3col {
	max-width: 1400px;
}
.article-card {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
	position: relative;
}
.article-card-thumb {
	width: 100%;
	aspect-ratio: 16/9;
	overflow: hidden;
}
.article-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.article-card-info {
	display: flex;
	flex-direction: column;
	gap: 15px;
	min-width: 0;
}
.article-card-meta {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}
.article-card-genre {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: var(--wp--preset--color--white, #fff);
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	font-size: 14px;
	min-width: 44px;
	height: 22px;
	padding: 0 5px;
}
.article-card-date {
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}
.article-card-title {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	color: var(--wp--preset--color--contrast-light, #333);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* More button */
.more-btn {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: var(--wp--preset--color--white, #fff);
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 14px;
	letter-spacing: 1.82px;
	padding: 10px 30px;
	border-radius: 100px;
	cursor: pointer;
	border: none;
	text-decoration: none;
	margin-bottom: 60px;
}
.more-btn-arrow {
	width: 4px;
	height: 8px;
	flex-shrink: 0;
}
.more-btn-arrow img {
	width: 100%;
	height: 100%;
}

/* 記事カード SP */
@media (max-width: 768px) {
	.article-card-grid {
		flex-direction: column;
		gap: 15px;
	}
	.article-card {
		flex-direction: row;
		gap: 15px;
		min-width: 100%;
		align-items: flex-start;
	}
	.article-card-thumb {
		width: 150px;
		min-width: 150px;
		flex-shrink: 0;
		aspect-ratio: auto;
		height: 103px;
	}
	.article-card-info { gap: 5px; }
	.article-card-meta { gap: 5px; }
	.article-card-genre { font-size: 12px; min-width: 40px; height: 16px; }
	.article-card-date { font-size: 12px; }
	.article-card-title { font-size: 14px; line-height: 16px; }
	.more-btn { font-size: 16px; padding: 8px 30px; }
}

@media (max-width: 393px) {
	.article-card-thumb { width: 120px; min-width: 120px; height: 85px; }
}

/* --------------------------------------------------------------------------
   Instagram セクション — 記事詳細・一覧共通
   -------------------------------------------------------------------------- */
.instagram-section {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
	padding: 0;
}
.instagram-header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	color: inherit;
}
.instagram-icon {
	width: 32px;
	height: 32px;
}
.instagram-title {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 24px;
	line-height: 24px;
	color: var(--wp--preset--color--primary, #4B2E83);
	letter-spacing: 3.12px;
	text-align: center;
	margin: 0;
}
.instagram-handle {
	margin: 0;
}
.instagram-grid {
	overflow-x: auto;
	overflow-y: hidden;
	width: 100%;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.instagram-grid::-webkit-scrollbar {
	display: none;
}
.instagram-grid-track {
	display: flex;
	gap: 20px;
	width: max-content;
}
.instagram-grid-track a,
.instagram-placeholder {
	flex-shrink: 0;
}

.instagram-grid-track img,
.instagram-placeholder {
	width: 157px;
	height: 157px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

.instagram-placeholder {
	background-color: #ddd;
	display: block;
}

/* instagram-scroll keyframes removed — feed is now static with manual scroll */
.instagram-handle {
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 16px;
	font-weight: 500;
	color: var(--wp--preset--color--primary, #4B2E83);
}
.instagram-handle a {
	text-decoration: none;
	color: inherit;
}

/* --------------------------------------------------------------------------
   LINE CTA + Follow Us — 記事詳細・一覧共通
   -------------------------------------------------------------------------- */
.cta-row {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin-left: auto;
	margin-right: auto;
	display: flex;
	gap: 30px;
	align-items: center;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}
.line-cta {
	flex: 1;
	background-color: var(--wp--preset--color--white, #fff);
	border: 1px solid var(--wp--preset--color--line-green, #06C755);
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 20px;
}
.line-cta-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
.line-cta-text p {
	margin: 0;
}
.line-cta-subtitle {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 16.8px;
	line-height: 28.8px;
	color: var(--wp--preset--color--contrast-light, #333);
	letter-spacing: 2.184px;
	text-align: center;
	display: flex;
	align-items: flex-end;
	gap: 5px;
}
.line-cta-subtitle-deco {
	width: 10.2px;
	height: 15px;
	flex-shrink: 0;
}
.line-cta-subtitle-deco img {
	width: 100%;
	height: 100%;
}
.line-cta-main {
	font-size: 24px;
	line-height: 28.8px;
	letter-spacing: 3.12px;
}
.line-cta-main .line-text {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-weight: 700;
	color: var(--wp--preset--color--line-green, #06C755);
}
.line-cta-main .check-text {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	color: var(--wp--preset--color--contrast-light, #333);
}
.line-cta-btn,
a.line-cta-btn,
a.line-cta-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--line-green, #06C755);
	color: #FFFFFF !important;
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 18px;
	letter-spacing: 2.34px;
	padding: 10px 30px;
	border-radius: 100px;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	text-decoration: none;
}
.follow-us {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	border-top: 1px solid var(--wp--preset--color--primary, #4B2E83);
	border-bottom: 1px solid var(--wp--preset--color--primary, #4B2E83);
	height: 95.612px;
	flex-wrap: nowrap;
	overflow: hidden;
}
.follow-us-label {
	display: flex;
	align-items: center;
	gap: 9px;
	flex-shrink: 0;
}
.follow-us-label svg {
	width: 31px;
	height: 96px;
	color: var(--wp--preset--color--primary, #4B2E83);
	flex-shrink: 0;
}
.follow-us-label span {
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 18px;
	font-weight: 500;
	color: var(--wp--preset--color--primary, #4B2E83);
	white-space: nowrap;
}
.follow-us-icons {
	display: flex;
	align-items: center;
	gap: clamp(10px, 3vw, 40px);
}
.follow-us-icons a {
	display: inline-flex;
	color: var(--wp--preset--color--primary, #4B2E83);
	text-decoration: none;
	transition: opacity 0.2s;
}
.follow-us-icons a:hover { opacity: 0.7; }
.follow-us-icons svg {
	width: clamp(28px, 4vw, 51px);
	height: clamp(28px, 4vw, 51px);
	color: inherit;
	fill: currentColor;
}

/* CTA row: 縦並び切替 */
@media (max-width: 1150px) {
	.cta-row {
		flex-direction: column;
	}
	.line-cta, .follow-us {
		width: 100%;
		box-sizing: border-box;
	}
	.follow-us {
		height: auto;
		padding: 0;
	}
}

/* --------------------------------------------------------------------------
   広告枠 + 小バナー — 記事詳細・一覧共通
   -------------------------------------------------------------------------- */
/* 広告枠（共通） */
.ad-banner {
	width: 100%;
	max-width: 1400px;
	height: 120px;
	background-color: var(--wp--preset--color--white, #fff);
	border: 1px solid #000;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ad-banner span {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 16.744px;
	color: var(--wp--preset--color--contrast, #011507);
	letter-spacing: 2.1767px;
}

.ad-bottom-wrapper {
	display: flex;
	flex-direction: column;
	gap: 30px;
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 30px auto 0;
	align-items: center;
	padding: 0 var(--page-padding, 60px);
	padding-bottom: 60px;
	box-sizing: border-box;
}
.ad-bottom-wrapper .pgm-ad-banner-wrapper {
	padding: 0;
}
.small-ad-row {
	display: flex;
	gap: 30px;
	width: 100%;
	max-width: 1400px;
}
.small-ad-item {
	flex: 1;
	aspect-ratio: 150 / 53;
	background-color: var(--wp--preset--color--white, #fff);
	overflow: hidden;
	border: 1px solid #000;
	box-sizing: border-box;
}
.small-ad-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.small-ad-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* --------------------------------------------------------------------------
   共通セクション レスポンシブ（SP）
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
	.cta-row { gap: 40px; }
	.line-cta {
		flex-direction: column;
		padding: 16px 16px 38px;
		position: relative;
		overflow: visible;
	}
	.line-cta-btn {
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translate(-50%, 50%);
	}
	.line-cta-main { font-size: 20px; }
	.follow-us {
		width: 100%;
		height: auto;
		padding: 0;
		flex-wrap: nowrap;
		gap: 10px;
		overflow: visible;
	}
	.follow-us-label svg { width: 19px; height: 58px; }
	.follow-us-icons svg { width: 35px; height: 35px; }
	.follow-us-icons { gap: 25px; }

	/* フィードありの場合のみグリッド表示 */
	.instagram-grid-track--has-feed {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 15px;
		width: 100% !important;
		padding: 0 var(--page-padding, 32px);
	}
	.instagram-grid-track--has-feed img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1;
	}
	/* プレースホルダーはflex横並び+アニメーション維持 */
	.instagram-grid-track:not(.instagram-grid-track--has-feed) .instagram-placeholder {
		width: 120px;
		height: 120px;
	}
	.instagram-grid-track--has-feed img:nth-child(n+5) { display: none; }

	.small-ad-row { flex-wrap: wrap; gap: 10px; }
	.small-ad-item { flex: none !important; width: calc(50% - 5px); }
}

@media (max-width: 400px) {
	.follow-us-label span { font-size: 14px; }
	.follow-us-label svg { width: 15px; height: 46px; }
	.follow-us-icons svg { width: 28px; height: 28px; }
	.follow-us-icons { gap: 15px; }
	.follow-us { gap: 8px; }
	.cta-row { gap: 40px; }
}

/* --------------------------------------------------------------------------
   Share Buttons
   -------------------------------------------------------------------------- */

/* Figma 1:1117: SNS share icons — 丸形アイコンボタン（Instagram/X/Facebook/LINE） */
.pgm-share-icons {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin: var(--wp--preset--spacing--30) 0;
}

/* Figma 1:1120-1:1126: アイコン ~35px 丸ボーダー */
.pgm-share-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	border: none;
	border-radius: 0;
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	transition: opacity 0.2s;
}
.pgm-share-icon svg {
	width: 100%;
	height: 100%;
}

.pgm-share-icon:hover {
	color: var(--wp--preset--color--primary);
}

.pgm-share-icon:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* Figma 1:1141: "Share" — Lora:Medium 34px #DEDAE5 */
.pgm-section-heading__en--md {
	font-size: 34px;
}

/* --------------------------------------------------------------------------
   Hero Slider
   -------------------------------------------------------------------------- */

.pgm-hero-slider {
	position: relative;
	overflow: hidden;
}

.pgm-hero-slider__track {
	display: flex;
	transition: transform 0.5s ease;
}

.pgm-hero-slider__slide {
	flex: 0 0 100%;
	min-width: 100%;
}

/* Figma 1:410: h-[221px] w-[393px] → aspect-ratio based on mobile */
.pgm-hero-slider__slide img,
.pgm-hero-slider__placeholder {
	display: block;
	width: 100%;
	height: 221px;
	object-fit: cover;
}

.pgm-hero-slider__placeholder {
	background-color: var(--wp--preset--color--bg-alt);
}

/* Hero Slider header row: label + dot indicators side by side */
.pgm-hero-slider__header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px var(--wp--preset--spacing--50);
}

/* Figma 1:482-1:486: 8px dots, 13px apart → gap 5px, aligned with Pick Up label */
.pgm-hero-slider__indicators {
	display: flex;
	align-items: center;
	gap: 5px;
}

.pgm-hero-slider__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, 0.5);
	cursor: pointer;
	padding: 0;
	transition: background-color 0.2s;
}

.pgm-hero-slider__dot.is-active {
	background: var(--wp--preset--color--base);
}

.pgm-hero-slider__dot:hover {
	background: rgba(255, 255, 255, 0.8);
}

.pgm-hero-slider__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	background: rgba(255, 255, 255, 0.8);
	border: none;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
	transition: background-color 0.2s;
	padding: 0;
}

.pgm-hero-slider__arrow:hover {
	background: rgba(255, 255, 255, 1);
}

.pgm-hero-slider__arrow--prev {
	left: var(--wp--preset--spacing--30);
}

.pgm-hero-slider__arrow--next {
	right: var(--wp--preset--spacing--30);
}

/* Figma 1:481: Lora:Medium 13px text-[#4b2e83] */
.pgm-hero-slider__label {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 13px;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
}

.pgm-hero-slider__info {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/* Figma 1:454: Lora:Medium 12px #dedae5 */
.pgm-hero-slider__date {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 12px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text);
}

/* Figma 1:387: BIZ_UDMincho:Regular 16px #011507 leading:22px */
.pgm-hero-slider__title {
	width: 100%;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
	line-height: 22px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pgm-hero-slider__slide a {
	text-decoration: none;
	color: inherit;
}

/* PC: Hero Slider — Figma 1:1231: 414px height, 2-column layout */
@media (min-width: 782px) {
	.pgm-hero-slider__slide img,
	.pgm-hero-slider__placeholder {
		height: 414px;
	}

	.pgm-hero-slider__header {
		padding: 20px var(--wp--preset--spacing--60);
		gap: 24px;
		align-items: flex-end;
	}

	.pgm-hero-slider__label {
		font-size: 56px;
		line-height: 1;
	}

	.pgm-hero-slider__indicators {
		gap: 8px;
		padding-bottom: 8px;
	}

	.pgm-hero-slider__dot {
		width: 12px;
		height: 12px;
	}

	.pgm-hero-slider__title {
		font-size: 24px;
		line-height: 40px;
	}

	.pgm-hero-slider__date {
		font-size: 20px;
	}

	.pgm-hero-slider .pgm-genre-tag {
		font-size: 16px;
		padding: 2px 12px;
		line-height: 22px;
	}

	.pgm-hero-slider__arrow {
		width: 48px;
		height: 48px;
	}

	.pgm-hero-slider__slide a {
		display: flex;
		flex-direction: row-reverse;
		align-items: stretch;
	}

	.pgm-hero-slider__slide img,
	.pgm-hero-slider__placeholder {
		flex: 0 0 60%;
		width: 60%;
	}

	.pgm-hero-slider__info {
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		padding: var(--wp--preset--spacing--50);
		gap: 12px;
	}

	.pgm-hero-slider__title {
		-webkit-line-clamp: 3;
	}
}

/* --------------------------------------------------------------------------
   Spot Info Card (from plugin)
   -------------------------------------------------------------------------- */

.spot-info-card {
	background: var(--wp--preset--color--white, #FFFFFF);
}

.spot-info-card h3 {
	padding-bottom: var(--wp--preset--spacing--30);
}

/* Figma: Google Maps embed area */
.pgm-map-embed {
	overflow: hidden;
	border-radius: 8px;
}

.pgm-map-embed iframe {
	width: 100%;
	height: 200px;
	border: 0;
	border-radius: 8px;
}

@media (min-width: 782px) {
	.pgm-map-embed iframe {
		height: 300px;
	}
}

/* --------------------------------------------------------------------------
   Query Pagination
   -------------------------------------------------------------------------- */

/* Figma: Lora 18px #4b2e83, current: filled purple circle */
.wp-block-query-pagination-numbers .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 37px;
	height: 37px;
	border-radius: 50%;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 18px;
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	transition: background-color 0.2s, color 0.2s;
}

.wp-block-query-pagination-numbers .page-numbers:hover {
	background-color: var(--wp--preset--color--primary-light);
}

.wp-block-query-pagination-numbers .page-numbers.current {
	background-color: var(--wp--preset--color--primary);
	color: #FFFFFF;
}

/* Pagination arrows */
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	font-family: var(--wp--preset--font-family--decorative);
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Horizontal Scroll (NEW OPEN, EVENT)
   -------------------------------------------------------------------------- */

.pgm-horizontal-scroll .wp-block-post-template.is-layout-grid {
	display: flex;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	gap: var(--wp--preset--spacing--30);
}

.pgm-horizontal-scroll .wp-block-post-template.is-layout-grid::-webkit-scrollbar {
	display: none;
}

.pgm-horizontal-scroll .wp-block-post-template.is-layout-grid > li {
	flex: 0 0 calc(33.333% - var(--wp--preset--spacing--20));
	min-width: 120px;
}

/* --------------------------------------------------------------------------
   Topic Tags
   -------------------------------------------------------------------------- */

.pgm-topic-tag a {
	display: inline-block;
	padding: 6px 16px;
	background-color: #FFFFFF;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 23px;
	text-decoration: none;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 400;
	white-space: nowrap;
	transition: background-color 0.2s, border-color 0.2s;
}

.pgm-topic-tag a:hover {
	background-color: var(--wp--preset--color--primary-light);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

.pgm-topic-tags-icon {
	text-align: center;
	margin-bottom: 4px;
}

.pgm-topic-tags-icon img {
	width: 24px;
	height: 24px;
	color: var(--wp--preset--color--primary);
}

/* --------------------------------------------------------------------------
   Spot Tag Badges (card & detail)
   -------------------------------------------------------------------------- */

.taxonomy-spot_tag {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.taxonomy-spot_tag a {
	display: inline-block;
	background-color: var(--wp--preset--color--bg-alt);
	color: var(--wp--preset--color--gray-light);
	font-size: var(--wp--preset--font-size--x-small);
	padding: 2px 8px;
	border-radius: 4px;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}

.taxonomy-spot_tag a::before {
	content: "#";
}

.taxonomy-spot_tag a:hover {
	background-color: var(--wp--preset--color--primary-light);
	color: var(--wp--preset--color--primary);
}

/* Figma 1:1090-1:1094: Detail page spot_tag — white bg, pill, 13px, primary text */
.pgm-spot-tag--detail a {
	background-color: #FFFFFF;
	color: var(--wp--preset--color--primary) !important;
	font-size: 13px;
	padding: 5px 14px;
	border-radius: 22px;
	line-height: 22.9px;
}

/* --------------------------------------------------------------------------
   Breadcrumb
   -------------------------------------------------------------------------- */

/* パンくずナビ — 記事詳細・一覧共通（モックアップ準拠） */
.pgm-breadcrumb-section {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}

.pgm-breadcrumb-section p {
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	font-size: 16px;
	color: var(--wp--preset--color--primary, #4B2E83);
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pgm-breadcrumb-section a {
	color: var(--wp--preset--color--primary, #4B2E83);
	text-decoration: none;
}

.pgm-breadcrumb-section a:hover {
	opacity: 0.7;
}

@media (max-width: 768px) {
	.pgm-breadcrumb-section p {
		font-size: 14px;
	}
}

/* --------------------------------------------------------------------------
   Map Modal — セクションと同じデザインをオーバーレイ表示
   -------------------------------------------------------------------------- */
.pgm-map-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	background: rgba(75, 46, 131, 0.15);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
	overflow-y: auto;
	padding: 40px 20px;
}

.pgm-map-modal[hidden] {
	display: none !important;
}

.pgm-map-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

.pgm-map-modal__overlay {
	position: relative;
	width: 100%;
	max-width: 550px;
	background: var(--wp--preset--color--base, #FFFCEE);
	border-radius: 12px;
	box-shadow: 0 8px 40px rgba(75, 46, 131, 0.18);
	padding: 20px 0;
	overflow: hidden;
}

.pgm-map-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 10;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--primary-light, #F1EFF5);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	color: var(--wp--preset--color--primary, #4B2E83);
	padding: 0;
	line-height: 1;
	transition: background-color 0.2s;
}

.pgm-map-modal__close svg {
	width: 14px;
	height: 14px;
}

.pgm-map-modal__close:hover {
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: #fff;
}

/* モーダル内はpadding調整のみ（セクションと同じCSSを共有） */
.pgm-map-modal .pgm-map-section--pc {
	display: none;
}
.pgm-map-modal .pgm-map-section--sp {
	display: block;
	padding: 0;
	text-align: center;
}
.pgm-map-modal .pgm-map-section-sp__inner {
	display: inline-flex;
	margin: 0;
	text-align: left;
}

@media (max-width: 768px) {
	.pgm-map-modal {
		padding: 30px 10px;
		align-items: flex-start;
	}

	.pgm-map-modal__overlay {
		padding: 16px 0;
	}
}

/* --------------------------------------------------------------------------
   Search Modal
   -------------------------------------------------------------------------- */

/* --- オーバーレイ --- */
.pgm-search-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	background: rgba(75, 46, 131, 0.15);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
	overflow-y: auto;
	padding: 60px 20px;
}

.pgm-search-modal[hidden] {
	display: none !important;
}

.pgm-search-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

/* --- パネル --- */
.pgm-search-modal__inner {
	position: relative;
	width: 100%;
	max-width: 600px;
	background: var(--wp--preset--color--base, #FFFCEE);
	border-radius: 12px;
	box-shadow: 0 8px 40px rgba(75, 46, 131, 0.18);
	padding: 48px 40px 40px;
}

/* --- 閉じるボタン --- */
.pgm-search-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--primary-light, #F1EFF5);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	color: var(--wp--preset--color--primary, #4B2E83);
	padding: 0;
	line-height: 1;
	transition: background-color 0.2s;
}

.pgm-search-modal__close svg {
	width: 14px;
	height: 14px;
}

.pgm-search-modal__close:hover {
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: #fff;
}

/* --- タイトル --- */
.pgm-search-modal__title {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 1px;
	margin: 0 0 24px;
	color: var(--wp--preset--color--primary, #4B2E83);
	text-align: center;
}

/* --- フォーム --- */
.pgm-search-modal__form {
	margin-bottom: 0;
}

/* --- 検索入力 --- */
.pgm-search-modal__input-wrap {
	display: flex;
	border: 1px solid var(--wp--preset--color--primary, #4B2E83);
	border-radius: 9999px;
	overflow: hidden;
	background: #fff;
}

.pgm-search-modal__input {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	padding: 12px 20px;
	font-size: 15px;
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	color: #333;
}

.pgm-search-modal__input::placeholder {
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-search-modal__input:focus-visible {
	outline: none;
}

.pgm-search-modal__submit {
	background: none;
	border: none;
	cursor: pointer;
	padding: 12px 18px;
	color: var(--wp--preset--color--primary, #4B2E83);
	line-height: 1;
	transition: color 0.2s;
}

.pgm-search-modal__submit svg {
	width: 18px;
	height: 18px;
}

.pgm-search-modal__submit:hover {
	color: var(--wp--preset--color--primary-dark, #3A2268);
}

/* --- セクション --- */
.pgm-search-modal__section {
	margin-top: 28px;
}

/* --- セクション見出し --- */
.pgm-search-modal__heading {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.5px;
	margin: 0 0 14px;
	color: var(--wp--preset--color--primary, #4B2E83);
	padding-bottom: 8px;
	border-bottom: 1px solid var(--wp--preset--color--english-text, #DEDAE5);
}

/* --- エリアグループ --- */
.pgm-search-modal__area-group {
	margin-bottom: 16px;
}

.pgm-search-modal__area-group:last-child {
	margin-bottom: 0;
}

.pgm-search-modal__area-label {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 13px;
	font-weight: 400;
	color: var(--wp--preset--color--primary, #4B2E83);
	margin: 0 0 8px;
	padding-left: 2px;
}

/* --- エリアボタングリッド --- */
.pgm-search-modal__area-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}

.pgm-search-modal__area-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 8px;
	border: 1px solid var(--wp--preset--color--english-text, #DEDAE5);
	border-radius: 9999px;
	background: #fff;
	text-decoration: none;
	color: var(--wp--preset--color--primary, #4B2E83);
	font-size: 13px;
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	font-weight: 500;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s;
}

.pgm-search-modal__area-btn:hover {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-color: var(--wp--preset--color--primary, #4B2E83);
}

.pgm-search-modal__area-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #4B2E83);
	outline-offset: 2px;
}

.pgm-search-modal__area-btn.is-selected {
	background-color: var(--wp--preset--color--primary, #4B2E83);
	border-color: var(--wp--preset--color--primary, #4B2E83);
	color: #fff;
}

.pgm-search-modal__area-btn.is-selected:hover {
	background-color: var(--wp--preset--color--primary-dark, #3A2268);
	border-color: var(--wp--preset--color--primary-dark, #3A2268);
}

/* --- エリアグループごとのカラー（地図の色に対応） --- */
.pgm-search-modal__area-group--north .pgm-search-modal__area-label { color: #D3B1B9; }
.pgm-search-modal__area-group--north .pgm-search-modal__area-btn { color: #D3B1B9; border-color: #D3B1B9; }
.pgm-search-modal__area-group--north .pgm-search-modal__area-btn:hover { background-color: #faf5f7; border-color: #c49aa5; }
.pgm-search-modal__area-group--north .pgm-search-modal__area-btn.is-selected { background-color: #D3B1B9; border-color: #D3B1B9; color: #fff; }
.pgm-search-modal__area-group--north .pgm-search-modal__area-btn.is-selected:hover { background-color: #c49aa5; border-color: #c49aa5; }

.pgm-search-modal__area-group--central .pgm-search-modal__area-label { color: #B9C7D6; }
.pgm-search-modal__area-group--central .pgm-search-modal__area-btn { color: #B9C7D6; border-color: #B9C7D6; }
.pgm-search-modal__area-group--central .pgm-search-modal__area-btn:hover { background-color: #f3f6f9; border-color: #9bb1c5; }
.pgm-search-modal__area-group--central .pgm-search-modal__area-btn.is-selected { background-color: #B9C7D6; border-color: #B9C7D6; color: #fff; }
.pgm-search-modal__area-group--central .pgm-search-modal__area-btn.is-selected:hover { background-color: #9bb1c5; border-color: #9bb1c5; }

.pgm-search-modal__area-group--south .pgm-search-modal__area-label { color: #C8D2C6; }
.pgm-search-modal__area-group--south .pgm-search-modal__area-btn { color: #C8D2C6; border-color: #C8D2C6; }
.pgm-search-modal__area-group--south .pgm-search-modal__area-btn:hover { background-color: #f4f7f4; border-color: #a8b8a6; }
.pgm-search-modal__area-group--south .pgm-search-modal__area-btn.is-selected { background-color: #C8D2C6; border-color: #C8D2C6; color: #fff; }
.pgm-search-modal__area-group--south .pgm-search-modal__area-btn.is-selected:hover { background-color: #a8b8a6; border-color: #a8b8a6; }

/* --- 検索ボタン --- */
.pgm-search-modal__submit-wrap {
	text-align: center;
	margin-top: 24px;
}

.pgm-search-modal__search-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: #fff;
	border: none;
	border-radius: 9999px;
	padding: 12px 0;
	font-size: 16px;
	font-weight: 400;
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	letter-spacing: 2px;
	width: 100%;
	max-width: 280px;
	cursor: pointer;
	transition: background-color 0.2s;
}

.pgm-search-modal__search-btn:hover {
	background-color: var(--wp--preset--color--primary-dark, #3A2268);
}

/* --- 人気ワード --- */
.pgm-search-modal__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pgm-search-modal__tag {
	display: inline-block;
	padding: 8px 18px;
	border: 1px solid var(--wp--preset--color--english-text, #DEDAE5);
	border-radius: 9999px;
	background: #fff;
	text-decoration: none;
	color: var(--wp--preset--color--primary, #4B2E83);
	font-size: 13px;
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	transition: all 0.2s;
}

.pgm-search-modal__tag:hover {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-color: var(--wp--preset--color--primary, #4B2E83);
	color: var(--wp--preset--color--primary, #4B2E83);
}

.pgm-search-modal__tag:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #4B2E83);
	outline-offset: 2px;
}

/* --- モバイル対応 --- */
@media (max-width: 768px) {
	.pgm-search-modal {
		padding: 40px 16px;
	}

	.pgm-search-modal__inner {
		padding: 40px 24px 32px;
	}

	.pgm-search-modal__title {
		font-size: 18px;
	}

	.pgm-search-modal__area-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* --------------------------------------------------------------------------
   Category Tab Active State
   -------------------------------------------------------------------------- */

/* Figma: active tab has primary-light bg, primary border top+sides, no bottom border */
.pgm-tab.is-active {
	background-color: var(--wp--preset--color--primary-light) !important;
	border-color: var(--wp--preset--color--primary) !important;
	border-bottom: none !important;
}

.pgm-tab.is-active p {
	color: var(--wp--preset--color--primary);
	font-size: 16px !important;
	letter-spacing: 2.08px;
}

/* --------------------------------------------------------------------------
   Category Tabs Loading
   -------------------------------------------------------------------------- */

.pgm-article-list.is-loading {
	opacity: 0.5;
	pointer-events: none;
	transition: opacity 0.2s;
}

/* --------------------------------------------------------------------------
   Share Button Copy Toast
   -------------------------------------------------------------------------- */

.pgm-share-btn--copy {
	position: relative;
}

.pgm-copy-toast {
	position: absolute;
	bottom: calc(100% + 0.5rem);
	left: 50%;
	transform: translateX(-50%);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--x-small);
	padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
	border-radius: 4px;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s;
	pointer-events: none;
}

.pgm-copy-toast.is-visible {
	opacity: 1;
}

/* --------------------------------------------------------------------------
   More Link Button
   -------------------------------------------------------------------------- */

.pgm-more-link {
	margin-bottom: 60px;
}

.pgm-whats-new__more-wrapper .pgm-more-link {
	margin-bottom: 0;
}

.pgm-more-link a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background-color: var(--wp--preset--color--primary);
	color: #FFFFFF !important;
	width: 210px;
	height: 35px;
	border-radius: 46px;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: 16px;
	letter-spacing: 2.08px;
	transition: background-color 0.2s;
}

.pgm-more-link a::after {
	content: "";
	display: inline-block;
	width: 5px;
	height: 9px;
	background-image: url('../icons/icon-chevron-right.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	filter: brightness(0) invert(1);
}

.pgm-more-link a:hover {
	background-color: var(--wp--preset--color--primary-dark);
}

@media (min-width: 782px) {
	.pgm-more-link {
		flex-shrink: 0;
		white-space: nowrap;
	}

	/* PC: 見出し+もっと見るのflex行で英字装飾が幅を壊さないよう制御 */
	.pgm-section-heading__en:not(.pgm-section-heading__en--sm):not(.pgm-section-heading__en--md) {
		position: absolute;
		pointer-events: none;
		z-index: 0;
		top: 0;
		left: 0;
		white-space: nowrap;
	}

	.pgm-section-heading {
		position: relative;
	}

	/* PC: 日本語見出しを英字の上に重ねる + 白い帯で英字下部を隠す（Figma 216:xxx） */
	.pgm-section-heading .wp-block-heading {
		position: relative;
		z-index: 1;
	}

	.pgm-section-heading::after {
		content: "";
		display: block;
		width: 100%;
		height: 14px;
		background-color: var(--wp--preset--color--base);
		position: relative;
		z-index: 1;
		margin-top: -14px;
	}
}

/* --------------------------------------------------------------------------
   Area CTA Map
   -------------------------------------------------------------------------- */

.pgm-area-cta-map {
	position: relative;
	max-width: 380px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--40) 0;
}

.pgm-area-cta-map__inner {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 280px;
}

.pgm-area-cta-map__svg {
	display: block;
	width: 140px;
	height: auto;
}

/* SVG area interaction */
.pgm-area-cta-map__svg [data-area-group] {
	cursor: pointer;
	transition: opacity 0.2s;
}

.pgm-area-cta-map__svg [data-area-group]:hover {
	opacity: 0.7;
}

/* Decorative L-shaped lines */
.pgm-area-cta-map__deco {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px;
	height: auto;
	pointer-events: none;
}

.pgm-area-cta-map__deco--left {
	left: 0;
}

.pgm-area-cta-map__deco--right {
	right: 0;
	transform: translateY(-50%) scaleX(-1);
}

/* Figma 1:677-1:679: Zen_Kaku_Gothic_New:Medium 12.237px */
.pgm-area-cta-map__label {
	position: absolute;
	font-family: 'Zen Kaku Gothic New', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 4px;
	transition: opacity 0.2s;
}

.pgm-area-cta-map__label:hover {
	opacity: 0.7;
}

.pgm-area-cta-map__label--ne {
	top: 10px;
	right: 55px;
	color: #D3B1B9;
	flex-direction: row-reverse;
}

.pgm-area-cta-map__label--w {
	top: 45%;
	left: 55px;
	color: #B9C7D6;
	text-align: right;
}

.pgm-area-cta-map__label--se {
	bottom: 20px;
	right: 55px;
	color: #C8D2C6;
}

/* Leader lines */
.pgm-area-cta-map__leader {
	display: block;
	width: 50px;
	height: auto;
	flex-shrink: 0;
}

/* PC: Area CTA — Figma 1:1216: 68.87px, 1:1215: 37.385px */
@media (min-width: 782px) {
	.pgm-area-cta__en {
		font-size: 69px !important;
	}

	/* Figma 1:1215: BIZ_UDMincho 37.385px */
	.pgm-area-cta__heading {
		font-size: 37px !important;
	}
}

/* PC: Area CTA Map — Figma 1:1608-1:1655 */
@media (min-width: 782px) {
	.pgm-area-cta-map {
		max-width: 750px;
		padding: var(--wp--preset--spacing--60) 0;
	}

	.pgm-area-cta-map__inner {
		min-height: 423px;
	}

	/* Figma 1:1613: 261px */
	.pgm-area-cta-map__svg {
		width: 261px;
	}

	/* PC版Figmaにdeco-lineなし → 非表示 */
	.pgm-area-cta-map__deco {
		display: none;
	}

	/* Figma 1:1611: Zen_Kaku_Gothic_New:Medium 22.814px */
	.pgm-area-cta-map__label {
		font-size: 23px;
	}

	/* Figma 1:1654: 188px (NE), 1:1655/1:1656: 146px (W/SE) */
	.pgm-area-cta-map__leader {
		width: 146px;
	}

	.pgm-area-cta-map__leader--ne {
		width: 188px;
	}

	/* Figma 1:1611: right side, near top */
	.pgm-area-cta-map__label--ne {
		top: 5%;
		right: 40px;
	}

	/* Figma 1:1612: left side, 45% */
	.pgm-area-cta-map__label--w {
		left: 40px;
	}

	/* Figma 1:1610: right side, near bottom */
	.pgm-area-cta-map__label--se {
		right: 40px;
	}
}

@media (max-width: 600px) {
	.pgm-area-cta-map {
		max-width: 320px;
	}

	.pgm-area-cta-map__deco {
		width: 35px;
	}

	.pgm-area-cta-map__label {
		font-size: 10px;
	}

	.pgm-area-cta-map__label--ne {
		right: 40px;
	}

	.pgm-area-cta-map__label--w {
		left: 40px;
	}

	.pgm-area-cta-map__label--se {
		right: 40px;
	}

	.pgm-area-cta-map__leader {
		width: 35px;
	}
}

/* --------------------------------------------------------------------------
   Featured Image Placeholder
   -------------------------------------------------------------------------- */

.wp-block-post-featured-image {
	background-color: var(--wp--preset--color--bg-alt);
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   Instagram Feed Grid
   -------------------------------------------------------------------------- */

/* Figma 216:746: gap:20px */
.pgm-instagram-feed {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

/* Figma 216:746: 157px squares, rounded-10px */
.pgm-instagram-feed__item {
	display: block;
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
	aspect-ratio: 1;
	position: relative;
}

.pgm-instagram-feed__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.2s ease;
}

.pgm-instagram-feed__item:hover img {
	opacity: 0.8;
}

@media (min-width: 600px) {
	.pgm-instagram-feed {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 782px) {
	.pgm-instagram-feed {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* Instagram placeholder grid */
.pgm-instagram-feed__item--placeholder {
	aspect-ratio: 1;
	background-color: var(--wp--preset--color--bg-alt);
	border-radius: 10px;
}

/* Instagram section icon centering */
.pgm-instagram-section__icon {
	margin: 0 auto !important;
}

.pgm-instagram-section__icon img {
	width: 32px;
	height: 32px;
}

/* --------------------------------------------------------------------------
   Section Heading (3-layer: English decorative + sub-heading + Japanese heading)
   -------------------------------------------------------------------------- */

.pgm-section-heading {
	position: relative;
}

/* Figma 216:217: Lora:Medium — #f1eff5 (primary-light) — 背景装飾英字 */
.pgm-section-heading__en {
	font-family: var(--wp--preset--font-family--decorative);
	color: var(--wp--preset--color--primary-light);
	font-weight: 500;
	font-size: 36px;
	line-height: 1;
	margin: 0;
	letter-spacing: 0.02em;
}

/* Figma 216:217/216:338: Share / Written by — 54.387px on detail page */
.pgm-section-heading__en--md {
	font-size: 54px !important;
}

/* Figma: Lora:Medium 12px #dedae5 — small variant for labels above Japanese h2 */
.pgm-section-heading__en--sm {
	font-size: 12px !important;
}

/* Figma 1:502: M_PLUS_1p:Regular 14px #4b2e83 leading:24px */
.pgm-section-heading__sub {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px !important;
	font-weight: 400;
	line-height: 24px;
	color: var(--wp--preset--color--primary);
	margin: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Section Heading Icon */
.pgm-section-heading__icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	color: var(--wp--preset--color--primary);
	flex-shrink: 0;
}

.pgm-section-heading__icon svg {
	width: 100%;
	height: 100%;
}

.pgm-section-heading__sub::before,
.pgm-section-heading__sub::after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 1px;
	background-color: var(--wp--preset--color--primary);
}

.pgm-section-heading__sub::before {
	display: none;
}

/* Figma 1:383: BIZ_UDMincho:Regular 26px #4b2e83 tracking:3.38px leading:24px */
.pgm-section-heading .wp-block-heading {
	margin-top: -0.15em;
	font-size: 26px !important;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 3.38px;
	color: var(--wp--preset--color--primary);
	display: flex;
	align-items: center;
	gap: 8px;
}

/* --------------------------------------------------------------------------
   Ranking Badge (Pennant)
   -------------------------------------------------------------------------- */

/* Figma 1:509-1:528: Lora 24px #4b2e83, bg #f1eff5, pennant shape */
.pgm-ranking-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 28px;
	height: 36px;
	background-color: var(--wp--preset--color--primary-light);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--decorative);
	font-weight: 400;
	font-size: 24px;
	clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
	line-height: 1;
	padding-bottom: 6px;
}

/* --------------------------------------------------------------------------
   Viewed Articles (最近見た記事)
   -------------------------------------------------------------------------- */

.pgm-viewed-articles-list > div:first-child {
	padding-top: 0;
}

.pgm-viewed-articles-list > div:last-child {
	border-bottom: none;
}

/* --------------------------------------------------------------------------
   Main Navigation (hamburger / inline)
   overlayMenu="mobile" → モバイル: ハンバーガー, PC: インライン展開
   -------------------------------------------------------------------------- */

.pgm-main-nav .wp-block-navigation-item a {
	text-decoration: none;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
}

/* Hamburger Menu Navigation Icons */
.wp-block-navigation__responsive-container [class*="pgm-nav-icon-"] a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.wp-block-navigation__responsive-container [class*="pgm-nav-icon-"] a::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
	filter: brightness(0) invert(1);
}

.pgm-nav-icon-tourism a::before { background-image: url('../icons/icon-tourism.svg'); }
.pgm-nav-icon-gourmet a::before { background-image: url('../icons/icon-gourmet.svg'); }
.pgm-nav-icon-event a::before { background-image: url('../icons/icon-event.svg'); }
.pgm-nav-icon-new-articles a::before { background-image: url('../icons/icon-new-articles.svg'); }
.pgm-nav-icon-ranking a::before { background-image: url('../icons/icon-ranking.svg'); }
.pgm-nav-icon-recommend a::before { background-image: url('../icons/icon-recommend.svg'); }
.pgm-nav-icon-new-shop a::before { background-image: url('../icons/icon-new-shop.svg'); }

/* --------------------------------------------------------------------------
   Category Nav (観光/グルメ/イベント) — header.html 内に統合
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   PC Layout (782px — wp:navigation overlayMenu="mobile" と同じ閾値)
   -------------------------------------------------------------------------- */

@media (min-width: 782px) {
	/* PC: ヘッダー — Figma 215:4124: py:12px */
	header > .wp-block-group {
		padding-top: 12px !important;
		padding-bottom: 12px !important;
	}

	/* PC: カテゴリナビをヘッダー1段にインライン表示（Figma 215:4123） */
	.pgm-header-category-nav {
		display: flex !important;
		align-items: center;
		flex: 1 1 auto;
		justify-content: center;
		gap: 60px;
	}

	/* PC: SNSアイコンをインライン表示に調整 */
	.pgm-nav-social {
		margin-top: 0 !important;
	}

	/* PC: ハンバーガーメニューを右サイドパネル方式に変更（Figma 1:1662） */
	.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		top: 0;
		right: 0;
		left: auto;
		width: 380px;
		height: 100vh;
		animation: pgm-slide-in-right 0.3s ease;
	}

	.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		width: 100%;
		max-width: 100%;
	}

	/* PC: ×ボタンを右サイドパネルの右上に配置 */
	.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		left: auto;
		right: 20px;
		top: 29px;
	}

	/* PC: 検索ボタンの上に "Search" ラベル */
	header .pgm-header-search {
		position: relative;
	}

	header .pgm-header-search::before {
		content: "Search";
		display: block;
		font-family: var(--wp--preset--font-family--decorative);
		font-size: 12px;
		font-weight: 500;
		color: var(--wp--preset--color--primary);
		text-align: center;
		line-height: 1;
		margin-bottom: 2px;
	}

	/* PC: ハンバーガーメニューの上に "Menu" ラベル */
	header .pgm-main-nav {
		position: relative;
	}

	header .pgm-main-nav::before {
		content: "Menu";
		display: block;
		font-family: var(--wp--preset--font-family--decorative);
		font-size: 12px;
		font-weight: 500;
		color: var(--wp--preset--color--primary);
		text-align: center;
		line-height: 1;
		margin-bottom: 2px;
	}
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.pgm-footer {
	font-family: var(--wp--preset--font-family--ui);
}

.pgm-footer a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

.pgm-footer a:hover {
	opacity: 0.8;
}

.pgm-footer .wp-block-separator {
	opacity: 0.2;
	border-color: var(--wp--preset--color--base);
}

/* --------------------------------------------------------------------------
   Header Subtitle (奈良のタウン情報)
   -------------------------------------------------------------------------- */

/* Figma 215:4127: BIZ_UDMincho:Regular 12px #4b2e83 tracking:2.4px */
.pgm-header-subtitle {
	font-size: 12px !important;
	margin: 0;
	line-height: 1;
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	letter-spacing: 2.4px;
}

.pgm-site-logo-group {
	text-align: center;
}

.pgm-site-logo-group .wp-block-site-title {
	font-family: var(--wp--preset--font-family--heading);
}

/* Figma 215:4126: ロゴグループ w:158px, gap:5px */
.pgm-site-logo-group {
	gap: 5px !important;
}

@media (min-width: 782px) {
	.pgm-site-logo-group {
		text-align: left;
		flex-shrink: 0;
	}
}

/* --------------------------------------------------------------------------
   PR Banner Grid
   -------------------------------------------------------------------------- */

/* PRバナーグリッド — 記事詳細・一覧共通（モックアップ準拠） */
.pgm-pr-banner-grid {
	width: 100%;
	background-color: var(--wp--preset--color--white, #fff);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	padding: 40px var(--page-padding, 60px);
	box-sizing: border-box;
}

.pgm-pr-banners {
	display: flex;
	gap: 30px;
	width: 100%;
	max-width: 1400px;
}

.pgm-pr-banner-item {
	flex: 1;
	aspect-ratio: 16 / 9;
	background-color: #ddd;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pgm-pr-banner-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.pgm-pr-banner-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* PC: スクロールバー非表示 */
.pgm-pr-banner-scrollbar { display: none; }

/* --------------------------------------------------------------------------
   LINE CTA
   -------------------------------------------------------------------------- */

.pgm-line-cta__sub {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.82px;
	color: var(--wp--preset--color--contrast-light);
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.pgm-line-cta__bracket {
	display: inline-block;
	width: 8px;
	height: 12px;
	border-top: 1.5px solid var(--wp--preset--color--contrast-light);
	border-bottom: 1.5px solid var(--wp--preset--color--contrast-light);
	flex-shrink: 0;
}

.pgm-line-cta__bracket--left {
	border-left: 1.5px solid var(--wp--preset--color--contrast-light);
}

.pgm-line-cta__bracket--right {
	border-right: 1.5px solid var(--wp--preset--color--contrast-light);
}

/* --------------------------------------------------------------------------
   Genre Tag Badge (purple bg, white text)
   -------------------------------------------------------------------------- */

.taxonomy-genre a,
.pgm-genre-tag {
	display: inline-block;
	background-color: var(--wp--preset--color--primary);
	color: #FFFFFF !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 11px;
	font-weight: 400;
	padding: 1px 8px;
	border-radius: 0;
	text-decoration: none;
	line-height: 16px;
	white-space: nowrap;
}

.taxonomy-genre a:hover {
	background-color: var(--wp--preset--color--primary-dark);
}

@media (min-width: 782px) {
	/* PC: ジャンルタグの横並び1行制限 */
	.pgm-spot-card .taxonomy-genre {
		display: flex;
		flex-wrap: nowrap;
		overflow: hidden;
		gap: 4px;
	}
}

/* --------------------------------------------------------------------------
   Follow Us Section
   -------------------------------------------------------------------------- */

/* Figma 1:1025/1:1540: Follow Us — 横並びレイアウト（左テキスト｜縦線｜右アイコン） */
.pgm-follow-us {
	border-top: 1px solid var(--wp--preset--color--primary);
	border-bottom: 1px solid var(--wp--preset--color--primary);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	display: flex !important;
	align-items: center;
	gap: 20px;
}

/* Figma: Lora:Medium, font-medium, 14px/18px(PC), text-[#4b2e83], 右向き矢印付き */
.pgm-follow-us__label {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	white-space: nowrap;
	margin: 0 !important;
	display: flex;
	align-items: center;
	gap: 8px;
}

.pgm-follow-us__label::after {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--wp--preset--color--primary);
	border-right: 2px solid var(--wp--preset--color--primary);
	transform: rotate(45deg);
	flex-shrink: 0;
}

/* Figma: 紫縦線セパレータ */
.pgm-follow-us__icons::before {
	content: "";
	display: block;
	width: 1px;
	height: 40px;
	background-color: var(--wp--preset--color--primary);
	flex-shrink: 0;
}

/* Figma: SNS icons ~35px, gap ~27px */
.pgm-follow-us__icons {
	display: flex;
	align-items: center;
	gap: 27px;
	flex-wrap: nowrap;
}

.pgm-follow-us__icons a {
	display: inline-flex;
	text-decoration: none;
	transition: opacity 0.2s;
}

.pgm-follow-us__icons a:hover {
	opacity: 0.7;
}

.pgm-follow-us__icons img {
	width: 35px;
	height: 35px;
	display: block;
}

/* --------------------------------------------------------------------------
   Footer Navigation Cards (どこいく？/ なにする？)
   -------------------------------------------------------------------------- */

/* Figma 1:612: bg-[#4b2e83] h-[61px] w-[393px] → wrapping container with padding */
.pgm-footer-nav-cards-wrap {
	padding: 5px 4px;
}

/* Figma 1:613: border-white h-[52px] rounded-[4px] w-[385px] */
.pgm-footer-nav-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin: 0 4px;
	padding: 0;
	border: 1px solid #FFFFFF;
	border-radius: 4px;
	height: 52px;
	align-items: center;
}

.pgm-footer-nav-cards::before {
	display: none;
}

.pgm-footer-nav-card:first-child {
	border-right: 1px solid rgba(255, 255, 255, 0.3);
}

/* Figma 1:616-1:619: Lora 18px + Noto Serif JP 12px */
.pgm-footer-nav-card {
	border: none;
	border-radius: 0;
	padding: 0;
	text-align: center;
	text-decoration: none;
	color: #FFFFFF;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.pgm-footer-nav-card:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

/* Figma: Lora:Regular, font-normal, 18px, text-white */
.pgm-footer-nav-card__en {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 18px;
	font-weight: 400;
	display: block;
	line-height: normal;
}

/* Figma: Noto_Serif_JP:SemiBold, 12px, text-[#dedae5], tracking-[1.56px], leading-[16px] */
.pgm-footer-nav-card__ja {
	font-family: 'Noto Serif JP', serif;
	font-size: 12px;
	font-weight: 600;
	display: block;
	color: #DEDAE5;
	letter-spacing: 1.56px;
	line-height: 16px;
}

/* PC: 右下固定フローティングボタン */
@media (min-width: 782px) {
	.pgm-footer-nav-cards-wrap {
		position: fixed;
		bottom: 24px;
		right: 24px;
		z-index: 9000;
		padding: 0;
		background: var(--wp--preset--color--primary);
		border-radius: 8px;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	}

	.pgm-footer-nav-cards-wrap .pgm-footer-nav-cards {
		margin: 0;
		height: 56px;
		white-space: nowrap;
	}
}

/* --------------------------------------------------------------------------
   Footer Logo
   -------------------------------------------------------------------------- */

/* Footer navigation items (Figma: BIZ UDMincho, 14px, tracking 0.7px, line-height 40px) */
.pgm-footer__nav-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	letter-spacing: 0.7px;
	line-height: 40px;
	margin: 0;
}

.pgm-footer__nav-columns {
	flex-wrap: nowrap !important;
}

/* Footer logo block: left-aligned (Figma: left:35px) */
.pgm-footer__logo-block {
	text-align: left;
}

.pgm-footer__logo-subtitle {
	font-size: 12px;
	font-family: var(--wp--preset--font-family--heading);
	margin: 0;
}

.pgm-footer__logo-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 30px;
}

/* Footer copyright: left-aligned, Lora font, white 100% (Figma) */
.pgm-footer__copyright {
	font-family: var(--wp--preset--font-family--decorative);
	text-align: left;
}

/* --------------------------------------------------------------------------
   What's New: Mobile horizontal scroll, PC grid
   -------------------------------------------------------------------------- */

/* SP: What's New — 2-column grid on mobile (Figma SP design) */
@media (max-width: 781px) {
	.pgm-whatsnew-scroll .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--wp--preset--spacing--30) !important;
	}
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (min-width: 782px) {
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 781px) {
	.pgm-category-tabs .wp-block-group {
		min-width: max-content;
	}

	/* SP: Spot card grid — Figma SP: 2-column grid */
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: var(--wp--preset--spacing--30) !important;
	}

	/* Horizontal scroll sections override back to flex */
	.pgm-horizontal-scroll .wp-block-post-template.is-layout-grid {
		display: flex !important;
		grid-template-columns: unset !important;
	}
}

/* ==========================================================================
   Article Detail Page — Figma precision overrides
   ========================================================================== */

/* Figma 215:4185: Article title — BIZ UDMincho, left purple border */
.single-spot .wp-block-post-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px !important;
	font-weight: 400;
	line-height: 24px;
	color: var(--wp--preset--color--primary);
	border-left: 3px solid var(--wp--preset--color--primary);
	padding-left: 20px;
	min-height: 48px;
	display: flex;
	align-items: center;
}

/* article-detail.css で定義済み（article-body-content セレクタ） */

/* Figma: Genre tag + date row on detail page */
.single-spot .wp-block-post-date {
	font-family: var(--wp--preset--font-family--decorative);
	font-weight: 500;
	color: var(--wp--preset--color--english-text);
}

/* Figma 216:275: Share icons — 35px, gap:25px */
@media (min-width: 782px) {
	.pgm-share-icons {
		gap: 25px;
	}

	.pgm-share-icon {
		width: 35px;
		height: 35px;
	}

	.pgm-share-icon svg {
		width: 35px;
		height: 35px;
	}
}

/* --------------------------------------------------------------------------
   Writer Intro — Figma 216:344 (updated design)
   -------------------------------------------------------------------------- */

.pgm-writer-intro__inner {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 20px;
}

.pgm-writer-intro__content {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.pgm-writer-intro__name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 2.6px;
	line-height: 1.4;
	color: var(--wp--preset--color--primary);
	margin: 0;
}

.pgm-writer-intro__bio {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	font-weight: 400;
	line-height: 26px;
	color: var(--wp--preset--color--contrast);
	margin: 0;
}

.pgm-writer-intro__btn {
	display: inline-block;
	background-color: var(--wp--preset--color--primary);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1.82px;
	text-align: center;
	text-decoration: none;
	padding: 10px 30px;
	border-radius: 100px;
	align-self: flex-start;
	transition: background-color 0.2s;
}

.pgm-writer-intro__btn:hover {
	background-color: var(--wp--preset--color--primary-dark);
	color: #fff;
}

.pgm-writer-intro__avatar {
	width: 104px;
	height: 104px;
	border-radius: 50%;
	border: 1px solid #DEDAE5;
	object-fit: cover;
	flex-shrink: 0;
}

.pgm-writer-intro__avatar--placeholder {
	background: #f0f0f0;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* PC: Writer intro — Figma 216:344 large avatar, reversed layout */
@media (min-width: 782px) {
	.pgm-writer-intro__inner {
		gap: 30px;
	}

	.pgm-writer-intro__name {
		font-size: 30px;
		letter-spacing: 3.9px;
		line-height: 46px;
	}

	.pgm-writer-intro__bio {
		font-size: 16px;
		line-height: 32px;
		max-width: 500px;
	}

	.pgm-writer-intro__avatar {
		width: 200px;
		height: 200px;
		border-width: 3.9px;
	}
}

/* ==========================================================================
   PC Layout — Grid & Gallery overrides (Figma PC designs)
   ========================================================================== */

@media (min-width: 782px) {
	/* Figma 216:428: PC版 関連記事を3列 gap:30px */
	.pgm-related-articles-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 30px;
	}

	/* Figma 216:479: おすすめ記事 4列 gap:30px */
	.pgm-pickup-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 30px;
	}

	/* P-4: PC版 トップページ新着記事を3列グリッドに */
	.pgm-whatsnew-scroll .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	/* P-5: PC版 おすすめ記事を4列グリッドに (Figma: 4カード横並び) */
	.pgm-recommended-section .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(4, 1fr);
	}

	/* Query sections use alignwide in template to break out of contentSize */

	/* P-3: PC版 フォトギャラリー3列横並び */
	.pgm-photo-gallery .wp-block-gallery {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--30);
	}

	.pgm-photo-gallery .wp-block-gallery .wp-block-image {
		width: 100%;
	}

	.pgm-photo-gallery .wp-block-gallery .wp-block-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		aspect-ratio: 1;
		border-radius: 4px;
	}
}

/* ==========================================================================
   PC Design — Figma precise overrides (1440px design)
   ========================================================================== */

@media (min-width: 782px) {
	/* PC: セクション見出し — Figma 40px / tracking 5.2px / lh:46px */
	.pgm-section-heading .wp-block-heading {
		font-size: 40px !important;
		letter-spacing: 5.2px;
		line-height: 46px;
	}

	/* PC: 英字装飾テキスト — Figma 90px（トップページ大見出し背景） */
	.pgm-section-heading__en:not(.pgm-section-heading__en--sm) {
		font-size: 90px;
	}

	/* PC: 英字装飾テキスト小 — Figma 36px（詳細ページ用） */
	.pgm-section-heading__en--sm {
		font-size: 36px;
	}

	/* PC: 小見出し — Figma 16px M PLUS 1p */
	.pgm-section-heading__sub {
		font-size: 16px !important;
	}

	/* PC: 記事詳細タイトル — Figma 215:4185: 24px / lh:40px / 左ボーダー / h:80px */
	.single-spot .wp-block-post-title {
		font-size: 24px !important;
		line-height: 40px;
		min-height: 80px;
	}

	/* PC: ジャンルタグ詳細ページ — Figma 215:4377: 52x26px bg:purple 16px */
	.single-spot .taxonomy-genre a,
	.single-spot .pgm-genre-tag {
		font-size: 16px;
		padding: 3px 14px;
	}

	/* PC: 日付（詳細ページ） — Figma 20px */
	.single-spot .wp-block-post-date {
		font-size: 20px !important;
	}

	/* Figma 215:4389: スポットタグ — bg:white rounded-full px:10 py:5 14px */
	.pgm-spot-tag--detail a {
		font-size: 14px;
		padding: 5px 10px;
		background: #fff;
		border-radius: 100px;
	}

	/* PC: ジャンルタグ — Figma 14px / 44x22px */
	.taxonomy-genre a,
	.pgm-genre-tag {
		font-size: 14px;
		padding: 2px 10px;
		line-height: 18px;
	}

	/* PC: 記事タイトル in list — Figma 18px / lh:28px */
	.pgm-pickup-grid .wp-block-post-title,
	.pgm-recommended-section .wp-block-post-title,
	.pgm-query-event .wp-block-post-title {
		font-size: 18px !important;
		line-height: 28px !important;
	}

	/* PC: 日付 — Figma 14px */
	.pgm-pickup-grid .wp-block-post-date,
	.pgm-recommended-section .wp-block-post-date,
	.pgm-query-event .wp-block-post-date {
		font-size: 14px !important;
	}

	/* PC: Topic Tag pills — Figma 17.8px / h:44px / rounded:29px */
	.pgm-topic-tag a {
		font-size: 18px;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
		border-radius: 29px;
		line-height: 1.7;
	}

	/* PC: Topic Tags "Topics" label — Figma 54.4px Lora #F1EFF5 */
	.pgm-topic-tags-section [style*="font-size:10px"] {
		font-size: 54px !important;
		color: var(--wp--preset--color--primary-light) !important;
	}

	/* PC: 注目コンテンツ heading — Figma 30px / tracking:3.9px */
	.pgm-topic-tags-section .wp-block-heading {
		font-size: 30px !important;
		letter-spacing: 3.9px;
	}

	/* PC: 新着記事カードタイトル — Figma 18px / lh:28px */
	.pgm-whatsnew-scroll .wp-block-post-title a {
		font-size: 18px !important;
		line-height: 28px !important;
	}

	/* Figma 216:686: 最近見た記事 4列 gap:30px */
	.pgm-viewed-articles-list {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 30px;
	}

	.pgm-viewed-articles-list > div {
		flex-direction: column !important;
		gap: 0 !important;
		padding: 0 !important;
		border-bottom: none !important;
	}

	.pgm-viewed-articles-list > div > a {
		width: 100% !important;
		height: 175px !important;
	}

	.pgm-viewed-articles-list > div > div {
		padding-top: var(--wp--preset--spacing--20);
	}

	/* PC: ページネーション — Figma: 丸囲み50px、Lora 18px */
	.wp-block-query-pagination {
		justify-content: center;
		gap: var(--wp--preset--spacing--40);
	}

	.wp-block-query-pagination-numbers .page-numbers {
		width: 45px;
		height: 45px;
		font-size: 18px;
	}

	.wp-block-query-pagination-numbers .page-numbers.current {
		width: 50px;
		height: 50px;
	}

	/* PC: フッターナビ — Figma: 水平1行配置(スペース区切り), BIZ UDMincho 16px, lh:50px */
	.pgm-footer__nav-columns {
		display: block !important;
	}

	.pgm-footer__nav-columns .wp-block-column {
		display: inline !important;
		flex-basis: unset !important;
	}

	.pgm-footer__nav-columns .pgm-footer__nav-item {
		display: inline !important;
		font-size: 16px !important;
		line-height: 50px !important;
		letter-spacing: 0.8px;
		margin-right: 2em;
	}

	/* PC: フッターロゴ — Figma: 45.5px */
	.pgm-footer__logo-title {
		font-size: 45.5px;
	}

	/* PC: フッターサブタイトル — Figma: 18.2px */
	.pgm-footer__logo-subtitle {
		font-size: 18.2px;
	}

	/* PC: フッターコピーライト — Figma: 12px */
	.pgm-footer__copyright {
		font-size: 12px;
	}

	/* PC: カテゴリタブ — Figma 20px / tracking:2.6px */
	.pgm-tab p,
	.pgm-tab-active p {
		font-size: 20px !important;
		letter-spacing: 2.6px;
	}

	.pgm-tab-active p {
		font-size: 20px !important;
	}

	/* PC: ランキングバッジ 1位を大きく — Figma: 1st=42px badge, 2-5=29px */
	.pgm-ranking-badge {
		font-size: 29px;
		width: 35px;
		height: 45px;
		padding-bottom: 8px;
	}

	.pgm-article-list > div:first-child .pgm-ranking-badge {
		font-size: 42px;
		width: 51px;
		height: 65px;
		padding-bottom: 10px;
	}

	/* PC: ランキング1位サムネイル大型化 */
	.pgm-article-list > div:first-child a[style*="width:150px"] {
		width: 300px !important;
		height: 210px !important;
	}

	/* PC: ティッカー — Figma 16px */
	.pgm-category-nav-wrapper .pgm-category-nav .wp-block-navigation-item a {
		font-size: 20px !important;
		letter-spacing: 2.6px;
	}

	/* PC: 新店舗・施設 横スクロール → 3列グリッド化 */
	.pgm-query-new-open .wp-block-post-template.is-layout-grid {
		display: grid !important;
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	/* PC: おでかけセクション — Figma: 3列カード */
	.pgm-query-event .wp-block-post-template {
		display: grid !important;
		grid-template-columns: repeat(3, 1fr);
		gap: var(--wp--preset--spacing--40);
	}

	.pgm-query-event .wp-block-group[style*="border-bottom"] {
		flex-direction: column !important;
		border-bottom: none !important;
	}

	.pgm-query-event .wp-block-post-featured-image {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 16/9;
	}

	/* PC: LINE CTA + Follow Us 横並び — Figma 1:1535+1:1540: 左LINE CTA 544px + 右Follow Us 544px */
	.pgm-line-follow-row {
		display: flex !important;
		flex-direction: row !important;
		align-items: center;
		gap: 0;
	}

	.pgm-line-follow-row > .wp-block-group:first-child {
		flex: 0 0 50%;
		max-width: 50%;
	}

	.pgm-line-follow-row > .pgm-follow-us {
		flex: 1;
		border-left: none;
	}

	/* PC: Follow Us — Figma 1:1547: Lora:Medium 18px */
	.pgm-follow-us__label {
		font-size: 18px;
	}

	/* PC: Follow Us SNSアイコン — Figma 1:1552-1:1558: ~51px, gap ~40px */
	.pgm-follow-us__icons {
		gap: 40px;
	}

	.pgm-follow-us__icons img {
		width: 51px;
		height: 51px;
	}

	/* PC: Follow Us 縦線 — Figma 1:1546: h:95.612px */
	.pgm-follow-us__icons::before {
		height: 60px;
	}
}

/* ==========================================================================
   Task 17: Responsive Final Adjustments
   ========================================================================== */

/* --------------------------------------------------------------------------
   SP (default mobile-first) — Figma SP designs
   -------------------------------------------------------------------------- */

/* SP: Section headings — smaller on mobile */
@media (max-width: 781px) {
	.pgm-section-heading .wp-block-heading {
		font-size: 20px !important;
		letter-spacing: 2.6px;
	}

	.pgm-section-heading__en:not(.pgm-section-heading__en--sm):not(.pgm-section-heading__en--md) {
		font-size: 26px;
	}

	.pgm-section-heading__en--md {
		font-size: 24px !important;
	}

	/* SP: Category nav — smaller text */
	.pgm-category-nav .wp-block-navigation-item a {
		font-size: 14px;
		letter-spacing: 1.82px;
	}

	/* SP: Category nav icons — smaller */
	.pgm-category-nav .wp-block-navigation-item a::before {
		width: 16px;
		height: 16px;
	}

	/* SP: Instagram grid — 2 columns, smaller gap */
	.pgm-instagram-feed {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 8px !important;
	}

	/* SP: Footer nav cards — stack vertically */
	.pgm-footer-nav-cards {
		flex-direction: column !important;
	}

	/* SP: Topic tags — wrap */
	.pgm-topic-tags {
		justify-content: flex-start !important;
	}

	/* SP: Spot card title — Figma 14px / BIZ UDMincho */
	.pgm-spot-card .wp-block-post-title {
		font-size: 14px !important;
		line-height: 1.14 !important;
	}

	/* SP: Spot card date — Figma 12px / Lora */
	.pgm-spot-card .wp-block-post-date {
		font-size: 12px !important;
	}

	/* SP: Article list grid bg — tighter padding on mobile */
	.pgm-article-grid-bg {
		padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	}

	/* SP: Pagination — smaller circles */
	.wp-block-query-pagination-numbers .page-numbers {
		width: 32px;
		height: 32px;
		font-size: 16px;
	}

	/* SP: Query pagination overall spacing */
	.wp-block-query-pagination {
		gap: var(--wp--preset--spacing--20);
	}

	/* SP: Breadcrumb — 共通CSSで定義済み */

	/* SP: Writer intro — smaller avatar on mobile */
	.pgm-writer-intro__avatar {
		width: 80px !important;
		height: 80px !important;
	}

	/* SP: Related articles — uses 2-col grid from pattern, just adjust gap */
	.pgm-related-articles-grid .wp-block-post-template.is-layout-grid {
		gap: var(--wp--preset--spacing--30) !important;
	}

	/* SP: Viewed articles — list layout */
	.pgm-viewed-articles-list {
		display: flex;
		flex-direction: column;
	}
}

/* --------------------------------------------------------------------------
   PC (min-width: 782px) — Additional Figma PC overrides
   -------------------------------------------------------------------------- */

@media (min-width: 782px) {
	/* Figma 216:746: PC — auto-fill 157px squares */
	.pgm-instagram-feed {
		grid-template-columns: repeat(auto-fill, minmax(140px, 157px)) !important;
		justify-content: center;
	}

	/* PC: Article grid bg — more padding */
	.pgm-article-grid-bg {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
	}

	/* PC: Featured image on detail page — max-width constrained */
	.single-spot .wp-block-post-featured-image {
		border-radius: 8px;
	}

	.single-spot .wp-block-post-featured-image img {
		border-radius: 8px;
	}
}

/* --------------------------------------------------------------------------
   Slide-in animation for PC side panel menu
   -------------------------------------------------------------------------- */

@keyframes pgm-slide-in-right {
	from {
		transform: translateX(100%);
	}
	to {
		transform: translateX(0);
	}
}

/* --------------------------------------------------------------------------
   About Page
   -------------------------------------------------------------------------- */

/* --- Page Wrapper --- */
.pgm-about-page {
	padding-left: 0 !important;
	padding-right: 0 !important;
	padding-bottom: 60px;
}

/* --- Hero --- */
.pgm-about-hero {
	position: relative;
	width: 100%;
	height: 200px;
	overflow: hidden;
}

.pgm-about-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
}

.pgm-about-hero__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.pgm-about-hero__title-group {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}

.pgm-about-hero__logo {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 28px;
	font-style: italic;
	font-weight: 400;
	color: #fff;
	letter-spacing: 4px;
}

.pgm-about-hero__en {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 8px;
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 0.1em;
	white-space: nowrap;
}


/* --- Concept --- */
.pgm-about-concept {
	text-align: center;
	padding: clamp(16px, 4vw, 30px) clamp(8px, 2vw, 10px) clamp(12px, 2.5vw, 20px);
}

.pgm-about-concept__label {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	text-align: center;
	margin: 0 auto 8px;
	max-width: 340px;
}

.pgm-about-concept__text {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	line-height: 40px;
	letter-spacing: 3.5px;
	text-align: center;
}

.pgm-about-concept__text p {
	margin: 0;
}

/* --- Identity Statement --- */
.pgm-about-identity {
	text-align: center;
	padding: clamp(6px, 1.5vw, 10px) clamp(8px, 2vw, 10px) clamp(12px, 2.5vw, 20px);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
}

.pgm-about-identity__pre {
	font-size: 14px;
	line-height: 50px;
	letter-spacing: 3.5px;
	margin: 0;
}

.pgm-about-identity__main {
	font-size: 18px;
	line-height: 60px;
	letter-spacing: 4.5px;
	margin: 0;
}

.pgm-about-identity__post {
	font-size: 14px;
	line-height: 50px;
	letter-spacing: 3.5px;
	margin: 0;
}

/* --- Message Section --- */
.pgm-about-message {
	padding: 0 clamp(8px, 2vw, 10px);
}

.pgm-about-message__label {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	text-align: center;
	margin: 0 auto 4px;
	max-width: 340px;
}

.pgm-about-message__heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(22px, 5vw, 26px);
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	letter-spacing: 3.38px;
	line-height: 46px;
	text-align: center;
	margin: 0 0 clamp(8px, 2vw, 12px);
}

.pgm-about-message__block {
	margin-bottom: clamp(12px, 3vw, 20px);
}

.pgm-about-message__image img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}

.pgm-about-message__image--cover {
	max-width: 238px;
	margin: 0 auto 12px;
}

.pgm-about-message__image--marche {
	margin: 0 auto 12px;
	max-width: 80%;
}

.pgm-about-message__image--marche img {
	aspect-ratio: 329 / 477;
}

.pgm-about-message__image--editorial1 {
	margin: 0 auto 12px;
	max-width: 90%;
}

.pgm-about-message__image--editorial1 img {
	aspect-ratio: 330 / 187;
}

.pgm-about-message__image--editorial2 {
	margin: 0 auto 12px;
	max-width: 80%;
}

.pgm-about-message__image--editorial2 img {
	aspect-ratio: 329 / 440;
	max-width: 80%;
	margin: 0 auto;
}

.pgm-about-message__image--landscape {
	margin: 0 auto 12px;
	max-width: 90%;
	opacity: 0.8;
}

.pgm-about-message__image--landscape img {
	aspect-ratio: 398 / 227;
}

.pgm-about-message__image--temple {
	margin: 0 auto 12px;
	max-width: 90%;
}

.pgm-about-message__image--temple img {
	aspect-ratio: 393 / 300;
}

.pgm-about-message__body {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(12px, 3.5vw, 14px);
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	line-height: clamp(32px, 8vw, 40px);
	text-align: center;
}

.pgm-about-message__body p {
	margin: 0;
}

.pgm-about-message__find-heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(18px, 4.5vw, 20px);
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	line-height: 36px;
	letter-spacing: 2.6px;
	text-align: center;
	margin-bottom: clamp(5px, 1.5vw, 8px);
}

.pgm-about-message__find-heading p {
	margin: 0;
}

/* --- Closing --- */
.pgm-about-closing {
	text-align: center;
	padding: clamp(12px, 3vw, 20px) clamp(8px, 2vw, 10px) clamp(18px, 4vw, 30px);
}

.pgm-about-closing__text {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(16px, 4.5vw, 20px);
	font-weight: 400;
	color: var(--wp--preset--color--primary);
	line-height: 36px;
	letter-spacing: 2.6px;
	margin: 0 0 clamp(16px, 4vw, 24px);
}

.pgm-about-closing__en {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 26px;
	font-weight: 500;
	color: var(--wp--preset--color--primary);
	margin: 0;
}

/* --- About Page PC --- */
@media (min-width: 782px) {
	.pgm-about-hero {
		height: 620px;
	}

	.pgm-about-hero__logo {
		font-size: 48px;
		letter-spacing: 6px;
	}

	.pgm-about-concept {
		padding: 40px 20px 30px;
	}

	.pgm-about-concept__label {
		font-size: 18px;
		max-width: 640px;
	}

	.pgm-about-concept__text {
		font-size: 18px;
		line-height: 50px;
		letter-spacing: 4.5px;
		max-width: 640px;
		margin: 0 auto;
	}

	.pgm-about-identity {
		padding: 15px 20px 30px;
	}

	.pgm-about-identity__pre {
		font-size: 18px;
		letter-spacing: 4.5px;
	}

	.pgm-about-identity__main {
		font-size: 24px;
		letter-spacing: 6px;
	}

	.pgm-about-identity__post {
		font-size: 18px;
		letter-spacing: 4.5px;
	}

	.pgm-about-message {
		padding: 0 40px;
		max-width: 1200px;
		margin: 0 auto;
	}

	.pgm-about-message__label {
		font-size: 14px;
		max-width: 640px;
	}

	.pgm-about-message__heading {
		font-size: 40px;
		letter-spacing: 5.2px;
		text-align: center;
	}

	.pgm-about-message__block--intro {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.pgm-about-message__block--intro .pgm-about-message__image--cover {
		width: 253px;
		max-width: 253px;
		margin: 0;
	}

	.pgm-about-message__block--intro .pgm-about-message__body {
		text-align: center;
		font-size: 16px;
		line-height: 46px;
	}

	.pgm-about-message__block--marche {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		align-items: start;
	}

	.pgm-about-message__block--marche .pgm-about-message__image--marche {
		margin: 0;
	}

	.pgm-about-message__block--marche .pgm-about-message__image--marche img {
		aspect-ratio: 448 / 650;
	}

	.pgm-about-message__block--marche .pgm-about-message__body {
		text-align: left;
		font-size: 16px;
		line-height: 46px;
		padding-top: 20px;
	}

	.pgm-about-message__block--editorial1 {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		align-items: start;
	}

	.pgm-about-message__block--editorial1 .pgm-about-message__body {
		order: -1;
		text-align: left;
		font-size: 16px;
		line-height: 46px;
	}

	.pgm-about-message__block--editorial1 .pgm-about-message__image--editorial1 img {
		aspect-ratio: 382 / 216;
	}

	.pgm-about-message__block--editorial2 {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		align-items: start;
	}

	.pgm-about-message__block--editorial2 .pgm-about-message__body {
		text-align: left;
		font-size: 16px;
		line-height: 46px;
		padding-top: 20px;
	}

	.pgm-about-message__block--editorial2 .pgm-about-message__image--editorial2 {
		margin: 0;
	}

	.pgm-about-message__block--editorial2 .pgm-about-message__image--editorial2 img {
		aspect-ratio: 257 / 343;
	}

	.pgm-about-message__block--find {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
		gap: 12px 20px;
		align-items: start;
	}

	.pgm-about-message__block--find .pgm-about-message__find-text {
		grid-column: 1;
		grid-row: 1 / 3;
		display: flex;
		flex-direction: column;
		gap: 12px;
		order: 0;
	}

	.pgm-about-message__block--find .pgm-about-message__image--temple {
		grid-column: 2;
		grid-row: 1;
		margin: 0;
		order: 0;
	}

	.pgm-about-message__block--find .pgm-about-message__image--landscape {
		grid-column: 2;
		grid-row: 2;
		margin: 0;
		order: 0;
	}

	.pgm-about-message__block--find .pgm-about-message__find-heading {
		font-size: 32px;
		letter-spacing: 4.16px;
		line-height: 46px;
		text-align: left;
		margin: 0;
	}

	.pgm-about-message__find-text .pgm-about-message__body {
		text-align: left;
		font-size: 16px;
		line-height: 46px;
	}

	.pgm-about-message__body--centered {
		text-align: center;
		font-size: 16px;
		line-height: 46px;
		margin-top: 20px;
	}

	.pgm-about-message__find-images .pgm-about-message__image {
		margin: 0;
	}

	.pgm-about-message__find-images .pgm-about-message__image--temple img {
		aspect-ratio: 448 / 342;
	}

	.pgm-about-message__find-images .pgm-about-message__image--landscape img {
		aspect-ratio: 448 / 256;
	}

	.pgm-about-closing {
		padding: 30px 20px 40px;
	}

	.pgm-about-closing__text {
		font-size: 24px;
		letter-spacing: 6px;
		line-height: 45px;
	}

	.pgm-about-closing__en {
		font-size: 80px;
		line-height: 1.2;
	}
}

/* ==========================================================================
   SVG Icon / Decorative Asset Integration
   ========================================================================== */

/* --------------------------------------------------------------------------
   Group 1: Header Logo (logo-header.svg)
   Replace site-title text with SVG logo image.
   -------------------------------------------------------------------------- */

.pgm-site-logo-group .wp-block-site-title a {
	display: block;
	font-size: 0;
	line-height: 0;
	overflow: hidden;
	background-image: url('../icons/logo-header.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 158px;
	height: 42px;
}

/* Figma 215:4128: PC版もロゴ w:158px h:42px */
@media (min-width: 782px) {
	.pgm-site-logo-group .wp-block-site-title a {
		width: 158px;
		height: 42px;
	}
}

/* --------------------------------------------------------------------------
   Group 2: Hero Slider Decorative Brackets
   hero-slider-bracket-left.svg / hero-slider-bracket-right.svg
   -------------------------------------------------------------------------- */

.pgm-hero-slider::before,
.pgm-hero-slider::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 150px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 2;
	pointer-events: none;
	opacity: 0.3;
	display: none;
}

.pgm-hero-slider::before {
	left: 8px;
	background-image: url('../icons/hero-slider-bracket-left.svg');
}

.pgm-hero-slider::after {
	right: 8px;
	background-image: url('../icons/hero-slider-bracket-right.svg');
}

@media (min-width: 782px) {
	.pgm-hero-slider::before,
	.pgm-hero-slider::after {
		display: block;
		width: 60px;
		height: 280px;
		opacity: 0.2;
	}

	.pgm-hero-slider::before {
		left: 16px;
	}

	.pgm-hero-slider::after {
		right: 16px;
	}
}

/* --------------------------------------------------------------------------
   Group 3: Decorative Elements
   -------------------------------------------------------------------------- */

/* deco-line-bl.svg / deco-line-tr.svg — Mobile-only section decorations
   (CSS comment says "PC版Figmaにdeco-lineなし → 非表示") */

.pgm-hero-slider .pgm-hero-slider__header::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 79px;
	height: 8.5px;
	background-image: url('../icons/deco-line-bl.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
	pointer-events: none;
	display: none;
}

.pgm-hero-slider .pgm-hero-slider__header::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 84.5px;
	height: 7px;
	background-image: url('../icons/deco-line-tr.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: top right;
	pointer-events: none;
	display: none;
}

.pgm-hero-slider .pgm-hero-slider__header {
	position: relative;
}

@media (max-width: 781px) {
	.pgm-hero-slider .pgm-hero-slider__header::before,
	.pgm-hero-slider .pgm-hero-slider__header::after {
		display: block;
	}
}

/* deco-sparkle.svg — Decorative sparkle on LINE CTA sub-heading */
.pgm-line-cta__bracket--right::after {
	content: "";
	display: inline-block;
	width: 9px;
	height: 13px;
	background-image: url('../icons/deco-sparkle.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-left: 4px;
	vertical-align: middle;
}

/* footer-bracket.svg — Decorative bracket between footer nav cards */
.pgm-footer-nav-cards::before {
	display: block !important;
	content: "";
	width: 16px;
	height: 48px;
	background-image: url('../icons/footer-bracket.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	pointer-events: none;
	z-index: 1;
}

.pgm-footer-nav-cards {
	position: relative;
}

/* speech-bubble-sp.svg / speech-bubble-pc.svg — LINE CTA speech bubble */
.pgm-line-cta::before {
	content: "";
	display: block;
	margin: 0 auto var(--wp--preset--spacing--20);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 91px;
	height: 26px;
	background-image: url('../icons/speech-bubble-sp.svg');
}

@media (min-width: 782px) {
	.pgm-line-cta::before {
		width: 113px;
		height: 31px;
		background-image: url('../icons/speech-bubble-pc.svg');
	}
}

/* --------------------------------------------------------------------------
   Group 4: Navigation Elements
   -------------------------------------------------------------------------- */

/* nav-separator.svg — Decorative separator under hamburger menu items */
.pgm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item::after {
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background-image: url('../icons/nav-separator.svg');
	background-size: auto 1px;
	background-repeat: repeat-x;
	background-position: center;
	opacity: 0.3;
}

/* icon-hamburger.svg — Custom hamburger menu icon */
.pgm-main-nav .wp-block-navigation__responsive-container-open {
	position: relative;
}

.pgm-main-nav .wp-block-navigation__responsive-container-open svg {
	display: none !important;
}

.pgm-main-nav .wp-block-navigation__responsive-container-open::after {
	content: "";
	display: block;
	width: 26px;
	height: 17px;
	background-image: url('../icons/icon-hamburger.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* icon-dropdown-arrow.svg — Dropdown arrow for submenu parent items */
.pgm-main-nav .wp-block-navigation-submenu__toggle::after,
.wp-block-navigation-item.has-child > a::after {
	content: "";
	display: inline-block;
	width: 3px;
	height: 5px;
	background-image: url('../icons/icon-dropdown-arrow.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-left: 4px;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Group 5: Category / Section Icons
   -------------------------------------------------------------------------- */

/* icon-outing.svg — "おでかけ" category in hamburger nav */
.pgm-nav-icon-outing a::before {
	background-image: url('../icons/icon-outing.svg');
}

/* icon-torii.svg — Shrine/temple icon for tourism subcategory */
.pgm-nav-icon-torii a::before {
	background-image: url('../icons/icon-torii.svg');
}

/* icon-search-filled.svg — Filled search icon hover/active state */
.pgm-header-search .wp-block-search__button:hover svg,
.pgm-header-search .wp-block-search__button:active svg {
	display: none;
}

.pgm-header-search .wp-block-search__button:hover::after,
.pgm-header-search .wp-block-search__button:active::after {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background-image: url('../icons/icon-search-filled.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* --------------------------------------------------------------------------
   Group 6: Action / UI Icons
   -------------------------------------------------------------------------- */

/* icon-bookmark.svg — Bookmark icon utility class */
.pgm-icon-bookmark::before {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url('../icons/icon-bookmark.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

/* icon-camera.svg — Camera icon for Instagram section */
.pgm-instagram-section__icon::before {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('../icons/icon-camera.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* icon-chevron-right-lg.svg — Large chevron for prominent CTA links */
.pgm-cta-link::after,
.pgm-footer-nav-card::after {
	content: "";
	display: inline-block;
	width: 8px;
	height: 15px;
	background-image: url('../icons/icon-chevron-right-lg.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-left: 6px;
	vertical-align: middle;
	filter: brightness(0) invert(1);
}

/* map-pointer.svg — Map pin icon for area/location UI */
.pgm-icon-map-pointer::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 20px;
	background-image: url('../icons/map-pointer.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Group 7: Content Type Icons (utility classes)
   -------------------------------------------------------------------------- */

.pgm-icon-checklist::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	background-image: url('../icons/icon-checklist.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

.pgm-icon-clipboard::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	background-image: url('../icons/icon-clipboard.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

.pgm-icon-document::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	background-image: url('../icons/icon-document.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

.pgm-icon-drive::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	background-image: url('../icons/icon-drive.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	margin-right: 4px;
	vertical-align: middle;
}

/* --------------------------------------------------------------------------
   Group 8: Slider Dots (SVG-based)
   slider-dot.svg / slider-dot-lg.svg
   -------------------------------------------------------------------------- */

.pgm-hero-slider__dot {
	border-radius: 0;
	background: transparent;
	background-image: url('../icons/slider-dot.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.pgm-hero-slider__dot.is-active {
	background: transparent;
	background-image: url('../icons/slider-dot-lg.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 12px;
	height: 12px;
}

.pgm-hero-slider__dot:hover {
	background: transparent;
	background-image: url('../icons/slider-dot.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	opacity: 0.8;
}

@media (min-width: 782px) {
	.pgm-hero-slider__dot.is-active {
		width: 16px;
		height: 16px;
	}
}

/* --------------------------------------------------------------------------
   Footer Logo — logo-handwritten.svg for footer branding
   -------------------------------------------------------------------------- */

.pgm-footer__logo-title {
	font-size: 0 !important;
	line-height: 0;
	overflow: hidden;
}

.pgm-footer__logo-title::after {
	content: "";
	display: block;
	width: 180px;
	height: 48px;
	background-image: url('../icons/logo-handwritten.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: left center;
	filter: brightness(0) invert(1);
}

@media (min-width: 782px) {
	.pgm-footer__logo-title::after {
		width: 270px;
		height: 72px;
	}
}

/* --------------------------------------------------------------------------
   Remaining Asset Integration
   -------------------------------------------------------------------------- */

/* category-tabs-bar.svg — decorative bar under category tabs */
.pgm-category-tabs::after {
	content: '';
	display: block;
	width: 100%;
	height: 4px;
	background-image: url('../icons/category-tabs-bar.svg');
	background-size: 100% 100%;
	background-repeat: no-repeat;
	margin-top: var(--wp--preset--spacing--20);
}

/* icon-arrow-right.svg — utility class for arrow icon */
.pgm-icon-arrow-right::after {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url('../icons/icon-arrow-right.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: middle;
	margin-left: 4px;
}

/* icon-hamburger-line.svg — alternative hamburger icon for mobile nav */
.pgm-nav-hamburger-line {
	width: 24px;
	height: 24px;
	background-image: url('../icons/icon-hamburger-line.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* nara-map-illustration.svg — detailed illustration variant for area CTA on PC */
@media (min-width: 782px) {
	.pgm-area-cta__map-illustration {
		background-image: url('../icons/nara-map-illustration.svg');
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
	}
}

/* ==========================================================================
   Design Balance Fixes
   ========================================================================== */

/* --------------------------------------------------------------------------
   Fix 1: Hero Slider layout balance
   Center the slider content, ensure equal side peek on both sides
   -------------------------------------------------------------------------- */

/* PC: Ensure the hero slider track items are properly centered */
@media (min-width: 782px) {
	.pgm-hero-slider {
		max-width: 100%;
	}

	/* Ensure the 2-column layout (info + image) is balanced and centered */
	.pgm-hero-slider__slide a {
		max-width: 1128px;
		margin: 0 auto;
	}

	/* Center the header row (Pick Up + dots) within the constrained area */
	.pgm-hero-slider__header {
		max-width: 1128px;
		margin: 0 auto;
	}

	/* Center the info bar */
	.pgm-hero-slider__info {
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	}
}

/* --------------------------------------------------------------------------
   Fix 2: Article grid 4th item orphan
   Hide overflow items beyond multiples of the column count
   -------------------------------------------------------------------------- */

/* PC 3-column grids: hide 4th+ items that would orphan on a new row (perPage=4) */
@media (min-width: 782px) {
	.pgm-whatsnew-scroll .wp-block-post-template.is-layout-grid > li:nth-child(n+4) {
		display: none;
	}

	/* New Open section uses 3-col grid, hide 4th item */
	.pgm-query-new-open .wp-block-post-template.is-layout-grid > li:nth-child(n+4) {
		display: none;
	}
}

/* Recommended section uses 4-col grid on PC, all 4 items fit — no hiding needed */
/* SP 2-column grids: hide items beyond 4 (keep all 4 as 2x2 grid) */

/* --------------------------------------------------------------------------
   Fix 3: Date format — consistent styling
   Ensure all date displays use the same decorative font treatment
   -------------------------------------------------------------------------- */

.pgm-spot-card .wp-block-post-date,
.pgm-whatsnew-scroll .wp-block-post-date,
.pgm-query-new-open .wp-block-post-date,
.pgm-query-event .wp-block-post-date,
.pgm-recommended-section .wp-block-post-date {
	font-family: var(--wp--preset--font-family--decorative);
	font-weight: 500;
	color: var(--wp--preset--color--english-text);
}

/* --------------------------------------------------------------------------
   Fix 4: LINE CTA + Follow Us section alignment
   LINE CTA (.pgm-line-cta) and Follow Us (.pgm-follow-us) are direct
   children of .pgm-line-follow-row (a flex row group).
   -------------------------------------------------------------------------- */

/* Ensure LINE CTA uses block layout internally (not row flex) */
.pgm-line-follow-row > .pgm-line-cta {
	display: block !important;
	flex-shrink: 0;
}

/* Mobile: stack vertically */
@media (max-width: 781px) {
	.pgm-line-follow-row {
		flex-direction: column !important;
		gap: var(--wp--preset--spacing--40) !important;
	}

	.pgm-line-follow-row > .pgm-line-cta,
	.pgm-line-follow-row > .pgm-follow-us {
		width: 100%;
	}
}

/* PC: side-by-side with vertical centering */
@media (min-width: 782px) {
	.pgm-line-follow-row {
		align-items: center !important;
		gap: var(--wp--preset--spacing--50) !important;
	}

	.pgm-line-follow-row > .pgm-line-cta {
		flex: 0 0 auto;
		max-width: 340px;
	}

	.pgm-line-follow-row > .pgm-follow-us {
		flex: 1 1 auto;
	}
}

/* --------------------------------------------------------------------------
   Fix 5: Section spacing consistency
   Ensure uniform gaps between all major front-page sections
   -------------------------------------------------------------------------- */

/* Ad banner — 上部で定義済み */

/* PR banner grid — 既に上部で定義済み、追加スペーシングのみ */

/* Instagram section consistent spacing */
.pgm-instagram-section {
	margin-top: 0;
	margin-bottom: 0;
}

/* --------------------------------------------------------------------------
   Fix 6: Sticky header overlap — scroll-padding-top
   Prevent content from hiding behind the sticky header + category nav
   -------------------------------------------------------------------------- */

html {
	/* Header (~60-93px) + category nav (~45px) + news ticker (~31px) = ~170px approx */
	scroll-padding-top: 180px;
}

/* Ensure the admin bar offset is accounted for */
html.admin-bar {
	scroll-padding-top: 212px;
}

/* --------------------------------------------------------------------------
   Fix 7: Instagram section empty state
   Reduce blank area when feed is not configured
   -------------------------------------------------------------------------- */

/* Placeholder items: cap their size so the empty state isn't huge */
.pgm-instagram-feed--placeholder .pgm-instagram-feed__item--placeholder {
	max-height: 120px;
}

@media (min-width: 782px) {
	.pgm-instagram-feed--placeholder .pgm-instagram-feed__item--placeholder {
		max-height: 180px;
	}
}

/* When there's no actual feed content, reduce section padding */
.pgm-instagram-grid-placeholder {
	opacity: 0.5;
}

/* --------------------------------------------------------------------------
   Fix 8: Footer layout polish
   Center nav links, consistent copyright padding
   -------------------------------------------------------------------------- */

/* SP: Center footer nav items */
@media (max-width: 781px) {
	.pgm-footer__nav-columns {
		text-align: center;
	}

	.pgm-footer__nav-item {
		text-align: center;
	}

	.pgm-footer__logo-block {
		text-align: center;
	}

	.pgm-footer__logo-title::after {
		margin: 0 auto;
	}

	.pgm-footer__copyright {
		text-align: center;
	}
}

/* Consistent copyright padding */
.pgm-footer__copyright {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--30);
	margin: 0;
}

/* Footer nav items: ensure consistent vertical rhythm */
.pgm-footer__nav-item {
	margin-top: 0;
	margin-bottom: 0;
}

/* ==========================================================================
   Article Detail Page (single-spot) — New Design
   ========================================================================== */

/* --- Page Padding Variable --- */
:root {
	--page-padding: 60px;
}

/* --- single-spot main layout --- */
.single-spot-main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) + * {
	margin-block-start: 60px;
}
.single-spot-main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)):first-child {
	margin-block-start: 0;
}

/* --- 共通レイアウトクラス --- */
.full-width { width: 100%; }
.content-width {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding-left: var(--page-padding, 60px);
	padding-right: var(--page-padding, 60px);
	box-sizing: border-box;
}
.pgm-content-width {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}

/* --- Footer Sections（共通セクション群ラッパー: 記事詳細と同じgap） --- */
.pgm-footer-sections {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 100px;
}

@media (max-width: 768px) {
	.pgm-footer-sections {
		gap: 50px;
	}
}

/* --- Section Group (heading + content wrapper) --- */
.pgm-section-group {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

/* --- 3-Layer Section Heading (detail page) --- */
.pgm-section-heading--layered {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	padding: 0 var(--page-padding, 60px);
	position: relative;
	box-sizing: border-box;
}
.pgm-section-heading--layered .pgm-section-heading-inner {
	display: flex;
	align-items: flex-end;
	position: relative;
}
.pgm-section-heading--layered .pgm-section-heading-jp-wrapper {
	position: relative;
}
.pgm-section-heading--layered .pgm-section-heading-jp {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 4px;
	position: relative;
	z-index: 3;
	margin-bottom: -4px;
}
.pgm-section-heading--layered .pgm-section-heading-jp-icon {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}
.pgm-section-heading--layered .pgm-section-heading-jp-icon svg {
	width: 100%;
	height: 100%;
	color: var(--wp--preset--color--primary);
}
.pgm-section-heading--layered .pgm-section-heading-jp h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 40px;
	font-weight: 400;
	line-height: 46px;
	letter-spacing: 5.2px;
	color: var(--wp--preset--color--primary);
	white-space: nowrap;
	margin: 0;
}
/* 白帯: jp-wrapperの::after（英語と同じスタッキングコンテキスト） */
.pgm-section-heading--layered .pgm-section-heading-jp-wrapper::after {
	content: "";
	display: block;
	width: 100%;
	height: 14px;
	background-color: var(--wp--preset--color--white);
	position: relative;
	z-index: 1;
	margin-top: -18px;
}
/* 英語テキスト */
.pgm-section-heading--layered .pgm-section-heading-en {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 90px;
	font-weight: 500;
	color: var(--wp--preset--color--primary-light);
	line-height: 97px;
	white-space: nowrap;
	margin-left: -40px;
	margin-bottom: -8px;
	position: relative;
	z-index: 2;
}
/* サブラベル（「編集部の」等） */
.pgm-section-heading--layered .pgm-section-heading-sub {
	position: relative;
	z-index: 4;
}
.pgm-section-heading--layered .pgm-section-heading-sub span {
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	color: var(--wp--preset--color--primary);
	position: relative;
	line-height: 1;
}

/* 3-Layer Heading: Tablet/Mobile */
@media (max-width: 781px) {
	.pgm-section-heading--layered .pgm-section-heading-inner {
		flex-direction: column;
		align-items: center;
	}
	.pgm-section-heading--layered .pgm-section-heading-jp-wrapper {
		width: auto !important;
	}
	.pgm-section-heading--layered .pgm-section-heading-jp {
		justify-content: center;
	}
	.pgm-section-heading--layered .pgm-section-heading-jp h2 {
		font-size: 26px;
		letter-spacing: 3.38px;
	}
	.pgm-section-heading--layered .pgm-section-heading-jp-icon {
		width: 19px;
		height: 19px;
	}
	.pgm-section-heading--layered .pgm-section-heading-en {
		position: static;
		font-size: 12px;
		line-height: normal;
		margin-left: 0;
		margin-bottom: 0;
		color: var(--wp--preset--color--english-text);
		z-index: auto;
	}
	.pgm-section-heading--layered .pgm-section-heading-jp-wrapper::after {
		margin-top: -24px;
	}
	.pgm-section-heading--layered .pgm-section-heading-sub {
		margin-left: 0 !important;
		text-align: center;
	}
}

/* --- CTA row: 縦並び切替 (1150px以下) --- */
@media (max-width: 1150px) {
	.single-spot .pgm-line-follow-row {
		flex-direction: column;
	}
	.single-spot .pgm-line-follow-row .pgm-line-cta-wrapper,
	.single-spot .pgm-line-follow-row .pgm-follow-us {
		width: 100%;
	}
	.single-spot .pgm-follow-us {
		height: auto;
	}
}

/* --- Tablet / Mobile (781px以下) --- */
@media (max-width: 781px) {
	:root {
		--page-padding: 16px;
	}
	.single-spot-main {
		gap: 50px;
	}
	.pgm-section-group {
		gap: 20px;
	}
}

/* --- Small Mobile (410px以下) --- */
@media (max-width: 410px) {
	.single-spot .pgm-follow-us {
		transform: scale(0.85);
		transform-origin: center;
	}
}

/* ⑤ Follow Us --detail: SP崩れ防止 */
.pgm-follow-us--detail {
	display: flex !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 15px;
}

.pgm-follow-us--detail .wp-block-social-links {
	gap: 20px !important;
	flex-wrap: nowrap !important;
	justify-content: center;
}

@media (max-width: 781px) {
	.pgm-follow-us--detail {
		flex-direction: column;
		gap: 12px;
		padding: 15px 10px !important;
	}
	.pgm-follow-us--detail .wp-block-social-links {
		gap: 15px !important;
	}
}

/* --- Photo Gallery --- */
.pgm-photo-gallery {
	width: 100%;
	max-width: 1400px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 25px;
}
.pgm-photo-gallery-row {
	display: flex;
	align-items: center;
	width: 100%;
}
.pgm-photo-gallery-arrow {
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.pgm-photo-gallery-arrow svg {
	width: 60px;
	height: 60px;
	color: var(--wp--preset--color--primary);
}
.pgm-photo-gallery-images {
	overflow: hidden;
	flex: 1;
	min-width: 0;
}
.pgm-photo-gallery-track {
	display: flex;
	gap: 30px;
	transition: transform 0.4s ease;
}
.pgm-photo-gallery-images img {
	width: 256px;
	height: 257px;
	object-fit: cover;
	flex-shrink: 0;
}
.pgm-photo-gallery-scrollbar {
	width: calc(100% - 120px);
	height: 2px;
	background-color: var(--wp--preset--color--english-text);
	position: relative;
}
.pgm-photo-gallery-scrollbar-thumb {
	height: 100%;
	background-color: var(--wp--preset--color--primary);
	position: absolute;
	left: 0;
	top: 0;
	transition: left 0.4s ease, width 0.4s ease;
}

/* --- Share Section (detail) --- */
.pgm-share-section-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.pgm-share-section {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}
.pgm-share-section__en-title {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 54.387px;
	font-weight: 500;
	color: var(--wp--preset--color--primary-light);
	line-height: 1;
	text-align: center;
}

/* --- Writer Section (detail) --- */
.pgm-writer-intro__en-title {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 54.387px;
	font-weight: 500;
	color: var(--wp--preset--color--primary-light);
	text-align: center;
	line-height: 1;
	position: relative;
	z-index: 1;
	padding: 0 20px;
	background: linear-gradient(to bottom, var(--wp--preset--color--base) 50%, var(--wp--preset--color--white) 50%);
}
.single-spot .pgm-writer-intro {
	margin-top: -29px;
	position: relative;
	z-index: 0;
}
.pgm-writer-intro__btn--sp { display: none; }

/* --- Article Card Horizontal (mobile) --- */
@media (max-width: 781px) {
	.single-spot .pgm-photo-gallery-images img {
		width: 100px;
		height: 100px;
	}
	.pgm-photo-gallery-track { gap: 15px; }
	.pgm-photo-gallery-arrow { width: 26px; height: 26px; }
	.pgm-photo-gallery-arrow svg { width: 26px; height: 26px; }
	.pgm-photo-gallery-scrollbar { width: calc(100% - 52px); }

	/* Share */
	.pgm-share-section__en-title { font-size: 34px; }

	/* Writer */
	.pgm-writer-intro__en-title {
		font-size: 34px;
		background: linear-gradient(to bottom, transparent 97%, var(--wp--preset--color--white) 97%);
		margin-bottom: -1px;
	}
	.single-spot .pgm-writer-intro {
		margin-top: -17px;
	}
	.pgm-writer-intro__btn--pc { display: none !important; }
	.pgm-writer-intro__btn--sp { display: inline-flex !important; }
	.single-spot .pgm-writer-intro .pgm-writer-intro__inner {
		flex-wrap: wrap;
	}

	/* Article cards: horizontal list */
	.single-spot .pgm-spot-card {
		flex-direction: row;
		gap: 15px;
		align-items: flex-start;
	}
	.single-spot .pgm-spot-card .pgm-spot-card__thumb {
		width: 150px;
		min-width: 150px;
		flex-shrink: 0;
		aspect-ratio: auto;
		height: 103px;
	}
	.single-spot .pgm-spot-card .pgm-spot-card__info {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 5px;
	}
	.single-spot .pgm-spot-card .pgm-spot-card__title {
		font-size: 14px;
		line-height: 16px;
	}
	.single-spot .pgm-spot-card .pgm-spot-card__genre {
		font-size: 12px;
		min-width: 40px;
		height: 16px;
	}
	.single-spot .pgm-spot-card .pgm-spot-card__date {
		font-size: 12px;
	}

	/* Related articles grid: vertical stack */
	.single-spot .pgm-related-articles-grid .wp-block-post-template,
	.single-spot .pgm-pickup-grid .wp-block-post-template {
		display: flex !important;
		flex-direction: column;
		gap: 15px;
	}

	/* PR Banner: SP は 768px ブレイクポイントで共通定義済み */

	/* Instagram: 2-col grid */
	.single-spot .pgm-instagram-feed {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 15px;
		animation: none !important;
		transform: none !important;
		width: 100% !important;
		padding: 0 var(--page-padding);
	}
	.single-spot .pgm-instagram-feed img {
		width: 100% !important;
		height: auto !important;
		aspect-ratio: 1;
	}
	.single-spot .pgm-instagram-feed img:nth-child(n+5) { display: none; }

	/* LINE CTA: button overlay on border */
	.single-spot .pgm-line-cta-wrapper {
		flex-direction: column;
		padding: 16px 16px 38px;
		position: relative;
		overflow: visible;
	}
	.single-spot .pgm-line-cta-btn {
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translate(-50%, 50%);
	}

	/* Follow Us */
	.single-spot .pgm-follow-us {
		padding: 0;
		flex-wrap: wrap;
		gap: 10px;
	}
	.single-spot .pgm-follow-us-label svg {
		width: 19px;
		height: 58px;
	}

	/* CTA gap */
	.single-spot .pgm-line-follow-row {
		gap: 40px;
	}
}

/* PR scrollbar: 上部で定義済み — モバイルのスクロール対応は768px breakpointのブロック内 */

/* Follow Us icons: clamp sizing */
.pgm-follow-us-icons {
	gap: clamp(10px, 3vw, 40px);
}
.pgm-follow-us-icons svg {
	width: clamp(28px, 4vw, 51px);
	height: clamp(28px, 4vw, 51px);
	color: var(--wp--preset--color--primary);
	fill: currentColor;
}

/* --- Very Small Mobile (393px以下) --- */
@media (max-width: 393px) {
	:root {
		--page-padding: 16px;
	}
}

/* --------------------------------------------------------------------------
   Reduced Motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================================
   ヘッダー v2 — Figma node 215:4123 準拠
   ========================================================================== */
.pgm-header-v2 {
	--color-primary: #4B2E83;
	--color-base: #FFFCEE;
	--color-english: #DEDAE5;
	--font-heading: 'BIZ UDMincho', serif;
	--font-accent: 'Lora', serif;
	--font-ui: 'M PLUS 1p', sans-serif;
	color: #4B2E83;
}

.pgm-header-v2__main {
	background-color: var(--color-base);
	padding: 12px 0;
	overflow: hidden;
}

.pgm-header-v2__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

.pgm-header-v2__logo {
	display: flex;
	flex-direction: column;
	gap: 5px;
	text-decoration: none;
	flex-shrink: 0;
	width: 158px;
}

.pgm-header-v2__logo-subtitle {
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 400;
	color: var(--color-primary);
	letter-spacing: 2.4px;
	line-height: normal;
}

.pgm-header-v2__logo-img {
	display: block;
	height: 50px;
	width: auto;
}

.pgm-header-v2__right {
	display: flex;
	align-items: flex-end;
	gap: 60px;
}

.pgm-header-v2__nav {
	display: flex;
	align-items: center;
	column-gap: 25px;
	padding-bottom: 10px;
}

.pgm-header-v2__nav-item {
	display: flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	color: var(--color-primary);
	transition: opacity 0.2s;
}

.pgm-header-v2__nav-item:hover {
	opacity: 0.7;
}

.pgm-header-v2__nav-icon {
	flex-shrink: 0;
	color: var(--color-primary);
}

.pgm-header-v2__nav-icon--tourism {
	width: 20px;
	height: 20px;
}

.pgm-header-v2__nav-icon--gourmet {
	width: 15px;
	height: 20px;
}

.pgm-header-v2__nav-icon--event {
	width: 18px;
	height: 21px;
}

.pgm-header-v2__nav-label {
	font-family: var(--font-heading);
	font-size: 20px;
	font-weight: 400;
	color: var(--color-primary);
	letter-spacing: 2.6px;
	line-height: normal;
	white-space: nowrap;
}

.pgm-header-v2__nav-arrow {
	flex-shrink: 0;
	width: 3px;
	height: 5px;
	color: var(--color-primary);
}

.pgm-header-v2__nav-separator {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.pgm-header-v2__nav-separator svg {
	display: block;
	width: 1px;
	height: 17px;
	color: #C4B5D9;
}

.pgm-header-v2__actions {
	display: flex;
	align-items: flex-end;
	gap: 30px;
}

.pgm-header-v2__action-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: var(--color-primary);
	transition: opacity 0.2s;
}

.pgm-header-v2__action-btn .pgm-header-v2__action-icon {
	width: 28px;
	height: 28px;
	object-fit: contain;
}

.pgm-header-v2__action-btn:hover {
	opacity: 0.7;
}

.pgm-header-v2__action-label {
	font-family: var(--font-accent);
	font-size: 12.575px;
	font-weight: 500;
	color: var(--color-primary);
	line-height: normal;
}

.pgm-header-v2__action-icon {
	display: block;
	color: var(--color-primary);
}

.pgm-header-v2__action-icon--menu {
	width: 34px;
	height: 28px;
	object-fit: contain;
}

.pgm-header-v2__ticker {
	background-color: #fff;
	border-top: 1px solid var(--color-primary);
	border-bottom: 1px solid var(--color-primary);
	padding: 3px 0;
	overflow: hidden;
}

.pgm-header-v2__ticker-track {
	display: flex;
	width: max-content;
	animation: pgm-ticker-scroll 30s linear infinite;
}

.pgm-header-v2__ticker-text {
	font-family: var(--font-ui);
	font-size: 16px;
	font-weight: 300;
	color: var(--color-primary);
	line-height: normal;
	white-space: nowrap;
	padding: 0 40px;
	margin: 0;
}

@keyframes pgm-ticker-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}

@media (max-width: 1024px) {
	.pgm-header-v2__right {
		gap: 30px;
	}

	.pgm-header-v2__nav-label {
		font-size: 16px;
		letter-spacing: 1.5px;
	}
}

@media (max-width: 768px) {
	.pgm-header-v2__main {
		overflow: visible;
	}

	.pgm-header-v2__inner {
		justify-content: space-between;
		position: relative;
	}

	.pgm-header-v2__logo {
		order: 2;
		flex-shrink: 0;
		align-items: center;
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		width: 110px;
		gap: 2px;
	}

	.pgm-header-v2__logo-subtitle {
		font-size: 9px;
		letter-spacing: 1.8px;
	}

	.pgm-header-v2__logo-img {
		width: 130px;
		height: auto;
	}

	.pgm-header-v2__nav {
		display: none;
	}

	/* __right と __actions を透過させ、ボタンを __inner の直接フレックスアイテムにする */
	.pgm-header-v2__right {
		display: contents;
	}

	.pgm-header-v2__actions {
		display: contents;
	}

	.pgm-header-v2__action-btn.pgm-menu-trigger {
		order: 1;
	}

	.pgm-header-v2__action-btn.pgm-search-trigger {
		order: 3;
	}

	/* モバイルではラベルを非表示・アイコン縮小 */
	.pgm-header-v2__action-label {
		display: none;
	}
	.pgm-header-v2__action-btn .pgm-header-v2__action-icon {
		width: 22px;
		height: 22px;
	}
	.pgm-header-v2__action-icon--menu {
		width: 27px;
		height: 22px;
	}

	.pgm-header-v2__ticker {
		padding: 2px 0;
	}

	.pgm-header-v2__ticker-text {
		font-size: 11px;
		padding: 0 20px;
	}
}

/* ==========================================================================
   フッター v2 — Figma node 443:121 (PC) / 443:137 (モバイル) 準拠
   ========================================================================== */
.pgm-footer-v2 {
	--color-primary: #4B2E83;
	--color-english: #DEDAE5;
	--font-heading: 'BIZ UDMincho', serif;
	--font-accent: 'Lora', serif;
	--font-body: 'Noto Serif JP', serif;
	--font-ui: 'M PLUS 1p', sans-serif;
	background-color: var(--color-primary);
	padding-bottom: 60px;
}

.pgm-footer-v2__main {
	background-color: var(--color-primary);
	padding: 44px 0 40px;
}

.pgm-footer-v2__inner {
	display: flex;
	justify-content: space-between;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

.pgm-footer-v2__brand {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	order: -1;
}

.pgm-footer-v2__brand-subtitle {
	font-family: var(--font-heading);
	font-size: 12px;
	font-weight: 400;
	color: #fff;
	letter-spacing: 2.4px;
	line-height: normal;
}

.pgm-footer-v2__brand-logo {
	display: block;
	height: 40px;
	width: auto;
	margin-top: 4px;
	filter: brightness(0) invert(1);
}

.pgm-footer-v2__copyright {
	font-family: var(--font-accent);
	font-size: 12px;
	font-weight: 400;
	color: #fff;
	line-height: normal;
	margin-top: auto;
}

.pgm-footer-v2__nav {
	display: flex;
	gap: 60px;
}

.pgm-footer-v2__nav-col {
	list-style: none;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
}

.pgm-footer-v2__nav-col li {
	line-height: 50px;
}

.pgm-footer-v2__nav-col a {
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 400;
	color: #fff;
	text-decoration: none;
	letter-spacing: 0.8px;
	transition: opacity 0.2s;
}

.pgm-footer-v2__nav-col a:hover {
	opacity: 0.7;
}

.pgm-footer-v2__nav-col--external {
	display: flex;
}

.pgm-footer-v2__mobile-bar {
	display: none;
	background-color: var(--color-primary);
	padding: 4px;
}

.pgm-footer-v2__mobile-bar-inner {
	display: flex;
	align-items: center;
	border: 1px solid #fff;
	border-radius: 4px;
	height: 44px;
}

.pgm-footer-v2__mobile-bar-item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	gap: 2px;
}

.pgm-footer-v2__mobile-bar-en {
	font-family: var(--font-accent);
	font-size: 15px;
	font-weight: 400;
	color: #fff;
	line-height: normal;
	white-space: nowrap;
}

.pgm-footer-v2__mobile-bar-ja {
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 600;
	color: var(--color-english);
	line-height: 14px;
	white-space: nowrap;
	letter-spacing: 1.3px;
}

.pgm-footer-v2__mobile-bar-divider {
	width: 1px;
	height: 24px;
	background-color: #fff;
	flex-shrink: 0;
}

@media (max-width: 768px) {
	.pgm-footer-v2__mobile-bar {
		display: block;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 999;
	}

	body {
		padding-bottom: 56px;
	}

	.pgm-footer-v2__main {
		padding: 28px 0 30px;
	}

	.pgm-footer-v2__inner {
		flex-direction: column;
		padding: 0 35px;
	}

	.pgm-footer-v2__nav {
		display: flex;
		gap: 30px;
		margin-bottom: 30px;
	}

	.pgm-footer-v2__nav-col {
		flex: 1;
	}

	.pgm-footer-v2__nav-col li {
		line-height: 40px;
	}

	.pgm-footer-v2__nav-col a {
		font-size: 13px;
		letter-spacing: 0.5px;
		white-space: nowrap;
	}

	.pgm-footer-v2__nav-col--external {
		display: none;
	}

	.pgm-footer-v2__brand {
		order: 0;
	}

	.pgm-footer-v2__brand-subtitle {
		font-size: 12px;
	}

	.pgm-footer-v2__brand-logo {
		width: 120px;
	}

	.pgm-footer-v2__copyright {
		font-size: 10px;
		margin-top: 12px;
	}
}

/* ==========================================================================
   右下固定バー — Figma node 447:147 準拠
   ========================================================================== */
.pgm-fixed-bar {
	--color-primary: #4B2E83;
	--color-english: #DEDAE5;
	--font-accent: 'Lora', serif;
	--font-body: 'Noto Serif JP', serif;
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 9990;
	width: 340px;
	background-color: var(--color-primary);
	padding: 5px 4px;
	border-radius: 6px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.pgm-fixed-bar__inner {
	display: flex;
	align-items: center;
	border: 1px solid #fff;
	border-radius: 4px;
	height: 44px;
}

.pgm-fixed-bar__item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	gap: 2px;
	transition: opacity 0.2s;
}

.pgm-fixed-bar__item:hover {
	opacity: 0.8;
}

.pgm-fixed-bar__en {
	font-family: var(--font-accent);
	font-size: 15px;
	font-weight: 400;
	color: #fff;
	line-height: normal;
}

.pgm-fixed-bar__ja {
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 600;
	color: var(--color-english);
	line-height: 14px;
	letter-spacing: 1.3px;
}

.pgm-fixed-bar__divider {
	width: 1px;
	height: 24px;
	background-color: #fff;
	flex-shrink: 0;
}

@media (max-width: 768px) {
	.pgm-fixed-bar {
		display: none;
	}
}

/* ==========================================================================
   記事一覧ページ — Topics + 新着記事（Figma 448:261 準拠）
   ========================================================================== */
.pgm-article-list-page {
	background-color: var(--wp--preset--color--base, #FFFCEE);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

@media (max-width: 768px) {
	.pgm-article-list-page {
		gap: 20px;
		padding-top: 20px;
	}
}

/* --- Topics セクション --- */
.pgm-topics-section-wrapper {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 20px var(--page-padding, 60px) 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
	box-sizing: border-box;
}

.pgm-topics-section__en-title {
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 54px;
	font-weight: 500;
	color: var(--wp--preset--color--primary-light, #F1EFF5);
	line-height: 1;
	text-align: center;
	margin: 0 0 10px;
}

.pgm-topics-section {
	width: 100%;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-radius: 4px;
	padding: 30px 38px 36px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	position: relative;
	box-sizing: border-box;
}

.pgm-topics-section__icon {
	width: 24px;
	height: 26px;
	color: var(--wp--preset--color--primary, #4B2E83);
	flex-shrink: 0;
	position: absolute;
	top: -5px;
	left: 50%;
	transform: translateX(-50%);
}

.pgm-topics-section__icon svg {
	width: 100%;
	height: 100%;
}

.pgm-topics-section__heading {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 30px;
	font-weight: 400;
	color: var(--wp--preset--color--primary, #4B2E83);
	letter-spacing: 3.9px;
	line-height: 46px;
	text-align: center;
	margin: 0;
}

.pgm-topics-section__en-label {
	display: none;
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 10px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
	line-height: normal;
}

.pgm-topics__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
}

.pgm-topics__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 44px;
	padding: 0 20px;
	background-color: #fff;
	border-radius: 29px;
	font-family: var(--wp--preset--font-family--ui, 'M PLUS 1p', sans-serif);
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--primary, #4B2E83);
	text-decoration: none;
	line-height: 30px;
	white-space: nowrap;
	transition: background-color 0.2s, color 0.2s;
}

.pgm-topics__tag:hover {
	background-color: var(--wp--preset--color--primary, #4B2E83);
	color: #fff;
}

/* --- 新着記事セクション（見出し + リストを括るラッパー） --- */
.pgm-new-articles-section {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 30px;
}

/* --- 新着記事見出しラッパー --- */
.pgm-new-articles-heading {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}

/* --- 検索条件バッジ --- */
.pgm-filter-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 14px;
}

.pgm-filter-badge {
	display: inline-flex;
	align-items: center;
	padding: 6px 16px;
	border-radius: 9999px;
	font-family: var(--wp--preset--font-family--body, 'M PLUS 1p', sans-serif);
	font-size: 13px;
	font-weight: 500;
	background: var(--wp--preset--color--primary-light, #F1EFF5);
	color: var(--wp--preset--color--primary, #4B2E83);
	border: 1px solid var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-filter-badge--keyword::before {
	content: "";
	display: inline-block;
	width: 14px;
	height: 14px;
	margin-right: 4px;
	background-image: url('../icons/icon-search.svg');
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.7;
}

@media (max-width: 768px) {
	.pgm-new-articles-heading {
		padding: 0 var(--page-padding, 16px);
	}

	.pgm-filter-badges {
		margin-top: 10px;
	}

	.pgm-filter-badge {
		font-size: 12px;
		padding: 4px 12px;
	}
}

/* layered の padding/max-width を解除し、inner で制御 */
.pgm-new-articles-heading .pgm-section-heading--layered,
.pgm-heading-viewed {
	max-width: none;
	padding: 0;
}

.pgm-new-articles-heading .pgm-section-heading-inner {
	max-width: none;
	margin: 0;
	padding: 0;
}

.pgm-heading-viewed .pgm-section-heading-inner {
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}

/* タグページの # アイコン */
.pgm-section-heading-hash {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 40px;
	font-weight: 400;
	line-height: 1;
	color: var(--wp--preset--color--primary, #4B2E83);
}

@media (max-width: 768px) {
	.pgm-section-heading-hash {
		font-size: 26px;
	}
}

/* --- 新着記事コンテナ（薄紫背景、full-width） --- */
.pgm-new-articles {
	width: 100%;
	margin-top: 0;
	padding: 40px var(--page-padding, 60px) 60px;
	box-sizing: border-box;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pgm-new-articles > * {
	width: 100%;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}

/* ブロック間のマージンを詰める — モックアップ準拠 */
.pgm-article-list-page > *,
.pgm-article-list-page .pgm-new-articles > *,
.pgm-article-list-page .pgm-new-articles .wp-block-query > * {
	margin-block-start: 0;
	margin-top: 0;
}

.pgm-new-articles .wp-block-query.alignwide {
	max-width: 1400px;
	display: flex;
	flex-direction: column;
	gap: 60px;
}

/* 3列グリッド + モックアップに合わせたgap */
.pgm-new-articles .wp-block-post-template {
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 40px 32px;
	overflow: hidden;
	list-style: none;
	padding-left: 0;
}

/* WPの max-width 制約を解除 */
.pgm-new-articles .wp-block-post-template > li {
	max-width: 100% !important;
	min-width: 0;
	list-style: none;
}

/* --- カード全体: 記事詳細の article-card と同じ見た目 --- */
.pgm-new-articles .pgm-spot-card {
	display: flex;
	flex-direction: column;
	gap: 15px;
	box-shadow: none;
	transform: none;
}

.pgm-new-articles .pgm-spot-card:hover {
	box-shadow: none;
	transform: none;
}

/* カード内部グループ: WPのpadding/gapをリセット */
.pgm-new-articles .pgm-spot-card > .wp-block-group {
	padding: 0 !important;
	gap: 15px !important;
}

/* サムネイル: 16/9 比率（統一） */
.pgm-new-articles .pgm-spot-card .wp-block-post-featured-image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.pgm-new-articles .pgm-spot-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.pgm-new-articles .pgm-spot-card:hover .wp-block-post-featured-image img {
	transform: scale(1.03);
}

/* meta行: genre + date */
.pgm-new-articles .pgm-spot-card__meta {
	margin-bottom: 0;
	gap: 10px !important;
}

/* カテゴリバッジ */
.pgm-new-articles .pgm-spot-card__genre {
	overflow: hidden;
}

.pgm-new-articles .pgm-spot-card__genre a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 22px;
	padding: 0 5px;
	background-color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--ui, 'M PLUS 1p', sans-serif);
	font-size: 14px;
	color: #fff !important;
	text-decoration: none;
	border-radius: 0;
}

.pgm-new-articles .pgm-spot-card__genre a ~ a,
.pgm-new-articles .pgm-spot-card__genre .wp-block-post-terms__separator {
	display: none;
}

/* 日付 */
.pgm-new-articles .pgm-spot-card .wp-block-post-date {
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

/* タイトル */
.pgm-new-articles .pgm-spot-card .wp-block-post-title {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 18px !important;
	font-weight: 400;
	line-height: 28px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pgm-new-articles .pgm-spot-card .wp-block-post-title a {
	color: var(--wp--preset--color--contrast-light, #333);
}

/* ページネーション */
.pgm-new-articles .wp-block-query-pagination {
	gap: 12px;
}

.pgm-new-articles .wp-block-query-pagination-numbers .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 18px;
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

.pgm-new-articles .wp-block-query-pagination-numbers .page-numbers:hover {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
}

.pgm-new-articles .wp-block-query-pagination-numbers .page-numbers.current {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border: 1px solid var(--wp--preset--color--primary);
}

/* --- レスポンシブ --- */
@media (max-width: 768px) {
	.pgm-topics-section-wrapper {
		padding: 0 var(--page-padding, 32px) 30px;
	}

	.pgm-topics-section__en-title {
		display: none;
	}

	.pgm-topics-section {
		background-color: #EEE;
		padding: 24px 20px 28px;
	}

	.pgm-topics-section__icon {
		top: -3px;
	}

	.pgm-topics-section__heading {
		font-size: 26px;
		letter-spacing: 3.38px;
	}

	.pgm-topics-section__en-label {
		display: block;
		margin-top: -4px;
	}

	.pgm-topics__tag {
		height: 35px;
		font-size: 14px;
		padding: 0 14px;
		border-radius: 23px;
		line-height: 24px;
	}

	.pgm-new-articles {
		padding: 10px var(--page-padding, 32px) 40px;
		background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	}

	.pgm-new-articles .wp-block-post-template {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 20px 12px;
	}

	.pgm-new-articles .pgm-spot-card {
		gap: 10px;
	}

	.pgm-new-articles .pgm-spot-card > .wp-block-group {
		gap: 5px !important;
	}

	.pgm-new-articles .pgm-spot-card .wp-block-post-featured-image {
		aspect-ratio: 16 / 9;
	}

	.pgm-new-articles .pgm-spot-card__genre a {
		font-size: 12px;
		min-width: 40px;
		height: 16px;
		padding: 0 4px;
	}

	.pgm-new-articles .pgm-spot-card .wp-block-post-date {
		font-size: 12px !important;
	}

	.pgm-new-articles .pgm-spot-card .wp-block-post-title {
		font-size: 14px !important;
		line-height: 16px;
	}

	.pgm-new-articles .wp-block-query.alignwide {
		gap: 30px;
	}

	.pgm-new-articles .wp-block-query-pagination-numbers .page-numbers {
		width: 37px;
		height: 37px;
	}

}

/* --- PRバナー・広告枠 SP（共通） --- */
@media (max-width: 781px) {
	.pgm-pr-banner-grid {
		padding: 40px var(--page-padding, 32px);
		gap: 15px;
	}

	.pgm-pr-banners {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.pgm-pr-banners::-webkit-scrollbar { display: none; }

	.pgm-pr-banner-item {
		flex: none;
		width: 75%;
		scroll-snap-align: start;
	}

	.pgm-pr-banner-scrollbar {
		display: block;
		width: 100%;
		height: 2px;
		background-color: var(--wp--preset--color--english-text, #DEDAE5);
		position: relative;
	}
	.pgm-pr-banner-scrollbar-thumb {
		height: 100%;
		background-color: var(--wp--preset--color--primary, #4B2E83);
		position: absolute;
		left: 0;
		top: 0;
		width: 50%;
		transition: left 0.3s ease;
	}

	.pgm-ad-banner-wrapper {
		padding: 0 var(--page-padding, 32px);
	}
	.pgm-ad-banner--pair {
		flex-direction: column;
		gap: 10px;
	}
}

/* ==========================================================================
   Hamburger Menu — モバイル全画面 / PC右サイドバー
   ========================================================================== */
.pgm-hamburger {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	justify-content: flex-end;
	visibility: visible;
	transition: visibility 0.3s;
}
.pgm-hamburger[aria-hidden="true"] {
	visibility: hidden;
	pointer-events: none;
}

/* 背景オーバーレイ */
.pgm-hamburger__overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(0, 0, 0, 0);
	transition: background-color 0.3s;
}
.pgm-hamburger[aria-hidden="false"] .pgm-hamburger__overlay {
	background-color: rgba(0, 0, 0, 0.4);
}

/* サイドパネル（PC: 右からスライド） */
.pgm-hamburger__panel {
	position: relative;
	z-index: 1;
	width: 352px;
	height: 100vh;
	height: 100dvh;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transform: translateX(100%);
	transition: transform 0.3s ease;
}
.pgm-hamburger[aria-hidden="false"] .pgm-hamburger__panel {
	transform: translateX(0);
}

/* --- ヘッダー --- */
.pgm-hamburger__header {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 30px;
	padding: 21px 30px 0;
	flex-shrink: 0;
}

/* モバイル要素: デフォルト非表示 */
.pgm-hamburger__close,
.pgm-hamburger__logo,
.pgm-hamburger__search {
	display: none;
}

/* PC: Search + Menu(×) */
.pgm-hamburger__pc-actions {
	display: flex;
	align-items: flex-start;
	gap: 30px;
}

.pgm-hamburger__action-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: #FFFCEE;
	transition: opacity 0.2s;
}
.pgm-hamburger__action-btn:hover { opacity: 0.7; }

.pgm-hamburger__action-label {
	font-family: var(--wp--preset--font-family--accent, 'Lora', serif);
	font-size: 12.575px;
	font-weight: 500;
	color: #FFFCEE;
	line-height: normal;
}

.pgm-hamburger__action-icon {
	display: block;
	width: 28px;
	height: 28px;
	color: #FFFCEE;
}
.pgm-hamburger__action-icon--close {
	width: 34px;
	height: 20px;
}

/* --- ナビゲーション --- */
.pgm-hamburger__nav {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 2vh 73px 0;
	min-height: 0;
}

/* PC: 1カラム */
.pgm-hamburger__columns {
	display: flex;
	flex-direction: column;
}
.pgm-hamburger__col { display: contents; }

.pgm-hamburger__link {
	display: flex;
	align-items: center;
	gap: 16px;
	text-decoration: none;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.8px;
	line-height: 7.5vh;
	transition: opacity 0.2s;
}
.pgm-hamburger__link:hover { opacity: 0.7; }

.pgm-hamburger__link-icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: #fff;
}

/* --- 下段リンク --- */
.pgm-hamburger__bottom-links {
	display: flex;
	flex-direction: column;
	margin-top: auto;
}

.pgm-hamburger__bottom-link {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 15px;
	font-weight: 400;
	color: #fff;
	text-decoration: none;
	letter-spacing: 0.75px;
	line-height: 5vh;
	transition: opacity 0.2s;
}
.pgm-hamburger__bottom-link:hover { opacity: 0.7; }

/* --- SNS --- */
.pgm-hamburger__social {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 3vh;
}

.pgm-hamburger__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s;
}
.pgm-hamburger__social-link:hover { opacity: 0.7; }
.pgm-hamburger__social-link svg { width: 100%; height: 100%; }
.pgm-hamburger__social-link svg path { fill: #fff !important; }

/* --- コピーライト --- */
.pgm-hamburger__copyright {
	font-family: var(--wp--preset--font-family--accent, 'Lora', serif);
	font-size: 12px;
	font-weight: 400;
	color: #fff;
	line-height: normal;
	padding: 2vh 73px;
	margin: 0;
}

/* ==========================================================================
   Hamburger Menu — モバイル（768px以下）
   ========================================================================== */
@media (max-width: 768px) {
	.pgm-hamburger {
		justify-content: stretch;
	}
	.pgm-hamburger__overlay { display: none; }

	.pgm-hamburger__panel {
		width: 100%;
		transform: none;
		opacity: 0;
		transition: opacity 0.25s ease;
	}
	.pgm-hamburger[aria-hidden="false"] .pgm-hamburger__panel {
		opacity: 1;
	}

	/* モバイルヘッダー表示 */
	.pgm-hamburger__header {
		justify-content: space-between;
		padding: 10px 19px;
	}
	.pgm-hamburger__close {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 26px;
		height: 17px;
		background: none;
		border: none;
		cursor: pointer;
		color: #fff;
		padding: 0;
	}
	.pgm-hamburger__close svg { width: 100%; height: 100%; }

	.pgm-hamburger__logo {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
		text-decoration: none;
	}
	.pgm-hamburger__logo-subtitle {
		font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
		font-size: 12px;
		font-weight: 400;
		color: #FFFCEE;
		line-height: normal;
	}
	.pgm-hamburger__logo-img {
		display: block;
		height: 36px;
		width: auto;
		filter: brightness(0) invert(1);
	}

	.pgm-hamburger__search {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 27px;
		height: 27px;
		background: none;
		border: none;
		cursor: pointer;
		color: #fff;
		padding: 0;
	}
	.pgm-hamburger__search svg { width: 100%; height: 100%; }

	/* PC用アクション非表示 */
	.pgm-hamburger__pc-actions { display: none; }

	/* ナビ: 2カラム */
	.pgm-hamburger__nav { padding: 4vh 31px 20px; }
	.pgm-hamburger__columns {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 20px;
	}
	.pgm-hamburger__col { display: flex; flex-direction: column; }

	.pgm-hamburger__link { gap: 12px; line-height: 8.5vh; }

	.pgm-hamburger__bottom-link {
		font-size: 16px;
		letter-spacing: 0.8px;
		line-height: 6vh;
	}

	.pgm-hamburger__copyright {
		font-size: 9px;
		padding: 0 31px 2vh;
		margin-top: auto;
	}
}

/* ==========================================================================
   Pick Up ヒーロー — Figma 448:290 (PC) / 483:464 (モバイル)
   ========================================================================== */
.pgm-pickup {
	max-width: 1400px;
	margin: 0 auto;
	padding: 0;
}

/* カテゴリタブ（モバイルのみ） */
.pgm-pickup__tabs {
	display: none;
}

/* PC: Grid レイアウト */
.pgm-pickup__body {
	display: grid;
	grid-template-columns: clamp(260px, 28vw, 384px) 1fr;
	grid-template-rows: auto 1fr auto;
	align-content: center;
	padding-top: 30px;
	padding-left: clamp(32px, 4.3vw, 60px);
}

.pgm-pickup__head {
	grid-column: 1;
	grid-row: 1;
	padding-top: 46px;
	padding-right: 34px;
}

.pgm-pickup__detail {
	grid-column: 1;
	grid-row: 2;
	padding-right: 34px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: opacity 0.3s ease;
}
.pgm-pickup__detail.is-fading {
	opacity: 0;
}

.pgm-pickup__indicator {
	grid-column: 1;
	grid-row: 3;
	align-self: end;
	padding-right: 34px;
	padding-bottom: 16px;
	display: flex;
	align-items: center;
	margin-top: 16px;
	gap: 7px;
}

.pgm-pickup__slider {
	grid-column: 2;
	grid-row: 1 / 4;
	align-self: center;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	padding-right: 60px;
}

.pgm-pickup__track {
	position: relative;
	width: 100%;
	height: 100%;
}

.pgm-pickup__slide {
	position: absolute;
	inset: 0;
	display: block;
	text-decoration: none;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.pgm-pickup__slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

.pgm-pickup__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pgm-pickup__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
}

/* Pick Up 見出し */
.pgm-pickup__en-title {
	font-family: var(--wp--preset--font-family--accent, 'Lora', serif);
	font-size: clamp(42px, 5vw, 68px);
	font-weight: 500;
	color: var(--wp--preset--color--primary, #4B2E83);
	line-height: normal;
	margin: 0 0 clamp(24px, 3.6vw, 50px);
}

/* ドットインジケーター */
.pgm-pickup__dot {
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--english, #DEDAE5);
	background: transparent;
	flex-shrink: 0;
	cursor: pointer;
	padding: 0;
}

.pgm-pickup__dot--active {
	background-color: var(--wp--preset--color--primary, #4B2E83);
	border-color: var(--wp--preset--color--primary, #4B2E83);
}

.pgm-pickup__progress {
	display: block;
	flex: 1;
	height: 1px;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	margin-left: 8px;
}

/* メタ */
.pgm-pickup__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
	min-height: 28px;
}

.pgm-pickup__category {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 52px;
	height: 26px;
	padding: 0 8px;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	font-family: var(--wp--preset--font-family--ui, 'M PLUS 1p', sans-serif);
	font-size: clamp(13px, 1.15vw, 16px);
	font-weight: 400;
	color: #fff;
	line-height: normal;
}

.pgm-pickup__date {
	font-family: var(--wp--preset--font-family--accent, 'Lora', serif);
	font-size: clamp(14px, 1.43vw, 20px);
	font-weight: 500;
	color: var(--wp--preset--color--english, #DEDAE5);
	line-height: normal;
}

/* タイトル */
.pgm-pickup__title {
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: clamp(18px, 1.7vw, 24px);
	font-weight: 400;
	color: #011507;
	line-height: clamp(30px, 2.86vw, 40px);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(clamp(30px, 2.86vw, 40px) * 4);
}

/* 1000px以下: 画像右余白なし */
@media (max-width: 1000px) {
	.pgm-pickup__slider {
		padding-right: 0;
	}
}

/* モバイル */
@media (max-width: 768px) {
	/* カテゴリタブ表示 */
	.pgm-pickup__tabs {
		display: flex;
		align-items: center;
		padding: 10px 0;
		margin-bottom: 15px;
	}

	.pgm-pickup__tab {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		text-decoration: none;
		color: var(--wp--preset--color--primary, #4B2E83);
		font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
		font-size: 16.744px;
		font-weight: 400;
		letter-spacing: 2.18px;
		padding: 0;
		line-height: normal;
	}

	.pgm-pickup__tab-icon {
		flex-shrink: 0;
		width: 16px;
		height: 16px;
		color: var(--wp--preset--color--primary, #4B2E83);
	}

	.pgm-pickup__tab-arrow {
		flex-shrink: 0;
		width: 3px;
		height: 5px;
		color: var(--wp--preset--color--primary, #4B2E83);
	}

	.pgm-pickup__tab-sep {
		display: block;
		width: 1px;
		height: 13px;
		background-color: var(--wp--preset--color--english, #DEDAE5);
		flex-shrink: 0;
	}

	/* レイアウト: 縦積み + head行だけ横並び */
	.pgm-pickup__body {
		display: flex;
		flex-wrap: wrap;
		padding-left: 0;
	}

	.pgm-pickup__head {
		order: 1;
		display: flex;
		align-items: center;
		padding: 0 0 8px 32px;
	}

	.pgm-pickup__en-title {
		font-size: 13px;
		margin-bottom: 0;
	}

	.pgm-pickup__indicator {
		order: 1;
		flex: 1;
		align-self: auto;
		gap: 5px;
		margin-top: 0;
		padding: 0 32px 8px 12px;
		padding-bottom: 8px;
	}

	.pgm-pickup__dot {
		width: 8px;
		height: 8px;
	}

	.pgm-pickup__slider {
		order: 2;
		width: 100%;
		padding-right: 0;
	}

	.pgm-pickup__detail {
		order: 3;
		width: 100%;
		height: 120px;
		padding: 10px 32px 0;
		overflow: hidden;
	}

	.pgm-pickup__meta { margin-bottom: 6px; }

	.pgm-pickup__category {
		min-width: auto;
		height: auto;
		font-size: 11px;
		padding: 1px 8px;
	}

	.pgm-pickup__date { font-size: 12px; }

	.pgm-pickup__title {
		font-size: 16px;
		line-height: 22px;
	}
}


/* ==========================================================================
   編集部のおすすめ記事セクション — PHPベースカードグリッド
   ========================================================================== */

.pgm-pickup-grid {
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 0 var(--page-padding, 60px);
	box-sizing: border-box;
}

.pgm-pickup-grid__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
	max-width: 1400px;
	margin: 0 auto;
}

.pgm-pickup-card {
	display: block;
	text-decoration: none;
	color: inherit;
	position: relative;
}

.pgm-pickup-card__thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

.pgm-pickup-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.pgm-pickup-card:hover .pgm-pickup-card__thumb img {
	transform: scale(1.03);
}

.pgm-pickup-card__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
}

.pgm-pickup-card__date {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-pickup-card__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast, #333);
	line-height: 28px;
	margin-top: 6px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pgm-pickup-grid__more {
	display: flex;
	justify-content: center;
	padding-top: 30px;
}

@media (max-width: 781px) {
	.pgm-pickup-grid__inner {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.pgm-pickup-card__title {
		font-size: 14px;
		line-height: 18px;
	}

	.pgm-pickup-card__date {
		font-size: 12px;
	}
}


/* ==========================================================================
   おでかけセクション — 3カラムグリッド
   ========================================================================== */
.pgm-outing-grid__inner {
	grid-template-columns: repeat(3, 1fr);
}

.pgm-go-label {
	position: relative;
	display: inline-block;
	padding: 0 8px;
	font-family: var(--wp--preset--font-family--decorative, 'Lora', serif);
	font-size: 21px;
	font-weight: 500;
	color: var(--wp--preset--color--primary, #4B2E83);
	letter-spacing: 0.05em;
}

@media (max-width: 781px) {
	.pgm-outing-grid__inner {
		grid-template-columns: repeat(2, 1fr);
	}

	.pgm-go-label {
		font-size: 16px;
	}
}


/* ==========================================================================
   新着記事・新店舗セクション — 横スクロールカードスライダー
   Figma node 497:667 (PC) / 497:800 (モバイル)
   ========================================================================== */

/* 新着記事・新店舗セクション — 白背景のはみ出しをページ幅に抑える */
.pgm-whats-new-section,
.pgm-new-open-section {
	overflow: hidden;
}

/* 白背景はカード画像の途中〜スクロールバー下まで覆う帯（Figma 497:542） */
.pgm-whats-new__content {
	position: relative;
	padding: 0 0 30px;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}

.pgm-whats-new__content::before {
	content: '';
	position: absolute;
	left: -9999px;
	right: -9999px;
	top: 130px; /* カード画像の途中から白背景開始 */
	bottom: 0;
	background-color: #fff;
	z-index: 0;
}

.pgm-whats-new__slider-wrapper {
	position: relative;
	z-index: 1;
}

@media (max-width: 1520px) {
	.pgm-whats-new__slider-wrapper {
		padding-left: var(--page-padding, 60px);
	}
}

.pgm-whats-new__slider {
	display: flex;
	gap: 32px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	padding: 0 40px 0 0;
}

.pgm-whats-new__slider::-webkit-scrollbar {
	display: none;
}

.pgm-whats-new__card {
	flex: 0 0 448px;
	scroll-snap-align: start;
}

.pgm-whats-new__card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	position: relative;
}

.pgm-whats-new__card-thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

.pgm-whats-new__card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.pgm-whats-new__card-link:hover .pgm-whats-new__card-thumb img {
	transform: scale(1.03);
}

.pgm-whats-new__card-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}

.pgm-whats-new__card-date {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-whats-new__card-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast, #333);
	line-height: 28px;
	margin-top: 10px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* スクロールバー */
.pgm-whats-new__scrollbar {
	display: block;
	height: 2px;
	background-color: var(--wp--preset--color--english-text, #DEDAE5);
	position: relative;
	z-index: 1;
	margin: 30px 0 0;
}

.pgm-whats-new__scrollbar-thumb {
	height: 100%;
	background-color: var(--wp--preset--color--primary, #4B2E83);
	position: absolute;
	left: 0;
	top: 0;
	width: 50%;
	transition: left 0.3s ease;
}

/* もっと見るボタン — content の外に配置、ページ中央 */
.pgm-whats-new__more-wrapper {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: -17px; /* ボタン高さ35pxの50% → 上半分が白背景に被さる */
	margin-bottom: 60px;
	position: relative;
	z-index: 1;
}

/* モバイル */
@media (max-width: 781px) {
	.pgm-whats-new__content {
		padding: 0 0 20px;
	}

	.pgm-whats-new__content::before {
		top: 80px; /* モバイル: カード画像の途中から */
	}


	.pgm-whats-new__slider {
		gap: 20px;
		padding-right: 20px;
	}

	.pgm-whats-new__card {
		flex: 0 0 269px;
	}

	.pgm-whats-new__card-thumb {
		aspect-ratio: 16 / 9;
	}

	.pgm-whats-new__card-meta {
		margin-top: 6px;
	}

	.pgm-whats-new__card-date {
		font-size: 12px;
	}

	.pgm-whats-new__card-title {
		font-size: 14px;
		line-height: 18px;
		margin-top: 6px;
	}

	.pgm-whats-new__scrollbar {
		margin: 20px 0 0;
	}
}


/* ==========================================================================
   記事ランキングセクション — 1位大 + 2〜5位小2列グリッド
   Figma node 497:667 (PC) / 497:800 (モバイル)
   ========================================================================== */

/* ランキングセクション */
.pgm-ranking-section {
	overflow: hidden;
}

/* タブ + 本体ラッパー — gap なしで密着 */
.pgm-ranking__tabs-body {
	width: 100%;
	display: flex;
	flex-direction: column;
}

/* カテゴリタブ — 見出しと左端を揃える */
.pgm-ranking__tabs {
	display: flex;
	align-items: stretch;
	width: 100%;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	padding: 0 var(--page-padding, 60px);
	margin: 0 auto;
	position: relative;
	z-index: 1;
	box-sizing: border-box;
}

.pgm-ranking__tabs::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: -9999px;
	right: -9999px;
	height: 1px;
	background-color: var(--wp--preset--color--primary, #4B2E83);
}

.pgm-ranking__tab {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 28px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	font-weight: 400;
	color: var(--wp--preset--color--primary, #4B2E83);
	text-decoration: none;
	letter-spacing: 2.6px;
	border: 1px solid var(--wp--preset--color--primary, #4B2E83);
	border-bottom: none;
	border-radius: 6px 6px 0 0;
	background: transparent;
	position: relative;
}

.pgm-ranking__tab--active {
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-bottom: 1px solid var(--wp--preset--color--primary-light, #F1EFF5);
	margin-bottom: -1px;
	margin-top: -4px;
	padding-top: 12px; /* 元の8px + 4px分 */
	z-index: 2;
}

.pgm-ranking__tab svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* 薄紫背景ラッパー — 全幅 */
.pgm-ranking__bg {
	width: 100%;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-bottom: 1px solid var(--wp--preset--color--primary, #4B2E83);
}

/* ジャンル別パネル — 非アクティブは非表示 */
.pgm-ranking__panel {
	display: none;
}

.pgm-ranking__panel--active {
	display: block;
}

/* ランキング本体 — 1400px制限で中央配置 */
.pgm-ranking__body {
	display: grid;
	grid-template-columns: 1fr minmax(480px, 1fr);
	gap: 38px;
	max-width: calc(1400px + var(--page-padding, 60px) * 2);
	margin: 0 auto;
	padding: 40px var(--page-padding, 60px) 0;
}

/* 順位バッジ */
.pgm-ranking__item {
	position: relative;
}

.pgm-ranking__item-link {
	display: block;
	text-decoration: none;
	color: inherit;
	position: relative;
}

.pgm-ranking__item-rank {
	position: absolute;
	top: -19px;
	left: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.pgm-ranking__rank-number {
	font-family: var(--wp--preset--font-family--decorative);
	font-weight: 400;
	color: var(--wp--preset--color--primary, #4B2E83);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	position: relative;
	z-index: 1;
	font-size: 29px;
}

.pgm-ranking__item-rank::after {
	content: '';
	display: block;
	width: 35px;
	height: 19px;
	background-color: var(--wp--preset--color--primary-light, #F1EFF5);
	border-left: 1.5px solid var(--wp--preset--color--primary, #4B2E83);
	border-right: 1.5px solid var(--wp--preset--color--primary, #4B2E83);
	border-bottom: 1.5px solid var(--wp--preset--color--primary, #4B2E83);
	margin-top: -10px;
}

/* 1位 */
.pgm-ranking__item--first {
	grid-row: 1 / 3;
}

.pgm-ranking__item--first .pgm-ranking__rank-number {
	font-size: 42px;
}

.pgm-ranking__item--first .pgm-ranking__item-rank {
	top: -26px;
}

.pgm-ranking__item--first .pgm-ranking__item-rank::after {
	width: 51px;
	height: 27px;
	margin-top: -16px;
}

.pgm-ranking__item--first .pgm-ranking__item-thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

.pgm-ranking__item--first .pgm-ranking__item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.pgm-ranking__item--first .pgm-ranking__item-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
}

.pgm-ranking__item--first .pgm-ranking__item-date {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 20px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-ranking__item--first .pgm-ranking__item-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast, #011507);
	line-height: 40px;
	margin-top: 10px;
}

/* 2〜5位グリッド */
.pgm-ranking__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 36px 38px;
}

.pgm-ranking__item--sub .pgm-ranking__item-thumb {
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	position: relative;
}

.pgm-ranking__item--sub .pgm-ranking__item-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s;
}

.pgm-ranking__item--sub .pgm-ranking__item-link:hover .pgm-ranking__item-thumb img {
	transform: scale(1.03);
}

.pgm-ranking__item--sub .pgm-ranking__item-meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}

.pgm-ranking__item--sub .pgm-ranking__item-date {
	font-family: var(--wp--preset--font-family--decorative);
	font-size: 14px;
	font-weight: 500;
	color: var(--wp--preset--color--english-text, #DEDAE5);
}

.pgm-ranking__item--sub .pgm-ranking__item-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 14.4px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast, #333);
	line-height: 23px;
	margin-top: 6px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* モバイル */
@media (max-width: 781px) {
	.pgm-ranking__tabs {
		padding-left: var(--page-padding, 32px);
		padding-right: var(--page-padding, 32px);
		max-width: none;
		justify-content: center;
	}

	.pgm-ranking__tab {
		font-size: 15px;
		padding: 6px 12px;
		letter-spacing: 1.95px;
		border-radius: 4px 4px 0 0;
	}

	.pgm-ranking__body {
		display: flex;
		flex-direction: column;
		gap: 24px;
		padding: 24px var(--page-padding, 32px) 40px;
	}

	.pgm-ranking__item--first .pgm-ranking__item-link,
	.pgm-ranking__item--sub .pgm-ranking__item-link {
		display: grid;
		grid-template-columns: 150px 1fr;
		gap: 0 15px;
		position: relative;
	}

	.pgm-ranking__item--first .pgm-ranking__item-rank,
	.pgm-ranking__item--sub .pgm-ranking__item-rank {
		position: absolute;
		top: -16px; /* 数字24px - 重なり8px = 16px → コの字上端が画像上端に揃う */
		left: 0;
	}

	.pgm-ranking__item--first .pgm-ranking__rank-number,
	.pgm-ranking__item--sub .pgm-ranking__rank-number {
		font-size: 24px;
	}

	.pgm-ranking__item--first .pgm-ranking__item-rank::after,
	.pgm-ranking__item--sub .pgm-ranking__item-rank::after {
		width: 28px;
		height: 15px;
		margin-top: -8px;
	}

	.pgm-ranking__item--first .pgm-ranking__item-thumb,
	.pgm-ranking__item--sub .pgm-ranking__item-thumb {
		grid-column: 1;
		aspect-ratio: 16 / 9;
	}

	.pgm-ranking__item--first .pgm-ranking__item-info,
	.pgm-ranking__item--sub .pgm-ranking__item-info {
		grid-column: 2;
	}

	.pgm-ranking__item--first .pgm-ranking__item-meta {
		margin-top: 10px;
	}

	.pgm-ranking__item--first .pgm-ranking__item-date {
		font-size: 12px;
	}

	.pgm-ranking__item--first .pgm-ranking__item-title {
		font-size: 14px;
		line-height: 16px;
		margin-top: 6px;
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	.pgm-ranking__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* ==========================================================================
   ランキングページ
   ========================================================================== */
.pgm-ranking-page .pgm-ranking__bg {
	padding-bottom: 40px;
}

.pgm-ranking-page .pgm-ranking__body {
	padding-bottom: 0;
}

/* ==========================================================================
   エリア検索モーダル（検索モーダルの .pgm-search-modal CSS を流用）
   ========================================================================== */
.pgm-area-modal {
	display: none;
}

.pgm-area-modal.is-visible {
	display: flex;
}

.pgm-area-modal.is-open {
	opacity: 1;
}

/* フッター（リセット + 検索ボタン） */
.pgm-area-modal__footer {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 8px;
	margin-top: 50px;
	gap: 12px;
}

.pgm-area-modal__reset {
	padding: 12px 0;
	width: 100%;
	max-width: 280px;
	font-family: var(--wp--preset--font-family--heading, 'BIZ UDMincho', serif);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 2px;
	color: var(--wp--preset--color--primary, #4B2E83);
	background: transparent;
	border: 1px solid var(--wp--preset--color--primary, #4B2E83);
	border-radius: 9999px;
	cursor: pointer;
	transition: background 0.2s;
	text-align: center;
}

.pgm-area-modal__reset:hover {
	background: var(--wp--preset--color--primary-light, #F1EFF5);
}

.pgm-area-modal .pgm-search-modal__search-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

@media (max-width: 781px) {
	.pgm-area-modal__footer {
		flex-direction: column;
	}

	.pgm-area-modal__reset {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   地図セクション（トップページ）
   ========================================================================== */
.pgm-map-section--pc { display: block; width: 100%; margin: 0 auto; padding: 40px 0 60px; position: relative; }
.pgm-map-section__inner { display: flex; align-items: center; justify-content: center; gap: 0; max-width: 1400px; margin: 0 auto; padding: 0 40px; box-sizing: border-box; transform-origin: center top; }
.pgm-map-section__left { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 20px; position: relative; padding-top: 20px; }
.pgm-map-section__en-title { font-family: var(--wp--preset--font-family--decorative); font-size: clamp(36px, 5.5vw, 68.87px); font-weight: 500; color: var(--wp--preset--color--primary-light); line-height: normal; text-align: center; white-space: nowrap; margin: 0; max-width: 90vw; }
.pgm-map-section__bubble { position: relative; margin-top: 18px; margin-bottom: 30px; }
.pgm-map-section__bubble-top { height: 21px; border: 1px solid var(--wp--preset--color--primary); border-bottom: none; border-radius: 21px 21px 0 0; background: #fff; }
.pgm-map-section__heading { font-family: var(--wp--preset--font-family--heading); font-size: 20px; font-weight: 400; color: var(--wp--preset--color--primary); letter-spacing: 2.6px; line-height: 20px; height: 20px; text-align: center; margin: 0; padding: 0 30px; white-space: nowrap; background: #fff; }
.pgm-map-section__bubble-bottom { position: relative; height: 21px; border: 1px solid var(--wp--preset--color--primary); border-top: none; border-radius: 0 0 21px 21px; background: #fff; }
.pgm-map-section__bubble-bottom::after { content: ""; position: absolute; bottom: -2px; left: 50%; transform: translateX(-50%); width: 20px; height: 4px; background: var(--wp--preset--color--base); z-index: 2; }
.pgm-map-section__bubble-tail { position: absolute; bottom: -17px; left: calc(50% - 4px); display: block; width: 16px; height: 16px; border-left: 1px solid var(--wp--preset--color--primary); transform: rotate(-47deg); transform-origin: top left; z-index: 1; }
.pgm-map-section__btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 240px; height: 40px; background-color: var(--wp--preset--color--primary); border-radius: 52.571px; text-decoration: none; color: #fff; margin-top: 16px; transition: opacity 0.2s; position: relative; }
.pgm-map-section__btn:hover { opacity: 0.85; }
.pgm-map-section__btn-icon { width: 19px; height: 18px; }
.pgm-map-section__btn-text { font-family: var(--wp--preset--font-family--heading); font-size: 18.286px; font-weight: 400; color: #fff; letter-spacing: 2.377px; line-height: normal; }
.pgm-map-section__btn-arrow { width: 6px; height: 10px; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); }
.pgm-map-section__right { flex: 0 0 auto; }
.pgm-map-section__right-inner { position: relative; width: 660px; height: 423px; }
.pgm-map-section__map { width: 261px; height: 423px; margin-left: 170px; position: relative; z-index: 0; }
.pgm-map-section__map img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pgm-map-section__map svg { width: 100%; height: 100%; display: block; }
.pgm-map-section__map [data-area-group] { cursor: pointer; transition: filter 0.2s; }
.pgm-map-section__map [data-area-group]:hover,
.pgm-map-section__map [data-area-group].is-area-hover { filter: brightness(0.85) saturate(1.3); }
.pgm-map-section__area-label { position: absolute; display: flex; align-items: flex-start; gap: 0; text-decoration: none; transition: opacity 0.2s; cursor: pointer; color: inherit; }
.pgm-map-section__area-label:hover,
.pgm-map-section__area-label.is-area-hover { filter: brightness(0.85) saturate(1.3); text-decoration: none; }
.pgm-map-section__area-label span { font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 22.814px; font-weight: 500; line-height: normal; text-decoration: none; }
.pgm-map-section__area-line { display: block; position: absolute; height: 1px; }
.pgm-map-section__area-label span:last-child { margin-top: 18px; }
.pgm-map-section__area-line::after { content: ""; position: absolute; width: 1px; top: 0; }
.pgm-map-section__area-label--nara { top: 18px; left: 480px; flex-direction: column; align-items: center; }
.pgm-map-section__area-label--nara span { color: #D3B1B9; white-space: nowrap; }
.pgm-map-section__area-label--nara .pgm-map-section__area-line { right: 50%; top: 0; width: 250px; background: #D3B1B9; }
.pgm-map-section__area-label--nara .pgm-map-section__area-line::after { right: 0; height: 12px; background: #D3B1B9; }
.pgm-map-section__area-label--kashihara { top: 99px; left: 0; flex-direction: column; align-items: center; }
.pgm-map-section__area-label--kashihara span { color: #B9C7D6; }
.pgm-map-section__area-label--kashihara .pgm-map-section__area-line { left: 50%; top: 0; width: 250px; background: #B9C7D6; }
.pgm-map-section__area-label--kashihara .pgm-map-section__area-line::after { left: 0; height: 15px; background: #B9C7D6; }
.pgm-map-section__area-label--uda { bottom: 80px; left: 480px; flex-direction: column; align-items: center; }
.pgm-map-section__area-label--uda span { color: #C8D2C6; }
.pgm-map-section__area-label--uda .pgm-map-section__area-line { right: 50%; top: 0; width: 220px; background: #C8D2C6; }
.pgm-map-section__area-label--uda .pgm-map-section__area-line::after { right: 0; height: 15px; background: #C8D2C6; }

/* --- SP版 --- */
.pgm-map-section--sp { display: none; width: 100%; }
.pgm-map-section-sp__inner { display: flex; flex-direction: column; align-items: center; position: relative; width: 393px; margin: 0 auto; }
.pgm-map-section-sp__en-title { font-family: var(--wp--preset--font-family--decorative); font-size: 36px; font-weight: 500; color: var(--wp--preset--color--primary-light); line-height: normal; text-align: center; margin: 0; }
.pgm-map-section-sp__bubble { position: relative; margin-top: -8px; margin-bottom: -35px; z-index: 2; }
.pgm-map-section-sp__bubble-top { height: 21px; border: 1px solid var(--wp--preset--color--primary); border-bottom: none; border-radius: 21px 21px 0 0; background: #fff; }
.pgm-map-section-sp__heading { font-family: var(--wp--preset--font-family--heading); font-size: 20px; font-weight: 400; color: var(--wp--preset--color--primary); letter-spacing: 2.6px; line-height: 20px; height: 20px; text-align: center; margin: 0; padding: 0 30px; white-space: nowrap; background: #fff; }
.pgm-map-section-sp__bubble-bottom { position: relative; height: 21px; border: 1px solid var(--wp--preset--color--primary); border-top: none; border-radius: 0 0 21px 21px; background: #fff; }
.pgm-map-section-sp__bubble-bottom::after { content: ""; position: absolute; bottom: -2px; left: 50%; transform: translateX(-50%); width: 20px; height: 4px; background: var(--wp--preset--color--base); z-index: 2; }
.pgm-map-section-sp__bubble-tail { position: absolute; bottom: -17px; left: calc(50% - 4px); display: block; width: 16px; height: 16px; border-left: 1px solid var(--wp--preset--color--primary); transform: rotate(-47deg); transform-origin: top left; z-index: 1; }
.pgm-map-section-sp__bracket-wrap { border: 1px solid var(--wp--preset--color--primary); border-radius: 4px; padding: 14px 16px; margin-top: 16px; width: 100%; }
.pgm-map-section-sp__map-area { width: 100%; height: 300px; background-color: var(--wp--preset--color--primary-light); position: relative; }
.pgm-map-section-sp__map { width: 160px; height: 260px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); overflow: hidden; }
.pgm-map-section-sp__map img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pgm-map-section-sp__map svg { width: 100%; height: 100%; display: block; }
.pgm-map-section-sp__map [data-area-group] { cursor: pointer; transition: filter 0.2s; }
.pgm-map-section-sp__map [data-area-group]:hover,
.pgm-map-section-sp__map [data-area-group].is-area-hover { filter: brightness(0.85) saturate(1.3); }
.pgm-map-section-sp__area-label { position: absolute; display: flex; flex-direction: column; gap: 0; text-decoration: none; transition: opacity 0.2s; cursor: pointer; color: inherit; }
.pgm-map-section-sp__area-label:hover,
.pgm-map-section-sp__area-label.is-area-hover { filter: brightness(0.85) saturate(1.3); text-decoration: none; }
.pgm-map-section-sp__area-label span { font-family: 'Zen Kaku Gothic New', sans-serif; font-size: 12.237px; font-weight: 500; line-height: normal; text-decoration: none; }
.pgm-map-section-sp__leader { position: absolute; height: 1px; z-index: 0; }
.pgm-map-section-sp__leader::after { content: ""; position: absolute; width: 1px; top: 0; }
.pgm-map-section-sp__leader--nara { top: 12%; left: calc(50% + 10px); right: 20%; background: #D3B1B9; }
.pgm-map-section-sp__leader--nara::after { right: 0; height: 10px; background: #D3B1B9; }
.pgm-map-section-sp__leader--kashihara { top: 28%; left: 20%; right: calc(50% + 10px); background: #B9C7D6; }
.pgm-map-section-sp__leader--kashihara::after { left: 0; height: 10px; background: #B9C7D6; }
.pgm-map-section-sp__leader--uda { bottom: 18%; left: calc(50% + 10px); right: 20%; background: #C8D2C6; }
.pgm-map-section-sp__leader--uda::after { right: 0; height: 10px; background: #C8D2C6; }
.pgm-map-section-sp__area-label span:last-child { margin-top: 14px; }
.pgm-map-section-sp__area-label--nara { top: calc(12% + 2px); right: 4%; align-items: center; }
.pgm-map-section-sp__area-label--nara span { color: #D3B1B9; white-space: nowrap; font-size: 12px; }
.pgm-map-section-sp__area-label--kashihara { top: calc(28% + 2px); left: 4%; align-items: center; }
.pgm-map-section-sp__area-label--kashihara span { color: #B9C7D6; font-size: 12px; }
.pgm-map-section-sp__area-label--uda { bottom: calc(18% - 45px); right: 4%; align-items: center; }
.pgm-map-section-sp__area-label--uda span { color: #C8D2C6; font-size: 12px; }
.pgm-map-section-sp__btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 210px; height: 35px; background-color: var(--wp--preset--color--primary); border-radius: 46px; text-decoration: none; color: #fff; margin-top: -18px; z-index: 2; transition: opacity 0.2s; position: relative; }
.pgm-map-section-sp__btn:hover { opacity: 0.85; }
.pgm-map-section-sp__btn-icon { width: 16px; height: 16px; }
.pgm-map-section-sp__btn-text { font-family: var(--wp--preset--font-family--heading); font-size: 16px; font-weight: 400; color: #fff; letter-spacing: 2.08px; line-height: normal; }
.pgm-map-section-sp__btn-arrow { width: 5px; height: 8px; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); }

@media (max-width: 1150px) {
	.pgm-map-section--pc { display: none; }
	.pgm-map-section--sp { display: block; }
}

/* ========================================
   Policy Pages (Privacy / Media)
   ======================================== */
.pgm-policy {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 20px;
	color: #000;
	font-family: var(--wp--preset--font-family--body);
	line-height: 1.9;
	font-size: 15px;
}
.pgm-policy__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	font-weight: 400;
	text-align: center;
	margin-bottom: 40px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--wp--preset--color--border);
	line-height: 1.6;
}
.pgm-policy__title-sub {
	display: block;
	font-size: 14px;
	font-weight: 400;
	color: #000;
	margin-top: 8px;
}
.pgm-policy__lead {
	margin-bottom: 40px;
}
.pgm-policy__section {
	margin-bottom: 36px;
}
.pgm-policy__heading {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	font-weight: 400;
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.pgm-policy__section p {
	margin-bottom: 12px;
}
.pgm-policy__section p:last-child {
	margin-bottom: 0;
}
.pgm-policy__list {
	padding-left: 24px;
	margin: 12px 0;
}
.pgm-policy__list li {
	margin-bottom: 8px;
}
.pgm-policy__list--ordered {
	list-style-type: decimal;
}
.pgm-policy__list--parenthesized {
	list-style-type: none;
	counter-reset: parenthesized;
	padding-left: 0;
}
.pgm-policy__list--parenthesized li {
	counter-increment: parenthesized;
	padding-left: 32px;
	text-indent: -32px;
}
.pgm-policy__list--parenthesized li::before {
	content: "(" counter(parenthesized) ")\00a0";
}
.pgm-policy__contact {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 8px 16px;
	margin: 16px 0;
}
.pgm-policy__contact dt {
	font-weight: 400;
}
.pgm-policy__contact dd {
	margin: 0;
}
.pgm-policy__contact a {
	color: #000;
	text-decoration: none;
}
.pgm-policy__contact a:hover {
	text-decoration: underline;
}
.pgm-policy__date {
	text-align: right;
	margin-top: 48px;
	font-size: 14px;
	color: #000;
}

@media (max-width: 599px) {
	.pgm-policy {
		padding: 0 16px;
		font-size: 14px;
	}
	.pgm-policy__title {
		font-size: 20px;
		margin-bottom: 28px;
	}
	.pgm-policy__heading {
		font-size: 16px;
	}
	.pgm-policy__contact {
		grid-template-columns: 70px 1fr;
	}
}
