/**
 * Partner page ("Đối tác doanh nghiệp") styles.
 * Section 1: Hero. Values mirror the Figma design (TCP x VOCO).
 * Enqueued only on template-partner.php (see functions.php).
 */

.partner-page {
	--partner-primary: #0a0e49;
	--partner-ink: #222;
	--partner-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ── Hero shell ───────────────────────────────────────────────────────── */
.partner-hero {
	position: relative;
	overflow: hidden;
	padding: 60px clamp(16px, 8.33vw, 120px);
	background-image: linear-gradient(149.07deg, #f2f6fa 31.41%, #eef0ff 84.88%);
	font-family: var(--partner-font);
}

.partner-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

/* Soft decorative blob on the left (recreated in CSS, no image needed) */
.partner-hero__blob {
	position: absolute;
	left: -95px;
	top: 50%;
	transform: translateY(-50%);
	width: 430px;
	height: 430px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, rgba(147, 141, 232, 0.35), rgba(147, 141, 232, 0) 70%);
	filter: blur(20px);
	pointer-events: none;
	z-index: 0;
}

/* ── Top row: media + copy ────────────────────────────────────────────── */
.partner-hero__top {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
	align-items: center;
	width: 100%;
}

/* Carousel */
.partner-hero__media {
	position: relative;
}

.partner-carousel {
	position: relative;
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
	background: #d6d6d6;
	aspect-ratio: 580 / 359;
}

.partner-carousel__track {
	display: flex;
	height: 100%;
	transition: transform 0.4s ease;
}

.partner-carousel__slide {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
}

.partner-carousel__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.partner-carousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--partner-primary);
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(10, 14, 73, 0.12);
	transition: background 0.2s ease, transform 0.2s ease;
}

.partner-carousel__nav:hover {
	background: #f0f0ff;
}

.partner-carousel__nav--prev { left: -20px; }
.partner-carousel__nav--next { right: -20px; }

/* Copy */
.partner-hero__copy {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.partner-hero__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 48px;
	line-height: 57.6px;
	color: var(--partner-primary);
	text-wrap: balance;
}

.partner-hero__desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--partner-ink);
}

