/*
 * Elementor / Elementor Pro polish for the widgets used in the Theme Builder templates.
 *
 * Specificity rule: `body .elementor-…` (one element higher than Elementor's own widget
 * defaults) so we beat the defaults but every per-widget setting made in the editor
 * (`.elementor-element-xyz …`) and kit styles still win.
 */

/* ---------------------------------------------------------------- Globals */
body .elementor-widget-text-editor {
	line-height: var(--lh-body);
}

body .elementor-heading-title {
	text-wrap: balance;
}

/* Accent links only inside running text. The kit sets no global link colour on purpose,
 * because `.elementor-kit-N a` would override component colours (buttons, card titles). */
body .elementor-widget-text-editor a:not(.cm-btn):not(.elementor-button),
body .elementor-widget-theme-post-content a:not(.cm-btn):not(.elementor-button),
body .elementor-widget-theme-post-excerpt a:not(.cm-btn) {
	color: var(--color-accent-hover);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

body .elementor-widget-text-editor a:not(.cm-btn):not(.elementor-button):hover,
body .elementor-widget-theme-post-content a:not(.cm-btn):not(.elementor-button):hover {
	color: var(--color-accent);
}

.cm-surface--ink .elementor-widget-text-editor a:not(.cm-btn):not(.elementor-button) {
	color: var(--color-white);
}

/* Containers opting into surfaces via CSS Classes: cm-surface--ink / --paper work as is.
 * Rounded media helper for image widgets: add CSS class `cm-rounded`. */
body .cm-rounded img,
body .cm-rounded .elementor-image,
body .cm-rounded.e-con {
	border-radius: var(--radius-lg);
	overflow: hidden;
}

/* ---------------------------------------------------------------- Buttons → accent */
/* The kit sets no button styles on purpose (they would hit every <button>); this is the
 * accent pill for Elementor Button / Form submit widgets. */
body .elementor-button {
	border-radius: var(--radius-pill);
	background-color: var(--color-accent);
	color: var(--color-white);
	font-family: inherit;
	font-weight: 700;
	line-height: 1.4;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur) var(--ease);
}

body .elementor-button:hover,
body .elementor-button:focus-visible {
	background-color: var(--color-accent-hover);
	color: var(--color-white);
	transform: translateY(-1px);
}

body .elementor-button.elementor-size-sm {
	padding: 12px 20px;
	font-size: var(--fs-small);
}

body .elementor-button.elementor-size-md {
	padding: 14px 26px;
	font-size: .9375rem;
}

body .elementor-button.elementor-size-lg {
	padding: 16px 32px;
	font-size: 1.0625rem;
}

/* Ghost variant: add CSS class `cm-btn-ghost` to a Button widget. */
body .cm-btn-ghost .elementor-button {
	background-color: transparent;
	color: inherit;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 30%, transparent);
}

body .cm-btn-ghost .elementor-button:hover {
	background-color: color-mix(in srgb, currentColor 8%, transparent);
	color: inherit;
}

/* ---------------------------------------------------------------- Theme Builder header */
.elementor-location-header {
	position: relative;
	z-index: var(--z-header);
}

.elementor-location-header .elementor-sticky--effects,
.elementor-location-header.is-scrolled > .e-con.e-parent:first-child,
.elementor-location-header.is-scrolled > .elementor-section:first-child {
	box-shadow: 0 12px 32px -22px rgb(0 0 0 / .9);
}

@supports (backdrop-filter: blur(1px)) {
	.elementor-location-header .elementor-sticky--effects {
		-webkit-backdrop-filter: saturate(150%) blur(14px);
		backdrop-filter: saturate(150%) blur(14px);
	}
}

/* Nav menu (dark header). */
body .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-item {
	font-family: inherit;
	font-size: .9375rem;
	font-weight: 500;
	line-height: 1.6;
}

body .elementor-location-header .elementor-nav-menu--main .elementor-item {
	color: var(--color-on-ink-muted);
}

body .elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
body .elementor-location-header .elementor-nav-menu--main .elementor-item:focus,
body .elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active {
	color: var(--color-white);
}

