/* Wp News Ticker by Brandcer — Frontend Styles */
.wpnt-ticker {
	--wpnt-title-color: #1e293b;
	--wpnt-content-color: #64748b;
	--wpnt-bg-color: #ffffff;
	--wpnt-item-bg-color: #f8fafc;
	--wpnt-accent-color: #2563eb;
	--wpnt-font-size: 15px;
	--wpnt-border-width: 0px;
	--wpnt-border-style: none;
	--wpnt-border-color: #e2e8f0;
	--wpnt-border-radius: 10px;
	--wpnt-item-spacing: 4px;
	--wpnt-thumb-size: 52px;
	--wpnt-btn-bg: #2563eb;
	--wpnt-btn-color: #ffffff;
	--wpnt-btn-radius: 6px;
	--wpnt-btn-border-width: 0px;
	--wpnt-btn-border-color: #2563eb;
	--wpnt-gradient-size: 40px;
	--wpnt-btn-align: flex-end;
	--wpnt-ticker-padding: 0px;
	box-sizing: border-box;
	max-width: 100%;
	background: var(--wpnt-bg-color);
	color: var(--wpnt-title-color);
	font-size: var(--wpnt-font-size);
	border-radius: var(--wpnt-border-radius);
	border-width: var(--wpnt-border-width);
	border-style: var(--wpnt-border-style);
	border-color: var(--wpnt-border-color);
	padding: var(--wpnt-ticker-padding);
	overflow: hidden;
}
.wpnt-ticker * { box-sizing: border-box; }