.partner-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	min-width: 206px;
	height: 50px;
	padding: 15px 20px;
	margin-top: 2px;
	border-radius: 28px;
	background-image: linear-gradient(to right, #0e0475, #4b3dc7);
	color: #fff;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 20px;
	line-height: 22.4px;
	text-align: center;
	text-decoration: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.partner-hero__cta:hover {
	color: #fff;
	opacity: 0.92;
	transform: translateY(-1px);
}

/* ── Stats row ────────────────────────────────────────────────────────── */
.partner-hero__stats {
	display: flex;
	gap: 20px;
	width: 100%;
}

.partner-stat {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	text-align: center;
}

.partner-stat__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background-image: linear-gradient(to right, #382ab6, #3d2ebc);
	flex-shrink: 0;
}

.partner-stat__icon {
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.partner-stat__text {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 16px;
	line-height: 24px;
	color: var(--partner-ink);
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .partner-hero__heading {
    font-size: 36px;
    line-height: 43.2px;
  }
}

@media (max-width: 991px) {
	.partner-hero__top {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.partner-hero__stats {
		flex-wrap: wrap;
	}
	.partner-stat {
		flex: 1 1 40%;
	}
}

@media (max-width: 768px) {
	.partner-hero {
		padding: 40px 16px;
	}
}

@media (max-width: 560px) {
	.partner-hero__heading {
		font-size: 24px;
		text-align: center;
		line-height: 27px;
	}
	.partner-hero__desc {
		text-align: justify;
		font-size: 16px;
		font-weight: 400;
	}
	.partner-hero__cta {
		width: 100%;
	}
	.partner-stat {
		flex: 1 1 100%;
	}
	.partner-stat__badge {
		width: 84px;
		height: 84px;
	}
	.partner-stat__icon {
		width: 40px;
		height: 40px;
	}
	/* Hero carousel nav drops below the image, centred in a row. */
	.partner-hero__media {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 16px;
	}
	.partner-carousel {
		flex: 0 0 100%;
	}
	.partner-carousel__nav {
		position: static;
		transform: none;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section 2: Mạng lưới đối tác (partner network / logo carousel)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-network {
	padding: 80px clamp(16px, 8.33vw, 120px);
	background: #fff;
	font-family: var(--partner-font);
}

.partner-network__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.partner-network__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 17px;
	max-width: 794px;
	text-align: center;
}

.partner-network__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
}

.partner-network__subtitle {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--partner-ink, #222);
}

/* Logo carousel */
.partner-logos {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 100%;
}

/* Static clipping viewport — the track slides INSIDE this so the clip box
   never moves over the chevrons. */
.partner-logos__viewport {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	/* Fade logos in/out at both edges so they don't hard-clip when sliding. */
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
	        mask-image: linear-gradient(to right, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
}

.partner-logos__track {
	display: flex;
	align-items: center;
	gap: 24px;
	will-change: transform;
	transition: transform 0.5s ease;
}

/* Slide widths (side vs center) are set inline by JS in px so the center-mode
   proportions can animate. Non-active logos are dimmed. */
.partner-logos__item {
	flex: 0 0 auto;
	width: 160px; /* placeholder until JS sets side/center px widths */
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100px;
	opacity: 0.4;
	transition: width 0.5s ease, opacity 0.4s ease;
}

.partner-logos__item.is-center {
	opacity: 1;
}

.partner-logos__img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* Round white button with a soft shadow — same as the other sliders' nav. */
.partner-logos__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(10, 14, 73, 0.12);
	transition: background 0.2s ease;
}

.partner-logos__nav:hover {
	background: #f0f0ff;
}

@media (max-width: 768px) {
	.partner-network {
		padding: 40px 16px;
	}
	.partner-network__heading {
		font-size: 24px;
	}
	.partner-network__subtitle {
		font-size: 16px;
		font-weight: 400;
		text-align: justify;
	}
}

@media (max-width: 560px) {
	/* Logo nav drops below the strip, centred in a row. */
	.partner-logos {
		flex-wrap: wrap;
		justify-content: center;
		gap: 16px;
	}
	.partner-logos__viewport {
		order: -1;
		flex: 0 0 100%;
		/* Lighter edge fade on mobile so the peeked logo stays clearly visible. */
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
		        mask-image: linear-gradient(to right, transparent 0, #000 8px, #000 calc(100% - 8px), transparent 100%);
	}
	/* Tighter spacing between logos on small screens. */
	.partner-logos__track {
		gap: 12px;
	}
}

@media (max-width: 480px) {
	.partner-logos__item {
		height: 80px;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section 3: Dự án tiêu biểu (featured projects — center-mode carousel)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-projects {
	position: relative;
	overflow: hidden;
	padding: 80px clamp(16px, 8.33vw, 120px);
	background: #f5f4fb;
	font-family: var(--partner-font);
}

/* Faint laurel-wreath decoration, centred behind the active (center) slide */
.partner-projects__deco {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: min(475px, 78%);
	opacity: 0.1;
	pointer-events: none;
	z-index: 0;
}

.partner-projects__deco img {
	display: block;
	width: 100%;
	height: auto;
}

.partner-projects__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	/* minmax(0,…) stops the carousel column from blowing out to its content
	   width (the wide off-screen track), which would make the slider oversized. */
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: 40px;
	align-items: center;
}

.partner-projects__text {
	display: flex;
	flex-direction: column;
	gap: 17px;
}

.partner-projects__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
}

.partner-projects__desc {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--partner-ink, #222);
}

/* Carousel */
.partner-projects__carousel {
	position: relative;
	min-width: 0;
}

/* Static clipping viewport; the track slides inside it. Sits above the deco. */
.partner-projects__viewport {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
}

.partner-projects__track {
	display: flex;
	align-items: center;
	gap: 16px;
	will-change: transform;
	transition: transform 0.5s ease;
}

/* Slide widths (side vs center) are set inline by JS in px so the center-mode
   proportions can animate. Height follows via aspect-ratio. */
.pp-slide {
	position: relative;
	flex: 0 0 auto;
	width: 240px; /* placeholder until JS sets side/center px widths */
	overflow: hidden;
	border-radius: 8px;
	background: #d6d6d6;
	aspect-ratio: 580 / 359;
	transition: width 0.5s ease, border-radius 0.5s ease;
}

.pp-slide.is-center {
	border-radius: 16px;
}

.pp-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.partner-projects__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 36px;
	height: 36px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(10, 14, 73, 0.12);
	transition: background 0.2s ease;
	z-index: 2;
	margin: 0;
}

.partner-projects__nav:hover {
	background: #f0f0ff;
}

/* Sit near the inner edges of the side peeks (tweak the % to taste). */
.partner-projects__nav--prev { left: 18%; }
.partner-projects__nav--next { right: 18%; }

@media (max-width: 991px) {
	.partner-projects__inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.partner-projects__heading {
		font-size: 24px;
		text-align: center;
	}
	.partner-projects__desc {
		text-align: justify;
		font-size: 16px;
		font-weight: 400;
	}
}

@media (max-width: 768px) {
	.partner-projects {
		padding: 40px 16px;
	}
	.partner-projects__deco {
		top: 40%;
	}
}

@media (max-width: 560px) {
	/* Mobile: all slides are equal-size with peeks — round them all like the design. */
	.pp-slide {
		border-radius: 16px;
	}
	/* Peek carousel bleeds to the screen edges (cancel the section's 16px side
	   padding); the nav buttons drop below the slides, centred in a row. */
	.partner-projects__carousel {
		margin-left: -16px;
		margin-right: -16px;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		gap: 16px;
	}
	.partner-projects__viewport {
		flex: 0 0 100%;
	}
	.partner-projects__nav {
		position: static;
		transform: none;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section 4: Chia sẻ từ Doanh Nghiệp (video testimonials)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-testimonials {
	padding: 80px clamp(16px, 8.33vw, 120px);
	background: #fff;
	font-family: var(--partner-font);
}

.partner-testimonials__inner {
	max-width: 1040px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 48px;
}

.partner-testimonials__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
	text-align: center;
}

.partner-testimonials__carousel {
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
}

.partner-testimonials__stage {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Main player */
.partner-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	overflow: hidden;
	background: #222;
}

.partner-video__poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.35s ease;
}

.partner-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	line-height: 0;
	transition: transform 0.2s ease;
}

.partner-video__play:hover {
	transform: translate(-50%, -50%) scale(1.08);
}

.partner-video__play img {
	width: 100%;
	height: 100%;
}

.partner-video__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.partner-video.is-playing .partner-video__poster,
.partner-video.is-playing .partner-video__play {
	display: none;
}

/* Thumbnail strip */
.partner-thumbs {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.partner-thumbs::-webkit-scrollbar {
	display: none;
}

.partner-thumb {
	position: relative;
	flex: 0 0 calc((100% - 5 * 16px) / 6);
	aspect-ratio: 580 / 359;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 8px;
	overflow: hidden;
	background: #d6d6d6;
	opacity: 0.6;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity 0.2s ease;
}

.partner-thumb.is-active,
.partner-thumb:hover {
	opacity: 1;
}

.partner-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.partner-thumb__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.partner-thumb__play img {
	width: 26px;
	height: 26px;
}

/* Chevron nav (reuse the round white button) */
.partner-testimonials__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(10, 14, 73, 0.12);
	transition: background 0.2s ease;
}

.partner-testimonials__nav:hover {
	background: #f0f0ff;
}

@media (max-width: 768px) {
	.partner-testimonials {
		padding: 40px 16px;
	}
	.partner-testimonials__inner {
		gap: 32px;
	}
	.partner-testimonials__heading {
		font-size: 28px;
	}
	.partner-thumb {
		flex-basis: calc((100% - 3 * 16px) / 4);
	}
	/* Chevrons drop to a centred row below the video (like the other sliders). */
	.partner-testimonials__carousel {
		flex-wrap: wrap;
		justify-content: center;
		row-gap: 24px;
	}
	.partner-testimonials__stage {
		order: -1;
		flex: 1 1 100%;
	}
}

@media (max-width: 480px) {
	.partner-thumb {
		flex-basis: calc((100% - 2 * 12px) / 3);
	}
	.partner-thumbs {
		gap: 12px;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section 5: Trở thành đối tác (CTA + registration form)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-cta {
	position: relative;
	overflow: hidden;
	scroll-margin-top: 24px;
	padding: 40px clamp(16px, 8.33vw, 120px);
	background: #fff;
	font-family: var(--partner-font);
}

/* Soft lavender glow behind the form (kept within the section by overflow). */
.partner-cta__blob {
	position: absolute;
	top: 50%;
	left: 76%;
	transform: translate(-50%, -50%);
	width: 560px;
	height: 560px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, rgba(126, 118, 224, 0.28), rgba(126, 118, 224, 0) 70%);
	filter: blur(10px);
	pointer-events: none;
	z-index: 0;
}

.partner-cta__inner {
	position: relative;
	z-index: 1;
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.partner-cta__text {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.partner-cta__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
}

.partner-cta__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--partner-ink, #222);
	text-align: justify;
}

.partner-cta__card {
	background: #fff;
	border-radius: 20px;
	padding: 24px;
	box-shadow: 0 20px 60px rgba(10, 14, 73, 0.08);
}

.partner-cta__note {
	margin: 0;
	color: #979797;
	font-size: 14px;
}

/* ── Contact Form 7 styling (pairs with the recommended form template) ─────── */
.wpcf7 form {
	margin: 0;
}

.partner-cta__card .wpcf7-form .pcf-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

.partner-cta__card .wpcf7-form .pcf-field {
	margin: 0;
	display: flex;
	flex-direction: column;
}

.partner-cta__card .wpcf7-form .pcf-full {
	grid-column: 1 / -1;
}

/* CF7/wpautop inserts <br> after each label and stray empty <p>s — neutralise
   them so the grid spacing stays clean, and let the input wrapper fill width. */
.partner-cta__card .wpcf7-form .pcf-field br {
	display: none;
}

.partner-cta__card .wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.partner-cta__card .wpcf7-form > p {
	margin: 0;
}

.partner-cta__card .wpcf7-form > p:empty {
	display: none;
}

/* CF7 spinner reserves ~24px even when idle, stretching the form — hide it
   (submission feedback still shows via the response message). */
.partner-cta__card .wpcf7-form .wpcf7-spinner {
	display: none;
}

.partner-cta__card .wpcf7-form label {
	font-weight: 500;
	font-size: 16px;
	color: #25272d;
}

.partner-cta__card .wpcf7-form label .pcf-req {
	color: #f2552c;
}

.partner-cta__card .wpcf7-form input[type="text"],
.partner-cta__card .wpcf7-form input[type="email"],
.partner-cta__card .wpcf7-form input[type="tel"],
.partner-cta__card .wpcf7-form input[type="number"],
.partner-cta__card .wpcf7-form select,
.partner-cta__card .wpcf7-form textarea {
	box-sizing: border-box;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 16px 20px;
	border: 1px solid #d4d4d4;
	border-radius: 10px;
	background: #fff;
	font-family: var(--partner-font);
	font-size: 15px;
	color: #25272d;
}

.partner-cta__card .wpcf7-form textarea {
	height: auto;
	min-height: 100px;
}

.partner-cta__card .wpcf7-form input::placeholder,
.partner-cta__card .wpcf7-form textarea::placeholder {
	color: #979797;
}

.partner-cta__card .wpcf7-form input:focus,
.partner-cta__card .wpcf7-form select:focus,
.partner-cta__card .wpcf7-form textarea:focus {
	outline: none;
	border-color: #4b3dc7;
}

/* Consent checkbox ([acceptance] tag) — sits after the grid, so give it its
   own top gap (the grid's row gap doesn't apply below the last row). */
.partner-cta__card .wpcf7-form .pcf-consent {
	margin: 20px 0 0;
}

.partner-cta__card .wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.partner-cta__card .wpcf7-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-weight: 400;
	font-size: 13px;
	line-height: 1.5;
	color: #555;
	cursor: pointer;
}

.partner-cta__card .wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: #4b3dc7;
	cursor: pointer;
}

.partner-cta__card .wpcf7-form .wpcf7-acceptance a {
	color: #4b3dc7;
	text-decoration: underline;
}

.partner-cta__card .wpcf7-form .wpcf7-submit {
	display: block;
	width: 100%;
	height: 50px;
	margin-top: 20px;
	margin-bottom: 0;
	border: 0;
	border-radius: 28px;
	background-color: transparent;
	background-image: linear-gradient(to right, #0e0475, #4b3dc7);
	color: #fff;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: opacity 0.2s ease;
}

/* Hover: switch the button to the brand orange (Flatsome's inset dark hover
   shadow is removed so the orange stays clean). */
.partner-cta__card .wpcf7-form .wpcf7-submit:hover,
.partner-cta__card .wpcf7-form .wpcf7-submit:focus,
.partner-cta__card .wpcf7-form .wpcf7-submit:active {
	background-image: none;
	background-color: #f2552c;
	color: #fff;
	box-shadow: none;
	opacity: 1;
}

/* CF7 validation / response text */
.partner-cta__card .wpcf7-not-valid-tip {
	color: #f2552c;
	font-size: 13px;
}

.partner-cta__card .wpcf7-response-output {
	margin: 16px 0 0;
	border-radius: 8px;
	font-size: 14px;
}

@media (max-width: 991px) {
	.partner-cta__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.partner-cta__blob {
		display: none;
	}
}

@media (max-width: 768px) {
	.partner-cta {
		padding: 40px 16px;
	}
	.partner-cta__heading {
		font-size: 28px;
	}
}

@media (max-width: 480px) {
	.partner-cta__card {
		padding: 16px;
	}
	.partner-cta__card .wpcf7-form .pcf-grid {
		grid-template-columns: 1fr;
	}
}

/* The popup replaces CF7's inline message — hide it by default, show only when
   it carries an error/validation status class. */
.partner-cta__card .wpcf7-response-output {
	display: none;
}

.partner-cta__card .wpcf7-response-output.wpcf7-validation-errors,
.partner-cta__card .wpcf7-response-output.wpcf7-invalid,
.partner-cta__card .wpcf7-response-output.wpcf7-mail-sent-ng,
.partner-cta__card .wpcf7-response-output.wpcf7-spam-blocked,
.partner-cta__card .wpcf7-response-output.wpcf7-aborted {
	display: block;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Success popup (shown after the CF7 form is sent)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 16px;
	font-family: var(--partner-font);
}

.partner-modal.is-open {
	display: flex;
}

.partner-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.partner-modal__box {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 800px;
	padding: 60px;
	background: #fff;
	border-radius: 20px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
}

.partner-modal__close {
	position: absolute;
	top: 24px;
	right: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.partner-modal__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 24px;
}

.partner-modal__icon {
	width: 80px;
	height: 80px;
}

.partner-modal__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
}

.partner-modal__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.5;
	color: var(--partner-ink, #222);
}

@media (max-width: 560px) {
	.partner-modal__box {
		padding: 32px 20px;
	}
	.partner-modal__heading {
		font-size: 24px;
	}
	.partner-modal__close {
		top: 16px;
		right: 16px;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section: Các lĩnh vực ETA hướng đến (fields — icon/label cards)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-fields {
	padding: 80px clamp(16px, 8.33vw, 120px);
	background: #fff;
	font-family: var(--partner-font);
}

.partner-fields__inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}

.partner-fields__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
	text-align: center;
}

.partner-fields__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}

