/* ==========================================================================
   HMSE theme stylesheet
   Hand-written CSS translating the original Tailwind/"Carbon" design system.
   No build step — this file is enqueued as-is.
   ========================================================================== */

/* Light palette = default. Dark palette below overrides the SAME tokens, either from the OS setting
   (prefers-color-scheme, unless the visitor chose light) or from an explicit choice (data-theme="dark"). */
:root {
	color-scheme: light;
	/* Brand accent (emerald): the one source for buttons, links, labels, filters, icons and focus rings */
	--hmse-accent: #0f7a5c;
	--hmse-accent-hover: #0a5f47;
	--hmse-accent-deep: #08503b;
	--hmse-accent-light: #dcf1ea;
	--hmse-accent-light-hover: #c8e7dc;
	--hmse-accent-on-dark: #5fd6ae;
	--hmse-accent-rgb: 15, 122, 92;
	--hmse-focus: #0f7a5c;
	/* Accent as text / icon / thin line (lightened in dark mode). Fills (buttons, tags, active tabs) keep --hmse-accent. */
	--hmse-link: #0f7a5c;
	--hmse-link-strong: #0a5f47;
	--hmse-link-hover: #08503b;
	--hmse-accent-line: #0a5f47;
	--wp-admin-theme-color: #0f7a5c;
	--wp-admin-theme-color-darker-10: #0a5f47;
	--wp-admin-theme-color-darker-20: #08503b;
	--wp-admin-theme-color--rgb: 15, 122, 92;
	--wp-admin-theme-color-darker-10--rgb: 10, 95, 71;
	--wp-admin-theme-color-darker-20--rgb: 8, 80, 59;
	/* Neutrals */
	--hmse-bg: #f7faf5;
	--hmse-surface: #fff;
	--hmse-text: #181d1a;
	--hmse-muted: #4e6356;
	--hmse-muted-2: #566b5e;
	--hmse-muted-3: #526659;
	--hmse-muted-4: #55695c;
	--hmse-ink: #2c4033;
	--hmse-ink-2: #33463a;
	--hmse-on-tint: #0b1f15;
	--hmse-inverse: #fff;
	--hmse-green: var(--hmse-accent);
	--hmse-green-hover: var(--hmse-accent-hover);
	--hmse-green-deep: var(--hmse-accent-deep);
	--hmse-green-light: #e6f7f0;
	--hmse-green-pale: var(--hmse-accent-light);
	--hmse-header-bg: rgba(255,255,255,.95);
	--hmse-glass: rgba(255,255,255,.9);
	--hmse-border: #bccabf;
	--hmse-border-rgb: 188, 202, 191;
	--hmse-border-soft: #e0e0e0;
	--hmse-field-border: #bccabf;
	--hmse-placeholder: #757575;
	--hmse-card-bg: #f4f4f4;
	--hmse-card-hover: #e8ece7;
	--hmse-card-surface: #e4e9e1;
	--hmse-media-bg: #d0d9cc;
	--hmse-hover-bg: #e4eee0;
	--hmse-office-hover-bg: #e6eee3;
	--hmse-office-hover-border: #b8c9b5;
	--hmse-outline-hover-bg: #f5f8f4;
	--hmse-panel-bg: #ecefea;
	--hmse-panel-alt: #f1f4ef;
	--hmse-section-alt: #f0f4ee;
	--hmse-section-alt2: #e8eee6;
	--hmse-tint-bg: rgba(216,226,214,.6);
	--hmse-info-bg: rgba(232,238,230,.7);
	--hmse-archive-border: rgba(212,222,195,.4);
	--hmse-dark-green: var(--hmse-accent-hover);
	--hmse-dark-green-2: var(--hmse-accent-deep);
	--hmse-graphite: #232c28;
	--hmse-graphite-2: #181f1c;
	--hmse-line: #d8e2d6;
	--hmse-line-soft: #d2dbce;
	--hmse-amber: #8c4a27;
	--hmse-amber-bg: #faf8f5;
	--hmse-amber-border: #ebdcd3;
	--hmse-amber-ink: #4a2e1d;
	--hmse-error-bg: #fdecec;
	--hmse-error-border: rgba(220,38,38,.3);
	--hmse-error-text: #7f1d1d;
	--hmse-error-icon: #dc2626;
	--hmse-disabled-bg: #e5e7eb;
	--hmse-disabled-text: #4b5563;
	/* WooCommerce Blocks notices (native light values) */
	--hmse-woo-notice-bg: #fff;
	--hmse-woo-notice-text: #2f2f2f;
	--hmse-woo-error-bg: #fff0f0;
	--hmse-woo-error-line: #cc1818;
	--hmse-woo-error-text: #cc1818;
	--hmse-woo-warn-bg: #fffbf4;
	--hmse-woo-warn-line: #f0b849;
	--hmse-woo-ok-bg: #f4fff7;
	--hmse-woo-ok-line: #4ab866;
	--hmse-shop-dark: var(--hmse-accent-hover);
	--hmse-shop-darker: var(--hmse-accent-deep);
	--hmse-shop-accent: var(--hmse-accent-on-dark);
	--hmse-icon-moon: block;
	--hmse-icon-sun: none;
	--hmse-radius-sm: 4px;
	--hmse-radius: 8px;
	--hmse-radius-lg: 16px;
	--hmse-max: 1280px;
	--hmse-font: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		color-scheme: dark;
		--hmse-accent-rgb: 95, 214, 174;
		--hmse-accent-light: #143328;
		--hmse-accent-light-hover: #1c4636;
		--hmse-focus: #5fd6ae;
		--hmse-link: #5fd6ae;
		--hmse-link-strong: #7fe3c0;
		--hmse-link-hover: #a3efd3;
		--hmse-accent-line: #2f9d7b;
		--hmse-bg: #0f1512;
		--hmse-surface: #17201b;
		--hmse-text: #e6eee9;
		--hmse-muted: #aebfb5;
		--hmse-muted-2: #94a79c;
		--hmse-muted-3: #b4c4ba;
		--hmse-muted-4: #aebfb5;
		--hmse-ink: #d3e0d8;
		--hmse-ink-2: #c3d2c9;
		--hmse-on-tint: #d7f3e8;
		--hmse-inverse: #0f1512;
		--hmse-header-bg: rgba(15,21,18,.92);
		--hmse-glass: rgba(23,32,27,.9);
		--hmse-border: #35453c;
		--hmse-border-rgb: 72, 92, 80;
		--hmse-border-soft: #2b3831;
		--hmse-field-border: #5b7266;
		--hmse-placeholder: #8a9f93;
		--hmse-card-bg: #1c2621;
		--hmse-card-hover: #232f29;
		--hmse-card-surface: #1a241f;
		--hmse-media-bg: #232f29;
		--hmse-hover-bg: #26352d;
		--hmse-office-hover-bg: #26352d;
		--hmse-office-hover-border: #4a6355;
		--hmse-outline-hover-bg: #1f2b25;
		--hmse-panel-bg: #131b17;
		--hmse-panel-alt: #1a231e;
		--hmse-section-alt: #1b2520;
		--hmse-section-alt2: #141c18;
		--hmse-tint-bg: rgba(47,61,53,.6);
		--hmse-info-bg: rgba(27,37,32,.7);
		--hmse-archive-border: #2a372f;
		--hmse-graphite: #dce7e0;
		--hmse-graphite-2: #e6eee9;
		--hmse-line: #2a372f;
		--hmse-line-soft: #2f3d35;
		--hmse-amber: #e0a27a;
		--hmse-amber-bg: #2a201a;
		--hmse-amber-border: #4a382c;
		--hmse-amber-ink: #f2c9ad;
		--hmse-error-bg: #3a1717;
		--hmse-error-border: rgba(248,113,113,.4);
		--hmse-error-text: #fecaca;
		--hmse-error-icon: #f87171;
		--hmse-disabled-bg: #2c3731;
		--hmse-disabled-text: #9aa8a0;
		--hmse-woo-notice-bg: #17201b;
		--hmse-woo-notice-text: #e6eee9;
		--hmse-woo-error-bg: #3a1717;
		--hmse-woo-error-line: #f87171;
		--hmse-woo-error-text: #f18c8c;
		--hmse-woo-warn-bg: #2a2418;
		--hmse-woo-warn-line: #d9a032;
		--hmse-woo-ok-bg: #11271a;
		--hmse-woo-ok-line: #4ab866;
		--hmse-icon-moon: none;
		--hmse-icon-sun: block;
	}
}
:root[data-theme="dark"] {
	color-scheme: dark;
	--hmse-accent-rgb: 95, 214, 174;
	--hmse-accent-light: #143328;
	--hmse-accent-light-hover: #1c4636;
	--hmse-focus: #5fd6ae;
	--hmse-link: #5fd6ae;
	--hmse-link-strong: #7fe3c0;
	--hmse-link-hover: #a3efd3;
	--hmse-accent-line: #2f9d7b;
	--hmse-bg: #0f1512;
	--hmse-surface: #17201b;
	--hmse-text: #e6eee9;
	--hmse-muted: #aebfb5;
	--hmse-muted-2: #94a79c;
	--hmse-muted-3: #b4c4ba;
	--hmse-muted-4: #aebfb5;
	--hmse-ink: #d3e0d8;
	--hmse-ink-2: #c3d2c9;
	--hmse-on-tint: #d7f3e8;
	--hmse-inverse: #0f1512;
	--hmse-header-bg: rgba(15,21,18,.92);
	--hmse-glass: rgba(23,32,27,.9);
	--hmse-border: #35453c;
	--hmse-border-rgb: 72, 92, 80;
	--hmse-border-soft: #2b3831;
	--hmse-field-border: #5b7266;
	--hmse-placeholder: #8a9f93;
	--hmse-card-bg: #1c2621;
	--hmse-card-hover: #232f29;
	--hmse-card-surface: #1a241f;
	--hmse-media-bg: #232f29;
	--hmse-hover-bg: #26352d;
	--hmse-office-hover-bg: #26352d;
	--hmse-office-hover-border: #4a6355;
	--hmse-outline-hover-bg: #1f2b25;
	--hmse-panel-bg: #131b17;
	--hmse-panel-alt: #1a231e;
	--hmse-section-alt: #1b2520;
	--hmse-section-alt2: #141c18;
	--hmse-tint-bg: rgba(47,61,53,.6);
	--hmse-info-bg: rgba(27,37,32,.7);
	--hmse-archive-border: #2a372f;
	--hmse-graphite: #dce7e0;
	--hmse-graphite-2: #e6eee9;
	--hmse-line: #2a372f;
	--hmse-line-soft: #2f3d35;
	--hmse-amber: #e0a27a;
	--hmse-amber-bg: #2a201a;
	--hmse-amber-border: #4a382c;
	--hmse-amber-ink: #f2c9ad;
	--hmse-error-bg: #3a1717;
	--hmse-error-border: rgba(248,113,113,.4);
	--hmse-error-text: #fecaca;
	--hmse-error-icon: #f87171;
	--hmse-disabled-bg: #2c3731;
	--hmse-disabled-text: #9aa8a0;
	--hmse-woo-notice-bg: #17201b;
	--hmse-woo-notice-text: #e6eee9;
	--hmse-woo-error-bg: #3a1717;
	--hmse-woo-error-line: #f87171;
	--hmse-woo-error-text: #f18c8c;
	--hmse-woo-warn-bg: #2a2418;
	--hmse-woo-warn-line: #d9a032;
	--hmse-woo-ok-bg: #11271a;
	--hmse-woo-ok-line: #4ab866;
	--hmse-icon-moon: none;
	--hmse-icon-sun: block;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 80px; accent-color: var(--hmse-accent); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
::selection { background: var(--hmse-accent); color: #fff; }
::placeholder { color: var(--hmse-placeholder); opacity: 1; }

body {
	margin: 0;
	font-family: var(--hmse-font);
	background: var(--hmse-bg);
	color: var(--hmse-text);
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 14px; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4, p { margin: 0; }

.hmse-container { max-width: var(--hmse-max); margin: 0 auto; padding: 0 24px; }
@media (max-width: 640px) { .hmse-container { padding: 0 16px; } }

.hmse-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100;
	background: var(--hmse-green); color: #fff; padding: 10px 16px; border-radius: 0 0 6px 0;
}
.hmse-skip-link:focus { left: 0; outline: 3px solid #fff; outline-offset: -5px; }

:focus-visible { outline: 3px solid var(--hmse-focus); outline-offset: 2px; }
.hmse-modal-header :focus-visible, .hmse-cta-banner :focus-visible, .hmse-woo-hero :focus-visible { outline-color: #fff; }

.hmse-icon { width: 20px; height: 20px; flex-shrink: 0; }
.hmse-icon-sm { width: 16px; height: 16px; }

/* ---------- Header ---------- */
.hmse-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--hmse-header-bg); backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--hmse-border);
}
.hmse-header-inner {
	max-width: var(--hmse-max); margin: 0 auto; padding: 0 24px;
	height: 64px; display: flex; align-items: center; justify-content: space-between;
}
.hmse-header-left { display: flex; align-items: center; gap: 32px; height: 100%; flex: 1; min-width: 0; }
.hmse-logo { display: flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; font-size: 20px; color: var(--hmse-link); white-space: nowrap; }
.hmse-logo-full { max-width: 240px; font-size: 12px; font-weight: 400; line-height: 1.25; white-space: normal; color: var(--hmse-muted); border-left: 1px solid var(--hmse-border); padding-left: 8px; }
@media (max-width: 479px) {
	.hmse-logo-full { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.hmse-nav { display: none; align-items: center; gap: 28px; height: 100%; font-weight: 600; font-size: 14px; }
.hmse-nav-link { color: var(--hmse-muted); border-bottom: 2px solid transparent; padding: 4px 0; transition: color .15s, border-color .15s; }
.hmse-nav-link:hover, .hmse-nav-link.is-active { color: var(--hmse-link); border-color: currentColor; }
.hmse-header-right { display: flex; align-items: center; gap: 8px; }
.hmse-cart-link { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: var(--hmse-muted); }
.hmse-cart-link:hover { color: var(--hmse-text); }
.hmse-cart-count {
	position: absolute; top: 2px; right: 2px; background: var(--hmse-green); color: #fff;
	font-size: 12px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px;
	display: flex; align-items: center; justify-content: center; padding: 0 4px;
}
.hmse-menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; background: none; border: none; color: var(--hmse-muted); border-radius: 6px; }
.hmse-menu-toggle:hover { color: var(--hmse-link); background: var(--hmse-panel-bg); }
.hmse-theme-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; background: none; border: none; border-radius: 6px; color: var(--hmse-muted); }
.hmse-theme-toggle:hover { color: var(--hmse-link); background: var(--hmse-panel-bg); }
.hmse-theme-toggle .hmse-icon-moon { display: var(--hmse-icon-moon); }
.hmse-theme-toggle .hmse-icon-sun { display: var(--hmse-icon-sun); }
.hmse-icon-close { display: none; }
.hmse-menu-toggle.is-open .hmse-icon-open { display: none; }
.hmse-menu-toggle.is-open .hmse-icon-close { display: block; }

.hmse-mobile-nav {
	position: absolute; top: 100%; left: 0; right: 0;
	display: flex; flex-direction: column; gap: 4px; padding: 12px 16px 16px;
	max-height: calc(100vh - 64px); max-height: calc(100dvh - 64px); overflow-y: auto; overscroll-behavior: contain;
	background: var(--hmse-surface); border-bottom: 1px solid var(--hmse-border); box-shadow: 0 10px 18px rgba(0,0,0,.14);
}
.hmse-mobile-nav[hidden] { display: none; }
.hmse-mobile-nav a { display: flex; align-items: center; min-height: 48px; padding: 10px 12px; border-radius: 6px; font-weight: 600; font-size: 16px; color: var(--hmse-muted); }
.hmse-mobile-nav a:hover { background: var(--hmse-panel-alt); }
.hmse-mobile-nav a[aria-current="page"] { background: var(--hmse-panel-alt); color: var(--hmse-link-strong); font-weight: 700; box-shadow: inset 3px 0 0 var(--hmse-accent); }

@media (min-width: 900px) {
	.hmse-nav { display: flex; }
	.hmse-menu-toggle { display: none; }
	.hmse-mobile-nav { display: none !important; }
}

/* ---------- Language switcher ---------- */
.hmse-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hmse-lang { display: none; position: relative; }
.hmse-lang-details { position: relative; }
.hmse-lang-summary {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 8px; border-radius: 6px;
	color: var(--hmse-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; cursor: pointer; list-style: none;
}
.hmse-lang-summary::-webkit-details-marker { display: none; }
.hmse-lang-summary::marker { content: ""; }
.hmse-lang-summary:hover, .hmse-lang-details[open] > .hmse-lang-summary { color: var(--hmse-link); background: var(--hmse-panel-bg); }
.hmse-lang-chevron { transition: transform .15s; }
.hmse-lang-details[open] .hmse-lang-chevron { transform: rotate(180deg); }
.hmse-lang-menu {
	position: absolute; top: calc(100% + 6px); right: 0; z-index: 60; min-width: 184px; margin: 0; padding: 6px; list-style: none;
	background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.hmse-lang-option { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 12px; border-radius: 6px; color: var(--hmse-text); font-size: 15px; font-weight: 600; }
.hmse-lang-option:hover { background: var(--hmse-panel-alt); }
.hmse-lang-option.is-current { background: var(--hmse-panel-alt); color: var(--hmse-link-strong); font-weight: 700; box-shadow: inset 3px 0 0 var(--hmse-accent); }
.hmse-lang-option .hmse-lang-code { min-width: 26px; color: var(--hmse-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.hmse-lang-option.is-current .hmse-lang-code { color: var(--hmse-link-strong); }

.hmse-lang-mobile { margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--hmse-border); }
.hmse-lang-mobile-label { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; padding: 0 12px; color: var(--hmse-muted); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.hmse-lang-mobile-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.hmse-mobile-nav .hmse-lang-mobile-link { gap: 10px; min-height: 48px; padding: 10px 12px; border: 1px solid var(--hmse-border); color: var(--hmse-text); font-size: 16px; font-weight: 600; }
.hmse-mobile-nav .hmse-lang-mobile-link:hover { background: var(--hmse-panel-alt); }
.hmse-mobile-nav .hmse-lang-mobile-link.is-current { background: var(--hmse-panel-alt); border-color: var(--hmse-accent); color: var(--hmse-link-strong); font-weight: 700; }
.hmse-lang-mobile-link .hmse-lang-code { min-width: 26px; color: var(--hmse-muted); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.hmse-lang-mobile-link.is-current .hmse-lang-code { color: var(--hmse-link-strong); }
.hmse-lang-note { margin-left: 8px; color: var(--hmse-muted); font-size: 13px; font-weight: 400; }

.hmse-news-notice { display: flex; align-items: center; gap: 10px; margin: 0 0 24px; padding: 14px 16px; background: var(--hmse-panel-alt); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius-sm); color: var(--hmse-ink); font-size: 15px; }
.hmse-news-notice .hmse-icon { color: var(--hmse-link); }

@media (min-width: 900px) {
	.hmse-lang { display: block; }
}
@media (min-width: 900px) and (max-width: 1099px) {
	.hmse-nav { gap: 20px; }
}
@media (min-width: 900px) and (max-width: 1099px) {
	.hmse-logo-full { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* ---------- Buttons ---------- */
.hmse-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 12px 20px; font-weight: 600; font-size: 14px; border-radius: var(--hmse-radius-sm);
	border: 1px solid transparent; transition: all .15s ease; text-align: center;
}
.hmse-btn-primary, .hmse-btn-dark { background: var(--hmse-green); color: #fff; }
.hmse-btn-primary:hover, .hmse-btn-dark:hover { background: var(--hmse-green-hover); }
.hmse-btn-secondary, .hmse-btn-light { background: transparent; border-color: var(--hmse-link); color: var(--hmse-link-strong); }
.hmse-btn-secondary:hover { background: var(--hmse-green); color: #fff; }
.hmse-btn-light { background: var(--hmse-section-alt); border-color: var(--hmse-line-soft); color: var(--hmse-text); }
.hmse-btn-light:hover { background: var(--hmse-hover-bg); }
.hmse-btn-white { background: #fff; color: var(--hmse-green); }
.hmse-btn-white:hover { background: #ecefea; }
.hmse-btn-dark-green { background: var(--hmse-green-deep); color: #fff; border-color: rgba(95,214,174,.4); }
.hmse-btn-dark-green:hover { background: #063a2c; }
.hmse-btn-outline-dark { background: var(--hmse-surface); border-color: var(--hmse-graphite); color: var(--hmse-graphite); }
.hmse-btn-outline-dark:hover { background: var(--hmse-outline-hover-bg); }
.hmse-btn-block { width: 100%; }
.hmse-btn-sm { padding: 8px 14px; font-size: 12px; }
.hmse-btn-disabled { background: var(--hmse-disabled-bg); color: var(--hmse-disabled-text); cursor: not-allowed; }

/* ---------- Hero (front page) ---------- */
.hmse-hero { background: var(--hmse-panel-bg); border-bottom: 1px solid var(--hmse-border); padding: 64px 24px; }
.hmse-hero-inner { max-width: var(--hmse-max); margin: 0 auto; display: flex; flex-direction: column; gap: 48px; align-items: center; }
.hmse-hero-text { flex: 1; display: flex; flex-direction: column; gap: 32px; }
.hmse-eyebrow-block { border-left: 4px solid var(--hmse-link); padding-left: 24px; }
.hmse-eyebrow { display: inline-block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--hmse-link-strong); margin-bottom: 8px; }
.hmse-eyebrow--light { color: #dcf1ea; background: rgba(255,255,255,.12); padding: 3px 10px; border-radius: 4px; border: 1px solid rgba(255,255,255,.3); }
.hmse-eyebrow--sm { font-size: 10px; }
.hmse-hero-text h1 { font-size: 36px; font-weight: 300; letter-spacing: -0.02em; line-height: 1.15; color: var(--hmse-text); }
.hmse-hero-copy { display: flex; flex-direction: column; gap: 16px; color: var(--hmse-muted); font-weight: 300; }
.hmse-lead { font-size: 18px; max-width: 620px; line-height: 1.6; }
.hmse-lead strong { color: var(--hmse-text); font-weight: 600; }
.hmse-lead-sm { font-size: 15px; color: var(--hmse-muted); max-width: 760px; line-height: 1.6; }
.hmse-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.hmse-hero-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; padding-top: 24px; border-top: 1px solid rgba(var(--hmse-border-rgb),.6); }
.hmse-stat { display: flex; align-items: center; gap: 12px; }
.hmse-stat-icon { display: inline-flex; padding: 8px; border-radius: 6px; background: rgba(var(--hmse-accent-rgb),.1); color: var(--hmse-link); }
.hmse-stat-icon .hmse-icon { width: 20px; height: 20px; }
.hmse-stat-number { font-size: 18px; font-weight: 700; color: var(--hmse-text); }
.hmse-stat-label { font-size: 12px; color: var(--hmse-muted); }
.hmse-hero-media { flex: 1; width: 100%; }
.hmse-hero-media-frame { position: relative; width: 100%; aspect-ratio: 4/3; border-radius: var(--hmse-radius); overflow: hidden; border: 1px solid var(--hmse-border); box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.hmse-hero-media-frame img, .hmse-hero-media-placeholder { width: 100%; height: 100%; object-fit: cover; background: linear-gradient(135deg, var(--hmse-panel-bg), var(--hmse-card-bg)); }
.hmse-hero-media-caption { position: absolute; inset: auto 0 0 0; padding: 24px; color: #fff; background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,.3), transparent); }
.hmse-hero-media-caption p:first-child { font-size: 14px; font-weight: 500; }
.hmse-muted { color: var(--hmse-muted); font-size: 12px; }
.hmse-hero-media-caption .hmse-muted { color: rgba(255,255,255,.85); }

/* Wide intro photo at the top of Rólunk / Kapcsolat / Hírek / Szolgáltatásaink */
.hmse-page-banner { width: 100%; margin: 24px 0 8px; border-radius: var(--hmse-radius-lg); overflow: hidden; border: 1px solid var(--hmse-border); box-shadow: 0 4px 14px rgba(0,0,0,.08); background: var(--hmse-panel-bg); }
.hmse-page-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (min-width: 1024px) {
	.hmse-hero-inner { flex-direction: row; align-items: center; }
	.hmse-hero-text h1 { font-size: 56px; }
	.hmse-hero-stats { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- Section heading / teaser ---------- */
.hmse-section-heading { margin-bottom: 32px; }
.hmse-section-heading h2 { font-size: 26px; font-weight: 700; color: var(--hmse-text); margin-bottom: 8px; }
.hmse-section-heading p { color: var(--hmse-muted); }
.hmse-services-teaser { padding: 64px 0; }
.hmse-teaser-more { text-align: center; margin-top: 32px; }

/* ---------- Service cards / grid ---------- */
.hmse-service-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 720px) { .hmse-service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .hmse-service-grid { grid-template-columns: repeat(3, 1fr); } }

.hmse-service-card {
	display: flex; flex-direction: column; justify-content: space-between;
	background: var(--hmse-card-surface); border: 1px solid var(--hmse-line-soft); border-radius: var(--hmse-radius);
	overflow: hidden; transition: box-shadow .2s, border-color .2s;
}
.hmse-service-card:hover { box-shadow: 0 6px 16px rgba(0,0,0,.08); border-color: var(--hmse-accent); }
.hmse-service-card-media { position: relative; height: 192px; background: var(--hmse-media-bg); overflow: hidden; }
.hmse-service-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.hmse-service-card:hover .hmse-service-card-media img { transform: scale(1.05); }
.hmse-media-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--hmse-line-soft), var(--hmse-card-bg)); }
.hmse-service-tag {
	position: absolute; top: 12px; left: 12px; background: var(--hmse-accent); color: #fff;
	font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 4px 10px; border-radius: 4px;
}
.hmse-service-card-body { padding: 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.hmse-service-card-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.hmse-service-card-title-row h3 { font-size: 19px; font-weight: 700; line-height: 1.3; }
.hmse-service-card-icon { padding: 6px; background: var(--hmse-tint-bg); border-radius: 6px; color: var(--hmse-link); flex-shrink: 0; }
.hmse-service-card-desc { font-size: 13px; color: var(--hmse-muted); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hmse-location-pill {
	display: inline-block; background: var(--hmse-line-soft); color: var(--hmse-ink); font-size: 11px; font-weight: 600;
	padding: 4px 10px; border-radius: 4px;
}
.hmse-service-card-footer { padding: 0 24px 24px; }
.hmse-card-btn {
	display: flex; align-items: center; justify-content: center; width: 100%; padding: 10px 16px;
	font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; border-radius: 4px;
}
.hmse-card-btn--solid { background: var(--hmse-dark-green); color: #fff; }
.hmse-card-btn--green { background: var(--hmse-accent); color: #fff; }
.hmse-card-btn--outline { background: transparent; border: 1px solid var(--hmse-accent-line); color: var(--hmse-link-strong); }

/* ---------- Archive hero / filter bar ---------- */
.hmse-archive-hero { background: var(--hmse-section-alt2); border-bottom: 1px solid var(--hmse-archive-border); padding: 40px 0 32px; }
.hmse-archive-hero h1 { font-size: 30px; font-weight: 800; color: var(--hmse-text); margin-bottom: 12px; }
.hmse-archive-hero p { color: var(--hmse-muted-3); max-width: 760px; line-height: 1.6; }
@media (min-width: 768px) { .hmse-archive-hero h1 { font-size: 44px; } }

.hmse-filter-bar { background: var(--hmse-section-alt2); border-bottom: 1px solid var(--hmse-line); z-index: 10; }
@media (min-width: 900px) { .hmse-filter-bar { position: sticky; top: 64px; } }
.hmse-filter-bar-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 14px 24px; }
.hmse-filter-label { font-size: 11px; font-weight: 700; color: var(--hmse-muted-4); letter-spacing: .1em; text-transform: uppercase; flex-shrink: 0; }
.hmse-filter-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.hmse-filter-tab {
	padding: 6px 16px; font-size: 12px; font-weight: 600; border-radius: 4px; white-space: nowrap;
	background: var(--hmse-line); color: var(--hmse-ink-2); transition: all .15s;
}
.hmse-filter-tab:hover { background: var(--hmse-accent-light); color: var(--hmse-link-strong); }
.hmse-filter-tab.is-active { background: var(--hmse-accent); color: #fff; }
.hmse-filter-tab.is-active:hover { background: var(--hmse-accent-hover); color: #fff; }

.hmse-services-list { padding: 40px 0; }
.hmse-empty { text-align: center; color: var(--hmse-muted); padding: 40px 0; grid-column: 1/-1; }

.hmse-callout { background: var(--hmse-section-alt2); padding: 64px 24px; text-align: center; border-top: 1px solid var(--hmse-line); }
.hmse-callout-inner { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.hmse-callout h2 { font-size: 24px; font-weight: 700; }
.hmse-callout p { color: var(--hmse-muted); }
.hmse-callout-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; padding-top: 8px; }

/* ---------- Pagination ---------- */
.navigation.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 32px; }
.nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.page-numbers { padding: 8px 14px; border: 1px solid var(--hmse-border); border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--hmse-muted); }
.page-numbers.current { background: var(--hmse-green); color: #fff; border-color: var(--hmse-green); }
.page-numbers:hover { border-color: var(--hmse-accent-line); color: var(--hmse-link); }

/* ---------- Service detail ---------- */
.hmse-service-detail-hero { background: var(--hmse-section-alt2); border-bottom: 1px solid var(--hmse-line); padding: 32px 0 48px; }
.hmse-service-detail-hero-inner { max-width: 960px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.hmse-breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 500; color: var(--hmse-muted); }
.hmse-breadcrumb a { display: inline-flex; align-items: center; gap: 6px; }
.hmse-breadcrumb a:hover { color: var(--hmse-text); }
.hmse-breadcrumb-current { color: var(--hmse-link-strong); font-weight: 600; }
.hmse-service-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.hmse-badge {
	display: inline-flex; align-items: center; gap: 5px; background: var(--hmse-surface); border: 1px solid var(--hmse-line-soft);
	color: var(--hmse-ink); font-size: 11px; font-weight: 600; padding: 5px 10px; border-radius: 4px;
}
.hmse-badge--dark { background: var(--hmse-accent); color: #fff; border-color: transparent; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.hmse-badge--outline { background: var(--hmse-section-alt2); color: var(--hmse-link-strong); border: none; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 10px; }
.hmse-badge--soft { background: var(--hmse-section-alt2); color: var(--hmse-link-strong); border: none; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; font-size: 10px; }
.hmse-service-detail-hero h1 { font-size: 26px; font-weight: 800; line-height: 1.2; }
@media (min-width: 768px) { .hmse-service-detail-hero h1 { font-size: 38px; } }
.hmse-service-highlights { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 4px; }
.hmse-highlight { display: inline-flex; align-items: center; gap: 6px; background: var(--hmse-glass); border: 1px solid var(--hmse-line-soft); padding: 6px 12px; border-radius: 10px; font-size: 12px; font-weight: 500; }

.hmse-service-detail-body { max-width: 960px; padding: 32px 24px 0; display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 1024px) { .hmse-service-detail-body { grid-template-columns: 2fr 1fr; } }
.hmse-service-detail-main { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.hmse-service-detail-image { position: relative; border-radius: var(--hmse-radius-lg); overflow: hidden; border: 1px solid var(--hmse-line-soft); height: 280px; background: var(--hmse-section-alt2); }
.hmse-service-detail-image img { width: 100%; height: 100%; object-fit: cover; }
.hmse-image-caption-badge { position: absolute; bottom: 16px; left: 16px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; background: rgba(0,0,0,.5); color: #fff; padding: 4px 10px; border-radius: 4px; }

.hmse-panel { background: var(--hmse-surface); border: 1px solid var(--hmse-line-soft); border-radius: var(--hmse-radius-lg); padding: 28px; }
.hmse-panel h2, .hmse-panel h3 { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 700; border-bottom: 1px solid var(--hmse-section-alt2); padding-bottom: 12px; margin-bottom: 16px; }
.hmse-prose { display: flex; flex-direction: column; gap: 14px; color: var(--hmse-ink); font-size: 15px; line-height: 1.7; }
.hmse-prose p { margin: 0; }
.hmse-prose a:not(.hmse-btn):not(.button):not(.wp-block-button__link) { color: var(--hmse-link-strong); text-decoration: underline; text-underline-offset: 2px; }
.hmse-prose a:not(.hmse-btn):not(.button):not(.wp-block-button__link):hover { color: var(--hmse-link-hover); }
.hmse-prose h3, .hmse-prose h4 { display: block; border-bottom: 0; padding-bottom: 0; margin: 10px 0 0; font-size: 16px; font-weight: 700; color: var(--hmse-text); }
.hmse-prose ul, .hmse-prose ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.hmse-prose ul { list-style: disc; }
.hmse-prose ol { list-style: decimal; }
.hmse-booking-actions { margin-top: 20px; }

.hmse-check-list { display: flex; flex-direction: column; gap: 10px; }
.hmse-check-list li { display: flex; align-items: flex-start; gap: 10px; background: var(--hmse-bg); border: 1px solid var(--hmse-section-alt2); padding: 12px 14px; border-radius: 10px; font-size: 13px; font-weight: 500; }
.hmse-check-list .hmse-icon { color: var(--hmse-link-strong); margin-top: 2px; }

.hmse-doc-grid { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 12px; }
@media (min-width: 640px) { .hmse-doc-grid { grid-template-columns: repeat(2, 1fr); } }
.hmse-doc-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; background: var(--hmse-amber-bg); border: 1px solid var(--hmse-amber-border); font-size: 12px; font-weight: 600; color: var(--hmse-amber-ink); }
.hmse-doc-item .hmse-icon { color: var(--hmse-amber); }

.hmse-note { margin-top: 16px; padding: 14px; background: var(--hmse-accent-light); border: 1px solid rgba(var(--hmse-accent-rgb),.3); border-radius: 10px; display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--hmse-link-strong); font-weight: 500; line-height: 1.6; }
.hmse-note--muted { background: var(--hmse-panel-alt); border-color: rgba(var(--hmse-border-rgb),.6); color: var(--hmse-muted); }

.hmse-service-detail-aside { display: flex; flex-direction: column; gap: 20px; }
.hmse-contact-card { background: var(--hmse-surface); border: 2px solid var(--hmse-accent-line); border-radius: var(--hmse-radius-lg); padding: 24px; display: flex; flex-direction: column; gap: 18px; }
.hmse-contact-card h3 { font-size: 17px; font-weight: 800; margin-top: 8px; }
.hmse-contact-row { padding-top: 10px; border-top: 1px solid var(--hmse-section-alt2); display: flex; flex-direction: column; gap: 4px; }
.hmse-contact-row:first-of-type { border-top: none; padding-top: 0; }
.hmse-contact-label { font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--hmse-muted-2); }
.hmse-contact-value--strong { font-size: 14px; font-weight: 700; }
.hmse-contact-pill { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--hmse-link-strong); background: var(--hmse-section-alt); padding: 8px 12px; border-radius: 8px; }
.hmse-contact-pill:hover { background: var(--hmse-hover-bg); }
.hmse-contact-pill--mail { color: var(--hmse-link-strong); background: var(--hmse-accent-light); font-size: 12px; font-weight: 600; word-break: break-all; }
.hmse-contact-pill--mail:hover { background: var(--hmse-accent-light-hover); }
.hmse-contact-address { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; background: var(--hmse-bg); border: 1px solid var(--hmse-section-alt2); padding: 10px; border-radius: 8px; }
.hmse-contact-card-actions { display: flex; flex-direction: column; gap: 8px; padding-top: 8px; border-top: 1px solid var(--hmse-section-alt2); }
.hmse-info-card { background: var(--hmse-info-bg); border: 1px solid var(--hmse-line-soft); border-radius: var(--hmse-radius-lg); padding: 20px; font-size: 12px; color: var(--hmse-muted); display: flex; flex-direction: column; gap: 8px; }
.hmse-info-card h4 { font-weight: 700; color: var(--hmse-text); }

.hmse-related-services { padding: 48px 24px 96px; border-top: 1px solid var(--hmse-line); margin-top: 48px; }
.hmse-related-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.hmse-related-heading h3 { font-size: 22px; font-weight: 800; }
.hmse-link-arrow { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--hmse-link-strong); }
.hmse-link-arrow:hover { text-decoration: underline; }
.hmse-related-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .hmse-related-grid { grid-template-columns: repeat(3, 1fr); } }
.hmse-related-card { background: var(--hmse-surface); border: 1px solid var(--hmse-line-soft); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; gap: 12px; transition: border-color .15s, box-shadow .15s; }
.hmse-related-card:hover { border-color: var(--hmse-accent-line); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.hmse-related-card-top { display: flex; justify-content: space-between; font-size: 11px; }
.hmse-related-tag { font-weight: 800; color: var(--hmse-link-strong); }
.hmse-related-card h4 { font-size: 14px; font-weight: 700; line-height: 1.4; }
.hmse-related-card p { font-size: 12px; color: var(--hmse-muted); }

/* ---------- About page ---------- */
.hmse-about { padding: 64px 0; }
.hmse-about-inner { display: flex; flex-direction: column; gap: 48px; }
.hmse-about-grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .hmse-about-grid { grid-template-columns: repeat(2, 1fr); } }
.hmse-about-story { font-size: 16px; }
.hmse-about-centers-card { background: var(--hmse-surface); padding: 24px; border-radius: var(--hmse-radius); border: 1px solid var(--hmse-border); display: flex; flex-direction: column; gap: 20px; }
.hmse-about-centers-card h3 { font-size: 19px; font-weight: 700; }
.hmse-about-centers-list { display: flex; flex-direction: column; gap: 16px; }
.hmse-about-center-row { display: flex; align-items: flex-start; gap: 12px; }
.hmse-about-center-icon { padding: 8px; background: rgba(var(--hmse-accent-rgb),.1); color: var(--hmse-link); border-radius: 6px; margin-top: 2px; flex-shrink: 0; }
.hmse-about-center-row h3 { font-size: 13px; font-weight: 700; }
.hmse-about-center-row p { font-size: 12px; color: var(--hmse-muted); margin-top: 2px; }
.hmse-milestones { display: flex; flex-direction: column; gap: 24px; padding-top: 24px; border-top: 1px solid var(--hmse-border); }
.hmse-milestones h3 { font-size: 22px; font-weight: 700; }
.hmse-milestone-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .hmse-milestone-grid { grid-template-columns: repeat(4, 1fr); } }
.hmse-milestone-card { background: var(--hmse-surface); padding: 20px; border-radius: var(--hmse-radius); border: 1px solid var(--hmse-border); }
.hmse-milestone-year { font-size: 22px; font-weight: 700; color: var(--hmse-link); }
.hmse-milestone-card h3 { font-size: 13px; font-weight: 700; margin-top: 4px; }
.hmse-milestone-card p { font-size: 12px; color: var(--hmse-muted); margin-top: 8px; }

.hmse-cta-banner { background: var(--hmse-green); color: #fff; padding: 32px; border-radius: var(--hmse-radius); display: flex; flex-direction: column; gap: 20px; align-items: flex-start; justify-content: space-between; }
.hmse-cta-banner h3 { font-size: 22px; font-weight: 700; }
.hmse-cta-banner p { font-size: 13px; color: var(--hmse-green-light); margin-top: 4px; }
.hmse-cta-banner-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (min-width: 768px) { .hmse-cta-banner { flex-direction: row; align-items: center; } }

/* ---------- Contact page ---------- */
.hmse-contact { padding: 48px 0 80px; }
.hmse-contact-inner { display: flex; flex-direction: column; gap: 40px; }
.hmse-office-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 640px) { .hmse-office-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .hmse-office-tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.hmse-office-tab { text-align: left; padding: 16px; border-radius: 12px; border: 1px solid var(--hmse-line-soft); background: var(--hmse-section-alt); display: flex; flex-direction: column; justify-content: space-between; gap: 12px; transition: all .15s; }
.hmse-office-tab:hover { background: var(--hmse-office-hover-bg); border-color: var(--hmse-office-hover-border); }
.hmse-office-tab.is-active { background: var(--hmse-surface); border-color: var(--hmse-accent-line); box-shadow: 0 3px 10px rgba(var(--hmse-accent-rgb),.12); }
.hmse-office-tab-city { display: block; overflow-wrap: anywhere; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--hmse-muted-2); }
.hmse-office-tab.is-active .hmse-office-tab-city { color: var(--hmse-link-strong); }
.hmse-office-tab-name { display: block; overflow-wrap: anywhere; font-size: 13px; font-weight: 700; margin-top: 4px; }

.hmse-office-detail { background: var(--hmse-surface); padding: 24px; border-radius: 18px; border: 1px solid var(--hmse-line-soft); display: flex; flex-direction: column; gap: 28px; }
@media (min-width: 768px) { .hmse-office-detail { padding: 40px; } }
.hmse-office-detail-header { display: flex; flex-direction: column; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid var(--hmse-section-alt2); }
@media (min-width: 768px) { .hmse-office-detail-header { flex-direction: row; align-items: center; justify-content: space-between; } }
.hmse-office-detail-header h2 { font-size: 24px; font-weight: 800; margin-top: 6px; }
@media (min-width: 768px) { .hmse-office-detail-header h2 { font-size: 28px; } }
.hmse-office-quick-grid { display: grid; grid-template-columns: 1fr; gap: 14px; font-size: 13px; }
@media (min-width: 640px) { .hmse-office-quick-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .hmse-office-quick-grid { grid-template-columns: repeat(4, 1fr); } }
.hmse-office-quick-item { background: var(--hmse-bg); border: 1px solid var(--hmse-section-alt2); padding: 14px; border-radius: 12px; display: flex; align-items: flex-start; gap: 10px; }
.hmse-office-quick-item .hmse-icon { color: var(--hmse-link-strong); margin-top: 2px; }
.hmse-office-quick-item strong { display: block; font-size: 11px; text-transform: uppercase; color: var(--hmse-muted-2); }
.hmse-office-map { border-radius: 16px; overflow: hidden; border: 1px solid var(--hmse-line-soft); height: 320px; }
.hmse-office-map iframe { width: 100%; height: 100%; border: 0; }
.hmse-office-columns { display: grid; grid-template-columns: 1fr; gap: 28px; }
@media (min-width: 1024px) { .hmse-office-columns { grid-template-columns: 7fr 5fr; } }
.hmse-office-persons h3, .hmse-office-services h3 { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 14px; }
.hmse-person-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 640px) { .hmse-person-grid { grid-template-columns: repeat(2, 1fr); } }
.hmse-person-card { background: var(--hmse-bg); border: 1px solid var(--hmse-line); padding: 14px; border-radius: 12px; display: flex; flex-direction: column; gap: 6px; }
.hmse-person-role { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--hmse-muted-2); }
.hmse-person-name { font-size: 14px; font-weight: 700; }
.hmse-person-contact { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--hmse-link-strong); margin-top: 4px; }
.hmse-person-contact--mail { color: var(--hmse-link-strong); font-weight: 600; word-break: break-all; }
.hmse-service-tick-list { display: flex; flex-direction: column; gap: 8px; }
.hmse-service-tick-list li { display: flex; align-items: center; gap: 10px; font-size: 12px; background: var(--hmse-bg); border: 1px solid var(--hmse-section-alt2); padding: 10px; border-radius: 12px; font-weight: 500; color: var(--hmse-ink); }
.hmse-service-tick-list .hmse-icon { color: var(--hmse-link-strong); }
.hmse-office-footer-note { padding-top: 20px; border-top: 1px solid var(--hmse-section-alt2); display: flex; flex-direction: column; gap: 8px; font-size: 12px; color: var(--hmse-muted); }
@media (min-width: 640px) { .hmse-office-footer-note { flex-direction: row; align-items: center; justify-content: space-between; } }

/* ---------- Forms (Time booking / Rental / Join / Donation) ---------- */
.hmse-form-page { padding: 56px 0 88px; }
.hmse-form-page--narrow .hmse-form-page-inner { max-width: 640px; margin: 0 auto; }
.hmse-form-page-inner { display: flex; flex-direction: column; gap: 28px; }
.hmse-alert { display: flex; gap: 14px; padding: 20px; border-radius: 12px; align-items: flex-start; }
.hmse-alert--success { background: var(--hmse-accent-light); border: 1px solid rgba(var(--hmse-accent-rgb),.3); color: var(--hmse-on-tint); }
.hmse-alert--success .hmse-icon { color: var(--hmse-link); }
.hmse-alert--success h3 { font-size: 18px; font-weight: 700; margin-bottom: 6px; }
.hmse-alert--error { background: var(--hmse-error-bg); border: 1px solid var(--hmse-error-border); color: var(--hmse-error-text); }
.hmse-alert--error .hmse-icon { color: var(--hmse-error-icon); }

.hmse-form { background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); padding: 28px; display: flex; flex-direction: column; gap: 18px; }
.hmse-form-row { display: grid; grid-template-columns: 1fr; gap: 16px; }
.hmse-form-row--2 { grid-template-columns: 1fr; }
@media (min-width: 640px) { .hmse-form-row--2 { grid-template-columns: repeat(2, 1fr); } }
.hmse-field { display: flex; flex-direction: column; gap: 6px; }
.hmse-field label { font-size: 12px; font-weight: 600; }
.hmse-field input, .hmse-field select, .hmse-field textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--hmse-field-border); border-radius: 6px; background: var(--hmse-surface); color: var(--hmse-text);
}
.hmse-field input:focus, .hmse-field select:focus, .hmse-field textarea:focus { border-color: var(--hmse-link); }
.hmse-form-actions { display: flex; justify-content: flex-end; gap: 12px; padding-top: 4px; }
.hmse-form-page--narrow .hmse-form-actions { justify-content: stretch; }
.hmse-hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.hmse-role-picker { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hmse-role-option { position: relative; }
.hmse-role-option input { position: absolute; opacity: 0; }
.hmse-role-option span {
	display: block; text-align: center; padding: 10px 8px; font-size: 12px; font-weight: 700; border-radius: 6px;
	border: 1px solid var(--hmse-border); background: var(--hmse-panel-alt); color: var(--hmse-muted);
}
.hmse-role-option input:checked + span { background: var(--hmse-green); color: #fff; border-color: var(--hmse-green); }

.hmse-notice-banner { display: flex; align-items: flex-start; gap: 12px; background: var(--hmse-accent-light); border: 1px solid rgba(var(--hmse-accent-rgb),.3); border-radius: var(--hmse-radius); padding: 16px; font-size: 13px; color: var(--hmse-on-tint); }
.hmse-notice-banner .hmse-icon { color: var(--hmse-link); }
.hmse-strong { font-weight: 700; }

.hmse-equipment-catalog { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 8px 0; }
@media (min-width: 640px) { .hmse-equipment-catalog { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .hmse-equipment-catalog { grid-template-columns: repeat(3, 1fr); } }
.hmse-equipment-card { background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; transition: border-color .15s; }
.hmse-equipment-card:hover { border-color: var(--hmse-accent-line); }
.hmse-equipment-media { position: relative; height: 176px; background: var(--hmse-card-bg); display: block; }
.hmse-equipment-media img { width: 100%; height: 100%; object-fit: cover; }
.hmse-equipment-status { position: absolute; top: 10px; right: 10px; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 4px; color: #fff; }
.hmse-equipment-status--elerheto { background: var(--hmse-green); }
.hmse-equipment-status--kolcsonozve { background: #b45309; }
.hmse-equipment-status--karbantartas { background: #6b7280; }
.hmse-equipment-body { padding: 16px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.hmse-equipment-body h2 { font-size: 15px; font-weight: 700; }
.hmse-equipment-body p { font-size: 12px; color: var(--hmse-muted); }
.hmse-equipment-footer { padding: 14px 16px; background: var(--hmse-panel-alt); border-top: 1px solid rgba(var(--hmse-border-rgb),.4); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hmse-equipment-price { font-size: 16px; font-weight: 700; color: var(--hmse-link); }
.hmse-equipment-price--lg { font-size: 22px; }
.hmse-muted-sm { font-size: 12px; color: var(--hmse-muted); }
.hmse-mono-sm { font-family: ui-monospace, monospace; font-size: 12px; color: var(--hmse-muted); display: inline-flex; align-items: center; gap: 6px; }

.hmse-form-panel { background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); padding: 24px; margin-top: 8px; }
.hmse-form-panel h3 { font-size: 16px; font-weight: 700; margin-bottom: 16px; }

.hmse-equipment-single { padding: 48px 0 88px; }
.hmse-equipment-single-inner { display: flex; flex-direction: column; gap: 24px; }
.hmse-equipment-single-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 900px) { .hmse-equipment-single-grid { grid-template-columns: 1fr 1fr; } }
.hmse-equipment-single-media { position: relative; border-radius: var(--hmse-radius-lg); overflow: hidden; border: 1px solid var(--hmse-border); }
.hmse-equipment-single-grid h1 { font-size: 26px; font-weight: 800; margin: 10px 0 16px; }
.hmse-equipment-price-box { display: flex; gap: 24px; padding: 20px 0; margin: 20px 0; border-top: 1px solid var(--hmse-section-alt2); border-bottom: 1px solid var(--hmse-section-alt2); }

/* ---------- Form: fieldset, consent checkbox, hints ---------- */
.hmse-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.hmse-fieldset legend { font-size: 13px; font-weight: 700; margin-bottom: 8px; padding: 0; }
.hmse-check, .hmse-field .hmse-check { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; font-weight: 400; line-height: 1.5; cursor: pointer; }
.hmse-check input[type="checkbox"] { flex: 0 0 auto; width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--hmse-accent); }
.hmse-check a, .hmse-link-btn { color: var(--hmse-link-strong); text-decoration: underline; font-weight: 600; }
.hmse-link-btn { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
.hmse-form-hint { margin: 0; font-size: 14px; color: var(--hmse-muted); }

/* ---------- Donation page (bank transfer only) ---------- */
.hmse-donate-jump { display: flex; flex-wrap: wrap; gap: 8px; }
.hmse-donate-jump a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--hmse-border); border-radius: 999px; background: var(--hmse-surface); color: var(--hmse-link-strong); font-weight: 600; font-size: 15px; text-decoration: none; }
.hmse-donate-jump a:hover { background: var(--hmse-accent-light); border-color: var(--hmse-link); }
.hmse-donate-section { scroll-margin-top: 96px; display: flex; flex-direction: column; gap: 16px; }
.hmse-donate-section > h2 { margin-bottom: 0; }
.hmse-donate-section p { line-height: 1.6; }
.hmse-panel h3 .hmse-icon { margin-right: 6px; }
.hmse-bank-accounts { display: grid; gap: 12px; }
@media (min-width: 720px) { .hmse-bank-accounts { grid-template-columns: 1fr 1fr; } .hmse-bank-meta { grid-column: 1 / -1; } }
.hmse-bank-card { background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-left: 4px solid var(--hmse-accent); border-radius: var(--hmse-radius); padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.hmse-bank-card-head { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--hmse-link); }
.hmse-iban { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.hmse-iban-label { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--hmse-muted); }
.hmse-iban-value { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 19px; font-weight: 700; letter-spacing: .02em; color: var(--hmse-text); word-spacing: .15em; overflow-wrap: break-word; user-select: all; }
.hmse-copy-btn { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 15px; }
.hmse-copy-btn.is-copied { background: var(--hmse-green); border-color: var(--hmse-green); color: #fff; }
.hmse-bank-meta { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 15px; }
.hmse-bank-meta div { display: flex; gap: 6px; }
.hmse-bank-meta dt, .hmse-data-list dt { font-weight: 600; color: var(--hmse-muted); }
.hmse-bank-meta dd, .hmse-data-list dd { margin: 0; font-weight: 600; }
.hmse-data-box { padding: 16px; background: var(--hmse-panel-alt); border-radius: 6px; border: 1px solid rgba(var(--hmse-border-rgb),.6); font-size: 15px; display: flex; flex-direction: column; gap: 8px; }
.hmse-data-box-title { color: var(--hmse-link); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; margin: 0; }
.hmse-data-list { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.hmse-data-list div { display: flex; flex-wrap: wrap; gap: 0 6px; }
.hmse-location-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 720px) { .hmse-location-list { grid-template-columns: 1fr 1fr; } }
.hmse-location-card { border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); padding: 16px; background: var(--hmse-surface); display: flex; flex-direction: column; gap: 10px; }
.hmse-panel .hmse-location-card h3 { font-size: 17px; border: 0; padding: 0; margin: 0; }
.hmse-location-card p { margin: 0; }
.hmse-location-address { font-weight: 600; }
.hmse-location-hours-title { display: flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: var(--hmse-muted); }
.hmse-location-hours ul { margin: 4px 0 0; padding-left: 22px; }
.hmse-location-note { color: var(--hmse-muted); font-size: 15px; }
.hmse-location-map { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }

/* ---------- News ---------- */
.hmse-news { padding: 56px 0; }
.hmse-news-filter-bar { display: flex; flex-direction: column; gap: 16px; background: var(--hmse-surface); padding: 16px; border-radius: var(--hmse-radius); border: 1px solid var(--hmse-border); margin: 24px 0; }
@media (min-width: 720px) { .hmse-news-filter-bar { flex-direction: row; align-items: center; justify-content: space-between; } }
.hmse-search-form { position: relative; width: 100%; max-width: 320px; }
.hmse-search-form .hmse-icon { position: absolute; left: 12px; top: 10px; color: var(--hmse-muted); }
.hmse-search-form input { width: 100%; padding: 8px 12px 8px 34px; border: 1px solid var(--hmse-field-border); border-radius: 6px; background: var(--hmse-surface); color: var(--hmse-text); }
.hmse-news-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .hmse-news-grid { grid-template-columns: repeat(3, 1fr); } }
.hmse-news-card { background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; transition: border-color .15s, box-shadow .15s; }
.hmse-news-card:hover { border-color: var(--hmse-accent-line); box-shadow: 0 6px 14px rgba(0,0,0,.06); }
.hmse-news-card-media { position: relative; height: 192px; background: var(--hmse-card-bg); overflow: hidden; }
.hmse-news-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.hmse-news-card:hover .hmse-news-card-media img { transform: scale(1.05); }
.hmse-news-card-tag { position: absolute; top: 12px; left: 12px; background: var(--hmse-green); color: #fff; font-size: 10px; font-weight: 700; text-transform: uppercase; padding: 4px 10px; border-radius: 4px; }
.hmse-news-card-body { padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.hmse-news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; font-size: 12px; color: var(--hmse-muted); }
.hmse-news-meta span { display: inline-flex; align-items: center; gap: 4px; }
.hmse-news-card-body .hmse-card-heading, .hmse-news-card-body h3 { font-size: 17px; font-weight: 700; line-height: 1.35; }
.hmse-news-card-body p { font-size: 12px; color: var(--hmse-muted); line-height: 1.6; }
.hmse-news-card-footer { padding: 0 20px 20px; }

.hmse-news-single { padding: 48px 0 88px; }
.hmse-news-single-inner { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.hmse-news-single-inner h1 { font-size: 28px; font-weight: 800; line-height: 1.25; }
.hmse-news-single-media { border-radius: var(--hmse-radius-lg); overflow: hidden; border: 1px solid var(--hmse-border); }

/* ---------- Knowledge base ---------- */
.hmse-knowledge-archive { padding: 48px 0 88px; }
.hmse-knowledge-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .hmse-knowledge-grid { grid-template-columns: repeat(2, 1fr); } }
.hmse-knowledge-card { background: var(--hmse-surface); padding: 24px; border-radius: var(--hmse-radius); border: 1px solid var(--hmse-border); display: flex; flex-direction: column; gap: 14px; justify-content: space-between; transition: border-color .15s; }
.hmse-knowledge-card:hover { border-color: var(--hmse-accent-line); }
.hmse-knowledge-card-top { display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.hmse-knowledge-card-top .hmse-eyebrow { color: var(--hmse-link-strong); font-weight: 700; margin: 0; }
.hmse-knowledge-card h3 { font-size: 17px; font-weight: 700; line-height: 1.4; }
.hmse-knowledge-card p { font-size: 12px; color: var(--hmse-muted); line-height: 1.6; }
.hmse-knowledge-download { padding-top: 14px; border-top: 1px solid rgba(var(--hmse-border-rgb),.4); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.hmse-knowledge-download--single { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--hmse-border); }
.hmse-knowledge-single { padding: 48px 0 88px; }
.hmse-knowledge-single-inner { max-width: 720px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.hmse-knowledge-single-inner h1 { font-size: 26px; font-weight: 800; margin-top: 4px; }

/* ---------- Generic page / 404 ---------- */
.hmse-generic-page { padding: 56px 0 88px; }
.hmse-generic-page-inner { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.hmse-generic-page-inner h1 { font-size: 28px; font-weight: 800; }
.hmse-404 { padding: 96px 0; text-align: center; }
.hmse-404-inner { max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; align-items: center; }
.hmse-404 h1 { font-size: 26px; font-weight: 800; }

/* ---------- Footer ---------- */
.hmse-footer { background: var(--hmse-section-alt2); border-top: 1px solid var(--hmse-line); padding: 24px; font-size: 12px; color: var(--hmse-muted); }
.hmse-footer-inner { max-width: var(--hmse-max); margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
@media (min-width: 900px) { .hmse-footer-inner { flex-direction: row; justify-content: space-between; text-align: left; } }
.hmse-footer-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; }
.hmse-footer-logo { font-size: 17px; font-weight: 700; color: var(--hmse-text); }
.hmse-footer-logo:hover { color: var(--hmse-link-strong); }
.hmse-footer-sep { color: var(--hmse-border); }
.hmse-footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.hmse-footer-legal-btn { background: none; border: none; font: inherit; color: var(--hmse-muted); padding: 0; }
.hmse-footer-legal-btn:hover { color: var(--hmse-text); text-decoration: underline; }
.hmse-footer-right { display: flex; align-items: center; gap: 12px; }
.hmse-footer-icon-link { padding: 6px; }
.hmse-footer-icon-link:hover { color: var(--hmse-text); }

/* ---------- Modals (legal text) ---------- */
.hmse-legal-modal, .hmse-modal-overlay { position: fixed; inset: 0; z-index: 60; }
.hmse-legal-modal[hidden] { display: none; }
.hmse-legal-modal { display: flex; align-items: center; justify-content: center; padding: 16px; }
.hmse-modal-overlay { background: rgba(0,0,0,.6); backdrop-filter: blur(2px); }
.hmse-modal-panel { position: relative; background: var(--hmse-surface); border-radius: var(--hmse-radius); max-width: 560px; width: 100%; max-height: 85vh; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--hmse-border); box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.hmse-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; background: var(--hmse-green); color: #fff; }
.hmse-modal-header h2 { font-size: 18px; font-weight: 700; }
.hmse-modal-close { background: none; border: none; color: #fff; padding: 6px; border-radius: 999px; }
.hmse-modal-close:hover { background: rgba(255,255,255,.15); }
.hmse-modal-body { padding: 24px; overflow-y: auto; font-size: 14px; line-height: 1.7; color: var(--hmse-muted); }
.hmse-modal-body p { margin: 0 0 12px; }

/* ---------- WooCommerce ---------- */
.hmse-woo-hero { background: var(--hmse-shop-dark); color: #fff; padding: 48px 24px; margin: 0 0 32px; }
.hmse-woo-hero h1 { font-size: 32px; font-weight: 800; margin: 8px 0; }
.hmse-woo-hero p { color: #c8efe1; max-width: 640px; line-height: 1.6; }
.hmse-woo-badge { display: inline-block; font-size: 10px; background: rgba(0,0,0,.65); color: #fff; padding: 3px 8px; border-radius: 4px; margin: 8px 0 4px; }
.hmse-woo-badge--single { background: none; color: var(--hmse-muted); padding: 0; font-size: 12px; }

/* ---------- Content safety (images, tables, embeds in editor content) ---------- */
.hmse-prose { overflow-wrap: break-word; }
.hmse-prose img, .hmse-prose video, .hmse-prose iframe { max-width: 100%; }
.hmse-prose figure { margin: 0; max-width: 100%; }
.hmse-prose table { display: block; max-width: 100%; overflow-x: auto; }
.hmse-prose pre { max-width: 100%; overflow-x: auto; }

/* ---------- Labels, tags, badges: never below 12 px at any width ---------- */
.hmse-service-tag, .hmse-news-card-tag, .hmse-woo-badge, .hmse-badge, .hmse-badge--outline, .hmse-badge--soft, .hmse-location-pill,
.hmse-filter-label, .hmse-office-tab-city, .hmse-person-role, .hmse-contact-label, .hmse-office-quick-item strong,
.hmse-related-card-top, .hmse-eyebrow--sm, .hmse-equipment-status, .hmse-data-box-title, .hmse-card-btn { font-size: 12px; }

/* ---------- Touch devices and tablets: 44x44 px tap targets, no iOS focus-zoom ---------- */
@media (max-width: 899px), (pointer: coarse) {
	input, select, textarea { font-size: 16px; }
	.hmse-field input, .hmse-field select, .hmse-search-form input { min-height: 44px; }
	.hmse-search-form .hmse-icon { top: 12px; }
	.hmse-filter-tab { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
	.hmse-btn-sm { min-height: 44px; }
	.hmse-role-option span { display: flex; align-items: center; justify-content: center; min-height: 44px; }
	.hmse-modal-close { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; }
	.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
	.hmse-breadcrumb a, .hmse-link-arrow, .hmse-person-contact, .hmse-contact-pill { min-height: 44px; }
	.hmse-footer-logo, .hmse-footer-legal-btn { display: inline-flex; align-items: center; min-height: 44px; }
	.hmse-footer-links { gap: 0 16px; }
	.hmse-nav-link { position: relative; }
	.hmse-nav-link::after { content: ""; position: absolute; inset: -10px -8px; }
	.hmse-footer-icon-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; }
}

/* ---------- Phones ---------- */
@media (max-width: 639px) {
	.hmse-service-grid, .hmse-news-grid, .hmse-related-grid, .hmse-person-grid, .hmse-office-quick-grid, .hmse-office-columns,
	.hmse-equipment-catalog, .hmse-form-row, .hmse-knowledge-grid, .hmse-doc-grid, .hmse-milestone-grid, .hmse-about-grid,
	.hmse-service-detail-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	h1, h2, h3, h4 { overflow-wrap: break-word; }
	.hmse-header-inner, .hmse-filter-bar-inner, .hmse-footer { padding-left: 16px; padding-right: 16px; }
	.hmse-hero, .hmse-callout, .hmse-woo-hero { padding-left: 16px; padding-right: 16px; }
	.hmse-service-detail-body, .hmse-related-services { padding-left: 16px; padding-right: 16px; }
	.hmse-filter-label { flex-basis: 100%; }

	.hmse-card-btn { font-size: 13px; padding: 12px 16px; }

	/* secondary copy: 14 px */
	.hmse-service-card-desc, .hmse-news-card-body p, .hmse-knowledge-card p, .hmse-equipment-body p, .hmse-related-card p,
	.hmse-about-center-row p, .hmse-milestone-card p, .hmse-info-card, .hmse-office-footer-note, .hmse-service-tick-list li,
	.hmse-doc-item, .hmse-contact-address, .hmse-office-quick-grid, .hmse-check-list li, .hmse-note, .hmse-notice-banner,
	.hmse-news-meta, .hmse-field label, .hmse-breadcrumb, .hmse-link-arrow, .hmse-highlight, .hmse-muted, .hmse-muted-sm,
	.hmse-mono-sm, .hmse-footer, .hmse-stat-label, .hmse-cta-banner p, .hmse-btn-sm, .hmse-person-contact, .hmse-contact-pill--mail,
	.hmse-role-option span { font-size: 14px; }
}
@media (max-width: 479px) {
	.hmse-office-tab-city { text-transform: none; letter-spacing: 0; }
}
@media (max-width: 359px) {
	.hmse-office-tabs { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Közérdekű dokumentumok ---------- */
.hmse-documents { padding: 64px 0; }
.hmse-documents-inner { display: flex; flex-direction: column; gap: 32px; }
.hmse-doc-empty { display: flex; align-items: center; gap: 10px; margin: 0; padding: 14px 16px; background: var(--hmse-panel-alt); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius-sm); color: var(--hmse-ink); font-size: 15px; }
.hmse-doc-empty .hmse-icon { color: var(--hmse-link); flex-shrink: 0; }
.hmse-doc-groups { display: flex; flex-direction: column; gap: 40px; }
.hmse-doc-group-title { font-size: 20px; font-weight: 800; color: var(--hmse-text); margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--hmse-accent-line); }
.hmse-doc-list { display: flex; flex-direction: column; gap: 12px; list-style: none; margin: 0; padding: 0; }
.hmse-doc-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; background: var(--hmse-surface); border: 1px solid var(--hmse-border); border-radius: var(--hmse-radius); padding: 16px 20px; }
.hmse-doc-item-main { flex: 1; min-width: 220px; }
.hmse-doc-title { font-weight: 700; font-size: 15px; color: var(--hmse-text); margin: 0 0 4px; }
.hmse-doc-desc { font-size: 13px; color: var(--hmse-muted); margin: 0 0 6px; }
.hmse-doc-meta { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--hmse-muted-2); margin: 0; }
.hmse-doc-meta .hmse-icon { color: var(--hmse-link); }
.hmse-doc-filetype { font-weight: 700; letter-spacing: .03em; background: var(--hmse-accent-light); color: var(--hmse-link-strong); padding: 2px 8px; border-radius: 4px; font-size: 11px; }
.hmse-doc-download { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #fff; background: var(--hmse-accent); padding: 10px 16px; border-radius: var(--hmse-radius-sm); white-space: nowrap; text-decoration: none; transition: background .15s; }
.hmse-doc-download:hover { background: var(--hmse-accent-hover); }
@media (max-width: 640px) {
	.hmse-doc-item { flex-direction: column; align-items: stretch; }
	.hmse-doc-download { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
	.hmse-service-card:hover .hmse-service-card-media img, .hmse-news-card:hover .hmse-news-card-media img { transform: none; }
}

/* Free editor content on template pages */
.hmse-page-blocks { font-size: 16px; }
.hmse-page-blocks img { max-width: 100%; height: auto; border-radius: var(--hmse-radius); }
.hmse-front-blocks { padding: 48px 0 0; }

/* --- Theme 1.2.0: legal round --- */
/* Heading levels were corrected in the templates; these keep the previous look. */
.hmse-service-card-title-row .hmse-card-heading { font-size: 19px; font-weight: 700; line-height: 1.3; }
.hmse-milestones .hmse-h3, .hmse-cta-banner .hmse-h3 { font-size: 22px; font-weight: 700; }
.hmse-about-centers-card .hmse-h3 { font-size: 19px; font-weight: 700; }
.hmse-footer-menu { display: flex; flex-wrap: wrap; align-items: center; gap: inherit; margin: 0; padding: 0; list-style: none; }
.hmse-map-consent { display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--hmse-surface); border: 1px solid var(--hmse-border); }
.hmse-map-placeholder { max-width: 460px; text-align: center; color: var(--hmse-text); }
.hmse-map-placeholder p { margin: 8px 0 16px; }
.hmse-h3 { font-size: 1.25rem; font-weight: 700; }
.hmse-equipment-inperson { display: flex; gap: 8px; align-items: flex-start; margin-top: 16px; }
.hmse-contact-legal { margin-top: 32px; }
.hmse-contact-legal h2 { font-size: 1.25rem; margin-bottom: 12px; }
.hmse-legal-data { margin: 16px 0; display: grid; gap: 8px; }
.hmse-legal-data > div { display: grid; grid-template-columns: minmax(150px, 280px) 1fr; gap: 4px 16px; padding-bottom: 8px; border-bottom: 1px solid var(--hmse-border-soft); }
.hmse-legal-data dt { font-weight: 600; }
.hmse-legal-data dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .hmse-legal-data > div { grid-template-columns: 1fr; } }
.hmse-placeholder { background: #fff3bf; color: #4a3b00; padding: 0 4px; }
.hmse-field-error { margin: 6px 0 0; font-weight: 600; color: #a61b1b; }
:root[data-theme="dark"] .hmse-field-error { color: #ffb4ab; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .hmse-field-error { color: #ffb4ab; } }
.hmse-field [aria-invalid="true"] { border-color: currentColor; outline: 2px solid #a61b1b; outline-offset: 1px; }
.hmse-prose table { width: 100%; border-collapse: collapse; }
.hmse-prose th, .hmse-prose td { border: 1px solid var(--hmse-border); padding: 8px; text-align: left; vertical-align: top; }
.hmse-prose .wp-block-table { overflow-x: auto; }

/* Statistics consent: in the page flow, so it never covers content or focus, also at 200% zoom. */
.hmse-consent { background: var(--hmse-surface); border-bottom: 2px solid var(--hmse-link); color: var(--hmse-text); }
.hmse-consent:focus { outline: none; }
.hmse-consent-inner { max-width: 1200px; margin: 0 auto; padding: 16px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
.hmse-consent-text { flex: 1 1 420px; min-width: 0; }
.hmse-consent-text h2 { font-size: 17px; font-weight: 700; margin-bottom: 4px; }
.hmse-consent-text p { font-size: 14px; line-height: 1.5; }
.hmse-consent-text a { color: var(--hmse-link); text-decoration: underline; }
.hmse-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
