/* Khai Minh – Biên soạn & Dịch thuật | style.css */
:root{
  --g900:#0A3123;--g800:#0F4A35;--g700:#18684A;--g600:#2F8A5F;--g200:#BFE0CE;--g100:#E4F2EA;--g50:#F4FAF6;
  --y:#F7F061;--yd:#E9DF2B;--ink:#0F2219;--tx:#4A5A52;--mut:#8A9A92;--line:#DCE8E0;--bg:#FBFDFB;
  --sh:0 10px 25px -5px rgba(10,49,35,.12),0 8px 10px -6px rgba(10,49,35,.06);
  --glow:0 4px 14px 0 rgba(233,223,43,.45);
}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:'Roboto',sans-serif;color:var(--tx);background:var(--bg);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6,.fh{font-family:'Montserrat',sans-serif;color:var(--ink);letter-spacing:-.015em;line-height:1.25}
h1,.h1{font-weight:800}h2,h3,.h2,.h3{font-weight:700}h4,h5,h6,.h4,.h5,.h6{font-weight:700}
.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Montserrat',sans-serif;color:var(--ink);letter-spacing:-.015em}
.panel-g .h4,.panel-g .h5,.sec-dark .h1,.sec-dark .h4{color:#fff}.cta .h3{color:#fff}
a{color:var(--g700);text-decoration:none}a:hover{color:var(--g800)}
.tnum{font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--y);outline-offset:2px;box-shadow:0 0 0 5px var(--g800)}
.container{max-width:1280px}
.sec{padding:84px 0}.sec-alt{background:var(--g50)}.sec-dark{background:var(--g900);color:#cfe3d8}
.sec-dark h2,.sec-dark h3,.sec-dark h4{color:#fff}
.sec-title{max-width:680px;margin-bottom:44px}
.sec-title.center{margin-inline:auto;text-align:center}
.sec-title h2{font-size:clamp(1.65rem,3.2vw,2.35rem);margin-bottom:12px}
.sec-title p{font-size:1.05rem;margin:0}
.sec-title.d-flex{width:100%;max-width:none;align-items:flex-end;gap:28px}.sec-title.d-flex>div{flex:1}.sec-title.d-flex>h2{flex:1;margin-bottom:0}.sec-title.d-flex>a{flex:none;margin-left:auto;margin-bottom:7px;padding:8px 13px;border-radius:6px;font:600 .86rem 'Montserrat';white-space:nowrap}.sec-title.d-flex>a:hover{background:var(--g100);color:var(--g800)}
.tag{display:inline-flex;align-items:center;gap:8px;font:600 .8rem 'Montserrat';color:var(--g700);background:var(--g100);padding:5px 12px;border-radius:50rem}

/* buttons */
.btn{font-family:'Montserrat';font-weight:600;font-size:.95rem;border-radius:6px;padding:.7rem 1.35rem;transition:.2s}
.btn-gr{background:var(--g700);color:#fff;border:1px solid var(--g700)}
.btn-gr:hover{background:var(--g800);color:#fff;transform:translateY(-1px)}
.btn-ye{background:var(--y);color:var(--g900);border:1px solid var(--y);box-shadow:var(--glow)}
.btn-ye:hover{background:var(--yd);color:var(--g900);box-shadow:0 6px 18px rgba(233,223,43,.6)}
.btn-ghost{background:#fff;color:var(--g800);border:1px solid #CBD9D0}
.btn-ghost:hover{background:var(--g50);color:var(--g800)}
.btn-line{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.btn-line:hover{background:rgba(255,255,255,.1);color:#fff}
.btn-lg{padding:.9rem 1.8rem;font-size:1rem}

/* topbar + header */
.topbar{background:var(--g900);color:#b9d3c6;font-size:.82rem;padding:7px 0}
.topbar a{color:#e6f3ec}.topbar i{color:var(--y);margin-right:6px}
.top-actions{display:flex;align-items:center;gap:16px}.top-faq{font-weight:600}.top-social{display:inline-flex;align-items:center;gap:5px;border-left:1px solid rgba(255,255,255,.2);padding-left:14px}
.top-social a{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.09);transition:.2s}.top-social a:hover{background:var(--y);color:var(--g900);transform:translateY(-1px)}.top-social i{margin:0;color:inherit;font-size:.75rem}
.lang{display:inline-flex;border:1px solid rgba(255,255,255,.25);border-radius:50rem;overflow:hidden}
.lang button{background:none;border:0;color:#cfe3d8;font:600 .72rem 'Montserrat';padding:3px 11px}
.lang button.on{background:var(--y);color:var(--g900)}
.beacon{display:inline-block;width:8px;height:8px;border-radius:50%;background:#34d27a;margin-right:6px;box-shadow:0 0 0 0 rgba(52,210,122,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(52,210,122,0)}100%{box-shadow:0 0 0 0 rgba(52,210,122,0)}}
.site-nav{position:sticky;top:0;z-index:1030;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(220,232,224,.9);padding:.55rem 0;transition:box-shadow .2s}
.site-nav.scrolled{box-shadow:0 6px 20px -8px rgba(10,49,35,.2)}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink)}
.brand img{height:50px;width:50px;object-fit:contain;flex:0 0 50px}
.brand b{display:block;font:800 1.3rem/1 'Montserrat';color:var(--g600);letter-spacing:.04em;text-transform:uppercase}
.brand small{display:block;font:600 .72rem/1.3 'Montserrat';color:var(--g800);margin-top:3px}
.site-nav .nav-link{font:600 .92rem 'Montserrat';color:var(--ink);padding:.6rem .9rem!important;border-radius:6px}
.site-nav .nav-link:hover,.site-nav .nav-link.active{color:var(--g700);background:var(--g100)}
.dropdown-menu{border:1px solid var(--line);box-shadow:var(--sh);border-radius:8px;padding:8px}
.dropdown-item{font-size:.92rem;border-radius:6px;padding:.5rem .8rem}
.dropdown-item:hover{background:var(--g100);color:var(--g800)}
.navbar-toggler{border:1px solid var(--line);padding:.45rem .7rem}
.mobile-menu{width:min(88vw,390px)!important;border-left:0!important;background:linear-gradient(180deg,#fff 0%,#f7fbf8 100%)}
.mobile-menu .offcanvas-header{padding:22px 22px 18px;border-bottom:1px solid var(--line)}.mobile-menu .offcanvas-body{display:flex;flex-direction:column;padding:22px}
.mobile-menu .brand b{font-size:1.12rem}.mobile-menu .brand small{font-size:.66rem}.mobile-menu .logo-mark{width:40px;height:40px;font-size:.8rem}
.menu-label{margin:0 0 10px;color:var(--mut);font:700 .7rem 'Montserrat';letter-spacing:.12em;text-transform:uppercase}
.mobile-menu .navbar-nav{gap:5px}.mobile-menu .nav-link{display:flex;align-items:center;gap:13px;padding:.82rem .9rem!important;border:0;border-radius:8px;color:var(--ink)}
.mobile-menu .nav-link i{width:22px;color:var(--g600);text-align:center}.mobile-menu .nav-link:after{content:"\f054";font:900 .68rem 'Font Awesome 6 Free';margin-left:auto;color:#a6b8ae}
.mobile-menu .nav-link:hover,.mobile-menu .nav-link.active{background:var(--g100);color:var(--g800)}.mobile-menu .nav-link.active{font-weight:700}
.mobile-menu-cta{margin-top:auto;padding:20px;background:var(--g800);border-radius:12px;color:#d8e9e0;box-shadow:var(--sh)}.mobile-menu-cta p{font:700 .95rem 'Montserrat';color:#fff;margin-bottom:12px}.menu-phone{display:block;text-align:center;color:#d8e9e0;margin-top:14px;font-weight:600}.menu-phone:hover{color:var(--y)}

/* hero */
.hero{position:relative;background-color:var(--g900);background-image:linear-gradient(90deg,rgba(5,35,26,.98) 0%,rgba(8,48,35,.92) 42%,rgba(8,48,35,.34) 72%,rgba(8,48,35,.15) 100%),url('../img/site/hero-library-vietnam.jpeg');background-size:cover;background-position:center;color:#d6e9de;padding:76px 0 96px;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,28,21,.08),rgba(4,28,21,.3));pointer-events:none}
.hero:after{content:none}
.hero .container{position:relative;z-index:2}
.hero h1{color:#fff;font-size:clamp(2rem,4.4vw,3.35rem);line-height:1.15;margin:18px 0}
.hero .lead{font-size:1.1rem;max-width:560px;color:#c3dccf}
.hero .badges span{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:#e6f3ec;margin:6px 18px 0 0}
.hero .badges i{color:var(--y)}
.chip-live{display:inline-flex;align-items:center;font:600 .78rem 'Montserrat';color:var(--y);border:1px solid rgba(247,240,97,.4);padding:5px 13px;border-radius:50rem}
.hero-in>*{animation:rise .7s both}.hero-in>*:nth-child(2){animation-delay:.08s}.hero-in>*:nth-child(3){animation-delay:.16s}.hero-in>*:nth-child(4){animation-delay:.24s}
.hero-card{animation:rise .8s .2s both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* estimator */
.est{background:#fff;border-radius:8px;box-shadow:0 24px 50px -12px rgba(0,0,0,.4);padding:26px;color:var(--tx)}
.est h3{font-size:1.2rem;margin:0}
.est .sub{font-size:.82rem;color:var(--mut)}
.form-label{font:600 .82rem 'Montserrat';color:var(--ink);margin-bottom:5px}
.form-control,.form-select{height:44px;border-radius:4px;border:1px solid #CBD9D0;font-size:.95rem;color:var(--ink)}
textarea.form-control{height:auto}
.form-control:focus,.form-select:focus{border-color:var(--g800);box-shadow:0 0 0 3px rgba(15,74,53,.12)}
.form-check-input:checked{background-color:var(--g700);border-color:var(--g700)}
.drop{border:2px dashed #CBD9D0;border-radius:8px;padding:18px;text-align:center;background:var(--g50);cursor:pointer;transition:.2s;font-size:.88rem}
.drop:hover,.drop.over{border-color:var(--g600);background:var(--g100)}
.drop i{font-size:1.6rem;color:var(--g600);display:block;margin-bottom:4px}
.sum{background:#F8FAFC;background:var(--g50);border:1px solid var(--line);border-radius:8px;padding:16px}
.sum .row-l{display:flex;justify-content:space-between;font-size:.9rem;padding:4px 0}
.sum .row-l b{color:var(--ink)}
.sum .big{font:800 1.55rem 'Montserrat';color:var(--g800);font-variant-numeric:tabular-nums}
.ok-msg{display:none;background:var(--g100);color:var(--g800);border-radius:6px;padding:10px 14px;font-size:.9rem;margin-top:12px}

/* trust matrix */
.trust{margin-top:-52px;position:relative;z-index:3}
.trust-in{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh)}
.trust-in>div{padding:26px 20px;text-align:center;border-right:1px solid var(--line)}
.trust-in>div:last-child{border:0}
.trust b{display:block;font:800 2.1rem/1.1 'Montserrat';color:var(--g800);font-variant-numeric:tabular-nums}
.trust span{font-size:.88rem}
@media(max-width:767px){.trust-in>div{border-right:0;border-bottom:1px solid var(--line)}.trust-in>div:nth-child(odd){border-right:1px solid var(--line)}.trust-in>div:nth-last-child(-n+2){border-bottom:0}}

/* partners */
.partners span{font:800 1.15rem 'Montserrat';color:#A9BBB1;letter-spacing:.02em;padding:6px 20px}

/* cards */
.svc{position:relative;background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px 24px 22px;height:100%;display:flex;flex-direction:column;transition:.25s;overflow:hidden}
.svc:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--g700);transition:.25s}
.svc:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.svc:hover:before{background:var(--y);height:4px}
.ico{width:52px;height:52px;border-radius:8px;background:var(--g100);color:var(--g700);display:grid;place-items:center;font-size:1.35rem;margin-bottom:16px;flex:none}
.svc h3{font-size:1.1rem;margin-bottom:8px}
.svc p{font-size:.93rem;flex:1}
.chip{display:inline-block;font:600 .72rem 'Montserrat';background:var(--y);color:var(--g900);padding:3px 10px;border-radius:4px}
.chip-g{background:var(--g100);color:var(--g800)}
.price-l{border-top:1px solid var(--line);padding-top:14px;margin-top:6px;display:flex;justify-content:space-between;align-items:center;font-size:.85rem}
.price-l b{font:800 1.15rem 'Montserrat';color:var(--g800)}
.ticks{list-style:none;padding:0;margin:0 0 14px}
.ticks li{position:relative;padding-left:26px;margin-bottom:7px;font-size:.93rem}
.ticks li:before{content:"\f00c";font:900 .75rem 'Font Awesome 6 Free';position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:var(--g100);color:var(--g700);display:grid;place-items:center}

/* split / biên soạn */
.panel{border-radius:8px;padding:36px;height:100%}
.panel-g{background:var(--g800);color:#cfe3d8}.panel-g h3{color:#fff}
.panel-y{background:var(--y);color:#3a3f10}.panel-y h3{color:var(--g900)}
.panel-y .ticks li:before{background:var(--g900);color:var(--y)}
.panel-g .ticks li:before{background:rgba(247,240,97,.18);color:var(--y)}

/* process rail */
.rail{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.rail:before{content:"";position:absolute;left:10%;right:10%;top:28px;height:2px;background:var(--g200)}
.step{position:relative;text-align:center;padding:0 12px}
.step .n{width:56px;height:56px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font:800 1.2rem 'Montserrat';background:var(--g800);color:#fff;border:4px solid var(--bg);position:relative;z-index:1}
.sec-alt .step .n{border-color:var(--g50)}
.step:last-child .n{background:var(--y);color:var(--g900)}
.step h4{font-size:1rem;margin-bottom:6px}.step p{font-size:.88rem;margin:0}
.step .t{display:inline-block;margin-top:8px;font:600 .75rem 'Montserrat';color:var(--g700);background:var(--g100);padding:2px 10px;border-radius:50rem}
@media(max-width:991px){.rail{grid-template-columns:1fr;gap:26px}.rail:before{left:27px;right:auto;top:0;bottom:0;width:2px;height:auto}.step{text-align:left;padding-left:78px}.step .n{position:absolute;left:0;top:0;margin:0}}

/* price table */
.ptable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.ptable th{background:var(--g800);color:#fff;font:600 .85rem 'Montserrat';padding:14px 18px;white-space:nowrap}
.ptable td{padding:16px 18px;border-top:1px solid var(--line);font-size:.93rem;vertical-align:middle}
.ptable tr:hover td{background:var(--g50)}
.ptable .pr{font:800 1.05rem 'Montserrat';color:var(--g800);font-variant-numeric:tabular-nums;white-space:nowrap}

/* filter */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.filters button{font:600 .88rem 'Montserrat';background:#fff;border:1px solid #CBD9D0;color:var(--g800);padding:8px 18px;border-radius:50rem;transition:.2s}
.filters button:hover{background:var(--g50)}
.filters button.on{background:var(--g800);color:#fff;border-color:var(--g800)}
.hide{display:none!important}

/* testimonial */
.quote{background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;height:100%}
.quote .stars{color:#E0B400;font-size:.85rem;margin-bottom:12px}
.who{display:flex;align-items:center;gap:12px;margin-top:18px}
.av{width:48px;height:48px;border-radius:50%;background:var(--g700);color:var(--y);display:grid;place-items:center;font:700 .95rem 'Montserrat';flex:none;object-fit:cover;border:2px solid var(--g100)}
.who b{display:block;color:var(--ink);font-family:'Montserrat';font-size:.92rem}.who small{color:var(--mut)}

/* blog */
.post{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;height:100%;display:flex;flex-direction:column;transition:.25s}
.post:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.thumb{aspect-ratio:16/9;display:block;overflow:hidden;background:var(--g800);position:relative}
.thumb img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}.post:hover .thumb img{transform:scale(1.035)}
.thumb.t2{background:linear-gradient(135deg,#0F4A35,#1B7A55 55%,#8FBF6A)}.thumb.t3{background:linear-gradient(135deg,#0A3123,#2F8A5F)}
.thumb .chip{position:absolute;left:14px;top:14px}
.post .body{padding:22px;display:flex;flex-direction:column;flex:1}
.post h3{font-size:1.05rem;line-height:1.4;margin:8px 0 10px}
.post h3 a{color:var(--ink)}.post h3 a:hover{color:var(--g700)}
.meta{font-size:.8rem;color:var(--mut);display:flex;gap:14px;flex-wrap:wrap}
.feat{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--sh)}
.feat .thumb{height:100%;min-height:260px;aspect-ratio:auto;font-size:4rem}

/* team */
.member-card{height:100%;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.25s}.member-card:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.member-photo{display:block;aspect-ratio:4/4.6;overflow:hidden;background:var(--g100)}.member-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.member-card:hover .member-photo img{transform:scale(1.035)}
.member-body{padding:20px}.member-body .tag{font-size:.68rem;margin-bottom:10px}.member-body h3{font-size:1.08rem;margin:0 0 4px}.member-role{display:block;color:var(--g700);font-size:.86rem;margin-bottom:8px}.member-body p{font-size:.88rem;margin-bottom:10px}.profile-photo{width:100%;aspect-ratio:4/4.8;object-fit:cover;border-radius:12px;box-shadow:var(--sh)}

/* publications */
.publication-card{display:grid;grid-template-columns:42% 1fr;height:100%;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.25s}.publication-card:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.publication-cover{position:relative;display:block;min-height:270px;overflow:hidden;background:var(--g100)}.publication-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.publication-card:hover .publication-cover img{transform:scale(1.04)}
.publication-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,36,26,.72))}.publication-cover span{position:absolute;z-index:1;left:12px;bottom:12px;color:#fff;font:600 .72rem 'Montserrat'}
.publication-body{padding:20px;display:flex;flex-direction:column}.publication-body h3{font-size:1.02rem;margin:8px 0}.publication-body p{font-size:.88rem;flex:1;margin-bottom:12px}.publication-detail-cover{width:100%;aspect-ratio:4/5.2;object-fit:cover;border-radius:12px;box-shadow:var(--sh)}
.publication-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.publication-facts>div{padding:16px;background:var(--g50);border:1px solid var(--line);border-radius:8px}.publication-facts small,.publication-facts b{display:block}.publication-facts small{color:var(--mut);margin-bottom:4px}.publication-facts b{color:var(--ink)}

/* page hero (inner) */
.phero{position:relative;background-color:var(--g900);background-image:linear-gradient(90deg,rgba(5,38,28,.98) 0%,rgba(8,52,38,.9) 48%,rgba(8,52,38,.45) 100%),url('../img/site/page-library-vietnam.jpeg');background-size:cover;background-position:center 48%;color:#c3dccf;padding:66px 0 70px;overflow:hidden}
.phero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,24,17,.08),rgba(2,24,17,.25))}
.phero .container{position:relative}
.phero h1{color:#fff;font-size:clamp(1.8rem,3.6vw,2.7rem);margin:12px 0}
.phero p{max-width:640px;font-size:1.05rem}
.crumb{font-size:.85rem}.crumb a{color:var(--y)}.crumb i{font-size:.6rem;margin:0 8px;opacity:.6}

/* timeline */
.tl{position:relative;padding-left:34px;border-left:2px solid var(--g200)}
.tl .it{position:relative;margin-bottom:30px}
.tl .it:before{content:"";position:absolute;left:-43px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--y);border:4px solid var(--g800)}
.tl b.y{font:800 1.2rem 'Montserrat';color:var(--g700)}
.journey-section{position:relative;isolation:isolate;background-color:var(--g900);background-image:linear-gradient(90deg,rgba(4,35,26,.98) 0%,rgba(5,43,31,.91) 46%,rgba(5,43,31,.72) 100%),url('../img/site/page-library-vietnam.jpeg');background-size:cover;background-position:center 48%;background-attachment:fixed;overflow:hidden}
.journey-section:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,25,18,.18),rgba(2,25,18,.48))}.journey-section:after{content:"";position:absolute;z-index:-1;right:-100px;top:-150px;width:430px;height:430px;border-radius:50%;border:55px solid rgba(247,240,97,.055)}
.journey-section .container{position:relative}.journey-label{display:inline-block;margin-bottom:14px;color:var(--y);font:700 .72rem 'Montserrat';letter-spacing:.12em;text-transform:uppercase}.journey-lead{max-width:310px;color:#bcd3c7}.journey-section .tl{border-color:rgba(191,224,206,.55)}.journey-section .tl .it{padding:14px 20px;margin-bottom:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(5,35,26,.45);backdrop-filter:blur(5px)}.journey-section .tl .it:last-child{margin-bottom:0}.journey-section .tl .it:before{left:-51px;top:20px}.journey-section .tl .it p{margin:3px 0 0;color:#d1e2d9}

/* side/sticky + toc + article */
.sticky-s{position:sticky;top:100px}
.toc a{display:block;padding:8px 0 8px 14px;border-left:2px solid var(--line);font-size:.9rem;color:var(--tx)}
.toc a:hover,.toc a.on{border-color:var(--g700);color:var(--g800);font-weight:500}
.card-s{background:#fff;border:1px solid var(--line);border-radius:8px;padding:22px}
.art h2{font-size:1.5rem;margin:38px 0 14px}.art p,.art li{font-size:1.04rem;line-height:1.8}
.article-cover{width:100%;aspect-ratio:16/8;border-radius:10px;object-fit:cover;margin:0 0 30px;box-shadow:var(--sh)}
.about-photo{width:100%;height:100%;min-height:360px;object-fit:cover;border-radius:12px;box-shadow:var(--sh)}
.art .callout{background:var(--g50);border-left:4px solid var(--g600);padding:16px 20px;border-radius:0 8px 8px 0;margin:22px 0}
.art .warn{background:#FFFCDB;border-left-color:#D9C800}
.art table{width:100%;border:1px solid var(--line);margin:20px 0;font-size:.95rem}
.art th{background:var(--g800);color:#fff;padding:12px 14px;font-family:'Montserrat';font-size:.85rem}.art td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.share a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:inline-grid;place-items:center;color:var(--g800);margin-right:6px}
.share a:hover{background:var(--g800);color:#fff}

/* accordion */
.accordion-item{border:1px solid var(--line)!important;border-radius:8px!important;margin-bottom:12px;overflow:hidden}
.accordion-button{font:600 1rem 'Montserrat';color:var(--ink);background:#fff}
.accordion-button:not(.collapsed){background:var(--g100);color:var(--g800);box-shadow:none}
.faq-section{position:relative;background:linear-gradient(180deg,#fbfdfb,#f2f8f4)}.faq-shell{position:relative;padding:52px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.82);box-shadow:0 20px 60px rgba(10,49,35,.08);overflow:hidden}.faq-shell:before{content:"?";position:absolute;left:-18px;bottom:-100px;font:800 280px/1 'Montserrat';color:rgba(24,104,74,.035);pointer-events:none}
.faq-intro{position:sticky;top:110px}.faq-intro h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}.faq-intro>p{max-width:340px}.faq-intro .tag i{margin-right:5px}
.faq-note{display:flex;gap:13px;align-items:center;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.faq-note>i{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--g100);color:var(--g700)}.faq-note b,.faq-note small{display:block}.faq-note b{font:700 .86rem 'Montserrat';color:var(--ink)}.faq-note small{font-size:.8rem;color:var(--mut);margin-top:3px}
.faq-list .accordion-item{border:1px solid #d7e6dc!important;border-radius:10px!important;margin-bottom:12px;background:#fff;box-shadow:0 5px 16px rgba(10,49,35,.035);transition:.2s}.faq-list .accordion-item:hover{border-color:#b8d4c3!important;box-shadow:0 8px 22px rgba(10,49,35,.07)}
.faq-list .accordion-button{display:flex;gap:15px;align-items:center;padding:18px 20px;background:#fff;font-size:.95rem}.faq-list .accordion-button:not(.collapsed){background:linear-gradient(90deg,var(--g100),#f0f8f3)}.faq-list .accordion-button:focus{box-shadow:none}.faq-number{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:8px;background:var(--g50);color:var(--g700);font:800 .72rem 'Montserrat';border:1px solid var(--line)}.faq-list .accordion-button:not(.collapsed) .faq-number{background:var(--g700);color:#fff;border-color:var(--g700)}.faq-list .accordion-body{padding:4px 22px 20px 69px;color:var(--tx);line-height:1.75}

/* stepper (contact) */
.stp{display:flex;gap:8px;margin-bottom:24px}
.stp div{flex:1;font:600 .8rem 'Montserrat';padding:10px 12px;border-bottom:3px solid var(--line);color:var(--mut)}
.stp div.on{border-color:var(--g700);color:var(--g800)}.stp div.done{border-color:var(--y);color:var(--g800)}
.fstep{display:none}.fstep.on{display:block;animation:rise .35s both}
.opt{display:block;border:1px solid #CBD9D0;border-radius:8px;padding:14px 16px;cursor:pointer;height:100%;transition:.2s}
.opt input{margin-right:8px}.opt:has(input:checked){border-color:var(--g700);background:var(--g100);box-shadow:0 0 0 3px rgba(24,104,74,.12)}
.opt b{font-family:'Montserrat';color:var(--ink);font-size:.95rem}.opt small{display:block;color:var(--tx);margin-top:2px}
.info-i{display:flex;gap:14px;margin-bottom:18px}.info-i .ico{margin:0;width:46px;height:46px}
.map{border-radius:8px;min-height:240px;background:linear-gradient(135deg,var(--g100),#fff);border:1px solid var(--line);display:grid;place-items:center;text-align:center;color:var(--g700)}
.contact-map{height:360px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--g100);box-shadow:var(--sh)}
.contact-map iframe{display:block;width:100%;height:100%;border:0}
.contact-form{padding:32px}.form-heading{padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid var(--line)}.form-heading h2{font-size:1.45rem;margin:12px 0 6px}.form-heading p{margin:0;color:var(--mut)}.contact-form .form-label>span{color:#c23535}
.service-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.service-choice label{cursor:pointer}.service-choice input{position:absolute;opacity:0;pointer-events:none}.service-choice label>span{display:flex;flex-direction:column;gap:3px;height:100%;padding:16px;border:1px solid #cbd9d0;border-radius:8px;background:#fff;transition:.2s}.service-choice i{font-size:1.25rem;color:var(--g600);margin-bottom:6px}.service-choice b{font:700 .9rem 'Montserrat';color:var(--ink)}.service-choice small{font-size:.76rem;color:var(--mut);line-height:1.35}.service-choice input:checked+span{border-color:var(--g700);background:var(--g50);box-shadow:0 0 0 3px rgba(24,104,74,.1)}.service-choice input:focus-visible+span{outline:3px solid var(--y);outline-offset:2px}
.form-submit{display:flex;align-items:center;gap:18px;margin-top:24px}.form-submit small{color:var(--mut);font-size:.78rem;line-height:1.45}.form-submit small i{color:var(--g600);margin-right:5px}
@media(max-width:575px){.contact-form{padding:22px 18px}.service-choice{grid-template-columns:1fr}.service-choice label>span{display:grid;grid-template-columns:30px 1fr;column-gap:8px}.service-choice i{grid-row:1/3}.form-submit{align-items:stretch;flex-direction:column}.form-submit .btn{width:100%}}

/* CTA + footer */
.cta{background:linear-gradient(120deg,var(--g800),var(--g700));border-radius:12px;padding:46px;color:#d6e9de;position:relative;overflow:hidden}
.cta:after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:30px solid rgba(247,240,97,.2)}
.cta h2{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem)}.cta .row{position:relative;z-index:1}
footer{position:relative;isolation:isolate;overflow:hidden;background-color:#082f24;background-image:
  linear-gradient(90deg,rgba(4,38,28,.97) 0%,rgba(5,42,31,.91) 48%,rgba(4,33,25,.68) 100%),
  url('../img/footer-banner.jpeg');background-size:cover;background-position:center right;background-repeat:no-repeat;
  color:#c6dbd0;padding:72px 0 0;font-size:.92rem}
footer:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(2,25,19,.04),rgba(2,25,19,.34))}
footer:after{content:none}
footer>.container{position:relative;z-index:1}
footer h5{color:#fff;font-size:.86rem;margin-bottom:18px;text-transform:uppercase;letter-spacing:.07em}
footer a{color:#c6dbd0}footer a:hover{color:var(--y)}
footer ul{list-style:none;padding:0;margin:0}footer li{margin-bottom:9px}
.footer-contact li{display:flex;align-items:flex-start;gap:11px;margin-bottom:14px;line-height:1.55}.footer-contact li>i{width:18px;flex:0 0 18px;margin-top:4px;color:var(--y);text-align:center}.footer-contact li>a,.footer-contact li>span{min-width:0}
.f-logo{display:inline-flex;flex-direction:column;align-items:center;gap:10px;color:#fff;text-align:center;text-decoration:none}.f-logo img{width:72px;height:72px;object-fit:contain;display:block}.footer-brand-text{display:flex;flex-direction:column;align-items:center;text-align:center}.footer-brand-text b{font:800 1.35rem/1.15 Montserrat;text-transform:uppercase;letter-spacing:.08em;color:var(--y)}.footer-brand-text small{margin-top:4px;font:600 .78rem/1.3 Montserrat;color:#e3eee8}.f-logo:hover .footer-brand-text b{color:#fff}
.footer-social{margin-top:24px}.footer-social h5{font-size:.85rem;margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em;color:#dcece4}
.soc a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:inline-grid;place-items:center;margin-right:8px;color:#fff}
.soc a:hover{background:var(--y);color:var(--g900)}
.copy{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid rgba(255,255,255,.14);margin-top:48px;padding:20px 0;font-size:.84rem;color:#9ebbad}.legal-links{display:flex;align-items:center;gap:22px}.legal-links a{position:relative;color:#b9cec3}.legal-links a+a:before{content:"";position:absolute;left:-11px;top:50%;width:3px;height:3px;border-radius:50%;background:#78998a}.legal-links a:hover{color:var(--y)}
.legal-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:64px;align-items:start;max-width:1080px;margin:auto}.legal-summary{position:sticky;top:110px;padding:28px;border-radius:12px;background:var(--g800);color:#d6e9de}.legal-summary>i{width:52px;height:52px;display:grid;place-items:center;border-radius:10px;background:rgba(247,240,97,.13);color:var(--y);font-size:1.35rem}.legal-summary h2{color:#fff;font-size:1.25rem;margin:20px 0 10px}.legal-summary p{margin:0;font-size:.92rem}.legal-content h2:first-child{margin-top:0}.legal-content a{font-weight:600}.legal-updated{margin-top:36px;padding-top:18px;border-top:1px solid var(--line);color:var(--mut);font-size:.88rem!important}
.fab{position:fixed;right:16px;bottom:18px;z-index:1040;display:flex;flex-direction:column;gap:10px}
.fab a{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.25rem;box-shadow:0 6px 16px rgba(0,0,0,.25);transition:.2s}
.fab a:hover{transform:scale(1.08);color:#fff}
.fab .ph{background:var(--g700)}.fab .zl{background:#0068FF;font:800 .78rem 'Montserrat'}.fab .up{background:var(--y);color:var(--g900);display:none}.fab .up.show{display:grid}

@media(max-width:991px){.sec{padding:60px 0}.hero{padding:50px 0 80px;background-position:62% center}.est{padding:20px}.cta{padding:30px 22px}.panel{padding:26px}.publication-card{grid-template-columns:38% 1fr}.faq-shell{padding:34px}.faq-intro{position:static}.legal-layout{grid-template-columns:1fr;gap:36px}.legal-summary{position:static}}
@media(max-width:575px){.publication-card{grid-template-columns:1fr}.publication-cover{min-height:auto;aspect-ratio:16/9}.publication-facts{grid-template-columns:1fr}}
@media(max-width:575px){.faq-shell{padding:24px 16px;border-radius:12px}.faq-list .accordion-button{padding:15px 14px;gap:10px}.faq-number{flex-basis:30px;width:30px;height:30px}.faq-list .accordion-body{padding:2px 16px 18px 54px}}
@media(max-width:575px){.sec-title.d-flex{align-items:flex-start!important;flex-direction:column;gap:10px}.sec-title.d-flex>a{margin:0;padding-left:0}.sec-title.d-flex>a:hover{background:transparent}}
@media(max-width:575px){.member-body{padding:14px 12px}.member-body .tag{font-size:.58rem;padding:3px 7px}.member-body h3{font-size:.9rem;line-height:1.35}.member-role{font-size:.75rem;line-height:1.35}.member-body p{font-size:.76rem;line-height:1.45}.member-body>a{font-size:.78rem}.member-photo{aspect-ratio:4/4.8}}
@media(max-width:767px){footer{background-position:68% center;background-image:linear-gradient(90deg,rgba(4,38,28,.96),rgba(4,38,28,.82)),url('../img/footer-banner.jpeg')}}
@media(max-width:767px){.copy{align-items:flex-start;flex-direction:column;gap:10px}.legal-links{gap:18px;flex-wrap:wrap}}
@media(max-width:767px){.journey-section{background-attachment:scroll;background-position:65% center}.journey-lead{margin-bottom:32px}.journey-section .tl .it{padding:12px 14px}.journey-section .tl .it:before{left:-51px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.logo-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e9b949;color:#0f4a35;font:800 15px Montserrat}.logo-word{font:800 22px Montserrat;color:#fff;letter-spacing:2px}

/* Directional affordance for actions; navigation and utility links stay uncluttered. */
.btn:not(.btn-close):not(.no-next)::after,
.price-l a::after,
.post .body>a::after,
.member-body>a::after,
.publication-body>a::after,
.sec-title>a::after{content:"\f061";font-family:"Font Awesome 6 Free";font-weight:900;display:inline-block;margin-left:.55rem;font-size:.82em;transition:transform .2s ease}
.btn:not(.btn-close):not(.no-next):hover::after,
.price-l a:hover::after,
.post .body>a:hover::after,
.member-body>a:hover::after,
.publication-body>a:hover::after,
.sec-title>a:hover::after{transform:translateX(4px)}
