/* ============================================================
   Company Holiday Wizard — Frontend Widget Styles
   ============================================================ */

/* ---- Base / Reset — strip all default margins so Elementor controls own them ---- */
.chw-widget {
	box-sizing: border-box;
	font-family: inherit;
	line-height: 1.5;
}
.chw-widget *,
.chw-widget *::before,
.chw-widget *::after {
	box-sizing: border-box;
}
/* Kill default browser + theme margins on every text element inside the widget */
.chw-widget h1, .chw-widget h2, .chw-widget h3,
.chw-widget h4, .chw-widget h5, .chw-widget h6,
.chw-widget p, .chw-widget ul, .chw-widget ol,
.chw-widget table, .chw-widget figure {
	margin: 0;
	padding: 0;
}
.chw-widget .chw-no-holidays {
	color: #888;
	font-style: italic;
}

/* ---- Icon container (emoji OR svg) ---- */
.chw-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	vertical-align: middle;
}
.chw-icon svg {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;
}
/* Larger icons inside cards / banners */
.chw-card-icon.chw-icon { font-size: 1.5em; }
.chw-card-icon.chw-icon svg  { width: 1.5em; height: 1.5em; }
.chw-banner-icon.chw-icon { font-size: 1.6em; }
.chw-banner-icon.chw-icon svg { width: 1.6em; height: 1.6em; }
.chw-table-icon.chw-icon svg { width: 16px; height: 16px; }

/* ---- Countdown ---- */
.chw-countdown-wrap {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	margin-top: 8px;
	flex-wrap: wrap;
}
.chw-countdown-wrap .chw-cd-label {
	font-size: 0.85em;
	opacity: 0.8;
	margin-right: 4px;
}
.chw-cd-unit {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	background: rgba(0,0,0,0.12);
	border-radius: 4px;
	padding: 2px 7px;
	min-width: 38px;
}
.chw-cd-unit .chw-cd-value {
	font-size: 1.1em;
	font-weight: 700;
	line-height: 1.3;
}
.chw-cd-unit .chw-cd-sub {
	font-size: 0.65em;
	text-transform: uppercase;
	opacity: 0.75;
	letter-spacing: 0.5px;
}
.chw-cd-sep {
	font-weight: 700;
	font-size: 1.1em;
	margin: 0 1px;
	align-self: flex-start;
	padding-top: 2px;
}

/* ================================================================
   STYLE 1 — Simple List
   ================================================================ */
.chw-style-list {
	padding: 0;
}
.chw-style-list .chw-heading {
	font-size: 1.1em;
	font-weight: 700;
}
.chw-style-list ul.chw-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.chw-style-list ul.chw-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 10px;
	padding: 8px 0;
	border-bottom: 1px solid #eee;
}
.chw-style-list ul.chw-list li:last-child {
	border-bottom: none;
}
.chw-style-list .chw-item-icon {
	font-size: 1.1em;
}
.chw-style-list .chw-item-title {
	font-weight: 600;
}
.chw-style-list .chw-item-dates {
	font-size: 0.88em;
	color: #666;
}
.chw-style-list .chw-item-desc {
	width: 100%;
	font-size: 0.85em;
	color: #777;
	margin-top: 2px;
}

/* ================================================================
   STYLE 2 — Card (modern redesign)
   ================================================================ */
.chw-style-card .chw-heading {
	font-size: 1.25em;
	font-weight: 800;
	letter-spacing: -0.01em;
}
.chw-style-card .chw-cards-grid {
	display: grid;
	/* auto-fit (not auto-fill) collapses empty columns, so a single card fills
	   the available width instead of floating in dead space. */
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	grid-auto-rows: min-content;     /* rows are only as tall as content */
	align-items: start;              /* cards align to top, don't stretch */
	gap: 22px;
}

.chw-style-card .chw-card {
	position: relative;
	border-radius: 14px;
	overflow: hidden;
	box-shadow:
		0 10px 30px -12px rgba(0,0,0,0.18),
		0 2px 6px rgba(0,0,0,0.06);
	background: #fff;
	border: 1px solid rgba(0,0,0,0.06);
	transition: transform .3s ease, box-shadow .3s ease;
	display: flex;
	flex-direction: column;
	align-self: flex-start;       /* don't stretch to grid row height in editor */
	height: -moz-fit-content;
	height: fit-content;          /* card height = content height, no extra space */
}
.chw-style-card .chw-card:hover {
	transform: translateY(-3px);
	box-shadow:
		0 18px 40px -14px rgba(0,0,0,0.22),
		0 4px 10px rgba(0,0,0,0.08);
}