body .elementor-widget-nav-menu .e--pointer-underline .elementor-item::after,
body .elementor-widget-nav-menu .e--pointer-overline .elementor-item::before {
	block-size: 2px;
	border-radius: 2px;
	background-color: var(--color-accent);
}

body .elementor-widget-nav-menu .elementor-nav-menu--dropdown {
	background-color: var(--color-ink-2);
	border-radius: 0 0 var(--radius) var(--radius);
	overflow: hidden;
}

body .elementor-widget-nav-menu .elementor-nav-menu--dropdown a {
	min-block-size: 52px;
	padding-inline: var(--gutter);
	color: var(--color-on-ink);
	font-weight: 700;
	border-block-end: 1px solid var(--color-line-ink);
}

body .elementor-widget-nav-menu .elementor-nav-menu--dropdown a:hover,
body .elementor-widget-nav-menu .elementor-nav-menu--dropdown a.elementor-item-active {
	background-color: transparent;
	color: var(--color-accent);
}

body .elementor-widget-nav-menu .elementor-menu-toggle {
	inline-size: var(--tap);
	block-size: var(--tap);
	border-radius: var(--radius-pill);
	background-color: transparent;
	color: var(--color-white);
	font-size: 22px;
}

body .elementor-widget-nav-menu .elementor-menu-toggle:hover {
	background-color: color-mix(in srgb, var(--color-white) 10%, transparent);
}

/* ---------------------------------------------------------------- Mobile menu
   The Nav Menu burger opens the theme's drawer (.cm-offcanvas, theme.js); Pro's own dropdown never
   shows. */
body .elementor-location-header .elementor-menu-toggle + .elementor-nav-menu__container {
	display: none !important;
}

/* ---------------------------------------------------------------- Search (Pro) */
body .elementor-widget-search {
	--e-search-input-border-radius: var(--radius);
	--e-search-input-border-color: var(--color-line);
	--e-search-input-color: var(--color-text);
	--e-search-placeholder-color: var(--color-muted);
	--e-search-icon-label-color: var(--color-muted);
	--e-search-submit-background-color: var(--color-accent);
	--e-search-submit-border-radius: var(--radius);
	--e-search-submit-color: var(--color-white);
	--e-search-input-padding-block-start: 12px;
	--e-search-input-padding-block-end: 12px;
	font-family: inherit;
}

body .elementor-search-form__container {
	min-block-size: 52px;
	border-radius: var(--radius);
	overflow: hidden;
}

body .elementor-search-form__container:not(.elementor-search-form--full-screen) {
	background-color: var(--color-white);
	box-shadow: inset 0 0 0 1px var(--color-line);
}

body .elementor-search-form--focus .elementor-search-form__container {
	box-shadow: inset 0 0 0 1px var(--color-accent), var(--focus-ring);
}

body .elementor-search-form .elementor-search-form__input {
	font-family: inherit;
	font-size: max(16px, var(--fs-body));
	color: var(--color-text);
	padding-inline: 16px;
}

body .elementor-search-form .elementor-search-form__submit {
	background-color: var(--color-accent);
	border-radius: 0;
	min-inline-size: 52px;
	font-family: inherit;
	font-weight: 700;
}

body .elementor-search-form .elementor-search-form__submit:hover {
	background-color: var(--color-accent-hover);
}

/* On dark: add CSS class `cm-on-ink` to the widget/container. */
body .cm-on-ink .elementor-search-form__container:not(.elementor-search-form--full-screen),
body .cm-surface--ink .elementor-search-form__container:not(.elementor-search-form--full-screen) {
	background-color: color-mix(in srgb, var(--color-white) 7%, transparent);
	box-shadow: inset 0 0 0 1px var(--color-line-ink);
}

body .cm-on-ink .elementor-search-form .elementor-search-form__input,
body .cm-surface--ink .elementor-search-form .elementor-search-form__input {
	color: var(--color-white);
}

body .cm-on-ink .elementor-widget-search,
body .cm-surface--ink .elementor-widget-search {
	--e-search-input-border-color: var(--color-line-ink);
	--e-search-input-color: var(--color-white);
	--e-search-placeholder-color: var(--color-on-ink-muted);
	--e-search-icon-label-color: var(--color-on-ink-muted);
}

