/* ==========================================================================
 * START: NAHSE DFW Events Page styles   [nahse_events_page]
 * File: /wp-content/themes/Avada-Child-Theme/assets/css/nahse-events-page.css
 * Loaded only on pages that use the shortcode. Every selector is scoped to
 * .nhe or to a page that contains it.
 * v1.1.0 (pre-launch audit): toolbar sticks 88px from the top so it sits
 * under the fixed NAHSE mobile header (88px, Small + Medium screens) and the
 * sticky Avada header, matching the Jobs/Gallery/News offsets. Admin bar
 * offsets follow WordPress (32px, 46px at <=782px, none at <=600px).
 * ========================================================================== */

/* --------------------------------------------------------------------------
 * Avada layout resets: only on the page that holds the calendar
 * ----------------------------------------------------------------------- */
body.nahse-evp-page #main,
body:has(.nhe) #main {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
html.nhe-lock,
html.nhe-lock body {
	overflow: hidden !important;
}

/* --------------------------------------------------------------------------
 * Base
 * ----------------------------------------------------------------------- */
.nhe {
	--nhe-navy: #0a1433;
	--nhe-blue: #003194;
	--nhe-gold: #f2c14e;
	--nhe-cream: #f6f5f2;
	--nhe-ice: #eef1fb;
	--nhe-line: #eceef4;
	--nhe-line2: #dfe3ee;
	--nhe-muted: #4a5373;
	--nhe-soft: #7a8199;
	--nhe-ease: cubic-bezier(.2, .7, .2, 1);
	/* Space above the hero text (clears the transparent Avada header). */
	--nhe-hero-top: 140px;
	/* Distance from the top of the screen where the toolbar sticks.
	 * 88px = height of the NAHSE mobile header and the sticky Avada header. */
	--nhe-sticky-top: 88px;

	display: block;
	width: 100%;
	background: var(--nhe-cream);
	color: var(--nhe-navy);
	font-family: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 16px;
	line-height: 1.5;
	text-align: left;
	-webkit-font-smoothing: antialiased;
}
.nhe *,
.nhe *::before,
.nhe *::after {
	box-sizing: border-box;
}
.nhe [hidden] {
	display: none !important;
}
.nhe .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.nhe-wrap {
	max-width: 1375px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}
.nhe a:focus-visible,
.nhe button:focus-visible,
.nhe input:focus-visible,
.nhe select:focus-visible,
.nhe [tabindex]:focus-visible {
	outline: 2px solid var(--nhe-blue);
	outline-offset: 2px;
}
.nhe-hero a:focus-visible,
.nhe-cta a:focus-visible,
.nhe-cta button:focus-visible {
	outline-color: var(--nhe-gold);
}
.nhe-dot {
	display: inline-block;
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}
/* Shared button reset so Avada button/link styles never leak in. */
.nhe button {
	margin: 0;
	font-family: inherit;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: none;
	-webkit-appearance: none;
	appearance: none;
}

/* --------------------------------------------------------------------------
 * Buttons
 * ----------------------------------------------------------------------- */
