:root {
	--giapha-primary: #4b2e1f;
	--giapha-primary-deep: #2f1b12;
	--giapha-accent: #b7894f;
	--giapha-accent-light: #e6cfaa;
	--giapha-secondary: #55604a;
	--giapha-cream: #f6f0e6;
	--giapha-paper: #fffdf9;
	--giapha-ink: #27221e;
	--giapha-muted: #716960;
	--giapha-border: #ded4c6;
	--giapha-shadow: 0 18px 50px rgba(49, 31, 19, .10);
	--giapha-radius: 16px;
	--giapha-serif: Cambria, "Times New Roman", "DejaVu Serif", serif;
	--giapha-sans: "Segoe UI", "Noto Sans", Arial, Helvetica, sans-serif;
	--wp-admin-bar-height: 32px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: #f8f5ef;
	color: var(--giapha-ink);
	font-family: var(--giapha-sans);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--giapha-primary); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--giapha-accent); }
button, input, select, textarea { font: inherit; }

/*
 * Kiểu chữ tiếng Việt: tránh dùng khoảng cách âm và ngắt từ bất thường ở
 * các tiêu đề lớn. Cambria/Times New Roman có bộ glyph tiếng Việt đầy đủ
 * trên Windows; DejaVu Serif là phương án dự phòng trên Linux/Android.
 */
h1, h2, h3, h4, h5, h6,
.site-title, .section-title, .page-header h1, .home-cta h2,
.home-hero h2, .history-hero h1, .timeline-hero h1 {
	font-family: var(--giapha-serif);
	font-kerning: normal;
	font-variant-ligatures: common-ligatures;
	font-synthesis: none;
	font-feature-settings: "kern" 1, "liga" 1;
	text-rendering: optimizeLegibility;
	letter-spacing: 0;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}