.wpnt-ticker-heading {
	font-weight: 700;
	padding: 10px 14px;
	background: var(--wpnt-heading-bg, var(--wpnt-accent-color));
	color: var(--wpnt-heading-color, #fff);
	font-size: var(--wpnt-heading-font-size, 14px);
	display: flex;
	align-items: center;
	justify-content: var(--wpnt-heading-align, left);
	gap: 10px;
}
.wpnt-ticker-heading-content { flex: 1; display: flex; align-items: center; gap: 8px; text-align: var(--wpnt-heading-align, left); justify-content: var(--wpnt-heading-align, left); }
.wpnt-ticker-heading-label { display: inline-block; }
.wpnt-heading-image { max-height: 1.6em; width: auto; display: inline-block; vertical-align: middle; }

/* Where the "View All" button sits relative to the heading text. */
.wpnt-hbtn-pos-left { flex-direction: row-reverse; }
.wpnt-hbtn-pos-right { flex-direction: row; }
.wpnt-hbtn-pos-top { flex-direction: column-reverse; align-items: flex-start; }
.wpnt-hbtn-pos-bottom { flex-direction: column; align-items: flex-start; }
.wpnt-hbtn-pos-top .wpnt-ticker-heading-content,
.wpnt-hbtn-pos-bottom .wpnt-ticker-heading-content { flex: none; width: 100%; }

.wpnt-heading-button {
	display: inline-block; flex-shrink: 0; white-space: nowrap; text-decoration: none;
	background: var(--wpnt-hbtn-bg, #fff); color: var(--wpnt-hbtn-color, #1e293b);
	border-radius: var(--wpnt-hbtn-radius, 4px);
	border: var(--wpnt-hbtn-border-width, 0px) solid var(--wpnt-hbtn-border-color, transparent);
	padding: var(--wpnt-hbtn-pad-t, 4px) var(--wpnt-hbtn-pad-r, 10px) var(--wpnt-hbtn-pad-b, 4px) var(--wpnt-hbtn-pad-l, 10px);
	margin: var(--wpnt-hbtn-mar-t, 0) var(--wpnt-hbtn-mar-r, 0) var(--wpnt-hbtn-mar-b, 0) var(--wpnt-hbtn-mar-l, 0);
	text-align: var(--wpnt-hbtn-text-align, center);
	font-size: .82em; font-weight: 600;
}
.wpnt-heading-button:hover {
	background: var(--wpnt-hbtn-hover-bg, var(--wpnt-hbtn-bg));
	color: var(--wpnt-hbtn-hover-color, var(--wpnt-hbtn-color));
}
.wpnt-heading-button.wpnt-hbtn-size-smallest { font-size: .62em; }
.wpnt-heading-button.wpnt-hbtn-size-small { font-size: .72em; }
.wpnt-heading-button.wpnt-hbtn-size-medium { font-size: .82em; }
.wpnt-heading-button.wpnt-hbtn-size-large { font-size: .92em; }

/* The small on-air / recording style light beside the heading. */
.wpnt-heading-light {
	display: inline-flex; flex-shrink: 0; position: relative;
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--wpnt-light-color, #ef4444);
}
.wpnt-heading-light::before {
	content: ''; position: absolute; inset: 0; border-radius: 50%;
	background: var(--wpnt-light-color, #ef4444);
	animation: wpnt-light-pulse 1.6s ease-out infinite;
}
@keyframes wpnt-light-pulse {
	0%   { transform: scale(1); opacity: .7; }
	100% { transform: scale(2.4); opacity: 0; }
}

/* Heading style presets — quick visual looks for the heading bar. */
.wpnt-heading-style-news .wpnt-ticker-heading-label { text-transform: uppercase; letter-spacing: .04em; }
.wpnt-heading-style-minimal { background: transparent !important; }
.wpnt-heading-style-minimal .wpnt-ticker-heading-label { font-weight: 800; }
.wpnt-heading-style-boxed { border: 2px solid var(--wpnt-heading-color, #fff); }

/* Heading "stuck to the left" — only meaningful in Marquee mode: the
   heading becomes a fixed sidebar next to the scrolling strip, like a
   classic "BREAKING:" label that never moves while headlines glide past
   it, instead of a separate bar sitting above everything. */
.wpnt-mode-marquee .wpnt-ticker-row.wpnt-heading-left {
	display: flex;
	align-items: stretch;
	overflow: hidden;
}
.wpnt-mode-marquee .wpnt-ticker-row.wpnt-heading-left .wpnt-ticker-heading {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	flex-grow: 0;
	white-space: nowrap;
	position: relative;
	z-index: 3;
	overflow: hidden;
}
.wpnt-mode-marquee .wpnt-ticker-row.wpnt-heading-left .wpnt-viewport {
	flex: 1 1 0%;
	min-width: 0;
	max-width: 100%;
	position: relative;
	z-index: 1;
}

/* "View All" stuck to the right of the whole marquee row — a sibling of the
   viewport (and, if the heading is also stuck to the left, a third flex
   item alongside it) rather than living inside the heading bar. */
.wpnt-ticker-row.wpnt-hbtn-marquee-right {
	display: flex;
	align-items: center;
	overflow: hidden;
	gap: 10px;
}
.wpnt-ticker-row.wpnt-hbtn-marquee-right .wpnt-viewport {
	flex: 1 1 0%;
	min-width: 0;
	max-width: 100%;
}
.wpnt-ticker-row.wpnt-hbtn-marquee-right > .wpnt-heading-button {
	flex-shrink: 0;
	white-space: nowrap;
}

.wpnt-viewport { position: relative; overflow: hidden; height: var(--wpnt-viewport-height, 220px); }
.wpnt-viewport.wpnt-drag-scroll { cursor: grab; touch-action: pan-x; user-select: none; }
.wpnt-viewport.wpnt-drag-scroll.wpnt-dragging { cursor: grabbing; }

/* Marquee is a single line of scrolling text — the Height setting is
   treated as a minimum here (using the larger of the chosen height or a
   line-height-based floor), so text can never be clipped even if a very
   small or 0 value is entered. Vertical mode keeps the exact height set
   above, since the slide animation depends on measuring it precisely. */
.wpnt-mode-marquee .wpnt-viewport {
	height: auto;
	min-height: max(var(--wpnt-viewport-height, 0px), calc(var(--wpnt-font-size, 15px) * 2.4));
}
.wpnt-list { list-style: none; margin: 0; padding: 0; position: relative; }

/* The list only becomes absolutely-positioned once JavaScript confirms it is
   running and ready to animate it (see .wpnt-js-ready, added by frontend.js).
   Without that class — script blocked, failed to load, JS disabled, an
   aggressive mobile cache serving stale markup, etc. — the list stays in
   normal document flow so every item is still visible, just without the
   sliding animation. This guarantees the ticker is never left blank. */
.wpnt-mode-vertical.wpnt-js-ready .wpnt-list { position: absolute; top: 0; left: 0; width: 100%; }
.wpnt-item { display: block; padding: calc(var(--wpnt-item-spacing) / 2) 0; }

.wpnt-item-inner {
	display: flex; align-items: var(--wpnt-content-valign, flex-start); gap: 10px;
	padding: var(--wpnt-item-pad-t, 8px) var(--wpnt-item-pad-r, 14px) var(--wpnt-item-pad-b, 8px) var(--wpnt-item-pad-l, 14px);
	margin: var(--wpnt-item-mar-t, 0) var(--wpnt-item-mar-r, 0) var(--wpnt-item-mar-b, 0) var(--wpnt-item-mar-l, 0);
	position: relative;
}

/* Text alignment */
.wpnt-align-center .wpnt-item-body { text-align: center; align-items: center; }
.wpnt-align-right .wpnt-item-body { text-align: right; align-items: flex-end; }
.wpnt-layout-flow.wpnt-align-right .wpnt-item-inner { flex-direction: row-reverse; }

.wpnt-item-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.wpnt-item-title-row { display: flex; align-items: baseline; gap: 6px; }
.wpnt-item-title { font-weight: 600; color: var(--wpnt-title-color); line-height: 1.3; margin: var(--wpnt-title-margin, 0); padding: var(--wpnt-title-padding, 0); }
.wpnt-item-excerpt { display: block; font-size: .85em; color: var(--wpnt-content-color); line-height: 1.4; margin: var(--wpnt-excerpt-margin, 0); padding: var(--wpnt-excerpt-padding, 0); }
.wpnt-item-inner:hover .wpnt-item-title { color: var(--wpnt-title-hover-color, var(--wpnt-title-color)); }
.wpnt-item-inner:hover .wpnt-item-excerpt { color: var(--wpnt-content-hover-color, var(--wpnt-content-color)); }
.wpnt-item-date { font-size: .75em; color: var(--wpnt-content-color); opacity: .8; white-space: nowrap; }

/* The whole card is clickable via this transparent overlay link — it works
   whether or not a Read More button is also shown. Being position:absolute
   makes it paint above the card's ordinary (non-positioned) content, so
   clicks anywhere on the thumbnail, title, or excerpt all activate it. The
   button/lightbox trigger below are given their own stacking (position +
   z-index) specifically so they still win over this overlay where they
   visually sit on top of it. */
.wpnt-card-link { position: absolute; inset: 0; z-index: 1; text-decoration: none; }

.wpnt-item-actions {
	display: flex; align-items: center; gap: 8px; flex-shrink: 0;
	justify-content: var(--wpnt-btn-align, flex-end);
	position: relative; z-index: 2;
}

/* Columns layout: a strict 3-column row — image | text | button/eye. */
.wpnt-layout-columns .wpnt-item-inner {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
}
.wpnt-layout-columns .wpnt-thumb { grid-column: 1; }
.wpnt-layout-columns .wpnt-item-body { grid-column: 2; }
.wpnt-layout-columns .wpnt-item-actions { grid-column: 3; }
.wpnt-layout-columns.wpnt-no-thumb .wpnt-item-body,
.wpnt-layout-columns.wpnt-thumb-none .wpnt-item-body { grid-column: 1 / span 2; }


/* Thumbnail: shape */
.wpnt-thumb {
	flex-shrink: 0;
	width: var(--wpnt-thumb-size); height: var(--wpnt-thumb-size);
	background-size: cover; background-position: center; background-color: #e2e8f0;
	position: relative;
}
.wpnt-thumb-shape-square .wpnt-thumb { border-radius: 0; }
.wpnt-thumb-shape-rounded .wpnt-thumb { border-radius: 8px; }
.wpnt-thumb-shape-circle .wpnt-thumb { border-radius: 50%; }

/* Thumbnail: position */
.wpnt-thumb-right .wpnt-item-inner { flex-direction: row-reverse; }
.wpnt-thumb-top .wpnt-item-inner { flex-direction: column; }
.wpnt-thumb-top .wpnt-thumb { width: 100%; height: 120px; }
.wpnt-no-thumb .wpnt-thumb, .wpnt-thumb-none .wpnt-thumb { display: none; }

/* Label badge */
.wpnt-label {
	display: inline-block; font-weight: 700;
	text-transform: uppercase; letter-spacing: .03em;
	width: fit-content;
	font-size: var(--wpnt-label-font-size, 11px);
	padding: var(--wpnt-label-padding-y, 2px) var(--wpnt-label-padding-x, 8px);
	border-radius: var(--wpnt-label-radius, 999px);
	margin: var(--wpnt-label-margin, 4px);
}
/* Shape presets still work, but label_radius (above) takes precedence when set */
.wpnt-label-shape-pill .wpnt-label { border-radius: var(--wpnt-label-radius, 999px); }
.wpnt-label-shape-square .wpnt-label { border-radius: var(--wpnt-label-radius, 3px); }

/* Label color styles */
.wpnt-label-style-filled .wpnt-label { background: var(--wpnt-label-color, #2563eb); color: #fff; }
.wpnt-label-style-outline .wpnt-label { background: transparent; color: var(--wpnt-label-color, #2563eb); border: 1px solid var(--wpnt-label-color, #2563eb); }
.wpnt-label-style-soft .wpnt-label { background: #eef2ff; color: var(--wpnt-label-color, #2563eb); }
.wpnt-label-style-soft .wpnt-label { background: color-mix(in srgb, var(--wpnt-label-color, #2563eb) 15%, white); }

.wpnt-label-pos-on-thumbnail .wpnt-thumb { overflow: visible; }
.wpnt-label-pos-on-thumbnail .wpnt-item-inner .wpnt-thumb ~ .wpnt-label {
	position: absolute; z-index: 2;
	top: var(--wpnt-label-image-margin, 6px); left: var(--wpnt-label-image-margin, 6px);
	margin: 0;
}
.wpnt-label-pos-inline-title .wpnt-item-title { display: inline-flex; align-items: center; gap: 6px; }
.wpnt-label-pos-inline-title .wpnt-label { margin-top: 0; margin-bottom: 0; margin-left: 0; }

/* Read More button */
.wpnt-button {
	background: var(--wpnt-btn-bg); color: var(--wpnt-btn-color);
	border-radius: var(--wpnt-btn-radius); padding: 5px 12px; font-size: .8em;
	border: var(--wpnt-btn-border-width) solid var(--wpnt-btn-border-color);
	font-weight: 600; text-decoration: none; display: inline-block; white-space: nowrap;
}
.wpnt-button:hover {
	background: var(--wpnt-btn-hover-bg, var(--wpnt-btn-bg));
	color: var(--wpnt-btn-hover-color, var(--wpnt-btn-color));
}
.wpnt-btnsize-small .wpnt-button { padding: 3px 9px; font-size: .72em; }
.wpnt-btnsize-medium .wpnt-button { padding: 5px 12px; font-size: .8em; }
.wpnt-btnsize-large .wpnt-button { padding: 8px 18px; font-size: .92em; }

/* Divider line between items */
.wpnt-has-divider.wpnt-mode-vertical .wpnt-item:not(:last-child) { border-bottom: 1px solid var(--wpnt-divider-color); }
.wpnt-has-divider.wpnt-mode-marquee .wpnt-item:not(:last-child) { border-right: 1px solid var(--wpnt-divider-color); }

/* Outer wrapper: holds the ticker box plus the nav buttons and counter, so
   those can float outside the ticker's rounded, clipped edges when needed. */
.wpnt-super-wrapper { box-sizing: border-box; max-width: 100%; }
.wpnt-super-wrapper * { box-sizing: border-box; }
.wpnt-ticker-outer { position: relative; max-width: 100%; }

/* Next/Previous navigation — position, size, icon, text, and hover color are all configurable */
.wpnt-nav-group {
	position: absolute; z-index: 4;
	display: flex; align-items: center; gap: var(--wpnt-nav-gap, 6px);
}
.wpnt-nav {
	background: none; background-color: transparent; border: none; padding: 0; margin: 0;
	-webkit-appearance: none; -moz-appearance: none; appearance: none; box-shadow: none;
	color: var(--wpnt-nav-icon-color, #334155);
	height: var(--wpnt-nav-size, 26px);
	cursor: pointer; font-size: calc(var(--wpnt-nav-size, 26px) * 0.7); line-height: 1;
	display: flex; align-items: center; justify-content: center; gap: 4px;
}
.wpnt-nav:hover, .wpnt-nav:focus, .wpnt-nav:active {
	background: none; background-color: transparent; box-shadow: none; outline: none;
	color: var(--wpnt-nav-hover-color, #2563eb);
}
.wpnt-nav .dashicons { width: 1em; height: 1em; font-size: inherit; line-height: 1; flex-shrink: 0; }
.wpnt-nav-text { display: none; font-size: 0.62em; font-weight: 600; white-space: nowrap; text-transform: uppercase; letter-spacing: .03em; }

/* Icon / Text display mode */
.wpnt-nav-label-icon .wpnt-nav { width: var(--wpnt-nav-size, 26px); }
.wpnt-nav-label-icon .wpnt-nav-text { display: none; }

.wpnt-nav-label-icon_text .wpnt-nav { width: auto; padding: 0 2px; }
.wpnt-nav-label-icon_text .wpnt-nav-text { display: inline-block; }

.wpnt-nav-label-text .wpnt-nav { width: auto; padding: 0 2px; }
.wpnt-nav-label-text .wpnt-nav .dashicons { display: none; }
.wpnt-nav-label-text .wpnt-nav-text { display: inline-block; }

/* Inner: the group overlays inside the ticker box, near the chosen corner. */
.wpnt-nav-display-inner.wpnt-nav-pos-top-left .wpnt-nav-group { top: var(--wpnt-nav-offset, 8px); left: var(--wpnt-nav-offset, 8px); }
.wpnt-nav-display-inner.wpnt-nav-pos-top-right .wpnt-nav-group { top: var(--wpnt-nav-offset, 8px); right: var(--wpnt-nav-offset, 8px); }
.wpnt-nav-display-inner.wpnt-nav-pos-bottom-left .wpnt-nav-group { bottom: var(--wpnt-nav-offset, 8px); left: var(--wpnt-nav-offset, 8px); }
.wpnt-nav-display-inner.wpnt-nav-pos-bottom-right .wpnt-nav-group { bottom: var(--wpnt-nav-offset, 8px); right: var(--wpnt-nav-offset, 8px); }

/* Outer (default): the group floats outside the ticker box, above/below it. */
.wpnt-nav-display-outer.wpnt-nav-pos-top-left .wpnt-nav-group { top: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px))); left: 0; }
.wpnt-nav-display-outer.wpnt-nav-pos-top-right .wpnt-nav-group { top: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px))); right: 0; }
.wpnt-nav-display-outer.wpnt-nav-pos-bottom-left .wpnt-nav-group { bottom: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px))); left: 0; }
.wpnt-nav-display-outer.wpnt-nav-pos-bottom-right .wpnt-nav-group { bottom: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px))); right: 0; }

/* Item counter ("3 / 8") */
.wpnt-counter {
	position: absolute; z-index: 4;
	background: var(--wpnt-counter-bg, #0f172a); color: var(--wpnt-counter-color, #fff);
	font-size: var(--wpnt-counter-font-size, 11px); font-weight: 600;
	padding: 3px 9px; border-radius: 999px; line-height: 1.4; white-space: nowrap;
}
.wpnt-counter-display-inner.wpnt-counter-pos-top-left .wpnt-counter { top: var(--wpnt-counter-offset, 8px); left: var(--wpnt-counter-offset, 8px); }
.wpnt-counter-display-inner.wpnt-counter-pos-top-right .wpnt-counter { top: var(--wpnt-counter-offset, 8px); right: var(--wpnt-counter-offset, 8px); }
.wpnt-counter-display-inner.wpnt-counter-pos-bottom-left .wpnt-counter { bottom: var(--wpnt-counter-offset, 8px); left: var(--wpnt-counter-offset, 8px); }
.wpnt-counter-display-inner.wpnt-counter-pos-bottom-right .wpnt-counter { bottom: var(--wpnt-counter-offset, 8px); right: var(--wpnt-counter-offset, 8px); }

.wpnt-counter-display-outer.wpnt-counter-pos-top-left .wpnt-counter { top: calc(-1 * (1.4em + var(--wpnt-counter-offset, 8px))); left: 0; }
.wpnt-counter-display-outer.wpnt-counter-pos-top-right .wpnt-counter { top: calc(-1 * (1.4em + var(--wpnt-counter-offset, 8px))); right: 0; }
.wpnt-counter-display-outer.wpnt-counter-pos-bottom-left .wpnt-counter { bottom: calc(-1 * (1.4em + var(--wpnt-counter-offset, 8px))); left: 0; }
.wpnt-counter-display-outer.wpnt-counter-pos-bottom-right .wpnt-counter { bottom: calc(-1 * (1.4em + var(--wpnt-counter-offset, 8px))); right: 0; }

/* If the counter and nav buttons share both the same corner AND the same
   display mode (inner/outer), shift the counter clear of the buttons. */
.wpnt-nav-display-inner.wpnt-nav-pos-top-left.wpnt-counter-display-inner.wpnt-counter-pos-top-left .wpnt-counter { top: calc(var(--wpnt-nav-offset, 8px) + var(--wpnt-nav-size, 26px) + 6px); }
.wpnt-nav-display-inner.wpnt-nav-pos-top-right.wpnt-counter-display-inner.wpnt-counter-pos-top-right .wpnt-counter { top: calc(var(--wpnt-nav-offset, 8px) + var(--wpnt-nav-size, 26px) + 6px); }
.wpnt-nav-display-inner.wpnt-nav-pos-bottom-left.wpnt-counter-display-inner.wpnt-counter-pos-bottom-left .wpnt-counter { bottom: calc(var(--wpnt-nav-offset, 8px) + var(--wpnt-nav-size, 26px) + 6px); }
.wpnt-nav-display-inner.wpnt-nav-pos-bottom-right.wpnt-counter-display-inner.wpnt-counter-pos-bottom-right .wpnt-counter { bottom: calc(var(--wpnt-nav-offset, 8px) + var(--wpnt-nav-size, 26px) + 6px); }
.wpnt-nav-display-outer.wpnt-nav-pos-top-left.wpnt-counter-display-outer.wpnt-counter-pos-top-left .wpnt-counter { top: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px) + 1.4em + 6px)); }
.wpnt-nav-display-outer.wpnt-nav-pos-top-right.wpnt-counter-display-outer.wpnt-counter-pos-top-right .wpnt-counter { top: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px) + 1.4em + 6px)); }
.wpnt-nav-display-outer.wpnt-nav-pos-bottom-left.wpnt-counter-display-outer.wpnt-counter-pos-bottom-left .wpnt-counter { bottom: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px) + 1.4em + 6px)); }
.wpnt-nav-display-outer.wpnt-nav-pos-bottom-right.wpnt-counter-display-outer.wpnt-counter-pos-bottom-right .wpnt-counter { bottom: calc(-1 * (var(--wpnt-nav-size, 26px) + var(--wpnt-nav-offset, 8px) + 1.4em + 6px)); }