.nhe .nhe-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 12px 20px;
	border: 1px solid transparent;
	border-radius: 999px;
	background: none;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .25s, color .25s, border-color .25s;
}
.nhe a.nhe-btn--primary,
.nhe a.nhe-btn--primary:link,
.nhe a.nhe-btn--primary:visited {
	background: var(--nhe-blue);
	border-color: var(--nhe-blue);
	color: #fff;
}
.nhe a.nhe-btn--primary:hover,
.nhe a.nhe-btn--primary:focus-visible {
	background: var(--nhe-navy);
	border-color: var(--nhe-navy);
	color: #fff;
}
.nhe button.nhe-btn--outline,
.nhe a.nhe-btn--outline:link,
.nhe a.nhe-btn--outline:visited {
	background: #fff;
	border-color: #c9d4f5;
	color: var(--nhe-blue);
}
.nhe button.nhe-btn--outline:hover,
.nhe button.nhe-btn--outline:focus-visible {
	background: var(--nhe-ice);
	color: var(--nhe-blue);
}
.nhe button.nhe-btn--text {
	padding-left: 12px;
	padding-right: 12px;
	border-color: transparent;
	background: none;
	color: var(--nhe-blue);
}
.nhe button.nhe-btn--text:hover {
	color: var(--nhe-navy);
}
.nhe a.nhe-btn--ghost,
.nhe a.nhe-btn--ghost:link,
.nhe a.nhe-btn--ghost:visited {
	min-height: 52px;
	padding: 15px 26px;
	font-size: 15px;
	border-color: rgba(255, 255, 255, .45);
	color: #fff;
}
.nhe a.nhe-btn--ghost:hover,
.nhe a.nhe-btn--ghost:focus-visible {
	background: rgba(255, 255, 255, .1);
	color: #fff;
}
.nhe button.nhe-btn--gold {
	min-height: 52px;
	padding: 15px 26px;
	font-size: 15px;
	background: var(--nhe-gold);
	border-color: var(--nhe-gold);
	color: var(--nhe-navy);
}
.nhe button.nhe-btn--gold:hover,
.nhe button.nhe-btn--gold:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--nhe-navy);
}
.nhe button.nhe-btn--light {
	background: #fff;
	border-color: var(--nhe-line2);
	color: var(--nhe-blue);
}
.nhe button.nhe-btn--light:hover {
	background: var(--nhe-ice);
}

/* --------------------------------------------------------------------------
 * Hero
 * ----------------------------------------------------------------------- */
.nhe-hero {
	position: relative;
	overflow: hidden;
	background: var(--nhe-blue);
	color: #fff;
}
.nhe-hero__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 55% 90% at 90% 20%, rgba(120, 160, 255, .3), transparent 60%);
	pointer-events: none;
}
.nhe-hero__ribbon {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
.nhe-hero__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 40px 80px;
	align-items: end;
	padding-top: var(--nhe-hero-top);
	padding-bottom: 88px;
}
.nhe-hero__text {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}
.nhe-hero__eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhe-gold);
}
.nhe h1.nhe-hero__title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: clamp(40px, 5vw, 64px);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -.035em;
	text-transform: none;
	color: #fff;
	text-wrap: balance;
}
.nhe h1.nhe-hero__title em {
	font-family: "Instrument Serif", Georgia, "Times New Roman", serif;
	font-style: italic;
	font-weight: 400;
	letter-spacing: -.01em;
	color: var(--nhe-gold);
}
.nhe p.nhe-hero__intro {
	max-width: 520px;
	margin: 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.6;
	color: #dbe3ff;
}
.nhe a.nhe-feature,
.nhe a.nhe-feature:link,
.nhe a.nhe-feature:visited {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 24px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 24px 50px rgba(0, 10, 40, .3);
	color: var(--nhe-navy);
	text-decoration: none;
	transition: transform .4s var(--nhe-ease);
}
.nhe a.nhe-feature:hover,
.nhe a.nhe-feature:focus-visible {
	color: var(--nhe-navy);
	transform: translateY(-4px);
}
.nhe-feature__date {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: 80px;
	padding: 12px 4px;
	border-radius: 16px;
	background: var(--nhe-blue);
	color: #fff;
	line-height: 1;
}
.nhe-feature__mon {
	font-size: 11px;
	letter-spacing: .1em;
	color: #9fb8ff;
}
.nhe-feature__day {
	font-size: 26px;
	font-weight: 600;
	white-space: nowrap;
}
.nhe-feature__text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.nhe-feature__kicker {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhe-blue);
}
.nhe-feature__title {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.015em;
}
.nhe-feature__meta {
	font-size: 14px;
	color: var(--nhe-muted);
}

/* --------------------------------------------------------------------------
 * Sticky toolbar
 * ----------------------------------------------------------------------- */