/* ---------------------------------------------------------------- Loop grid */
body .elementor-widget-loop-grid {
	--grid-column-gap: clamp(16px, 2.2vw, 28px);
	--grid-row-gap: clamp(24px, 3vw, 40px);
}

body .elementor-widget-loop-carousel {
	--swiper-pagination-color: var(--color-accent);
}

body .e-loop-item img {
	transition: transform var(--dur-slow) var(--ease);
}

body .e-loop-item:hover .elementor-widget-theme-post-featured-image img,
body .e-loop-item:hover .elementor-widget-image img {
	transform: scale(1.03);
}

body .e-loop-item .elementor-widget-theme-post-featured-image,
body .e-loop-item .elementor-widget-image {
	overflow: hidden;
	border-radius: var(--radius);
}

body .e-load-more-anchor + .elementor-button-wrapper .elementor-button,
body .elementor-widget-loop-grid .e-load-more-spinner {
	color: var(--color-white);
}

/* Pagination widget output. */
body .elementor-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-2);
	margin-block-start: var(--space-8);
}

body .elementor-pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-inline-size: var(--tap);
	min-block-size: var(--tap);
	padding-inline: var(--space-3);
	margin: 0;
	border: 1px solid var(--color-line);
	border-radius: var(--radius-pill);
	background-color: var(--color-white);
	color: var(--color-text);
	font-weight: 500;
}

body .elementor-pagination .page-numbers.current {
	background-color: var(--color-ink);
	border-color: var(--color-ink);
	color: var(--color-white);
}

/* ---------------------------------------------------------------- Taxonomy filter → .cm-pill look */
body .elementor-widget-taxonomy-filter {
	--e-filter-space-between: 8px;
	--e-filter-item-padding: 0 18px;
	--e-filter-item-border-radius: var(--radius-pill);
	--e-filter-normal-text-color: var(--color-text);
	--e-filter-hover-text-color: var(--color-text);
	--e-filter-active-text-color: var(--color-white);
	--e-filter-justify-content: flex-start;
}