.wpnt-lightbox-trigger {
	background: none; border: none; cursor: pointer; color: var(--wpnt-content-color);
	padding: 4px; flex-shrink: 0;
}
.wpnt-lightbox-trigger:hover { color: var(--wpnt-accent-color); }

/* Marquee mode */
.wpnt-mode-marquee .wpnt-viewport { display: flex; align-items: center; }
.wpnt-mode-marquee .wpnt-list { display: flex; align-items: center; white-space: nowrap; will-change: transform; }
.wpnt-mode-marquee .wpnt-item { flex-shrink: 0; display: flex; align-items: center; }
.wpnt-mode-marquee .wpnt-item-inner { padding: 4px 0; margin-right: var(--wpnt-marquee-gap, 32px); }
.wpnt-mode-marquee .wpnt-item-excerpt { display: none; }
.wpnt-mode-marquee.wpnt-thumb-top .wpnt-item-inner { flex-direction: row; }
.wpnt-mode-marquee.wpnt-thumb-top .wpnt-thumb { width: var(--wpnt-thumb-size); height: var(--wpnt-thumb-size); }

/* A subtle separator between items — chosen from the built-in Dashicons-free
   character set (dot/pipe/dash), or none at all — makes Marquee mode read
   like a proper professional news ticker instead of items running together. */
