.irannet-brand-logos {
	--irannet-brand-gap: 16px;
	--irannet-brand-visible: 6;
	--irannet-brand-visible-tablet: 4;
	--irannet-brand-visible-mobile: 2;
	--irannet-brand-accent: #2563eb;
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.irannet-brand-logos *,
.irannet-brand-logos *::before,
.irannet-brand-logos *::after {
	box-sizing: border-box;
}

.irannet-brand-logos__title {
	margin: 0 0 24px;
	font-size: clamp(1.25rem, 2vw, 1.8rem);
	font-weight: 800;
	line-height: 1.35;
	color: #111827;
}

.irannet-brand-logos__viewport {
	position: relative;
	min-width: 0;
}

.irannet-brand-logos__track {
	gap: var(--irannet-brand-gap);
	outline: none;
}

.irannet-brand-logos--grid .irannet-brand-logos__track {
	display: grid;
	grid-template-columns: repeat(var(--irannet-brand-visible), minmax(0, 1fr));
}

.irannet-brand-logos--rail .irannet-brand-logos__track {
	display: flex;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	padding: 4px 2px 14px;
	cursor: grab;
}

.irannet-brand-logos--rail[data-drag="no"] .irannet-brand-logos__track {
	cursor: default;
}

.irannet-brand-logos--rail .irannet-brand-logos__track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	user-select: none;
}

.irannet-brand-logos--hide-scrollbar .irannet-brand-logos__track {
	scrollbar-width: none;
}

.irannet-brand-logos--hide-scrollbar .irannet-brand-logos__track::-webkit-scrollbar {
	display: none;
}

.irannet-brand-logos--scrollbar .irannet-brand-logos__track {
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--irannet-brand-accent) 55%, transparent) transparent;
}

.irannet-brand-logos--scrollbar .irannet-brand-logos__track::-webkit-scrollbar {
	height: 5px;
}

.irannet-brand-logos--scrollbar .irannet-brand-logos__track::-webkit-scrollbar-thumb {
	background: color-mix(in srgb, var(--irannet-brand-accent) 55%, transparent);
	border-radius: 999px;
}

.irannet-brand-logo-card {
	position: relative;
	min-width: 0;
	scroll-snap-align: start;
}

.irannet-brand-logos--rail .irannet-brand-logo-card {
	flex: 0 0 calc((100% - (var(--irannet-brand-visible) - 1) * var(--irannet-brand-gap)) / var(--irannet-brand-visible));
}

.irannet-brand-logo-card__surface {
	--irannet-brand-card-bg: #fff;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 140px;
	padding: 20px;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	background: var(--irannet-brand-card-bg);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background-color .28s ease;
}

.irannet-brand-logo-card__surface:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--irannet-brand-accent) 36%, transparent);
	outline-offset: 3px;
}

.irannet-brand-logo-card--linked .irannet-brand-logo-card__surface,
.irannet-brand-logo-card__media-link,
.irannet-brand-logo-card__name[href] {
	cursor: pointer;
}

.irannet-brand-logo-card__media-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	color: inherit;
	text-decoration: none;
}

.irannet-brand-logo-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72%;
	height: 72px;
	min-width: 0;
	transition: transform .3s ease, filter .3s ease, opacity .3s ease;
}

