/* =========================================================
   UMS Super Theme — base stylesheet
   Design tokens are CSS custom properties; the Customizer
   overrides them per-site via an inline <style> in wp_head().
   ========================================================= */

:root {
	--ust-color-topbar: #0a72d3;
	--ust-color-topbar-text: #ffffff;
	--ust-color-button-bg: #f76713;
	--ust-color-button-text: #ffffff;
	--ust-color-header-bg: #ffffff;
	--ust-color-nav-text: #1a1a1a;
	--ust-color-nav-text-hover: #0a72d3;
	--ust-color-link: #0a72d3;
	--ust-color-heading: #0d1b2a;
	--ust-color-body-text: #333333;
	--ust-color-footer-main-bg: #f76713;
	--ust-color-footer-main-text: #ffffff;
	--ust-color-footer-bottom-bg: #1f41c6;
	--ust-color-footer-bottom-text: #ffffff;
	--ust-color-page-title-bg: #f4f6f8;
	--ust-color-page-title-text: #0d1b2a;

	/* Page-chrome default — the plain area behind everything that isn't
	   inside a Customizer-colored band (header/footer/page-title above
	   are brand colors and intentionally never flip; this one does). */
	--ust-color-body-bg: #ffffff;

	--ust-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ust-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ust-font-size-base: 16px;

	--ust-container-width: 1600px;
	--ust-radius: 4px;

	/* Radius scale, all derived from the single Customizer-controlled
	   --ust-radius above so "Global Border Radius" actually reshapes
	   every corner on the site proportionally, not just the ones that
	   happened to reference --ust-radius directly. */
	--ust-radius-sm: calc(var(--ust-radius) * 0.5);
	--ust-radius-md: var(--ust-radius);
	--ust-radius-lg: calc(var(--ust-radius) * 2);
	--ust-radius-pill: 999px;

	/* Spacing scale — the standard for new components going forward.
	   Existing hardcoded paddings are intentionally left as they are:
	   retrofitting ~50 already-shipped, unreviewed components onto a new
	   scale risks visual regressions with no way to check them visually
	   here; new work should use these instead of another one-off value. */
	--ust-space-xs: 8px;
	--ust-space-sm: 16px;
	--ust-space-md: 24px;
	--ust-space-lg: 40px;
	--ust-space-xl: 64px;

	/* Shadow / elevation presets, all built on the one surface-shadow
	   color so dark mode (which already redefines that color) darkens
	   every elevation level automatically instead of needing three more
	   dark-mode overrides. */
	--ust-shadow-sm: 0 1px 2px var(--ust-surface-shadow);
	--ust-shadow-md: 0 4px 12px var(--ust-surface-shadow);
	--ust-shadow-lg: 0 12px 32px var(--ust-surface-shadow);

	/* Surface tokens for theme-owned components (cards, grids, tabs, sliders,
	   dropdown/mobile menus, modals). Kept separate from the Customizer brand
	   colors above so enabling dark mode can never fight a site owner's
	   chosen brand palette. */
	--ust-surface: #ffffff;
	--ust-surface-2: #f4f6f8;
	--ust-surface-border: #e6e6e6;
	--ust-surface-text: #1a1a1a;
	--ust-surface-text-muted: #6b7280;
	--ust-surface-shadow: rgba(0, 0, 0, .08);
}

/*
 * Dark mode, three states (see inc/dark-mode.php):
 *   1. No class on <html> at all → this media query alone decides, from
 *      the visitor's own OS setting.
 *   2. html.ust-light → forces the light values above even on a dark OS
 *      (the ":not(.ust-light)" guard below is what makes that work).
 *   3. html.ust-dark → forces these dark values even on a light OS.
 * Case 3 is a plain, unguarded rule below: it has no media query to lose
 * to, so it always wins regardless of the visitor's OS setting.
 */
@media (prefers-color-scheme: dark) {
	:root:not(.ust-light) {
		--ust-surface: #1b1f27;
		--ust-surface-2: #242933;
		--ust-surface-border: #333944;
		--ust-surface-text: #f0f2f5;
		--ust-surface-text-muted: #aab0bb;
		--ust-surface-shadow: rgba(0, 0, 0, .5);
		--ust-color-body-bg: #12151b;
		--ust-color-body-text: #dfe3ea;
		--ust-color-heading: #f0f2f5;
	}
}

:root.ust-dark {
	--ust-surface: #1b1f27;
	--ust-surface-2: #242933;
	--ust-surface-border: #333944;
	--ust-surface-text: #f0f2f5;
	--ust-surface-text-muted: #aab0bb;
	--ust-surface-shadow: rgba(0, 0, 0, .5);
	--ust-color-body-bg: #12151b;
	--ust-color-body-text: #dfe3ea;
	--ust-color-heading: #f0f2f5;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--ust-font-body);
	font-size: var(--ust-font-size-base);
	line-height: 1.65;
	color: var(--ust-color-body-text);
	background: var(--ust-color-body-bg);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ust-color-link); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ust-font-heading);
	color: var(--ust-color-heading);
	line-height: 1.25;
	margin: 0 0 .6em;
	font-weight: 700;
}
p { margin: 0 0 1.4em; }
ul, ol { padding-left: 1.4em; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; }
:focus-visible { outline: 3px solid var(--ust-color-topbar); outline-offset: 2px; }
.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0,0,0,0); border: 0;
}
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100000; background: var(--ust-surface); color: var(--ust-surface-text); padding: 10px 16px; }
.skip-link:focus { left: 10px; top: 10px; }

.ust-container {
	max-width: var(--ust-container-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

/* ---------- Buttons (shared) ---------- */
.ust-btn, .wp-block-button__link {
	display: inline-block;
	background: var(--ust-color-button-bg);
	color: var(--ust-color-button-text);
	padding: .7em 1.6em;
	border-radius: var(--ust-radius);
	font-weight: 600;
	border: none;
	cursor: pointer;
	transition: opacity .15s ease;
}
.ust-btn:hover, .wp-block-button__link:hover { opacity: .88; color: var(--ust-color-button-text); text-decoration: none; }

/* ---------- Top utility bar ---------- */
.ust-topbar {
	background: var(--ust-color-topbar);
	color: var(--ust-color-topbar-text);
}
.ust-topbar .ust-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 40px;
	padding-top: 6px;
	padding-bottom: 6px;
}
.ust-topbar-left { display: flex; align-items: center; gap: 12px; }
.ust-topbar-right { display: flex; align-items: center; gap: 16px; }
.ust-topbar .ust-btn { padding: .4em 1.2em; font-size: .9rem; }
.ust-topbar-search-toggle {
	background: none; border: none; color: inherit; cursor: pointer; font-size: 1rem; padding: 4px;
}

/* ---------- Dark mode toggle ---------- */
.ust-dark-toggle {
	background: none; border: none; color: inherit; cursor: pointer; font-size: 1rem; padding: 4px;
	display: inline-flex; align-items: center;
}
.ust-dark-toggle__icon { display: flex; }
.ust-dark-toggle__icon--sun { display: none; }
:root.ust-dark .ust-dark-toggle__icon--moon { display: none; }
:root.ust-dark .ust-dark-toggle__icon--sun { display: flex; }
@media (prefers-color-scheme: dark) {
	:root:not(.ust-light) .ust-dark-toggle__icon--moon { display: none; }
	:root:not(.ust-light) .ust-dark-toggle__icon--sun { display: flex; }
}
.ust-social-icons { display: flex; align-items: center; gap: 10px; list-style: none; margin: 0; padding: 0; }
.ust-social-icons a {
	color: var(--ust-color-topbar-text);
	width: 28px; height: 28px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	font-size: .85rem;
}
.ust-social-icons a:hover { opacity: .8; text-decoration: none; }

.ust-topbar-search {
	display: none;
	background: rgba(0,0,0,.08);
}
.ust-topbar-search.is-open { display: block; }
.ust-topbar-search form {
	display: flex;
	max-width: var(--ust-container-width);
	margin: 0 auto;
	padding: 10px 24px;
}
.ust-topbar-search input[type="search"] {
	flex: 1;
	padding: .5em .8em;
	border: none;
	border-radius: var(--ust-radius) 0 0 var(--ust-radius);
}
.ust-topbar-search button {
	border: none;
	background: var(--ust-color-button-bg);
	color: var(--ust-color-button-text);
	padding: 0 1.2em;
	border-radius: 0 var(--ust-radius) var(--ust-radius) 0;
	cursor: pointer;
}

/* ---------- Main header ---------- */
.ust-header {
	background: var(--ust-color-header-bg);
	border-bottom: 1px solid rgba(0,0,0,.06);
}
.ust-header .ust-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding-top: 14px;
	padding-bottom: 14px;
}
.ust-branding { display: flex; align-items: center; gap: 14px; min-width: 0; }
.ust-branding img.ust-logo { max-width: 64px; width: 100%; height: auto; flex-shrink: 0; }
.ust-logo-wrap img { width: var(--ust-logo-width, 200px); max-width: 100%; height: auto; flex-shrink: 0; }
.ust-branding-text { min-width: 0; }
.ust-site-title { font-size: 1.4rem; margin: 0; line-height: 1.2; }
.ust-site-title a { color: var(--ust-color-heading); text-decoration: none; }
.ust-site-tagline { margin: 2px 0 0; font-size: .85rem; color: var(--ust-color-body-text); letter-spacing: .02em; }

