/* Khung trang: cả website là một cuốn thư mở. body chính là tờ thư (đã rộng 1200 ở mọi trang). Header cố định là trục trên, tờ thư lăn dưới nó; chân trang là trục dưới. Không đổi bề rộng, lề, không !important, không --v3-*. Chuẩn: nen/khung-trang/CHUAN.md */
html body.sm-body.sm-body { box-shadow: inset 1px 0 0 rgba(220, 187, 116, .28), inset -1px 0 0 rgba(220, 187, 116, .28), inset 4px 0 0 -3px rgba(220, 187, 116, .14), inset -4px 0 0 -3px rgba(220, 187, 116, .14); }
/* Từ 1280: lề gấm 10 px ngoài cột, viền kép, 8 px một khắc như thước giờ */
@media (min-width: 1280px) {
  html body.sm-body.sm-body { box-shadow: 0 0 0 1px rgba(220, 187, 116, .28), 0 0 0 9px #17140F, 0 0 0 10px rgba(220, 187, 116, .28); }
  html body.sm-body.sm-body::after { content: ""; position: absolute; top: 0; bottom: 0; left: -.5rem; right: -.5rem; z-index: 0; display: block; inline-size: auto; block-size: auto; opacity: 1; pointer-events: none; animation: none; background: repeating-linear-gradient(180deg, rgba(220, 187, 116, .28) 0 1px, transparent 1px .5rem) 0 0 / .4375rem 100% no-repeat, repeating-linear-gradient(180deg, rgba(220, 187, 116, .28) 0 1px, transparent 1px .5rem) 100% 0 / .4375rem 100% no-repeat; }
  /* Đầu trục: hai núm sơn trồi ra ngoài lề, cùng ở mái và ở chân */
  body.sm-body header.sm-header.sm-header > .sm-container::before, body.sm-body header.sm-header.sm-header > .sm-container::after,
  body.sm-body footer.sm-footer.sm-footer > .sm-container::before, body.sm-body footer.sm-footer.sm-footer > .sm-container::after { content: ""; position: absolute; z-index: 1; inline-size: .875rem; block-size: 3rem; background: linear-gradient(180deg, #4A3F29 0%, #2A2419 38%, #0E0C09 100%); border: 1px solid rgba(220, 187, 116, .28); box-shadow: inset 0 0 0 2px #14120E, inset 0 0 0 3px rgba(220, 187, 116, .14); pointer-events: none; }
  body.sm-body header.sm-header.sm-header > .sm-container::before, body.sm-body header.sm-header.sm-header > .sm-container::after { top: 50%; margin-block-start: -1.5rem; }
  body.sm-body header.sm-header.sm-header > .sm-container::before { left: -.875rem; border-radius: .25rem 0 0 .25rem; }
  body.sm-body header.sm-header.sm-header > .sm-container::after { right: -.875rem; border-radius: 0 .25rem .25rem 0; }
  body.sm-body footer.sm-footer.sm-footer > .sm-container::before, body.sm-body footer.sm-footer.sm-footer > .sm-container::after { bottom: -1.5rem; }
  body.sm-body footer.sm-footer.sm-footer > .sm-container::before { left: calc(-1rem - .875rem - 1px); border-radius: .25rem 0 0 .25rem; }
  body.sm-body footer.sm-footer.sm-footer > .sm-container::after { right: calc(-1rem - .875rem - 1px); border-radius: 0 .25rem .25rem 0; }
}
/* Dưới 1280: mái nối viền mép màn */
@media (max-width: 1279.98px) {
  body.sm-body header.sm-header.sm-header::before { box-shadow: inset 1px 0 0 rgba(220, 187, 116, .28), inset -1px 0 0 rgba(220, 187, 116, .28), inset 0 -1px 0 rgba(220, 187, 116, .28), inset 0 -3px 0 #14120E, inset 0 -4px 0 rgba(220, 187, 116, .14); }
}
@media print { html body.sm-body.sm-body { box-shadow: none; } html body.sm-body.sm-body::after { display: none; } }

/* Chân trang toàn site: đoạn cuối cuốn thư. Tấm sơn mài rộng đúng tấm dải lịch, trục dưới khép đáy, ấn Thiên Cơ đóng hết chiếu.
   Tự khai biến, không --v3-*, không !important. Nguồn: nen/footer/. Chuẩn: nen/footer/CHUAN.md */
body.sm-body footer.sm-footer.sm-footer { position: relative; overflow: visible;
  --ft-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --ft-ui: 'Lexend Deca', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ft-nga: #EEE6D4; --ft-phu: #CBBFA6; --ft-nhan: #9A8B6D; --ft-vang: #DCBB74; --ft-nen: #14120E;
  --ft-ke: rgba(220, 187, 116, .14); --ft-ke-2: rgba(220, 187, 116, .28);
  --ft-o: #16130E; --ft-o-sang: #231D12; --ft-luoi: #2C2618;
  --ft-mem: cubic-bezier(.2, 0, 0, 1);
  box-sizing: border-box; inline-size: 100%; max-inline-size: 75rem; margin: 3rem auto 0; padding: 0 1rem 1.5rem; background: none; border: 0; box-shadow: none; font-family: var(--ft-ui); font-size: .875rem; line-height: 1.5; color: var(--ft-phu); font-variant-numeric: lining-nums; }
/* Trục dưới của cuốn thư: thanh sơn tròn, rộng đúng cột 1200, khép đáy */
body.sm-body footer.sm-footer.sm-footer::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; display: block; block-size: 1.5rem; inline-size: auto; opacity: 1; pointer-events: none; transform: none; background: linear-gradient(180deg, #2E2719 0%, #1F1B14 42%, #0E0C09 100%); box-shadow: inset 0 1px 0 var(--ft-ke-2), inset 0 -1px 0 var(--ft-ke-2); }
body.sm-body footer.sm-footer.sm-footer :is(.sm-footer__art, .sm-footer__meander, .sm-footer__divider, .sm-footer__divider--lotus) { display: none; }
/* Tấm: mép và bề rộng trùng tấm dải lịch */
body.sm-body footer.sm-footer.sm-footer > .sm-container { position: relative; z-index: 1; box-sizing: border-box; inline-size: 100%; max-inline-size: none; margin: 0; padding: 0; background: linear-gradient(180deg, #1F1B14 0%, #17140F 34%, #14120E 100%); border: 1px solid var(--ft-ke-2); border-block-end: 0; border-radius: .25rem .25rem 0 0; box-shadow: inset 0 0 0 2px var(--ft-nen), inset 0 0 0 3px var(--ft-ke); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1.2fr) minmax(0, 1.2fr); gap: 0; margin: 0; padding: 3px 3px 0; border: 0; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col { position: relative; min-inline-size: 0; margin: 0; padding: 0; text-align: start; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__col::after, body.sm-body footer.sm-footer.sm-footer .sm-footer__col + .sm-footer__col::before { display: none; }

/* Hàng tên: logo khoá khối, lời, liên hệ */
body.sm-body footer.sm-footer.sm-footer .sm-footer__col--brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: 1.5rem; padding: 1.25rem calc(1.5rem - 3px); border-block-end: 1px solid var(--ft-ke-2); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo { flex: none; display: inline-flex; flex-wrap: nowrap; align-items: center; gap: .75rem; min-block-size: 2.75rem; max-inline-size: none; margin: 0; padding: 0; color: var(--ft-vang); text-decoration: none; opacity: 1; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo:hover { opacity: 1; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-icon { display: block; flex: none; inline-size: 2.75rem; block-size: 2.75rem; color: var(--ft-vang); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-words { display: inline-grid; grid-template-columns: max-content; gap: 0; flex: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-name { display: block; margin: 0; padding: 0; font-family: var(--ft-serif); font-size: 2rem; font-weight: 600; font-style: normal; line-height: 1; letter-spacing: .018em; text-transform: none; white-space: nowrap; color: var(--ft-nga); background: none; -webkit-text-fill-color: currentColor; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-name strong { font-weight: 600; color: var(--ft-vang); -webkit-text-fill-color: currentColor; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-line { display: block; inline-size: 100%; block-size: 1px; margin: .1875rem 0 .25rem; background: var(--ft-ke-2); opacity: 1; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-sub { display: block; inline-size: 0; min-inline-size: 100%; margin: 0; overflow: hidden; font-family: var(--ft-ui); font-size: .75rem; font-weight: 400; line-height: 1; letter-spacing: 0; color: var(--ft-nhan); text-align: justify; text-align-last: justify; white-space: normal; text-transform: uppercase; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__desc { max-inline-size: none; margin: 0; padding-inline-start: 1.5rem; border-inline-start: 1px solid var(--ft-ke-2); font-family: var(--ft-serif); font-size: 1.125rem; font-weight: 600; font-style: normal; line-height: 1.3; color: var(--ft-phu); text-align: start; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__contact { display: flex; flex-wrap: nowrap; align-items: center; gap: 1rem; max-inline-size: none; margin: 0; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__social { display: flex; flex-wrap: nowrap; align-items: center; gap: .5rem; margin: 0; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__social-link { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; min-inline-size: 0; min-block-size: 0; margin: 0; padding: 0; border: 1px solid var(--ft-ke-2); border-radius: .25rem; background: rgba(0, 0, 0, .25); color: var(--ft-phu); box-shadow: none; transition: color 90ms var(--ft-mem), border-color 90ms var(--ft-mem); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__social-link svg { inline-size: 1.125rem; block-size: 1.125rem; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__social-link:hover { border-color: var(--ft-vang); background: rgba(0, 0, 0, .25); color: var(--ft-vang); transform: none; box-shadow: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__email { display: inline-flex; align-items: center; gap: .5rem; min-block-size: 2.75rem; margin: 0; padding: 0; font-family: var(--ft-ui); font-size: .875rem; font-weight: 400; color: var(--ft-phu); text-decoration: none; white-space: nowrap; transition: color 90ms var(--ft-mem); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__email svg { flex: none; inline-size: 1rem; block-size: 1rem; color: var(--ft-nhan); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__email:hover { color: var(--ft-vang); }

/* Ba khoang link: một lưới 5 cột 4 hàng, hàng cao bằng nhau */
body.sm-body footer.sm-footer.sm-footer :is(.sm-footer__col--tools, .sm-footer__col--explore, .sm-footer__col--info) { display: grid; grid-template-rows: auto 1fr; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col--tools { grid-column: 1; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore { grid-column: 2; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col--info { grid-column: 3; }
body.sm-body footer.sm-footer.sm-footer :is(.sm-footer__col--explore, .sm-footer__col--info) { border-inline-start: 1px solid var(--ft-ke-2); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__heading { display: flex; align-items: center; min-block-size: 3rem; margin: 0; padding: 0 1rem; font-family: var(--ft-serif); font-size: 1.25rem; font-weight: 600; font-style: normal; line-height: 1.2; letter-spacing: 0; text-transform: none; color: var(--ft-vang); background: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__heading::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__heading::after { display: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col--tools .sm-footer__heading { padding-inline-start: calc(1.5rem - 3px); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; background: var(--ft-luoi); border-block-start: 1px solid var(--ft-luoi); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid > .sm-footer__links { display: contents; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid > .sm-footer__links::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid > .sm-footer__links + .sm-footer__links::before { display: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__col:is(.sm-footer__col--explore, .sm-footer__col--info) .sm-footer__links { display: grid; grid-auto-rows: 1fr; gap: 1px; min-inline-size: 0; margin: 0; padding: 0; list-style: none; background: var(--ft-luoi); border-block-start: 1px solid var(--ft-luoi); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links li { min-inline-size: 0; margin: 0; padding: 0; background: var(--ft-o); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links li::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__links li::after { display: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links a, body.sm-body footer.sm-footer.sm-footer .sm-footer__links-more a { position: relative; display: flex; align-items: center; block-size: 100%; min-block-size: 2.75rem; min-inline-size: 0; margin: 0; padding: .25rem 1rem; box-sizing: border-box; overflow-wrap: anywhere; font-family: var(--ft-serif); font-size: 1rem; font-weight: 600; line-height: 1.15; letter-spacing: 0; text-transform: none; text-decoration: none; color: var(--ft-nga); background: none; transition: color 90ms var(--ft-mem), background-color 90ms var(--ft-mem); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links a::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__links a::after { display: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links a:hover { padding: .25rem 1rem; color: var(--ft-vang); background: var(--ft-o-sang); transform: none; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid li:nth-child(3n+1) a, body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid li:nth-child(3n+1) a:hover { padding-inline-start: calc(1.5rem - 3px); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__links-more a { font-family: var(--ft-ui); font-size: .875rem; font-weight: 500; }

/* Chân tấm: bản quyền, câu khắc, ấn khép trang */
body.sm-body footer.sm-footer.sm-footer .sm-footer__bottom { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 1.5rem; min-block-size: 5rem; margin: 0 3px; padding: .75rem 5.25rem .75rem calc(1.5rem - 3px); border: 0; border-block-start: 1px solid var(--ft-ke-2); text-align: start; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__attribution { display: grid; justify-items: start; align-self: center; gap: 0; min-inline-size: 0; margin: 0; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__copy { margin: 0; font-family: var(--ft-ui); font-size: .75rem; font-style: normal; line-height: 1.5; color: var(--ft-nhan); text-align: start; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__attribution .sm-footer__ecosystem { display: flex; align-items: center; flex-wrap: wrap; column-gap: .25rem; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__attribution .sm-footer__ecosystem a { display: inline-flex; align-items: center; min-block-size: 1.75rem; min-inline-size: 0; margin: 0; padding: 0; font-size: .875rem; font-weight: 500; color: var(--ft-phu); text-decoration: none; transition: color 90ms var(--ft-mem); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__attribution .sm-footer__ecosystem a:hover { color: var(--ft-vang); }
body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg { margin: 0; font-family: var(--ft-serif); font-size: 1.5rem; font-weight: 600; font-style: normal; line-height: 1.2; letter-spacing: 0; color: var(--ft-nga); text-align: end; opacity: 1; }
body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg::after { content: ""; position: absolute; right: calc(1.5rem - 3px); bottom: -1.25rem; z-index: 2; display: block; inline-size: 2.75rem; block-size: 5.25rem; margin: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 84'%3E%3Cpath fill='%23C48A72' d='M2.2 1.3 14 .8l16 .7 12-.5q1.3.2 1.2 1.6l.4 17.4-.7 24 .5 18-.4 20q-.1 1.3-1.4 1.2l-17.6.4-14-.6-7.6.4Q1 83.2 1 81.8L.6 60l.6-26-.5-20L1 2.6q.1-1.2 1.2-1.3Z'/%3E%3Cpath fill='%2314120E' stroke='%2314120E' stroke-width='.35' d='M32.6 19.7Q32.6 19.7 32.9 19.9Q33.2 20.1 33.7 20.5Q34.1 20.9 34.7 21.4Q35.2 21.8 35.7 22.2Q35.6 22.5 35.4 22.6Q35.2 22.7 34.9 22.7H9L8.8 21.8H30.8ZM30.8 11.1Q30.8 11.1 31.1 11.4Q31.4 11.6 31.9 12Q32.4 12.4 32.9 12.8Q33.4 13.2 33.8 13.6Q33.8 13.8 33.6 14Q33.4 14.1 33.1 14.1H10.8L10.6 13.2H29.1ZM22.8 22Q23.2 23.9 24 25.7Q24.9 27.6 26.4 29.3Q27.9 31.1 30.3 32.6Q32.6 34.2 36 35.4L36 35.8Q35 35.9 34.4 36.3Q33.8 36.8 33.6 37.8Q30.5 36.4 28.5 34.5Q26.4 32.6 25.2 30.5Q23.9 28.4 23.3 26.3Q22.6 24.1 22.3 22.2ZM22.9 13.4Q22.9 16.3 22.8 18.8Q22.7 21.4 22.3 23.7Q21.9 26 21 28Q20.1 30.1 18.5 31.8Q16.9 33.6 14.5 35.1Q12 36.6 8.4 37.9L8 37.4Q11.8 35.7 14.1 33.7Q16.4 31.8 17.7 29.6Q19 27.3 19.5 24.8Q20 22.3 20.1 19.4Q20.2 16.6 20.2 13.4ZM35.2 50.9Q35.1 51.1 34.6 51.2Q34.2 51.3 33.5 50.9L34.4 50.8Q33.8 51.7 32.9 52.8Q32 53.9 31 55Q29.9 56.1 28.9 56.9L28.9 56.6H30Q29.9 57.4 29.6 58Q29.3 58.5 29 58.7L27.8 56.2Q27.8 56.2 28.1 56.2Q28.3 56.1 28.5 56Q29.1 55.5 29.7 54.6Q30.3 53.8 30.9 52.8Q31.5 51.8 31.9 50.8Q32.4 49.9 32.6 49.2ZM25.2 50.8Q25.1 51 24.6 51.1Q24.2 51.3 23.5 51L24.3 50.8Q23.7 51.7 22.7 52.9Q21.7 54.1 20.6 55.3Q19.5 56.5 18.4 57.3L18.4 57H19.5Q19.4 57.8 19.2 58.4Q18.9 58.9 18.6 59.1L17.3 56.6Q17.3 56.6 17.6 56.5Q17.8 56.5 18 56.4Q18.6 55.8 19.3 54.9Q19.9 54 20.6 53Q21.2 52 21.7 51Q22.2 50 22.5 49.3ZM33.2 47.6Q33.1 47.8 32.7 48Q32.3 48.1 31.5 47.9L32.4 47.7Q32 48.4 31.3 49.3Q30.6 50.2 29.8 51Q29.1 51.9 28.3 52.5V52.1H29.4Q29.4 53 29.1 53.5Q28.8 54 28.5 54.1L27.3 51.8Q27.3 51.8 27.5 51.7Q27.8 51.6 27.9 51.5Q28.4 51 28.9 50Q29.4 49.1 29.8 48Q30.2 46.9 30.3 46.3ZM23.3 47.4Q23.2 47.7 22.8 47.9Q22.4 48 21.6 47.7L22.5 47.6Q22 48.3 21.3 49.2Q20.6 50 19.8 50.9Q19 51.7 18.3 52.3L18.2 51.9H19.4Q19.3 52.8 19.1 53.4Q18.8 53.9 18.5 54.1L17.2 51.6Q17.2 51.6 17.4 51.5Q17.7 51.5 17.8 51.4Q18.4 50.9 18.9 49.9Q19.5 48.9 19.9 47.9Q20.4 46.9 20.5 46.2ZM28.2 56.2Q29 56.2 30.6 56.1Q32.3 55.9 34 55.8L34 56.3Q33.6 56.5 32.8 56.8Q31.9 57.1 31 57.4Q30 57.7 29 58.1ZM27.9 51.7Q28.6 51.7 29.8 51.6Q31.1 51.6 32.3 51.5L32.4 51.9Q32.1 52.1 31.4 52.4Q30.8 52.6 30.1 52.9Q29.3 53.3 28.6 53.6ZM22.5 58.8Q22.5 59.1 22.3 59.3Q22.1 59.5 21.5 59.5V61.1Q21.5 62.4 21.3 64.1Q21.1 65.7 20.5 67.4Q19.8 69.1 18.6 70.6Q17.5 72.1 15.5 73.2L15.1 72.8Q16.5 71.6 17.4 70.1Q18.2 68.6 18.6 67Q19.1 65.5 19.2 63.9Q19.4 62.3 19.4 61V58.5ZM17.8 56.8Q18.7 56.8 20.3 56.6Q21.9 56.5 23.6 56.3L23.7 56.8Q23.2 56.9 22.4 57.3Q21.6 57.6 20.5 57.9Q19.5 58.3 18.5 58.7ZM17.8 51.7Q18.4 51.7 19.6 51.6Q20.8 51.5 22 51.4L22.1 51.9Q21.8 52.1 21.2 52.3Q20.6 52.6 19.9 52.9Q19.1 53.2 18.5 53.5ZM34.4 63.4Q34.3 63.7 34 63.8Q33.8 63.9 33.2 63.8Q31.6 67.4 28.9 69.7Q26.3 72 23 73.2L22.8 72.8Q25.5 71.2 27.8 68.6Q30.1 65.9 31.5 62.1ZM28 46.1Q28 46.4 27.7 46.6Q27.5 46.9 26.9 46.9Q26.8 50.7 27 54.2Q27.2 57.7 27.8 60.7Q28.5 63.7 29.7 66.1Q30.9 68.4 32.8 69.8Q33.2 70.1 33.4 70.1Q33.6 70.1 33.8 69.6Q34 69.1 34.4 68.1Q34.8 67.1 35 66.2L35.4 66.3L34.9 70.8Q35.6 71.7 35.7 72.2Q35.9 72.6 35.6 72.9Q35.3 73.4 34.6 73.3Q33.9 73.3 33.2 72.9Q32.4 72.5 31.8 72Q29.5 70.3 28.1 67.6Q26.7 65 25.9 61.6Q25.2 58.2 24.9 54.2Q24.7 50.2 24.7 45.7ZM20.8 64.3Q22.4 64.7 23.3 65.2Q24.2 65.8 24.7 66.4Q25.1 67 25.1 67.6Q25.1 68.2 24.9 68.5Q24.6 68.9 24.1 68.9Q23.7 69 23.1 68.6Q23 67.9 22.6 67.2Q22.2 66.4 21.6 65.7Q21.1 65 20.5 64.5ZM29.7 58Q30.9 58.3 31.5 58.8Q32.1 59.4 32.2 59.8Q32.3 60.3 32.1 60.7Q31.8 61 31.4 61.1Q30.9 61.2 30.5 60.8Q30.5 60.1 30.1 59.4Q29.8 58.6 29.4 58.2ZM32.8 53.9Q34.2 54.6 34.8 55.4Q35.4 56.2 35.5 56.9Q35.6 57.6 35.3 58Q35 58.5 34.5 58.5Q34.1 58.6 33.6 58.1Q33.7 57.1 33.3 56Q32.9 54.9 32.4 54.1ZM22.4 54.1Q23.6 54.9 24.1 55.7Q24.6 56.5 24.7 57.2Q24.8 57.9 24.5 58.3Q24.2 58.7 23.8 58.8Q23.4 58.8 23 58.4Q23 57.4 22.7 56.2Q22.4 55 22 54.2ZM33.5 59.4Q33.5 59.4 34 59.7Q34.4 60.1 35 60.6Q35.6 61 36 61.5Q35.9 62 35.3 62H16.6L16.3 61.1H32.2ZM13.9 55.3Q15.5 56 16.4 56.9Q17.2 57.7 17.4 58.5Q17.6 59.2 17.4 59.7Q17.2 60.2 16.7 60.3Q16.2 60.4 15.7 60Q15.5 59.3 15.2 58.4Q14.9 57.6 14.4 56.8Q14 56 13.5 55.4ZM15.3 46Q15.2 46.3 15 46.6Q14.8 46.8 14.2 46.9V72.4Q14.2 72.5 13.9 72.8Q13.7 73 13.3 73.1Q12.9 73.3 12.5 73.3H12V45.7ZM13.9 53.3Q13.3 57 12 60.3Q10.7 63.5 8.4 66.2L8 65.8Q9 64 9.8 61.9Q10.5 59.7 11 57.4Q11.4 55.1 11.7 52.8H13.9ZM15.6 51.1Q15.6 51.1 16 51.4Q16.4 51.8 16.9 52.3Q17.5 52.7 17.9 53.2Q17.8 53.7 17.1 53.7H8.7L8.5 52.8H14.3Z'/%3E%3Cpath fill='none' stroke='%2314120E' stroke-width='.9' d='M5 4.6h34q.4 0 .4.4v74q0 .4-.4.4H5q-.4 0-.4-.4V5q0-.4.4-.4Z'/%3E%3C/svg%3E") center / contain no-repeat; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6)); pointer-events: none; }
body.sm-body footer.sm-footer.sm-footer a:focus-visible { outline: 2px solid var(--ft-vang); outline-offset: -2px; border-radius: .125rem; }
body.sm-body footer.sm-footer.sm-footer :is(.sm-footer__logo, .sm-footer__social-link, .sm-footer__email, .sm-footer__ecosystem a):focus-visible { outline-offset: 2px; }

@media (max-width: 1023px) {
  body.sm-body footer.sm-footer.sm-footer .sm-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--brand { grid-template-columns: auto minmax(0, 1fr); row-gap: .75rem; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__desc { padding-inline-start: 1.25rem; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__contact { grid-column: 1 / -1; justify-content: space-between; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--tools { grid-column: 1 / -1; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid { border-block-end: 1px solid var(--ft-luoi); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore { grid-column: 1; border-inline-start: 0; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--info { grid-column: 2; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore .sm-footer__heading { padding-inline-start: calc(1.5rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore li a, body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore li a:hover { padding-inline-start: calc(1.5rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg { font-size: 1.25rem; }
}
/* Điện thoại: trang V3 không có đệm đáy nên chừa 72 px cho nút nổi; trang cũ body đã có đệm */
@media (max-width: 768px) {
  body.sm-body footer.sm-footer.sm-footer { margin-block-start: 2rem; }
  body.sm-v3 footer.sm-footer.sm-footer.sm-footer { padding-block-end: calc(1.5rem + 4.5rem + env(safe-area-inset-bottom, 0px)); }
  body.sm-v3 footer.sm-footer.sm-footer.sm-footer::before { bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__col--brand { grid-template-columns: minmax(0, 1fr); padding: 1rem calc(1rem - 3px); row-gap: .625rem; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-name { font-size: 1.75rem; letter-spacing: .075em; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__logo-line { margin-block: .125rem .1875rem; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__desc { padding: 0; border: 0; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__contact { grid-column: auto; flex-wrap: wrap; justify-content: flex-start; gap: .25rem 1rem; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__heading, body.sm-body footer.sm-footer.sm-footer .sm-footer__col--tools .sm-footer__heading, body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore .sm-footer__heading { padding-inline: calc(1rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__links a, body.sm-body footer.sm-footer.sm-footer .sm-footer__links a:hover, body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid li:nth-child(3n+1) a, body.sm-body footer.sm-footer.sm-footer .sm-footer__tools-grid li:nth-child(3n+1) a:hover, body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore li a, body.sm-body footer.sm-footer.sm-footer .sm-footer__col--explore li a:hover { padding: .25rem .5rem .25rem calc(1rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__bottom { grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: .875rem 4.25rem 1rem calc(1rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg { text-align: start; }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg::after { right: calc(1rem - 3px); }
  body.sm-body footer.sm-footer.sm-footer .sm-footer__attribution .sm-footer__ecosystem a { min-block-size: 2.75rem; }
}
@media (prefers-reduced-motion: reduce) { body.sm-body footer.sm-footer.sm-footer * { transition: none; } }
@media print { body.sm-body footer.sm-footer.sm-footer::before, body.sm-body footer.sm-footer.sm-footer .sm-footer__easter-egg::after { display: none; } body.sm-body footer.sm-footer.sm-footer > .sm-container { background: none; box-shadow: none; } }