body .elementor-widget-taxonomy-filter .e-filter-item {
	min-block-size: 40px;
	border: 1px solid var(--color-line);
	background-color: var(--color-white);
	font-family: inherit;
	font-size: var(--fs-small);
	font-weight: 500;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

body .elementor-widget-taxonomy-filter .e-filter-item:hover:not([aria-pressed="true"]) {
	border-color: var(--color-text);
	background-color: var(--color-white);
}

body .elementor-widget-taxonomy-filter .e-filter-item[aria-pressed="true"] {
	border-color: var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
}

body .cm-surface--ink .elementor-widget-taxonomy-filter,
body .cm-on-ink .elementor-widget-taxonomy-filter {
	--e-filter-normal-text-color: var(--color-on-ink);
	--e-filter-hover-text-color: var(--color-white);
}

body .cm-surface--ink .elementor-widget-taxonomy-filter .e-filter-item,
body .cm-on-ink .elementor-widget-taxonomy-filter .e-filter-item {
	border-color: var(--color-line-ink);
	background-color: color-mix(in srgb, var(--color-white) 5%, transparent);
}

body .cm-surface--ink .elementor-widget-taxonomy-filter .e-filter-item[aria-pressed="true"],
body .cm-on-ink .elementor-widget-taxonomy-filter .e-filter-item[aria-pressed="true"] {
	border-color: var(--color-accent);
	background-color: var(--color-accent);
}

/* ---------------------------------------------------------------- Loop item overlays */
/* Favorite heart on a card image: a dark glass disc keeps it readable on light photos. */
body .cm-loop__fav .cm-fav {
	display: inline-grid;
	place-items: center;
	inline-size: 40px;
	block-size: 40px;
	border: 0;
	border-radius: 50%;
	background: rgba(11, 13, 16, .55);
	color: var(--color-white);
	backdrop-filter: blur(6px);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

body .cm-loop__fav .cm-fav:hover,
body .cm-loop__fav .cm-fav[aria-pressed="true"] {
	background: var(--color-white);
	color: var(--color-accent);
}

/* ---------------------------------------------------------------- Loop Grid */
/* Elementor builds columns as repeat(N, 1fr); 1fr cannot shrink below an item's min-content
 * width, so two podcast cards (~200px each) overflowed a 358px phone column. */
body .elementor-widget-loop-grid .elementor-loop-container.elementor-grid {
	grid-template-columns: repeat(var(--grid-columns, 1), minmax(0, 1fr));
}

/* ---------------------------------------------------------------- Pro Form (newsletter / contact) */
/* Field column widths. The Form widget prints .elementor-col-NN on each field, but in Elementor 4
 * those widths live in the legacy section/column stylesheet, which is not loaded on container-only
 * pages, so every field collapsed to its content width. */
body .elementor-form .elementor-field-group.elementor-col-10 { width: 10%; }
body .elementor-form .elementor-field-group.elementor-col-20 { width: 20%; }
body .elementor-form .elementor-field-group.elementor-col-25 { width: 25%; }
body .elementor-form .elementor-field-group.elementor-col-30 { width: 30%; }
body .elementor-form .elementor-field-group.elementor-col-33 { width: 33.333%; }
body .elementor-form .elementor-field-group.elementor-col-35 { width: 35%; }
body .elementor-form .elementor-field-group.elementor-col-40 { width: 40%; }
body .elementor-form .elementor-field-group.elementor-col-50 { width: 50%; }
body .elementor-form .elementor-field-group.elementor-col-60 { width: 60%; }
body .elementor-form .elementor-field-group.elementor-col-65 { width: 65%; }
body .elementor-form .elementor-field-group.elementor-col-66 { width: 66.666%; }
body .elementor-form .elementor-field-group.elementor-col-70 { width: 70%; }
body .elementor-form .elementor-field-group.elementor-col-75 { width: 75%; }
body .elementor-form .elementor-field-group.elementor-col-80 { width: 80%; }
body .elementor-form .elementor-field-group.elementor-col-90 { width: 90%; }
body .elementor-form .elementor-field-group.elementor-col-100 { width: 100%; }

@media (max-width: 767px) {
	body .elementor-form .elementor-field-group.elementor-sm-100 { width: 100%; }
	body .elementor-form .elementor-field-group.elementor-sm-50 { width: 50%; }
}

@media (min-width: 768px) and (max-width: 1023px) {
	body .elementor-form .elementor-field-group.elementor-md-100 { width: 100%; }
	body .elementor-form .elementor-field-group.elementor-md-50 { width: 50%; }
}

body .elementor-form .elementor-field-group > label,
body .elementor-form .elementor-field-label {
	margin-block-end: 6px;
	color: inherit;
	font-size: var(--fs-small);
	font-weight: 500;
	line-height: 1.6;
}

body .elementor-form .elementor-field-group .elementor-field-textual {
	min-block-size: 48px;
	padding: 10px 16px;
	border: 1px solid var(--color-line);
	border-radius: 12px;
	background-color: var(--color-white);
	color: var(--color-text);
	font-family: inherit;
	font-size: max(16px, var(--fs-body));
	line-height: 1.6;
}

body .elementor-form .elementor-field-group textarea.elementor-field-textual {
	min-block-size: 140px;
}

body .elementor-form .elementor-field-group .elementor-field-textual:focus {
	border-color: var(--color-accent);
	box-shadow: var(--focus-ring);
	outline: none;
}

body .elementor-form .elementor-field-type-submit .elementor-button {
	min-block-size: 48px;
}

body .elementor-form .elementor-message {
	font-size: var(--fs-small);
	font-weight: 500;
}

body .elementor-form .elementor-message.elementor-message-success { color: var(--color-success); }
body .elementor-form .elementor-message.elementor-message-danger,
body .elementor-form .elementor-field-group .elementor-error { color: var(--color-danger); }

body .elementor-form .elementor-message::before {
	content: none;
}

body .cm-surface--ink .elementor-form .elementor-field-group .elementor-field-textual,
body .cm-on-ink .elementor-form .elementor-field-group .elementor-field-textual {
	border-color: var(--color-line-ink);
	background-color: color-mix(in srgb, var(--color-white) 6%, transparent);
	color: var(--color-white);
}

/* ---------------------------------------------------------------- Nested tabs → underline tabs */
body .e-n-tabs {
	--n-tabs-title-color: var(--color-muted);
	--n-tabs-title-color-hover: var(--color-text);
	--n-tabs-title-color-active: var(--color-text);
	--n-tabs-title-background-color: transparent;
	--n-tabs-title-background-color-hover: transparent;
	--n-tabs-title-background-color-active: transparent;
	--n-tabs-title-border-radius: 0;
	--n-tabs-title-font-size: .9375rem;
	--n-tabs-gap: 0;
}

body .e-n-tabs-heading {
	gap: clamp(12px, 3vw, 36px);
	border-block-end: 1px solid var(--color-line);
	overflow-x: auto;
	scrollbar-width: none;
}

body .e-n-tabs .e-n-tab-title {
	padding-inline: 0;
	padding-block: 14px;
	border: 0;
	font-family: inherit;
	font-weight: 500;
	white-space: nowrap;
	box-shadow: inset 0 -2px 0 transparent;
	transition: color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

body .e-n-tabs .e-n-tab-title[aria-selected="true"] {
	font-weight: 700;
	box-shadow: inset 0 -2px 0 var(--color-accent);
}

body .cm-surface--ink .e-n-tabs {
	--n-tabs-title-color: var(--color-on-ink-muted);
	--n-tabs-title-color-hover: var(--color-white);
	--n-tabs-title-color-active: var(--color-white);
}

body .cm-surface--ink .e-n-tabs-heading {
	border-block-end-color: var(--color-line-ink);
}

/* ---------------------------------------------------------------- Accordion (FAQ in Elementor) */
body .e-n-accordion-item-title {
	padding-block: 18px;
	border-block-end: 1px solid var(--color-line);
	font-weight: 700;
}

/* ---------------------------------------------------------------- Icon list (footer columns) */
body .elementor-location-footer .elementor-icon-list-text {
	transition: color var(--dur) var(--ease);
}

body .elementor-location-footer .elementor-icon-list-item a:hover .elementor-icon-list-text {
	color: var(--color-white);
}

/* Editor: keep the [hidden] contract inside previews. */
.elementor-editor-active [hidden] {
	display: none !important;
}

/* ---------------------------------------------------------------- Header search (Pro full-screen skin)
   Pro's overlay puts a 50px bare input mid-screen and the focus ring frames the whole overlay.
   Here: a blurred scrim, a pill search field near the top with an icon, a round close button. */
body .elementor-search-form__container.elementor-search-form--full-screen {
	align-items: flex-start;
	justify-content: center;
	padding: clamp(84px, 14vh, 140px) 16px 24px;
	border-radius: 0;
	background-color: rgb(5 6 8 / .82);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: none !important;
	overflow: visible;
}

body .elementor-search-form--full-screen .elementor-search-form__input,
body .elementor-search-form--skin-full_screen .elementor-search-form--full-screen input[type="search"] {
	inline-size: min(100%, 680px);
	max-inline-size: 680px;
	block-size: 60px;
	flex: 0 1 680px;
	margin: 0;
	padding-block: 0;
	padding-inline: 56px 22px;
	border: 1px solid var(--color-line-ink) !important;
	border-radius: 999px !important;
	background: var(--color-ink-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239AA0A6' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 20px 50% / 20px 20px;
	color: var(--color-white);
	font-size: clamp(17px, 2vw, 20px) !important;
	text-align: start;
	box-shadow: 0 20px 50px rgb(0 0 0 / .45);
	transition: border-color .2s ease, box-shadow .2s ease;
}

[dir="rtl"] body .elementor-search-form--full-screen .elementor-search-form__input {
	background-position: calc(100% - 20px) 50%;
}

body .elementor-search-form--full-screen .elementor-search-form__input::placeholder {
	color: var(--color-on-ink-muted);
	opacity: 1;
}

body .elementor-search-form--full-screen .elementor-search-form__input:focus,
body .elementor-search-form--full-screen .elementor-search-form__input:focus-visible {
	border-color: var(--color-accent) !important;
	outline: none;
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-accent) 28%, transparent), 0 20px 50px rgb(0 0 0 / .45);
}

body .elementor-search-form--full-screen .dialog-lightbox-close-button {
	position: absolute;
	inset-block-start: 20px;
	inset-inline-end: 16px;
	display: inline-grid;
	place-items: center;
	inline-size: 44px;
	block-size: 44px;
	margin: 0;
	border: 1px solid var(--color-line-ink);
	border-radius: 12px;
	background: var(--color-ink-2);
	color: var(--color-white);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}

body .elementor-search-form--full-screen .dialog-lightbox-close-button svg {
	inline-size: 18px;
	block-size: 18px;
	fill: currentColor;
}

body .elementor-search-form--full-screen .dialog-lightbox-close-button:hover {
	border-color: var(--color-accent);
}
/* ---------------------------------------------------------------- Archive tabs (.cm-tabs) + filter pills
   Elementor paints the Nested Tabs widget and its panels white; on the paper page that read as an
   unpadded white box. Transparent here, and the tab titles become a segmented switch. */
body .elementor-widget-n-tabs.cm-tabs,
body .cm-tabs .e-n-tabs,
body .cm-tabs .e-n-tabs-content,
body .cm-tabs .e-n-tabs-content > .e-con,
body .cm-tabs .e-n-tabs-content > .e-con > .e-con-inner {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body .cm-tabs .e-n-tabs-heading {
	display: inline-flex;
	gap: 4px;
	inline-size: max-content;
	max-inline-size: 100%;
	padding: 5px;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-ink) 6%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--color-line);
}

body .cm-tabs .e-n-tabs .e-n-tab-title:not([aria-selected="true"]) {
	background-color: transparent !important;
}

body .cm-tabs .e-n-tabs .e-n-tab-title {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	transform: none !important;
	min-block-size: 44px;
	padding: 0 22px;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 700;
	transition: background-color .25s ease, color .25s ease, box-shadow .25s ease;
}

body .cm-tabs .e-n-tabs .e-n-tab-title[aria-selected="true"] {
	background-color: var(--color-ink) !important; /* Elementor's own active-title background wins otherwise */
	color: var(--color-white) !important;
	box-shadow: 0 8px 18px -10px rgb(11 13 16 / .6);
	--n-tabs-title-color-active: var(--color-white);
}

body .cm-tabs .e-n-tabs .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text {
	color: var(--color-white);
}

/* Filter pills: one height, text centred; «All» no longer collapses into a circle. */
body .elementor-widget-taxonomy-filter .e-filter {
	gap: 8px;
}

body .elementor-widget-taxonomy-filter .e-filter-item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	block-size: 40px;
	min-block-size: 40px;
	min-inline-size: 64px;
	box-sizing: border-box;
	padding: 0 18px !important; /* the widget's own 8px block padding made the pill 58px tall */
	line-height: 1;
	white-space: nowrap;
}