/* ---------- Primary nav ---------- */
.ust-primary-nav { display: flex; }
.ust-menu {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
}
.ust-menu li { position: relative; }
.ust-menu a {
	display: block;
	padding: 10px 14px;
	color: var(--ust-color-nav-text);
	font-weight: 600;
	font-size: .95rem;
	text-decoration: none;
	white-space: nowrap;
}
.ust-menu > li > a:hover, .ust-menu > li.current-menu-item > a { color: var(--ust-color-nav-text-hover); }
.ust-menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%; left: 0;
	background: var(--ust-surface);
	min-width: 220px;
	box-shadow: 0 10px 30px var(--ust-surface-shadow);
	border-radius: var(--ust-radius);
	padding: 8px 0;
	z-index: 50;
	list-style: none;
	margin: 0;
}
.ust-menu li:hover > .sub-menu,
.ust-menu li.ust-submenu-open > .sub-menu { display: block; }
.ust-menu .sub-menu a { padding: 8px 18px; color: var(--ust-surface-text); font-weight: 500; }
.ust-menu .menu-item-has-children > a::after { content: "\25BE"; margin-left: 6px; font-size: .7em; }

.ust-mobile-toggle {
	display: none;
	background: none;
	border: 2px solid var(--ust-color-nav-text);
	color: var(--ust-color-nav-text);
	border-radius: var(--ust-radius);
	padding: 8px 12px;
	font-size: 1.1rem;
	cursor: pointer;
}

/* ---------- Page title / banner ---------- */
.ust-page-title {
	background: var(--ust-color-page-title-bg);
	padding: 26px 0;
	text-align: center;
}
.ust-page-title h1 { margin: 0; font-size: 1.9rem; color: var(--ust-color-page-title-text); }

/* ---------- Colored section banner (block style for core Group) ---------- */
.is-style-ust-banner {
	padding: 22px 24px;
	text-align: center;
}
.is-style-ust-banner h1, .is-style-ust-banner h2, .is-style-ust-banner h3,
.is-style-ust-banner p { color: #fff; margin: 0; }

/* ---------- Logo / card grid (block style for core Gallery/Columns) ---------- */
.is-style-ust-logo-grid.wp-block-gallery {
	gap: 16px;
}
.is-style-ust-logo-grid .wp-block-image {
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	background: var(--ust-surface);
}
.is-style-ust-logo-grid .wp-block-image img { object-fit: contain; max-height: 110px; width: auto; margin: 0 auto; }

/* ---------- Pill buttons (block style for core Button/Buttons) ---------- */
.is-style-ust-pill .wp-block-button__link,
.wp-block-button.is-style-ust-pill .wp-block-button__link { border-radius: 999px; }

/* ---------- Hard shadow button (block style for core Button) ---------- */
.is-style-ust-hard-shadow .wp-block-button__link {
	box-shadow: 5px 5px 0 var(--ust-color-heading);
	transition: transform .15s ease, box-shadow .15s ease;
}
.is-style-ust-hard-shadow .wp-block-button__link:hover {
	transform: translate(-2px, -2px);
	box-shadow: 7px 7px 0 var(--ust-color-heading);
}

/* ---------- Framed image (block style for core Image) ---------- */
.is-style-ust-framed img {
	border: 8px solid #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,.12);
}

/* ---------- Underline accent heading (block style for core Heading) ---------- */
.is-style-ust-underline-accent {
	display: inline-block;
	padding-bottom: .3em;
	border-bottom: 4px solid var(--ust-color-button-bg);
}

/* ---------- Card quote (block style for core Quote) ---------- */
.is-style-ust-card.wp-block-quote {
	background: var(--ust-surface-2);
	color: var(--ust-surface-text);
	border: none;
	border-left: 4px solid var(--ust-color-topbar);
	border-radius: var(--ust-radius);
	padding: 1.4em 1.8em;
	margin: 0 0 1.6em;
}

/* ---------- Card columns (block style for core Columns) ---------- */
.is-style-ust-card-columns.wp-block-columns > .wp-block-column {
	background: var(--ust-surface);
	color: var(--ust-surface-text);
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	padding: 1.6em;
	box-shadow: 0 1px 3px var(--ust-surface-shadow);
}
@media (max-width: 600px) {
	.is-style-ust-card-columns.wp-block-columns > .wp-block-column { padding: 1.2em; }
}

/* ---------- Post grid / carousel (replacement for essential-blocks/post-grid) ---------- */
.ust-post-grid { margin: 0 0 1.6em; }
.ust-post-grid__track {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}
@media (max-width: 782px) { .ust-post-grid__track { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 500px) { .ust-post-grid__track { grid-template-columns: 1fr; } }

/* Carousel layout: .eb-slider-init (shared class) switches the track to a
   flex row that assets/js/legacy-interactive-blocks.js's generic carousel
   engine slides — same engine the image Slider block already uses. */
.ust-post-grid.eb-slider-wrapper .eb-slider-init {
	display: flex;
	gap: 20px;
}
.ust-post-grid.eb-slider-wrapper .ust-post-grid__item.eb-slider-item {
	display: flex;
	flex-direction: column;
}
.ust-post-grid.eb-slider-wrapper .ust-post-grid__thumb { flex-shrink: 0; }

.ust-post-grid__item {
	display: block;
	background: var(--ust-surface);
	border-radius: var(--ust-radius);
	overflow: hidden;
	box-shadow: 0 1px 3px var(--ust-surface-shadow);
	transition: box-shadow .2s ease, transform .2s ease;
}
.ust-post-grid__item:hover { box-shadow: 0 6px 16px var(--ust-surface-shadow); transform: translateY(-2px); text-decoration: none; }
.ust-post-grid__thumb { aspect-ratio: 16/10; overflow: hidden; }
.ust-post-grid__thumb img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ust-post-grid__body { padding: 16px 18px 20px; }
.ust-post-grid__title { font-size: 1.05rem; margin: 0 0 .4em; color: var(--ust-surface-text); }
.ust-post-grid__meta { font-size: .85rem; color: var(--ust-surface-text-muted); }

/* ---------- Legacy tabs/slider behaviour (assets/js/legacy-interactive-blocks.js) ---------- */
.eb-tabs-nav ul.tabTitles { list-style: none; display: flex; flex-wrap: wrap; margin: 0; padding: 0; }
.eb-tabs-nav ul.tabTitles li { cursor: pointer; }
.ust-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	background: rgba(0,0,0,.45);
	color: #fff;
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ust-slider-arrow:hover { background: rgba(0,0,0,.7); }
.ust-slider-arrow--prev { left: 10px; }
.ust-slider-arrow--next { right: 10px; }
@media (max-width: 600px) {
	.ust-slider-arrow { width: 44px; height: 44px; font-size: 1.5rem; }
}

/* ---------- Google map (replacement for uagb/google-map) ---------- */
.ust-google-map { position: relative; width: 100%; aspect-ratio: 16/9; }
.ust-google-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Scroll entrance animations (assets/js/scroll-animations.js) ---------- */
.ust-animate { transition-property: opacity, transform; transition-timing-function: ease-out; }
.ust-animate--fade-in { opacity: 0; }
.ust-animate--slide-up { opacity: 0; transform: translateY(40px); }
.ust-animate--slide-left { opacity: 0; transform: translateX(40px); }
.ust-animate--slide-right { opacity: 0; transform: translateX(-40px); }
.ust-animate--zoom-in { opacity: 0; transform: scale(.9); }
.ust-animate.ust-animate-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.ust-animate { transition: none !important; opacity: 1 !important; transform: none !important; }
}

/* ---------- Video facade (assets/js/video-facade.js) ---------- */
.ust-video-facade {
	position: relative;
	width: 100%;
	aspect-ratio: 16/9;
	background: #000;
	cursor: pointer;
	overflow: hidden;
	border-radius: var(--ust-radius);
}
.ust-video-facade__thumb { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; opacity: .85; }
.ust-video-facade__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: none;
	background: rgba(0,0,0,.6);
	color: #fff;
	font-size: 1.4rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 4px;
}
.ust-video-facade__play:hover { background: var(--ust-color-topbar); }
.ust-video-facade__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Client logo grid ([ust_clients]) ---------- */
.ust-client-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	padding: 40px 0;
}
.ust-client-logo {
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	background: var(--ust-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	min-height: 110px;
}
.ust-client-logo img { max-height: 90px; width: auto; object-fit: contain; }

/* ---------- Photo galleries ([ust_photo_galleries]) ---------- */
.ust-gallery-section { margin-bottom: 0; }
.ust-gallery-banner { padding: 22px 24px; text-align: center; }
.ust-gallery-banner h2 { color: #fff; margin: 0; font-size: 1.4rem; }
.ust-gallery-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4px;
	background: var(--ust-surface-2);
}
.ust-gallery-row img { width: 100%; height: 260px; object-fit: cover; }

/* Masonry: CSS multi-column instead of a fixed-height grid, so each
   photo keeps its own natural aspect ratio and packs tightly - no JS
   layout library needed for this. */
.ust-gallery-row--masonry {
	display: block; column-count: 4; column-gap: 4px;
}
.ust-gallery-row--masonry a { display: block; break-inside: avoid; margin-bottom: 4px; }
.ust-gallery-row--masonry img { width: 100%; height: auto; display: block; }
@media (max-width: 960px) { .ust-gallery-row--masonry { column-count: 2; } }
@media (max-width: 600px) { .ust-gallery-row--masonry { column-count: 1; } }

/* ---------- Video grid ([ust_videos]) ---------- */
.ust-video-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
	padding: 40px 0;
}
.ust-video-item h3 { margin-bottom: 12px; }
.ust-video-item iframe, .ust-video-item .wp-embed-responsive .wp-block-embed__wrapper { width: 100%; aspect-ratio: 16/9; }
.ust-video-item iframe { border: 0; border-radius: var(--ust-radius); }