.nhe-toolbar {
	position: sticky;
	top: var(--nhe-sticky-top);
	z-index: 40;
	border-bottom: 1px solid var(--nhe-line);
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	scroll-margin-top: var(--nhe-sticky-top);
}
body.admin-bar .nhe-toolbar {
	top: calc(var(--nhe-sticky-top) + 32px);
}
@media (max-width: 782px) {
	body.admin-bar .nhe-toolbar {
		top: calc(var(--nhe-sticky-top) + 46px);
	}
}
@media (max-width: 600px) {
	/* The admin bar scrolls away on phones; the mobile header moves to 0. */
	body.admin-bar .nhe-toolbar {
		top: var(--nhe-sticky-top);
	}
}
.nhe-toolbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	padding-top: 12px;
	padding-bottom: 12px;
}
.nhe-toolbar__spacer {
	flex: 1 1 0;
}
.nhe-seg {
	display: flex;
	gap: 2px;
	padding: 4px;
	border-radius: 999px;
	background: var(--nhe-ice);
}
.nhe-seg--outline {
	background: transparent;
	border: 1px solid var(--nhe-line2);
}
.nhe button.nhe-seg__btn {
	min-height: 38px;
	padding: 8px 18px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--nhe-muted);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.nhe button.nhe-seg__btn:hover {
	color: var(--nhe-blue);
}
.nhe button.nhe-seg__btn[aria-pressed="true"] {
	background: #fff;
	color: var(--nhe-blue);
	box-shadow: 0 2px 8px rgba(10, 20, 51, .1);
}
.nhe-seg--outline button.nhe-seg__btn[aria-pressed="true"] {
	background: var(--nhe-blue);
	color: #fff;
	box-shadow: none;
}
.nhe-nav {
	display: flex;
	align-items: center;
	gap: 6px;
}
.nhe button.nhe-iconbtn,
.nhe button.nhe-pillbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 38px;
	border: 1px solid var(--nhe-line2);
	background: #fff;
	color: var(--nhe-blue);
	cursor: pointer;
	transition: background-color .2s;
}
.nhe button.nhe-iconbtn {
	width: 38px;
	padding: 0;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
}
.nhe button.nhe-pillbtn {
	padding: 0 16px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
}
.nhe button.nhe-iconbtn:hover,
.nhe button.nhe-pillbtn:hover {
	background: var(--nhe-ice);
}
.nhe-nav__label {
	padding-left: 8px;
	font-size: 19px;
	font-weight: 600;
	letter-spacing: -.015em;
	white-space: nowrap;
}
.nhe-search {
	position: relative;
	display: block;
	flex: 1 1 220px;
	max-width: 320px;
	margin: 0;
}
.nhe-search__icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%) rotate(-45deg);
	font-size: 15px;
	color: var(--nhe-soft);
	pointer-events: none;
}
.nhe .nhe-search input {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 16px 0 40px;
	border: 1px solid var(--nhe-line2);
	border-radius: 999px;
	background: #f9fafc;
	box-shadow: none;
	color: var(--nhe-navy);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.2;
	-webkit-appearance: none;
	appearance: none;
}
.nhe .nhe-search input:focus {
	border-color: var(--nhe-blue);
	background: #fff;
}
.nhe-select {
	position: relative;
	display: block;
	margin: 0;
}
.nhe .nhe-select select {
	height: 44px;
	margin: 0;
	padding: 0 38px 0 16px;
	border: 1px solid var(--nhe-line2);
	border-radius: 999px;
	background: #f9fafc;
	box-shadow: none;
	color: var(--nhe-navy);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.nhe-select__arrow {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 10px;
	color: var(--nhe-blue);
	pointer-events: none;
}

/* --------------------------------------------------------------------------
 * Body, chips, status
 * ----------------------------------------------------------------------- */
.nhe-body {
	min-height: 60vh;
	background: var(--nhe-cream);
}
.nhe-body__inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding-top: 28px;
	padding-bottom: 96px;
}
.nhe-chips {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.nhe button.nhe-chip,
.nhe a.nhe-chip,
.nhe a.nhe-chip:link,
.nhe a.nhe-chip:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 7px 14px;
	border: 1px solid var(--nhe-line2);
	border-radius: 999px;
	background: #fff;
	color: var(--nhe-navy);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.nhe button.nhe-chip:hover,
.nhe a.nhe-chip:hover {
	border-color: #c9d4f5;
	color: var(--nhe-navy);
}
.nhe button.nhe-chip[aria-pressed="true"] {
	border-color: var(--nhe-navy);
	background: var(--nhe-navy);
	color: #fff;
}
.nhe-chip__count {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	font-weight: 500;
	opacity: .65;
}
.nhe-status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	color: var(--nhe-muted);
}
.nhe-status:empty {
	display: none;
}
.nhe-status strong {
	color: var(--nhe-navy);
}
.nhe button.nhe-linkbtn {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nhe-blue);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.nhe-anim {
	animation: nhe-in .45s var(--nhe-ease) both;
}
@keyframes nhe-in {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}