/* Header — colored bar at the top with icon + title */
.chw-style-card .chw-card-header {
	position: relative;
	padding: 22px 24px;                  /* MUCH bigger than before */
	color: #fff;
	display: flex;
	align-items: center;
	gap: 14px;
	overflow: hidden;
}
/* Subtle inner gradient overlay for depth */
.chw-style-card .chw-card-header::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(255,255,255,0.10) 0%, rgba(0,0,0,0.10) 100%);
	pointer-events: none;
}

.chw-style-card .chw-card-icon {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255,255,255,0.22);
	backdrop-filter: blur(4px);
	font-size: 1.4em;
	box-shadow: 0 2px 8px rgba(0,0,0,0.10);
}
.chw-style-card .chw-card-icon.chw-icon svg {
	width: 22px;
	height: 22px;
}

/* Title — plain specificity (2 classes max) so Elementor's {{WRAPPER}} selectors
   (which always carry extra wrapper classes) naturally override it. */
.chw-card-header .chw-card-title {
	position: relative;
	z-index: 1;
	color: #ffffff;
	font-size: 1.15em;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.005em;
	text-shadow: 0 1px 2px rgba(0,0,0,0.10);
	font-family: inherit;
}
/* Flat layout — dark title on white */
.chw-card-layout-flat .chw-card-title {
	color: #1d2327;
	text-shadow: none;
}

/* Body — white area with dates / description / countdown */
.chw-style-card .chw-card-body {
	padding: 20px 24px 22px;
	/* flex: 1 removed — was making card fill parent grid row height,
	   causing the "extra gray strip" below the body in Elementor editor */
	display: flex;
	flex-direction: column;
}
.chw-style-card .chw-card-dates {
	font-size: 0.95em;
	font-weight: 600;
	color: #1d2327;
	margin: 0 0 8px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.chw-style-card .chw-card-dates small {
	font-weight: 400;
	color: #666;
	font-size: 0.85em;
}
.chw-style-card .chw-card-desc {
	font-size: 0.92em;
	line-height: 1.55;
	color: #50575e;
	margin: 8px 0 0;
}
.chw-style-card .chw-countdown-wrap {
	margin-top: 14px;
}
.chw-style-card .chw-card .chw-cd-unit {
	background: rgba(0,0,0,0.05);
	color: inherit;
}
.chw-style-card .chw-card .chw-cd-label {
	color: #50575e;
	font-weight: 600;
}

/* === Card variant: header-left (vertical bar instead of top bar) === */
.chw-style-card .chw-card-layout-left {
	flex-direction: row;
}
.chw-style-card .chw-card-layout-left .chw-card-header {
	width: 100px;
	flex-shrink: 0;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	padding: 22px 16px;
}
.chw-style-card .chw-card-layout-left .chw-card-icon {
	margin-bottom: 8px;
}
.chw-style-card .chw-card-layout-left .chw-card-title {
	font-size: 0.95em;
	text-align: center;
}

/* === Card variant: flat (no colored header, accent border on top) === */
.chw-style-card .chw-card-layout-flat .chw-card-header {
	background: #fff;
	border-top: 4px solid;               /* color set inline */
	color: #1d2327;
	padding-bottom: 12px;
}
.chw-style-card .chw-card-layout-flat .chw-card-header::after {
	display: none;
}
.chw-style-card .chw-card-layout-flat .chw-card-icon {
	background: currentColor;
}
.chw-style-card .chw-card-layout-flat .chw-card-icon svg {
	fill: #fff;
}

/* === Responsive === */
@media (max-width: 520px) {
	.chw-style-card .chw-card-layout-left {
		flex-direction: column;
	}
	.chw-style-card .chw-card-layout-left .chw-card-header {
		width: 100%;
		flex-direction: row;
		text-align: left;
	}
	.chw-style-card .chw-card-layout-left .chw-card-icon {
		margin-bottom: 0;
	}
}

/* ================================================================
   STYLE 3 — Wide Banner (modern redesign)
   ================================================================ */
.chw-style-banner {
	color: #fff;
}
.chw-multi-banner > .chw-banner-item + .chw-banner-item {
	margin-top: 14px;
}

/* --- Base item (shared by all variants) --- */
.chw-banner-item {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	padding: 28px 32px;
	box-shadow:
		0 10px 30px -10px rgba(0,0,0,0.25),
		0 2px 6px rgba(0,0,0,0.08);
	display: block;
	color: #fff;
	transition: transform .3s ease, box-shadow .3s ease;
	isolation: isolate;
}
.chw-banner-item:hover {
	transform: translateY(-2px);
	box-shadow:
		0 18px 40px -12px rgba(0,0,0,0.30),
		0 4px 10px rgba(0,0,0,0.10);
}

.chw-banner-content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 18px 24px;
	align-items: center;
}

