/* styles.css — chi rieng cho trang didau.tech. Nen tang chung: brand.css.
   Di dau nghieng ve xanh duong -> tim, dung dung token cua app (Munin Design
   System port): accent #2f5cf6, AI #7c3aed, success #0e9f6e, nhan #FF612F.
   Bang mau KHONG dinh nghia o day ma o brand.css duoi :root[data-site="didau"],
   de token thuong hieu chi nam mot cho. The <html> phai co data-site="didau",
   thieu no la trang tut ve bang mau cyan/mint cua he giao duc. */

/* nut chinh la gradient xanh->tim nen chu phai trang, khong phai muc dam */
.button-primary { color: #fff; box-shadow: 0 14px 34px rgba(47, 92, 246, .26); }
.button-primary:hover { box-shadow: 0 17px 38px rgba(47, 92, 246, .34); }
.site-header.is-scrolled { background: rgba(242, 244, 249, .9); }
.text-link.blue { color: var(--cyan-dark); }

/* ---------- hero ---------- */

.hero { min-height: 860px; padding-top: 178px; padding-bottom: 58px; background: radial-gradient(circle at 76% 14%, rgba(79, 124, 255, .14), transparent 27%), radial-gradient(circle at 4% 86%, rgba(124, 58, 237, .1), transparent 30%), linear-gradient(180deg, #f8f9fd 0%, var(--paper) 100%); overflow: hidden; }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: .96fr 1.04fr; gap: 56px; align-items: center; }
.hero-lede { max-width: 570px; margin-bottom: 34px; color: #4e5462; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; gap: 28px; align-items: center; }
.hero-notes { display: flex; flex-wrap: wrap; gap: 13px 23px; margin: 34px 0 0; padding: 0; color: #565c6a; font-size: 11px; font-weight: 650; list-style: none; }
.check { display: inline-grid; width: 18px; height: 18px; margin-right: 6px; place-items: center; border: 1px solid rgba(47, 92, 246, .25); border-radius: 50%; color: var(--cyan-dark); background: rgba(79, 124, 255, .11); font-size: 10px; }
.hero-orb { position: absolute; border-radius: 50%; pointer-events: none; }
.hero-orb-one { top: 96px; right: -110px; width: 360px; height: 360px; border: 1px solid rgba(79, 124, 255, .13); }
.hero-orb-two { bottom: 120px; left: -130px; width: 260px; height: 260px; border: 1px solid rgba(124, 58, 237, .12); }
.hero-footnote { display: flex; gap: 24px; align-items: center; margin-top: 54px; color: #7b8191; font-size: 9px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.hero-footnote i { height: 1px; flex: 1; background: var(--line); }

.hero-visual { position: relative; min-height: 620px; isolation: isolate; }
.phone-aura { position: absolute; z-index: -1; top: 50%; left: 50%; width: 470px; height: 470px; border: 1px solid rgba(47, 92, 246, .14); border-radius: 50%; background: radial-gradient(circle, rgba(79, 124, 255, .13), rgba(124, 58, 237, .05) 48%, transparent 70%); transform: translate(-50%, -50%); }
.phone-aura::before, .phone-aura::after { position: absolute; border: 1px dashed rgba(47, 92, 246, .16); border-radius: 50%; content: ""; }
.phone-aura::before { inset: 48px; }
.phone-aura::after { inset: 112px; }

/* ---------- khung dien thoai dung chung ---------- */

.app-phone { width: 246px; padding: 7px; border: 2px solid #14161d; border-radius: 37px; background: #14161d; box-shadow: 0 30px 65px rgba(23, 24, 28, .24); }
.phone-screen { position: relative; min-height: 512px; padding: 13px 13px 16px; border-radius: 29px; background: var(--panel); overflow: hidden; }
.phone-status { display: flex; justify-content: space-between; padding: 0 6px 9px; color: #17181c; font-size: 6px; font-weight: 700; }
.hero-visual .app-phone { position: absolute; }
.phone-front { z-index: 3; top: 22px; left: 44%; transform: translateX(-34%) rotate(3.5deg); }
.phone-back { z-index: 1; top: 84px; left: 10%; transform: rotate(-8deg); opacity: .97; }

/* nguoi dung gia lap — avatar gradient thay cho anh that */
.who { display: block; width: 22px; height: 22px; flex: 0 0 22px; border-radius: 50%; background: linear-gradient(135deg, #4f7cff, #7c3aed); }
.who.alt { background: linear-gradient(135deg, #0e9f6e, #4f7cff); }

/* anh minh hoa dung gradient — trang phai tu chua, khong tai anh ngoai */
.photo-a { background: linear-gradient(170deg, #8fb4d8 0%, #6f93b4 34%, #3f5f70 62%, #24323b 100%); }
.photo-b { background: linear-gradient(160deg, #f4c07a 0%, #e08a5c 45%, #8d5340 100%); }
.photo-count { position: absolute; right: 7px; bottom: 6px; padding: 2px 6px; border-radius: 99px; color: #fff; background: rgba(23, 24, 28, .5); font-size: 6px; font-weight: 700; }

/* ---------- man bang tin ---------- */

.feed-head { display: flex; align-items: center; padding: 6px 2px 10px; }
.app-mini { width: 24px; height: 24px; margin-right: 7px; border-radius: 8px; overflow: hidden; }
.feed-head b { font-size: 11px; }
.bell { position: relative; margin-left: auto; color: var(--muted); font-style: normal; }
.bell u { position: absolute; top: -4px; right: -5px; display: grid; width: 11px; height: 11px; place-items: center; border-radius: 50%; color: #fff; background: var(--hot); font-size: 5px; font-weight: 800; text-decoration: none; }
.feed-chips { display: flex; gap: 5px; margin-bottom: 11px; }
.feed-chips span { padding: 4px 8px; border-radius: 99px; background: #eef1f8; color: var(--muted); font-size: 6px; font-weight: 700; }
.feed-chips .on { color: #fff; background: var(--cyan-dark); }
.feed-card { padding: 8px; margin-bottom: 8px; border-radius: 14px; background: #fff; box-shadow: 0 6px 18px rgba(23, 24, 28, .06); }
.feed-photo { position: relative; height: 96px; border-radius: 10px; }
.feed-card.compact .feed-photo { height: 54px; }
.feed-meta { display: flex; gap: 7px; align-items: center; margin-top: 8px; }
.feed-meta p { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }
.feed-meta strong { font-size: 7px; }
.feed-meta small { color: #9a9fab; font-size: 5.5px; }
.feed-title { margin: 7px 0 8px; font-size: 8.5px; font-weight: 700; line-height: 1.4; }
.feed-actions { display: flex; gap: 9px; align-items: center; padding-top: 7px; border-top: 1px solid #eef1f8; color: var(--muted); font-size: 6px; font-weight: 700; }
.feed-actions .vote { color: var(--hot); }
.feed-actions .share { margin-left: auto; }

/* ---------- man ban do ---------- */

.map-screen { padding: 0; background: #dfe6ee; }
.map-canvas { position: absolute; inset: 0; background: linear-gradient(160deg, #eaf0f4 0%, #dfe7ec 100%); }
.map-canvas .water { position: absolute; right: -30px; bottom: -20px; width: 190px; height: 170px; border-radius: 46% 54% 38% 62%; background: #c3dcea; }
.map-canvas .road { position: absolute; background: #fff; box-shadow: 0 0 0 1px rgba(23, 24, 28, .05); }
.road-1 { top: 0; left: 62px; width: 9px; height: 100%; transform: rotate(9deg); }
.road-2 { top: 128px; left: 0; width: 100%; height: 8px; transform: rotate(-5deg); }
.road-3 { top: 250px; left: 0; width: 100%; height: 6px; transform: rotate(6deg); }
.road-4 { top: 0; right: 48px; width: 6px; height: 100%; transform: rotate(-11deg); }
.route-line { position: absolute; top: 118px; left: 34px; width: 128px; height: 5px; border-radius: 99px; background: var(--cyan-dark); box-shadow: 0 0 0 2.5px #fff, 0 4px 10px rgba(47, 92, 246, .4); transform: rotate(38deg); transform-origin: left center; }
.pin { position: absolute; width: 13px; height: 13px; border: 2.5px solid #fff; border-radius: 50% 50% 50% 2px; background: var(--hot); box-shadow: 0 3px 8px rgba(23, 24, 28, .28); transform: rotate(-45deg); }
.pin-1 { top: 74px; left: 148px; }
.pin-2 { top: 196px; left: 52px; background: var(--mint); }
.pin-3 { top: 300px; right: 40px; background: var(--ok); }
.me-avatar { position: absolute; top: 236px; left: 96px; display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: rgba(47, 92, 246, .22); }
.me-avatar u { display: block; width: 13px; height: 13px; border: 2.5px solid #fff; border-radius: 50%; background: var(--cyan-dark); }
.nav-card { position: absolute; top: 24px; right: 12px; left: 12px; display: flex; gap: 10px; align-items: center; padding: 11px 12px; border-radius: 14px; color: #fff; background: rgba(20, 22, 29, .93); box-shadow: 0 10px 26px rgba(23, 24, 28, .3); backdrop-filter: blur(8px); }
.turn-icon { display: grid; width: 26px; height: 26px; flex: 0 0 26px; place-items: center; border-radius: 9px; background: rgba(255, 255, 255, .13); font-size: 13px; }
.nav-card p { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }
.nav-card strong { font-size: 12px; }
.nav-card small { margin-top: 2px; color: rgba(255, 255, 255, .62); font-size: 6.5px; }
.map-styles { position: absolute; right: 12px; bottom: 74px; left: 12px; display: flex; gap: 4px; }
.map-styles span { padding: 5px 8px; border-radius: 99px; background: rgba(255, 255, 255, .93); box-shadow: 0 3px 9px rgba(23, 24, 28, .12); color: var(--muted); font-size: 6px; font-weight: 700; }
.map-styles .on { color: #fff; background: var(--cyan-dark); }
.map-styles .threed { margin-left: auto; color: #fff; background: var(--mint); }
.nav-bottom { position: absolute; right: 8px; bottom: 8px; left: 8px; display: flex; align-items: center; padding: 11px 12px; border-radius: 16px; background: #fff; box-shadow: 0 10px 26px rgba(23, 24, 28, .16); }
.nav-bottom p { display: flex; flex: 1; flex-direction: column; margin: 0; line-height: 1.3; }
.nav-bottom strong { color: var(--ok); font-size: 12px; }
.nav-bottom small { margin-top: 2px; color: var(--muted); font-size: 6.5px; }
.modes { display: flex; gap: 3px; }
.modes span { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 7px; background: #eef1f8; font-size: 8px; }
.modes .on { background: rgba(47, 92, 246, .16); }

.floating-chip { position: absolute; z-index: 4; right: 0; bottom: 46px; display: flex; gap: 10px; align-items: center; padding: 12px 16px; border: 1px solid rgba(124, 58, 237, .2); border-radius: 14px; background: rgba(255, 255, 255, .95); box-shadow: var(--shadow-sm); }
.floating-chip > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: var(--mint); background: rgba(124, 58, 237, .12); }
.floating-chip p { display: flex; flex-direction: column; margin: 0; line-height: 1.35; }
.floating-chip small { color: var(--mint); font-size: 7px; font-weight: 700; }
.floating-chip strong { font-size: 9px; }

/* ---------- dai nguyen tac ---------- */

.trust-band { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper-warm); }
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.trust-grid article { display: flex; gap: 16px; align-items: center; min-height: 124px; padding: 25px 42px; border-right: 1px solid var(--line); }
.trust-grid article:first-child { padding-left: 0; }
.trust-grid article:last-child { padding-right: 0; border-right: 0; }
.line-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border: 1px solid rgba(23, 24, 28, .15); border-radius: 50%; color: var(--cyan-dark); }
.trust-grid strong { display: block; font-size: 12px; }
.trust-grid p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }

/* ---------- ba khoi tinh nang ---------- */

.products { background: #f8f9fd; overflow-x: clip; }
.product-story { display: grid; grid-template-columns: 1.06fr .94fr; gap: 80px; align-items: center; margin-bottom: 140px; }
.product-story.reverse { grid-template-columns: .94fr 1.06fr; }
.product-story:last-child { margin-bottom: 10px; }
.story-copy { min-width: 0; }
.product-label { display: flex; gap: 14px; align-items: center; margin-bottom: 28px; }
.product-emblem { width: 47px; height: 47px; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-sm); }
.product-label p { display: flex; flex-direction: column; margin: 0; line-height: 1.25; }
.product-label strong { font-size: 16px; }
.product-label small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.story-copy h3 { margin-bottom: 23px; font-size: clamp(34px, 3.5vw, 50px); font-weight: 590; line-height: 1.08; letter-spacing: -.045em; }
.story-copy h3 em { color: var(--cyan-dark); font-family: var(--font-editorial); font-weight: 400; }
.story-copy > p { margin-bottom: 24px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.feature-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.feature-list li { display: flex; gap: 15px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.feature-list li > span { color: var(--cyan-dark); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.feature-list li div { display: flex; flex-direction: column; }
.feature-list strong { font-size: 12px; }
.feature-list small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.55; }

.mock-stage { position: relative; display: grid; place-items: center; min-height: 640px; background: radial-gradient(circle at center, rgba(79, 124, 255, .13), transparent 58%); }
.mock-stage::before { position: absolute; inset: 0; background-image: radial-gradient(rgba(23, 24, 28, .1) 1px, transparent 1px); background-size: 15px 15px; content: ""; mask-image: radial-gradient(circle, #000, transparent 66%); }
.stage-phone { position: relative; z-index: 2; }
.stage-phone .phone-screen { min-height: 546px; }
.side-note { position: absolute; z-index: 3; right: 2%; bottom: 52px; display: flex; gap: 10px; align-items: center; padding: 12px 16px; border: 1px solid rgba(47, 92, 246, .2); border-radius: 14px; background: rgba(255, 255, 255, .95); box-shadow: var(--shadow-sm); }
.side-note.alt { right: auto; left: 0; bottom: 70px; border-color: rgba(255, 97, 47, .24); }
.side-note > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: var(--cyan-dark); background: rgba(79, 124, 255, .13); }
.side-note.alt > span { color: var(--hot); background: rgba(255, 97, 47, .13); }
.side-note p { display: flex; flex-direction: column; margin: 0; line-height: 1.35; }
.side-note small { color: var(--cyan-dark); font-size: 6.5px; font-weight: 800; letter-spacing: .1em; }
.side-note.alt small { color: var(--hot); }
.side-note strong { font-size: 9px; }

/* ---------- man chi tiet bai viet ---------- */

.post-head { display: flex; align-items: center; padding: 4px 2px 10px; color: var(--muted); font-size: 8px; }
.post-head small { margin: 0 auto; font-size: 7.5px; font-weight: 700; }
.post-head .back, .post-head b { color: #17181c; }
.post-hero { position: relative; height: 158px; margin: 0 -13px; }
.post-body { padding-top: 12px; }
.post-place { margin: 0 0 6px; color: var(--cyan-dark); font-size: 6px; font-weight: 800; letter-spacing: .1em; }
.post-body h4 { margin: 0 0 7px; font-size: 12px; letter-spacing: -.02em; }
.post-text { margin: 0 0 12px; color: var(--muted); font-size: 7px; line-height: 1.65; }
.post-author { display: flex; gap: 7px; align-items: center; padding: 9px 0; border-top: 1px solid #eef1f8; border-bottom: 1px solid #eef1f8; }
.post-author p { display: flex; flex: 1; flex-direction: column; margin: 0; line-height: 1.3; }
.post-author strong { font-size: 7.5px; }
.post-author small { color: #9a9fab; font-size: 5.5px; }
.follow { padding: 4px 9px; border-radius: 99px; color: #fff; background: var(--cyan-dark); font-size: 6px; }
.post-bar { display: flex; gap: 10px; align-items: center; padding-top: 10px; color: var(--muted); font-size: 6.5px; font-weight: 700; }
.post-bar .on { color: var(--hot); }
.post-bar span:last-child { margin-left: auto; }

/* ---------- man ban do day du ---------- */

.map-screen.tall .map-canvas.dense { background: linear-gradient(155deg, #e8eef3 0%, #dbe4ea 60%, #cfdde6 100%); }
.map-search { position: absolute; top: 16px; right: 12px; left: 12px; padding: 10px 12px; border-radius: 12px; color: var(--muted); background: rgba(255, 255, 255, .95); box-shadow: 0 6px 18px rgba(23, 24, 28, .14); font-size: 7px; font-weight: 650; }
.map-styles.floating { bottom: 132px; }
.marker-deck { position: absolute; top: 128px; left: 78px; display: flex; align-items: center; padding: 4px; border-radius: 12px; background: #fff; box-shadow: 0 6px 16px rgba(23, 24, 28, .22); }
.marker-deck u { display: block; width: 22px; height: 22px; margin-right: -8px; border: 1.5px solid #fff; border-radius: 7px; text-decoration: none; }
.deck-a { background: linear-gradient(150deg, #6f93b4, #2c4250); }
.deck-b { background: linear-gradient(150deg, #f4c07a, #b26a44); }
.deck-c { background: linear-gradient(150deg, #7fc7a4, #2f6d55); }
.marker-deck b { padding: 0 5px 0 12px; color: var(--muted); font-size: 6px; font-weight: 800; }
.place-sheet { position: absolute; right: 0; bottom: 0; left: 0; padding: 8px 14px 14px; border-radius: 18px 18px 29px 29px; background: #fff; box-shadow: 0 -8px 26px rgba(23, 24, 28, .14); }
.sheet-grip { display: block; width: 30px; height: 3px; margin: 0 auto 10px; border-radius: 99px; background: #d8dde8; }
.sheet-title { display: flex; flex-direction: column; margin: 0 0 10px; line-height: 1.3; }
.sheet-title strong { font-size: 11px; }
.sheet-title small { margin-top: 2px; color: var(--muted); font-size: 6.5px; }
.sheet-actions { display: flex; gap: 5px; }
.sheet-actions span { padding: 6px 10px; border-radius: 99px; background: #eef1f8; color: var(--muted); font-size: 6.5px; font-weight: 700; }
.sheet-actions .go { padding: 6px 12px; border-radius: 99px; color: #fff; background: var(--cyan-dark); font-size: 6.5px; }

/* ---------- man chat ---------- */

.chat-screen { display: flex; flex-direction: column; }
.chat-head { display: flex; gap: 7px; align-items: center; padding: 4px 2px 10px; border-bottom: 1px solid #eef1f8; }
.chat-head .back { color: #17181c; font-size: 9px; }
.chat-head p { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }
.chat-head strong { font-size: 8px; }
.chat-head small { color: var(--ok); font-size: 5.5px; }
.chat-body { display: flex; flex: 1; flex-direction: column; gap: 7px; padding: 12px 0; }
.day { align-self: center; margin-bottom: 3px; color: #9a9fab; font-size: 5.5px; font-weight: 800; letter-spacing: .1em; }
.bubble { max-width: 78%; padding: 8px 10px; border-radius: 13px; font-size: 7px; line-height: 1.5; }
.bubble.other { align-self: flex-start; border-bottom-left-radius: 4px; background: #eef1f8; }
.bubble.me { position: relative; align-self: flex-end; border-bottom-right-radius: 4px; color: #fff; background: var(--cyan-dark); }
.bubble.me i { display: block; margin-top: 3px; color: rgba(255, 255, 255, .65); font-size: 5px; font-style: normal; text-align: right; }
.bubble.ai { align-self: flex-start; max-width: 88%; border: 1px solid rgba(124, 58, 237, .22); border-bottom-left-radius: 4px; background: rgba(124, 58, 237, .07); }
.bubble.ai b { display: block; margin-bottom: 3px; color: var(--mint); font-size: 6px; letter-spacing: .06em; }
.bubble.typing { display: flex; gap: 3px; padding: 10px; }
.bubble.typing i { display: block; width: 4px; height: 4px; border-radius: 50%; background: #b6bcc9; }
.chat-input { display: flex; align-items: center; padding: 8px 8px 8px 12px; border-radius: 99px; background: #eef1f8; color: #9a9fab; font-size: 7px; }
.chat-input b { display: grid; width: 20px; height: 20px; margin-left: auto; place-items: center; border-radius: 50%; color: #fff; background: var(--cyan-dark); font-size: 8px; }

/* ---------- khoi chu quyen ---------- */

.sovereignty { color: var(--white); background: #071e29; overflow: hidden; }
.sovereignty::before { position: absolute; top: -240px; left: 46%; width: 700px; height: 520px; border-radius: 50%; background: rgba(47, 92, 246, .12); content: ""; filter: blur(64px); transform: translateX(-50%); }
.sovereignty-grid { position: relative; display: grid; grid-template-columns: .92fr 1.08fr; gap: 90px; align-items: start; }
.sov-copy { position: sticky; top: 130px; }
.sov-copy h2 { margin-bottom: 25px; font-size: clamp(42px, 5vw, 66px); font-weight: 590; }
.sov-copy h2 em { color: #7aa2ff; font-family: var(--font-editorial); font-weight: 400; }
.sov-copy > p:not(.eyebrow):not(.sov-rule) { max-width: 500px; margin-bottom: 18px; color: rgba(255, 255, 255, .58); font-size: 14px; line-height: 1.8; }
.sov-rule { display: flex; gap: 12px; align-items: flex-start; max-width: 500px; margin: 28px 0 0; padding: 16px 18px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 12px; background: rgba(255, 255, 255, .04); color: rgba(255, 255, 255, .72); font-size: 11px; line-height: 1.6; }
.sov-rule span { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; color: #7aa2ff; }

.sov-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.compare-card { padding: 20px; border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; background: rgba(255, 255, 255, .035); }
.compare-card header { display: flex; align-items: center; margin-bottom: 14px; }
.compare-card .tag { color: rgba(255, 255, 255, .45); font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.compare-card header i { display: grid; width: 20px; height: 20px; margin-left: auto; place-items: center; border-radius: 50%; font-size: 9px; font-style: normal; }
.compare-card.bad header i { color: #ff8f86; background: rgba(255, 143, 134, .14); }
.compare-card.good header i { color: #5fd6a4; background: rgba(95, 214, 164, .14); }
.compare-card > p { margin: 14px 0 0; color: rgba(255, 255, 255, .5); font-size: 10px; line-height: 1.65; }

.tile-mock { position: relative; height: 190px; border-radius: 10px; background: linear-gradient(170deg, #123047 0%, #0d2436 100%); overflow: hidden; }
.tile-mock .sea { position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 13px 13px; }
.tile-mock .isle { position: absolute; border-radius: 46% 54% 38% 62%; background: #d8e3ea; text-decoration: none; }
.isle-1 { top: 62px; left: 34px; width: 26px; height: 15px; }
.isle-2 { top: 92px; left: 74px; width: 17px; height: 11px; }
.isle-3 { top: 122px; left: 44px; width: 13px; height: 9px; }
.label-cn { position: absolute; top: 32px; left: 28px; color: #ffb4ac; font-size: 15px; font-weight: 700; letter-spacing: .04em; }
.tile-mock.vn { background: linear-gradient(170deg, #10344a 0%, #0b2637 100%); }
.label-vn { position: absolute; top: 28px; left: 22px; max-width: 150px; color: #cfe6ff; font-size: 11px; font-weight: 700; line-height: 1.35; }
.label-vn em { display: block; color: rgba(207, 230, 255, .7); font-size: 9px; font-style: normal; font-weight: 600; }
.label-sub { position: absolute; bottom: 22px; left: 26px; color: rgba(255, 255, 255, .68); font-size: 8px; font-weight: 700; letter-spacing: .1em; }

/* ---------- luoi chi tiet nho ---------- */

.details { background: var(--paper-warm); overflow-x: clip; }
.section-heading.split { display: grid; grid-template-columns: 1fr .7fr; align-items: end; margin-bottom: 62px; }
.section-heading.split h2 { margin-bottom: 0; }
.section-heading.split > p { justify-self: end; max-width: 470px; }
.detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.detail-grid article { min-height: 300px; padding: 36px 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .32); transition: background .25s ease, transform .25s ease; }
.detail-grid article:hover { z-index: 1; background: var(--white); transform: translateY(-5px); }
.detail-icon { display: grid; width: 44px; height: 44px; margin-bottom: 34px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--cyan-dark); font-size: 17px; }
.card-kicker { margin-bottom: 14px; color: var(--cyan-dark); font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.detail-grid h3 { margin-bottom: 14px; font-size: 19px; letter-spacing: -.035em; }
.detail-grid article > p:not(.card-kicker) { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; }

/* ---------- he sinh thai ---------- */

.ecosystem { background: #f8f9fd; }
.eco-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.eco-card { display: flex; flex-direction: column; padding: 30px 28px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); box-shadow: var(--shadow-sm); }
.eco-brand { display: flex; gap: 12px; align-items: center; margin-bottom: 18px; }
.eco-logo { width: 40px; height: 40px; border-radius: 12px; overflow: hidden; }
.eco-brand p { display: flex; flex-direction: column; margin: 0; line-height: 1.25; }
.eco-brand strong { font-size: 14px; }
.eco-brand small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.eco-desc { margin-bottom: 22px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.eco-card .text-link { margin-top: auto; align-self: flex-start; color: var(--cyan-dark); }

/* ---------- khoi tai ung dung + form ---------- */

.download { color: var(--white); background: #0c1a2b; overflow: hidden; }
.download-orb { position: absolute; right: -200px; bottom: -300px; width: 700px; height: 700px; border: 1px solid rgba(79, 124, 255, .12); border-radius: 50%; box-shadow: inset 0 0 130px rgba(79, 124, 255, .08); }
.download-grid { position: relative; display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; align-items: start; }
.download-copy h2 { margin-bottom: 25px; font-size: clamp(42px, 5vw, 66px); font-weight: 590; }
.download-copy h2 em { color: #7aa2ff; font-family: var(--font-editorial); font-weight: 400; }
.download-copy > p:not(.eyebrow) { max-width: 470px; color: rgba(255, 255, 255, .57); font-size: 14px; }
.download-points { margin-top: 40px; }
.download-points > div { display: flex; gap: 20px; padding: 19px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.download-points > div:last-child { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.download-points > div > span { color: #7aa2ff; font-size: 8px; font-weight: 800; }
.download-points p { display: flex; flex-direction: column; margin: 0; }
.download-points strong { font-size: 12px; }
.download-points small { margin-top: 4px; color: rgba(255, 255, 255, .42); font-size: 9px; line-height: 1.55; }

.pilot-form { padding: 42px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 18px; background: rgba(255, 255, 255, .055); box-shadow: 0 35px 80px rgba(0, 0, 0, .16); }
.form-head { margin-bottom: 30px; padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.form-head span { color: #7aa2ff; font-size: 9px; font-weight: 800; letter-spacing: .17em; }
.form-head p { margin: 8px 0 0; color: rgba(255, 255, 255, .48); font-size: 10px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 16px; }
.field { display: flex; min-width: 0; flex-direction: column; }
.field.full { grid-column: 1 / -1; }
.field label { margin-bottom: 7px; color: rgba(255, 255, 255, .77); font-size: 9px; font-weight: 650; }
.field label span { color: #7aa2ff; }
.field input, .field select { width: 100%; height: 46px; padding: 0 13px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 6px; color: var(--white); outline: none; background: rgba(255, 255, 255, .06); font-size: 11px; transition: border .2s ease, background .2s ease; }
.field input::placeholder { color: rgba(255, 255, 255, .28); }
.field select { color-scheme: dark; }
.field input:focus, .field select:focus { border-color: #7aa2ff; background: rgba(255, 255, 255, .09); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"] { border-color: #ff968f; }
.field-error { min-height: 15px; margin-top: 4px; color: #ffaaa4; font-size: 8px; }
.form-submit { width: 100%; margin-top: 23px; }
.privacy-note { display: flex; gap: 8px; justify-content: center; margin: 15px 0 0; color: rgba(255, 255, 255, .35); font-size: 8px; text-align: center; }
.form-status { display: none; margin: 20px 0 0; padding: 14px; border: 1px solid rgba(79, 124, 255, .3); border-radius: 8px; color: #bcd2ff; background: rgba(79, 124, 255, .1); font-size: 10px; }
.form-status.is-visible { display: block; }

/* ---------- responsive ---------- */

@media (max-width: 1120px) {
  .hero { padding-top: 150px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-copy { max-width: 780px; }
  .hero-visual { width: min(720px, 100%); margin: 0 auto; }
  .product-story, .product-story.reverse { grid-template-columns: 1fr; gap: 58px; }
  .story-copy { max-width: 680px; }
  .product-story.reverse .story-copy { order: -1; }
  .mock-stage { width: min(640px, 100%); min-height: 620px; margin-inline: auto; }
  .sovereignty-grid, .download-grid { gap: 62px; }
  .detail-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .trust-grid article { padding-inline: 22px; }
  .sovereignty-grid, .download-grid { grid-template-columns: 1fr; }
  .sov-copy { position: static; }
  .sov-compare, .download-copy, .pilot-form { max-width: 720px; }
  .eco-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .primary-nav { background: rgba(246, 248, 252, .98); }
  .hero { min-height: auto; padding-top: 128px; padding-bottom: 42px; }
  .hero-grid { gap: 40px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .text-link { align-self: flex-start; }
  .hero-notes { display: grid; }
  .hero-visual { min-height: 520px; transform: scale(.9); transform-origin: top center; }
  .phone-aura { width: 390px; height: 390px; }
  .phone-front { left: 46%; }
  .phone-back { left: 0; }
  .floating-chip { right: -8px; bottom: 20px; }
  .hero-footnote { margin-top: 0; }
  .trust-grid { grid-template-columns: 1fr; padding-block: 8px; }
  .trust-grid article, .trust-grid article:first-child, .trust-grid article:last-child { min-height: 98px; padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-grid article:last-child { border-bottom: 0; }
  .product-story { gap: 42px; margin-bottom: 92px; }
  .story-copy h3 { font-size: 36px; }
  .mock-stage { min-height: 560px; transform: scale(.9); transform-origin: top center; }
  .side-note, .side-note.alt { right: auto; left: 0; bottom: 24px; }
  .side-note.alt { left: auto; right: 0; }
  .sov-compare { grid-template-columns: 1fr; gap: 16px; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-grid article { min-height: 0; padding: 32px 26px; }
  .detail-icon { margin-bottom: 26px; }
  .download-grid { gap: 48px; }
  .pilot-form { padding: 26px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .field.full { grid-column: auto; }
}

@media (max-width: 430px) {
  .hero-visual { width: 124%; margin-left: -12%; min-height: 440px; transform: scale(.78); margin-bottom: -80px; }
  .mock-stage { width: 122%; margin-left: -11%; transform: scale(.8); margin-bottom: -70px; }
}