/* --------------------------------------------------------------------------
 * Month view
 * ----------------------------------------------------------------------- */
.nhe-month {
	display: flex;
	flex-direction: column;
	gap: 1px;
	overflow: hidden;
	border: 1px solid var(--nhe-line);
	border-radius: 24px;
	background: var(--nhe-line);
}
.nhe-month__dow,
.nhe-month__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 1px;
}
.nhe-month__dow span {
	padding: 12px 14px;
	background: #fafbfd;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhe-soft);
}
.nhe-cell {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	min-height: 128px;
	padding: 8px;
	background: #fff;
	cursor: pointer;
	transition: background-color .2s;
}
.nhe-cell:hover {
	background: #f4f6fc;
}
.nhe-cell.is-out {
	background: #fafaf8;
}
.nhe button.nhe-cell__num {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 7px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--nhe-navy);
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
}
.nhe-cell.is-out button.nhe-cell__num {
	color: #b3b9c9;
}
.nhe-cell.is-today button.nhe-cell__num {
	background: var(--nhe-blue);
	color: #fff;
	font-weight: 700;
}
.nhe-cell__pills {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}
.nhe button.nhe-pill {
	display: block;
	width: 100%;
	padding: 4px 8px;
	border: 0;
	border-radius: 8px;
	background: var(--b);
	color: var(--f);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.35;
	text-align: left;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
}
.nhe button.nhe-pill:hover {
	filter: brightness(.95);
}
.nhe button.nhe-pill.is-past,
.nhe-row.is-past {
	opacity: .55;
}
.nhe-pill__time {
	font-weight: 500;
	opacity: .8;
}
.nhe button.nhe-more {
	align-self: flex-start;
	padding: 0 8px;
	border: 0;
	background: none;
	color: var(--nhe-blue);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}
.nhe-cell__dots {
	display: flex;
	flex-wrap: wrap;
	gap: 3px;
	padding: 0 4px;
}
.nhe-cell__dots span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
}

/* --------------------------------------------------------------------------
 * List view
 * ----------------------------------------------------------------------- */
.nhe-list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}
.nhe-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.nhe-group__head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding: 0 4px;
}
.nhe h2.nhe-group__title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -.02em;
	text-transform: none;
	color: var(--nhe-navy);
}
.nhe-group__meta {
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 13px;
	color: var(--nhe-soft);
}
.nhe-group__items {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.nhe-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	padding: 18px 20px;
	border: 1px solid var(--nhe-line);
	border-radius: 20px;
	background: #fff;
	transition: border-color .3s, box-shadow .3s, transform .3s var(--nhe-ease);
}
.nhe-row:hover {
	border-color: #c9d4f5;
	box-shadow: 0 16px 36px rgba(0, 49, 148, .08);
	transform: translateY(-2px);
}
.nhe-badge {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	width: 84px;
	padding: 12px 0;
	border-radius: 16px;
	line-height: 1;
}
.nhe-badge__dow,
.nhe-badge__mon {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .1em;
}
.nhe-badge__num {
	font-size: 26px;
	font-weight: 600;
	letter-spacing: -.02em;
	white-space: nowrap;
}
.nhe-row__body {
	display: flex;
	flex: 1 1 300px;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}