/* Pattern overlay (sits behind text, in front of base bg) */
.chw-banner-pattern {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.18;
	mix-blend-mode: overlay;
}

/* Eyebrow label */
.chw-banner-eyebrow {
	margin: 0 0 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	opacity: 0.85;
}

/* Title */
.chw-banner-title {
	margin: 0 0 6px;
	font-size: 1.5em;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

/* Dates */
.chw-banner-dates {
	margin: 0;
	font-size: 0.95em;
	font-weight: 500;
	opacity: 0.92;
}

/* Description */
.chw-banner-desc {
	margin: 8px 0 0;
	font-size: 0.92em;
	line-height: 1.55;
	opacity: 0.86;
	max-width: 60ch;
}

/* Icon */
.chw-banner-icon {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(255,255,255,0.18);
	backdrop-filter: blur(6px);
	font-size: 1.8em;
	box-shadow: 0 4px 12px rgba(0,0,0,0.10);
}
.chw-banner-icon.chw-icon svg {
	width: 28px;
	height: 28px;
}

.chw-banner-body {
	flex: 1 1 280px;
	min-width: 0;
}

/* Actions column (countdown + CTA) */
.chw-banner-actions {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-end;
}

/* CTA button */
.chw-banner-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background: rgba(255,255,255,0.95);
	color: #1a1a1a !important;
	text-decoration: none !important;
	border-radius: 999px;
	font-weight: 600;
	font-size: 0.92em;
	letter-spacing: 0.2px;
	box-shadow: 0 4px 14px rgba(0,0,0,0.15);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
	white-space: nowrap;
}
.chw-banner-cta:hover {
	transform: translateY(-1px);
	background: #fff;
	box-shadow: 0 8px 20px rgba(0,0,0,0.20);
}
.chw-banner-cta-arrow {
	transition: transform .2s ease;
}
.chw-banner-cta:hover .chw-banner-cta-arrow {
	transform: translateX(3px);
}

/* Countdown inside banner */
.chw-banner-item .chw-cd-unit {
	background: rgba(255,255,255,0.22);
	backdrop-filter: blur(4px);
	min-width: 44px;
	padding: 4px 8px;
}
.chw-banner-item .chw-countdown-wrap .chw-cd-label {
	color: rgba(255,255,255,0.95);
	font-weight: 600;
}

