/* ==========================================================
   Component: Card (.mc-card)
   ==========================================================
   Biến CSS custom properties (override qua inline style hoặc
   CSS riêng của bạn):
   --mc-card-bg        nền card (gradient hoặc solid)
   --mc-card-border    màu viền 1px
   --mc-card-radius    bán kính bo góc
   --mc-card-accent    màu chủ đạo (icon box, glow, bottom-line)
   --mc-card-tint      nền tint cho icon box
   ========================================================== */

.mc-card {
	--mc-card-bg: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
	--mc-card-border: rgba(255,255,255,.10);
	--mc-card-radius: 20px;
	--mc-card-accent: #22d3ee;
	--mc-card-tint: rgba(34,211,238,.12);
	--mc-card-bg-solid: #0b1220; /* Dark Navy dùng cho variant service/leader */

	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--mc-card-bg);
	background-color: var(--mc-card-bg-solid);
	border: 1px solid var(--mc-card-border);
	border-radius: var(--mc-card-radius);
	padding: 28px;
	overflow: hidden;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.06),
		0 1px 2px rgba(0,0,0,.25);
	transition: transform .35s cubic-bezier(.2,.8,.2,1),
		box-shadow .35s ease,
		border-color .35s ease;
	isolation: isolate;
}

/* Kéo dãn tự động qua thuộc tính */
.mc-card--h-full {
	height: 100%;
}
.mc-card--h-full .mc-card__body {
	flex: 1 1 auto;
}
.mc-card--h-full .mc-card__footer {
	margin-top: auto;
}
.mc-card--w-full {
	width: 100%;
}

/* ---------- header ---------- */
.mc-card__header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}

.mc-card__icon-box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: 0 0 auto;
	border-radius: 14px;
	background: var(--mc-card-tint);
	color: var(--mc-card-accent);
	transition: transform .35s ease;
}
.mc-card__icon-box svg { width: 22px; height: 22px; }

.mc-card__badge { margin-left: 2px; }

.mc-card__index {
	margin-left: auto;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--mc-card-index-color, rgba(255,255,255,.35));
	font-variant-numeric: tabular-nums;
}

/* ---------- media ---------- */
.mc-card__media {
	position: relative;
	margin: -28px -28px 20px;
	overflow: hidden;
	border-radius: var(--mc-card-radius) var(--mc-card-radius) 0 0;
}
.mc-card__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16/9;
	object-fit: cover;
	transition: transform .5s ease;
}

/* ---------- body ---------- */
.mc-card__body { flex: 1 1 auto; }

.mc-card__title {
	margin: 0 0 6px;
	font-size: 20px;
	line-height: 1.3;
	font-weight: 700;
	color: var(--mc-card-title-color, #fff);
}

.mc-card__subtitle {
	margin: 0 0 10px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--mc-card-accent);
}

.mc-card__description {
	margin: 0 0 14px;
	font-size: 14.5px;
	line-height: 1.65;
	color: var(--mc-card-text-color, rgba(255,255,255,.65));
}

.mc-card__capabilities {
	list-style: none;
	margin: 0 0 4px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}
.mc-card__capability {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: 14px;
	color: var(--mc-card-text-color, rgba(255,255,255,.78));
}
.mc-card__cap-icon {
	flex: 0 0 auto;
	display: inline-flex;
	margin-top: 2px;
	color: var(--mc-card-accent);
}
.mc-card__cap-icon svg { width: 15px; height: 15px; }

.mc-card__extra { margin-top: 16px; }

/* ---------- footer ---------- */
.mc-card__footer {
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid rgba(255,255,255,.08);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.mc-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--mc-card-accent);
	text-decoration: none;
}
.mc-card__action-arrow { display: inline-flex; transition: transform .3s ease; }
.mc-card__action:hover .mc-card__action-arrow { transform: translateX(4px); }

.mc-card__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 12.5px;
	color: rgba(255,255,255,.45);
}
.mc-card__meta-link {
	color: rgba(255,255,255,.55);
	text-decoration: none;
}
.mc-card__meta-link:hover { color: var(--mc-card-accent); }

/* ---------- glow overlay (dùng chung cho fx glow / ambient) ---------- */
.mc-card__glow {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity .35s ease;
	z-index: 0;
}

/* ---------- bottom line ---------- */
.mc-card__bottom-line {
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	width: 100%;
	background: linear-gradient(90deg, var(--mc-card-accent), transparent 85%);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .45s cubic-bezier(.2,.8,.2,1);
}

/* ==========================================================
   VARIANTS
   ========================================================== */