.nhe-row__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 10px;
}
.nhe-cat {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--nhe-muted);
}
.nhe-row__when {
	font-size: 13px;
	color: var(--nhe-soft);
}
.nhe h3.nhe-row__title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: -.01em;
	text-transform: none;
}
.nhe h3.nhe-row__title a,
.nhe h3.nhe-row__title a:link,
.nhe h3.nhe-row__title a:visited {
	color: var(--nhe-navy);
	text-decoration: none;
	box-shadow: none;
}
.nhe h3.nhe-row__title a:hover,
.nhe h3.nhe-row__title a:focus-visible {
	color: var(--nhe-blue);
}
.nhe-row__venue {
	font-size: 14px;
	color: var(--nhe-muted);
}
.nhe-row__actions {
	display: flex;
	flex: none;
	align-items: center;
	gap: 8px;
}
.nhe-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 64px 24px;
	border: 1px solid var(--nhe-line);
	border-radius: 24px;
	background: #fff;
	font-size: 15px;
	color: var(--nhe-muted);
	text-align: center;
}
.nhe-empty__title {
	font-size: 20px;
	font-weight: 600;
	color: var(--nhe-navy);
}

/* --------------------------------------------------------------------------
 * Day view
 * ----------------------------------------------------------------------- */
.nhe-day {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 24px;
	align-items: start;
}
.nhe-day__main {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--nhe-line);
	border-radius: 24px;
	background: #fff;
}
.nhe-day__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	padding: 24px 28px;
	border-bottom: 1px solid var(--nhe-line);
}
.nhe-day__dow {
	display: block;
	margin-bottom: 6px;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 13px;
	color: var(--nhe-blue);
}
.nhe h2.nhe-day__title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: clamp(26px, 2.6vw, 34px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.025em;
	text-transform: none;
	color: var(--nhe-navy);
}
.nhe-day__count {
	font-size: 14px;
	color: var(--nhe-soft);
}
.nhe-day__strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 12px 28px;
	border-bottom: 1px solid var(--nhe-line);
	background: #fafbfd;
}
.nhe-day__strip-label {
	width: 72px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--nhe-soft);
}
.nhe button.nhe-allday {
	padding: 8px 14px;
	border: 0;
	border-radius: 10px;
	background: var(--b);
	color: var(--f);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	cursor: pointer;
}
.nhe-allday__note {
	font-weight: 500;
	opacity: .8;
}
.nhe-day__empty {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 20px 28px;
	border-bottom: 1px solid var(--nhe-line);
	background: #fdf8ea;
	font-size: 15px;
	color: var(--nhe-muted);
}
.nhe button.nhe-day__next {
	padding: 0;
	border: 0;
	background: none;
	color: var(--nhe-blue);
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
}
.nhe-tl {
	position: relative;
	max-height: 640px;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.nhe-tl__inner {
	position: relative;
	height: 960px;
}
.nhe-tl__hour {
	position: absolute;
	left: 0;
	right: 0;
	height: 60px;
	border-top: 1px solid #f0f2f7;
}
.nhe-tl__hour span {
	display: block;
	width: 72px;
	padding: 6px 12px 0 0;
	font-family: "JetBrains Mono", ui-monospace, monospace;
	font-size: 11px;
	color: var(--nhe-soft);
	text-align: right;
}
.nhe-tl__events {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 84px;
	right: 16px;
}
.nhe button.nhe-block {
	position: absolute;
	display: flex;
	flex-direction: column;
	gap: 3px;
	overflow: hidden;
	padding: 10px 14px;
	border: 2px solid #fff;
	border-radius: 14px;
	background: var(--b);
	color: var(--f);
	text-align: left;
	cursor: pointer;
	transition: box-shadow .3s;
}
.nhe button.nhe-block:hover {
	box-shadow: 0 12px 28px rgba(0, 49, 148, .18);
}
.nhe-block__time,
.nhe-block__venue {
	font-size: 12px;
	font-weight: 600;
	opacity: .8;
}
.nhe-block__venue {
	font-weight: 400;
}
.nhe-block__title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
}
.nhe button.nhe-block.is-short {
	padding-top: 6px;
	padding-bottom: 6px;
	gap: 1px;
}
.nhe button.nhe-block.is-short .nhe-block__venue {
	display: none;
}
.nhe-tl__now {
	position: absolute;
	left: -8px;
	right: 0;
	height: 2px;
	background: #e0674a;
	pointer-events: none;
}
.nhe-tl__now::before {
	content: "";
	position: absolute;
	left: -4px;
	top: -4px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #e0674a;
}
.nhe-day__aside {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}
.nhe-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	border: 1px solid var(--nhe-line);
	border-radius: 24px;
	background: #fff;
}
.nhe-mini__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
.nhe-mini__label {
	font-size: 16px;
	font-weight: 600;
}
.nhe-mini__nav {
	display: flex;
	gap: 4px;
}
.nhe .nhe-mini__nav button.nhe-iconbtn {
	width: 32px;
	height: 32px;
	font-size: 17px;
}
.nhe-mini__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 2px;
	text-align: center;
}
.nhe-mini__dow {
	padding: 6px 0;
	font-size: 11px;
	font-weight: 600;
	color: var(--nhe-soft);
}
.nhe button.nhe-mini__day {
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--nhe-navy);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
}
.nhe button.nhe-mini__day:hover {
	box-shadow: inset 0 0 0 1px #c9d4f5;
}
.nhe button.nhe-mini__day.is-out {
	opacity: .35;
}
.nhe button.nhe-mini__day.is-today {
	background: var(--nhe-ice);
	font-weight: 700;
}
.nhe button.nhe-mini__day.is-sel {
	background: var(--nhe-blue);
	color: #fff;
	font-weight: 700;
}
.nhe-mini__mark {
	position: absolute;
	left: 50%;
	bottom: 4px;
	width: 4px;
	height: 4px;
	margin-left: -2px;
	border-radius: 50%;
}
.nhe-card__label {
	padding-bottom: 4px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhe-blue);
}
.nhe button.nhe-up {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 10px 0;
	border: 0;
	border-top: 1px solid #f0f2f7;
	border-radius: 0;
	background: none;
	color: var(--nhe-navy);
	text-align: left;
	cursor: pointer;
}
.nhe button.nhe-up:hover {
	color: var(--nhe-blue);
}
.nhe-up__date {
	display: flex;
	flex: none;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: 44px;
	padding: 6px 0;
	border-radius: 10px;
	line-height: 1;
}
.nhe-up__mon {
	font-size: 9px;
	letter-spacing: .1em;
}
.nhe-up__day {
	font-size: 16px;
	font-weight: 600;
}
.nhe-up__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.nhe-up__title {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}
.nhe-up__time {
	font-size: 12px;
	color: var(--nhe-soft);
}
.nhe-muted {
	font-size: 14px;
	color: var(--nhe-soft);
}