/* Dismiss button */
.chw-banner-dismiss {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	width: 32px;
	height: 32px;
	border: none;
	background: rgba(255,255,255,0.18);
	color: inherit;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.chw-banner-dismiss:hover {
	background: rgba(255,255,255,0.35);
	transform: rotate(90deg);
}

/* ============================
   VARIANT: gradient (default)
   ============================ */
/* Inline gradient is set on the element via style="" */

/* ============================
   VARIANT: solid
   ============================ */
.chw-banner-variant-solid .chw-banner-icon {
	background: rgba(0,0,0,0.15);
}

/* ============================
   VARIANT: outline
   ============================ */
.chw-banner-variant-outline {
	border: 2px solid;            /* color set inline */
	box-shadow: 0 6px 24px -8px rgba(0,0,0,0.10);
}
.chw-banner-variant-outline .chw-banner-icon {
	background: currentColor;
	color: #fff;
}
.chw-banner-variant-outline .chw-banner-icon svg,
.chw-banner-variant-outline .chw-banner-icon { color: inherit; }
.chw-banner-variant-outline .chw-banner-icon svg { fill: #fff; }
.chw-banner-variant-outline .chw-banner-cta {
	background: currentColor;
	color: #fff !important;
}
.chw-banner-variant-outline .chw-banner-cta:hover {
	filter: brightness(1.1);
}
.chw-banner-variant-outline .chw-banner-eyebrow,
.chw-banner-variant-outline .chw-banner-dates,
.chw-banner-variant-outline .chw-banner-desc {
	opacity: 0.75;
}
.chw-banner-variant-outline .chw-cd-unit {
	background: rgba(0,0,0,0.06);
	color: inherit;
}

/* ============================
   VARIANT: split
   ============================ */
.chw-banner-variant-split {
	display: flex;
	padding: 0;
	background: #fff !important;
	color: #1a1a1a;
	overflow: hidden;
}
.chw-banner-variant-split .chw-banner-icon-panel {
	flex-shrink: 0;
	width: 160px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--chw-accent) 0%, var(--chw-accent-dark) 100%);
	color: #fff;
	padding: 24px;
}
.chw-banner-variant-split .chw-banner-icon-panel .chw-banner-icon {
	background: rgba(255,255,255,0.22);
	width: 72px;
	height: 72px;
	font-size: 2.4em;
}
.chw-banner-variant-split .chw-banner-icon-panel .chw-banner-icon.chw-icon svg {
	width: 36px;
	height: 36px;
}
.chw-banner-variant-split .chw-banner-content {
	flex: 1;
	padding: 28px 32px;
	color: #1a1a1a;
}
.chw-banner-variant-split .chw-banner-eyebrow {
	color: var(--chw-accent);
	opacity: 1;
}
.chw-banner-variant-split .chw-banner-dates,
.chw-banner-variant-split .chw-banner-desc {
	color: #555;
	opacity: 1;
}
.chw-banner-variant-split .chw-banner-cta {
	background: var(--chw-accent);
	color: #fff !important;
}
.chw-banner-variant-split .chw-cd-unit {
	background: rgba(0,0,0,0.06);
	color: #1a1a1a;
}
.chw-banner-variant-split .chw-countdown-wrap .chw-cd-label {
	color: #555;
}

/* ============================
   VARIANT: glass (frosted)
   ============================ */
.chw-banner-variant-glass {
	backdrop-filter: blur(14px) saturate(160%);
	-webkit-backdrop-filter: blur(14px) saturate(160%);
	border: 1px solid rgba(255,255,255,0.20);
}
.chw-banner-variant-glass .chw-banner-icon {
	background: rgba(255,255,255,0.28);
}

/* ============================
   SIZES
   ============================ */
.chw-banner-size-compact {
	padding: 16px 22px;
	border-radius: 10px;
}
.chw-banner-size-compact .chw-banner-title  { font-size: 1.15em; }
.chw-banner-size-compact .chw-banner-dates  { font-size: 0.85em; }
.chw-banner-size-compact .chw-banner-desc   { font-size: 0.82em; margin-top: 4px; }
.chw-banner-size-compact .chw-banner-icon   { width: 40px; height: 40px; font-size: 1.3em; }
.chw-banner-size-compact .chw-banner-eyebrow { display: none; }
.chw-banner-size-compact.chw-banner-variant-split .chw-banner-icon-panel { width: 100px; padding: 14px; }
.chw-banner-size-compact.chw-banner-variant-split .chw-banner-content    { padding: 16px 22px; }

.chw-banner-size-large {
	padding: 48px 56px;
	border-radius: 20px;
}
.chw-banner-size-large .chw-banner-title    { font-size: 2.4em; }
.chw-banner-size-large .chw-banner-dates    { font-size: 1.05em; }
.chw-banner-size-large .chw-banner-desc     { font-size: 1em; margin-top: 12px; }
.chw-banner-size-large .chw-banner-icon     { width: 84px; height: 84px; font-size: 2.6em; }
.chw-banner-size-large .chw-banner-icon.chw-icon svg { width: 42px; height: 42px; }
.chw-banner-size-large .chw-banner-content  { gap: 28px 36px; }
.chw-banner-size-large.chw-banner-variant-split .chw-banner-icon-panel { width: 220px; }
.chw-banner-size-large.chw-banner-variant-split .chw-banner-content    { padding: 44px 52px; }

