/* ==========================================================================
   NEXUS-ED — hệ thống thiết kế v2 (biên tập · tối giản · nhẹ)
   Nguyên tắc: 1 họ chữ có cá tính cho tiêu đề (Fraunces) + 1 họ chữ dễ đọc cho nội dung
   (Be Vietnam Pro), thang khoảng cách 8px, bo góc 8/14/20, đổ bóng chỉ khi tương tác,
   hiệu ứng chỉ dùng transform/opacity để không ảnh hưởng Core Web Vitals.
   Biến màu chính được ghi đè từ Quản trị → Logo, hình ảnh & màu sắc.
   ========================================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --forest:#0B3D2E;--forest-2:#0F4C39;--deep:#072B20;
  --leaf:#2FA36B;--leaf-d:#1E7A4F;--mint:#8FE3B4;--mint-bg:#EAF6EC;
  --lime:#C8F169;--lime-d:#A8D94A;
  --navy:#0B3D2E;--navy-2:#0F4C39;--navy-d:#072B20;
  --ocean:#14324C;--ocean-2:#1B4468;--ocean-d:#0C2133;--blue:#2F7FB8;--blue-l:#9AD8E8;--blue-bg:#EDF3F7;
  --ink:#12291F;--text:#3D5A4B;--mut:#5F7A6C;--line:#E2EBDD;--line-2:#ECF2E8;
  --bg:#fff;--bg-soft:#F6F8F0;--on-dark:#BFE3CB;--on-dark-2:#9FCBB0;
  --link:#256896;
  --serif:'Fraunces','Fraunces Fallback',Georgia,'Times New Roman',serif;
  --sans:'Be Vietnam Pro','Be Vietnam Pro Fallback',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --r-sm:8px;--r:14px;--r-lg:20px;
  --sh:0 12px 28px -14px rgba(11,61,46,.28);
  --ease:cubic-bezier(.22,1,.36,1);
  --sec:clamp(72px,9vw,120px);
  --gap:clamp(20px,2.4vw,32px);
  --hh:76px;
}

html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hh) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--text);font-size:16px;line-height:1.7;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--lime);color:var(--deep)}
:focus-visible{outline:2px solid var(--leaf);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:10px 16px;border-radius:var(--r-sm);z-index:2000}
.skip:focus{left:8px}

/* ============ CON TRỎ MÁY BAY (CSS thuần — không tốn JS) ============ */
@media (pointer:fine){
  html.cur-plane,html.cur-plane body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 3l25 9.5-10.2 4.2L13.6 28.4z' fill='%2314324C' stroke='%23fff' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M3 3l14.8 13.7' stroke='%23C8F169' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M17.8 16.7l-4.2 11.7-2-10.6z' fill='%232F7FB8' stroke='%23fff' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 3 3,auto}
  html.cur-plane a,html.cur-plane button,html.cur-plane summary,html.cur-plane label,html.cur-plane select,html.cur-plane [role=button],html.cur-plane .faq-q,html.cur-plane .ftab{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M3 3l25 9.5-10.2 4.2L13.6 28.4z' fill='%23C8F169' stroke='%2314324C' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M3 3l14.8 13.7' stroke='%2314324C' stroke-width='1.7' stroke-linecap='round'/%3E%3Cpath d='M17.8 16.7l-4.2 11.7-2-10.6z' fill='%2347B97F' stroke='%2314324C' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 3 3,pointer}
  html.cur-plane input,html.cur-plane textarea{cursor:text}
}

/* ============ KHUNG & TIỆN ÍCH ============ */
.container{width:min(1200px,calc(100% - 48px));margin:0 auto}
.container-narrow{width:min(780px,calc(100% - 48px));margin:0 auto}
.band{padding:var(--sec) 0}
.band-soft{background:var(--bg-soft)}
.band-tint{background:var(--mint-bg)}
.band-dark{background:var(--navy);color:var(--on-dark)}
.section{padding:var(--sec) 0}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:12px;font:600 12.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-d)}
.eyebrow::before,.kicker .lf{content:"";display:block;width:28px;height:1.5px;background:currentColor;flex:0 0 28px;border-radius:0;transform:none}
.kicker .lf{content:none;background:currentColor;height:1.5px}
.band-dark .eyebrow,.band-dark .kicker{color:var(--lime)}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);font-weight:600;letter-spacing:-.02em;text-wrap:balance;font-optical-sizing:auto}
p{text-wrap:pretty}
.sec-head{display:grid;gap:14px;margin-bottom:clamp(36px,4.5vw,56px);max-width:none;text-align:left}
.sec-title{font-size:clamp(1.9rem,1.35rem + 2vw,3rem);line-height:1.12;margin:0;max-width:20ch}
.sec-title em{font-style:italic;font-weight:500;color:var(--leaf-d)}
.band-dark .sec-title{color:#fff}.band-dark .sec-title em{color:var(--lime)}
.sec-sub{font-size:1.0625rem;color:var(--text);max-width:56ch;margin:0}
@media (min-width:960px){
  .sec-head{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;column-gap:64px}
  .sec-head>.eyebrow,.sec-head>.kicker{grid-column:1/-1}
  .sec-head .sec-sub{justify-self:end}
}
.sec-head.center{text-align:center;justify-items:center;grid-template-columns:1fr}
.sec-head.center .sec-title{max-width:24ch}.sec-head.center .sec-sub{justify-self:center}
.lf-i{display:inline-block;width:8px;height:8px;background:var(--leaf);border-radius:50%}

/* Nút */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 14.5px/1 var(--sans);letter-spacing:.01em;padding:16px 26px;border-radius:var(--r-sm);border:1.5px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s;white-space:nowrap;text-align:center;min-height:50px}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-forest{background:var(--navy);color:#fff}
.btn-forest:hover{background:var(--navy-2);transform:translateY(-1px);box-shadow:var(--sh)}
.btn-lime{background:var(--lime);color:var(--deep)}
.btn-lime:hover{background:#D5F58A;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy);color:var(--navy)}
.band-dark .btn-ghost,.page-hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.35)}
.band-dark .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-sm{padding:12px 20px;font-size:13.5px;min-height:42px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--link);font-size:.95rem}
.link-arrow::after{content:"→";transition:transform .25s var(--ease)}
.link-arrow:hover::after{transform:translateX(4px)}

/* Hiệu ứng cuộn: chỉ opacity + transform, một lần */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease) var(--d,0s),transform .6s var(--ease) var(--d,0s)}
.rv-l,.rv-r,.rv-z{transform:translateY(18px)}
.on,.noanim .rv{opacity:1;transform:none}

/* ============ HEADER ============ */
#header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--hh);display:flex;align-items:center;transition:background-color .25s,box-shadow .25s,border-color .25s;border-bottom:1px solid transparent}
#header.scrolled,#header.solid{background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom-color:var(--line)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:clamp(14px,2vw,28px)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand .mark{width:44px;height:44px;border-radius:12px;overflow:hidden;background:var(--ocean);flex:0 0 44px}
.brand .mark img{width:100%;height:100%;object-fit:cover}
.brand .bt{line-height:1.15;white-space:nowrap}
.brand .bt b{display:block;font:700 19px var(--serif);letter-spacing:.04em;color:var(--ink)}
.brand .bt small{display:block;font:600 11px var(--sans);letter-spacing:.06em;color:var(--leaf-d);margin-top:3px}
@media (max-width:420px){.brand .bt small{font-size:10px;letter-spacing:.02em}.brand .bt b{font-size:17px}}
.nav{display:flex;gap:clamp(12px,1.5vw,26px)}
.nav a{position:relative;font:500 14px var(--sans);color:var(--ink);padding:8px 0;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--leaf);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.nav a.active{font-weight:600}
.nav-actions{display:flex;align-items:center;gap:12px}
.burger{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px;z-index:1300;width:44px;height:44px}
.burger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px auto;border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
#mmenu{position:fixed;inset:0;z-index:1200;background:var(--navy);display:flex;flex-direction:column;justify-content:center;padding:96px 32px 32px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;overflow-y:auto}
#mmenu.open{opacity:1;visibility:visible}
#mmenu a{font:500 1.6rem/1.3 var(--serif);color:#fff;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);display:flex;align-items:baseline;gap:16px}
#mmenu a small{font:600 11px var(--sans);letter-spacing:.14em;color:var(--lime)}
#mmenu a.active{color:var(--lime)}
#mmenu a.btn{font:600 15px var(--sans);margin-top:24px;border-bottom:0;justify-content:center}
body.menu-open{overflow:hidden}