@media (max-width: 767px) {
	body .elementor-widget-taxonomy-filter .e-filter {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		padding-block-end: 2px;
	}

	body .elementor-widget-taxonomy-filter .e-filter::-webkit-scrollbar {
		display: none;
	}

	body .cm-tabs .e-n-tabs .e-n-tab-title {
		padding: 0 16px;
	}
}
/* ---------------------------------------------------------------- Podcast loop cards on phones
   Two narrow columns squeezed the square cover into a strip, floated the episode badge over its
   middle and pushed «Play episode» out of the card. */
@media (max-width: 767px) {
	body .e-loop-item .cm-card--podcast .cm-card__media {
		block-size: auto !important;
		aspect-ratio: 1;
		overflow: hidden;
	}

	body .e-loop-item .cm-card--podcast .cm-card__image,
	body .e-loop-item .cm-card--podcast .cm-card__image a,
	body .e-loop-item .cm-card--podcast .cm-card__image img {
		display: block;
		inline-size: 100%;
		block-size: 100%;
	}

	body .e-loop-item .cm-card--podcast .cm-card__image img {
		object-fit: cover;
	}

	body .e-loop-item .cm-card--podcast .cm-loop__badge {
		inset-block-start: 8px !important;
		inset-inline-start: 8px !important;
		inset-inline-end: auto !important;
		inset-block-end: auto !important;
		max-inline-size: calc(100% - 16px);
	}

	body .e-loop-item .cm-card--podcast .cm-loop__badge .elementor-heading-title {
		font-size: .68rem;
		white-space: nowrap;
	}

	body .e-loop-item .cm-card--podcast .cm-card__body {
		gap: 8px;
		padding: 12px !important;
	}

	body .e-loop-item .cm-card--podcast .cm-card__title .elementor-heading-title {
		font-size: 1rem;
		line-height: 1.35;
	}

	body .e-loop-item .cm-card--podcast .cm-card__meta .elementor-icon-list-items {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}

	body .e-loop-item .cm-card--podcast .cm-card__meta .elementor-icon-list-text {
		font-size: .78rem;
	}

	body .e-loop-item .cm-card--podcast .cm-btn {
		display: block !important;
		inline-size: 100% !important;
		max-inline-size: 100% !important;
		margin: 4px 0 0 !important;
		padding: 0 !important;
		background: none !important;
		border: 0 !important;
	}

	body .e-loop-item .cm-card--podcast .cm-btn .elementor-button-content-wrapper {
		display: inline-flex;
		flex-direction: row;
		align-items: center;
		gap: 6px;
	}

	body .e-loop-item .cm-card--podcast .cm-btn .elementor-button {
		display: flex;
		align-items: center;
		justify-content: center;
		inline-size: 100%;
		min-block-size: 40px;
		margin: 0 !important;
		padding: 0 10px !important;
		font-size: .82rem;
	}
}
/* ---------------------------------------------------------------- Header on tablet / phone
   Logo on the start side; search, account and menu grouped at the end as one set of matching
   42px rounded buttons (they were spread across the bar, with a heavy solid pink account disc). */