/* ============================
   ALIGNMENTS
   ============================ */
.chw-banner-align-center .chw-banner-content {
	flex-direction: column;
	text-align: center;
	align-items: center;
}
.chw-banner-align-center .chw-banner-actions {
	align-items: center;
}
.chw-banner-align-right .chw-banner-content {
	flex-direction: row-reverse;
	text-align: right;
}
.chw-banner-align-right .chw-banner-actions {
	align-items: flex-start;
}

/* ============================
   PATTERNS
   ============================ */
.chw-banner-pattern-dots .chw-banner-pattern {
	background-image: radial-gradient(circle, rgba(255,255,255,0.6) 1.2px, transparent 1.5px);
	background-size: 18px 18px;
}
.chw-banner-pattern-lines .chw-banner-pattern {
	background-image: repeating-linear-gradient(
		45deg,
		rgba(255,255,255,0.3),
		rgba(255,255,255,0.3) 1px,
		transparent 1px,
		transparent 14px
	);
}
.chw-banner-pattern-grid .chw-banner-pattern {
	background-image:
		linear-gradient(rgba(255,255,255,0.25) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,0.25) 1px, transparent 1px);
	background-size: 24px 24px;
}
.chw-banner-pattern-waves .chw-banner-pattern {
	background-image:
		radial-gradient(circle at 20% 20%, rgba(255,255,255,0.18) 0%, transparent 40%),
		radial-gradient(circle at 80% 80%, rgba(255,255,255,0.15) 0%, transparent 45%),
		radial-gradient(circle at 60% 30%, rgba(255,255,255,0.12) 0%, transparent 35%);
	mix-blend-mode: screen;
	opacity: 1;
}

/* ============================
   ANIMATIONS
   ============================ */
