/**
 * Elementor-first global foundation.
 *
 * New Elementor pages, Gutenberg pages and WordPress posts inherit this
 * typography, link and button system without per-page CSS.
 */
:root {
	--ufa77-font-sans: "UFA77 Sans", "Noto Sans Thai", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--e-global-color-primary: #f7f8fb;
	--e-global-color-secondary: #b9c2d0;
	--e-global-color-text: #e3e7ee;
	--e-global-color-accent: #f4aa28;
	--e-global-typography-primary-font-family: "UFA77 Sans";
	--e-global-typography-secondary-font-family: "UFA77 Sans";
	--e-global-typography-text-font-family: "UFA77 Sans";
	--e-global-typography-accent-font-family: "UFA77 Sans";
}

#page,
#page button,
#page input,
#page select,
#page textarea,
.editor-styles-wrapper {
	font-family: var(--ufa77-font-sans);
	font-synthesis: none;
}

.site-header,
.site-footer,
.primary-navigation,
.entry-title,
.entry-content,
.entry-meta,
.entry-footer,
.widget,
.comment-content,
.comment-form,
.wp-block,
.wp-block-post-content {
	font-family: var(--ufa77-font-sans);
}

.site-header .primary-navigation a,
.site-footer a,
.entry-meta a,
.entry-footer a {
	font-weight: 500;
	letter-spacing: 0;
}

.entry-content,
.wp-block-post-content {
	color: var(--color-text-soft);
	font-size: clamp(1rem, 1vw + .75rem, 1.08rem);
	line-height: 1.8;
}

.entry-content :is(h1, h2, h3, h4, h5, h6),
.wp-block-post-content :is(h1, h2, h3, h4, h5, h6) {
	color: var(--color-text);
	font-family: var(--ufa77-font-sans);
	font-weight: 800;
	letter-spacing: -.018em;
	line-height: 1.22;
}

.entry-content h2,
.wp-block-post-content h2 {
	margin-block-start: 2.4em;
	font-size: clamp(1.6rem, 2.8vw, 2.3rem);
}

.entry-content h3,
.wp-block-post-content h3 {
	font-size: clamp(1.3rem, 2.1vw, 1.75rem);
}

.entry-content :is(a, a:visited),
.wp-block-post-content :is(a, a:visited) {
	color: var(--color-gold-bright);
	font-weight: 600;
	text-decoration-color: rgba(242, 196, 92, .55);
	text-decoration-thickness: .08em;
	text-underline-offset: .18em;
}

.entry-content :is(a:hover, a:focus-visible),
.wp-block-post-content :is(a:hover, a:focus-visible) {
	color: #ffe39b;
	text-decoration-color: currentColor;
}

.entry-content :is(ul, ol),
.wp-block-post-content :is(ul, ol) {
	padding-inline-start: 1.5rem;
}

.entry-content li + li,
.wp-block-post-content li + li {
	margin-block-start: .4rem;
}

#page .entry-content .wp-block-button__link,
#page .wp-block-button__link,
#page .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: .68rem 1.2rem;
	border: 1px solid transparent;
	border-radius: .55rem;
	background: var(--gradient-gold);
	color: #10141b;
	font-family: var(--ufa77-font-sans);
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: var(--shadow-gold);
	transition: transform var(--transition-fast), filter var(--transition-fast), box-shadow var(--transition-fast);
}

#page .entry-content .wp-block-button__link:hover,
#page .wp-block-button__link:hover,
#page .wp-element-button:hover {
	color: #10141b;
	filter: brightness(1.06);
	transform: translateY(-2px);
	box-shadow: 0 16px 34px rgba(217, 162, 62, .28);
}

#page .entry-content .is-style-outline .wp-block-button__link,
#page .wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(242, 196, 92, .78);
	background: transparent;
	color: var(--color-text);
	box-shadow: none;
}

.entry-content :is(.wp-block-quote, blockquote),
.wp-block-post-content :is(.wp-block-quote, blockquote) {
	margin-block: 1.75rem;
	padding: 1.2rem 1.35rem;
	border-inline-start: 3px solid var(--color-gold);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	background: linear-gradient(135deg, rgba(217, 162, 62, .12), rgba(13, 20, 33, .85));
	color: var(--color-text);
}

.entry-content .wp-block-table,
.wp-block-post-content .wp-block-table {
	overflow-x: auto;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
}

.entry-content .wp-block-table table,
.wp-block-post-content .wp-block-table table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
}