@media (max-width: 1024px) {
	body .elementor-location-header .cm-header > .e-con-inner {
		justify-content: flex-start !important;
		gap: 8px !important;
	}

	body .elementor-location-header .cm-header__logo {
		order: 0;
		margin-inline-end: auto !important;
	}

	body .elementor-location-header .cm-header__search { order: 1; }
	body .elementor-location-header .cm-header__account { order: 2; }
	body .elementor-location-header .elementor-widget-nav-menu { order: 3; inline-size: auto !important; flex: none !important; }

	body .elementor-location-header .cm-header__search .elementor-search-form__toggle,
	body .elementor-location-header .elementor-menu-toggle,
	body .elementor-location-header .cm-account--guest .cm-account__login {
		display: inline-grid !important;
		place-items: center;
		inline-size: 42px !important;
		block-size: 42px !important;
		min-inline-size: 42px;
		padding: 0 !important;
		border: 1px solid rgba(255, 255, 255, .12) !important;
		border-radius: 14px !important;
		background: rgba(255, 255, 255, .05) !important;
		color: #FFFFFF !important;
		box-shadow: none !important;
		transition: background-color .2s ease, border-color .2s ease;
	}

	body .elementor-location-header .cm-header__search .elementor-search-form__toggle:hover,
	body .elementor-location-header .elementor-menu-toggle:hover {
		border-color: rgba(255, 255, 255, .28) !important;
		background: rgba(255, 255, 255, .1) !important;
	}

	/* Account keeps the brand accent, but as a soft tint with an accent icon. On tablets the label is
	   shown, so it becomes a pill; phones show the icon only. */
	body .elementor-location-header .cm-account--guest .cm-account__login {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		gap: 6px;
		inline-size: auto !important;
		padding: 0 14px !important;
		white-space: nowrap;
		font-size: .85rem;
		font-weight: 700;
		border-color: color-mix(in srgb, var(--color-accent) 45%, transparent) !important;
		background: color-mix(in srgb, var(--color-accent) 16%, transparent) !important;
		color: var(--color-accent) !important;
	}

	body .elementor-location-header .cm-account--guest .cm-account__login:hover {
		background: var(--color-accent) !important;
		color: #FFFFFF !important;
	}

	body .elementor-location-header .cm-header__search .elementor-search-form__toggle svg,
	body .elementor-location-header .elementor-menu-toggle svg {
		inline-size: 18px !important;
		block-size: 18px !important;
	}

	body .elementor-location-header .cm-header__search .elementor-search-form__toggle i,
	body .elementor-location-header .cm-header__search .elementor-search-form__toggle .e-font-icon-svg-container {
		display: inline-grid;
		place-items: center;
		inline-size: auto;
		block-size: auto;
		font-size: 18px;
		background: none !important;
	}
}
@media (max-width: 1024px) {
	body .elementor-location-header .cm-account__toggle {
		min-block-size: 42px;
		padding: 3px 10px 3px 3px !important;
		border: 1px solid rgba(255, 255, 255, .12) !important;
		border-radius: 14px !important;
		background: rgba(255, 255, 255, .05) !important;
	}

	body .elementor-location-header .cm-account__toggle img,
	body .elementor-location-header .cm-account__toggle .avatar {
		border-radius: 10px !important;
	}
}

