html {
	scroll-behavior: smooth;
}

body {
	font-family: 'Be Vietnam Pro', system-ui, sans-serif;
	background: #0a1014;
	color: #e6edf0;
	-webkit-font-smoothing: antialiased;
}

.ph {
	background:
		repeating-linear-gradient(135deg, rgba(94, 234, 212, 0.06) 0 14px, rgba(94, 234, 212, 0.02) 14px 28px),
		linear-gradient(180deg, #0e1a20, #0a1418);
	position: relative;
	overflow: hidden;
}

.ph-light {
	background:
		repeating-linear-gradient(135deg, rgba(13, 148, 136, 0.10) 0 14px, rgba(13, 148, 136, 0.04) 14px 28px),
		linear-gradient(180deg, #e8efee, #d6e2df);
}

.ph::after {
	content: attr(data-label);
	position: absolute;
	inset: auto 0 10px 0;
	text-align: center;
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.08em;
	color: rgba(94, 234, 212, 0.55);
	text-transform: uppercase;
}

.ph-light::after {
	content: attr(data-label);
	position: absolute;
	inset: auto 0 10px 0;
	text-align: center;
	font-family: 'JetBrains Mono', monospace;
	font-size: 10px;
	letter-spacing: 0.08em;
	color: rgba(13, 90, 80, 0.55);
	text-transform: uppercase;
}

.v-logo {
	background: linear-gradient(135deg, #2dd4bf 0%, #5eead4 60%, #ffffff 100%);
	-webkit-mask: linear-gradient(#000, #000);
	mask: linear-gradient(#000, #000);
}

details[open] summary .chev {
	transform: rotate(45deg);
}

summary {
	list-style: none;
	cursor: pointer;
}

summary::-webkit-details-marker {
	display: none;
}

.tab-active {
	background: rgba(45, 212, 191, 0.12);
	color: #5eead4;
	border-color: rgba(45, 212, 191, 0.35);
}

.chip-active {
	background: #2dd4bf;
	color: #04201c;
}

.num-ring {
	background: radial-gradient(60% 60% at 50% 50%, rgba(45, 212, 191, 0.35) 0%, rgba(45, 212, 191, 0.06) 60%, transparent 100%);
}

    .arrow-step::after {
        content: '';
        position: absolute;
        top: 28px;
        /* center of the 56px num-ring */
        left: 64px;
        /* just after the ring */
        right: -28px;
        /* extend to the next step */
        height: 1px;
        background-image: linear-gradient(to right, rgba(94, 234, 212, 0.55) 0, rgba(94, 234, 212, 0.55) 6px, transparent 6px);
        background-size: 12px 1px;
        background-repeat: repeat-x;
        transform: translateY(-50%);
    }

    @media (max-width: 1023px) {
        .arrow-step::after {
            display: none;
        }
    }


@media (max-width: 767px) {
	.arrow-step::after,
	.arrow-step::before {
		display: none;
	}
}

.no-scrollbar::-webkit-scrollbar {
	display: none;
}

.no-scrollbar {
	scrollbar-width: none;
}

/* Marquee scroll animation */
.marquee-track {
	display: flex;
	width: max-content;
	animation: marquee-scroll 28s linear infinite;
}

.marquee-track span {
	white-space: nowrap;
	padding: 0 2.5rem;
	font-size: 1.125rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.marquee-track .marquee-sep {
	padding: 0;
	font-size: 1em;
	align-self: center;
}

@keyframes marquee-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* ── Hero load-in ── */
@keyframes heroFadeUp {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: translateY(0); }
}
.hero-anim-1 { animation: heroFadeUp 0.65s ease 0.05s both; }
.hero-anim-2 { animation: heroFadeUp 0.65s ease 0.22s both; }
.hero-anim-3 { animation: heroFadeUp 0.65s ease 0.38s both; }
.hero-anim-4 { animation: heroFadeUp 0.65s ease 0.58s both; }

/* ── Scroll-reveal ── */
.anim-fade-up {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity 0.55s ease, transform 0.55s ease;
}
.anim-fade-up.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.anim-delay-1 { transition-delay: 0.10s; }
.anim-delay-2 { transition-delay: 0.20s; }
.anim-delay-3 { transition-delay: 0.30s; }
.anim-delay-4 { transition-delay: 0.40s; }

/* ── Service card hover lift ── */
.svc-card {
	transition: border-color 0.22s ease, transform 0.28s ease, box-shadow 0.28s ease !important;
}

/* ── Input / select / textarea focus glow ── */
.focus-glow {
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.focus-glow:focus {
	box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.15);
}

/* ── Submit button ── */
.btn-submit {
	transition: background-color 0.2s ease, transform 0.16s ease, box-shadow 0.2s ease;
}
.btn-submit:active {
	transform: translateY(0);
	box-shadow: none;
}

/* ── FAQ chevron smooth ── */
.chev {
	transition: transform 0.25s ease !important;
}

/* ── Hover effects: chỉ áp dụng trên thiết bị có chuột thật ── */
@media (hover: hover) and (pointer: fine) {
	.svc-card:hover {
		transform: translateY(-6px);
		box-shadow: 0 14px 32px rgba(45, 212, 191, 0.11);
	}
	.btn-submit:hover {
		transform: translateY(-2px);
		box-shadow: 0 8px 22px rgba(45, 212, 191, 0.28);
	}
}

/* ── Marquee: nhỏ hơn trên mobile ── */
@media (max-width: 767px) {
	.marquee-track span {
		font-size: 0.85rem;
		padding: 0 1.25rem;
	}
	.marquee-track {
		animation-duration: 20s;
	}
}

/* ── Tắt animation cho người dùng yêu cầu ── */
@media (prefers-reduced-motion: reduce) {
	.hero-anim-1, .hero-anim-2, .hero-anim-3, .hero-anim-4 {
		animation: none;
		opacity: 1;
	}
	.anim-fade-up {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.marquee-track {
		animation-duration: 60s;
	}
}

/* ── Rank Math Breadcrumb ── */
.rank-math-breadcrumb p {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 15px;
	color: rgba(255, 255, 255, 0.4);
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
	margin-top: 0;
}

.rank-math-breadcrumb a {
	color: rgba(255, 255, 255, 0.4);
	text-decoration: none;
	transition: color 0.15s ease;
	font-size: 15px;
}

.rank-math-breadcrumb a:hover {
	color: #5eead4;
}

/* Ẩn ký tự separator gốc, thay bằng mũi tên chevron */
.rank-math-breadcrumb .separator {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 12px;
	height: 12px;
	flex-shrink: 0;
	font-size: 0;
}

.rank-math-breadcrumb .separator::before {
	content: '';
	display: block;
	width: 5px;
	height: 5px;
	border-right: 1.5px solid rgba(255, 255, 255, 0.4);
	border-top: 1.5px solid rgba(255, 255, 255, 0.4);
	transform: rotate(45deg);
}

/* Trang hiện tại */
.rank-math-breadcrumb .last {
	color: rgba(255, 255, 255, 0.65);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 220px;
}

/* ── Blog swiper: nav + dots ── */
.blog-swiper {
	--swiper-pagination-bullet-inactive-color: #0a1014;
	--swiper-pagination-bullet-inactive-opacity: 0.15;
}

.blog-swiper-prev,
.blog-swiper-next {
	--swiper-navigation-color: #2dd4bf;
	width: 36px !important;
	height: 36px !important;
	margin-top: 0;
	border-radius: 50%;
	background: #ffffff;
	border: 1.5px solid rgba(45, 212, 191, 0.35);
	box-shadow: 0 2px 8px rgba(45, 212, 191, 0.10);
	transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.blog-swiper-prev::after,
.blog-swiper-next::after {
	font-size: 11px !important;
	font-weight: 800 !important;
}

.blog-swiper-prev:hover,
.blog-swiper-next:hover {
	--swiper-navigation-color: #04201c;
	background: #2dd4bf;
	border-color: #2dd4bf;
	box-shadow: 0 4px 16px rgba(45, 212, 191, 0.30);
}

.blog-swiper-pagination .swiper-pagination-bullet {
	width: 8px;
	height: 8px;
	background: #0a1014;
	opacity: 0.15;
	transition: opacity 0.2s ease, background 0.2s ease, width 0.25s ease;
	border-radius: 99px;
}

.blog-swiper-pagination .swiper-pagination-bullet-active {
	background: #2dd4bf;
	opacity: 1;
	width: 22px;
}
.galleryberg-image img,
.galleryberg-image{
	margin: 0 !important;
}
    /* Callout */
    .callout-teal {
        border: 1px solid rgba(45, 212, 191, 0.3);
        border-left: 3px solid #2dd4bf;
    }

    .ph {
        background:
            repeating-linear-gradient(135deg, rgba(94, 234, 212, 0.06) 0 14px, rgba(94, 234, 212, 0.02) 14px 28px),
            linear-gradient(180deg, #0e1a20, #0a1418);
        position: relative;
        overflow: hidden;
    }

    .ph-light {
        background:
            repeating-linear-gradient(135deg, rgba(13, 148, 136, 0.10) 0 14px, rgba(13, 148, 136, 0.04) 14px 28px),
            linear-gradient(180deg, #e8efee, #d6e2df);
        position: relative;
        overflow: hidden;
    }

    .ph::after,
    .ph-light::after {
        content: attr(data-label);
        position: absolute;
        inset: auto 0 12px 0;
        text-align: center;
        font-family: 'JetBrains Mono', monospace;
        font-size: 10px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
    }

    .ph::after {
        color: rgba(94, 234, 212, 0.55);
    }

    .ph-light::after {
        color: rgba(13, 90, 80, 0.55);
    }

    details[open] summary .chev {
        transform: rotate(45deg);
    }

    summary {
        list-style: none;
        cursor: pointer;
    }

    summary::-webkit-details-marker {
        display: none;
    }

    .chk-card {
        transition: all .2s ease;
        background: rgba(255, 255, 255, 0.02);
        border: 1px solid rgba(255, 255, 255, 0.05);
    }

    .chk-card:hover {
        background: rgba(45, 212, 191, 0.05);
        border-color: rgba(45, 212, 191, 0.35);
    }

    .chk-card:hover .chk-num {
        color: #5eead4;
    }

    /* Maintenance timeline – dark pills on light section bg */
    .km-pill {
        background:
            linear-gradient(180deg, rgba(45, 212, 191, 0.10), rgba(45, 212, 191, 0.02)),
            #0d161b;
        border: 1px solid rgba(45, 212, 191, 0.30);
    }

    .km-pill.active {
        background: #2dd4bf;
        color: #04201c;
        border-color: #2dd4bf;
    }

    .km-pill.active .km-pill-sub {
        color: #04201c;
        opacity: 0.7;
    }

    .dot-row::before {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        top: 50%;
        border-top: 1px dashed #505050;
        transform: translateY(-50%);
    }

    .check-dot {
        width: 18px;
        height: 18px;
        border-radius: 999px;
        background: rgba(45, 212, 191, 0.12);
        border: 1px solid rgba(45, 212, 191, 0.45);
        color: #5eead4;
        display: inline-grid;
        place-items: center;
        flex-shrink: 0;
    }

    .pkg-card {
        transition: all .2s ease;
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .pkg-card.featured {
        border-color: rgba(45, 212, 191, 0.45) !important;
        background: linear-gradient(180deg, rgba(45, 212, 191, 0.07) 0%, rgba(45, 212, 191, 0.02) 100%), #0d161b;
    }

    .pkg-card.standard {
        border-color: rgba(148, 163, 184, 0.2) !important;
        background: linear-gradient(180deg, rgba(148, 163, 184, 0.06) 0%, rgba(148, 163, 184, 0.01) 100%), #0d161b;
    }

    .pkg-card.premium {
        border-color: rgba(251, 191, 36, 0.25) !important;
        background: linear-gradient(180deg, rgba(251, 191, 36, 0.07) 0%, rgba(251, 191, 36, 0.01) 100%), #0d161b;
    }

    .pkg-card:not(.featured):hover {
        border-color: rgba(255, 255, 255, 0.18);
    }

    .step-card {
        transition: all .2s ease;
        background: rgba(255, 255, 255, 0.02);
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .step-card:hover {
        background: rgba(45, 212, 191, 0.05);
        border-color: rgba(45, 212, 191, 0.35);
    }

    .type-card {
        transition: border-color .2s ease;
    }

    .type-card:hover {
        border-color: rgba(13, 148, 136, 0.4) !important;
    }

    /* Combo card */
    .combo {
        background: linear-gradient(180deg, rgba(15, 26, 31, 0.95) 0%, rgba(10, 16, 20, 0.95) 100%);
        border: 1px solid rgba(255, 255, 255, 0.06);
        transition: border-color .25s ease, transform .25s ease;
    }

    .combo:hover {
        border-color: rgba(45, 212, 191, 0.4);
    }

    .combo.featured {
        border-color: rgba(45, 212, 191, 0.55);
        background:
            radial-gradient(80% 60% at 50% 0%, rgba(45, 212, 191, 0.10) 0%, transparent 60%),
            linear-gradient(180deg, rgba(15, 26, 31, 0.95) 0%, rgba(10, 16, 20, 0.95) 100%);
        box-shadow: 0 30px 60px -30px rgba(45, 212, 191, 0.35);
    }

    .num-ring {
        background: radial-gradient(60% 60% at 50% 50%, rgba(45, 212, 191, 0.35) 0%, rgba(45, 212, 191, 0.06) 60%, transparent 100%);
    }

    .arrow-step::after {
        content: '';
        position: absolute;
        top: 28px;
        left: 64px;
        right: -28px;
        height: 1px;
        background-image: linear-gradient(to right, rgba(94, 234, 212, 0.55) 0, rgba(94, 234, 212, 0.55) 6px, transparent 6px);
        background-size: 12px 1px;
        background-repeat: repeat-x;
        transform: translateY(-50%);
    }

    @media (max-width: 1023px) {
        .arrow-step::after {
            display: none;
        }
    }

    .anchor-offset {
        scroll-margin-top: 90px;
    }

    .no-scrollbar::-webkit-scrollbar {
        display: none;
    }

    .no-scrollbar {
        scrollbar-width: none;
    }

    /* Group card */
    .grp-card {
        transition: all .25s ease;
    }

    .grp-card:hover {
        border-color: rgba(45, 212, 191, 0.45);
        transform: translateY(-2px);
    }

    .grp-card:hover .grp-num {
        color: #5eead4;
    }

    .grp-num {
        transition: color .25s ease;
    }

    /* OBD scanner panel */
    .obd {
        background:
            radial-gradient(80% 100% at 50% 0%, rgba(45, 212, 191, 0.10) 0%, transparent 60%),
            linear-gradient(180deg, #071013 0%, #050a0c 100%);
        border: 1px solid rgba(45, 212, 191, 0.22);
        position: relative;
        overflow: hidden;
    }

    .obd::before {
        content: '';
        position: absolute;
        inset: 0;
        background: repeating-linear-gradient(to bottom,
                transparent 0 2px,
                rgba(94, 234, 212, 0.025) 2px 3px);
        pointer-events: none;
    }

    .led-green {
        width: 9px;
        height: 9px;
        border-radius: 999px;
        background: #2dd4bf;
        box-shadow: 0 0 8px rgba(45, 212, 191, 0.8);
        animation: led-pulse 1.6s ease-in-out infinite;
    }

    .led-amber {
        width: 9px;
        height: 9px;
        border-radius: 999px;
        background: #fbbf24;
        box-shadow: 0 0 8px rgba(251, 191, 36, 0.7);
        animation: led-pulse 1.2s ease-in-out infinite;
    }

    .led-red {
        width: 9px;
        height: 9px;
        border-radius: 999px;
        background: #f87171;
        box-shadow: 0 0 8px rgba(248, 113, 113, 0.7);
        animation: led-pulse 0.9s ease-in-out infinite;
    }

    @keyframes led-pulse {

        0%,
        100% {
            opacity: 1
        }

        50% {
            opacity: .35
        }
    }

    /* Scan beam */
    .scan-beam {
        position: absolute;
        left: 0;
        right: 0;
        height: 2px;
        background: linear-gradient(90deg, transparent, rgba(94, 234, 212, 0.9), transparent);
        animation: scan 2.6s ease-in-out infinite;
    }

    @keyframes scan {
        0% {
            top: 0%;
            opacity: 0;
        }

        10% {
            opacity: 1;
        }

        90% {
            opacity: 1;
        }

        100% {
            top: 100%;
            opacity: 0;
        }
    }

    /* Terminal cursor blink */
    .blink::after {
        content: '▮';
        color: #5eead4;
        margin-left: 2px;
        animation: blink 1s steps(2) infinite;
    }

    @keyframes blink {
        50% {
            opacity: 0;
        }
    }

    /* Stat bar */
    .bar-fill {
        height: 100%;
        background: linear-gradient(90deg, #0d9488, #2dd4bf, #5eead4);
        border-radius: 999px;
    }

    /* Error code chip */
    .code-chip {
        font-family: 'JetBrains Mono', monospace;
        font-weight: 600;
        font-size: 11px;
        letter-spacing: 0.04em;
        padding: 4px 9px;
        border-radius: 4px;
    }

    .code-chip.red {
        background: rgba(248, 113, 113, 0.10);
        border: 1px solid rgba(248, 113, 113, 0.35);
        color: #fca5a5;
    }

    .code-chip.amber {
        background: rgba(251, 191, 36, 0.10);
        border: 1px solid rgba(251, 191, 36, 0.35);
        color: #fcd34d;
    }

    .code-chip.teal {
        background: rgba(45, 212, 191, 0.10);
        border: 1px solid rgba(45, 212, 191, 0.35);
        color: #5eead4;
    }

    /* ─── LIGHT SECTIONS ─── */
    .sec-light {
        background: #eef0ec;
        color: #0a1014;
    }

    .sec-light-alt {
        background: #f6f7f3;
        color: #0a1014;
    }

    .ph-l {
        background:
            repeating-linear-gradient(135deg, rgba(13, 148, 136, 0.10) 0 14px, rgba(13, 148, 136, 0.04) 14px 28px),
            linear-gradient(180deg, #dfe7e3, #cdd9d4);
        position: relative;
        overflow: hidden;
    }

    .ph-l::after {
        content: attr(data-label);
        position: absolute;
        inset: auto 0 12px 0;
        text-align: center;
        font-family: 'JetBrains Mono', monospace;
        font-size: 10px;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: rgba(13, 90, 80, 0.6);
    }

    /* Light card */
    .card-l {
        background: #ffffff;
        border: 1px solid #dde3dd;
        transition: all .25s ease;
    }

    .card-l:hover {
        border-color: rgba(13, 148, 136, 0.55);
        transform: translateY(-2px);
        box-shadow: 0 20px 40px -28px rgba(7, 16, 19, 0.25);
    }

    .card-l:hover .grp-num-l {
        color: #0d9488;
    }

    .grp-num-l {
        color: rgba(7, 16, 19, 0.15);
        transition: color .25s ease;
    }

    /* Dark card */
    .card-d {
        background: #0f1e1c;
        border: 1px solid rgba(255, 255, 255, 0.07);
    }

    .grp-num-d {
        color: #0d9488;
    }

    /* Light table */
    .tbl-light thead {
        background: #e3e7e2;
    }

    .tbl-light tbody tr {
        background: #ffffff;
    }

    .tbl-light tbody tr:nth-child(even) {
        background: #f7f9f6;
    }

    .tbl-light tbody tr:hover {
        background: #eaf3f0;
    }

    /* Light text helpers */
    .t-ink {
        color: #070b0e;
    }

    .t-muted {
        color: #475569;
    }

    .t-faint {
        color: #6b7280;
    }

    .t-line {
        color: #94a3a0;
    }

    .t-deep {
        color: #0d9488;
    }

    /* Light form */
    .input-l {
        background: #ffffff;
        border: 1px solid #d4dad4;
        color: #0a1014;
    }

    .input-l::placeholder {
        color: #94a3a0;
    }

    .input-l:focus {
        outline: none;
        border-color: #0d9488;
        box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.12);
    }

    /* Light details */
    .details-l {
        background: #ffffff;
        border: 1px solid #dde3dd;
        border-radius: 12px;
        padding: 0 16px;
    }

    .details-l[open] {
        border-color: rgba(13, 148, 136, 0.35);
        background: #f7faf8;
    }

    /* ─── DARK PRICING TABLE ─── */
    .ptable {
        width: 100%;
        text-align: left;
        border-collapse: collapse;
        font-size: 13px;
        min-width: 640px;
    }

    .ptable thead tr {
        background: rgba(45, 212, 191, 0.07);
        border-bottom: 1px solid rgba(45, 212, 191, 0.18);
    }

    .ptable thead th {
        padding: 13px 20px;
        font-family: 'JetBrains Mono', monospace;
        font-size: 10.5px;
        letter-spacing: 0.18em;
        font-weight: 600;
        color: rgba(94, 234, 212, 0.65);
        text-transform: uppercase;
    }

    .ptable tbody tr {
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
        transition: background .18s ease;
    }

    .ptable tbody tr:last-child {
        border-bottom: none;
    }

    .ptable tbody tr:hover {
        background: rgba(45, 212, 191, 0.04);
    }

    .ptable tbody td {
        padding: 14px 20px;
        vertical-align: middle;
        color: rgba(255, 255, 255, 0.65);
    }

    .ptable .item-name {
        font-weight: 600;
        color: #ffffff;
        font-size: 13.5px;
        display: flex;
        align-items: center;
        gap: 7px;
        margin-bottom: 2px;
    }

    .ptable .item-desc {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.38);
        line-height: 1.5;
    }

    .ptable .price {
        font-weight: 700;
        color: #ffffff;
        font-size: 13.5px;
    }

    .badge-hot {
        display: inline-block;
        font-size: 9.5px;
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        padding: 2px 6px;
        border-radius: 4px;
        background: rgba(248, 113, 113, 0.15);
        border: 1px solid rgba(248, 113, 113, 0.4);
        color: #fca5a5;
        line-height: 1.4;
    }