/* service: dark navy, icon box + badge + index ở header */
.mc-card--service { --mc-card-bg-solid: #0b1220; }

/* news-activity: layout thiên về media + meta date/link */
.mc-card--news-activity {
	--mc-card-bg-solid: #0c1526;
	padding-bottom: 24px;
}
.mc-card--news-activity .mc-card__title { font-size: 18px; }

/* float-glass: nền kính nổi, backdrop-blur, viền sáng hơn */
.mc-card--float-glass {
	--mc-card-bg: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
	--mc-card-border: rgba(255,255,255,.16);
	background-color: transparent;
	backdrop-filter: blur(18px) saturate(140%);
	-webkit-backdrop-filter: blur(18px) saturate(140%);
}

/* partner: card gọn, tập trung logo/icon, ít text */
.mc-card--partner {
	--mc-card-bg-solid: #0e1626;
	text-align: center;
	align-items: center;
}
.mc-card--partner .mc-card__header { justify-content: center; }
.mc-card--partner .mc-card__index { margin-left: 0; }

/* leader: chân dung, subtitle = chức vụ nổi bật hơn title phụ */
.mc-card--leader { --mc-card-bg-solid: #0b1220; text-align: center; }
.mc-card--leader .mc-card__media {
	margin: -28px -28px 16px;
	border-radius: 50%;
	width: 96px;
	height: 96px;
	margin-inline: auto;
	margin-top: -8px;
}
.mc-card--leader .mc-card__img { border-radius: 50%; aspect-ratio: 1/1; }

/* contact: nhấn mạnh action_button, bg nhẹ hơn */
.mc-card--contact {
	--mc-card-bg-solid: #0c1220;
	text-align: center;
}
.mc-card--contact .mc-card__footer { justify-content: center; border-top: none; padding-top: 4px; }

/* ==========================================================
   HOVER STATE (áp dụng mọi variant khi có class fx tương ứng)
   ========================================================== */

/* card_lift_scale */
.mc-card--fx-lift:hover {
	transform: translateY(-7px) scale(1.015);
}
.mc-card--fx-lift:hover .mc-card__icon-box { transform: scale(1.06); }

/* border_glow */
.mc-card--fx-glow {
	--glow-color: var(--mc-card-accent);
}
.mc-card--fx-glow .mc-card__glow {
	background: radial-gradient(120% 100% at 50% 0%, color-mix(in srgb, var(--glow-color) 22%, transparent), transparent 70%);
}
.mc-card--fx-glow:hover {
	border-color: color-mix(in srgb, var(--mc-card-accent) 55%, var(--mc-card-border));
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.08),
		0 18px 40px -12px color-mix(in srgb, var(--mc-card-accent) 45%, transparent),
		0 0 0 1px color-mix(in srgb, var(--mc-card-accent) 25%, transparent);
}
.mc-card--fx-glow:hover .mc-card__glow { opacity: 1; }

/* bottom_line_expand */
.mc-card--fx-line:hover .mc-card__bottom-line { transform: scaleX(1); }

/* image_zoom (áp cho ảnh thumbnail, không tràn viền nhờ overflow:hidden ở .mc-card__media) */
.mc-card--fx-zoom:hover .mc-card__img { transform: scale(1.04); }

/* glass_ambient: quét ánh sáng nhẹ qua bề mặt kính khi hover */
.mc-card--fx-ambient { position: relative; }
.mc-card--fx-ambient::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.10) 45%, transparent 65%);
	background-size: 220% 220%;
	background-position: -40% -40%;
	opacity: 0;
	transition: opacity .4s ease, background-position .8s ease;
	pointer-events: none;
	z-index: 0;
}
.mc-card--fx-ambient:hover::after {
	opacity: 1;
	background-position: 140% 140%;
}

/* nội dung luôn nổi trên lớp glow/ambient */
.mc-card__header,
.mc-card__media,
.mc-card__body,
.mc-card__footer,
.mc-card__bottom-line {
	position: relative;
	z-index: 1;
}

/* ---------- responsive ---------- */
@media (max-width: 560px) {
	.mc-card { padding: 22px; }
	.mc-card__media { margin: -22px -22px 16px; }
}