.partner-field {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding: 40px;
	border-radius: 24px;
	background-image: linear-gradient(135deg, #f2f6fa 31%, #eef0ff 85%);
	cursor: default;
	will-change: transform;
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.partner-field:hover {
  transform: translateY(-6px) scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
  .partner-field {
    transition: none;
  }
  .partner-field:hover {
    transform: none;
  }
}

.partner-field__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #fff;
}

.partner-field__icon {
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.partner-field__label {
	margin: 0;
	font-weight: 700;
	font-size: 20px;
	line-height: 24px;
	color: var(--partner-ink, #222);
	text-align: center;
}

@media (max-width: 991px) {
	.partner-fields__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.partner-fields {
		padding: 40px 16px;
	}
	.partner-fields__heading {
		font-size: 24px;
	}
	.partner-field {
		padding: 24px;
		gap: 16px;
	}
	.partner-field__badge {
		width: 80px;
		height: 80px;
	}
	.partner-field__icon {
		width: 40px;
		height: 40px;
	}
	.partner-field__label {
		font-size: 18px;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   Section: Lời ngỏ từ Hiệu trưởng (a single video)
   ═══════════════════════════════════════════════════════════════════════════ */
.partner-principal {
	padding: 80px clamp(16px, 8.33vw, 120px);
	background: var(--partner-light, #f5f4fb);
	font-family: var(--partner-font);
}

.partner-principal__inner {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.partner-principal__heading {
	margin: 0;
	font-family: var(--partner-font);
	font-weight: 700;
	font-size: 36px;
	line-height: 1.2;
	color: var(--partner-primary, #0a0e49);
	text-align: center;
}

.partner-principal__player {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border-radius: 8px;
	overflow: hidden;
	background: #222;
}

.partner-principal__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.partner-principal__play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 72px;
	height: 72px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	line-height: 0;
	transition: transform 0.2s ease;
}

.partner-principal__play:hover {
	transform: translate(-50%, -50%) scale(1.08);
}

.partner-principal__play img {
	width: 100%;
	height: 100%;
}

.partner-principal__frame {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.partner-principal__player.is-playing .partner-principal__poster,
.partner-principal__player.is-playing .partner-principal__play {
	display: none;
}

@media (max-width: 768px) {
	.partner-principal {
		padding: 40px 16px;
	}
	.partner-principal__inner {
		gap: 32px;
	}
	.partner-principal__heading {
		font-size: 24px;
	}
	.partner-principal__play {
		width: 56px;
		height: 56px;
	}
}