.entry-content .wp-block-table :is(th, td),
.wp-block-post-content .wp-block-table :is(th, td) {
	padding: .8rem 1rem;
	border-color: var(--color-border);
}

.entry-content .wp-block-table th,
.wp-block-post-content .wp-block-table th {
	color: var(--color-text);
	background: rgba(217, 162, 62, .1);
	font-weight: 700;
}

.entry-content :is(.wp-block-image img, .wp-block-gallery img),
.wp-block-post-content :is(.wp-block-image img, .wp-block-gallery img) {
	border-radius: var(--radius-sm);
}

.elementor .elementor-widget,
.elementor .elementor-widget-container,
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor :is(p, li, a, span),
.elementor .elementor-widget-button .elementor-button,
.elementor .elementor-heading-title {
	font-family: var(--ufa77-font-sans);
}

.elementor .elementor-widget-heading .elementor-heading-title {
	font-weight: 800;
	letter-spacing: -.018em;
	line-height: 1.2;
}

.elementor .elementor-widget-text-editor {
	color: var(--color-text-soft);
	line-height: 1.75;
}

.elementor .elementor-widget-text-editor a {
	color: var(--color-gold-bright);
	font-weight: 600;
	text-underline-offset: .18em;
}

.elementor .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	border-radius: .55rem;
	font-weight: 800;
	line-height: 1.2;
	transition: transform var(--transition-fast), filter var(--transition-fast), box-shadow var(--transition-fast);
}

.elementor .elementor-widget-button .elementor-button:hover,
.elementor .elementor-widget-button .elementor-button:focus-visible {
	transform: translateY(-2px);
	filter: brightness(1.06);
}

/*
 * Theme-owned Gutenberg layout baseline. WordPress's frontend block library
 * is deliberately not loaded, so posts stay visually consistent with pages
 * without gaining WordPress preset widths, colours or spacing.
 */
#page .entry-content .wp-block-columns,
#page .wp-block-post-content .wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 3vw, 2rem);
}

#page .entry-content .wp-block-column,
#page .wp-block-post-content .wp-block-column {
	min-width: 0;
	flex: 1 1 16rem;
}

#page .entry-content :is(.wp-block-gallery, .blocks-gallery-grid),
#page .wp-block-post-content :is(.wp-block-gallery, .blocks-gallery-grid) {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: .75rem;
	padding: 0;
	list-style: none;
}

#page .entry-content :is(.wp-block-gallery .blocks-gallery-item, .blocks-gallery-grid .blocks-gallery-item),
#page .wp-block-post-content :is(.wp-block-gallery .blocks-gallery-item, .blocks-gallery-grid .blocks-gallery-item) {
	width: auto;
	margin: 0;
}

#page .entry-content .wp-block-cover,
#page .wp-block-post-content .wp-block-cover {
	overflow: hidden;
	min-height: 18rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}

#page .entry-content .wp-block-separator,
#page .wp-block-post-content .wp-block-separator {
	max-width: 100%;
	margin-block: 2rem;
	border: 0;
	border-top: 1px solid var(--color-border);
}

/* Content blocks remain inside the page column. Hero slides use Elementor's
 * explicit Full Width setting instead of WordPress alignfull presets. */
#page .entry-content :is(.alignwide, .alignfull),
#page .wp-block-post-content :is(.alignwide, .alignfull) {
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
}

/* The logged-in WordPress toolbar remains WordPress UI, not theme UI. */
#wpadminbar,
#wpadminbar * {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Thai titles need natural tracking. Negative tracking designed for Latin
 * headings makes Thai vowels and tone marks look crowded on mobile. */
#page .elementor .elementor-heading-title,
#page .entry-content :is(h1, h2, h3, h4, h5, h6),
#page .wp-block-post-content :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--ufa77-font-sans) !important;
	font-synthesis: none;
	letter-spacing: 0 !important;
}

@media (max-width: 640px) {
	.entry-content,
	.wp-block-post-content {
		font-size: 1rem;
		line-height: 1.72;
	}

	.entry-content :is(h2, h3),
	.wp-block-post-content :is(h2, h3) {
		margin-block-start: 2em;
	}

	#page .entry-content .wp-block-button__link,
	#page .wp-block-button__link {
		width: 100%;
	}

	#page .entry-content .wp-block-columns,
	#page .wp-block-post-content .wp-block-columns {
		gap: 1rem;
	}
}