/* Light Variant */
.mc-card--light {
    --mc-card-bg-solid: #ffffff;
    --mc-card-bg: linear-gradient(135deg, #f0f9ff 0%, #ffffff 40%);
    --mc-card-border: #e2e8f0;
    --mc-card-title-color: #0b1220;
    --mc-card-text-color: #475569;
    transition: all 0.4s ease;
}

.mc-card--light .mc-card__footer {
    border-top-color: #e2e8f0;
    transition: border-color 0.4s ease;
}

.mc-card--light .mc-card__capabilities {
    border-top: 1px solid #e2e8f0;
    margin-top: 20px;
    padding-top: 20px;
    transition: border-color 0.4s ease;
}

.mc-card--light .mc-card__index {
    color: #22d3ee;
    transition: color 0.4s ease;
}

.mc-card--light .mc-card__cap-icon {
    color: #0ea5e9;
    transition: color 0.4s ease;
}

.mc-card--light .mc-card__title,
.mc-card--light .mc-card__description,
.mc-card--light .mc-card__capability,
.mc-card--light .mc-card__action {
    transition: color 0.4s ease;
}

/* On hover, transition back to dark theme */
.mc-card--light:hover {
    --mc-card-bg-solid: #0b1220;
    --mc-card-bg: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
    --mc-card-border: rgba(255,255,255,.10);
    --mc-card-title-color: #ffffff;
    --mc-card-text-color: rgba(255,255,255,.65);
}

.mc-card--light:hover .mc-card__footer,
.mc-card--light:hover .mc-card__capabilities {
    border-top-color: rgba(255,255,255,.08);
}

.mc-card--light:hover .mc-card__index {
    color: #fff;
}

.mc-card--light:hover .mc-card__cap-icon {
    color: var(--mc-card-accent);
}

/* Fix width/height */
.mc-card.mc-card--fixed-size {
    height: 100%;
    max-width: 420px; /* Thêm max-width để card không bị quá to nếu đứng 1 mình */
}
/* Top line progress effect */
.mc-card--fx-top-progress::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 3px;
    width: 20%;
    background-color: var(--mc-card-accent);
    transition: width 0.4s ease;
    z-index: 10;
}
.mc-card--fx-top-progress:hover::before {
    width: 100%;
}
/* Fix top border radius for progress line */
.mc-card--fx-top-progress::before {
    border-top-left-radius: var(--mc-card-radius);
    border-top-right-radius: var(--mc-card-radius);
}

/* partner-highlight: card đối tác nổi bật với logo, title lớn, nút tròn góc dưới */
.mc-card--partner-highlight {
    --mc-card-bg-solid: transparent;
    --mc-card-bg: linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
    --mc-card-border: rgba(255, 255, 255, 0.16);
    background-color: transparent;
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    --mc-card-accent: #6ee7b7; /* green/emerald */
    --mc-card-title-color: #ffffff;
    --mc-card-text-color: rgba(255, 255, 255, 0.7);
    padding: 32px;
}

.mc-card--partner-highlight::before {
    content: "";
    position: absolute;
    top: -150px;
    right: -100px;
    width: 350px;
    height: 350px;
    border: 1px solid rgba(255, 255, 255, 0.03);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.mc-card--partner-highlight::after {
    content: "";
    position: absolute;
    top: -50px;
    right: -20px;
    width: 200px;
    height: 200px;
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(circle, rgba(255,255,255,0.015) 0%, transparent 70%);
}

.mc-card--partner-highlight .mc-card__logo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-color: #ffffff;
    padding: 5px;
    object-fit: contain;
    box-shadow: 0 4px 20px rgba(0,0,0,0.25);
    z-index: 2;
    position: relative;
}

.mc-card--partner-highlight .mc-card__header {
    margin-bottom: 24px;
    align-items: flex-start;
}

.mc-card--partner-highlight .mc-card__index {
    font-size: 16px;
    color: rgba(255,255,255,0.25);
    font-weight: 600;
}

.mc-card--partner-highlight .mc-card__subtitle {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--mc-card-accent);
    margin-bottom: 12px;
}

.mc-card--partner-highlight .mc-card__title {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 16px;
}

.mc-card--partner-highlight .mc-card__footer {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 32px;
    padding-top: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mc-card--partner-highlight .mc-card__meta {
    margin: 0;
}

.mc-card--partner-highlight .mc-card__meta-link {
    font-weight: 700;
    font-size: 14px;
    color: #e2e8f0;
}

.mc-card--partner-highlight .mc-card__action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background-color: var(--mc-card-accent);
    color: #0b1220;
    border-radius: 50%;
    margin-left: auto;
    transition: transform 0.3s ease, background-color 0.3s ease;
    text-decoration: none;
}

.mc-card--partner-highlight .mc-card__action:hover {
    transform: scale(1.05);
    background-color: #34d399; /* slightly darker green */
}

.mc-card--partner-highlight .mc-card__action-text {
    display: none;
}

.mc-card--partner-highlight .mc-card__action-arrow {
    transform: rotate(-45deg);
}