@media (max-width: 599px) {
	body .elementor-location-header .cm-account--guest .cm-account__login {
		inline-size: 42px !important;
		padding: 0 !important;
	}
}
/* ---------------------------------------------------------------- Light page headers
   Contact, Articles, Artists and similar pages: a light header followed by a light section added up
   to ~160px of empty space (96px under the header + 64px above the next section). The header now
   sizes to its text and the section that follows starts close to it. */
body .cm-archive-hero.cm-surface--paper {
	min-height: 0 !important;
	--min-height: 0px;
}

body .cm-archive-hero.cm-surface--paper > .e-con-inner {
	min-height: 0 !important;
	padding-block-start: clamp(40px, 5vw, 72px) !important;
	padding-block-end: clamp(12px, 1.5vw, 20px) !important;
}

body .cm-archive-hero.cm-surface--paper + .cm-surface--paper > .e-con-inner {
	padding-block-start: clamp(20px, 2.5vw, 36px) !important;
}
/* Button widgets carry .cm-btn on the Elementor wrapper as well as on the link, so the outline
   variants drew two frames («Open in maps»). Only the link inside is the button. */
body .elementor-widget-button.cm-btn {
	display: block;
	min-block-size: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
}
/* ---------------------------------------------------------------- Single video on phones
   The player widget collapsed to 0px in the column container, so title, meta and the Save/Share
   buttons slid up over the video. The player keeps its height; the actions get breathing room. */