/* --------------------------------------------------------------------------
 * CTA
 * ----------------------------------------------------------------------- */
.nhe-cta-wrap {
	background: var(--nhe-cream);
	padding-bottom: 96px;
}
.nhe-cta {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	overflow: hidden;
	padding: clamp(32px, 5vw, 64px);
	border-radius: 28px;
	background: var(--nhe-blue);
	color: #fff;
}
.nhe-cta__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 50% 80% at 100% 0%, rgba(120, 160, 255, .35), transparent 60%);
	pointer-events: none;
}
.nhe-cta__text {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 560px;
}
.nhe h2.nhe-cta__title {
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -.025em;
	text-transform: none;
	color: #fff;
}
.nhe p.nhe-cta__copy {
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.6;
	color: #dbe3ff;
}
.nhe-cta__actions {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* --------------------------------------------------------------------------
 * Event popup (native <dialog>: focus trap, Escape and inert page built in)
 * ----------------------------------------------------------------------- */
.nhe-modal {
	width: calc(100% - 32px);
	max-width: 580px;
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	margin: auto;
	padding: 0;
	overflow: auto;
	border: 0;
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 40px 80px rgba(0, 10, 40, .35);
	color: var(--nhe-navy);
	font-family: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	overscroll-behavior: contain;
}
.nhe-modal::backdrop {
	background: rgba(10, 20, 51, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.nhe-modal[open] {
	animation: nhe-pop .45s var(--nhe-ease);
}
@keyframes nhe-pop {
	from { opacity: 0; transform: translateY(24px) scale(.97); }
	to { opacity: 1; transform: none; }
}
.nhe-modal__head {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 32px 32px 28px;
	background: var(--b, var(--nhe-blue));
	color: var(--f, #fff);
}
.nhe button.nhe-modal__close {
	position: absolute;
	top: 18px;
	right: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .35);
	color: inherit;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.nhe button.nhe-modal__close:hover {
	background: rgba(255, 255, 255, .55);
}
.nhe-modal__cat {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .85;
}
.nhe h2.nhe-modal__title {
	margin: 0;
	padding: 0 44px 0 0;
	font-family: inherit;
	font-size: clamp(24px, 3vw, 30px);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.02em;
	text-transform: none;
	color: inherit;
	text-wrap: balance;
}
.nhe-modal__body {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 28px 32px 32px;
}
.nhe-modal__facts {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 12px 16px;
	margin: 0;
	font-size: 15px;
}
.nhe-modal__facts dt {
	margin: 0;
	padding-top: 2px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nhe-soft);
}
.nhe-modal__facts dd {
	margin: 0;
	font-weight: 500;
}
.nhe-modal__sub {
	display: block;
	font-weight: 400;
	color: var(--nhe-muted);
}
.nhe p.nhe-modal__desc {
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--nhe-muted);
}
.nhe p.nhe-modal__past {
	margin: 0;
	padding: 10px 14px;
	border-radius: 12px;
	background: var(--nhe-cream);
	font-size: 14px;
	color: var(--nhe-muted);
}
.nhe-modal__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* --------------------------------------------------------------------------
 * Hero motion (only when JS adds .is-anim)
 * ----------------------------------------------------------------------- */
@keyframes nhe-up {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: none; }
}
@keyframes nhe-draw {
	to { stroke-dashoffset: 0; }
}
.nhe.is-anim .nhe-hero__text > *,
.nhe.is-anim .nhe-feature {
	animation: nhe-up 1s var(--nhe-ease) both;
}
.nhe.is-anim .nhe-hero__text > *:nth-child(2) { animation-delay: .11s; }
.nhe.is-anim .nhe-hero__text > *:nth-child(3) { animation-delay: .22s; }
.nhe.is-anim .nhe-feature { animation-delay: .33s; }
.nhe.is-anim .nhe-hero__ribbon-path {
	stroke-dasharray: 2400;
	stroke-dashoffset: 2400;
	animation: nhe-draw 2.4s .3s cubic-bezier(.6, 0, .2, 1) forwards;
}

/* --------------------------------------------------------------------------
 * Responsive
 * ----------------------------------------------------------------------- */
@media (max-width: 1100px) {
	.nhe-hero__grid {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
		padding-bottom: 72px;
	}
	.nhe a.nhe-feature {
		max-width: 560px;
	}
	.nhe-day {
		grid-template-columns: minmax(0, 1fr);
	}
	.nhe-day__aside {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
	/* The toolbar wraps onto several lines here, so it scrolls with the page. */
	.nhe-toolbar {
		position: relative;
		top: auto;
	}
	body.admin-bar .nhe-toolbar {
		top: auto;
	}
}

@media (max-width: 900px) {
	.nhe {
		--nhe-hero-top: 128px;
	}
}

@media (max-width: 767px) {
	.nhe {
		--nhe-hero-top: 112px;
	}
	.nhe-wrap {
		padding-left: 16px;
		padding-right: 16px;
	}
	.nhe-hero__grid {
		gap: 32px;
		padding-bottom: 56px;
	}
	.nhe p.nhe-hero__intro {
		font-size: 16px;
	}
	.nhe a.nhe-feature {
		gap: 16px;
		padding: 18px;
	}
	.nhe-feature__date {
		width: 68px;
	}
	.nhe-feature__title {
		font-size: 18px;
	}
	.nhe-toolbar__spacer {
		display: none;
	}
	.nhe-nav {
		flex: 1 1 100%;
	}
	.nhe-nav__label {
		font-size: 17px;
	}
	.nhe-search {
		flex: 1 1 100%;
		max-width: none;
	}
	.nhe-select,
	.nhe .nhe-select select {
		width: 100%;
	}
	.nhe-select {
		flex: 1 1 100%;
	}
	.nhe-body__inner {
		padding-top: 20px;
		padding-bottom: 64px;
	}
	.nhe-month {
		border-radius: 16px;
	}
	.nhe-month__dow span {
		padding: 10px 0;
		text-align: center;
		letter-spacing: 0;
	}
	.nhe-cell {
		min-height: 64px;
		padding: 6px 4px;
		align-items: center;
	}
	.nhe button.nhe-cell__num {
		align-self: center;
		min-width: 26px;
		height: 26px;
		padding: 0 4px;
		font-size: 13px;
	}
	.nhe-cell__dots {
		justify-content: center;
	}
	.nhe-row {
		padding: 16px;
		gap: 14px 16px;
	}
	.nhe-badge {
		width: 64px;
		padding: 10px 0;
	}
	.nhe-badge__num {
		font-size: 22px;
	}
	.nhe-row__body {
		flex-basis: calc(100% - 80px);
	}
	.nhe-row__actions {
		width: 100%;
	}
	.nhe-row__actions .nhe-btn {
		flex: 1 1 0;
	}
	.nhe h3.nhe-row__title {
		font-size: 18px;
	}
	.nhe-day__head,
	.nhe-day__strip,
	.nhe-day__empty {
		padding-left: 18px;
		padding-right: 18px;
	}
	.nhe-tl__hour span {
		width: 58px;
		padding-right: 8px;
	}
	.nhe-tl__events {
		left: 64px;
		right: 8px;
	}
	.nhe-day__aside {
		grid-template-columns: minmax(0, 1fr);
	}
	.nhe-cta-wrap {
		padding-bottom: 64px;
	}
	.nhe-cta__actions,
	.nhe-cta__actions .nhe-btn {
		width: 100%;
	}
	.nhe-modal__head {
		padding: 26px 22px 22px;
	}
	.nhe-modal__body {
		padding: 22px;
	}
	.nhe-modal__facts {
		grid-template-columns: 72px minmax(0, 1fr);
	}
	.nhe-modal__actions .nhe-btn {
		flex: 1 1 100%;
	}
}

@media (max-width: 480px) {
	.nhe-seg {
		flex: 1 1 100%;
	}
	.nhe-seg button.nhe-seg__btn {
		flex: 1 1 0;
		padding-left: 8px;
		padding-right: 8px;
	}
	.nhe-month__dow span {
		font-size: 11px;
	}
	.nhe-cell {
		min-height: 54px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nhe *,
	.nhe *::before,
	.nhe *::after,
	.nhe-modal,
	.nhe-modal::backdrop {
		animation: none !important;
		transition: none !important;
	}
}

/* ==========================================================================
 * END: NAHSE DFW Events Page styles
 * ========================================================================== */