.irannet-brand-logo-card__image {
	display: block;
	max-width: 100%;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.irannet-brand-logo-card__fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: min(72px, 100%);
	aspect-ratio: 1;
	border-radius: 22px;
	background: linear-gradient(135deg, color-mix(in srgb, var(--irannet-brand-accent) 14%, #fff), color-mix(in srgb, var(--irannet-brand-accent) 32%, #fff));
	color: var(--irannet-brand-accent);
	font-size: clamp(1.3rem, 3vw, 2rem);
	font-weight: 900;
	line-height: 1;
}

.irannet-brand-logo-card__name {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	margin-top: 12px;
	color: #111827;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	white-space: normal;
}

.irannet-brand-logo-card__action {
	position: absolute;
	inset-block-start: 10px;
	inset-inline-end: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #111827;
	color: #fff;
	font-size: 13px;
	opacity: 0;
	transform: translateY(5px) scale(.9);
	transition: opacity .25s ease, transform .25s ease;
	pointer-events: none;
}

.irannet-brand-logo-card--linked:hover .irannet-brand-logo-card__action,
.irannet-brand-logo-card--linked:focus-within .irannet-brand-logo-card__action {
	opacity: 1;
	transform: translateY(0) scale(1);
}

/* Card presets */
.irannet-brand-logos--style-clean .irannet-brand-logo-card__surface {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
}

.irannet-brand-logos--style-separator .irannet-brand-logo-card__surface {
	min-height: 116px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.irannet-brand-logos--style-separator .irannet-brand-logo-card:not(:last-child) {
	border-inline-end: 1px solid color-mix(in srgb, var(--irannet-brand-accent, #2563eb) 16%, #d1d5db);
}
.irannet-brand-logos--style-uniform-tile .irannet-brand-logo-card__surface {
	min-height: 156px;
	border-color: color-mix(in srgb, var(--irannet-brand-accent, #2563eb) 12%, #e5e7eb);
	border-radius: 12px;
	background: color-mix(in srgb, var(--irannet-brand-accent, #2563eb) 5%, #fff);
}
.irannet-brand-logos--style-uniform-tile .irannet-brand-logo-card__media { height: 64px; }

.irannet-brand-logos--style-outline .irannet-brand-logo-card__surface {
	border-color: #e5e7eb;
}

.irannet-brand-logos--style-elevated .irannet-brand-logo-card__surface {
	border-color: transparent;
	box-shadow: 0 14px 38px rgba(15, 23, 42, .1);
}

.irannet-brand-logos--style-soft .irannet-brand-logo-card__surface {
	border-color: transparent;
	background: color-mix(in srgb, var(--irannet-brand-accent) 5%, #fff);
}

.irannet-brand-logos--style-glass .irannet-brand-logo-card__surface {
	border-color: rgba(255, 255, 255, .55);
	background: rgba(255, 255, 255, .56);
	box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.irannet-brand-logos--style-grayscale .irannet-brand-logo-card__image {
	filter: grayscale(1) contrast(.82);
	opacity: .68;
}

.irannet-brand-logos--style-grayscale .irannet-brand-logo-card__surface:hover .irannet-brand-logo-card__image,
.irannet-brand-logos--style-grayscale .irannet-brand-logo-card__surface:focus-visible .irannet-brand-logo-card__image {
	filter: grayscale(0) contrast(1);
	opacity: 1;
}

.irannet-brand-logos--style-spin-border .irannet-brand-logo-card {
	padding: 1px;
	border-radius: inherit;
	overflow: hidden;
}

.irannet-brand-logos--style-spin-border .irannet-brand-logo-card::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -80%;
	background: conic-gradient(from 0deg, transparent 0 65%, var(--irannet-brand-accent) 78%, transparent 92%);
	animation: irannet-brand-spin 4.2s linear infinite;
}

.irannet-brand-logos--style-spin-border .irannet-brand-logo-card__surface {
	border-color: transparent;
}

.irannet-brand-logos--style-spotlight .irannet-brand-logo-card__surface::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(circle at 50% 20%, color-mix(in srgb, var(--irannet-brand-accent) 18%, transparent), transparent 58%);
	opacity: .18;
	transition: opacity .3s ease, transform .3s ease;
}

.irannet-brand-logos--style-spotlight .irannet-brand-logo-card__surface:hover::before,
.irannet-brand-logos--style-spotlight .irannet-brand-logo-card__surface:focus-visible::before {
	opacity: 1;
	transform: scale(1.08);
}

/* Hover presets */
.irannet-brand-logos--hover-lift .irannet-brand-logo-card__surface:hover,
.irannet-brand-logos--hover-lift .irannet-brand-logo-card__surface:focus-visible {
	transform: translateY(-6px);
	box-shadow: 0 18px 42px rgba(15, 23, 42, .13);
}

.irannet-brand-logos--hover-zoom .irannet-brand-logo-card__surface:hover .irannet-brand-logo-card__media,
.irannet-brand-logos--hover-zoom .irannet-brand-logo-card__surface:focus-visible .irannet-brand-logo-card__media {
	transform: scale(1.08);
}

.irannet-brand-logos--hover-glow .irannet-brand-logo-card__surface:hover,
.irannet-brand-logos--hover-glow .irannet-brand-logo-card__surface:focus-visible {
	border-color: color-mix(in srgb, var(--irannet-brand-accent) 70%, #fff);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--irannet-brand-accent) 12%, transparent), 0 16px 38px color-mix(in srgb, var(--irannet-brand-accent) 14%, transparent);
}

.irannet-brand-logos--hover-tilt .irannet-brand-logo-card__surface:hover,
.irannet-brand-logos--hover-tilt .irannet-brand-logo-card__surface:focus-visible {
	transform: perspective(800px) rotateX(2deg) rotateY(-2deg) translateY(-3px);
}

.irannet-brand-logos__navigation {
	position: absolute;
	z-index: 4;
	inset: 50% 0 auto;
	display: flex;
	justify-content: space-between;
	padding-inline: 6px;
	transform: translateY(-50%);
	pointer-events: none;
}

.irannet-brand-logos__arrow {
	--irannet-brand-arrow-icon-size: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid #e5e7eb;
	border-radius: 50%;
	background: #fff;
	color: #111827;
	font-size: var(--irannet-brand-arrow-icon-size, 18px);
	box-shadow: 0 8px 24px rgba(15, 23, 42, .1);
	cursor: pointer;
	pointer-events: auto;
	transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease;
}

.irannet-brand-logos__arrow i { font-size: var(--irannet-brand-arrow-icon-size, 18px); line-height: 1; }
.irannet-brand-logos__arrow svg { width: var(--irannet-brand-arrow-icon-size, 18px); height: var(--irannet-brand-arrow-icon-size, 18px); }
.irannet-brand-logos__arrow:focus-visible { outline: 3px solid var(--irannet-brand-accent, #2563eb); outline-offset: 2px; }

.irannet-brand-logos__arrow:hover,
.irannet-brand-logos__arrow:focus-visible {
	transform: scale(1.06);
	box-shadow: 0 11px 30px rgba(15, 23, 42, .16);
}

.irannet-brand-logos__arrow[disabled],
.irannet-brand-logos__navigation[hidden] {
	display: none;
}

@keyframes irannet-brand-spin {
	to { transform: rotate(1turn); }
}

@media (max-width: 1024px) {
	.irannet-brand-logos--grid .irannet-brand-logos__track {
		grid-template-columns: repeat(var(--irannet-brand-visible-tablet), minmax(0, 1fr));
	}

	.irannet-brand-logos--rail .irannet-brand-logo-card {
		flex-basis: calc((100% - (var(--irannet-brand-visible-tablet) - 1) * var(--irannet-brand-gap)) / var(--irannet-brand-visible-tablet));
	}
}

@media (max-width: 767px) {
	.irannet-brand-logos--grid .irannet-brand-logos__track {
		grid-template-columns: repeat(var(--irannet-brand-visible-mobile), minmax(0, 1fr));
	}

	.irannet-brand-logos--rail .irannet-brand-logo-card {
		flex-basis: calc((100% - (var(--irannet-brand-visible-mobile) - 1) * var(--irannet-brand-gap)) / var(--irannet-brand-visible-mobile));
	}

	.irannet-brand-logos__navigation {
		padding-inline: 2px;
	}

	.irannet-brand-logo-card__action {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.irannet-brand-logos *,
	.irannet-brand-logos *::before,
	.irannet-brand-logos *::after {
		scroll-behavior: auto !important;
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}