@media (max-width: 960px) {
	.ust-client-grid { grid-template-columns: repeat(3, 1fr); }
	.ust-gallery-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.ust-client-grid { grid-template-columns: repeat(2, 1fr); }
	.ust-gallery-row { grid-template-columns: 1fr; }
	.ust-video-grid { grid-template-columns: 1fr; }
}

/* ---------- Hero slider ---------- */
.ust-hero-slider { position: relative; overflow: hidden; background: #0d1b2a; min-height: 320px; }
.ust-hero-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	z-index: 1;
	transition: opacity 1s ease;
}
.ust-hero-slide.is-active { opacity: 1; visibility: visible; z-index: 2; }
.ust-hero-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.4) 45%, rgba(0,0,0,.05) 80%);
}
.ust-hero-align-right .ust-hero-slide::after {
	background: linear-gradient(270deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.4) 45%, rgba(0,0,0,.05) 80%);
}
.ust-hero-align-center .ust-hero-slide::after {
	background: radial-gradient(ellipse at center, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.05) 85%);
}
.ust-hero-slide-bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform 6s ease-out, opacity 1s ease;
}
.ust-hero-slide-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.ust-hero-slide > .ust-container { position: relative; z-index: 2; display: flex; }
.ust-hero-align-left .ust-hero-slide > .ust-container { justify-content: flex-start; }
.ust-hero-align-center .ust-hero-slide > .ust-container { justify-content: center; }
.ust-hero-align-right .ust-hero-slide > .ust-container { justify-content: flex-end; }
.ust-hero-slide-inner { color: #fff; max-width: 640px; padding: 60px 24px; transition: opacity .8s ease .2s, transform .8s ease .2s; }
.ust-hero-align-left .ust-hero-slide-inner { text-align: left; }
.ust-hero-align-center .ust-hero-slide-inner { text-align: center; }
.ust-hero-align-right .ust-hero-slide-inner { text-align: right; }
.ust-hero-slide-inner h2 { color: #fff; font-size: 2.2rem; }
.ust-hero-slide-inner p { color: #f1f1f1; font-size: 1.1rem; }

/* Transition styles (Customizer: Transition Style) */
.ust-bg-anim-fade .ust-hero-slide-bg { transform: none; transition: opacity 1s ease; }
.ust-bg-anim-blend .ust-hero-slide-bg { transform: scale(1); transition: transform 8s ease-out, opacity 1.2s ease; }
.ust-bg-anim-blend .ust-hero-slide.is-active .ust-hero-slide-bg { transform: scale(1.04); }
.ust-bg-anim-zoom .ust-hero-slide-bg,
.ust-bg-anim-slide-zoom .ust-hero-slide-bg { transform: scale(1); }
.ust-bg-anim-zoom .ust-hero-slide.is-active .ust-hero-slide-bg,
.ust-bg-anim-slide-zoom .ust-hero-slide.is-active .ust-hero-slide-bg { transform: scale(1.12); }
.ust-bg-anim-none .ust-hero-slide-bg { transition: none; }

/* Slide (carousel push) transition styles: JS drives translateX on
   .ust-hero-slide directly, so every slide stays visible/in-place and
   .ust-hero-slider's overflow:hidden clips whichever ones are parked
   off-canvas — no opacity crossfade needed for these two variants. */
.ust-bg-anim-slide .ust-hero-slide,
.ust-bg-anim-slide-zoom .ust-hero-slide {
	opacity: 1;
	visibility: visible;
	transition: transform .9s cubic-bezier(.45,0,.2,1);
}
.ust-bg-anim-slide .ust-hero-slide.is-active,
.ust-bg-anim-slide-zoom .ust-hero-slide.is-active {
	z-index: 2;
}

/* Text animation variants (Customizer: Text Animation) — start slightly
   after the background so both move in sync but stay visually distinct. */
.ust-text-anim-fade-up .ust-hero-slide:not(.is-active) .ust-hero-slide-inner { opacity: 0; transform: translateY(26px); }
.ust-text-anim-fade-in .ust-hero-slide:not(.is-active) .ust-hero-slide-inner { opacity: 0; }
.ust-text-anim-slide-left .ust-hero-slide:not(.is-active) .ust-hero-slide-inner { opacity: 0; transform: translateX(40px); }
.ust-text-anim-slide-right .ust-hero-slide:not(.is-active) .ust-hero-slide-inner { opacity: 0; transform: translateX(-40px); }
.ust-text-anim-zoom .ust-hero-slide:not(.is-active) .ust-hero-slide-inner { opacity: 0; transform: scale(.85); }
.ust-text-anim-none .ust-hero-slide-inner { transition: none; }
.ust-hero-slide.is-active .ust-hero-slide-inner { opacity: 1; transform: none; }
.ust-hero-dots { position: absolute; z-index: 3; bottom: 18px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.ust-hero-dots button {
	width: 10px; height: 10px; border-radius: 50%;
	border: none; background: rgba(255,255,255,.5); cursor: pointer; padding: 0;
}
.ust-hero-dots button.is-active { background: #fff; }
.ust-hero-arrow {
	position: absolute; z-index: 3; top: 50%; transform: translateY(-50%);
	background: rgba(0,0,0,.35); color: #fff; border: none;
	width: 40px; height: 40px; border-radius: 50%; cursor: pointer; font-size: 1.1rem;
}
.ust-hero-arrow.is-prev { left: 16px; }
.ust-hero-arrow.is-next { right: 16px; }

@media (prefers-reduced-motion: reduce) {
	/* Kill the animated hand-off, but leave positioning transforms alone —
	   in the "slide" transition styles, transform is what parks slides
	   on/off screen, not just decoration. */
	.ust-hero-slide,
	.ust-hero-slide-bg,
	.ust-hero-slide-inner {
		transition: none !important;
	}
	.ust-bg-anim-zoom .ust-hero-slide-bg,
	.ust-bg-anim-blend .ust-hero-slide-bg,
	.ust-bg-anim-slide-zoom .ust-hero-slide-bg {
		transform: none !important;
	}
}

/* ---------- Contact page band ---------- */
.ust-contact-band { background: var(--ust-color-footer-bottom-bg); color: #fff; padding: 50px 0; margin-top: 20px; }
.ust-contact-band h2 { color: #fff; }
.ust-contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; }
.ust-contact-map iframe { width: 100%; height: 360px; border: 0; border-radius: var(--ust-radius); }
.ust-contact-info a { color: #fff; text-decoration: underline; }
@media (max-width: 782px) {
	.ust-contact-grid { grid-template-columns: 1fr; }
}

/* ---------- Footer ---------- */
.ust-footer-main { background: var(--ust-color-footer-main-bg); color: var(--ust-color-footer-main-text); padding: 44px 0; }
.ust-footer-main a { color: var(--ust-color-footer-main-text); }
.ust-footer-columns {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}
.ust-footer-columns h3 { color: var(--ust-color-footer-main-text); font-size: 1.1rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 16px; }
.ust-footer-columns ul { list-style: none; margin: 0; padding: 0; }
.ust-footer-columns li { margin-bottom: 8px; }
.ust-footer-bottom { background: var(--ust-color-footer-bottom-bg); color: var(--ust-color-footer-bottom-text); padding: 14px 0; text-align: center; font-size: .9rem; }
.ust-footer-bottom a { color: var(--ust-color-footer-bottom-text); text-decoration: underline; }

/* ---------- Blog listing / single ---------- */
.ust-content-area { padding: 48px 0; }
.ust-entry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.ust-entry-card { border: 1px solid #eee; border-radius: var(--ust-radius); overflow: hidden; }
.ust-entry-card img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.ust-entry-card-body { padding: 16px; }
.ust-entry-card h2 { font-size: 1.15rem; }
.ust-entry-meta { color: #777; font-size: .82rem; margin-bottom: 10px; }
.ust-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 40px; }
.ust-pagination a, .ust-pagination span { padding: 8px 14px; border: 1px solid #ddd; border-radius: var(--ust-radius); }

.ust-single-entry { max-width: 860px; margin: 0 auto; }
.ust-single-entry .ust-entry-meta { margin-bottom: 20px; }
.ust-single-entry img { border-radius: var(--ust-radius); }
.ust-single-entry .wp-block-image { margin: 1.6em 0; }

/* ---------- Comments ---------- */
.ust-comments { max-width: 860px; margin: 40px auto 0; }
.ust-comments ol.comment-list { list-style: none; margin: 0; padding: 0; }
.ust-comments .comment-body { border: 1px solid #eee; border-radius: var(--ust-radius); padding: 16px; margin-bottom: 16px; }
.ust-comments .comment-form input,
.ust-comments .comment-form textarea { width: 100%; padding: .6em .8em; border: 1px solid #ddd; border-radius: var(--ust-radius); margin-bottom: 12px; }

/* ---------- Forms ---------- */
.ust-search-form { display: flex; gap: 8px; }
.ust-search-form input[type="search"] { flex: 1; padding: .6em .8em; border: 1px solid #ddd; border-radius: var(--ust-radius); }

/* ---------- WhatsApp floating button ---------- */
.ust-whatsapp-button {
	position: fixed;
	bottom: 20px;
	z-index: 9000;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #25D366;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.ust-whatsapp-button:hover { opacity: .92; text-decoration: none; }
.ust-whatsapp-button.is-right { right: 20px; }
.ust-whatsapp-button.is-left { left: 20px; }

/* ---------- Mobile bottom navigation ---------- */
.ust-bottom-nav {
	display: none;
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 8000;
	background: var(--ust-surface);
	border-top: 1px solid var(--ust-surface-border);
	box-shadow: 0 -4px 16px var(--ust-surface-shadow);
}
.ust-bottom-nav a {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 8px 4px 10px;
	color: var(--ust-color-nav-text);
	text-decoration: none;
	font-size: .68rem;
	font-weight: 600;
}
.ust-bottom-nav a:hover { color: var(--ust-color-nav-text-hover); text-decoration: none; }
body.ust-has-bottom-nav { padding-bottom: 62px; }

/* ---------- Downloads list ---------- */
.ust-downloads-list { list-style: none; margin: 0; padding: 0; }
.ust-downloads-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid #eee;
	border-radius: var(--ust-radius);
	margin-bottom: 10px;
	flex-wrap: wrap;
}
.ust-download-btn { padding: .4em 1.2em; font-size: .9rem; }

/* ---------- Responsive ---------- */
@media (max-width: 782px) {
	.ust-bottom-nav { display: flex; }
	.ust-whatsapp-button { bottom: 74px; width: 50px; height: 50px; }
}

@media (max-width: 960px) {
	.ust-footer-columns { grid-template-columns: 1fr 1fr; }
	.ust-entry-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 782px) {
	.ust-topbar .ust-container { flex-wrap: wrap; }
	.ust-mobile-toggle { display: inline-flex; align-items: center; gap: 8px; }
	.ust-primary-nav {
		display: none;
		position: absolute;
		left: 0; right: 0; top: 100%;
		background: var(--ust-surface);
		box-shadow: 0 12px 24px var(--ust-surface-shadow);
		z-index: 60;
	}
	.ust-primary-nav.is-open { display: block; }
	.ust-header .ust-container { position: relative; flex-wrap: wrap; }
	.ust-menu { flex-direction: column; align-items: stretch; padding: 10px 0; }
	.ust-menu .sub-menu { position: static; box-shadow: none; display: none; padding-left: 14px; }
	.ust-menu li.ust-submenu-open > .sub-menu { display: block; }
	.ust-footer-columns { grid-template-columns: 1fr; }
	.ust-entry-grid { grid-template-columns: 1fr; }
	.ust-hero-slide-inner h2 { font-size: 1.6rem; }
}

/* =========================================================
   Header Builder
   ========================================================= */
.ust-header-layout-logo-center .ust-header .ust-container { flex-direction: column; gap: 12px; }
.ust-header-layout-logo-center .ust-branding { justify-content: center; }
.ust-header-layout-logo-center .ust-primary-nav { width: 100%; justify-content: center; }
.ust-header-layout-logo-center .ust-menu { justify-content: center; }

.ust-header-sticky #ust-masthead { position: sticky; top: 0; z-index: 200; }
.ust-header-transparent:not(.ust-scrolled) #ust-masthead {
	position: absolute;
	left: 0; right: 0; top: 0;
	background: transparent;
	border-bottom-color: transparent;
}
.ust-header-transparent:not(.ust-scrolled) .ust-header { background: transparent; border-bottom-color: transparent; }
.ust-header-transparent:not(.ust-scrolled) .ust-site-title a,
.ust-header-transparent:not(.ust-scrolled) .ust-menu a,
.ust-header-transparent:not(.ust-scrolled) .ust-mobile-toggle { color: #fff; border-color: #fff; }
.ust-header-transparent.ust-scrolled #ust-masthead { position: relative; }

.ust-header-hide-on-scroll #ust-masthead { position: sticky; top: 0; z-index: 200; transition: transform .25s ease; }
.ust-header-hide-on-scroll.ust-header-hidden #ust-masthead { transform: translateY(-100%); }

/* Off-canvas mobile menu — reuses the exact same .is-open toggle the
   dropdown style already relies on (assets/js/navigation.js); only the
   panel's own position/size/transition differ, so no JS changes needed
   for this to work correctly. */
@media (max-width: 782px) {
	.ust-mobile-menu-offcanvas .ust-primary-nav {
		display: block; position: fixed; top: 0; right: 0; bottom: 0; left: auto;
		width: 300px; max-width: 85vw; box-shadow: -8px 0 24px rgba(0,0,0,.2);
		transform: translateX(100%); transition: transform .25s ease; overflow-y: auto;
		background: var(--ust-surface); padding: 70px 20px 20px;
	}
	.ust-mobile-menu-offcanvas .ust-primary-nav.is-open { transform: translateX(0); }
	.ust-mobile-menu-offcanvas .ust-menu { flex-direction: column; align-items: stretch; padding: 0; }
}

/* =========================================================
   Menu Booster — mega menu
   ========================================================= */
.ust-menu li.ust-mega-menu > .sub-menu {
	display: none;
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translateX(-50%);
	width: max-content;
	min-width: 480px;
	max-width: min(96vw, var(--ust-container-width));
	padding: 20px;
	gap: 8px 24px;
}
.ust-menu li.ust-mega-menu:hover > .sub-menu,
.ust-menu li.ust-mega-menu.ust-submenu-open > .sub-menu { display: grid; }
.ust-menu a[data-mega-columns="2"] + .sub-menu { grid-template-columns: repeat(2, 1fr); }
.ust-menu a[data-mega-columns="3"] + .sub-menu { grid-template-columns: repeat(3, 1fr); }
.ust-menu a[data-mega-columns="4"] + .sub-menu { grid-template-columns: repeat(4, 1fr); }
.ust-menu a[data-mega-columns="5"] + .sub-menu { grid-template-columns: repeat(5, 1fr); }
.ust-menu li.ust-mega-menu .sub-menu li { width: 100%; }
@media (max-width: 782px) {
	.ust-menu li.ust-mega-menu > .sub-menu { display: none; position: static; transform: none; grid-template-columns: 1fr !important; min-width: 0; padding-left: 14px; }
	.ust-menu li.ust-mega-menu.ust-submenu-open > .sub-menu { display: grid; }
}

/* =========================================================
   Breadcrumbs
   ========================================================= */
.ust-breadcrumbs { margin-bottom: 10px; font-size: .85rem; }
.ust-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.ust-breadcrumbs li { display: flex; align-items: center; gap: 6px; }
.ust-breadcrumbs a { color: var(--ust-color-page-title-text); opacity: .7; }
.ust-breadcrumbs a:hover { opacity: 1; }
.ust-breadcrumbs [aria-current="page"] { opacity: .9; }
.ust-breadcrumb-sep { opacity: .5; }

/* =========================================================
   Blog Booster
   ========================================================= */
.ust-entry-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.ust-entry-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.ust-entry-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.ust-entry-grid--list { grid-template-columns: 1fr; }
.ust-entry-grid--list .ust-entry-card { display: grid; grid-template-columns: 240px 1fr; gap: 20px; }
.ust-entry-grid--list .ust-entry-card img { height: 100%; aspect-ratio: auto; }
.ust-entry-author { margin-left: 6px; }
.ust-entry-author::before { content: "·"; margin-right: 6px; }
.ust-entry-categories { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--ust-color-topbar); margin: 0 0 6px; }

.ust-related-posts { margin-top: 56px; padding-top: 40px; border-top: 1px solid #eee; }
.ust-related-posts h2 { text-align: center; margin-bottom: 24px; }

.ust-author-box {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	max-width: 860px;
	margin: 30px auto 0;
	padding: 20px;
	background: var(--ust-surface-2);
	border-radius: var(--ust-radius);
}
.ust-author-box img { border-radius: 50%; flex-shrink: 0; }
.ust-author-box-name { font-weight: 700; margin: 0 0 6px; color: var(--ust-color-heading); }
.ust-author-box-bio { margin: 0; color: var(--ust-surface-text-muted); font-size: .92rem; }

@media (max-width: 600px) {
	.ust-entry-grid--list .ust-entry-card { grid-template-columns: 1fr; }
}

/* =========================================================
   Footer Builder
   ========================================================= */
.ust-footer-columns--1 { grid-template-columns: 1fr; }
.ust-footer-columns--2 { grid-template-columns: repeat(2, 1fr); }
.ust-footer-columns--3 { grid-template-columns: repeat(3, 1fr); }
.ust-footer-columns--4 { grid-template-columns: repeat(4, 1fr); }
.ust-footer-columns--boxed .ust-footer-column {
	background: rgba(255,255,255,.06);
	border-radius: var(--ust-radius);
	padding: 20px;
}

.ust-back-to-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 8500;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: none;
	background: var(--ust-color-topbar);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
	box-shadow: 0 4px 14px rgba(0,0,0,.2);
}
.ust-back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
@media (max-width: 782px) {
	.ust-back-to-top { bottom: 74px; }
}

/* =========================================================
   WooCommerce Booster
   ========================================================= */
.woocommerce ul.products {
	display: grid;
	gap: 28px;
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
}
.woocommerce ul.products li.product {
	position: relative;
	background: var(--ust-surface);
	border-radius: var(--ust-radius);
	overflow: hidden;
	box-shadow: 0 1px 3px var(--ust-surface-shadow);
}
.woocommerce ul.products li.product img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.woocommerce ul.products li.product .ust-hover-image {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .25s ease;
}
.woocommerce ul.products li.product:hover .ust-hover-image { opacity: 1; }

.woocommerce span.onsale {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
	background: var(--ust-color-button-bg);
	color: var(--ust-color-button-text);
	padding: .3em .8em;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
}
.ust-badge-new {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	background: var(--ust-color-heading);
	color: #fff;
	padding: .3em .8em;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
}

.ust-wishlist-btn {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: none;
	background: rgba(255,255,255,.9);
	color: var(--ust-surface-text);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.ust-badge-new ~ .ust-wishlist-btn,
span.onsale ~ .ust-wishlist-btn { top: 52px; }
.ust-wishlist-btn.is-active { color: #e0245e; }
.ust-wishlist-btn:hover { background: #fff; }

.ust-quickview-btn {
	display: block;
	width: calc(100% - 32px);
	margin: 0 16px 16px;
	padding: .6em 1em;
	background: var(--ust-surface-2);
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	cursor: pointer;
	font-weight: 600;
	font-size: .85rem;
}
.ust-quickview-btn:hover { background: var(--ust-color-button-bg); color: var(--ust-color-button-text); border-color: transparent; }

.ust-quickview-modal { position: fixed; inset: 0; z-index: 9500; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ust-quickview-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.ust-quickview-dialog {
	position: relative;
	background: var(--ust-surface);
	color: var(--ust-surface-text);
	border-radius: var(--ust-radius);
	max-width: 780px;
	width: 100%;
	max-height: 90vh;
	overflow: auto;
	padding: 30px;
}
.ust-quickview-close { position: absolute; top: 10px; right: 14px; background: none; border: none; font-size: 1.6rem; cursor: pointer; line-height: 1; }
.ust-quickview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.ust-quickview-image img { width: 100%; border-radius: var(--ust-radius); }
@media (max-width: 600px) {
	.ust-quickview-inner { grid-template-columns: 1fr; }
}

.ust-sticky-cart {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 8200;
	background: var(--ust-surface);
	border-top: 1px solid var(--ust-surface-border);
	box-shadow: 0 -4px 16px var(--ust-surface-shadow);
}
.ust-sticky-cart-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 24px; }
.ust-sticky-cart-name { font-weight: 700; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 600px) {
	.ust-sticky-cart-name { display: none; }
}

/* =========================================================
   Particles & Animated Backgrounds
   ========================================================= */
.ust-particles-fixed {
	position: fixed;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
}
.ust-particles-canvas {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	display: block;
}
/* Hero already has position:relative + overflow:hidden (see Hero slider
   rules above), so the canvas just needs to sit above the dark overlay
   (z-index 1) and below the slide text (z-index 2). */

@keyframes ustGradientShift {
	0%   { background-position: 0% 50%; }
	50%  { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}
body.ust-bg-effect-animated-gradient.ust-bg-location-site-wide {
	background: linear-gradient(120deg, var(--ust-bg-color-1, #fff), var(--ust-bg-color-2, #0a72d3), var(--ust-bg-color-1, #fff));
	background-size: 200% 200%;
	animation: ustGradientShift var(--ust-bg-speed, 10s) ease infinite;
}
body.ust-bg-effect-animated-gradient.ust-bg-location-hero .ust-hero-slider {
	background: linear-gradient(120deg, var(--ust-bg-color-1, #fff), var(--ust-bg-color-2, #0a72d3), var(--ust-bg-color-1, #fff));
	background-size: 200% 200%;
	animation: ustGradientShift var(--ust-bg-speed, 10s) ease infinite;
}
@media (prefers-reduced-motion: reduce) {
	body.ust-bg-effect-animated-gradient { animation: none; background-position: 0 0; }
	body.ust-bg-effect-animated-gradient .ust-hero-slider { animation: none; background-position: 0 0; }
}

/* =========================================================
   Jobs Board ([ust_jobs_grid], [ust_job_ads], single job)
   ========================================================= */
.ust-page-intro { margin-bottom: 30px; }

.ust-job-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; }
.ust-job-filter {
	padding: .5em 1.2em;
	border-radius: 999px;
	background: var(--ust-surface-2);
	color: var(--ust-surface-text);
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
}
.ust-job-filter:hover { background: var(--ust-color-topbar); color: #fff; text-decoration: none; }
.ust-job-filter.is-active { background: var(--ust-color-topbar); color: #fff; }

.ust-job-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-bottom: 30px;
}
.ust-job-card {
	display: flex;
	flex-direction: column;
	background: var(--ust-color-heading);
	border-radius: var(--ust-radius);
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 6px 18px var(--ust-surface-shadow);
}
.ust-job-card img { width: 100%; height: 190px; object-fit: cover; }
.ust-job-card-title { display: block; padding: 16px 18px; font-weight: 700; color: #fff; }
.ust-job-card:hover { text-decoration: none; opacity: .92; }

.ust-job-single-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: start; }
.ust-job-meta, .ust-job-categories { margin-bottom: 10px; }
.ust-job-category-pill {
	display: inline-block;
	background: var(--ust-surface-2);
	border-radius: 999px;
	padding: .3em 1em;
	font-size: .8rem;
	font-weight: 600;
	margin-right: 6px;
}

/* ---------- Case studies ---------- */
.ust-case-study-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--ust-space-md);
	padding: var(--ust-space-md) 0;
}
.ust-case-study-card {
	display: block; text-decoration: none; color: var(--ust-surface-text);
	background: var(--ust-surface); border-radius: var(--ust-radius-lg);
	overflow: hidden; box-shadow: var(--ust-shadow-md);
}
.ust-case-study-card:hover { text-decoration: none; }
.ust-case-study-card__image { aspect-ratio: 4/3; overflow: hidden; background: var(--ust-surface-2); }
.ust-case-study-card__image img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ust-case-study-card__body { padding: var(--ust-space-sm); }
.ust-case-study-card__client { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ust-color-topbar); margin-bottom: 4px; }
.ust-case-study-card__title { margin: 0 0 6px; font-size: 1.15rem; }
.ust-case-study-card__excerpt { margin: 0; font-size: .9rem; color: var(--ust-surface-text-muted); }

.ust-case-study-meta { margin-bottom: var(--ust-space-sm); }
.ust-case-study-industry-pill {
	display: inline-block; background: var(--ust-surface-2); border-radius: 999px;
	padding: .3em 1em; font-size: .8rem; font-weight: 600; margin-left: 8px;
}
.ust-case-study-hero { margin-bottom: var(--ust-space-md); border-radius: var(--ust-radius-lg); overflow: hidden; }
.ust-case-study-hero img { width: 100%; margin: 0; }
.ust-case-study-stats {
	display: flex; flex-wrap: wrap; gap: var(--ust-space-md);
	background: var(--ust-surface-2); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); margin-bottom: var(--ust-space-md);
}
.ust-case-study-stat { flex: 1 1 120px; text-align: center; }
.ust-case-study-stat__number { font-size: 2rem; font-weight: 800; color: var(--ust-color-topbar); }
.ust-case-study-stat__label { color: var(--ust-surface-text-muted); font-size: .9rem; }
.ust-job-description { margin-bottom: 30px; }

/* ---------- Knowledge base ---------- */
.ust-kb-search { display: flex; gap: 10px; margin-bottom: var(--ust-space-lg); max-width: 520px; }
.ust-kb-search input[type="search"] {
	flex: 1; padding: .7em 1em; border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius-pill); background: var(--ust-surface); color: var(--ust-surface-text); font-size: 1rem;
}
.ust-kb-search button {
	padding: .7em 1.6em; border: none; border-radius: var(--ust-radius-pill);
	background: var(--ust-color-button-bg); color: var(--ust-color-button-text); font-weight: 600; cursor: pointer;
}
.ust-kb-category-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--ust-space-md); margin-bottom: var(--ust-space-lg); }
.ust-kb-category-tile {
	display: block; text-decoration: none; color: var(--ust-surface-text);
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm);
}
.ust-kb-category-tile:hover { text-decoration: none; box-shadow: var(--ust-shadow-md); }
.ust-kb-category-tile__name { margin: 0 0 6px; font-size: 1.1rem; }
.ust-kb-category-tile__desc { margin: 0 0 10px; font-size: .9rem; color: var(--ust-surface-text-muted); }
.ust-kb-category-tile__count { font-size: .8rem; font-weight: 600; color: var(--ust-color-topbar); }

.ust-kb-all-heading { margin-top: 0; }
.ust-kb-article-list { list-style: none; margin: 0; padding: 0; }
.ust-kb-article-list li {
	display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
	padding: 12px 0; border-bottom: 1px solid var(--ust-surface-border);
}
.ust-kb-article-list__category { font-size: .8rem; color: var(--ust-surface-text-muted); white-space: nowrap; }

.ust-kb-single-grid { display: grid; grid-template-columns: 1fr 280px; gap: var(--ust-space-lg); }
.ust-kb-article-categories { margin-bottom: var(--ust-space-sm); }
.ust-kb-category-pill {
	display: inline-block; background: var(--ust-surface-2); border-radius: 999px;
	padding: .3em 1em; font-size: .8rem; font-weight: 600; margin-right: 6px; text-decoration: none; color: var(--ust-surface-text);
}
.ust-kb-single-sidebar h2 { font-size: 1.1rem; }
.ust-kb-related-list { list-style: none; margin: 0; padding: 0; }
.ust-kb-related-list li { padding: 8px 0; border-bottom: 1px solid var(--ust-surface-border); }
@media (max-width: 782px) {
	.ust-kb-single-grid { grid-template-columns: 1fr; }
}

.ust-job-apply { background: var(--ust-surface-2); border-radius: var(--ust-radius); padding: 30px; }
.ust-job-apply-form p { margin-bottom: 16px; }
.ust-job-apply-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.ust-job-apply-form input[type="text"],
.ust-job-apply-form input[type="email"],
.ust-job-apply-form input[type="tel"],
.ust-job-apply-form input[type="file"],
.ust-job-apply-form textarea {
	width: 100%;
	padding: .7em .9em;
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	background: var(--ust-surface);
	color: var(--ust-surface-text);
	font-family: inherit;
	font-size: 1rem;
}
.ust-job-apply-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ust-form-notice { padding: 14px 18px; border-radius: var(--ust-radius); margin-bottom: 20px; font-weight: 600; }
.ust-form-notice.is-success { background: #e4f7ea; color: #146c2e; }
.ust-form-notice.is-error { background: #fdeaea; color: #a02323; }

/* ---------- Contact Form block ---------- */
.ust-contact-form p { margin-bottom: 16px; }
.ust-contact-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.ust-contact-form input[type="text"],
.ust-contact-form input[type="email"],
.ust-contact-form input[type="tel"],
.ust-contact-form textarea {
	width: 100%;
	padding: .7em .9em;
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	background: var(--ust-surface);
	color: var(--ust-surface-text);
	font-family: inherit;
	font-size: 1rem;
}
.ust-contact-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ust-cf-field-editor { border-top: 1px solid var(--ust-surface-border); padding-top: 10px; margin-top: 10px; }
.ust-cf-field-editor:first-child { border-top: none; padding-top: 0; margin-top: 0; }

.ust-job-ads { display: flex; flex-direction: column; gap: 4px; }
.ust-job-ad {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--ust-color-topbar);
	color: #fff;
	text-decoration: none;
	padding: 14px;
}
.ust-job-ad img { width: 70px; height: 70px; object-fit: cover; border-radius: var(--ust-radius); flex-shrink: 0; }
.ust-job-ad span { font-weight: 700; }
.ust-job-ad:hover { opacity: .9; text-decoration: none; color: #fff; }

@media (max-width: 960px) {
	.ust-job-grid { grid-template-columns: repeat(2, 1fr); }
	.ust-job-single-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.ust-job-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   Services Tabs / two-column layout (also used by Management)
   ========================================================= */
.ust-services-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: start; }
.ust-services-sidebar { position: sticky; top: 20px; }
.ust-services-sidebar h2 { font-size: 1.1rem; margin-bottom: 16px; }

.ust-services-tabs { display: grid; grid-template-columns: 220px 1fr; background: var(--ust-surface-2); border-radius: var(--ust-radius); overflow: hidden; }
.ust-services-nav { display: flex; flex-direction: column; background: var(--ust-color-heading); }
.ust-services-tab {
	appearance: none;
	border: 0;
	background: transparent;
	color: #fff;
	text-align: left;
	padding: 16px 20px;
	font-weight: 700;
	letter-spacing: .03em;
	cursor: pointer;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.ust-services-tab:hover { background: rgba(255,255,255,.06); }
.ust-services-tab.is-active { background: var(--ust-color-topbar); }
.ust-services-panels { padding: 30px; }
.ust-services-panel h2 { margin-top: 0; color: var(--ust-color-button-bg); }

@media (max-width: 960px) {
	.ust-services-layout { grid-template-columns: 1fr; }
	.ust-services-sidebar { position: static; }
}
@media (max-width: 700px) {
	.ust-services-tabs { grid-template-columns: 1fr; }
	.ust-services-nav { flex-direction: row; flex-wrap: wrap; }
}

/* =========================================================
   Team / Management ([ust_team])
   ========================================================= */
.ust-team-grid { display: flex; flex-direction: column; gap: 4px; }
.ust-team-member {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 40px;
	background: var(--ust-color-heading);
	color: #fff;
	padding: 40px;
	border-radius: var(--ust-radius);
}
.ust-team-member-photo img { width: 100%; border-radius: var(--ust-radius); object-fit: cover; }
.ust-team-member-position { text-transform: uppercase; letter-spacing: .05em; color: var(--ust-color-button-bg); font-weight: 700; margin-bottom: 4px; }
.ust-team-member-name { margin-top: 0; color: #fff; }
.ust-team-member-bio { color: rgba(255,255,255,.85); }
.ust-team-member-bio ul { padding-left: 20px; }

@media (max-width: 782px) {
	.ust-team-member { grid-template-columns: 1fr; }
}

/* =========================================================
   Generic content carousel ([ust_carousel])
   ========================================================= */
.ust-carousel { position: relative; padding-bottom: 10px; }
.ust-carousel-title { text-align: center; margin-bottom: 20px; }
.ust-carousel-viewport { position: relative; }
.ust-carousel-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .5s ease; }
.ust-carousel-slide.is-active { position: relative; opacity: 1; visibility: visible; }
.ust-carousel-card {
	background: var(--ust-surface);
	border: 1px solid var(--ust-surface-border);
	border-radius: var(--ust-radius);
	overflow: hidden;
	box-shadow: 0 6px 18px var(--ust-surface-shadow);
}
.ust-carousel-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.ust-carousel-card-body { padding: 20px; text-align: center; }
.ust-carousel-card-body h3 { margin: 0 0 8px; font-size: 1.1rem; }
.ust-carousel-card-date { color: var(--ust-surface-text-muted); font-size: .85rem; margin-bottom: 16px; }
.ust-carousel-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--ust-surface-border);
	background: var(--ust-surface);
	color: var(--ust-surface-text);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 5;
}
.ust-carousel-arrow.is-prev { left: -6px; }
.ust-carousel-arrow.is-next { right: -6px; }
.ust-carousel-arrow:hover { background: var(--ust-color-topbar); color: #fff; border-color: transparent; }

/* ---------- Locations ---------- */
.ust-location-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--ust-space-md); padding: var(--ust-space-md) 0; }
.ust-location-card {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm);
}
.ust-location-card__name { margin: 0 0 8px; font-size: 1.15rem; }
.ust-location-card__name a { color: var(--ust-surface-text); text-decoration: none; }
.ust-location-card p { margin: 0 0 6px; font-size: .92rem; color: var(--ust-surface-text-muted); }
.ust-location-card__phone a, .ust-location-card__email a { color: var(--ust-color-topbar); text-decoration: none; }
.ust-location-card__map { margin-top: var(--ust-space-sm); border-radius: var(--ust-radius); overflow: hidden; aspect-ratio: 16/9; }
.ust-location-card__map iframe { width: 100%; height: 100%; border: 0; }
.ust-location-single-content { margin-top: var(--ust-space-lg); }

/* ---------- Finder ---------- */
.ust-finder__filters {
	display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
	margin-bottom: var(--ust-space-md); padding: var(--ust-space-sm); background: var(--ust-surface-2); border-radius: var(--ust-radius-lg);
}
.ust-finder__filters input[type="search"], .ust-finder__filters select {
	padding: .6em .9em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text); font-size: .95rem; font-family: inherit;
}
.ust-finder__filters input[type="search"] { flex: 1 1 200px; }
.ust-finder__clear { font-size: .85rem; color: var(--ust-surface-text-muted); text-decoration: underline; }
.ust-finder__results { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--ust-space-md); }
.ust-finder__no-results { color: var(--ust-surface-text-muted); padding: var(--ust-space-lg) 0; text-align: center; }
.ust-finder-card {
	display: block; text-decoration: none; color: var(--ust-surface-text);
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	overflow: hidden; box-shadow: var(--ust-shadow-sm);
}
.ust-finder-card:hover { text-decoration: none; box-shadow: var(--ust-shadow-md); }
.ust-finder-card__image { aspect-ratio: 4/3; background: var(--ust-surface-2); overflow: hidden; }
.ust-finder-card__image img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ust-finder-card__body { padding: var(--ust-space-sm); }
.ust-finder-card__title { margin: 0 0 6px; font-size: 1.1rem; }
.ust-finder-card__excerpt { margin: 0; font-size: .9rem; color: var(--ust-surface-text-muted); }

/* ---------- Booking form ---------- */
.ust-booking-form-wrap {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm); max-width: 480px;
}
.ust-booking-form__title { margin: 0 0 var(--ust-space-sm); }
.ust-booking-form p { margin-bottom: var(--ust-space-sm); }
.ust-booking-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .9rem; }
.ust-booking-form input[type="text"],
.ust-booking-form input[type="email"],
.ust-booking-form input[type="tel"],
.ust-booking-form input[type="date"],
.ust-booking-form input[type="time"],
.ust-booking-form select,
.ust-booking-form textarea {
	width: 100%; padding: .6em .8em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text); font-size: 1rem; font-family: inherit;
}
.ust-booking-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ust-booking-form__disclaimer { font-size: .82rem; color: var(--ust-surface-text-muted); font-style: italic; }
.ust-booking-service-editor { border-top: 1px solid var(--ust-surface-border); padding-top: 8px; margin-top: 8px; }
.ust-booking-service-editor:first-child { border-top: none; padding-top: 0; margin-top: 0; }

/* ---------- Account portal ---------- */
.ust-portal { display: flex; flex-direction: column; gap: var(--ust-space-md); max-width: 640px; }
.ust-portal--login { max-width: 360px; }
.ust-portal-section {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm);
}
.ust-portal-section h2 { margin: 0 0 var(--ust-space-sm); font-size: 1.15rem; }
.ust-portal-profile p { margin: 0 0 var(--ust-space-sm); }
.ust-portal-edit-link { margin-right: var(--ust-space-sm); font-size: .9rem; }
.ust-portal-table { width: 100%; border-collapse: collapse; }
.ust-portal-table td { padding: 10px 0; border-bottom: 1px solid var(--ust-surface-border); vertical-align: middle; }
.ust-portal-table tr:last-child td { border-bottom: none; }
.ust-portal-table td:last-child { text-align: right; white-space: nowrap; }
.ust-portal-table__meta { font-size: .85rem; color: var(--ust-surface-text-muted); }
.ust-portal-empty { color: var(--ust-surface-text-muted); }
.ust-portal-updates { list-style: none; margin: 0; padding: 0; }
.ust-portal-updates li { padding: 8px 0; border-bottom: 1px solid var(--ust-surface-border); font-size: .92rem; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ust-portal-updates li:last-child { border-bottom: none; }

/* ---------- Support ticket form ---------- */
.ust-support-ticket-form-wrap {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm); max-width: 480px;
}
.ust-support-ticket-form p { margin-bottom: var(--ust-space-sm); }
.ust-support-ticket-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .9rem; }
.ust-support-ticket-form input[type="text"], .ust-support-ticket-form input[type="email"], .ust-support-ticket-form textarea {
	width: 100%; padding: .6em .8em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text); font-family: inherit; font-size: 1rem;
}
.ust-support-ticket-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ust-portal-section--staff { border-color: var(--ust-color-topbar); }
.ust-status-pill { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: .78rem; font-weight: 700; }
.ust-status-pill--success { background: #e9f7ee; color: #146c2e; }
.ust-status-pill--warning { background: #fff6e5; color: #8a6100; }
.ust-status-pill--error { background: #fdecea; color: #a02323; }
.ust-status-pill--idle { background: var(--ust-surface-2); color: var(--ust-surface-text-muted); }
.ust-portal--login form p { margin-bottom: var(--ust-space-sm); }
.ust-portal--login input[type="text"], .ust-portal--login input[type="password"] {
	width: 100%; padding: .6em .8em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text);
}

/* ---------- Donation form ---------- */
.ust-donation-form-wrap {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm); max-width: 480px;
}
.ust-donation-form p { margin-bottom: var(--ust-space-sm); }
.ust-donation-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .9rem; }
.ust-donation-form input[type="text"], .ust-donation-form input[type="email"], .ust-donation-form input[type="number"], .ust-donation-form textarea {
	width: 100%; padding: .6em .8em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text); font-family: inherit; font-size: 1rem;
}
.ust-donation-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Press & Media ---------- */
.ust-press-grid {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--ust-space-md);
	list-style: none; margin: 0; padding: 0;
}
.ust-press-card {
	display: block; background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	overflow: hidden; box-shadow: var(--ust-shadow-sm); color: inherit;
}
.ust-press-card:hover { text-decoration: none; }
.ust-press-card__logo { aspect-ratio: 16/9; overflow: hidden; background: var(--ust-surface-2); display: flex; align-items: center; justify-content: center; }
.ust-press-card__logo img { width: 100%; height: 100%; object-fit: contain; margin: 0; padding: var(--ust-space-sm); }
.ust-press-card__body { padding: var(--ust-space-sm); }
.ust-press-card__source { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ust-color-topbar); margin-bottom: 4px; }
.ust-press-card__title { margin: 0 0 6px; font-size: 1.1rem; }
.ust-press-card__excerpt { margin: 0 0 8px; font-size: .9rem; color: var(--ust-surface-text-muted); font-style: italic; }
.ust-press-card__date { font-size: .8rem; color: var(--ust-surface-text-muted); }

