/* ==========================================================================
   SentrySite – Exhibitors widget (Elementor)
   Every value below can be overridden from the widget's Style tab through
   the CSS custom properties set on .ss-exhibitors.
   ========================================================================== */

.ss-exhibitors {
	--ss-cols: 4;
	--ss-gap: 20px;
	--ss-card-bg: #3d3f6b;
	--ss-card-bg-hover: var(--ss-card-bg);
	--ss-card-radius: 14px;
	--ss-card-padding: 18px 22px;
	--ss-card-min-h: 0;
	--ss-logo-w: 110px;
	--ss-logo-h: 80px;
	--ss-logo-bg: #ffffff;
	--ss-logo-padding: 8px;
	--ss-logo-radius: 10px;
	--ss-text-align: center;
	--ss-name-color: #ffffff;
	--ss-name-en-color: rgba(255, 255, 255, 0.75);
	--ss-ribbon-color: #ffffff;
	--ss-ribbon-sponsor: #e6266b;
	--ss-ribbon-silver: #8e9399;
	--ss-ribbon-exhibitor: #2d9cdb;
	--ss-ribbon-w: 150px;
	--ss-ribbon-offset: 16px;
	--ss-link-color: #ffffff;
	--ss-link-color-hover: var(--ss-link-color);

	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(var(--ss-cols), minmax(0, 1fr));
	gap: var(--ss-gap);
}

.ss-exhibitor {
	margin: 0;
	padding: 0;
	min-width: 0;
	container-type: inline-size;
}

/* Card ------------------------------------------------------------------ */

.ss-exhibitor__card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 18px;
	box-sizing: border-box;
	height: 100%;
	min-height: var(--ss-card-min-h);
	padding: var(--ss-card-padding);
	background: var(--ss-card-bg);
	border-radius: var(--ss-card-radius);
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}

.ss-exhibitor__card--link:hover,
.ss-exhibitor__card--link:focus-visible {
	background: var(--ss-card-bg-hover);
	text-decoration: none;
	color: inherit;
	outline: none;
}

.ss-exhibitors-lift-yes .ss-exhibitor__card--link:hover,
.ss-exhibitors-lift-yes .ss-exhibitor__card--link:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.ss-exhibitor__card--link:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.6);
}

/* Logo ------------------------------------------------------------------ */

.ss-exhibitor__logo {
	flex: 0 0 var(--ss-logo-w);
	width: var(--ss-logo-w);
	max-width: 100%;
	height: var(--ss-logo-h);
	box-sizing: border-box;
	padding: var(--ss-logo-padding);
	background: var(--ss-logo-bg);
	border-radius: var(--ss-logo-radius);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ss-exhibitor__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

/* Names ----------------------------------------------------------------- */

.ss-exhibitor__names {
	flex: 1 1 auto;
	min-width: 0;
	text-align: var(--ss-text-align);
}

.ss-exhibitor__name {
	margin: 0;
	color: var(--ss-name-color);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	overflow-wrap: break-word;
}

.ss-exhibitor__name-en {
	margin: 4px 0 0;
	color: var(--ss-name-en-color);
	font-size: 13px;
	line-height: 1.3;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	overflow-wrap: break-word;
}

.ss-exhibitor__link {
	display: inline-block;
	margin-top: 10px;
	color: var(--ss-link-color);
	font-size: 14px;
	text-decoration: underline;
	transition: color 0.2s ease;
}

.ss-exhibitor__link:hover,
.ss-exhibitor__link:focus-visible {
	color: var(--ss-link-color-hover);
}

/* Ribbon ---------------------------------------------------------------- */

.ss-exhibitor__ribbon {
	position: absolute;
	top: var(--ss-ribbon-offset);
	left: calc(var(--ss-ribbon-w) / -4);
	width: var(--ss-ribbon-w);
	padding: 5px 0;
	box-sizing: border-box;
	background: var(--ss-ribbon-bg, var(--ss-ribbon-sponsor));
	color: var(--ss-ribbon-color);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	transform: rotate(-45deg);
	transform-origin: center;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
	z-index: 2;
	pointer-events: none;
}

.ss-exhibitor--sponsor .ss-exhibitor__ribbon {
	--ss-ribbon-bg: var(--ss-ribbon-sponsor);
}

.ss-exhibitor--silver .ss-exhibitor__ribbon {
	--ss-ribbon-bg: var(--ss-ribbon-silver);
}

.ss-exhibitor--exhibitor .ss-exhibitor__ribbon {
	--ss-ribbon-bg: var(--ss-ribbon-exhibitor);
}

/* In LTR pages the ribbon moves to the top-right corner. */
body:not(.rtl) .ss-exhibitor__ribbon {
	left: auto;
	right: calc(var(--ss-ribbon-w) / -4);
	transform: rotate(45deg);
}

/* Layout: logo above name --------------------------------------------- */

.ss-exhibitors-layout-column .ss-exhibitor__card {
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.ss-exhibitors-layout-column .ss-exhibitor__logo {
	flex-basis: auto;
}

.ss-exhibitors-layout-column .ss-exhibitor__names {
	width: 100%;
}

/* Narrow cards: stack the logo above the name regardless of layout ------ */

@container (max-width: 280px) {
	.ss-exhibitor__card {
		flex-direction: column;
		justify-content: center;
	}

	.ss-exhibitor__logo {
		flex-basis: auto;
	}

	.ss-exhibitor__names {
		width: 100%;
	}
}

/* Small screens --------------------------------------------------------- */

@media (max-width: 480px) {
	.ss-exhibitor__card {
		gap: 14px;
	}

	.ss-exhibitor__name {
		font-size: 18px;
	}
}