@keyframes chw-banner-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes chw-banner-slide {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes chw-banner-pop {
	0%   { opacity: 0; transform: scale(0.92); }
	60%  { opacity: 1; transform: scale(1.03); }
	100% { transform: scale(1); }
}
.chw-banner-anim-fade  { animation: chw-banner-fade .6s ease-out both; }
.chw-banner-anim-slide { animation: chw-banner-slide .55s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.chw-banner-anim-pop   { animation: chw-banner-pop .5s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
.chw-banner-anim-none  { animation: none; }
@media (prefers-reduced-motion: reduce) {
	.chw-banner-item, .chw-banner-anim-fade, .chw-banner-anim-slide, .chw-banner-anim-pop {
		animation: none !important;
		transition: none !important;
	}
}

/* ============================
   RESPONSIVE
   ============================ */
@media (max-width: 600px) {
	.chw-banner-item {
		padding: 22px 20px;
	}
	.chw-banner-size-large {
		padding: 32px 24px;
	}
	.chw-banner-content {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
	.chw-banner-actions {
		width: 100%;
		align-items: stretch;
	}
	.chw-banner-cta {
		justify-content: center;
	}
	.chw-banner-size-large .chw-banner-title { font-size: 1.7em; }
	.chw-banner-variant-split {
		flex-direction: column;
	}
	.chw-banner-variant-split .chw-banner-icon-panel {
		width: 100% !important;
		padding: 22px;
	}
	.chw-banner-align-right .chw-banner-content {
		flex-direction: column;
		text-align: left;
	}
}

/* ================================================================
   STYLE 4 — Timeline
   ================================================================ */
.chw-style-timeline {
	padding: 0;
}
.chw-style-timeline .chw-heading {
	font-size: 1.1em;
	font-weight: 700;
}
.chw-timeline {
	position: relative;
	padding-left: 28px;
}
.chw-timeline::before {
	content: '';
	position: absolute;
	left: 9px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: #e0e0e0;
}
.chw-timeline-item {
	position: relative;
	margin-bottom: 20px;
}
.chw-timeline-item:last-child {
	margin-bottom: 0;
}
.chw-timeline-dot {
	position: absolute;
	left: -24px;
	top: 5px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 0 0 2px currentColor;
}
.chw-timeline-content {
	background: #f9f9f9;
	border-radius: 6px;
	padding: 10px 14px;
	border: 1px solid #eee;
}
.chw-timeline-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
}
.chw-timeline-icon {
	font-size: 1em;
}
.chw-timeline-title {
	font-weight: 600;
	font-size: 0.95em;
	margin: 0;
}
.chw-timeline-dates {
	font-size: 0.82em;
	color: #666;
	margin: 0 0 4px;
}
.chw-timeline-desc {
	font-size: 0.82em;
	color: #777;
	margin: 4px 0 0;
}
.chw-timeline-status {
	display: inline-block;
	font-size: 0.72em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 1px 6px;
	border-radius: 10px;
	margin-left: auto;
}
.chw-timeline-status.active   { background: #d4edda; color: #155724; }
.chw-timeline-status.upcoming { background: #cce5ff; color: #004085; }

/* ================================================================
   STYLE 5 — Compact Bar
   ================================================================ */
.chw-style-compact-bar {
	border-radius: 4px;
}
.chw-style-compact-bar .chw-bar-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	padding: 9px 14px;
	color: #fff;
}
.chw-style-compact-bar .chw-bar-item + .chw-bar-item {
	border-top: 1px solid rgba(255,255,255,0.2);
}
.chw-bar-icon {
	font-size: 1.1em;
}
.chw-bar-title {
	font-weight: 600;
	font-size: 0.92em;
}
.chw-bar-dates {
	font-size: 0.82em;
	opacity: 0.9;
}
.chw-bar-spacer { flex: 1; }
.chw-style-compact-bar .chw-countdown-wrap {
	margin-top: 0;
}
.chw-style-compact-bar .chw-cd-unit {
	background: rgba(255,255,255,0.2);
	min-width: 32px;
	padding: 1px 5px;
}
.chw-style-compact-bar .chw-cd-unit .chw-cd-value {
	font-size: 0.95em;
}

/* ================================================================
   STYLE 6 — Table
   ================================================================ */
.chw-style-table {
	overflow-x: auto;
}
.chw-style-table .chw-heading {
	font-size: 1.1em;
	font-weight: 700;
}
.chw-style-table table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92em;
}
.chw-style-table table thead th {
	text-align: left;
	padding: 9px 12px;
	font-weight: 700;
	border-bottom: 2px solid #e0e0e0;
	white-space: nowrap;
	background: #f5f5f5;
}
.chw-style-table table tbody tr:nth-child(even) {
	background: #fafafa;
}
.chw-style-table table tbody tr:hover {
	background: #f0f7ff;
}
.chw-style-table table tbody td {
	padding: 8px 12px;
	border-bottom: 1px solid #eee;
	vertical-align: middle;
}
.chw-table-icon-title {
	display: flex;
	align-items: center;
	gap: 7px;
}
.chw-table-color-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-right: 2px;
	vertical-align: middle;
}
.chw-table-status {
	display: inline-block;
	font-size: 0.78em;
	font-weight: 700;
	text-transform: uppercase;
	padding: 1px 6px;
	border-radius: 10px;
	letter-spacing: 0.4px;
}
.chw-table-status.active   { background: #d4edda; color: #155724; }
.chw-table-status.upcoming { background: #cce5ff; color: #004085; }
.chw-table-status.past     { background: #e2e3e5; color: #383d41; }

/* ================================================================
   STYLE 7 (bonus) — Minimal / Inline Text
   ================================================================ */
.chw-style-minimal {
	font-size: 0.95em;
	color: inherit;
}
.chw-minimal-item {
	margin-bottom: 4px;
}
.chw-minimal-icon {
	margin-right: 4px;
}
.chw-minimal-title {
	font-weight: 600;
}
.chw-minimal-sep {
	margin: 0 4px;
	opacity: 0.5;
}
.chw-minimal-dates {
	opacity: 0.75;
}

/* ---- Responsive tweaks ---- */
@media (max-width: 520px) {
	.chw-style-card .chw-cards-grid {
		grid-template-columns: 1fr;
	}
	.chw-banner-item {
		flex-direction: column;
		align-items: flex-start;
	}
}