.wpnt-mode-marquee .wpnt-item:not(:first-child)::before {
	content: var(--wpnt-marquee-sep, '•');
	display: inline-block;
	margin-right: var(--wpnt-marquee-gap, 32px);
	color: var(--wpnt-accent-color);
	opacity: .6;
	font-weight: 700;
	align-self: center;
}

/* Visual style presets */
.wpnt-style-default .wpnt-item-inner { border-bottom: 1px solid #f1f5f9; }

.wpnt-style-card .wpnt-item { padding: 4px 8px; }
.wpnt-style-card .wpnt-item-inner { background: var(--wpnt-item-bg-color); border-radius: 10px; }
.wpnt-style-card .wpnt-item-inner:hover { filter: brightness(0.97); }

.wpnt-style-minimal .wpnt-item-inner { padding: 8px 4px; }
.wpnt-style-minimal .wpnt-thumb { display: none; }
.wpnt-style-minimal .wpnt-item-title { font-weight: 500; }

.wpnt-style-headline .wpnt-item-title { font-size: 1.15em; font-weight: 700; }
.wpnt-style-headline .wpnt-item-excerpt { display: none; }
.wpnt-style-headline .wpnt-thumb { width: calc(var(--wpnt-thumb-size) * 1.2); height: calc(var(--wpnt-thumb-size) * 1.2); }

.wpnt-empty { padding: 16px; color: #94a3b8; text-align: center; font-size: 13px; }

/* Edge gradient overlay: top/bottom for vertical, left/right for marquee */
.wpnt-gradient { position: absolute; z-index: 3; pointer-events: none; }
.wpnt-mode-vertical .wpnt-gradient-start {
	top: 0; left: 0; right: 0; height: var(--wpnt-gradient-size);
	background: linear-gradient(to bottom, var(--wpnt-bg-color), rgba(255,255,255,0));
}
.wpnt-mode-vertical .wpnt-gradient-end {
	bottom: 0; left: 0; right: 0; height: var(--wpnt-gradient-size);
	background: linear-gradient(to top, var(--wpnt-bg-color), rgba(255,255,255,0));
}
.wpnt-mode-marquee .wpnt-gradient-start {
	top: 0; bottom: 0; left: 0; width: var(--wpnt-gradient-size);
	background: linear-gradient(to right, var(--wpnt-bg-color), rgba(255,255,255,0));
}
.wpnt-mode-marquee .wpnt-gradient-end {
	top: 0; bottom: 0; right: 0; width: var(--wpnt-gradient-size);
	background: linear-gradient(to left, var(--wpnt-bg-color), rgba(255,255,255,0));
}

/* Lightbox modal */
.wpnt-lightbox-overlay {
	position: fixed; inset: 0; background: rgba(15, 23, 42, .6);
	display: flex; align-items: center; justify-content: center; z-index: 100000; padding: 20px;
}
.wpnt-lightbox-modal {
	background: #fff; border-radius: 12px; max-width: 520px; width: 100%;
	max-height: 80vh; overflow-y: auto; padding: 24px; position: relative;
	box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.wpnt-lightbox-close {
	position: absolute; top: 12px; right: 12px; background: #f1f5f9; border: none;
	border-radius: 50%; width: 30px; height: 30px; cursor: pointer; font-size: 16px; color: #334155;
}
.wpnt-lightbox-close:hover { background: #e2e8f0; }

/* ============ Responsive: the ticker itself ============ */
@media (max-width: 480px) {
	.wpnt-item-inner { padding: 6px 10px; gap: 8px; }
	.wpnt-thumb {
		width: calc(var(--wpnt-thumb-size, 52px) * 0.75) !important;
		height: calc(var(--wpnt-thumb-size, 52px) * 0.75) !important;
	}
	.wpnt-thumb-top .wpnt-thumb { height: 90px !important; }
	.wpnt-ticker-heading { padding: 8px 10px; font-size: .88em; }
	.wpnt-item-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.wpnt-nav-text { font-size: 0.58em; }
	.wpnt-counter { font-size: calc(var(--wpnt-counter-font-size, 11px) * 0.9); padding: 2px 7px; }
	.wpnt-lightbox-modal { padding: 16px; max-height: 85vh; }
}

/* Marquee readability on narrow screens: trim side padding a little. */
@media (max-width: 480px) {
	.wpnt-mode-marquee .wpnt-item-inner { padding: 8px 12px; }
}

/* ---------- Search bar ---------- */
.wpnt-search-wrap {
	position: relative;
	width: var(--wpnt-search-width, 240px);
	max-width: 100%;
	margin-bottom: 8px;
}
.wpnt-search-btn {
	position: absolute; right: 3px; top: 50%; transform: translateY(-50%);
	display: flex; align-items: center; justify-content: center;
	width: 28px; height: 28px; padding: 0; border: none; background: transparent; cursor: pointer;
	color: var(--wpnt-search-icon-color, #94a3b8); border-radius: calc(var(--wpnt-search-radius, 8px) - 2px);
}
.wpnt-search-btn:hover { background: rgba(0,0,0,.05); }
.wpnt-search-btn .dashicons { font-size: 16px; width: 16px; height: 16px; }
.wpnt-search-input {
	width: 100%; box-sizing: border-box;
	padding: 8px 34px 8px 12px;
	font-size: var(--wpnt-search-font-size, 14px);
	background: var(--wpnt-search-bg, #fff);
	color: var(--wpnt-search-color, #1e293b);
	border: var(--wpnt-search-border-width, 1px) solid var(--wpnt-search-border-color, #e2e8f0);
	border-radius: var(--wpnt-search-radius, 8px);
	outline: none;
}
.wpnt-search-input:focus { border-color: var(--wpnt-search-icon-color, #94a3b8); }
.wpnt-search-results {
	position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 20;
	background: var(--wpnt-search-results-bg, #fff);
	color: var(--wpnt-search-results-color, #1e293b);
	border: 1px solid var(--wpnt-search-border-color, #e2e8f0);
	border-radius: var(--wpnt-search-radius, 8px);
	box-shadow: 0 8px 24px rgba(0,0,0,.08);
	max-height: 260px; overflow-y: auto;
}
.wpnt-search-result {
	display: block; padding: 9px 12px; font-size: 13.5px; line-height: 1.4;
	text-decoration: none; color: inherit; border-bottom: 1px solid rgba(0,0,0,.05);
}
.wpnt-search-result:last-child { border-bottom: none; }
.wpnt-search-result:hover, .wpnt-search-result.wpnt-search-active {
	background: var(--wpnt-search-results-hover-bg, #f8fafc);
}
.wpnt-search-empty { padding: 12px; font-size: 13px; color: #94a3b8; text-align: center; }