/* ---------- Cookie consent ---------- */
.ust-cookie-consent {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9500;
	background: var(--ust-surface); border-top: 1px solid var(--ust-surface-border); box-shadow: var(--ust-shadow-lg);
}
.ust-cookie-consent[hidden] { display: none; }
.ust-cookie-consent__inner {
	max-width: var(--ust-container-width); margin: 0 auto; padding: var(--ust-space-sm) var(--ust-space-md);
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ust-space-sm);
}
.ust-cookie-consent__message { margin: 0; color: var(--ust-surface-text); font-size: .92rem; flex: 1 1 320px; }
.ust-cookie-consent__message a { margin-left: 6px; text-decoration: underline; }

/* ---------- Maintenance mode ---------- */
.ust-maintenance-mode {
	margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center;
	background: var(--ust-color-body-bg); color: var(--ust-color-body-text); font-family: var(--ust-font-body); text-align: center; padding: 40px 24px;
}
.ust-maintenance-mode__panel { max-width: 480px; }
.ust-maintenance-mode__panel h1 { color: var(--ust-color-heading); margin: 0 0 .5em; }

/* ---------- Events ---------- */
.ust-event-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--ust-space-md); padding: var(--ust-space-md) 0; }
.ust-event-card {
	display: block; text-decoration: none; color: var(--ust-surface-text);
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	overflow: hidden; box-shadow: var(--ust-shadow-sm);
}
.ust-event-card:hover { text-decoration: none; box-shadow: var(--ust-shadow-md); }
.ust-event-card__image { aspect-ratio: 4/3; background: var(--ust-surface-2); overflow: hidden; }
.ust-event-card__image img { width: 100%; height: 100%; object-fit: cover; margin: 0; }
.ust-event-card__body { padding: var(--ust-space-sm); }
.ust-event-card__date { font-size: .8rem; font-weight: 700; color: var(--ust-color-topbar); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.ust-event-card__title { margin: 0 0 4px; font-size: 1.1rem; }
.ust-event-card__location { font-size: .88rem; color: var(--ust-surface-text-muted); }
.ust-event-single-grid { display: grid; grid-template-columns: 1fr 320px; gap: var(--ust-space-lg); }
.ust-event-meta { font-size: 1rem; margin-bottom: var(--ust-space-sm); }
.ust-event-hero { margin-bottom: var(--ust-space-md); border-radius: var(--ust-radius-lg); overflow: hidden; }
.ust-event-hero img { width: 100%; margin: 0; }
.ust-event-rsvp {
	background: var(--ust-surface); border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius-lg);
	padding: var(--ust-space-md); box-shadow: var(--ust-shadow-sm);
}
.ust-event-rsvp__spots { font-weight: 700; color: var(--ust-color-topbar); margin: 0 0 var(--ust-space-sm); }
.ust-event-rsvp-form p { margin-bottom: var(--ust-space-sm); }
.ust-event-rsvp-form label { display: block; font-weight: 600; margin-bottom: 4px; font-size: .9rem; }
.ust-event-rsvp-form input[type="text"], .ust-event-rsvp-form input[type="email"] {
	width: 100%; padding: .6em .8em; border: 1px solid var(--ust-surface-border); border-radius: var(--ust-radius);
	background: var(--ust-surface); color: var(--ust-surface-text); font-family: inherit; font-size: 1rem;
}
.ust-event-rsvp-form .ust-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 782px) {
	.ust-event-single-grid { grid-template-columns: 1fr; }
}