.mc-card--partner-highlight .mc-card__action:hover .mc-card__action-arrow {
    transform: rotate(-45deg);
}
.mc-card--partner-highlight .mc-card__meta-link span { display: none; }

/* Bổ sung chỉnh sửa mc-card--partner-highlight theo yêu cầu */
.mc-card--partner-highlight .mc-card__footer {
    flex-direction: row-reverse;
}
.mc-card--partner-highlight .mc-card__action-arrow svg {
    width: 20px;
    height: 20px;
}
.mc-card--partner-highlight .mc-card__body {
    display: flex;
    flex-direction: column;
}
.mc-card--partner-highlight .mc-card__subtitle {
    order: 1;
    margin-bottom: 12px;
}
.mc-card--partner-highlight .mc-card__title {
    order: 2;
    margin-top: 0;
}
.mc-card--partner-highlight .mc-card__description {
    order: 3;
}

/* minimal-light: card tối giản, nền sáng, viền trái nổi bật */
.mc-card--minimal-light {
    --mc-card-bg-solid: #f4f6f8;
    --mc-card-bg: #f4f6f8;
    --mc-card-border: transparent;
    --mc-card-title-color: #0f172a;
    --mc-card-text-color: #64748b;
    padding: 16px 24px;
    border-radius: 0 8px 8px 0;
    border-left: 4px solid #cbd5e1;
    box-shadow: none;
}
.mc-card--minimal-light .mc-card__title {
    font-size: 16px;
    margin-bottom: 4px;
}
.mc-card--minimal-light .mc-card__description {
    font-size: 14px;
    margin-bottom: 0;
}

/* compact-dark: card tối màu, nhỏ gọn, subtitle nằm trên title */
.mc-card--compact-dark {
    --mc-card-bg-solid: #111a24;
    --mc-card-bg: #111a24;
    --mc-card-border: transparent;
    --mc-card-title-color: #ffffff;
    --mc-card-accent: #22c55e;
    padding: 20px 30px;
    border-radius: 12px;
    box-shadow: none;
}
.mc-card--compact-dark .mc-card__body {
    display: flex;
    flex-direction: column;
}
.mc-card--compact-dark .mc-card__subtitle {
    order: 1;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}
.mc-card--compact-dark .mc-card__title {
    order: 2;
    font-size: 18px;
    margin-bottom: 0;
}

/* ========================================================================================== */
/* ---------- Leader Cutout: ảnh tách nền tràn ra ngoài khung, giống Leader Slider ---------- */
.mc-card--leader-cutout {
    position: relative;
    overflow: visible;      /* cho phép ảnh tràn ra ngoài, khác với mặc định overflow:hidden */
    padding-top: 0;
    text-align: center;
}

.mc-card--leader-cutout .mc-card__media {
    position: relative;
    margin: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
    height: 240px;           /* vùng chứa, ảnh sẽ tràn cao hơn khoảng này */
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.mc-card--leader-cutout .mc-card__img {
    position: absolute;
    bottom: 0;
    width: auto;
    max-width: 92%;
    height: auto;
    max-height: calc(100% + 90px);   /* độ tràn lên trên, chỉnh số này để tràn nhiều/ít hơn */
    aspect-ratio: auto;
    object-fit: contain;      /* KHÔNG crop, giữ nguyên ảnh tách nền */
    z-index: 3;
    transition: transform .4s ease;
}

.mc-card--leader-cutout:hover .mc-card__img {
    transform: translateY(-6px) scale(1.02);
}

/* Quầng sáng nhẹ phía sau chân ảnh, giống hiệu ứng leader-slide-photo-bg */
.mc-card--leader-cutout .mc-card__media::before {
    content: "";
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 65%;
    height: 60%;
    background: radial-gradient(circle, color-mix(in srgb, var(--mc-card-accent) 18%, transparent) 0%, transparent 70%);
    z-index: 1;
    pointer-events: none;
}

.mc-card--leader-cutout .mc-card__body {
    position: relative;
    z-index: 4;
    padding: 18px 24px 26px;
    background: var(--mc-card-bg-solid, #0b1220);
    margin-top: -8px;
}
/* Tắt hiệu ứng đảo màu hover, giữ nguyên màu gốc dù rê chuột vào */
.mc-card--no-hover-swap:hover {
    --mc-card-bg-solid: var(--mc-card-bg-solid);
    --mc-card-bg: var(--mc-card-bg);
    --mc-card-border: var(--mc-card-border);
    --mc-card-title-color: var(--mc-card-title-color);
    --mc-card-text-color: var(--mc-card-text-color);
}