/* ============================================================
   partners.css — loaded only on /partners.
   ============================================================ */

.partner-hero {
	position: relative; border-radius: 24px; padding: 48px;
	background: linear-gradient(135deg, rgba(15, 33, 30, .85), rgba(7, 17, 15, .85));
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	border: 1px solid var(--border-subtle);
	overflow: hidden;
	display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center;
}
.partner-hero::before {
	content: ""; position: absolute; inset: 0; border-radius: 24px; padding: 1.5px;
	background: linear-gradient(135deg, rgba(103, 211, 204, .5), transparent 40%, rgba(103, 211, 204, .3) 90%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	        mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor; mask-composite: exclude;
	pointer-events: none;
}
.partner-hero::after {
	content: ""; position: absolute;
	width: 420px; height: 420px;
	right: -120px; top: -120px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(103, 211, 204, .18), transparent 60%);
	pointer-events: none;
}
.partner-content { position: relative; z-index: 1; }
.partner-flag {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 7px 14px; border-radius: 100px; font-size: 12px; font-weight: 600;
	background: linear-gradient(135deg, rgba(255, 184, 77, .18), rgba(255, 184, 77, .06));
	border: 1px solid rgba(255, 184, 77, .4);
	color: var(--warning); font-family: var(--mono);
	letter-spacing: .06em; text-transform: uppercase;
	margin-bottom: 18px;
}
.partner-flag .pulse {
	width: 7px; height: 7px; border-radius: 50%; background: var(--warning);
	box-shadow: 0 0 0 0 rgba(255, 184, 77, .7);
	animation: flagPulse 1.8s infinite;
}
@keyframes flagPulse {
	0% { box-shadow: 0 0 0 0 rgba(255, 184, 77, .7); }
	70% { box-shadow: 0 0 0 10px rgba(255, 184, 77, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 184, 77, 0); }
}
.partner-content h2 {
	font-size: 34px; font-weight: 800; line-height: 1.15;
	letter-spacing: -.02em; margin-bottom: 16px; color: var(--text-main);
}
.partner-content p { font-size: 15px; line-height: 1.7; color: var(--text-soft); margin-bottom: 22px; max-width: 560px; }
.partner-bullets { list-style: none; display: grid; gap: 10px; margin-bottom: 28px; }
.partner-bullets li { font-size: 14px; color: var(--text-soft); line-height: 1.5; padding-left: 30px; position: relative; }
.partner-bullets li::before {
	content: "✓"; position: absolute; left: 0; top: 1px;
	width: 20px; height: 20px; border-radius: 50%;
	background: var(--gradient-1); color: var(--text-invert);
	font-size: 11px; font-weight: 900;
	display: grid; place-items: center;
	box-shadow: 0 4px 12px var(--glow-strong);
}
.partner-visual { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; min-height: 280px; }
.partner-card {
	position: relative; width: 100%; max-width: 380px;
	padding: 36px 32px; border-radius: 20px;
	background: linear-gradient(180deg, rgba(20, 48, 43, .7), rgba(7, 17, 15, .85));
	border: 1px solid rgba(103, 211, 204, .25);
	text-align: center;
	box-shadow: 0 30px 60px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .05);
	transform: rotate(-1.5deg);
	transition: transform .5s cubic-bezier(.2, .8, .2, 1);
	overflow: hidden;
}
.partner-card:hover { transform: rotate(0deg) translateY(-4px); }
.partner-card-inner { position: relative; z-index: 1; }
.partner-card-label {
	display: inline-block;
	font-family: var(--mono); font-size: 10px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .18em;
	color: var(--accent-mid);
	padding: 5px 12px; border-radius: 100px;
	background: rgba(103, 211, 204, .1);
	border: 1px solid rgba(103, 211, 204, .3);
	margin-bottom: 24px;
}
.partner-logo-block {
	display: flex; justify-content: center; align-items: center;
	margin: 0 auto 14px;
	line-height: 1;
}
.partner-logo-block img {
	max-width: 100%;
	max-height: 110px;
	width: auto; height: auto;
	display: block;
}
.partner-tagline {
	font-size: 12px; color: var(--text-muted);
	font-family: var(--mono);
	margin-bottom: 24px; letter-spacing: .04em; text-transform: uppercase;
}
.partner-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 20px; border-top: 1px solid var(--border-subtle); }
.partner-stat b { display: block; font-size: 22px; font-weight: 800; color: var(--accent-mid); line-height: 1; margin-bottom: 4px; }
.partner-stat span { font-size: 10px; color: var(--text-muted); font-family: var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.partner-card .shine { position: absolute; inset: 0; border-radius: 20px; overflow: hidden; pointer-events: none; z-index: 0; }
.partner-card .shine::before {
	content: ""; position: absolute;
	top: -50%; left: -50%; width: 200%; height: 200%;
	background: linear-gradient(45deg, transparent 40%, rgba(103, 211, 204, .12) 50%, transparent 60%);
	animation: partnerShine 5s ease-in-out infinite;
}
@keyframes partnerShine {
	0%, 100% { transform: translateX(-30%) translateY(-30%); }
	50%      { transform: translateX(30%) translateY(30%); }
}

/* ===== Marquee ===== */
.partners-marquee {
	margin-top: 48px; position: relative; border-radius: 20px;
	background: linear-gradient(180deg, rgba(15, 33, 30, .5), rgba(7, 17, 15, .5));
	border: 1px solid var(--border-subtle);
	overflow: hidden; padding: 32px 0 28px;
}
.marquee-label {
	text-align: center;
	font-family: var(--mono); font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .22em;
	color: var(--accent-mid); margin-bottom: 24px;
	display: flex; align-items: center; justify-content: center; gap: 14px;
}
.marquee-label::before, .marquee-label::after {
	content: ""; width: 40px; height: 1px;
	background: linear-gradient(90deg, transparent, var(--accent-mid), transparent);
}
.marquee-viewport {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.marquee-track {
	display: flex; width: max-content; align-items: center;
	gap: 80px; animation: marqueeScroll 36s linear infinite;
	will-change: transform;
}
.partners-marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-logo {
	flex-shrink: 0; height: 44px;
	display: flex; align-items: center; justify-content: center;
	padding: 0 12px;
	color: var(--text-soft);
	font-weight: 800; font-size: 24px; letter-spacing: -.02em;
	opacity: .55; filter: grayscale(.4);
	transition: all .3s ease; white-space: nowrap;
	font-family: var(--font);
}
.marquee-logo:hover {
	opacity: 1; filter: grayscale(0);
	color: var(--accent-light); transform: translateY(-2px);
}
.marquee-logo .lm-mono { font-family: var(--mono); font-weight: 700; }
.marquee-logo .lm-dot {
	display: inline-block; width: 8px; height: 8px; border-radius: 50%;
	background: var(--accent-mid); margin-left: 2px;
	box-shadow: 0 0 10px var(--glow-mid);
}
.marquee-logo .lm-bars { display: inline-flex; align-items: flex-end; gap: 2px; margin-right: 8px; }
.marquee-logo .lm-bars span { width: 3px; background: currentColor; border-radius: 1px; }
.marquee-logo .lm-bars span:nth-child(1) { height: 8px; }
.marquee-logo .lm-bars span:nth-child(2) { height: 14px; }
.marquee-logo .lm-bars span:nth-child(3) { height: 20px; }
.marquee-logo .lm-square {
	display: inline-block; width: 18px; height: 18px;
	background: #e63946; margin-right: 8px;
	clip-path: polygon(0 0, 100% 0, 100% 60%, 60% 60%, 60% 100%, 0 100%);
	vertical-align: middle;
}
.marquee-logo .lm-light { font-weight: 400; color: var(--text-muted); }

@media (max-width: 900px) {
	.partner-hero { grid-template-columns: 1fr; padding: 32px 24px; gap: 32px; }
	.partner-content h2 { font-size: 26px; }
	.partner-card { transform: none; }
	.marquee-track { gap: 56px; animation-duration: 28s; }
	.marquee-logo { font-size: 20px; height: 36px; }
}