button, .button, input[type="submit"] { cursor: pointer; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--giapha-accent) 75%, white); outline-offset: 3px; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px;
	overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus { clip: auto !important; clip-path: none; display: block; height: auto; left: 8px; top: 8px; width: auto; z-index: 100000; background: #fff; padding: 12px 18px; }
.skip-link { position: fixed; }

.container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.container-wide { width: min(1440px, calc(100% - 40px)); margin-inline: auto; }
.container-narrow { width: min(820px, calc(100% - 40px)); margin-inline: auto; }

.site-header {
	position: sticky; top: 0; z-index: 1000;
	background: rgba(255, 253, 249, .96);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(75, 46, 31, .12);
}
.admin-bar .site-header { top: 32px; }
.site-header__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.site-branding { display: flex; align-items: center; gap: 14px; min-width: 220px; }
.site-branding__logo { display: block; flex: 0 0 auto; line-height: 0; }
.site-branding__logo img, .site-branding__logo .custom-logo, .site-branding__logo .family-logo { width: 58px; height: 58px; object-fit: contain; }
.site-branding__mark { width: 52px; height: 52px; border: 1px solid var(--giapha-accent); border-radius: 50%; display: grid; place-items: center; text-decoration: none; color: var(--giapha-accent); font: 700 25px var(--giapha-serif); }
.site-title { margin: 0; font: 700 clamp(19px, 2vw, 25px)/1.2 var(--giapha-serif); }
.site-title a { text-decoration: none; color: var(--giapha-primary); }
.site-description { margin: 3px 0 0; color: var(--giapha-muted); font-size: 13px; line-height: 1.3; }
.primary-navigation { min-width: 0; margin-left: auto; }
.primary-menu { list-style: none; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 3px; margin: 0; padding: 0; }
.primary-menu li { position: relative; }
.primary-menu a { display: block; padding: 10px clamp(7px, .7vw, 11px); color: var(--giapha-ink); text-decoration: none; font-size: 15px; font-weight: 600; border-radius: 8px; }
.primary-menu a:hover, .primary-menu .current-menu-item > a, .primary-menu .current_page_item > a { background: var(--giapha-cream); color: var(--giapha-primary); }
.primary-menu .sub-menu { display: none; position: absolute; min-width: 230px; background: #fff; box-shadow: var(--giapha-shadow); list-style: none; padding: 8px; margin: 0; border-radius: 12px; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display: block; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 10px; }
.menu-toggle__icon { display: grid; gap: 5px; }
.menu-toggle__icon span { display: block; width: 25px; height: 2px; background: var(--giapha-primary); }



/* Banner nhận diện xuất hiện trên toàn website. */
.sitewide-banner {
	width: 100%;
	background: #eee7dc;
	border-bottom: 1px solid rgba(75, 46, 31, .14);
	overflow: hidden;
}
.sitewide-banner__link, .sitewide-banner__inner { display: block; width: 100%; line-height: 0; }
.sitewide-banner__image { display: block; width: 100%; margin: 0 auto; }
.sitewide-banner--cover .sitewide-banner__image {
	height: var(--giapha-site-banner-height, 300px);
	object-fit: cover;
	object-position: center;
}
.sitewide-banner--contain { background: var(--giapha-paper); }
.sitewide-banner--contain .sitewide-banner__image {
	height: auto;
	max-height: var(--giapha-site-banner-height, 300px);
	object-fit: contain;
}
.sitewide-banner__link:focus-visible { outline-offset: -4px; }

.site-main { min-height: 65vh; }
.section { padding: clamp(64px, 8vw, 110px) 0; }
.section--cream { background: var(--giapha-cream); }
.section--dark { background: var(--giapha-primary-deep); color: #fff; }
.eyebrow { margin: 0 0 12px; color: var(--giapha-accent-light); text-transform: uppercase; letter-spacing: .14em; font-size: 12px; font-weight: 800; }
.eyebrow--dark { color: var(--giapha-accent); }
.section-title, .page-header h1, .home-cta h2 { margin: 0; color: var(--giapha-primary); font: 700 clamp(34px, 5vw, 58px)/1.15 var(--giapha-serif); letter-spacing: 0; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 38px; }
.section-heading--light .section-title { color: #fff; }
.text-link { font-weight: 700; text-decoration: none; white-space: nowrap; }
.text-link--light { color: var(--giapha-accent-light); }
.text-link--light:hover { color: #fff; }

.home-hero { position: relative; min-height: min(760px, 82vh); display: grid; align-items: center; overflow: hidden; color: #fff; background:
	radial-gradient(circle at 75% 25%, rgba(183,137,79,.30), transparent 25%),
	radial-gradient(circle at 20% 90%, rgba(85,96,74,.32), transparent 35%),
	linear-gradient(135deg, #24130d 0%, #4b2e1f 55%, #6b4630 100%);
	background-size: cover; background-position: center;
}
.home-hero::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,.06) 25px 26px); }
.home-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,16,10,.85) 0%, rgba(30,16,10,.54) 55%, rgba(30,16,10,.28) 100%); }
.home-hero__content { position: relative; z-index: 2; padding-block: 100px; }
.home-hero h2 { max-width: 900px; margin: 0; font: 700 clamp(48px, 8vw, 92px)/1.06 var(--giapha-serif); letter-spacing: 0; text-wrap: wrap; }
.home-hero__lead { max-width: 700px; margin: 28px 0 0; color: #f6ede2; font-size: clamp(18px, 2.3vw, 24px); }

.home-hero-search {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	width: min(680px, 100%);
	margin-top: 30px;
	padding: 8px;
	border: 1px solid rgba(255,255,255,.30);
	border-radius: 16px;
	background: rgba(255,255,255,.12);
	box-shadow: 0 18px 44px rgba(14,7,4,.20);
	backdrop-filter: blur(10px);
}
.home-hero-search__field { position: relative; min-width: 0; }
.home-hero-search__field input[type="search"] {
	width: 100%;
	min-height: 52px;
	padding: 12px 16px 12px 48px;
	border: 0;
	border-radius: 11px;
	background: rgba(255,255,255,.97);
	color: var(--giapha-ink);
	box-shadow: none;
}
.home-hero-search__field input[type="search"]::placeholder { color: #75695f; opacity: 1; }
.home-hero-search__field input[type="search"]:focus { outline: 3px solid rgba(230,207,170,.72); outline-offset: 1px; }
.home-hero-search__icon {
	position: absolute;
	left: 17px;
	top: 50%;
	z-index: 1;
	transform: translateY(-50%);
	color: var(--giapha-primary);
	font-size: 25px;
	line-height: 1;
	pointer-events: none;
}
.home-hero-search__submit {
	min-height: 52px;
	padding: 12px 23px;
	border: 1px solid var(--giapha-accent-light);
	border-radius: 11px;
	background: var(--giapha-accent-light);
	color: #21130c;
	font-weight: 800;
	white-space: nowrap;
	transition: transform .2s, background .2s;
}
.home-hero-search__submit:hover { transform: translateY(-1px); background: #fff; }
.home-hero__actions { margin-top: 20px; }
.button--timeline::before { content: "◷"; margin-right: 8px; font-size: 1.1em; }
.home-hero__seal { position: absolute; right: 6vw; bottom: 5vw; width: 160px; height: 160px; border: 1px solid rgba(230,207,170,.45); border-radius: 50%; display: grid; place-items: center; color: rgba(230,207,170,.42); font: 700 74px var(--giapha-serif); z-index: 2; }
.home-hero__seal img { width: 72%; height: 72%; object-fit: contain; opacity: .72; }
.home-hero__seal--logo { background: rgba(255,255,255,.04); }
.button-group { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 22px; border-radius: 999px; border: 1px solid transparent; text-decoration: none; font-weight: 750; line-height: 1.2; transition: transform .2s, background .2s, border-color .2s; }
.button:hover { transform: translateY(-2px); }
.button--primary { color: #21130c; background: var(--giapha-accent-light); border-color: var(--giapha-accent-light); }
.button--primary:hover { color: #21130c; background: #fff; }
.button--ghost { color: #fff; border-color: rgba(255,255,255,.62); background: rgba(255,255,255,.06); }
.button--ghost:hover { color: #fff; background: rgba(255,255,255,.14); }
.button--outline { color: var(--giapha-primary); border-color: var(--giapha-primary); background: transparent; }

.home-intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); gap: clamp(40px, 8vw, 110px); align-items: start; }
.prose { max-width: 78ch; }
.prose--lead { font-size: clamp(19px, 2vw, 24px); color: var(--giapha-muted); }
.prose > *:first-child { margin-top: 0; }
.prose h2, .prose h3 { color: var(--giapha-primary); font-family: var(--giapha-serif); line-height: 1.25; }
.prose blockquote { border-left: 4px solid var(--giapha-accent); margin: 2em 0; padding: .5em 1.5em; background: var(--giapha-cream); }

.home-stats { background: #fff; border-block: 1px solid var(--giapha-border); }
.home-stats__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.stat { padding: 35px 24px; text-align: center; position: relative; }
.stat + .stat::before { content: ""; position: absolute; left: 0; top: 25%; height: 50%; width: 1px; background: var(--giapha-border); }
.stat strong { display: block; color: var(--giapha-primary); font: 700 clamp(35px, 5vw, 54px)/1 var(--giapha-serif); }
.stat span { color: var(--giapha-muted); font-size: 14px; text-transform: uppercase; letter-spacing: .08em; }

.card-grid { display: grid; gap: 24px; }
.card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-card { overflow: hidden; background: #fff; border: 1px solid var(--giapha-border); border-radius: var(--giapha-radius); box-shadow: 0 10px 34px rgba(49,31,19,.06); }
.content-card__media { display: block; aspect-ratio: 3/2; overflow: hidden; background: #eee8df; text-decoration: none; }
.content-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.content-card:hover .content-card__media img { transform: scale(1.04); }
.content-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; font: 56px var(--giapha-serif); color: var(--giapha-accent); background: linear-gradient(135deg, #efe5d6, #f9f5ef); }
.content-card__body { padding: 24px; }
.content-card__meta { margin: 0 0 8px; color: var(--giapha-accent); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.content-card__title { margin: 0 0 12px; font: 700 25px/1.25 var(--giapha-serif); }
.content-card__title a { color: var(--giapha-primary); text-decoration: none; }
.content-card__body > p:not(.content-card__meta) { color: var(--giapha-muted); }
.card-grid--dark .content-card { background: #3b2418; border-color: rgba(230,207,170,.22); }
.card-grid--dark .content-card__title a { color: #fff; }
.card-grid--dark .content-card__meta { color: var(--giapha-accent-light); }

.home-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: clamp(36px, 5vw, 70px); border: 1px solid var(--giapha-border); border-radius: 24px; background: #fff; box-shadow: var(--giapha-shadow); }
.home-cta h2 { font-size: clamp(30px, 4vw, 48px); max-width: 760px; }

.page-shell { padding-block: 45px 90px; }
.page-shell--wide { padding-top: 32px; }
.page-header { margin: 28px 0 42px; max-width: 920px; }
.page-header p { color: var(--giapha-muted); }
.page-header--compact { margin-bottom: 28px; }
.page-header--article { margin-bottom: 32px; }
.page-header--article h1 { font-size: clamp(40px, 6vw, 70px); }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; color: var(--giapha-muted); font-size: 14px; }
.breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: #aaa096; }
.breadcrumbs a { color: var(--giapha-muted); text-decoration: none; }
.entry-content { min-width: 0; }
.featured-figure { margin: 0 0 38px; }
.featured-figure img { width: 100%; border-radius: var(--giapha-radius); }
.article-meta { color: var(--giapha-muted); }

.member-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.member-card { overflow: hidden; background: #fff; border: 1px solid var(--giapha-border); border-radius: var(--giapha-radius); box-shadow: 0 8px 30px rgba(49,31,19,.06); }
.member-card__media { display: block; aspect-ratio: .84; background: #eee8df; text-decoration: none; overflow: hidden; }
.member-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.member-card:hover .member-card__media img { transform: scale(1.03); }
.member-card__initial { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(145deg, var(--giapha-primary), #72513e); color: var(--giapha-accent-light); font: 700 68px var(--giapha-serif); }
.member-card__body { padding: 20px; }
.member-card__lineage { margin: 0 0 7px; color: var(--giapha-accent); font-size: 13px; font-weight: 800; letter-spacing: .08em; }
.member-card h2 { margin: 0 0 10px; font: 700 25px/1.25 var(--giapha-serif); }
.member-card h2 a { color: var(--giapha-primary); text-decoration: none; }
.member-card__meta { display: flex; flex-wrap: wrap; gap: 7px 14px; margin: 0 0 5px; color: var(--giapha-muted); font-size: 14px; }
.member-card__branch { margin: 0 0 14px; color: var(--giapha-secondary); font-size: 14px; }
.single-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--giapha-border); }

/* Tinh chỉnh lớp hiển thị của plugin Gia Phả Manager. */
.giapha-member { border: 0 !important; background: transparent !important; }
.giapha-member__header { border-radius: 22px !important; background: linear-gradient(135deg, #fff, var(--giapha-cream)) !important; border: 1px solid var(--giapha-border) !important; box-shadow: var(--giapha-shadow); padding: clamp(24px, 4vw, 44px) !important; }
.giapha-member__portrait { border-radius: 14px !important; }
.giapha-member__name { color: var(--giapha-primary) !important; font-family: var(--giapha-serif) !important; }
.giapha-member__section { margin-top: 28px !important; padding: clamp(22px, 3vw, 34px) !important; border: 1px solid var(--giapha-border) !important; border-radius: 18px !important; background: #fff !important; }
.giapha-member__section > h3 { color: var(--giapha-primary) !important; font-family: var(--giapha-serif) !important; }
.giapha-member__row { border-color: #ebe3d9 !important; }
.giapha-related-card { border-color: var(--giapha-border) !important; background: var(--giapha-paper) !important; }
.giapha-related-card:hover { border-color: var(--giapha-accent) !important; }

.giapha-content { --giapha-content-accent: var(--giapha-primary); }
.giapha-content-filter, .giapha-filter, .giapha-events-filter { border-color: var(--giapha-border) !important; background: #fff !important; border-radius: 16px !important; }
.giapha-occurrence-card, .giapha-album-card, .giapha-news-card { border-color: var(--giapha-border) !important; border-radius: 16px !important; box-shadow: 0 8px 26px rgba(49,31,19,.06) !important; }
.giapha-calendar { border-color: var(--giapha-border) !important; border-radius: 16px !important; overflow: hidden; }
.giapha-tree-app { border-radius: 18px; overflow: hidden; border: 1px solid var(--giapha-border); box-shadow: var(--giapha-shadow); }
.giapha-theme-plugin-page .page-shell { max-width: none; }
.giapha-theme-plugin-page .entry-content > .giapha-content,
.giapha-theme-plugin-page .entry-content > .giapha-tree-app { max-width: none; }

.pagination, .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 42px; }
.page-numbers { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; border: 1px solid var(--giapha-border); border-radius: 50%; background: #fff; text-decoration: none; }
.page-numbers.current, .page-numbers:hover { background: var(--giapha-primary); color: #fff; border-color: var(--giapha-primary); }

.search-form { display: flex; gap: 10px; max-width: 680px; margin-bottom: 38px; }
.search-form label { flex: 1; }
.search-field, input[type="text"], input[type="email"], input[type="url"], input[type="search"], textarea, select { width: 100%; padding: 12px 14px; border: 1px solid var(--giapha-border); border-radius: 8px; background: #fff; color: var(--giapha-ink); }
.search-submit, input[type="submit"] { padding: 12px 20px; border: 0; border-radius: 8px; background: var(--giapha-primary); color: #fff; font-weight: 700; }
.search-results-list { display: grid; gap: 18px; }
.search-result { padding: 24px; background: #fff; border: 1px solid var(--giapha-border); border-radius: 14px; }
.search-result h2 { margin-top: 0; font-family: var(--giapha-serif); }
.empty-notice { grid-column: 1 / -1; padding: 26px; border: 1px dashed var(--giapha-border); border-radius: 12px; background: rgba(255,255,255,.6); color: var(--giapha-muted); }
.empty-notice--dark { color: #ddd0c0; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.05); }

.site-footer { background: #24140d; color: #d8cdc2; }
.site-footer__ornament { height: 5px; background: linear-gradient(90deg, var(--giapha-primary), var(--giapha-accent), var(--giapha-secondary)); }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 42px; padding-block: 58px; }
.site-footer h2, .footer-widget__title { margin-top: 0; color: #fff; font-family: var(--giapha-serif); }
.site-footer a { color: #e7d5bf; }
.site-footer ul { list-style: none; padding: 0; }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.site-footer__bottom-inner { display: flex; justify-content: space-between; gap: 20px; padding-block: 20px; font-size: 14px; }
.site-footer__bottom p { margin: 0; }
.footer-menu { display: flex; gap: 16px; list-style: none; padding: 0; margin: 0; }

.comments-area { margin-top: 55px; padding-top: 35px; border-top: 1px solid var(--giapha-border); }
.comment-list { padding-left: 24px; }
.error-404 { text-align: center; padding-block: 100px; }
.error-404 h1 { font: 700 clamp(44px, 7vw, 72px) var(--giapha-serif); color: var(--giapha-primary); }

@media (max-width: 1180px) {
	.member-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.card-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 960px) {
	.admin-bar .site-header { top: 46px; }
	.menu-toggle { display: block; margin-left: auto; }
	.primary-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fffdf9; border-bottom: 1px solid var(--giapha-border); box-shadow: var(--giapha-shadow); padding: 14px 20px 24px; max-height: calc(100vh - 110px); overflow: auto; }
	.primary-navigation.is-open { display: block; }
	.primary-menu { display: block; }
	.primary-menu a { padding: 13px 10px; }
	.primary-menu .sub-menu { display: block; position: static; box-shadow: none; padding-left: 18px; }
	.home-hero { min-height: 680px; }
	.home-hero__seal { width: 110px; height: 110px; font-size: 48px; }
	.home-intro__grid { grid-template-columns: 1fr; gap: 24px; }
	.member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.home-cta__inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {

	.home-hero-search { grid-template-columns: 1fr; padding: 7px; border-radius: 14px; }
	.home-hero-search__submit { width: 100%; }
	.home-hero__actions { display: grid; grid-template-columns: 1fr; width: 100%; }
	.home-hero__actions .button { width: 100%; }

	.sitewide-banner--cover .sitewide-banner__image { height: min(42vw, var(--giapha-site-banner-height, 300px)); min-height: 120px; }
	.sitewide-banner--contain .sitewide-banner__image { max-height: min(52vw, var(--giapha-site-banner-height, 300px)); }
	body { font-size: 16px; }
	.container, .container-wide, .container-narrow { width: min(100% - 24px, 100%); }
	.site-header__inner { min-height: 70px; }
	.site-branding__logo img, .site-branding__logo .custom-logo, .site-branding__logo .family-logo { width: 46px; height: 46px; }
	.site-description { display: none; }
	.home-hero { min-height: 620px; }
	.home-hero__content { padding-block: 80px; }
	.home-hero h2 { font-size: clamp(42px, 13vw, 64px); }
	.home-hero__seal { display: none; }
	.button-group { flex-direction: column; align-items: stretch; }
	.button { width: 100%; }
	.home-stats__grid { grid-template-columns: 1fr; }
	.stat + .stat::before { left: 25%; top: 0; width: 50%; height: 1px; }
	.section-heading { align-items: flex-start; flex-direction: column; }
	.card-grid--3, .member-grid { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__bottom-inner { flex-direction: column; }
	.footer-menu { flex-wrap: wrap; }
	.page-shell { padding-block: 28px 64px; }
	.page-header { margin-bottom: 30px; }
	.giapha-member__header { display: block !important; }
	.giapha-member__portrait-wrap { margin-bottom: 18px; }
	.single-actions { flex-direction: column; }
	.search-form { flex-direction: column; }
}

@media print {
	.site-header, .site-footer, .breadcrumbs, .single-actions, .menu-toggle { display: none !important; }
	body { background: #fff; color: #000; }
	.page-shell { padding: 0; }
	a { color: #000; text-decoration: none; }
}

/* GĐ6.2 — Trang Lịch sử dòng họ. */
.history-hero {
	position: relative;
	min-height: 430px;
	display: grid;
	align-items: end;
	background:
		radial-gradient(circle at 82% 20%, rgba(183,137,79,.32), transparent 27%),
		linear-gradient(135deg, #2b170f, #5a3826 62%, #73523b);
	background-position: center;
	background-size: cover;
	color: #fff;
	overflow: hidden;
}
.history-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,.045) 25px 26px);
}
.history-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,16,10,.9), rgba(30,16,10,.48)); }
.history-hero__content { position: relative; z-index: 1; padding-block: 90px 68px; }
.history-hero h1 { max-width: 900px; margin: 0; color: #fff; font: 700 clamp(46px, 7vw, 78px)/1.08 var(--giapha-serif); letter-spacing: 0; }
.history-hero__content > p:last-child { max-width: 760px; margin: 22px 0 0; color: #f2e8dc; font-size: clamp(18px, 2vw, 23px); }
.history-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: clamp(42px, 7vw, 92px); padding-block: 76px 100px; align-items: start; }
.history-aside { position: sticky; top: 120px; padding: 30px; border: 1px solid var(--giapha-border); border-radius: 18px; background: #fff; box-shadow: 0 12px 36px rgba(49,31,19,.07); }
.history-aside__seal { width: 72px; height: 72px; display: grid; place-items: center; margin-bottom: 20px; border: 1px solid var(--giapha-accent); border-radius: 50%; color: var(--giapha-accent); font: 700 33px var(--giapha-serif); }
.history-aside__seal--compact { font-size: 27px; letter-spacing: -.04em; }
.history-aside__seal--three { font-size: 21px; letter-spacing: -.08em; }
.history-aside h2 { margin: 0 0 12px; color: var(--giapha-primary); font: 700 27px/1.2 var(--giapha-serif); }
.history-aside p { color: var(--giapha-muted); font-size: 15px; }
.history-content { max-width: 820px; font-size: 18px; }
.history-content h2 { margin-top: 2.1em; padding-bottom: .3em; border-bottom: 1px solid var(--giapha-border); font-size: clamp(30px, 4vw, 43px); }
.history-content h2:first-child { margin-top: 0; }

/* GĐ6.2 — Dòng thời gian gia phả. */
.timeline-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 15% 20%, rgba(183,137,79,.28), transparent 25%),
		linear-gradient(135deg, #24140d, #523323 62%, #3c4735);
	color: #fff;
}
.timeline-hero__pattern { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(30deg, rgba(255,255,255,.12) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.12) 87.5%), linear-gradient(150deg, rgba(255,255,255,.12) 12%, transparent 12.5%, transparent 87%, rgba(255,255,255,.12) 87.5%); background-size: 64px 110px; }
.timeline-hero__content { position: relative; z-index: 1; padding-block: 84px 74px; text-align: center; }
.timeline-hero h1 { margin: 0; color: #fff; font: 700 clamp(46px, 7vw, 76px)/1.06 var(--giapha-serif); }
.timeline-hero p:last-child { max-width: 840px; margin: 22px auto 0; color: #f3e8dc; font-size: clamp(17px, 2vw, 21px); }
.timeline-page-shell { padding-block: 54px 100px; }
.timeline-page-intro { margin: 0 auto 34px; }
.timeline-filter { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(190px, .36fr) auto auto; gap: 14px; align-items: end; margin: 0 auto 18px; padding: 20px; border: 1px solid var(--giapha-border); border-radius: 16px; background: rgba(255,255,255,.84); box-shadow: 0 8px 28px rgba(49,31,19,.05); }
.timeline-filter label { display: grid; gap: 6px; font-size: 14px; font-weight: 700; }
.timeline-filter button { min-height: 48px; padding: 10px 22px; border: 0; border-radius: 9px; background: var(--giapha-primary); color: #fff; font-weight: 750; }
.timeline-filter__reset { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; text-decoration: none; }
.timeline-summary { margin: 0 0 32px; color: var(--giapha-muted); text-align: center; font-weight: 700; }
.family-timeline { position: relative; max-width: 1120px; margin: 0 auto; padding: 18px 0; }
.family-timeline::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); background: linear-gradient(var(--giapha-accent), var(--giapha-border) 12%, var(--giapha-border) 88%, var(--giapha-accent)); }
.family-timeline__item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 82px minmax(0, 1fr); align-items: center; min-height: 154px; opacity: 0; transform: translateY(20px); transition: opacity .45s ease, transform .45s ease; }
.family-timeline__item.is-visible { opacity: 1; transform: none; }
.family-timeline__date { position: relative; z-index: 2; justify-self: end; min-width: 190px; padding: 12px 20px; border: 2px solid #d4d8df; border-radius: 999px; background: #fff; text-align: center; box-shadow: 0 8px 24px rgba(49,31,19,.06); }
.family-timeline__date span { display: block; color: var(--giapha-primary); font-weight: 800; letter-spacing: .03em; }
.family-timeline__date small { display: block; margin-top: 2px; color: var(--giapha-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.family-timeline__dot { position: relative; z-index: 3; grid-column: 2; justify-self: center; width: 14px; height: 14px; border: 4px solid var(--giapha-paper); border-radius: 50%; background: var(--giapha-primary); box-shadow: 0 0 0 2px var(--giapha-accent); }
.family-timeline__card { position: relative; z-index: 2; min-height: 94px; display: flex; align-items: center; gap: 16px; padding: 14px 22px 14px 12px; border: 1px solid var(--giapha-border); border-radius: 999px; background: #fff; box-shadow: 0 12px 32px rgba(49,31,19,.08); color: var(--giapha-ink); text-decoration: none; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.family-timeline__card:hover { transform: translateY(-2px); border-color: var(--giapha-accent); box-shadow: 0 15px 38px rgba(49,31,19,.13); color: var(--giapha-primary); }
.family-timeline__portrait { flex: 0 0 76px; width: 76px; height: 76px; overflow: hidden; display: grid; place-items: center; border: 4px solid #fff; border-radius: 50%; background: #ddd8d1; box-shadow: 0 0 0 2px var(--giapha-accent-light); color: var(--giapha-primary); font: 700 31px var(--giapha-serif); }
.family-timeline__portrait img { width: 100%; height: 100%; object-fit: cover; }
.family-timeline__person { min-width: 0; display: grid; }
.family-timeline__person small { color: var(--giapha-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.family-timeline__person strong { color: var(--giapha-primary); font: 700 22px/1.2 var(--giapha-serif); overflow-wrap: anywhere; }
.family-timeline__person > span { color: var(--giapha-secondary); font-size: 13px; font-weight: 700; }
.family-timeline__item--left .family-timeline__date { grid-column: 1; }
.family-timeline__item--left .family-timeline__card { grid-column: 3; }
.family-timeline__item--right .family-timeline__card { grid-column: 1; grid-row: 1; flex-direction: row-reverse; padding: 14px 12px 14px 22px; text-align: right; }
.family-timeline__item--right .family-timeline__date { grid-column: 3; grid-row: 1; justify-self: start; }
.family-timeline__item--birth .family-timeline__dot { background: var(--giapha-secondary); }
.family-timeline__item--death .family-timeline__dot { background: var(--giapha-primary); }
.family-timeline__item.is-root .family-timeline__card { border-color: var(--giapha-accent); background: linear-gradient(135deg, #fff, #faf1e4); }
.family-timeline__item.is-root .family-timeline__date { border-color: var(--giapha-accent); }
.timeline-pagination { display: flex; justify-content: center; margin-top: 42px; }
.timeline-pagination .page-numbers { margin: 4px; }

@media (max-width: 1080px) {
	.history-layout { grid-template-columns: 240px minmax(0, 1fr); gap: 44px; }
	.timeline-filter { grid-template-columns: 1fr 220px auto; }
	.timeline-filter__reset { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 780px) {
	.history-layout { grid-template-columns: 1fr; padding-block: 50px 72px; }
	.history-aside { position: static; }
	.timeline-hero__content { padding-block: 66px 58px; text-align: left; }
	.timeline-filter { grid-template-columns: 1fr; }
	.timeline-filter__reset { grid-column: auto; }
	.family-timeline { padding-left: 34px; }
	.family-timeline::before { left: 12px; transform: none; }
	.family-timeline__item { display: grid; grid-template-columns: 1fr; gap: 10px; min-height: 0; margin-bottom: 30px; }
	.family-timeline__date,
	.family-timeline__item--left .family-timeline__date,
	.family-timeline__item--right .family-timeline__date { grid-column: 1; grid-row: auto; justify-self: start; min-width: 0; padding: 9px 15px; text-align: left; }
	.family-timeline__dot { position: absolute; left: -29px; top: 18px; grid-column: auto; }
	.family-timeline__card,
	.family-timeline__item--left .family-timeline__card,
	.family-timeline__item--right .family-timeline__card { grid-column: 1; grid-row: auto; min-height: 88px; flex-direction: row; padding: 12px 16px 12px 10px; border-radius: 18px; text-align: left; }
	.family-timeline__portrait { flex-basis: 66px; width: 66px; height: 66px; }
	.family-timeline__person strong { font-size: 20px; }
}

/* GĐ7: form đăng ký email do plugin quản lý, theme chỉ đặt vào footer. */
.site-footer__subscribe{margin-top:28px}.site-footer__subscribe .giapha-email-box{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff}.site-footer__subscribe .giapha-email-box__intro p{color:rgba(255,255,255,.76)}.site-footer__subscribe .giapha-email-consent a{color:#f0d39b}.site-footer__subscribe .giapha-email-message{color:#1f5e32}

/* GĐ6.6: đồng bộ chiều rộng các trang nội dung do plugin cung cấp. */
.page-shell--plugin-wide {
	width: min(1440px, calc(100% - 40px));
	max-width: none;
}
.giapha-theme-plugin-page .entry-content.prose,
.giapha-theme-plugin-page .giapha-plugin-content {
	width: 100%;
	max-width: none;
}
.giapha-theme-plugin-page .page-header {
	max-width: 1180px;
}
.giapha-theme-plugin-page .entry-content > .giapha-content,
.giapha-theme-plugin-page .giapha-content-filters,
.giapha-theme-plugin-page .giapha-event-list,
.giapha-theme-plugin-page .giapha-calendar-wrap,
.giapha-theme-plugin-page .giapha-content-grid {
	width: 100%;
	max-width: none;
}

/* Tin và thư viện dùng lưới ba cột ổn định trên màn hình rộng. */
.giapha-theme-plugin-page--news .giapha-content-grid,
.giapha-theme-plugin-page--photos .giapha-content-grid,
.giapha-theme-plugin-page--videos .giapha-content-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Danh sách sự kiện tận dụng hai cột; lịch tháng vẫn chiếm trọn chiều ngang. */
.giapha-theme-plugin-page--events .giapha-event-list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.giapha-theme-plugin-page--events .giapha-event-card {
	margin: 0;
}
.giapha-theme-plugin-page--events .giapha-calendar-heading {
	margin-top: 42px;
}

@media (max-width: 1080px) {
	.giapha-theme-plugin-page--news .giapha-content-grid,
	.giapha-theme-plugin-page--photos .giapha-content-grid,
	.giapha-theme-plugin-page--videos .giapha-content-grid,
	.giapha-theme-plugin-page--events .giapha-event-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.page-shell--plugin-wide {
		width: min(100% - 24px, 100%);
	}
	.giapha-theme-plugin-page--news .giapha-content-grid,
	.giapha-theme-plugin-page--photos .giapha-content-grid,
	.giapha-theme-plugin-page--videos .giapha-content-grid,
	.giapha-theme-plugin-page--events .giapha-event-list {
		grid-template-columns: 1fr;
	}
	.giapha-theme-plugin-page .page-header {
		margin-bottom: 28px;
	}
}


/* GĐ6.15: hai hàng ảnh thành viên ngẫu nhiên, chỉ dùng ảnh chân dung thật. */
.member-mosaic {
	width: 100%;
	margin: 0;
	background: #d8d2ca;
	overflow: hidden;
}
.member-mosaic__grid {
	display: grid;
	grid-template-columns: repeat(10, minmax(0, 1fr));
	gap: 0;
	width: 100%;
}
.member-mosaic__item {
	position: relative;
	min-width: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	display: block;
	background: #c9c1b8;
	color: #fff;
	text-decoration: none;
	isolation: isolate;
}
.member-mosaic__item::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to top, rgba(24,14,9,.70), rgba(24,14,9,.08) 46%, transparent 68%);
	opacity: .18;
	transition: opacity .22s ease;
}
.member-mosaic__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
	filter: saturate(.9) contrast(.96);
	transition: transform .3s ease, filter .3s ease;
}
.member-mosaic__item:hover img,
.member-mosaic__item:focus-visible img {
	transform: scale(1.045);
	filter: saturate(1) contrast(1);
}
.member-mosaic__item:hover::after,
.member-mosaic__item:focus-visible::after {
	opacity: 1;
}
.member-mosaic__name {
	position: absolute;
	left: 8px;
	right: 8px;
	bottom: 8px;
	z-index: 2;
	color: #fff;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.25;
	text-align: center;
	text-shadow: 0 1px 3px rgba(0,0,0,.8);
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .22s ease, transform .22s ease;
}
.member-mosaic__item:hover .member-mosaic__name,
.member-mosaic__item:focus-visible .member-mosaic__name {
	opacity: 1;
	transform: none;
}

@media (max-width: 960px) {
	.member-mosaic__grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
	.member-mosaic__item:nth-child(n+13) {
		display: none;
	}
}

@media (max-width: 680px) {
	.member-mosaic__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.member-mosaic__item:nth-child(n+9) {
		display: none;
	}
	.member-mosaic__name {
		display: none;
	}
}

/* GĐ6.8: Cha/Mẹ hiển thị bằng thẻ chân dung đồng bộ với vợ/chồng và con cái. */
.giapha-member__row--parents > dt {
	color: var(--giapha-primary);
	font-family: var(--giapha-serif);
	font-weight: 700;
}

.giapha-relation-list--parents {
	grid-template-columns: repeat(2, minmax(240px, 1fr)) !important;
	max-width: 780px;
}

.giapha-relation-list--parents .giapha-relation-card {
	max-width: none !important;
	border-color: var(--giapha-border) !important;
	background: var(--giapha-paper) !important;
}

.giapha-relation-list--parents .giapha-relation-card:hover,
.giapha-relation-list--parents .giapha-relation-card:focus-visible {
	border-color: var(--giapha-accent) !important;
}

.giapha-relation-card__role {
	background: rgba(179, 126, 55, .13) !important;
	color: var(--giapha-primary) !important;
	letter-spacing: .03em;
}

@media (max-width: 720px) {
	.giapha-relation-list--parents {
		grid-template-columns: 1fr !important;
		max-width: none;
	}
}

/* GĐ8: liên kết đăng nhập và quyền riêng tư ở chân trang. */
.site-footer__privacy-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0}.site-footer__privacy-links a{color:inherit;text-decoration:none}.site-footer__privacy-links a:hover,.site-footer__privacy-links a:focus{text-decoration:underline}.giapha-privacy-notice{max-width:900px;margin:30px auto;border:1px solid var(--border-color,#dfd3c4);border-radius:18px;background:#fff;padding:clamp(24px,4vw,46px);text-align:center}.giapha-privacy-notice h2{margin-top:0}.giapha-privacy-notice__actions{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}.giapha-privacy-button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:11px 20px;background:var(--color-primary,#4b2e1f);color:#fff!important;text-decoration:none;font-weight:700}.giapha-member__privacy-actions{margin-top:24px;padding-top:18px;border-top:1px solid #e6ddd2}.giapha-member__privacy-actions a{font-weight:700}@media(max-width:700px){.site-footer__privacy-links{width:100%;justify-content:center}.giapha-privacy-notice__actions{display:grid}.giapha-privacy-notice__actions a{width:100%}}


/* GĐ6.10: trình bày song song ngày Âm – Dương và nguồn dữ liệu. */
.giapha-member__section--dates .giapha-member__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 28px;
}
.giapha-member__section--dates .giapha-member__row {
	min-width: 0;
}
.giapha-member__section--dates .giapha-member__row dt {
	color: var(--giapha-primary);
}
.giapha-member__section--dates .giapha-member__row--date-source dd {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	border-radius: 999px;
	padding: 4px 10px;
	background: rgba(179, 126, 55, .12);
	color: var(--giapha-primary);
	font-weight: 700;
}
@media (max-width: 760px) {
	.giapha-member__section--dates .giapha-member__grid {
		grid-template-columns: 1fr;
	}
}


/* GĐ6.11: form yêu cầu sửa/ẩn hiển thị ngay trong hồ sơ thành viên. */
.giapha-member__inline-request {
	margin-top: clamp(28px, 5vw, 54px);
	scroll-margin-top: 110px;
}
.giapha-member__inline-request .giapha-privacy-request {
	max-width: none;
	border: 1px solid var(--giapha-border);
	border-radius: 22px;
	background: var(--giapha-paper);
	padding: clamp(22px, 4vw, 42px);
}
.giapha-member__inline-request .giapha-privacy-request__intro h2 {
	font-family: var(--giapha-serif);
	color: var(--giapha-primary);
}
@media (max-width: 700px) {
	.giapha-member__inline-request .giapha-privacy-request {
		border-radius: 16px;
		padding: 18px;
	}
}

/* GĐ6.14: trình bày sơ đồ quan hệ trực hệ theo phong cách genealogy. */
.giapha-member__section--family-map {
	padding: clamp(22px, 3vw, 34px) !important;
	border: 1px solid var(--giapha-border) !important;
	border-radius: 18px !important;
	background: #fff !important;
}

.giapha-family-map__heading h3 {
	color: var(--giapha-primary);
	font-family: var(--giapha-serif);
}

.giapha-family-map__heading p,
.giapha-family-map__scroll-hint {
	color: var(--giapha-muted);
}

.giapha-family-map__viewport {
	border-color: #d9e0e4;
	border-radius: 12px;
	background: #edf2f5;
}

.giapha-family-map__tree {
	--giapha-family-line: #c5cfd6;
	--giapha-family-highlight: #b53829;
}

.giapha-family-map__card {
	border-color: rgba(61, 71, 78, .12);
	border-radius: 3px;
	box-shadow: 0 3px 12px rgba(49, 31, 19, .06);
}

.giapha-family-map__name {
	font-family: var(--giapha-sans);
	font-weight: 700;
}

.giapha-family-map__role {
	background: #d92d20;
}

.giapha-family-map__card--current {
	border-color: #b53829;
	box-shadow: 0 9px 24px rgba(116, 40, 31, .18);
}

.giapha-family-map__card--current .giapha-family-map__body {
	background: #b53829;
}

/* GĐ6.16: lịch sự kiện ở trên, danh sách 12 mục/trang và phân trang. */
.giapha-events-page--paginated {
	display: flex;
	flex-direction: column;
	gap: 34px;
}
.giapha-events-page--paginated .giapha-events-filter {
	margin: 0;
}
.giapha-events-page--paginated .giapha-events-calendar-section {
	order: 2;
}
.giapha-events-page--paginated .giapha-events-list-section {
	order: 3;
}
.giapha-theme-plugin-page--events .giapha-events-page--paginated .giapha-calendar-heading {
	margin-top: 0;
}
.giapha-events-list-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 18px;
}
.giapha-events-list-heading h2 {
	margin-bottom: 5px;
}
.giapha-events-list-heading p {
	margin: 0;
	color: var(--gp-muted, #667085);
	font-size: .94rem;
}
.giapha-calendar td.is-today {
	background: #fff8ed;
	box-shadow: inset 0 0 0 2px var(--giapha-accent);
}
.giapha-calendar td.is-today .giapha-calendar__day {
	background: var(--giapha-primary);
	color: #fff;
}
.giapha-calendar__more {
	color: var(--gp-muted, #667085);
	font-style: italic;
}
.giapha-events-pagination {
	display: flex;
	justify-content: center;
	margin-top: 34px;
}
.giapha-events-pagination .page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.giapha-events-pagination .page-numbers li {
	margin: 0;
}
.giapha-events-pagination a,
.giapha-events-pagination span {
	display: inline-flex;
	min-width: 42px;
	height: 42px;
	align-items: center;
	justify-content: center;
	padding: 0 13px;
	border: 1px solid var(--giapha-border, #ded7ce);
	border-radius: 999px;
	background: #fff;
	color: var(--giapha-primary);
	font-weight: 700;
	text-decoration: none;
}
.giapha-events-pagination a:hover,
.giapha-events-pagination a:focus-visible,
.giapha-events-pagination .current {
	border-color: var(--giapha-primary);
	background: var(--giapha-primary);
	color: #fff;
}
.giapha-events-filter__reset {
	align-self: end;
}

@media (max-width: 680px) {
	.giapha-events-page--paginated {
		gap: 26px;
	}
	.giapha-events-list-heading {
		align-items: flex-start;
	}
	.giapha-events-pagination a,
	.giapha-events-pagination span {
		min-width: 38px;
		height: 38px;
		padding-inline: 11px;
	}
}


/* GĐ6.18: danh sách sự kiện đồng bộ với tháng lịch và hiển thị ngày Âm. */
.giapha-events-page--monthly .giapha-events-calendar-section,
.giapha-events-page--monthly .giapha-events-list-section {
	width: 100%;
}
.giapha-calendar-legend {
	display: flex;
	justify-content: center;
	gap: 18px;
	margin: -5px 0 14px;
	font-size: .84rem;
	color: var(--gp-muted, #667085);
}
.giapha-calendar-legend span::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 6px;
	border-radius: 50%;
	vertical-align: 1px;
}
.giapha-calendar-legend__solar::before { background: var(--giapha-primary); }
.giapha-calendar-legend__lunar::before { background: #a46125; }
.giapha-calendar__date-pair {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
}
.giapha-calendar__lunar {
	font-size: .72rem;
	line-height: 1.2;
	font-weight: 650;
	color: #9a5d21;
	white-space: nowrap;
}
.giapha-events-page--monthly .giapha-events-list-heading h2 {
	max-width: none;
}
@media (max-width: 680px) {
	.giapha-calendar-legend { justify-content: flex-start; flex-wrap: wrap; gap: 8px 16px; }
	.giapha-calendar__lunar { font-size: .68rem; }
}

.history-layout--full { grid-template-columns: minmax(0, 1fr); }