body .elementor-widget-cm-video-player {
	/* In the wrapping flex column its min-content width is 0 (the 16:9 frame has no intrinsic
	   width), so it collapsed to 0×0; full width restores the 16:9 height. */
	inline-size: 100% !important;
	flex-shrink: 0 !important;
	block-size: auto !important;
}

body .cm-video-main {
	block-size: auto !important;
	max-block-size: none !important;
}

body .cm-video-main > .elementor-widget-cm-video-player {
	margin-block-end: 8px;
}

@media (max-width: 767px) {
	body .cm-video-main {
		gap: 14px !important;
	}

	body .cm-video-main .elementor-widget-cm-favorite-button,
	body .cm-video-main .elementor-widget-cm-share {
		margin-block-end: 6px;
	}
}
body .cm-video-main .cm-meta-row .elementor-icon-list-items {
	justify-content: flex-start !important;
}

@media (max-width: 767px) {
	/* Save + Share side by side as equal pills. */
	body .cm-video-main .elementor-widget-cm-favorite-button,
	body .cm-video-main .elementor-widget-cm-share {
		flex: 1 1 0 !important;
		inline-size: auto !important;
	}

	body .cm-video-main .elementor-widget-cm-favorite-button .cm-fav,
	body .cm-video-main .elementor-widget-cm-share .cm-share__toggle,
	body .cm-video-main .elementor-widget-cm-share > .elementor-widget-container > .cm-share > button {
		inline-size: 100%;
		justify-content: center;
	}
}
body .cm-video-main .cm-meta-row {
	align-self: stretch !important;
	inline-size: 100% !important;
}

@media (max-width: 767px) {
	body .cm-video-main .elementor-widget-cm-share .cm-share {
		display: block;
		inline-size: 100%;
	}

	body .cm-video-main .elementor-widget-cm-share .cm-share__toggle {
		display: flex;
		inline-size: 100%;
		justify-content: center;
	}
}