/* ============ HERO ============ */
.hero{position:relative;padding:calc(var(--hh) + clamp(40px,6vw,88px)) 0 0;background:linear-gradient(180deg,var(--bg-soft) 0%,#fff 100%);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,80px);align-items:center;padding-bottom:clamp(40px,6vw,80px)}
.hero-pill{display:inline-flex;align-items:center;gap:12px;font:600 12.5px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-d);margin-bottom:24px}
.hero-pill .dot{display:block;width:28px;height:1.5px;background:currentColor}
.hl{font:600 clamp(2.5rem,1.4rem + 4.2vw,4.75rem)/1.04 var(--serif);letter-spacing:-.03em;color:var(--ink);margin-bottom:24px;text-wrap:balance}
.hl-line{display:block}
.hl-line>span{display:inline}
.squig{font-style:italic;font-weight:500;color:var(--leaf-d);position:relative}
.squiggle{display:none}
.hero-sub{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);line-height:1.65;color:var(--text);max-width:50ch;margin-bottom:32px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px}
.hero-trust{display:flex;align-items:center;gap:14px;font:500 14px/1.4 var(--sans);color:var(--mut)}
.avs{display:flex}
.avs span{width:36px;height:36px;border-radius:50%;border:2px solid #fff;display:grid;place-items:center;font:700 11.5px var(--sans);margin-left:-8px;color:var(--navy);background:var(--mint-bg)}
.avs span:first-child{margin:0}
.av-2{background:#DCEBF4}.av-3{background:#F6F8F0}.av-4{background:var(--navy);color:#fff}
.hero-vis{position:relative}
.route-card{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--navy);aspect-ratio:1/1.02;box-shadow:0 30px 60px -30px rgba(11,61,46,.5)}
.route-card svg{position:absolute;inset:0;width:100%;height:100%}
.route-card .dots{opacity:.22}
.route-card .arc{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.4;stroke-dasharray:2 7;stroke-linecap:round}
.route-card .node{fill:#fff}
.route-card .node-home{fill:var(--lime)}
.route-card .ring{fill:none;stroke:var(--lime);stroke-width:1.4;opacity:.5;transform-origin:center;transform-box:fill-box;animation:ping 3.2s ease-out infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.7}100%{transform:scale(2.4);opacity:0}}
.route-card .lbl{font:600 12px var(--sans);fill:#fff;letter-spacing:.04em}
.route-card .lbl-s{font:500 10.5px var(--sans);fill:rgba(255,255,255,.62);letter-spacing:.06em}
.route-card .plane{fill:#fff}
.route-cap{position:absolute;left:24px;bottom:22px;right:24px;display:flex;justify-content:space-between;gap:16px;align-items:flex-end;color:#fff}
.route-cap b{display:block;font:600 1.5rem/1.1 var(--serif)}
.route-cap small{font:500 12px var(--sans);color:rgba(255,255,255,.72);letter-spacing:.04em}
.route-cap .tag{border:1px solid rgba(255,255,255,.35);border-radius:99px;padding:6px 14px;font:600 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.hero-photo{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/4.4;box-shadow:0 30px 60px -30px rgba(11,61,46,.5)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:28px 24px 30px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat-num{font:600 clamp(2rem,1.5rem + 1.8vw,3rem)/1 var(--serif);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat-num i{font-style:normal;color:var(--leaf-d);margin-left:2px}
.stat-label{margin-top:8px;font:500 13.5px/1.4 var(--sans);color:var(--mut)}

/* ============ MARQUEE (tuỳ chọn) ============ */
.marquee{background:var(--navy);padding:14px 0;overflow:hidden}
.mq-track{display:flex;width:max-content;animation:mq 50s linear infinite}
.mq-track span{font:600 12.5px var(--sans);letter-spacing:.22em;color:var(--on-dark);white-space:nowrap;display:flex;align-items:center}
.mq-track .mleaf{width:5px;height:5px;background:var(--lime);border-radius:50%;margin:0 32px;flex:0 0 5px}
@keyframes mq{to{transform:translateX(-50%)}}

/* ============ GIỚI THIỆU ============ */
.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,96px);align-items:start}
.about-copy .sec-title{margin:16px 0 20px;max-width:18ch}
.about-copy .sec-sub{max-width:58ch}
.about-list{margin:28px 0 36px;display:grid;gap:14px}
.about-list li{display:flex;gap:14px;color:var(--ink);font-weight:500;line-height:1.55}
.about-list li::before{content:"";flex:0 0 20px;height:20px;margin-top:3px;background:var(--leaf);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.about-side{display:grid;gap:16px}
.quote-card{background:var(--navy);color:var(--on-dark);border-radius:var(--r-lg);padding:clamp(24px,3vw,36px)}
.quote-card h4{font:500 1.35rem/1.35 var(--serif);color:#fff;margin:14px 0 10px;letter-spacing:-.01em}
.quote-card p{font-size:.95rem;margin:0;max-width:44ch}
.quote-card .big{font:600 clamp(2.4rem,2rem + 1.5vw,3.4rem)/1 var(--serif);color:var(--lime);letter-spacing:-.02em;display:block}
.quote-card .big-cap{font:500 13.5px var(--sans);color:var(--on-dark)}
.quote-card .ico{background:rgba(255,255,255,.1);color:var(--lime)}
.value-list{display:grid;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.value{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:20px 24px;align-items:start;background:#fff}
.value+.value{border-top:1px solid var(--line)}
.value b{display:block;font:600 1.05rem var(--serif);color:var(--ink);margin-bottom:2px}
.value p{font-size:.9rem;line-height:1.55;color:var(--mut);margin:0}
.ico{display:grid;place-items:center;color:var(--leaf-d);background:var(--mint-bg);border-radius:12px;width:48px;height:48px;flex:0 0 48px}
svg.si{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ico svg{width:24px;height:24px}
.ico-t{font:700 13px var(--sans)}

/* ============ ĐIỂM ĐẾN ============ */
.dest-grid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.dcard2{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.dcard2:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:var(--sh)}
.dcard2 .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.bflag{display:inline-grid;place-items:center;min-width:48px;height:32px;padding:0 10px;border-radius:6px;font:700 12px var(--sans);letter-spacing:.08em;color:#fff;overflow:hidden;background:var(--navy)}
.bflag img{width:100%;height:100%;object-fit:cover}
.fg-1{background:#3C3B6E}.fg-2{background:#1B3F8B}.fg-3{background:#B8212F}.fg-4{background:#0D6B52}.fg-5{background:#1F5F99}.fg-6{background:#169B62}.fg-7{background:#C0392B}
.bcont{font:600 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.dcard2 h3{font:600 1.5rem/1.2 var(--serif);margin-bottom:10px}
.dcard2 p{font-size:.95rem;color:var(--text);margin-bottom:16px}
.dcard2 ul{display:grid;gap:8px;margin:0 0 24px;padding-top:16px;border-top:1px solid var(--line-2)}
.dcard2 li{font-size:.9rem;display:flex;gap:10px;color:var(--ink);line-height:1.5}
.dcard2 li::before{content:"";flex:0 0 6px;height:6px;margin-top:9px;background:var(--leaf);border-radius:50%}
.dcard2 .link-arrow{margin-top:auto}
.dest-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:var(--gap);background:var(--mint-bg);border-radius:var(--r);padding:28px 32px}
.dest-cta h3{font:600 1.35rem var(--serif);margin-bottom:4px}
.dest-cta p{margin:0;color:var(--text);max-width:60ch}

/* ============ DỊCH VỤ ============ */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.svc{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:clamp(24px,3vw,40px);position:relative;transition:background-color .25s}
.svc:nth-child(odd){border-right:1px solid var(--line)}
.svc:nth-child(n+3){border-top:1px solid var(--line)}
a.svc:hover{background:var(--bg-soft)}
.svc .ico{width:56px;height:56px}
.svc .ico svg{width:28px;height:28px}
.svc-num{position:absolute;right:24px;top:20px;font:500 .8rem var(--sans);color:var(--mut);letter-spacing:.1em}
.svc h3{font:600 1.35rem/1.25 var(--serif);margin-bottom:8px}
.svc p{font-size:.95rem;margin-bottom:14px}
.svc-list{display:grid;gap:6px}
.svc-list li{font-size:.9rem;color:var(--ink);font-weight:500;padding-left:18px;position:relative}
.svc-list li::before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1.5px;background:var(--leaf)}

/* ============ CHƯƠNG TRÌNH ============ */
.ftabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.ftab{background:#fff;border:1px solid var(--line);color:var(--ink);padding:10px 20px;border-radius:99px;font:500 14px var(--sans);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.ftab:hover{border-color:var(--navy)}
.ftab.active{background:var(--navy);border-color:var(--navy);color:#fff}
.prog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.prog{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.prog:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:var(--sh)}
.prog.hide{display:none}
.pv{height:148px;display:grid;place-items:center;position:relative;overflow:hidden;color:rgba(255,255,255,.92)}
.pv img.pv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pv svg{width:52px;height:52px;stroke-width:1.2;opacity:.92}
.pv::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 0%,rgba(255,255,255,.16),transparent 55%)}
.pv-1{background:linear-gradient(135deg,#0B3D2E,#2FA36B)}
.pv-2{background:linear-gradient(135deg,#14324C,#2F7FB8)}
.pv-3{background:linear-gradient(135deg,#072B20,#1E7A4F)}
.pv-4{background:linear-gradient(135deg,#0F4C39,#2FA36B)}
.pv-5{background:linear-gradient(135deg,#1B4468,#2F7FB8)}
.pv-6{background:linear-gradient(135deg,#0B3D2E,#1E7A4F)}
.pbadge{position:absolute;z-index:2;top:16px;left:16px;font:700 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:99px;background:#fff;color:var(--ink)}
.pbadge.eco{background:var(--lime);color:var(--deep)}
.pbody{padding:24px;display:flex;flex-direction:column;flex:1}
.pmeta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:12px;font:500 12.5px var(--sans);color:var(--mut)}
.pmeta span{display:inline-flex;align-items:center;gap:6px}
.pmeta svg,.page-hero .meta svg{width:15px;height:15px;stroke-width:1.8;flex:0 0 15px}
.page-hero .meta span{display:inline-flex;align-items:center;gap:7px}
.pbody h3{font:600 1.2rem/1.3 var(--serif);margin-bottom:8px}
.pbody>p{font-size:.92rem;flex:1;margin-bottom:14px;color:var(--text)}
.pnote{font:600 12.5px/1.4 var(--sans);color:var(--leaf-d);margin-bottom:16px;padding-top:12px;border-top:1px solid var(--line-2)}
.plink{font:600 14px var(--sans);color:var(--link);display:inline-flex;align-items:center;gap:8px}
.plink::after{content:"→";transition:transform .25s var(--ease)}
.plink:hover::after{transform:translateX(4px)}
.plink .ln{display:none}

/* ============ QUY TRÌNH ============ */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--line)}
.step{position:relative;padding:0 20px 0 0}
.step .n{position:relative;z-index:1;width:54px;height:54px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font:600 1.1rem var(--serif);color:var(--navy);margin-bottom:20px;transition:background-color .3s,color .3s,border-color .3s}
.step:hover .n{background:var(--navy);border-color:var(--navy);color:#fff}
.step h4{font:600 1.25rem/1.25 var(--serif);margin-bottom:4px;text-wrap:pretty}
.step-sub{display:block;font:600 .88rem/1.4 var(--sans);color:var(--leaf-d);margin-bottom:10px;text-wrap:pretty}
.step p{font-size:.9rem;color:var(--text);margin:0}

/* ============ XANH & BỀN VỮNG ============ */
.green-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.band-dark .gtxt p{font-size:1.05rem;color:var(--on-dark);max-width:52ch;margin:20px 0 0}
.sdg-row{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 32px}
.sdg{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.18);padding:6px 16px 6px 6px;border-radius:99px;font:500 13.5px var(--sans);color:#EAF2F7}
.sdg b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 13px var(--sans)}
.pledges{display:grid;border-top:1px solid rgba(255,255,255,.16)}
.pledge{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.pledge .ico{background:rgba(200,241,105,.12);color:var(--lime)}
.pledge b{display:block;font:600 1.15rem var(--serif);color:#fff;margin-bottom:4px}
.pledge p{font-size:.93rem;margin:0;color:var(--on-dark)}

/* ============ CẢM NHẬN ============ */
.tslider{max-width:860px;margin:0 auto;position:relative;overflow:hidden}
.ttrack{display:flex;transition:transform .6s var(--ease)}
.tslide{min-width:100%;padding:0 4px}
.tcard{padding:clamp(8px,2vw,24px) 0;text-align:left}
.tcard::before{content:"“";display:block;font:600 5rem/0.7 var(--serif);color:var(--leaf);height:40px;margin-bottom:8px}
.tslide blockquote{font:500 clamp(1.3rem,1.05rem + 1vw,1.9rem)/1.45 var(--serif);color:var(--ink);letter-spacing:-.01em;text-wrap:pretty}
.tperson{margin-top:28px;display:flex;align-items:center;gap:16px}
.tav{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font:700 14px var(--sans);color:var(--navy);overflow:hidden;flex:0 0 52px;background:var(--mint-bg)}
.tav img{width:100%;height:100%;object-fit:cover}
.tav.a2{background:#DCEBF4}.tav.a3{background:#F6F8F0}.tav.a4{background:var(--navy);color:#fff}
.tperson b{display:block;font:600 15px var(--sans);color:var(--ink)}
.tperson small{font:400 13.5px var(--sans);color:var(--mut);display:block}
.tnav{display:flex;align-items:center;gap:20px;margin-top:36px}
.tarrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:16px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.tarrow:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.tdots{display:flex;gap:8px}
.tdot{width:8px;height:8px;border:0;background:var(--line);border-radius:50%;cursor:pointer;transition:background-color .2s,transform .2s;padding:0}
.tdot.active{background:var(--navy);transform:scale(1.25)}

/* ============ FAQ ============ */
.faq-split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq-split .sticky{position:sticky;top:calc(var(--hh) + 24px)}
.faq-split .sec-sub{margin-top:16px}
.faq-wrap{display:grid;border-top:1px solid var(--line)}
.faq{border-bottom:1px solid var(--line)}
.faq-q{width:100%;background:none;border:0;display:flex;justify-content:space-between;align-items:center;gap:24px;text-align:left;padding:22px 0;font:600 1.1rem/1.4 var(--serif);color:var(--ink);cursor:pointer}
.faq-q:hover{color:var(--navy-2)}
.faq-x{flex:0 0 28px;width:28px;height:28px;position:relative}
.faq-x::before,.faq-x::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:1.8px;background:var(--navy);transform:translate(-50%,-50%);transition:transform .3s var(--ease)}
.faq-x::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq.open .faq-x::after{transform:translate(-50%,-50%) rotate(0)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.faq.open .faq-a{grid-template-rows:1fr}
.faq-a>div{overflow:hidden;min-height:0}
.faq-a p{padding:0 48px 24px 0;font-size:1rem;max-width:62ch}
.faq-section{padding-top:0}

/* ============ ĐĂNG KÝ ============ */
.reg{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.reg-info{background:var(--navy);padding:clamp(28px,4vw,56px);color:var(--on-dark)}
.reg-info .kicker{color:var(--lime)}
.reg-info h3{font:600 clamp(1.5rem,1.2rem + 1vw,2rem)/1.25 var(--serif);color:#fff;margin:16px 0 12px}
.reg-info h3 em{font-style:italic;font-weight:500;color:var(--lime)}
.reg-info>p{font-size:.98rem;margin-bottom:32px}
.reg-ct{display:grid;border-top:1px solid rgba(255,255,255,.15)}
.reg-ct li{display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.15)}
.reg-ct .ic{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:var(--lime)}
.reg-ct .ic svg{width:20px;height:20px}
.reg-ct b{display:block;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:2px}
.reg-ct span,.reg-ct a{font:500 .98rem var(--sans);color:#fff;word-break:break-word}
.reg-form{padding:clamp(28px,4vw,56px)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.fld{display:flex;flex-direction:column;gap:8px}
.fld.full{grid-column:1/-1}
.fld label{font:600 13px var(--sans);color:var(--ink)}
.fld label i{color:#B3261E;font-style:normal}
.fld input,.fld select,.fld textarea{border:1.5px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:13px 16px;font:400 1rem var(--sans);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s;width:100%;min-height:50px}
.fld select{appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%2314324C' stroke-width='1.6'/></svg>") no-repeat right 16px center;padding-right:40px}
.fld textarea{resize:vertical;min-height:110px}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--navy);box-shadow:0 0 0 4px rgba(11,61,46,.12)}
.fld input::placeholder,.fld textarea::placeholder{color:#8A9CAA}
.reg-form .btn,.form-card .btn{width:100%;margin-top:24px}
.fnote{text-align:center;font-size:.85rem;margin-top:14px;color:var(--mut)}
.hp-wrap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ============ FOOTER ============ */
footer.site-footer{background:var(--navy-d);color:var(--on-dark-2)}
.fgrid-t{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:clamp(28px,4vw,64px);padding:clamp(56px,7vw,88px) 0 48px}
.f-brand .brand .bt b{color:#fff}.f-brand .brand .bt small{color:var(--lime)}
.f-brand>p{font-size:.93rem;margin:20px 0;max-width:34ch}
.f-contact{display:grid;gap:8px;margin-bottom:22px;font-size:.93rem}
.f-contact a,.f-contact span{display:inline-flex;gap:10px;align-items:flex-start;color:var(--on-dark);transition:color .2s}
.f-contact a:hover{color:var(--lime)}
.f-contact svg,.f-social svg{width:18px;height:18px;flex:0 0 18px;margin-top:3px}
.f-social{display:flex;gap:8px;flex-wrap:wrap}
.f-social a{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:var(--on-dark);transition:background-color .2s,color .2s,border-color .2s}
.f-social svg{margin:0}
.f-social a:hover{background:var(--lime);border-color:var(--lime);color:var(--deep)}
.f-col h4{font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:20px}
.f-col ul{display:grid;gap:10px}
.f-col a{font-size:.93rem;color:var(--on-dark-2);transition:color .2s}
.f-col a:hover{color:var(--lime)}
.f-news p{font-size:.93rem;margin-bottom:16px}
.f-form{display:flex;border:1px solid rgba(255,255,255,.25);border-radius:var(--r-sm);padding:4px;transition:border-color .2s}
.f-form:focus-within{border-color:var(--lime)}
.f-form input{flex:1;background:none;border:0;outline:none;color:#fff;font:400 .95rem var(--sans);padding:10px 12px;min-width:0}
.f-form input::placeholder{color:#6F9C86}
.f-form button{background:var(--lime);border:0;border-radius:6px;padding:10px 18px;font:600 13.5px var(--sans);color:var(--deep);cursor:pointer;transition:background-color .2s}
.f-form button:hover{background:#D5F58A}
.f-legal{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:24px 0;border-top:1px solid rgba(255,255,255,.1)}
.moit-badge img{height:auto;max-width:100%}
.moit-text{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(200,241,105,.45);border-radius:var(--r-sm);padding:9px 14px;font:600 12.5px var(--sans);color:#fff}
.moit-text svg{width:20px;height:20px;color:var(--lime)}
.f-company{font-size:.85rem;line-height:1.7;color:#8AA3B6}
.f-company strong{color:#fff}
.f-bot{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;font-size:.85rem;color:#6F9C86}
.f-bot .lf-i{margin-right:8px}
.f-water{display:none}

/* ============ TOAST, LÊN ĐẦU, CHAT NỔI ============ */
#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,160%);z-index:2000;background:var(--navy);color:#fff;border-radius:var(--r);padding:14px 20px;display:flex;gap:14px;align-items:center;box-shadow:0 20px 40px -12px rgba(0,0,0,.4);max-width:min(440px,calc(100vw - 32px));transition:transform .4s var(--ease)}
#toast.show{transform:translate(-50%,0)}
#toast .tic{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--lime);color:var(--deep);display:grid;place-items:center;font-weight:800}
#toast.err .tic{background:#F4A58A}
#toast b{display:block;font:600 15px var(--sans);color:#fff}
#toast small{font-size:13px;color:var(--on-dark)}
#toTop{position:fixed;bottom:24px;right:24px;z-index:1400;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:18px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .25s,visibility .25s,background-color .2s;box-shadow:var(--sh);display:grid;place-items:center}
#toTop.show{opacity:1;visibility:visible;transform:none}
#toTop:hover{background:var(--navy);color:#fff}
.float-chat{position:fixed;bottom:84px;z-index:1390;display:flex;flex-direction:column;gap:10px}
.float-chat.right{right:20px}.float-chat.left{left:20px;bottom:24px}
.float-chat a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px -6px rgba(11,61,46,.45);transition:transform .25s var(--ease);position:relative}
.float-chat a:hover{transform:scale(1.08)}
.float-chat a svg{width:24px;height:24px}
.float-chat a .tip{position:absolute;white-space:nowrap;background:var(--navy);color:#fff;font:500 12.5px var(--sans);padding:6px 12px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s;top:50%;transform:translateY(-50%)}
.float-chat.right a .tip{right:58px}.float-chat.left a .tip{left:58px}
.float-chat a:hover .tip{opacity:1}
.fc-phone{background:var(--leaf-d)}.fc-zalo{background:#0068FF}.fc-messenger{background:#0A7CFF}.fc-whatsapp{background:#1FA855}.fc-viber{background:#7360F2}.fc-telegram{background:#229ED9}.fc-email{background:#C0602F}

/* ============ TRANG CON ============ */
.page-hero{position:relative;background:var(--navy);color:var(--on-dark);padding:calc(var(--hh) + clamp(40px,5vw,72px)) 0 clamp(48px,6vw,80px);overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.09) 1.2px,transparent 0) 0 0/24px 24px;-webkit-mask:linear-gradient(90deg,transparent 30%,#000);mask:linear-gradient(90deg,transparent 30%,#000)}
.page-hero .container{position:relative;z-index:1}
.page-hero .kicker{color:var(--lime)}
.page-hero h1{font-size:clamp(2rem,1.3rem + 3vw,3.6rem);line-height:1.1;color:#fff;margin:16px 0;max-width:22ch}
.page-hero h1 em{font-style:italic;font-weight:500;color:var(--lime)}
.page-hero p.lead{font-size:1.125rem;max-width:62ch;color:var(--on-dark)}
.page-hero .meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:20px;font:500 13.5px var(--sans);color:var(--on-dark-2)}
.breadcrumbs{font:500 13px var(--sans);color:var(--on-dark-2);display:flex;flex-wrap:wrap;gap:6px 10px;margin-bottom:20px}
.breadcrumbs a{color:#DCE8F1}.breadcrumbs a:hover{color:var(--lime)}
.breadcrumbs .sep{opacity:.5}
.page-body{padding:clamp(48px,6vw,88px) 0 var(--sec);background:#fff}

.prose{font-size:1.0625rem;line-height:1.8;color:var(--text);max-width:72ch}
.prose>*+*{margin-top:1.1em}
.prose h2{font:600 clamp(1.6rem,1.3rem + 1vw,2.1rem)/1.2 var(--serif);color:var(--ink);margin-top:2em;scroll-margin-top:96px}
.prose h3{font:600 clamp(1.3rem,1.15rem + .5vw,1.5rem)/1.3 var(--serif);color:var(--ink);margin-top:1.8em;scroll-margin-top:96px}
.prose h4{font:600 1.05rem var(--sans);color:var(--ink);margin-top:1.5em}
.prose a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose a:hover{color:var(--navy)}
.prose a.kw-link{text-decoration-style:dotted;font-weight:500}
.prose ul,.prose ol{padding-left:1.4em}
.prose ul{list-style:none}
.prose ul li{position:relative;margin:.5em 0}
.prose ul li::before{content:"";position:absolute;left:-1.1em;top:.78em;width:6px;height:6px;background:var(--leaf);border-radius:50%}
.prose ol{list-style:decimal}.prose ol li{margin:.5em 0;padding-left:.3em}.prose ol li::marker{color:var(--leaf-d);font-weight:600}
.prose img{border-radius:var(--r);margin:1.6em auto}
.prose figure{margin:1.8em 0}.prose figcaption{font-size:.85rem;text-align:center;color:var(--mut);margin-top:8px}
.prose blockquote{border-left:3px solid var(--leaf);padding:4px 0 4px 24px;font:500 italic 1.25rem/1.6 var(--serif);color:var(--ink)}
.prose table{width:100%;border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:10px 14px;text-align:left}
.prose th{background:var(--bg-soft);color:var(--ink)}
.prose hr{border:0;height:1px;background:var(--line);margin:2.2em 0}
.prose strong{color:var(--ink);font-weight:600}
.prose iframe,.prose video{max-width:100%;border-radius:var(--r)}

.quick-answer{background:var(--blue-bg);border-left:3px solid var(--blue);border-radius:0 var(--r) var(--r) 0;padding:20px 24px;margin:0 0 32px}
.quick-answer .qa-label{display:block;font:700 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--link);margin-bottom:6px}
.quick-answer p{font-size:1.05rem;color:var(--ink);font-weight:500;margin:0;line-height:1.65}
.takeaways{background:var(--mint-bg);border-radius:var(--r);padding:24px 28px;margin:32px 0}
.takeaways h3{font:600 1.2rem var(--serif);color:var(--ink);margin:0 0 12px}
.takeaways ul{display:grid;gap:8px;padding:0}
.takeaways li{padding-left:26px;position:relative;font-size:.98rem;color:var(--ink)}
.takeaways li::before{content:"✓";position:absolute;left:0;color:var(--leaf-d);font-weight:700}
.toc{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r);padding:18px 24px;margin:0 0 32px}
.toc summary{cursor:pointer;font:700 12.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary::after{content:"▾";margin-left:8px;color:var(--mut)}
.toc ol{list-style:none;margin-top:12px;display:grid;gap:6px;counter-reset:t}
.toc li{counter-increment:t;font-size:.95rem}
.toc li a{color:var(--ink);display:flex;gap:10px}
.toc li a::before{content:counter(t) ".";color:var(--leaf-d);font-weight:600;min-width:22px}
.toc li.l3{padding-left:22px}
.toc li a:hover{color:var(--link)}
.sources{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.9rem}
.sources h3{font:700 12.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
.sources ol{list-style:decimal;padding-left:1.3em;display:grid;gap:6px}
.sources a{color:var(--link);text-decoration:underline;word-break:break-word}
.nx-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--navy);color:var(--on-dark);border-radius:var(--r);padding:24px 28px;margin:2em 0}
.nx-cta strong{display:block;font:600 1.2rem var(--serif);color:#fff;margin-bottom:4px}
.nx-cta p{font-size:.93rem;margin:0;color:var(--on-dark)}
.nx-cta .btn{flex:0 0 auto}
.author-box{display:flex;gap:20px;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:20px 24px;margin-top:40px}
.author-box .av{width:72px;height:72px;border-radius:50%;overflow:hidden;flex:0 0 72px;background:var(--navy);display:grid;place-items:center;color:var(--lime);font:600 22px var(--serif)}
.author-box .av img{width:100%;height:100%;object-fit:cover}
.author-box small{font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-d)}
.author-box b{display:block;font:600 1.2rem var(--serif);color:var(--ink)}
.author-box p{font-size:.9rem;margin:2px 0 0;color:var(--mut)}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.tags a,.tags span{font:500 13px var(--sans);background:var(--bg-soft);border:1px solid var(--line);padding:5px 14px;border-radius:99px;color:var(--ink)}
.tags a:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.share{display:flex;gap:10px;align-items:center;margin-top:28px;font:600 12.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.share a,.share button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);background:#fff;cursor:pointer;transition:background-color .2s,color .2s}
.share a:hover,.share button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.share svg{width:16px;height:16px}

.with-side{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,5vw,72px);align-items:start}
.side{position:sticky;top:calc(var(--hh) + 24px);display:grid;gap:20px}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.side-card h3{font:600 1.15rem var(--serif);color:var(--ink);margin-bottom:12px}
.side-card.cta{background:var(--navy);border-color:var(--navy);color:var(--on-dark)}
.side-card.cta h3{color:#fff}
.side-card.cta p{font-size:.93rem;margin-bottom:16px}
.side-list{display:grid}
.side-list a{display:flex;justify-content:space-between;gap:10px;font:500 14.5px/1.45 var(--sans);color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line-2)}
.side-list a:last-child{border-bottom:0}
.side-list a:hover{color:var(--link)}
.side-list small{color:var(--mut)}

.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.post-card:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:var(--sh)}
.post-card .thumb{aspect-ratio:16/10;background:linear-gradient(135deg,var(--forest),var(--leaf-d));position:relative;overflow:hidden;display:grid;place-items:center;color:rgba(255,255,255,.7)}
.post-card .thumb svg{width:44px;height:44px;stroke-width:1.2}
.post-cover{margin:0 0 28px}
.post-cover img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r);background:var(--bg-soft)}
.post-cover figcaption{margin-top:8px;font-size:.78rem;color:var(--muted,#5b6f7e);text-align:right}
.post-card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.post-card:hover .thumb img{transform:scale(1.04)}
.post-card .body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.chip{display:inline-block;font:700 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--leaf-d);align-self:flex-start;margin-bottom:10px}
.post-card h3{font:600 1.2rem/1.3 var(--serif);margin-bottom:10px}
.post-card p{font-size:.92rem;flex:1;margin-bottom:16px;color:var(--text)}
.post-card .meta{font:500 12.5px var(--sans);color:var(--mut);display:flex;gap:14px;flex-wrap:wrap}
.post-card.feature{grid-column:span 2;flex-direction:row}
.post-card.feature .thumb{flex:0 0 52%;aspect-ratio:auto;min-height:280px}
.post-card.feature h3{font-size:1.5rem}
.cat-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:32px}
.cat-pills a{padding:9px 18px;border-radius:99px;border:1px solid var(--line);font:500 14px var(--sans);color:var(--ink);transition:background-color .2s,color .2s,border-color .2s}
.cat-pills a:hover{border-color:var(--navy)}
.cat-pills a.active{background:var(--navy);border-color:var(--navy);color:#fff}
.search-form{display:flex;gap:10px;max-width:520px;margin:0 0 24px}
.search-form input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:12px 18px;font:400 1rem var(--sans);outline:none;background:#fff;min-height:48px}
.search-form input:focus{border-color:var(--navy)}
.pagination{display:flex;gap:6px;justify-content:center;margin-top:48px;flex-wrap:wrap}
.pagination a,.pagination span{min-width:44px;height:44px;border-radius:var(--r-sm);display:grid;place-items:center;border:1px solid var(--line);font:600 14px var(--sans);color:var(--ink);padding:0 14px}
.pagination a:hover{border-color:var(--navy)}
.pagination .cur{background:var(--navy);border-color:var(--navy);color:#fff}
.pagination .gap{border:0}
.empty{text-align:center;padding:64px 20px;color:var(--mut)}
.empty .em{font-size:0;margin-bottom:8px}.empty .em svg{width:44px;height:44px;margin:0 auto;color:var(--leaf)}
.empty h3{font:600 1.3rem var(--serif);color:var(--ink);margin-bottom:6px}

.dest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.dcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.dcard:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:var(--sh)}
.dcard .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.dcard h3{font:600 1.5rem/1.2 var(--serif);margin-bottom:10px}
.dcard p{font-size:.95rem;margin-bottom:14px}
.dcard ul{display:grid;gap:8px;margin-bottom:20px;padding-top:14px;border-top:1px solid var(--line-2)}
.dcard li{font-size:.9rem;display:flex;gap:10px;color:var(--ink)}
.dcard li::before{content:"";flex:0 0 6px;height:6px;margin-top:9px;background:var(--leaf);border-radius:50%}
.blink{margin-top:auto;font:600 14px var(--sans);color:var(--link);display:inline-flex;align-items:center;gap:8px}
.blink::after{content:"→"}.blink .ln{display:none}

.mentor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.mcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.mcard:hover{border-color:var(--navy);transform:translateY(-3px);box-shadow:var(--sh)}
.mcard .ph{aspect-ratio:4/4.4;background:linear-gradient(150deg,var(--navy),var(--forest-2));position:relative;overflow:hidden;display:grid;place-items:center;color:var(--lime);font:600 3rem var(--serif)}
.mcard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.mcard:hover .ph img{transform:scale(1.04)}
.mcard .info{padding:18px 20px 22px;display:flex;flex-direction:column;gap:2px}
.mcard h3{font:600 1.15rem var(--serif);color:var(--ink)}
.mcard .role{font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--leaf-d)}
.mcard .ctry{font-size:.85rem;color:var(--mut)}
.mentor-hero{display:grid;grid-template-columns:320px minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.mentor-photo{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;background:linear-gradient(150deg,var(--navy),var(--forest-2));display:grid;place-items:center;color:var(--lime);font:600 4.5rem var(--serif)}
.mentor-photo img{width:100%;height:100%;object-fit:cover}
.fact-list{display:grid;margin:0 0 20px;border-top:1px solid var(--line)}
.fact-list li{display:grid;grid-template-columns:140px 1fr;gap:12px;font-size:.95rem;padding:12px 0;border-bottom:1px solid var(--line)}
.fact-list b{color:var(--ink);font-weight:600}

.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,4vw,56px);align-items:start}
.contact-cards{display:grid;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ccard{display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:center;padding:18px 22px;background:#fff;transition:background-color .2s}
.ccard+.ccard{border-top:1px solid var(--line)}
a.ccard:hover{background:var(--bg-soft)}
.ccard .ic{width:48px;height:48px;border-radius:12px;background:var(--mint-bg);display:grid;place-items:center;color:var(--leaf-d)}
.ccard .ic svg{width:22px;height:22px}
.ccard small{display:block;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mut)}
.ccard b{font:600 1.05rem var(--sans);color:var(--ink);word-break:break-word}
.map-box{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);margin-top:20px;aspect-ratio:16/10;background:var(--bg-soft)}
.map-box iframe{width:100%;height:100%;border:0}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,3.5vw,44px)}
.form-card h2{font:600 clamp(1.5rem,1.3rem + .6vw,1.9rem)/1.25 var(--serif);color:var(--ink);margin-bottom:8px}
.form-card>p{margin-bottom:24px;color:var(--mut)}
.flash{max-width:1200px;width:calc(100% - 48px);margin:calc(var(--hh) + 16px) auto -60px;position:relative;z-index:30;border-radius:var(--r-sm);padding:14px 20px;font-weight:600}
.flash.success{background:#E4F4EB;color:#14633B;border:1px solid #B5E3C5}
.flash.error{background:#FDECEA;color:#9B2C1F;border:1px solid #F5C2BB}
.nf{min-height:80svh;display:grid;place-items:center;text-align:center;padding:calc(var(--hh) + 48px) 24px 80px}
.nf .big{font:600 clamp(5rem,16vw,10rem)/1 var(--serif);color:var(--navy);letter-spacing:-.04em}
.nf h1{font:600 1.7rem var(--serif);color:var(--ink);margin:6px 0 10px}
.nf p{max-width:46ch;margin:0 auto}
.nf .btn{margin-top:26px}

/* ============ RESPONSIVE ============ */
@media (max-width:1100px){
  .nav{display:none}.burger{display:block}
  .hero-grid{grid-template-columns:1fr}
  .hero-vis{max-width:560px}
  .about-grid,.green-grid,.faq-split,.reg,.contact-grid{grid-template-columns:1fr}
  .faq-split .sticky{position:static}
  .dest-grid2,.prog-grid,.post-grid,.dest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}
  .steps::before{display:none}
  .fgrid-t{grid-template-columns:1fr 1fr}
  .with-side{grid-template-columns:1fr}.side{position:static}
  .mentor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mentor-hero{grid-template-columns:240px 1fr}
}
@media (max-width:760px){
  :root{--hh:68px}
  .container,.container-narrow{width:calc(100% - 32px)}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:22px 16px}
  .stat:nth-child(odd){border-left:0;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .svc-grid{grid-template-columns:1fr}
  .svc:nth-child(odd){border-right:0}
  .svc+.svc{border-top:1px solid var(--line)}
  .svc{grid-template-columns:48px 1fr;gap:16px}
  .svc .ico{width:48px;height:48px}
  .dest-grid2,.prog-grid,.post-grid,.dest-grid,.fgrid,.fgrid-t,.mentor-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step{display:grid;grid-template-columns:54px 1fr;column-gap:16px;padding:0}
  .step .n{margin:0}
  .nav-actions .btn{display:none}
  .hero-cta .btn{flex:1 1 100%}
  .route-cap b{font-size:1.2rem}
  .nx-cta{flex-direction:column;align-items:flex-start}
  .post-card.feature{grid-column:span 1;flex-direction:column}
  .post-card.feature .thumb{flex:none;min-height:0;aspect-ratio:16/10}
  .mentor-hero{grid-template-columns:1fr}.mentor-photo{max-width:280px}
  .author-box{flex-direction:column;text-align:center}
  .fact-list li{grid-template-columns:110px 1fr}
  .faq-a p{padding-right:0}
  .float-chat a{width:46px;height:46px}
  .float-chat.right{right:14px;bottom:78px}.float-chat.left{left:14px;bottom:18px}
  #toTop{right:14px;bottom:18px}
  .dest-cta{padding:24px}
  .f-bot{flex-direction:column;align-items:flex-start}
}
/* ============ TRANG GIỚI THIỆU ============ */
.ab-hero{position:relative;background:var(--navy);color:var(--on-dark);padding:calc(var(--hh) + clamp(36px,5vw,72px)) 0 0;overflow-x:clip;overflow-y:visible;isolation:isolate}
.ab-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 70% at 85% 40%,rgba(47,163,107,.28),transparent 70%),radial-gradient(40% 50% at 10% 100%,rgba(37,104,150,.35),transparent 70%)}
.ab-stars{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.ab-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.5;animation:tw 3.6s ease-in-out infinite;animation-delay:var(--s,0s)}
.ab-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:center;padding-bottom:clamp(56px,7vw,96px)}
.ab-hero .breadcrumbs{margin-bottom:20px}
.ab-hero .kicker{color:var(--lime)}
.ab-hero h1{font:600 clamp(2.3rem,1.3rem + 3.6vw,4.2rem)/1.06 var(--serif);letter-spacing:-.025em;color:#fff;margin:18px 0 20px;text-wrap:balance}
.ab-hero h1 em{font-style:italic;font-weight:500;color:var(--lime)}
.ab-hero .lead{font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;max-width:56ch;color:var(--on-dark);margin-bottom:30px}
.ab-hero .hero-cta{margin-bottom:0}
.ab-hero .btn-ghost,.ab-end .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.ab-hero .btn-ghost:hover,.ab-end .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.ab-orbit{position:relative;width:min(100%,480px);aspect-ratio:1;margin:0 auto}
.o-core{position:absolute;inset:34%;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:4px;background:radial-gradient(circle at 35% 30%,#2FA36B,#14324C 72%);box-shadow:0 0 0 10px rgba(200,241,105,.08),0 0 60px rgba(47,163,107,.45);color:#fff;animation:sunPulse 5s ease-in-out infinite}
.o-core svg{width:34%;height:auto;max-width:44px}
.o-core b{font:700 clamp(.62rem,1.4vw,.8rem)/1 var(--sans);letter-spacing:.22em}
@keyframes sunPulse{50%{transform:scale(1.05)}}
.o-ring{position:absolute;border-radius:50%;border:1px dashed rgba(255,255,255,.28);left:50%;top:50%;translate:-50% -50%}
.o-ring.r1{width:100%;height:100%;animation:orb 36s linear infinite}
.o-ring.r2{width:74%;height:74%;border-color:rgba(200,241,105,.4)}
.o-ring.r3{width:52%;height:52%;border-style:solid;border-color:rgba(255,255,255,.1)}
@keyframes orb{to{rotate:360deg}}
.o-sat{position:absolute;left:50%;top:0;translate:-50% -50%;width:clamp(26px,6vw,34px);height:clamp(26px,6vw,34px);border-radius:50%;background:var(--lime);color:var(--navy);display:grid;place-items:center;rotate:90deg;box-shadow:0 0 0 6px rgba(200,241,105,.18)}
.o-sat svg{width:60%;height:60%;stroke:var(--navy)}
.o-node{position:absolute;inset:0;transform:rotate(var(--a))}
.o-node i{position:absolute;left:50%;top:0;translate:-50% -50%;transform:rotate(calc(-1*var(--a)));width:clamp(34px,8vw,46px);height:clamp(34px,8vw,46px);border-radius:50%;display:grid;place-items:center;font:700 clamp(.62rem,1.6vw,.78rem) var(--sans);font-style:normal;color:var(--navy);background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.3)}
.o-node i::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid var(--lime);opacity:0;animation:ping 3.2s ease-out infinite;animation-delay:calc(var(--a)/120)}
.ab-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:var(--r);box-shadow:0 30px 60px -28px rgba(11,61,46,.55);margin-bottom:-56px;color:var(--ink)}
.ab-stat{padding:clamp(22px,3vw,34px) clamp(18px,2.4vw,32px);border-left:1px solid var(--line);text-align:left}
.ab-stat:first-child{border-left:0}
.ab-stat .n{font:600 clamp(2rem,1.4rem + 2.2vw,3.2rem)/1 var(--serif);letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums}
.ab-stat .n i{font-style:normal;color:var(--leaf-d);margin-left:2px}
.ab-stat .l{margin-top:8px;font:500 13.5px/1.4 var(--sans);color:var(--mut)}
.ab-hero+.band{padding-top:calc(var(--sec) + 56px)}

.mv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.mv-card{position:relative;padding:clamp(28px,4vw,52px);border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.mv-card::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(47,163,107,.14),transparent 70%)}
.mv-dark{background:var(--navy);border-color:var(--navy);color:var(--on-dark)}
.mv-dark::after{background:radial-gradient(circle,rgba(200,241,105,.18),transparent 70%)}
.mv-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--bg-soft);color:var(--leaf-d);margin-bottom:22px}
.mv-dark .mv-ico{background:rgba(200,241,105,.14);color:var(--lime)}
.mv-ico svg{width:26px;height:26px}
.mv-card h2{font:600 clamp(1.5rem,1.2rem + 1vw,2rem)/1.2 var(--serif);margin-bottom:14px;color:var(--ink)}
.mv-dark h2{color:#fff}
.mv-card p{font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;margin:0;max-width:44ch;text-wrap:pretty}

.pil-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.pil{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,2.6vw,36px);transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.pil:hover{transform:translateY(-4px);border-color:var(--navy);box-shadow:var(--sh)}
.pil-no{position:absolute;right:22px;top:18px;font:600 .85rem var(--sans);letter-spacing:.1em;color:var(--mut)}
.pil .ico{margin-bottom:20px}
.pil h3{font:600 1.3rem/1.25 var(--serif);margin-bottom:10px;text-wrap:balance}
.pil p{font-size:.95rem;margin:0;color:var(--text);text-wrap:pretty}

.phases{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));position:relative;margin:0;padding:0;list-style:none}
.phases::before{content:"";position:absolute;left:0;right:0;top:51px;height:2px;background:linear-gradient(90deg,var(--leaf),var(--link));transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease)}
.phases.on::before{transform:scaleX(1)}
.phase{position:relative;padding:0 18px 0 0}
.ph-when{display:block;font:600 12.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--leaf-d);margin-bottom:16px;height:20px}
.ph-dot{display:block;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--leaf);margin-bottom:24px;position:relative;z-index:1;box-shadow:0 0 0 6px #fff}
.phase.on .ph-dot{animation:numPop .6s var(--ease) both;animation-delay:calc(var(--d,0s) + .2s)}
.phase h4{font:600 1.25rem/1.25 var(--serif);margin-bottom:6px}
.phase p{font-size:.92rem;margin:0;color:var(--text)}

.ab-net{padding:var(--sec) 0}
.net-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(32px,4vw,52px)}
.net-head p{margin:0;color:var(--on-dark)}
.net-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(255,255,255,.14);border-radius:var(--r);overflow:hidden}
.net-tile{outline:1px solid rgba(255,255,255,.14);outline-offset:-.5px}
.net-tile:last-child:nth-child(3n+1){grid-column:1/-1}
.net-tile{position:relative;display:grid;gap:4px;padding:clamp(22px,2.6vw,34px);background:var(--navy);transition:background-color .3s}
.net-tile:hover{background:var(--forest-2)}.net-tile:nth-child(even):hover{background:var(--ocean-2)}
.net-code{font:600 clamp(2.6rem,2rem + 2.6vw,4.2rem)/1 var(--serif);letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1.5px rgba(200,241,105,.7);transition:color .3s}
.net-tile:hover .net-code{color:var(--lime)}
.net-name{font:600 1.15rem var(--serif);color:#fff;margin-top:10px}
.net-reg{font:500 .85rem var(--sans);color:#9DB6C7}
.net-go{position:absolute;right:22px;bottom:20px;color:var(--lime);transition:transform .3s var(--ease)}
.net-tile:hover .net-go{transform:translateX(5px)}

.commit-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,96px);align-items:start}
.commit-side{position:sticky;top:calc(var(--hh) + 24px)}
.commit-moit{margin-top:28px}
.commit-list{border-top:1px solid var(--line)}
.commit{display:grid;grid-template-columns:56px 1fr;gap:22px;padding:clamp(22px,2.6vw,32px) 0;border-bottom:1px solid var(--line)}
.c-no{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--navy);color:var(--lime);font:600 1.15rem var(--serif);transition:transform .4s var(--ease)}
.commit:hover .c-no{transform:rotate(-8deg) scale(1.08)}
.commit h3{font:600 1.3rem/1.25 var(--serif);margin-bottom:6px}
.commit p{margin:0;font-size:.97rem}

.partner-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0;padding:0;list-style:none}
.partner-row li{padding:14px 24px;border:1px solid var(--line);border-radius:99px;background:#fff;font:600 .95rem var(--sans);color:var(--navy)}

.ab-quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.ab-quote{margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:22px;padding:clamp(24px,2.6vw,34px);border:1px solid var(--line);border-radius:var(--r);background:#fff}
.ab-quote blockquote{margin:0;font:500 1.08rem/1.65 var(--serif);color:var(--ink);text-wrap:pretty}
.ab-quote figcaption{display:flex;align-items:center;gap:12px}
.ab-quote .av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--blue-bg);color:var(--navy);font:700 .8rem var(--sans)}
.ab-quote b{display:block;font:600 .95rem var(--sans);color:var(--ink)}
.ab-quote small{font-size:.82rem;color:var(--mut)}

.ab-end{position:relative;padding:clamp(64px,9vw,120px) 0;text-align:center;overflow:hidden;background:linear-gradient(135deg,var(--forest),var(--deep))}
.ab-end>.container{position:relative;z-index:1}
.ab-end .sec-title{color:#fff;max-width:20ch;margin:0 auto 16px}
.ab-end .sec-title em{color:var(--lime)}
.ab-end p{color:var(--on-dark);max-width:52ch;margin:0 auto 28px}

@media (max-width:1100px){
  .ab-hero-grid{grid-template-columns:1fr}
  .ab-orbit{width:min(100%,380px)}
  .ab-stats{grid-template-columns:repeat(2,1fr)}
  .ab-stat:nth-child(3){border-left:0}
  .ab-stat:nth-child(n+3){border-top:1px solid var(--line)}
  .pil-grid,.net-grid,.ab-quotes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .net-tile:last-child:nth-child(3n+1){grid-column:auto}
  .net-tile:last-child:nth-child(2n+1){grid-column:1/-1}
  .phases{grid-template-columns:1fr;gap:6px}
  .phases::before{left:9px;right:auto;top:0;bottom:0;width:2px;height:auto;transform:scaleY(0);transform-origin:top}
  .phases.on::before{transform:scaleY(1)}
  .phase{display:grid;grid-template-columns:20px 1fr;column-gap:20px;padding:0 0 26px}
  .ph-when{grid-column:2;grid-row:1;height:auto;margin:0 0 4px}
  .ph-dot{grid-column:1;grid-row:1 / span 3;margin:0;box-shadow:0 0 0 4px #fff}
  .phase h4,.phase p{grid-column:2}
  .commit-grid,.net-head{grid-template-columns:1fr}
  .commit-side{position:static}
}
@media (max-width:760px){
  .ab-stats{margin-bottom:-40px}
  .ab-hero+.band{padding-top:calc(var(--sec) + 40px)}
  .mv-grid,.pil-grid,.ab-quotes{grid-template-columns:1fr}
  .net-grid{grid-template-columns:1fr 1fr}
  .net-code{font-size:2.4rem}
  .commit{grid-template-columns:44px 1fr;gap:16px}
}
@media (prefers-reduced-motion:reduce){.o-ring.r1,.o-core,.o-node i::after,.ab-stars i{animation:none}}

/* ============ CHUYỂN ĐỘNG (v2.1) ============
   Chỉ transform/opacity (chạy trên GPU), vòng lặp chỉ ở vùng nhỏ; tắt hết khi người dùng chọn "giảm chuyển động". */
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes floaty{50%{transform:translateY(-8px)}}
@keyframes tw{50%{opacity:.15;transform:scale(.55)}}
@keyframes cloud{from{transform:translateX(-120px)}to{transform:translateX(640px)}}
@keyframes flow{to{stroke-dashoffset:-18}}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes cross{from{transform:translate3d(-80px,0,0) rotate(-6deg)}to{transform:translate3d(calc(100vw + 80px),-30px,0) rotate(-6deg)}}
@keyframes bobi{50%{transform:translateY(-5px) rotate(-4deg)}}
@keyframes shine{to{transform:translateX(260%) skewX(-18deg)}}
@keyframes numPop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}

/* Hero: tiêu đề trồi lên từng dòng, phần còn lại hiện nối tiếp */
.hl-line{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hl-line>span{display:inline-block;animation:rise .8s var(--ease) both}
.hl-line:nth-child(2)>span{animation-delay:.12s}
.hero-grid>div:first-child>:is(.hero-pill,.hero-sub,.hero-cta,.hero-trust){animation:fadeUp .7s var(--ease) both}
.hero-pill{animation-delay:.05s!important}.hero-sub{animation-delay:.3s!important}.hero-cta{animation-delay:.42s!important}.hero-trust{animation-delay:.54s!important}
.hero-vis{animation:fadeUp .9s var(--ease) .2s both}
.route-card{animation:floaty 9s ease-in-out 1s infinite}
.avs span{animation:bobi 5s ease-in-out infinite}
.avs span:nth-child(2){animation-delay:.4s}.avs span:nth-child(3){animation-delay:.8s}.avs span:nth-child(4){animation-delay:1.2s}

/* Sơ đồ lộ trình: sao nhấp nháy, mây trôi, đường bay chảy, điểm đến bật ra */
.route-card .star{fill:#fff;transform-box:fill-box;transform-origin:center;animation:tw 3.4s ease-in-out infinite;animation-delay:var(--s,0s)}
.route-card .cloud{fill:rgba(255,255,255,.09);animation:cloud 38s linear infinite;animation-delay:var(--s,0s)}
.route-card .arc{animation:flow 1.6s linear infinite}
.route-card .node{transform-box:fill-box;transform-origin:center;animation:pop .6s var(--ease) both;animation-delay:calc(.5s + var(--i,0)*.14s)}
.route-card .plane{filter:drop-shadow(0 0 6px rgba(200,241,105,.7))}

/* Tiêu mục: gạch chân vẽ ra khi cuộn tới */
.rv .eyebrow::before,.rv.eyebrow::before{transform:scaleX(0);transform-origin:left;transition:transform .8s var(--ease) .2s}
.rv.on .eyebrow::before,.on .rv .eyebrow::before{transform:scaleX(1)}
.sec-title em{background:linear-gradient(var(--lime),var(--lime)) 0 92%/0 .28em no-repeat;transition:background-size .9s var(--ease) .45s}
.on .sec-title em,.sec-title.on em{background-size:100% .28em}
.band-dark .sec-title em{background-image:none}

/* Nhịp xuất hiện lần lượt cho lưới thẻ */
.rv:nth-child(2){--d:.07s}.rv:nth-child(3){--d:.14s}.rv:nth-child(4){--d:.21s}.rv:nth-child(5){--d:.28s}.rv:nth-child(6){--d:.35s}
.rv-z{transform:translateY(18px) scale(.96)}
.rv-z.on{transform:none}
@media (min-width:1101px){.rv-l{transform:translateX(-32px)}.rv-r{transform:translateX(32px)}.rv-l.on,.rv-r.on{transform:none}}

/* Thẻ: nâng lên, biểu tượng nhún, ảnh phóng nhẹ */
.dcard2,.prog,.svc,.post-card,.mcard{will-change:auto}
.dcard2:hover .ico,.svc:hover .ico,.pledge:hover .ico,.step:hover .n{animation:bobi .6s var(--ease)}
.prog:hover .pv svg{animation:bobi .8s var(--ease)}
.svc:hover{background:var(--bg-soft)}
.prog .pv svg,.dcard2 .ico{transition:transform .4s var(--ease)}
.pledge{transition:transform .3s var(--ease)}.pledge:hover{transform:translateX(6px)}

/* Nút: ánh sáng quét ngang khi rê chuột */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(0) skewX(-18deg);opacity:0;pointer-events:none}
.btn:hover::after{opacity:1;animation:shine .75s var(--ease)}
.btn-ghost::after{display:none}
.btn:active{transform:translateY(0) scale(.98)}

/* Quy trình: đường nối vẽ dần, số bật lên lần lượt */
.steps::before{transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease)}
.steps.on::before{transform:scaleX(1)}
.step .n{opacity:0}
.step.on .n{animation:numPop .6s var(--ease) both;animation-delay:calc(var(--d,0s) + .15s)}

/* Mảng xanh: sao nhấp nháy + máy bay bay ngang */
.band-dark{position:relative;overflow:hidden}
.band-dark>.container{position:relative;z-index:1}
.band-fx{position:absolute;inset:0;pointer-events:none;z-index:0}
.band-fx i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--lime);opacity:.5;animation:tw 3.6s ease-in-out infinite;animation-delay:var(--s,0s)}
.band-fx .fly{position:absolute;left:0;top:14%;width:28px;height:28px;opacity:.55;animation:cross 28s linear infinite;animation-play-state:paused}
.band-fx .fly svg{width:100%;height:100%;fill:var(--lime)}
.band-dark.on .band-fx .fly{animation-play-state:running}
.band-dark.on,.band-dark[data-io]{opacity:1;transform:none}

/* Trang con: nền chấm trôi nhẹ + máy bay lướt qua tiêu đề */
.page-hero::before{inset:-24px;animation:dots 16s linear infinite}
@keyframes dots{to{transform:translate(24px,24px)}}
.page-hero::after{content:"";position:absolute;left:0;top:26%;width:26px;height:26px;opacity:.4;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C8F169'%3E%3Cpath d='M22 2L2 10l7 3 3 7z'/%3E%3C/svg%3E") center/contain no-repeat;animation:cross 34s linear infinite}

/* Cuộn: hero trôi chậm hơn nền (chỉ trình duyệt hỗ trợ scroll-driven, chạy trên GPU) */
@supports (animation-timeline:scroll()){
  @keyframes par{to{transform:translateY(36px)}}
  .hero-vis{animation:fadeUp .9s var(--ease) .2s both,par linear both;animation-timeline:auto,scroll(root block);animation-range:normal,0 640px}
}

/* Chuyển trang mượt (Chrome/Edge/Safari mới; trình duyệt khác bỏ qua) */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}

/* Ô nhập: viền sáng khi focus */
input,textarea,select{transition:border-color .2s,box-shadow .2s}
input:focus,textarea:focus,select:focus{box-shadow:0 0 0 4px rgba(47,163,107,.2)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .rv,.step .n{opacity:1;transform:none}
  .steps::before{transform:none}
  .band-fx .fly,.page-hero::after{display:none}
}


/* ============ XANH DƯƠNG LOGO — điểm nhấn xen kẽ (xanh lá vẫn là chủ đạo) ============ */
.stat:nth-child(even) .stat-num,.ab-stat:nth-child(even) .n{color:var(--blue)}
.svc:nth-child(even) .ico,.pil:nth-child(even) .ico{background:var(--blue-bg);color:var(--link)}
.dcard2:nth-child(3n+2) .bflag,.dcard:nth-child(3n+2) .bflag{background:var(--ocean)}
.step:nth-child(even) .n{color:var(--blue);border-color:var(--blue-l)}
.step:nth-child(even):hover .n{background:var(--ocean);border-color:var(--ocean);color:#fff}
.net-tile:nth-child(even){background:var(--ocean)}
.mcard:nth-child(even) .ph{background:linear-gradient(150deg,var(--ocean),var(--ocean-2))}
.mcard:nth-child(even):hover,.dcard:nth-child(even):hover,.dcard2:nth-child(even):hover,.prog:nth-child(even):hover,.pil:nth-child(even):hover{border-color:var(--blue)}
.band-blue{background:var(--blue-bg)}

/* ============ ĐỘI NGŨ MENTOR (EM Scholarship Holder) ============ */
.mteam{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,64px);align-items:start;margin-bottom:clamp(36px,5vw,64px)}
.mteam-badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:99px;background:var(--forest);color:var(--lime);font:700 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px}
.mteam-badge svg{width:18px;height:18px}
.mteam-title{font:600 clamp(1.7rem,1.3rem + 1.6vw,2.6rem)/1.15 var(--serif);color:var(--ink);margin-bottom:16px}
.mteam-title em,.mteam .sec-title em{font-style:italic;color:var(--leaf-d)}
.mteam-lead{font-size:1.05rem;line-height:1.75;color:var(--text);max-width:52ch;text-wrap:pretty}
.mteam-cta{margin-top:28px;display:grid;gap:10px;justify-items:start}
.mteam-cta small{color:var(--mut);font-size:.88rem}
.mteam-caps{display:grid;gap:14px}
.mteam-caps li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:18px;padding:22px 24px 22px 22px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--leaf);border-radius:var(--r);transition:transform .3s var(--ease),box-shadow .3s}
.mteam-caps li:nth-child(even){border-left-color:var(--blue)}
.mteam-caps li:nth-child(even) .ico{background:var(--blue-bg);color:var(--link)}
.mteam-caps li:hover{transform:translateX(4px);box-shadow:var(--sh)}
.mteam-caps h4{font:600 1.08rem/1.35 var(--serif);color:var(--ink);margin-bottom:4px}
.mteam-caps p{font-size:.94rem;line-height:1.65;color:var(--text);margin:0}
.mteam-n{position:absolute;right:18px;top:12px;font:600 .8rem var(--serif);color:var(--line);letter-spacing:.06em}
@media (max-width:900px){.mteam{grid-template-columns:1fr}}

/* ============ PHIẾU TƯ VẤN 1:1 ============ */
.form-lead{margin:0 0 18px;font-size:.95rem;line-height:1.6;color:var(--text)}
.form-lead b{color:var(--ink)}
fieldset.opts{border:0;padding:0;margin:0;min-width:0;display:grid;gap:8px}
fieldset.opts legend{font:600 13px var(--sans);color:var(--ink);padding:0;margin-bottom:8px}
.opt{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:#fff;cursor:pointer;font:400 .95rem/1.45 var(--sans);transition:border-color .2s,background-color .2s}
.opt:hover{border-color:var(--leaf)}
.opt input{appearance:auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--leaf-d);flex:0 0 18px;padding:0;box-shadow:none}
.opt:has(input:checked){border-color:var(--leaf);background:var(--mint-bg)}

/* ============ CHUYỂN NGÔN NGỮ ============ */
.lang-sw{display:inline-grid;place-items:center;min-width:44px;height:36px;padding:0 12px;border-radius:99px;border:1.5px solid var(--line);font:700 12.5px var(--sans);letter-spacing:.08em;color:var(--ink);transition:border-color .2s,background-color .2s,color .2s}
.lang-sw:hover{border-color:var(--blue);background:var(--blue-bg);color:var(--link)}
#header:not(.solid):not(.scrolled) .lang-sw{border-color:var(--line)}
.lang-sw-m{margin:6px 0 14px;justify-self:start;color:#fff;border-color:rgba(255,255,255,.35);height:40px}
.lang-sw-m:hover{color:var(--ocean);background:#fff}
.fld.opts .opt{display:flex;flex-direction:row;align-items:center;gap:12px;font:400 .95rem/1.4 var(--sans);color:var(--ink);padding:11px 14px;margin:0}
.fld.opts .opt input{width:18px;height:18px;margin:0;flex:0 0 18px;padding:0;border:0;box-shadow:none}
.fld.opts .opt span{flex:1;display:block}
#header .nav-wrap{width:min(1240px,calc(100% - 48px))}
.brand{flex:0 0 auto}

/* ======================================================================
   GIAO DIỆN XANH LÁ THEO FILE DEMO (Nexus-demo): nền kem, mảng bo lớn,
   thẻ số liệu xanh rừng chữ chanh, nút/menu/chân trang đúng bảng màu demo.
   Xanh dương chỉ còn là điểm nhấn nhỏ xen kẽ.
   ====================================================================== */
:root{--text:#5F7A6C;--r:24px;--r-lg:32px;--sh:0 14px 38px rgba(11,61,46,.10);--sh-l:0 30px 64px rgba(11,61,46,.18);--cream:#F6F8F0;--deep-2:#052018;--bg-soft:#F6F8F0;--spring:cubic-bezier(.34,1.56,.64,1)}
body{background:var(--cream);color:var(--mut)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--leaf),var(--mint));border-radius:99px;border:2px solid var(--cream)}
.band{background:#fff}
.band-soft{background:var(--cream)}
.sec-sub,.hero-sub{color:var(--mut)}
/* Nhãn nhỏ: lá xanh như demo */
.eyebrow,.kicker{font-weight:700;letter-spacing:.24em;color:var(--leaf-d)}
.eyebrow::before{width:13px;height:13px;flex:0 0 13px;background:linear-gradient(135deg,var(--leaf),var(--mint));border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.hero-pill{background:#fff;border:1px solid var(--line);box-shadow:var(--sh);border-radius:999px;padding:9px 20px;font-weight:700;letter-spacing:.12em;color:var(--leaf-d)}
.hero-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--lime-d);animation:blink 1.8s infinite}
@keyframes blink{50%{opacity:.35}}
.band-dark .eyebrow,.band-dark .kicker,.reg-info .kicker,.page-hero .kicker,.ab-hero .kicker{color:var(--mint)}
/* Header */
#header.scrolled,#header.solid{background:rgba(246,248,240,.9);box-shadow:0 6px 26px rgba(11,61,46,.08);border-bottom-color:transparent}
.nav a{font-weight:600;letter-spacing:.04em}
.nav a.active,.nav a:hover{color:var(--leaf-d)}
.nav a::after{background:linear-gradient(90deg,var(--leaf),var(--mint))!important}
.brand .mark{background:var(--ocean);border-radius:16px 18px 16px 20px;box-shadow:0 8px 20px rgba(11,61,46,.28);transition:transform .4s var(--spring)}
.brand:hover .mark{transform:rotate(-8deg) scale(1.06)}
#mmenu{background:linear-gradient(160deg,var(--forest),var(--deep))}
/* Nút */
.btn{border-radius:999px;font-weight:700;font-size:13.5px;letter-spacing:.06em;padding:17px 32px;transition:all .35s var(--ease)}
.btn-sm{padding:13px 24px;font-size:12.5px}
.btn-forest{background:var(--forest);color:#EFF8EE}
.btn-forest:hover{background:var(--leaf-d);transform:translateY(-3px);box-shadow:0 16px 34px rgba(31,122,79,.35)}
.btn-lime:hover{background:var(--lime-d);transform:translateY(-3px);box-shadow:0 16px 34px rgba(168,217,74,.45)}
.btn-ghost{border:1.5px solid rgba(18,41,31,.25)}
.btn-ghost:hover{border-color:var(--leaf);color:var(--leaf-d);transform:translateY(-3px)}
/* Hero */
.hero{background:radial-gradient(820px 480px at 90% -8%,rgba(143,227,180,.4),transparent 60%),radial-gradient(640px 420px at -10% 45%,rgba(200,241,105,.28),transparent 60%),radial-gradient(500px 380px at 55% 110%,rgba(154,216,232,.25),transparent 60%),var(--cream)}
.avs span{border:2.5px solid var(--cream);color:var(--deep)}
.av-1{background:var(--lime)}.av-2{background:var(--mint)!important}.av-3{background:#FFD166!important}.av-4{background:#E8824F!important;color:#fff}
.route-card{background:linear-gradient(155deg,var(--forest),var(--deep));border-radius:44px 36px 44px 40px;box-shadow:var(--sh-l)}
/* Thẻ số liệu: xanh rừng, chữ chanh */
.stats{background:linear-gradient(135deg,var(--forest),var(--forest-2));border:0;border-radius:40px;box-shadow:0 26px 56px rgba(11,61,46,.3);padding:30px 14px;margin:8px auto 0;max-width:1040px}
.stat,.stat:first-child{padding:6px 12px;border-left:0;text-align:center;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:22%;height:56%;width:1px;background:rgba(255,255,255,.14)}
.stat-num,.stat:nth-child(even) .stat-num{color:var(--lime)}
.stat-num i{color:var(--mint);font-style:italic;font-size:.7em}
.stat-label{margin-top:9px;font:600 11.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#BFE3CB}
.hero-grid{padding-bottom:clamp(36px,5vw,64px)}
.hero+section.band,#about{padding-top:clamp(56px,7vw,96px)}
/* Mảng bo lớn: dịch vụ, quy trình, đăng ký (mint) — xanh rừng (green/dark) */
#services,#process,#register{background:var(--mint-bg);border-radius:56px;margin:26px 0}
.band-dark,#green{background:linear-gradient(155deg,var(--forest),var(--deep) 65%);color:var(--on-dark)}
#process.band-soft,#register.band-tint{background:var(--mint-bg)}
/* Thẻ & hover */
.dcard2,.dcard,.prog,.post-card,.mcard,.pil,.form-card,.side-card,.value-list,.svc-grid,.mv-card,.mteam-caps li{border-radius:var(--r)}
.dcard2:hover,.dcard:hover,.prog:hover,.post-card:hover,.mcard:hover,.pil:hover{border-color:rgba(47,163,107,.45);transform:translateY(-7px);box-shadow:var(--sh-l)}
.dcard2:nth-child(even):hover,.dcard:nth-child(even):hover,.prog:nth-child(even):hover,.mcard:nth-child(even):hover,.pil:nth-child(even):hover{border-color:rgba(47,163,107,.45)}
.svc-grid{border:0;background:transparent;gap:22px;border-radius:0;overflow:visible}
.svc,.svc:nth-child(odd){background:#fff;border:1px solid var(--line)!important;border-radius:32px;padding:36px 32px;transition:transform .45s var(--ease),box-shadow .45s,border-color .45s}
.svc:hover{transform:translateY(-8px);box-shadow:var(--sh-l);border-color:transparent!important}
.svc .ico{background:linear-gradient(135deg,var(--mint-bg),#fff);border:1.5px solid var(--line);border-radius:58% 42% 45% 55%/55% 48% 52% 45%;animation:blobm 16s ease-in-out infinite}
.svc:nth-child(even) .ico{background:linear-gradient(135deg,var(--mint-bg),#fff);color:var(--leaf-d)}
@keyframes blobm{0%,100%{border-radius:58% 42% 45% 55%/55% 48% 52% 45%}25%{border-radius:45% 55% 60% 40%/50% 60% 40% 50%}50%{border-radius:60% 40% 42% 58%/45% 42% 58% 55%}75%{border-radius:48% 52% 55% 45%/58% 45% 55% 42%}}
.ico{background:var(--mint-bg);color:var(--leaf-d)}
.ftab{border:1.5px solid var(--line);color:var(--mut);padding:11px 24px;font-weight:700;font-size:13px}
.ftab:hover{border-color:var(--leaf);color:var(--leaf-d)}
.ftab.active{background:var(--forest);border-color:var(--forest);color:var(--lime);box-shadow:var(--sh)}
.pbadge.eco{background:var(--lime);color:var(--deep)}
.pv-1{background:linear-gradient(140deg,#1E7A4F,#8FE3B4)}
.pv-3{background:linear-gradient(140deg,#0B3D2E,#C8F169)}
.pv-4{background:linear-gradient(140deg,#0F4C39,#2FA36B)}
.pv-6{background:linear-gradient(140deg,#072B20,#2FA36B)}
.step .n{border-color:var(--line)}
.step:hover .n{background:linear-gradient(135deg,var(--lime),var(--mint));border-color:transparent;color:var(--deep);box-shadow:0 14px 30px rgba(31,122,79,.35)}
.step:nth-child(even) .n{color:var(--leaf-d);border-color:var(--line)}
.step:nth-child(even):hover .n{background:linear-gradient(135deg,var(--lime),var(--mint));border-color:transparent;color:var(--deep)}
.avs span,.tav{border-radius:50% 46% 52% 48%}
.tav{background:var(--mint)!important;color:var(--deep)}.tav.a1{background:var(--lime)!important}.tav.a3{background:#FFD166!important}.tav.a4{background:#E8824F!important;color:#fff}
.tarrow:hover{background:var(--forest);border-color:var(--forest);color:var(--lime);transform:translateY(-3px)}
.tdot.active{background:var(--leaf)}
/* FAQ: thẻ bo như demo */
.faq-wrap{border-top:0;gap:14px;max-width:none}
.faq{background:#fff;border:1px solid var(--line);border-radius:26px;overflow:hidden;transition:border-color .35s,box-shadow .35s}
.faq.open{border-color:rgba(47,163,107,.45);box-shadow:var(--sh)}
.faq-q{padding:23px 28px;font-size:1.08rem}
.faq-x{flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:var(--mint-bg);border:1px solid var(--line);transition:transform .45s var(--ease),background .3s}
.faq-x::before,.faq-x::after{background:var(--leaf-d)!important}
.faq.open .faq-x{background:var(--forest);border-color:var(--forest);transform:rotate(45deg)}
.faq.open .faq-x::before,.faq.open .faq-x::after{background:var(--lime)!important}
.faq-a p{padding:0 62px 24px 28px;color:var(--mut)}
/* Đăng ký */
.reg{border-radius:48px;border:1px solid var(--line);box-shadow:var(--sh-l)}
.reg-info{background:linear-gradient(165deg,var(--forest),var(--deep))}
.reg-form{background:#fff}
.fld label{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.fld input,.fld select,.fld textarea{background:var(--cream);border-radius:16px;border-color:var(--line)}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--leaf);background:#fff;box-shadow:0 0 0 4px rgba(47,163,107,.12)}
.opt{border-radius:16px;background:var(--cream)}
.opt:has(input:checked){background:var(--mint-bg);border-color:var(--leaf)}
.fnote{color:var(--mut)}
/* Trang con & chân trang */
.page-hero,.ab-hero,.ab-end{background:linear-gradient(155deg,var(--forest),var(--deep) 70%)}
footer.site-footer{background:var(--deep-2);color:#8FB3A0;position:relative}
footer.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--lime),transparent)}
.f-col h4{font:600 17.5px var(--serif);letter-spacing:0;text-transform:none;color:#EAF6EC;padding-bottom:11px;position:relative}
.f-col h4::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--lime),var(--mint))}
.f-col a{color:#8FB3A0}.f-col a:hover{color:var(--lime)}
#toast{background:var(--forest)}
/* Điểm nhấn xanh dương: chỉ giữ nhỏ, xen kẽ */
.net-tile:nth-child(even){background:var(--ocean)}
.band-blue{background:#fff}
@media (max-width:760px){#services,#process,#register{border-radius:32px}.reg{border-radius:28px}.stats{border-radius:28px;max-width:none}.stat+.stat::before{display:none}}

/* ============ CHUYỂN NGÔN NGỮ: CỜ VIỆT NAM / ENGLISH ============ */
.lang-sw{display:none}
.lang-toggle{--w:50px;--h:36px;position:relative;display:inline-flex;align-items:center;padding:4px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid var(--line);box-shadow:0 6px 18px -8px rgba(11,61,46,.25),inset 0 1px 0 rgba(255,255,255,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lt-thumb{position:absolute;left:4px;top:4px;width:var(--w);height:var(--h);border-radius:999px;background:linear-gradient(135deg,var(--lime),var(--mint));box-shadow:0 6px 14px -4px rgba(47,163,107,.55);transition:transform .55s var(--spring);will-change:transform}
.lang-toggle[data-active="en"] .lt-thumb{transform:translateX(100%)}
.lang-toggle:has(.lt-item:nth-of-type(1):hover) .lt-thumb,.lang-toggle:has(.lt-item:nth-of-type(1):focus-visible) .lt-thumb{transform:translateX(0)}
.lang-toggle:has(.lt-item:nth-of-type(2):hover) .lt-thumb,.lang-toggle:has(.lt-item:nth-of-type(2):focus-visible) .lt-thumb{transform:translateX(100%)}
.lt-item{position:relative;z-index:1;display:grid;place-items:center;width:var(--w);height:var(--h);border-radius:999px;outline-offset:2px}
.lt-flag{position:relative;display:block;width:28px;height:19px;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px rgba(11,61,46,.14),0 3px 8px -2px rgba(11,61,46,.35);opacity:.55;filter:saturate(.55);transform:scale(.88);transition:opacity .35s var(--ease),filter .35s var(--ease),transform .5s var(--spring),box-shadow .35s}
.lt-flag svg{width:100%;height:100%;display:block}
.lt-flag::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);transform:translateX(-120%)}
.lt-item.is-active .lt-flag{opacity:1;filter:none;transform:scale(1);box-shadow:0 0 0 1.5px #fff,0 5px 12px -3px rgba(11,61,46,.45)}
.lt-item:hover .lt-flag,.lt-item:focus-visible .lt-flag{opacity:1;filter:none;transform:scale(1.1) rotate(-2deg)}
.lt-item:hover .lt-flag::after,.lt-item:focus-visible .lt-flag::after{transform:translateX(120%);transition:transform .8s var(--ease)}
.lt-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (hover:none){.lt-item.is-active .lt-flag{animation:none}}
/* Trong menu di động (nền xanh đậm) */
.lang-toggle--m{--w:auto;--h:48px;align-self:flex-start;margin:8px 0 6px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
.lang-toggle--m .lt-item{width:auto;padding:0 18px 0 12px;grid-auto-flow:column;gap:10px;display:flex;align-items:center;color:#EAF6EC;font:600 14px var(--sans)}
.lang-toggle--m .lt-name{position:static;width:auto;height:auto;clip:auto;overflow:visible}
.lang-toggle--m .lt-flag{width:30px;height:20px}
.lang-toggle--m .lt-thumb{width:50%;height:calc(100% - 8px);background:linear-gradient(135deg,rgba(200,241,105,.28),rgba(143,227,180,.22));box-shadow:none;border:1px solid rgba(200,241,105,.45)}
.lang-toggle--m .lt-item.is-active{color:var(--lime)}
@media (prefers-reduced-motion:reduce){.lt-thumb,.lt-flag,.lt-flag::after{transition:none}}
#mmenu .lt-item{border-bottom:0;padding:0 18px 0 12px;font:600 14px var(--sans);width:auto}
@media (max-width:1100px){.nav-actions .lang-toggle{--w:44px;--h:32px}}
@media (max-width:760px){.nav-actions .lang-toggle{display:none}}

/* ======================================================================
   XANH TƯƠI SÁNG HƠN (khớp ảnh chụp demo): nền xanh lá nhạt tươi, vệt sáng mint/chanh,
   lá rơi, blob + vòng đứt nét quanh hình hero, mảng mint rõ hơn.
   ====================================================================== */
:root{--cream:#F1FAE8;--bg-soft:#F1FAE8;--mint-bg:#E1F6E4}
body{background:#F4FBEC}
.band-soft{background:linear-gradient(180deg,#F1FAE8 0%,#E8F8E5 100%)}
#header.scrolled,#header.solid{background:rgba(241,250,232,.92)}
.hero{background:radial-gradient(860px 520px at 92% -8%,rgba(143,227,180,.62),transparent 62%),radial-gradient(680px 460px at -8% 42%,rgba(200,241,105,.46),transparent 62%),radial-gradient(520px 400px at 55% 112%,rgba(154,216,232,.28),transparent 62%),#F4FBEC}
#services,#process,#register{background:linear-gradient(180deg,#E3F7E6,#D9F3DD)}
.band-tint,#process.band-soft,#register.band-tint{background:linear-gradient(180deg,#E3F7E6,#D9F3DD)}
.reg-form,.reg{background:#fff}
.stats{background:linear-gradient(135deg,#0B3D2E,#14573F)}
.svc,.svc:nth-child(odd){background:#fff}
.dcard2:hover,.dcard:hover,.prog:hover,.post-card:hover,.mcard:hover,.pil:hover{border-color:rgba(47,163,107,.55)}
.sec-title em,.squig{color:#1E7A4F}
/* Lá rơi */
#leaves{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.leaf-p{position:absolute;top:-4%;width:var(--s);height:var(--s);background:linear-gradient(135deg,var(--leaf),var(--mint));border-radius:0 50% 50% 50%;opacity:.34;animation:leafFall var(--t) linear infinite;animation-delay:var(--dl);will-change:transform}
@keyframes leafFall{0%{transform:translate(0,-4vh) rotate(0)}25%{transform:translate(var(--dx1),24vh) rotate(120deg)}50%{transform:translate(calc(var(--dx1)*-.7),48vh) rotate(210deg)}75%{transform:translate(var(--dx2),72vh) rotate(310deg)}100%{transform:translate(0,98vh) rotate(400deg)}}
.hero .container{position:relative;z-index:2}
/* Blob + vòng đứt nét quanh hình hero */
.hero-vis{isolation:isolate}
.hero-vis .blob{position:absolute;z-index:-1;left:50%;top:50%;width:118%;aspect-ratio:1;translate:-50% -50%;background:linear-gradient(135deg,#8FE3B4 0%,#C8F169 55%,#9AD8E8 110%);opacity:.6;filter:blur(2px);animation:blobm 14s ease-in-out infinite}
.hero-vis .ring-dash{position:absolute;z-index:-1;left:50%;top:50%;width:132%;aspect-ratio:1;translate:-50% -50%;border:2px dashed rgba(31,122,79,.35);border-radius:50%;animation:ringRot 40s linear infinite}
@keyframes ringRot{to{transform:rotate(360deg)}}
.route-card{box-shadow:0 30px 64px rgba(11,61,46,.28)}
@media (max-width:900px){.hero-vis .blob{width:100%}.hero-vis .ring-dash{display:none}}
@media (prefers-reduced-motion:reduce){.leaf-p,.hero-vis .blob,.hero-vis .ring-dash{animation:none}}

/* ============ PHẢN HỒI KHÁCH HÀNG (ảnh polaroid + câu chuyện thành công) ============ */
.fb-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:clamp(24px,3vw,44px);align-items:start}
.fb-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,2.6vw,34px) clamp(18px,2vw,28px);padding-top:14px}
.fb-card{position:relative;display:flex;flex-direction:column;margin:0;background:#fff;border:1px solid var(--line);border-radius:34px 26px 32px 28px;padding:14px 14px 26px;box-shadow:var(--sh);transition:opacity .9s var(--ease) var(--d,0s),transform .6s var(--spring),box-shadow .45s,border-color .45s}
.fb-card.on{transform:rotate(var(--tilt,0deg))}
.fb-card:hover{transform:rotate(0) translateY(-8px);box-shadow:var(--sh-l);border-color:rgba(47,163,107,.55)}
.fb-tape{position:absolute;top:-12px;left:50%;width:84px;height:24px;translate:-50% 0;rotate:-4deg;background:rgba(200,241,105,.7);border-radius:3px;box-shadow:0 2px 6px rgba(11,61,46,.14);z-index:2}
.fb-card:nth-child(even) .fb-tape{rotate:5deg;background:rgba(154,216,232,.65)}
.fb-photo{position:relative;border-radius:24px 18px 24px 20px;overflow:hidden;aspect-ratio:4/3.1;background:var(--mint-bg)}
.fb-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;transition:transform .9s var(--ease)}
.fb-card:hover .fb-photo img{transform:scale(1.06)}
.fb-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(11,61,46,.28))}
.fb-ini{display:grid;place-items:center;height:100%;font:600 3rem var(--serif);color:var(--leaf-d)}
.fb-body{padding:20px 12px 0;display:flex;flex-direction:column;gap:12px;flex:1}
.fb-tag{align-self:flex-start;font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-d);background:var(--mint-bg);border:1px solid var(--line);padding:5px 13px;border-radius:99px}
.fb-card blockquote{position:relative;margin:0;font:500 italic 1rem/1.7 var(--serif);color:var(--ink)}
.fb-card blockquote::before{content:"“";position:absolute;left:-4px;top:-26px;font:600 3.4rem/1 var(--serif);color:var(--lime-d);opacity:.55}
.fb-card blockquote p{margin:0;text-wrap:pretty}
.fb-card figcaption{margin-top:auto;padding-top:10px;display:grid;gap:2px;border-top:1px dashed var(--line)}
.fb-card figcaption b{font:700 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.fb-card figcaption small{font:600 12.5px var(--sans);color:var(--leaf-d)}
.fb-success{position:sticky;top:calc(var(--hh) + 20px)}
.fb-success figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:36px 28px 34px 30px;overflow:hidden;box-shadow:var(--sh-l)}
.fb-poster{overflow:hidden;background:var(--ocean)}
.fb-poster img{width:100%;height:auto;display:block;transition:transform 1s var(--ease)}
.fb-success:hover .fb-poster img{transform:scale(1.04)}
.fb-success figcaption{padding:24px 24px 26px;display:grid;gap:10px;justify-items:start}
.fb-success h3{font:600 1.35rem/1.25 var(--serif);color:var(--ink)}
.fb-success h3 em{font-style:italic;color:var(--leaf-d)}
.fb-success p{margin:0;font-size:.95rem;color:var(--mut)}
.fb-student b{color:var(--ink)}
.fb-offers{display:grid;gap:8px;margin:2px 0 8px}
.fb-offers li{display:flex;align-items:center;gap:10px;font:600 .95rem var(--sans);color:var(--ink)}
.fb-offers li::before{content:"";flex:0 0 11px;width:11px;height:11px;background:linear-gradient(135deg,var(--leaf),var(--mint));border-radius:0 50% 50% 50%;transform:rotate(45deg)}
@media (max-width:1060px){.fb-layout{grid-template-columns:1fr}.fb-success{position:static;max-width:520px;margin:0 auto}}
@media (max-width:640px){
  .fb-cards{grid-template-columns:1fr;gap:22px}
  .fb-card{flex-direction:row;gap:14px;padding:12px 14px 12px 12px;border-radius:26px}
  .fb-photo{flex:0 0 38%;aspect-ratio:3/4;border-radius:18px}
  .fb-body{padding:4px 0 0;gap:8px}
  .fb-card blockquote{font-size:.9rem;line-height:1.55}
  .fb-card blockquote::before{display:none}
  .fb-tape{display:none}
  .fb-card.on{transform:none}
}
@media (prefers-reduced-motion:reduce){.fb-card,.fb-photo img,.fb-poster img{transition:none}.fb-card.on{transform:none}}

/* ============ MENTOR: THẺ + KHỐI NỔI BẬT ============ */
.mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(18px,2.2vw,28px);margin-top:clamp(28px,4vw,48px)}
.mc{display:block;position:relative;border-radius:30px 24px 30px 26px;padding:3px;background:linear-gradient(135deg,rgba(47,163,107,.35),rgba(200,241,105,.5));transition:transform .55s var(--spring),box-shadow .45s}
.mc:hover{transform:translateY(-8px);box-shadow:0 30px 60px -22px rgba(11,61,46,.5)}
.mc-ph{position:relative;border-radius:27px 21px 27px 23px;overflow:hidden;aspect-ratio:4/5;background:linear-gradient(150deg,var(--forest),var(--forest-2));isolation:isolate}
.mc-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform 1s var(--ease)}
.mc:hover .mc-ph img{transform:scale(1.07)}
.mc-ini{position:absolute;inset:0;display:grid;place-items:center;font:600 4rem var(--serif);color:var(--lime)}
.mc-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 38%,rgba(7,43,32,.55) 66%,rgba(7,43,32,.94))}
.mc-em{position:absolute;z-index:3;top:14px;left:14px;display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 10px;border-radius:99px;background:var(--lime);color:var(--deep);font:800 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;overflow:hidden;box-shadow:0 8px 18px -6px rgba(7,43,32,.5)}
.mc-em svg{width:16px;height:16px}
.mc-em::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);transform:translateX(-130%);animation:mcShine 4.5s ease-in-out infinite}
@keyframes mcShine{0%,55%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}
.mc-info{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:22px 22px 20px;color:#fff;display:grid;gap:6px}
.mc-info h3{font:600 1.35rem/1.2 var(--serif);color:#fff}
.mc-role{font:700 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.mc-tags{display:grid;gap:6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .6s var(--ease),opacity .45s,margin .45s}
.mc:hover .mc-tags,.mc:focus-visible .mc-tags{max-height:140px;opacity:1;margin-top:8px}
.mc-tags li{font:500 12.5px/1.4 var(--sans);color:#DFF3E4;display:flex;gap:8px}
.mc-tags li::before{content:"";flex:0 0 8px;width:8px;height:8px;margin-top:5px;background:var(--lime);border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.mc-more{margin-top:6px;font:700 11.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mint)}
.mc-more i{font-style:normal;display:inline-block;transition:transform .35s var(--ease)}
.mc:hover .mc-more i{transform:translateX(6px)}
.mc:nth-child(even){background:linear-gradient(135deg,rgba(47,127,184,.45),rgba(143,227,180,.5))}
@media (hover:none){.mc-tags{max-height:140px;opacity:1;margin-top:6px}}
/* Khối mentor nổi bật */
.ms{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:center;margin:clamp(8px,2vw,24px) 0 0}
.ms-vis{position:relative;isolation:isolate;max-width:460px;width:100%;margin-inline:auto;padding:28px 22px}
.ms-blob{position:absolute;z-index:-1;left:50%;top:50%;width:112%;aspect-ratio:1;translate:-50% -50%;background:linear-gradient(135deg,#8FE3B4,#C8F169 58%,#9AD8E8);opacity:.6;filter:blur(2px);animation:blobm 14s ease-in-out infinite}
.ms-ring{position:absolute;z-index:-1;left:50%;top:50%;width:126%;aspect-ratio:1;translate:-50% -50%;border:2px dashed rgba(31,122,79,.38);border-radius:50%;animation:ringRot 46s linear infinite}
.ms-frame{position:relative;border-radius:220px 220px 34px 34px;overflow:hidden;aspect-ratio:4/5;background:linear-gradient(150deg,var(--forest),var(--forest-2));box-shadow:0 36px 70px -26px rgba(11,61,46,.55),0 0 0 6px #fff,0 0 0 7px var(--line)}
.ms-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform 1.2s var(--ease)}
.ms:hover .ms-frame img{transform:scale(1.05)}
.ms-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);transform:translateX(-120%)}
.ms:hover .ms-shine{transform:translateX(120%);transition:transform 1.2s var(--ease)}
.ms-chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px 16px 10px 12px;box-shadow:var(--sh-l);animation:floaty 6.5s ease-in-out infinite}
.ms-chip svg{width:22px;height:22px;color:var(--leaf-d)}
.ms-chip b{font:700 12px/1.3 var(--sans);color:var(--ink);max-width:170px}
.ms-chip-1{top:6%;left:-10px;background:var(--lime);border-color:transparent}.ms-chip-1 svg{color:var(--deep)}.ms-chip-1 b{color:var(--deep);letter-spacing:.06em;text-transform:uppercase;font-size:11px}
.ms-chip-2{top:46%;right:-14px;animation-delay:-2.2s}
.ms-chip-3{bottom:5%;left:-6px;animation-delay:-4.4s}.ms-chip-3 svg{color:var(--link)}
@keyframes floaty{50%{transform:translateY(-12px)}}
.ms-copy{display:grid;gap:14px;justify-items:start}
.ms-copy h3{font:600 clamp(2rem,1.5rem + 2vw,3.1rem)/1.1 var(--serif);color:var(--ink);letter-spacing:-.02em}
.ms-role{margin:0;font:700 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--leaf-d)}
.ms-bio{margin:0;font-size:1.05rem;line-height:1.75;color:var(--mut);max-width:56ch}
.ms-list{display:grid;gap:10px;margin:4px 0 8px}
.ms-list li{display:flex;gap:12px;align-items:flex-start;font:600 .98rem/1.5 var(--sans);color:var(--ink)}
.ms-list li::before{content:"";flex:0 0 12px;width:12px;height:12px;margin-top:6px;background:linear-gradient(135deg,var(--leaf),var(--mint));border-radius:0 50% 50% 50%;transform:rotate(45deg)}
.ms-list li:nth-child(even)::before{background:linear-gradient(135deg,var(--blue),var(--blue-l))}
.ms-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.mentor-photo{position:relative}.mentor-photo .mc-em{top:14px;left:14px}
@media (max-width:900px){.ms{grid-template-columns:1fr}.ms-vis{max-width:400px}.ms-chip-1{left:0}.ms-chip-2{right:0}.ms-chip-3{left:0}.ms-ring{display:none}}
@media (prefers-reduced-motion:reduce){.ms-chip,.ms-blob,.ms-ring,.mc-em::after{animation:none}.mc,.mc-ph img,.ms-frame img{transition:none}}

/* ============ THƯ VIỆN ẢNH TRẠI HÈ ============ */
.gal-sec{content-visibility:auto;contain-intrinsic-size:1px 900px}
.gal-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:clamp(26px,3.5vw,44px)}
.gal-grid{columns:4 250px;column-gap:clamp(12px,1.6vw,20px)}
.gal-item{break-inside:avoid;margin:0 0 clamp(12px,1.6vw,20px);list-style:none}
.gal-item[hidden]{display:none}
.gal-btn{position:relative;display:block;width:100%;padding:0;border:0;cursor:zoom-in;border-radius:22px 18px 22px 20px;overflow:hidden;background:var(--c,#d9eedb);aspect-ratio:var(--ar,3/2);isolation:isolate;box-shadow:0 10px 26px -14px rgba(11,61,46,.4);transition:transform .6s var(--spring),box-shadow .5s}
.gal-btn img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease),filter .6s;filter:saturate(1.04)}
.gal-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 50%,rgba(7,43,32,.82));opacity:0;transition:opacity .5s}
.gal-cap{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:16px 18px;color:#fff;text-align:left;font:600 .88rem/1.4 var(--sans);transform:translateY(14px);opacity:0;transition:transform .55s var(--ease),opacity .45s}
.gal-cap b{font-weight:600}
.gal-zoom{position:absolute;z-index:2;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:var(--lime);display:grid;place-items:center;transform:scale(.4) rotate(-90deg);opacity:0;transition:transform .55s var(--spring),opacity .35s}
.gal-zoom svg{width:18px;height:18px;fill:none;stroke:var(--deep);stroke-width:2.4;stroke-linecap:round}
.gal-btn:hover,.gal-btn:focus-visible{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 28px 54px -20px rgba(11,61,46,.55)}
.gal-item:nth-child(even) .gal-btn:hover{transform:translateY(-6px) rotate(.6deg)}
.gal-btn:hover img,.gal-btn:focus-visible img{transform:scale(1.09);filter:saturate(1.15)}
.gal-btn:hover .gal-shade,.gal-btn:focus-visible .gal-shade{opacity:1}
.gal-btn:hover .gal-cap,.gal-btn:focus-visible .gal-cap{transform:none;opacity:1}
.gal-btn:hover .gal-zoom,.gal-btn:focus-visible .gal-zoom{transform:none;opacity:1}
@media (hover:none){.gal-shade{opacity:.55}.gal-cap{opacity:1;transform:none;font-size:.8rem}.gal-zoom{display:none}}
.gal-pop{animation:galPop .6s var(--ease) both;animation-delay:var(--d,0s)}
@keyframes galPop{from{opacity:0;transform:translateY(22px) scale(.96)}}
.gal-more{text-align:center;margin-top:clamp(30px,4vw,48px)}
@media (max-width:640px){.gal-grid{columns:2 150px;column-gap:10px}.gal-item{margin-bottom:10px}.gal-btn{border-radius:16px}}
/* Lightbox */
body.lbx-open{overflow:hidden}
.lbx{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;opacity:0;transition:opacity .35s}
.lbx[hidden]{display:none}
.lbx.open{opacity:1}
.lbx-bg{position:absolute;inset:0;background:rgba(5,32,24,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.lbx-fig{position:relative;margin:0;max-width:min(1100px,92vw);max-height:92vh;display:grid;gap:12px;justify-items:center}
.lbx-img{max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:20px;box-shadow:0 40px 90px -20px rgba(0,0,0,.6);opacity:0;transform:translateX(calc(var(--dir,0)*36px)) scale(.96)}
.lbx-img.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .6s var(--ease)}
.lbx-fig figcaption{display:flex;gap:16px;align-items:center;justify-content:space-between;width:100%;color:#DFF3E4;font:600 .95rem var(--sans);padding:0 6px}
.lbx-cnt{color:var(--lime);font-variant-numeric:tabular-nums;white-space:nowrap}
.lbx-btn{position:absolute;z-index:2;width:50px;height:50px;border-radius:50%;border:1px solid rgba(200,241,105,.4);background:rgba(11,61,46,.6);color:var(--lime);font-size:22px;cursor:pointer;transition:transform .35s var(--spring),background .3s,color .3s}
.lbx-btn:hover{background:var(--lime);color:var(--deep);transform:scale(1.1)}
.lbx-x{top:18px;right:18px;font-size:30px;line-height:1}.lbx-p{left:18px;top:50%;margin-top:-25px}.lbx-n{right:18px;top:50%;margin-top:-25px}
@media (max-width:640px){.lbx-p,.lbx-n{top:auto;bottom:18px;margin:0}.lbx-p{left:calc(50% - 62px)}.lbx-n{right:calc(50% - 62px)}.lbx-img{max-height:70vh}}
@media (prefers-reduced-motion:reduce){.gal-btn,.gal-btn img,.gal-cap,.gal-zoom,.lbx-img.in{transition:none}.gal-pop{animation:none}}
.prose .post-fig{margin:2em 0;border-radius:26px;overflow:hidden;background:var(--mint-bg);box-shadow:var(--sh);border:1px solid var(--line)}
.prose .post-fig img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease)}
.prose .post-fig:hover img{transform:scale(1.035)}
.prose .post-fig figcaption{padding:12px 18px;font:600 .88rem/1.5 var(--sans);color:var(--mut)}
.prose .post-fig{position:relative}

/* ============ LƯỚI CÂN ĐỐI TỰ ĐỘNG (điểm đến: 7/8/9… thẻ đều cân, hàng cuối căn giữa) ============ */
.bal{display:flex;flex-wrap:wrap;justify-content:center;--c:var(--cd,3);gap:var(--gap)}
.bal>*{flex:0 0 calc((100% - (var(--c) - 1) * var(--gap)) / var(--c));max-width:calc((100% - (var(--c) - 1) * var(--gap)) / var(--c));min-width:0}
@media (max-width:1100px){.bal{--c:var(--ct,3)}}
@media (max-width:860px){.bal{--c:2}}
@media (max-width:560px){.bal{--c:1}}
.dest-grid2.bal .dcard2,.dest-grid.bal .dcard{padding:clamp(20px,2vw,28px)}
@media (min-width:561px) and (max-width:860px),(min-width:861px) and (max-width:1100px){.bal[style*="--ct:2"]>:last-child:nth-child(odd){flex-basis:100%;max-width:100%}}
@media (min-width:561px) and (max-width:860px){.bal>:last-child:nth-child(odd){flex-basis:100%;max-width:100%}}
/* Chống tràn ngang trên điện thoại */
.fb-layout>*,.fb-cards>*,.fb-body,.ms>*,.mteam>*,.reg>*,.gal-grid,.hero-grid>*,.about-grid>*,.with-side>*{min-width:0}
@media (max-width:1060px){.fb-layout{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.fb-cards{grid-template-columns:minmax(0,1fr)}.fb-card blockquote{overflow-wrap:anywhere}}
