/* Trà Mộc Sơn — trang trong (cửa hàng, SP, giới thiệu, liên hệ, trang chính sách, Trà đàm). Tiền tố txi/txs/txp/txa/txc/txb (không trùng trang chủ tx-*).
   Khung 1440: cửa hàng mockup 1025px (x1.405), SP 892 (x1.614), giới thiệu 815 (x1.767), liên hệ 962 (x1.497). */
.txi-page { background: #fff; color: var(--tx-text); }
.txi-page p:not([class]) { margin-bottom: 1em; }
.txi-w { max-width: 1296px; margin: 0 auto; }
.txi-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #4b544d; font-size: 15px; }
.txi-crumb a { color: #4b544d !important; } .txi-crumb a:hover { color: var(--tx-g2) !important; }
.txi-crumb i { font-style: normal; color: #8a918b; }
.txi-crumb span { color: #2c3a30; }
.woocommerce-page .shop-page-title, .woocommerce-page .product-page-title, .txi-page ~ .page-title, .txi-simple .page-title { display: none !important; }
#main { background: #fff; }
.txi-page .tx-rule { margin: 14px auto 0; }
.txi-band { background: var(--tx-cream2); padding: 34px 0 54px; text-align: center; }
.txi-band .txi-crumb { justify-content: flex-start; margin-bottom: 26px; }
.txi-h1 { color: var(--tx-g2) !important; font-size: 52px !important; font-weight: 700 !important; line-height: 1.18 !important; margin: 0 !important; }
.txi-lead { color: #3f4742; font-size: 18px; margin-top: 18px; }
.txi-doc { max-width: 900px; padding: 56px 0 70px; font-size: 17px; line-height: 1.75; }
.txi-doc h2 { color: var(--tx-g2) !important; font-size: 28px !important; margin: 34px 0 14px !important; }
.txi-doc h2:first-child { margin-top: 0 !important; }
.txi-doc ul { margin: 0 0 1.2em 1.2em; } .txi-doc li { margin-bottom: 6px; }
.txi-doc a { color: var(--tx-g2) !important; text-decoration: underline; }

/* ---------- cửa hàng ---------- */
.txs-hero { position: relative; background: var(--tx-cream2) var(--hero) right center / auto 100% no-repeat; min-height: 218px; padding: 30px 0 0; }
.txs-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f7f2e8 0, #f7f2e8 34%, rgba(247, 242, 232, 0) 56%); }
.txs-hero .txi-w { position: relative; }
.txs-h1 { color: var(--tx-g) !important; font-size: 64px !important; font-weight: 700 !important; line-height: 1.12 !important; margin: 22px 0 8px !important; }
.txs-lead { color: #2d3530; font-size: 21px; }
.txs-main { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 0 66px; padding: 44px 0 70px; position: relative; }
.txs-main::before { content: ""; position: absolute; left: 293px; top: 44px; bottom: 70px; width: 1px; background: #ebe6da; }
.txs-fbox > summary { list-style: none; display: flex; justify-content: space-between; align-items: baseline; padding: 0 0 16px; border-bottom: 1px solid #e3ddcf; cursor: default; }
.txs-fbox > summary::-webkit-details-marker { display: none; }
.txs-ft span { color: #1f2a22; font-family: var(--tx-serif) !important; font-size: 22px; font-weight: 600; }
a.txs-clear { color: #3b443e !important; font-size: 14px; }
.txs-grp { padding: 22px 0 20px; border-bottom: 1px solid #e3ddcf; }
.txs-grp h4 { color: #1f2a22 !important; font-family: var(--tx-serif) !important; font-size: 21px !important; font-weight: 600 !important; margin: 0 0 14px !important; }
.txs-ck { display: flex !important; align-items: center; gap: 14px; margin: 0 0 12px !important; color: #3a433d; font-size: 17px; font-weight: 400 !important; cursor: pointer; position: relative; }
.txs-grp-w { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; } .txs-grp-w h4 { grid-column: 1 / -1; }
.txs-ck input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0 !important; }
.txs-ck i { flex: 0 0 auto; width: 24px; height: 24px; border: 1.6px solid #a9aea8; border-radius: 3px; background: #fff; display: inline-flex; align-items: center; justify-content: center; }
.txs-ck input:checked + i { background: var(--tx-btn); border-color: var(--tx-btn); }
.txs-ck input:checked + i::after { content: ""; width: 7px; height: 13px; border: solid #fff; border-width: 0 2.4px 2.4px 0; transform: rotate(45deg) translate(-1px, -1px); }
.txs-ck input:focus-visible + i { outline: 2px solid var(--tx-g2); outline-offset: 2px; }
.txs-range { position: relative; height: 26px; margin: 4px 6px 4px; }
.txs-range::before { content: ""; position: absolute; left: 0; right: 0; top: 12px; height: 3px; background: #d9e6cf; border-radius: 2px; }
.txs-range i { position: absolute; top: 12px; height: 3px; background: var(--tx-btn); left: 0; right: 0; }
.txs-range input { position: absolute; left: -6px; width: calc(100% + 12px); top: 0; height: 26px; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; -webkit-appearance: none; appearance: none; pointer-events: none; }
.txs-range input::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--tx-btn); border: 0; pointer-events: auto; cursor: pointer; }
.txs-range input::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--tx-btn); border: 0; pointer-events: auto; cursor: pointer; }
.txs-rv { display: flex; justify-content: space-between; color: #2f3832; font-size: 15px; margin: 6px 0 16px; }
.txs-apply { width: 100%; min-height: 48px; font-size: 17px; box-shadow: none; border-radius: 2px; text-transform: none; letter-spacing: 0; margin: 0 !important; }
.txs-help { display: flex; gap: 18px; align-items: flex-start; margin: 34px -26px 0; padding: 30px 24px; background: #f4f6ec; }
.txs-help > img { width: 54px; height: 54px; padding: 10px; border-radius: 50%; background: #e5ecd8; object-fit: contain; flex: 0 0 auto; }
.txs-help h3 { color: #1f3a28 !important; font-size: 18px !important; font-weight: 600 !important; margin: 0 0 6px !important; }
.txs-help p { color: #59615b; font-size: 16px; margin: 0 0 14px !important; }
.txs-help a { display: inline-flex; align-items: center; gap: 12px; color: #1f2a22 !important; font-size: 19px; font-weight: 500; }
.txs-help a img { width: 22px; height: 22px; }
.txs-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.txs-count { color: #3a433d; font-size: 16px; }
.txs-sort select { margin: 0 !important; height: 42px; min-width: 222px; padding: 0 36px 0 14px !important; border: 1px solid #ddd8cc !important; border-radius: 3px; box-shadow: none !important; background-color: #fff; color: #2f3832; font-size: 15px !important; }
.txs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 25px; }
.txs-card { text-align: center; }
.txs-card[hidden] { display: none !important; }
.txs-img { display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #f1ede2; }
.txs-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.txs-img:hover img { transform: scale(1.04); }
.txs-name { color: var(--tx-g) !important; font-size: 19px !important; font-weight: 500 !important; line-height: 1.3 !important; margin: 20px 10px 8px !important; }
.txs-name a { color: var(--tx-g) !important; }
.txs-price { color: var(--tx-g) !important; font-family: var(--tx-serif) !important; font-size: 25px; font-weight: 600; line-height: 1.2; margin-bottom: 14px; }
.txs-btn { width: calc(100% - 20px); min-height: 49px; border-radius: 2px; font-size: 17px; box-shadow: none; text-transform: none; letter-spacing: 0; margin: 0 !important; }
.txs-empty { padding: 40px; text-align: center; background: var(--tx-cream); color: #3a433d; font-size: 17px; }
.txs-empty a { color: var(--tx-g2) !important; font-weight: 600; }
.txs-pages { display: flex; justify-content: center; gap: 18px; margin-top: 36px; }
.txs-pages button { width: 45px; height: 45px; min-height: 0; margin: 0 !important; padding: 0; border: 1px solid #ddd8cc; background: #fff; color: #2f3832; font-size: 16px; font-weight: 500; border-radius: 2px; display: inline-flex; align-items: center; justify-content: center; text-transform: none; letter-spacing: 0; }
.txs-pages button.on { background: var(--tx-btn); border-color: var(--tx-btn); color: #fff; }
.txs-pages button[disabled] { opacity: .45; cursor: default; }
.txs-pages img { width: 16px; height: 16px; }
.txs-bnf { background: var(--tx-cream2); border-bottom: 1px solid #efe9da; }
.txs-bnf-in { max-width: 1296px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 30px 0; }
.txs-bnf-i { display: flex; align-items: center; justify-content: center; gap: 26px; min-height: 90px; }
.txs-bnf-i + .txs-bnf-i { border-left: 1px solid #ddd4bf; }
.txs-bnf-i img { width: 72px; height: 72px; object-fit: contain; }
.txs-bnf-i h3 { color: var(--tx-g2) !important; font-size: 21px !important; font-weight: 500 !important; margin: 0 0 4px !important; }
.txs-bnf-i span { color: #59615b; font-size: 17px; }

/* ---------- sản phẩm ---------- */
.txp-page > .txi-w:first-child .txi-crumb { padding: 22px 0 18px; font-size: 15px; }
.txp-top { display: grid; grid-template-columns: minmax(0, 739fr) minmax(0, 489fr); gap: 46px; align-items: start; }
.txp-main { aspect-ratio: 739 / 670; overflow: hidden; background: #f1ede2; }
.txp-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txp-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: 24px; }
.txp-thumbs button { margin: 0 !important; padding: 0; min-height: 0; border: 2px solid transparent; aspect-ratio: 158 / 142; overflow: hidden; background: #f1ede2; border-radius: 0; }
.txp-thumbs button.on { border-color: var(--tx-btn); padding: 4px; }
.txp-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txp-sum { padding-top: 6px; }
.txp-kick { color: #4f5852; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 10px; }
.txp-title { max-width: 430px; color: #1f2a22 !important; font-size: 40px !important; font-weight: 600 !important; line-height: 1.22 !important; margin: 0 0 18px !important; }
.txp-price { color: var(--tx-g2); font-size: 30px; font-weight: 700; padding-bottom: 22px; border-bottom: 1px solid #e3ddcf; margin-bottom: 26px; }
.txp-lead { color: #3a433d; font-size: 17px; line-height: 1.6; margin-bottom: 14px; }
.txp-feat { list-style: none; margin: 0 0 26px !important; padding: 0; }
.txp-feat li { display: flex; align-items: center; gap: 14px; margin: 0 0 10px !important; color: #3a433d; font-size: 17px; }
.txp-feat img { width: 21px; height: 21px; flex: 0 0 auto; }
.txp-feat b { color: var(--tx-g2); font-weight: 500; }
.txp-opt { display: flex; align-items: center; gap: 30px; margin-bottom: 22px; }
.txp-opt > span { width: 100px; color: #3a433d; font-size: 16px; }
.txp-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 88px; height: 44px; padding: 0 18px; border: 2px solid var(--tx-g2); border-radius: 2px; color: var(--tx-g2); font-size: 16px; font-weight: 500; }
.txp-qty { display: inline-flex; border: 1px solid #ddd8cc; border-radius: 2px; height: 44px; }
.txp-qty button { width: 44px; min-height: 0; height: 42px; margin: 0 !important; padding: 0; background: none; border: 0; color: #1f2a22; font-size: 21px; font-weight: 400; }
.txp-qty input { width: 48px !important; height: 42px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-left: 1px solid #ddd8cc !important; border-right: 1px solid #ddd8cc !important; box-shadow: none !important; text-align: center; font-size: 16px !important; -moz-appearance: textfield; }
.txp-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.txp-act { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 30px 0 24px; padding-bottom: 26px; border-bottom: 1px solid #e3ddcf; }
.txp-act .txp-buy { min-height: 56px; border-radius: 2px; font-size: 18px; box-shadow: none; text-transform: none; letter-spacing: 0; margin: 0; }
.txp-line { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; border: 2px solid var(--tx-g2); border-radius: 2px; color: var(--tx-g2) !important; font-size: 18px; font-weight: 500; }
.txp-badges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: center; }
.txp-badges > div { display: flex; flex-direction: column; align-items: center; gap: 12px; color: #3a433d; font-size: 15px; }
.txp-badges > div + div { border-left: 1px solid #e3ddcf; }
.txp-badges img { width: 46px; height: 46px; }
a.txp-call { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 28px; color: #2f3832 !important; font-size: 18px; }
.txp-call img { width: 21px; height: 21px; } .txp-call strong { color: #1f2a22; font-weight: 700; }
.txp-tabs { display: flex; justify-content: center; gap: 10px; border-bottom: 1px solid #e3ddcf; margin-top: 56px; }
.txp-tabs button { margin: 0 0 -1px !important; min-height: 0; padding: 16px 40px 18px; background: none; border: 0; border-bottom: 3px solid transparent; color: #3a433d; font-size: 18px; font-weight: 400; text-transform: none; letter-spacing: 0; border-radius: 0; }
.txp-tabs button.on { color: var(--tx-g); font-weight: 600; border-bottom-color: var(--tx-g); }
.txp-pane { padding: 40px 0 56px; }
.txp-desc { display: grid; grid-template-columns: minmax(0, 600fr) minmax(0, 636fr); gap: 60px; align-items: start; }
.txp-h2 { color: var(--tx-g) !important; font-size: 35px !important; font-weight: 600 !important; line-height: 1.24 !important; margin: 0 0 24px !important; }
.txp-desc-c { color: #3a433d; font-size: 17px; line-height: 1.75; max-width: 600px; }
.txp-desc-c p { margin-bottom: 18px; }
.txp-dl { display: grid; grid-template-columns: 105px 1fr; gap: 10px 0; margin: 26px 0 0; padding-top: 26px; border-top: 1px solid #e3ddcf; max-width: 470px; font-size: 17px; }
.txp-dl dt { color: #3a433d; font-weight: 400; text-transform: none !important; } .txp-dl dd { color: #1f2a22; margin: 0; text-transform: none !important; }
.txp-desc-img { margin: 0; aspect-ratio: 636 / 449; overflow: hidden; background: #f1ede2; }
.txp-desc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txp-spec table { max-width: 860px; margin: 0 auto; border-collapse: collapse; width: 100%; }
.txp-spec th, .txp-spec td { padding: 14px 18px !important; border-bottom: 1px solid #e3ddcf; text-align: left; font-size: 16.5px; text-transform: none; letter-spacing: 0; }
.txp-spec th { width: 220px; color: var(--tx-g2); font-weight: 600; background: var(--tx-cream); }
.txp-spec p { text-align: center; font-size: 17px; } .txp-spec a { color: var(--tx-g2) !important; font-weight: 600; }
.txp-brew { background: var(--tx-cream); padding: 30px 0 32px; text-align: center; }
.txp-h2c { color: var(--tx-g) !important; font-size: 31px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 0 !important; text-align: center; }
.txp-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 30px; }
.txp-steps > div { display: flex; flex-direction: column; align-items: center; padding: 0 30px; }
.txp-steps > div + div { border-left: 1px solid #ddd4bf; }
.txp-steps img { width: 60px; height: 60px; object-fit: contain; margin-bottom: 18px; }
.txp-steps h3 { color: var(--tx-g) !important; font-size: 19.5px !important; font-weight: 600 !important; margin: 0 0 8px !important; }
.txp-steps span { color: #3a433d; font-size: 16px; }
.txp-rel { padding: 36px 0 30px; text-align: center; }
.txp-rel-s { color: #3a433d; font-size: 17px; margin-top: 14px; }
.txp-rel-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; margin-top: 30px; text-align: left; }
.txp-rc { text-align: left; }
.txp-rc .txs-img { aspect-ratio: 297 / 252; }
.txp-rc .txs-name { font-size: 19px !important; font-weight: 600 !important; color: #1f2a22 !important; margin: 18px 0 8px !important; min-height: 2.6em; }
.txp-rc .txs-name a { color: #1f2a22 !important; }
.txp-rc .txs-price { font-family: "Be Vietnam Pro", sans-serif !important; font-size: 19px; font-weight: 700; color: var(--tx-g); }
.txp-rc .txs-btn { width: 100%; }

/* ---------- giới thiệu ---------- */
.section.txa-top { padding: 22px 0 36px !important; text-align: center; }
.txa-crumb { justify-content: flex-start; font-size: 14px; }
.txa-h1 { color: var(--tx-g) !important; font-size: 54px !important; font-weight: 600 !important; line-height: 1.15 !important; margin: 4px 0 6px !important; }
.txa-lead { color: #2d3530; font-size: 23.5px; font-family: var(--tx-serif) !important; }
.section.txa-pano { padding: 0 !important; }
.txa-pano-img { height: 403px; overflow: hidden; } .txa-pano-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 62%; display: block; }
.section.txa-story { padding: 28px 0 34px !important; }
.txa-story-in { display: grid; grid-template-columns: minmax(0, 560fr) minmax(0, 762fr); gap: 52px; align-items: center; max-width: none; padding-left: calc(50% - 658px); }
.txa-kick { color: #2e6b45; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 14px; }
.txa-h2 { color: var(--tx-g) !important; font-size: 48px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 0 0 24px !important; }
.txa-p { color: #3a433d; font-size: 19px; line-height: 1.68; margin-bottom: 18px; }
a.txa-more { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; color: var(--tx-g) !important; font-size: 18px; font-weight: 600; text-decoration: underline; text-underline-offset: 6px; }
.txa-more img { width: 20px; height: 20px; }
.txa-story-img { height: 500px; overflow: hidden; } .txa-story-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.section.txa-aim { padding: 58px 0 44px !important; }
.txa-head { text-align: center; }
.txa-h2c { color: var(--tx-g) !important; font-size: 44px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 0 !important; }
.txa-aim-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 50px auto 0; max-width: 1330px; }
.txa-aim-c { background: #fff; border: 1px solid #ddd6c5; min-height: 283px; padding: 32px 30px 26px; text-align: center; }
.txa-aim-c img { width: 84px; height: 64px; object-fit: contain; }
.txa-aim-c h3 { color: var(--tx-g) !important; font-size: 28px !important; font-weight: 600 !important; margin: 16px 0 16px !important; }
.txa-aim-c div { color: #3a433d; font-size: 18px; line-height: 1.65; max-width: 330px; margin: 0 auto; }
.section.txa-team { padding: 50px 0 36px !important; }
.txa-team-w { max-width: 1400px; margin: 0 auto; }
.txa-sub { color: #3a433d; font-size: 20px; margin-top: 24px; }
.txa-team-g { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 21px; margin-top: 26px; }
.txa-tc { text-align: center; }
.txa-tc-img { aspect-ratio: 438 / 325; overflow: hidden; background: #f1ede2; } .txa-tc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txa-tc h3 { color: #1f2a22 !important; font-size: 22px !important; font-weight: 600 !important; margin: 22px 0 6px !important; }
.txa-tc div { color: #3a433d; font-size: 16.5px; }
.section.txa-promise { padding: 46px 0 42px !important; }
.txa-pr-in { display: grid; grid-template-columns: minmax(0, 520fr) minmax(0, 776fr); gap: 30px; align-items: center; }
.txa-pr-l .txa-h2 { font-size: 49px !important; margin: 0 !important; }
.txi-page .txa-rule-l { margin: 24px 0 26px !important; }
.txa-pr-s { color: #2d3530; font-family: var(--tx-serif) !important; font-size: 28px; line-height: 1.4; }
.txa-pr-i { display: flex; align-items: flex-start; gap: 30px; padding: 22px 0; }
.txa-pr-i + .txa-pr-i { border-top: 1px solid #ddd4bf; }
.txa-pr-i img { width: 53px; height: 53px; flex: 0 0 auto; }
.txa-pr-i h3 { color: #1f2a22 !important; font-size: 21.5px !important; font-weight: 600 !important; margin: 0 0 6px !important; }
.txa-pr-i span { color: #3a433d; font-size: 18px; }
.section.txa-cta { padding: 0 !important; position: relative; overflow: hidden; }
.txa-cta-bg { position: absolute; inset: 0; background: #1f4d2b center / cover no-repeat; }
.txa-cta-bg::after { content: ""; position: absolute; inset: 0; background: rgba(12, 52, 28, .62); }
.txa-cta-in { position: relative; z-index: 1; min-height: 191px; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 0 0 0 20px; }
.txa-cta-in h2 { color: #fff !important; font-size: 44px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 0 0 12px !important; }
.txa-cta-in h2 + div { color: #f2f0e6; font-family: var(--tx-serif) !important; font-size: 26px; }
.txa-cta-b { display: flex; gap: 24px; flex: 0 0 auto; }
.txa-cta-b .tx-btn { min-height: 60px; padding: 0 34px; font-size: 19px; border-radius: 2px; box-shadow: none; }
.txa-cta-b .tx-btn img { width: 20px; height: 20px; }
a.txa-btn-w { display: inline-flex; align-items: center; min-height: 60px; padding: 0 26px; border: 1.6px solid #fff; border-radius: 2px; color: #fff !important; font-size: 17.5px; font-weight: 500; }

/* ---------- liên hệ ---------- */
.section.txc-top { padding: 18px 0 36px !important; text-align: center; }
.txc-top .txi-crumb { font-size: 13.5px; }
.txc-h1 { color: #1f2a22 !important; font-size: 47px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 14px 0 0 !important; }
.txc-lead { color: #2d3530; font-size: 19px; margin-top: 22px; }
.section.txc-main { padding: 34px 0 40px !important; }
.txc-grid { display: grid; grid-template-columns: minmax(0, 714fr) minmax(0, 511fr); gap: 66px; }
.txc-h2 { color: var(--tx-g) !important; font-size: 33px !important; font-weight: 600 !important; line-height: 1.2 !important; margin: 0 0 14px !important; }
.txc-p { color: #3a433d; font-size: 18px; line-height: 1.55; margin-bottom: 24px; }
.txc-form .txc-f2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }
.txc-form .txc-f2 > p { display: contents; }
.txc-form label { display: block; color: #2c3a30; font-size: 17px; font-weight: 400 !important; margin: 0 0 22px; }
.txc-form label i { color: #c0392b; font-style: normal; }
.txc-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.txc-form input[type=text], .txc-form input[type=tel], .txc-form input[type=email], .txc-form select, .txc-form textarea { width: 100%; height: 47px; margin: 0 !important; padding: 0 16px !important; border: 1px solid #c9cfc4 !important; border-radius: 3px; box-shadow: none !important; background-color: #fff; font-size: 15.5px !important; color: #1f2a22; }
.txc-form textarea { height: 117px; min-height: 117px; padding: 12px 16px !important; resize: vertical; }
.txc-form input[type=submit], .txc-form .wpcf7-submit { min-width: 265px; min-height: 53px; margin: 2px 0 0 !important; padding: 0 30px; background: var(--tx-btn) !important; color: #fff; border: 0; border-radius: 2px; font-size: 20px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.txc-form .wpcf7-spinner { position: absolute; margin: 16px 0 0 12px; }
.txc-note { color: #6b716c; font-size: 14px; margin-top: 16px; }
.txc-r .txc-h2 { margin-bottom: 22px !important; }
.txc-card { display: flex; align-items: center; gap: 30px; background: #f7f2e6; min-height: 157px; padding: 18px 26px 18px 18px; margin-bottom: 22px; color: inherit !important; }
.txc-ic { flex: 0 0 auto; width: 90px; height: 90px; border: 2px solid var(--tx-g); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.txc-ic img { width: 44px; height: 44px; }
.txc-ct { display: flex; flex-direction: column; min-width: 0; }
.txc-ct small { color: #2c3a30; font-size: 17px; margin-bottom: 4px; }
.txc-tel { color: var(--tx-g); font-size: 34px; font-weight: 700; line-height: 1.15; letter-spacing: .01em; }
.txc-ct em { font-style: normal; color: #3a433d; font-size: 16.5px; margin-top: 4px; }
.txc-serif { color: var(--tx-g); font-family: var(--tx-serif) !important; font-size: 23px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.txc-addr { font-size: 25px; color: #1f2a22; }
.txc-hours { display: flex; align-items: center; gap: 16px; color: #2f3832; font-size: 17px; margin-top: 6px; }
.txc-hours img { width: 27px; height: 27px; }
.section.txc-mapsec { padding: 18px 0 24px !important; }
.txc-maphd { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.txc-h2b { color: var(--tx-g) !important; font-size: 34px !important; font-weight: 600 !important; margin: 0 !important; }
a.txc-dir { flex: 0 0 auto; white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; height: 49px; padding: 0 24px; border: 2px solid var(--tx-g); border-radius: 2px; color: var(--tx-g) !important; font-size: 17px; font-weight: 600; }
.txc-dir img { width: 17px; height: 17px; }
.txc-map { position: relative; height: 296px; border: 1px solid #e3ddcf; overflow: hidden; }
.txc-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: saturate(.85); }
.txc-pin { position: absolute; left: calc(50% + 22px); top: calc(50% - 74px); background: #fff; padding: 14px 18px; border-radius: 6px; box-shadow: 0 6px 18px rgba(0, 0, 0, .14); display: flex; flex-direction: column; gap: 4px; pointer-events: none; }
.txc-pin b { color: #1f2a22; font-size: 16px; } .txc-pin span { color: #3a433d; font-size: 14px; line-height: 1.45; }
.txc-maddr { display: flex; align-items: center; gap: 18px; margin-top: 18px; color: #1f2a22; font-size: 17px; }
.txc-maddr img { width: 22px; height: 22px; }
.section.txc-faqsec { padding: 40px 0 36px !important; }
.txc-faq-in { display: grid; grid-template-columns: minmax(0, 497fr) minmax(0, 763fr); gap: 36px; align-items: start; }
.txc-h2f { color: #1f2a22 !important; font-size: 41px !important; font-weight: 600 !important; line-height: 1.17 !important; margin: 0 !important; }
.txc-faq-s { color: #2c3a30; font-size: 17.5px; margin-bottom: 30px; }
.txc-faq-img { aspect-ratio: 497 / 226; overflow: hidden; background: #f1ede2; } .txc-faq-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txc-faq { border: 1px solid #ddd6c5; }
.txc-faq details { border-bottom: 1px solid #ddd6c5; padding: 0 30px; }
.txc-faq details:last-child { border-bottom: 0; }
.txc-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 76px; color: #1f2a22; font-family: var(--tx-serif) !important; font-size: 21px; font-weight: 500; cursor: pointer; }
.txc-faq summary::-webkit-details-marker { display: none; }
.txc-faq summary::after { content: ""; flex: 0 0 auto; width: 22px; height: 22px; background: url(icons/i-plus.png) center / contain no-repeat; }
.txc-faq details[open] summary::after { background-image: url(icons/i-minus.png); }
.txc-faq details > div { color: #3a433d; font-size: 17.5px; line-height: 1.65; padding: 0 30px 30px 0; }

/* ---------- Trà đàm (lưu trữ + bài) ---------- */
.txb-list { padding: 56px 0 70px; }
.txb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 30px; }
.txb-pages { display: flex; justify-content: center; gap: 12px; margin-top: 40px; }
.txb-pages .page-numbers { min-width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #ddd8cc; color: #2f3832 !important; }
.txb-pages .page-numbers.current { background: var(--tx-btn); border-color: var(--tx-btn); color: #fff !important; }
.txb-hd { text-align: center; }
.txb-kick { display: inline-flex; align-items: center; gap: 12px; color: #2e6b45; font-size: 15px; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 14px; }
.txb-kick i { width: 1px; height: 14px; background: #b9b29f; }
.txb-single .txi-h1 { max-width: 980px; margin: 0 auto !important; }
.txb-single .txi-lead { max-width: 820px; margin-left: auto; margin-right: auto; }
.txb-body { max-width: 900px; padding: 48px 0 56px; }
.txb-fig { margin: 0 0 36px; aspect-ratio: 16 / 9; overflow: hidden; } .txb-fig img { width: 100%; height: 100%; object-fit: cover; display: block; }
.txb-content { color: #2f3832; font-size: 18px; line-height: 1.8; }
.txb-content h2, .txb-content h3 { color: var(--tx-g2) !important; margin: 30px 0 12px !important; }
.txb-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 36px; padding: 22px 26px; background: var(--tx-cream); }
.txb-cta span { color: var(--tx-g2); font-family: var(--tx-serif) !important; font-size: 24px; font-weight: 600; }
.txb-cta .tx-btn { margin: 0; border-radius: 2px; box-shadow: none; text-transform: none; letter-spacing: 0; }
.txb-rel { padding: 10px 0 70px; text-align: center; }
.txb-rel .txb-grid { margin-top: 34px; text-align: left; }

/* ruler:manual (10-03) — icon Lucide nét mảnh đo mực NHO x1.6-1.9 so mockup nét đậm: tăng vừa phải theo cỡ khung mockup; tiêu đề giữ cỡ theo bề rộng dòng (_cmpw 0.95-1.05, SKILL 6f) */
@media (min-width: 850px) {
  .txp-badges img { width: 52px; height: 52px; }
  .txa-aim-c img { width: 84px; height: 84px; margin-top: -10px; margin-bottom: -10px; }
  .txc-ic img { width: 50px; height: 50px; }
  .txc-dir img { width: 20px; height: 20px; }
  .txs-help > img { padding: 7px; }
}

/* ---------- mid ---------- */
@media (min-width: 850px) and (max-width: 1399px) {
  .txi-w, .txs-bnf-in { max-width: none; padding-left: 30px !important; padding-right: 30px !important; }
  .txs-main::before { left: 323px; }
  .txa-story-in { padding-left: 30px; gap: 40px; }
  .txa-cta-in { padding-left: 30px !important; }
  .txa-cta-in h2 { font-size: 40px !important; }
  .txc-tel { font-size: 30px; } .txc-serif { font-size: 22px; } .txc-addr { font-size: 21px; }
}
@media (min-width: 850px) and (max-width: 1199px) {
  .txs-main { grid-template-columns: 230px minmax(0, 1fr); gap: 0 40px; } .txs-main::before { left: 294px; }
  .txs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .txp-title { font-size: 36px !important; } .txp-top { gap: 30px; }
  .txp-badges > div { font-size: 13px; }
  .txa-h2 { font-size: 42px !important; } .txa-h2c { font-size: 42px !important; } .txa-pr-l .txa-h2 { font-size: 44px !important; }
  .txa-cta-in { flex-direction: column; align-items: flex-start; justify-content: center; padding-top: 30px !important; padding-bottom: 30px !important; gap: 20px; }
  .txc-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
  .txc-card { gap: 18px; } .txc-ic { width: 70px; height: 70px; } .txc-ic img { width: 34px; height: 34px; }
  .txp-rel-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- mobile ---------- */
@media (max-width: 849px) {
  .txi-w, .txs-bnf-in { padding-left: 16px !important; padding-right: 16px !important; }
  .txi-band { padding: 20px 0 30px; } .txi-band .txi-crumb { margin-bottom: 14px; }
  .txi-h1 { font-size: 32px !important; } .txi-lead { font-size: 16px; }
  .txi-crumb { font-size: 13px !important; gap: 6px; }
  .txi-doc { padding: 30px 16px 44px; font-size: 16px; }
  .txs-hero { padding: 168px 0 20px; min-height: 0; background-size: auto 150px; background-position: right top; }
  .txs-hero::before { background: linear-gradient(180deg, rgba(247, 242, 232, 0) 0, rgba(247, 242, 232, 0) 150px, #f7f2e8 150px); }
  .txs-h1 { font-size: 38px !important; margin: 10px 0 6px !important; } .txs-lead { font-size: 16px; }
  .txs-main { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px 0 44px; }
  .txs-main::before { display: none; }
  .txs-fbox { border: 1px solid #e3ddcf; padding: 14px 16px 0; }
  .txs-fbox > summary { cursor: pointer; padding-bottom: 14px; }
  .txs-fbox:not([open]) > summary { border-bottom: 0; }
  .txs-fbox > summary .txs-ft span::after, .txs-fbox > summary span::after { content: " ▾"; font-size: 16px; }
  .txs-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; } .txs-filter > * { min-width: 0; }
  .txs-grp:nth-child(2) { grid-column: 1 / -1; order: -1; }
  .txs-ck { font-size: 15px; }
  .txs-help { margin: 16px 0 0; padding: 18px 16px; }
  .txs-bar { gap: 10px; } .txs-sort select { min-width: 0; width: 196px; font-size: 14px !important; }
  .txs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
  .txs-name { font-size: 16px !important; margin: 12px 4px 6px !important; } .txs-price { font-size: 19px; }
  .txs-btn { width: 100%; min-height: 42px; font-size: 15px; }
  .txs-bnf-in { grid-template-columns: minmax(0, 1fr); padding: 14px 16px; }
  .txs-bnf-i { justify-content: flex-start; min-height: 0; padding: 12px 0; gap: 18px; } .txs-bnf-i + .txs-bnf-i { border-left: 0; border-top: 1px solid #ddd4bf; }
  .txs-bnf-i img { width: 48px; height: 48px; } .txs-bnf-i h3 { font-size: 20px !important; } .txs-bnf-i span { font-size: 15px; }
  .txp-top { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .txp-thumbs { gap: 10px; margin-top: 10px; }
  .txp-title { font-size: 30px !important; } .txp-price { font-size: 25px; }
  .txp-opt { gap: 16px; } .txp-opt > span { width: 80px; }
  .txp-badges > div { font-size: 13px; padding: 0 6px; } .txp-badges img { width: 38px; height: 38px; }
  .txp-tabs { margin-top: 36px; gap: 0; } .txp-tabs button { padding: 14px 16px; font-size: 16px; }
  .txp-desc { grid-template-columns: minmax(0, 1fr); gap: 24px; } .txp-pane { padding: 28px 0 36px; }
  .txp-h2 { font-size: 30px !important; } .txp-h2c { font-size: 28px !important; }
  .txp-steps { grid-template-columns: minmax(0, 1fr); gap: 22px; } .txp-steps > div + div { border-left: 0; border-top: 1px solid #ddd4bf; padding-top: 22px; }
  .txp-rel-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; }
  .txp-rc .txs-name { font-size: 16px !important; } .txp-rc .txs-price { font-size: 17px; }
  .txp-spec th { width: 120px; } .txp-spec th, .txp-spec td { padding: 10px 10px !important; font-size: 15px; }
  .section.txa-top { padding: 14px 0 24px !important; }
  .txa-h1 { font-size: 36px !important; } .txa-lead { font-size: 18px; }
  .txa-pano-img { height: 220px; }
  .txa-story-in { grid-template-columns: minmax(0, 1fr); padding: 0 16px; gap: 24px; }
  .txa-story-img { height: 260px; order: -1; }
  .txa-h2 { font-size: 32px !important; } .txa-h2c { font-size: 31px !important; } .txa-p { font-size: 16.5px; }
  .section.txa-aim, .section.txa-team { padding: 40px 0 30px !important; }
  .txa-aim-g, .txa-team-g { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 28px; }
  .txa-aim-c { min-height: 0; padding: 24px 20px; } .txa-aim-c h3 { font-size: 24px !important; } .txa-aim-c div { font-size: 16px; }
  .txa-team-w { padding: 0 16px; } .txa-sub { font-size: 16px; margin-top: 16px; }
  .txa-pr-in { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .txa-pr-l .txa-h2 { font-size: 34px !important; } .txa-pr-s { font-size: 20px; }
  .txa-pr-i { gap: 18px; } .txa-pr-i img { width: 40px; height: 40px; } .txa-pr-i h3 { font-size: 20px !important; } .txa-pr-i span { font-size: 16px; }
  .txa-cta-in { flex-direction: column; align-items: flex-start; padding: 36px 16px !important; gap: 20px; }
  .txa-cta-in h2 { font-size: 30px !important; } .txa-cta-in h2 + div { font-size: 19px; }
  .txa-cta-b { flex-direction: column; width: 100%; gap: 12px; } .txa-cta-b a { justify-content: center; min-height: 52px !important; }
  .section.txc-top { padding: 14px 0 26px !important; }
  .txc-h1 { font-size: 32px !important; } .txc-lead { font-size: 16px; margin-top: 16px; }
  .txc-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .txc-h2 { font-size: 28px !important; } .txc-p { font-size: 16px; }
  .txc-form .txc-f2 { grid-template-columns: minmax(0, 1fr); }
  .txc-form input[type=submit], .txc-form .wpcf7-submit { width: 100%; min-width: 0; }
  .txc-form .wpcf7-spinner { right: 12px; margin: 16px 0 0; }
  .txc-card { gap: 16px; min-height: 0; padding: 16px; } .txc-ic { width: 60px; height: 60px; } .txc-ic img { width: 28px; height: 28px; }
  .txc-tel { font-size: 26px; } .txc-serif { font-size: 18px; } .txc-addr { font-size: 18px; }
  .txc-maphd { gap: 12px; } .txc-h2b { font-size: 26px !important; } a.txc-dir { height: 42px; padding: 0 14px; font-size: 15px; flex: 0 0 auto; }
  .txc-map { height: 260px; } .txc-pin { left: auto; right: 10px; top: 10px; padding: 10px 12px; } .txc-pin span { font-size: 12px; }
  .txc-maddr { font-size: 15px; gap: 10px; align-items: flex-start; }
  .txc-faq-in { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .txc-h2f { font-size: 32px !important; }
  .txc-faq details { padding: 0 18px; } .txc-faq summary { font-size: 19px; min-height: 64px; } .txc-faq details > div { font-size: 16px; padding: 0 0 20px; }
  .txb-list { padding: 30px 16px 44px; } .txb-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .txb-body { padding: 26px 16px 40px; } .txb-content { font-size: 16.5px; }
  .txb-cta { flex-direction: column; align-items: flex-start; } .txb-cta span { font-size: 20px; }
}
