/* VIVU (dulich18) — trang trong dựng theo mockup Astra 09-29 (Tours, chi tiết tour, Giới thiệu, Liên hệ).
   Biến màu/font lấy từ vv-home.css (nạp cùng lúc). */
.vvi-page, .vvi-page p, .vvi-page li { font-family: "Be Vietnam Pro", sans-serif; }
.vvi-h2, .vvi-ttitle, .vvi-h3, .vvi-ccard h3, .vvi-book h3, .vvi-form h3, .vvi-excard b, .vvi-more-head .vvi-h2, .vvi-map-logo { font-family: "Playfair Display", serif !important; }
.vvi-script, .vvi-paper { font-family: "Dancing Script", cursive !important; }
.vvi-center { text-align: center; }
.vvi-p { font-size: 16.5px !important; line-height: 1.65 !important; color: var(--vv-ink) !important; margin: 0 0 14px !important; }
.vvi-lead { font-size: 17px !important; color: var(--vv-muted) !important; margin: 0 0 30px !important; }
.vvi-h2-xl { font-size: 50px !important; line-height: 1.12 !important; margin-bottom: 20px !important; }
/* hero chung */
.vvi-hero .banner-bg::after { background: linear-gradient(90deg, rgba(8,28,20,.66) 0%, rgba(8,28,20,.3) 45%, rgba(8,28,20,0) 72%) !important; }
.vvi-hero-title { font-size: 66px !important; }
.vvi-crumb { font-size: 14px !important; color: var(--vv-muted) !important; margin: 0 0 16px !important; }
.vvi-crumb a { color: inherit !important; } .vvi-crumb span { margin: 0 6px; opacity: .6; }
.vvi-crumb-w, .vvi-crumb-w a { color: #fff !important; }
.vvi-badge { background: rgba(184,137,62,.92); border-color: transparent !important; }
.vvi-hero-note p { font-size: 26px !important; }
/* giới thiệu (Tours) + thẻ chuyên gia */
.vvi-excard { background: #FBF8F1; border-radius: 14px; padding: 36px 34px; box-shadow: 0 10px 30px rgba(14,59,44,.08); }
.vvi-excard-top { display: flex; gap: 26px; align-items: center; margin-bottom: 26px; }
.vvi-excard-top > span { width: 150px; height: 150px; flex: 0 0 150px; border-radius: 50%; background-size: cover; background-position: center top; border: 6px solid #fff; box-shadow: 0 6px 18px rgba(0,0,0,.1); }
.vvi-excard-top p { margin: 0 !important; font-size: 16px !important; color: var(--vv-muted) !important; line-height: 1.5 !important; display: flex; flex-direction: column; }
.vvi-excard-top b { font-size: 24px; color: var(--vv-green); line-height: 1.25; margin-bottom: 10px; font-weight: 700; }
.vvi-excard-top a { display: inline-flex; align-items: center; gap: 12px; margin-top: 16px; font-size: 28px; font-weight: 700; color: var(--vv-gold) !important; }
.vvi-excard .vv-btn { font-size: 19px; min-height: 58px; }
/* bộ lọc + lưới tour */
.vvi-filter { display: grid; grid-template-columns: repeat(3, 1fr) 260px; gap: 12px; background: #fff; padding: 10px; border-radius: 10px; box-shadow: 0 8px 24px rgba(14,59,44,.07); margin: 10px 0 30px; }
.vvi-filter label { position: relative; margin: 0; border: 1px solid #E3DED2; border-radius: 8px; padding: 22px 14px 8px; }
.vvi-filter small { position: absolute; top: 6px; left: 16px; font-size: 12.5px; color: var(--vv-muted); }
.vvi-filter select { border: 0 !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; height: 32px; font-size: 16px; color: var(--vv-ink); background-color: transparent; }
.vvi-filter button { margin: 0; border-radius: 8px; background: linear-gradient(180deg, #C9A24B, #B08335); color: #fff; font-size: 19px; font-weight: 600; text-transform: none; letter-spacing: 0; display: flex; align-items: center; justify-content: center; gap: 12px; }
.vvi-filter button img { filter: brightness(0) invert(1); }
.vvi-count { display: flex; justify-content: space-between; align-items: center; margin: 0 0 22px !important; }
.vvi-count b { font-family: "Playfair Display", serif; font-size: 23px; color: var(--vv-ink); }
.vvi-count span { font-size: 15px; color: var(--vv-ink); }
.vvi-tgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.vvi-tcard .vv-timg { height: 230px; }
.vvi-tline { display: flex; align-items: center; gap: 10px; font-size: 15px !important; color: var(--vv-muted) !important; margin: 0 0 8px !important; }
.vvi-tline img { width: 20px; height: 20px; }
.vvi-from { font-size: 14px !important; color: var(--vv-muted) !important; margin: 14px 0 0 !important; }
.vvi-price { font-size: 27px !important; margin-bottom: 18px !important; }
.vvi-price del { color: #9aa39e; font-size: 20px; font-weight: 500; margin-right: 14px; }
.vvi-tcard--full h3 { min-height: 58px; }
.vvi-list-note { text-align: center; font-size: 15px !important; color: var(--vv-ink) !important; margin: 26px 0 0 !important; }
.vvi-find-row { display: flex; align-items: center; gap: 28px; }
.vvi-find-row > div { flex: 1; }
.vvi-find-row h2 { font-size: 36px !important; margin-bottom: 8px !important; }
.vvi-find-row p { margin: 0 !important; font-size: 17px !important; color: var(--vv-muted) !important; }
.vvi-find-row img { width: 84px; height: 84px; flex: 0 0 84px; }
.vvi-find-row .vv-btn { font-size: 18px; min-height: 56px; padding: 0 32px; }
.vvi-find-ic { width: 110px; height: 110px; flex: 0 0 110px; border-radius: 50%; background: #F5F1E8; display: flex; align-items: center; justify-content: center; }
.vvi-find-ic img { width: 58px !important; height: 58px !important; flex: none !important; }
/* chi tiết tour */
.vvi-wrap { max-width: 1290px; margin: 0 auto; padding: 0 15px; }
.vvi-thero { display: grid; grid-template-columns: 60% 40%; height: 470px; overflow: hidden; }
.vvi-thero > div, .vvi-thero-side > div { background-size: cover; background-position: center; position: relative; }
.vvi-thero-main { clip-path: polygon(0 0, 100% 0, 96% 100%, 0 100%); }
.vvi-thero-side { display: grid; grid-template-rows: 1fr 1fr; gap: 6px; margin-left: -3%; }
.vvi-thero .vvi-script { position: absolute; color: #fff !important; margin: 0 !important; text-shadow: 0 2px 10px rgba(0,0,0,.35); line-height: 1.1 !important; }
.vvi-thero-main .vvi-script { left: 5%; bottom: 22%; font-size: 50px !important; transform: rotate(-8deg); }
.vvi-thero-side .vvi-script { right: 6%; top: 30%; font-size: 46px !important; text-align: right; }
.vvi-thero-side .vvi-script small { font-size: 22px; }
.vvi-tour .vvi-crumb { margin: 20px 0 12px !important; }
.vvi-ttitle { font-size: 54px !important; color: var(--vv-green) !important; margin: 0 0 4px !important; line-height: 1.15 !important; }
.vvi-tsub { font-family: "Playfair Display", serif; font-size: 27px !important; color: var(--vv-green2) !important; margin: 0 0 12px !important; }
.vvi-trate { display: flex; align-items: center; gap: 10px; font-size: 15px !important; color: var(--vv-muted) !important; margin: 0 0 20px !important; }
.vvi-stars { color: #E2A42B; font-size: 21px; letter-spacing: 2px; }
.vvi-trate b { color: var(--vv-ink); }
.vvi-trate em { display: inline-flex; align-items: center; gap: 8px; font-style: normal; background: #F5F1E8; border-radius: 99px; padding: 5px 16px; margin-left: 12px; color: var(--vv-ink); }
.vvi-gal { display: grid; grid-template-columns: repeat(4, 1fr) 150px; gap: 14px; height: 140px; margin-bottom: 28px; }
.vvi-gal a { border-radius: 8px; background-size: cover; background-position: center; }
.vvi-gal-more { background: #F5F1E8 !important; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; font-size: 15px; color: var(--vv-ink) !important; line-height: 1.3; }
.vvi-tgrid2 { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; align-items: start; padding-bottom: 50px; }
.vvi-facts { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid #E8E3D8; border-radius: 10px; margin-bottom: 30px; }
.vvi-facts p { display: flex; align-items: center; gap: 14px; margin: 0 !important; padding: 16px 18px; border-left: 1px solid #E8E3D8; font-size: 14px !important; color: var(--vv-muted) !important; }
.vvi-facts p:first-child { border-left: 0; }
.vvi-facts img { width: 34px; height: 34px; flex: 0 0 34px; }
.vvi-facts span { display: flex; flex-direction: column; } .vvi-facts b { font-size: 16px; color: var(--vv-ink); font-weight: 700; }
.vvi-tour .vvi-h2 { font-size: 40px !important; color: var(--vv-green) !important; line-height: 1.2 !important; margin: 0 0 14px !important; font-weight: 700; }
.vvi-tour .vvi-h2-sm { font-size: 32px !important; }
.vvi-intro p { font-size: 16.5px !important; line-height: 1.65 !important; color: var(--vv-ink) !important; }
.vvi-hl { list-style: none; margin: 0 0 30px !important; }
.vvi-hl li { position: relative; padding-left: 36px; margin: 0 0 10px !important; font-size: 16px; color: var(--vv-ink); }
.vvi-hl li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; background: url(icons/check-g.png) center/contain no-repeat; }
.vvi-tabs { display: grid; grid-template-columns: repeat(4, 1fr); background: #F5F1E8; border-radius: 10px; padding: 6px; margin-bottom: 34px; }
.vvi-tabs a { display: flex; align-items: center; justify-content: center; gap: 12px; height: 56px; border-radius: 8px; font-size: 16px; font-weight: 500; color: var(--vv-ink) !important; }
.vvi-tabs a.is-active { background: var(--vv-green); color: #fff !important; } .vvi-tabs a.is-active img { filter: brightness(0) invert(1); }
.vvi-itin { position: relative; }
.vvi-itin::before { content: ""; position: absolute; left: 20px; top: 20px; bottom: 20px; border-left: 2px dashed var(--vv-gold2); }
.vvi-day { position: relative; border-bottom: 1px solid #ECE7DC; padding: 10px 0 10px 64px; }
.vvi-day summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; font-family: "Playfair Display", serif; font-size: 21px; color: var(--vv-green); font-weight: 600; padding: 4px 0; }
.vvi-day summary::-webkit-details-marker { display: none; }
.vvi-day summary::after { content: "⌄"; margin-left: auto; font-size: 20px; color: var(--vv-ink); }
.vvi-day[open] summary::after { transform: rotate(180deg); }
.vvi-day summary i { position: absolute; left: 0; top: 10px; width: 42px; height: 42px; border-radius: 50%; background: var(--vv-gold2); color: #fff; font-style: normal; font-family: "Be Vietnam Pro", sans-serif; font-size: 17px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.vvi-day summary span { color: var(--vv-muted); }
.vvi-day-body p { font-size: 15.5px !important; color: var(--vv-ink) !important; margin: 4px 0 10px !important; line-height: 1.6 !important; }
.vvi-dtags { display: flex; flex-wrap: wrap; gap: 10px; }
.vvi-dtags span { display: inline-flex; align-items: center; gap: 8px; background: #F5F1E8; border-radius: 6px; padding: 6px 14px; font-size: 14px; }
.vvi-day figure { height: 300px; border-radius: 10px; background-size: cover; background-position: center; position: relative; margin: 6px 0 10px; }
.vvi-day figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 12px; color: #fff; font-size: 14px; background: linear-gradient(transparent, rgba(0,0,0,.55)); border-radius: 0 0 10px 10px; }
.vvi-note { display: flex; align-items: center; gap: 10px; font-size: 14px !important; color: var(--vv-muted) !important; margin: 14px 0 34px !important; }
.vvi-price-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; padding-bottom: 40px; }
.vvi-tgrid2 { padding-bottom: 10px !important; }
.vvi-incx { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vvi-incx > div { border-radius: 10px; padding: 20px 22px; }
.vvi-inc { background: #EEF4EE; } .vvi-exc { background: #F8F2E4; }
.vvi-incx h3 { display: flex; align-items: center; gap: 12px; font-size: 18px !important; color: var(--vv-green) !important; margin: 0 0 12px !important; }
.vvi-exc h3 i { width: 26px; height: 26px; border-radius: 50%; background: var(--vv-gold2); color: #fff; font-style: normal; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.vvi-incx ul { list-style: none; margin: 0 !important; }
.vvi-incx li { position: relative; padding-left: 28px; margin: 0 0 8px !important; font-size: 15px; }
.vvi-inc li::before { content: "✓"; position: absolute; left: 2px; color: var(--vv-green); font-weight: 700; }
.vvi-exc li::before { content: ""; position: absolute; left: 6px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--vv-ink); }
.vvi-faq { border: 1px solid #E8E3D8; border-radius: 8px; margin-bottom: 12px; background: #fff; }
.vvi-faq summary { list-style: none; cursor: pointer; padding: 16px 20px; font-size: 16.5px; font-weight: 600; color: var(--vv-ink); display: flex; }
.vvi-faq summary::after { content: "⌄"; margin-left: auto; }
.vvi-faq p { padding: 0 20px 16px; margin: 0 !important; font-size: 15px !important; }
/* cột phải chi tiết tour */
.vvi-side { position: sticky; top: 110px; display: flex; flex-direction: column; gap: 22px; }
.vvi-book { border: 1.5px solid #E2CFA6; border-radius: 12px; padding: 26px 26px 20px; background: #fff; margin: 0; }
.vvi-book h3 { font-size: 27px !important; color: var(--vv-green) !important; margin: 0 0 14px !important; padding-bottom: 14px; border-bottom: 1px solid #EDE7DA; }
.vvi-book-from { font-size: 15px !important; margin: 0 !important; color: var(--vv-ink) !important; }
.vvi-book-price { font-size: 40px !important; font-weight: 700; color: var(--vv-red) !important; margin: 0 !important; line-height: 1.2 !important; }
.vvi-book-price small { font-size: 17px; font-weight: 500; }
.vvi-book-hint { font-size: 13.5px !important; color: var(--vv-muted) !important; margin: 0 0 16px !important; }
.vvi-c { text-align: center; margin: 10px 0 14px !important; }
.vvi-book label { font-size: 15px; font-weight: 500; color: var(--vv-ink); margin: 0 0 14px; display: block; }
.vvi-book input { margin: 6px 0 0 !important; height: 46px; border-radius: 6px !important; border: 1px solid #DDD7CA !important; box-shadow: none !important; font-size: 15px; }
.vvi-in { position: relative; display: block; } .vvi-in img { position: absolute; left: 14px; top: 20px; z-index: 1; } .vvi-in input { padding-left: 42px !important; }
.vvi-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.vvi-step { display: flex; border: 1px solid #DDD7CA; border-radius: 6px; margin-top: 6px; height: 46px; overflow: hidden; }
.vvi-step button { margin: 0; width: 44px; min-height: 0; padding: 0; background: #fff; font-size: 20px; color: var(--vv-ink); }
.vvi-step input { margin: 0 !important; border: 0 !important; text-align: center; height: 44px; -moz-appearance: textfield; }
.vvi-step input::-webkit-inner-spin-button { display: none; }
.vvi-book .vv-btn { font-size: 19px; min-height: 56px; margin-top: 6px; }
.vvi-book-call { display: flex; align-items: center; justify-content: center; gap: 10px; border-top: 1px solid #EDE7DA; padding-top: 16px; margin: 0 !important; font-size: 17px !important; font-weight: 600; color: var(--vv-green) !important; }
.vvi-book-call a { color: var(--vv-green) !important; font-size: 21px; }
.vvi-expert { border: 1px solid #EDE7DA; border-radius: 12px; padding: 22px; }
.vvi-expert-top { display: flex; gap: 18px; align-items: center; margin-bottom: 16px; }
.vvi-expert-top > span { width: 96px; height: 96px; flex: 0 0 96px; border-radius: 50%; background-size: cover; background-position: center top; }
.vvi-expert-top p { margin: 0 !important; font-size: 14.5px !important; color: var(--vv-muted) !important; display: flex; flex-direction: column; line-height: 1.45 !important; }
.vvi-expert-top b { font-family: "Playfair Display", serif; font-size: 21px; color: var(--vv-green); } .vvi-expert-top small { font-size: 14px; margin-bottom: 4px; }
.vvi-sfeats { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 12px; background: #FBF8F1; border-radius: 12px; padding: 24px 16px; }
.vvi-sfeats p { display: flex; flex-direction: column; align-items: center; text-align: center; margin: 0 !important; font-size: 13.5px !important; color: var(--vv-muted) !important; line-height: 1.4 !important; }
.vvi-sfeats img { width: 44px; height: 44px; margin-bottom: 8px; } .vvi-sfeats b { font-size: 15.5px; color: var(--vv-green); margin-bottom: 4px; }
.vvi-more { background: #F8F5EE; padding: 44px 0 50px; }
.vvi-more-head { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 22px !important; }
.vvi-more-head .vvi-h2 { font-size: 38px !important; margin: 0 !important; }
.vvi-more-head a { font-size: 15px; font-weight: 500; color: var(--vv-green) !important; }
/* giới thiệu */
.vvi-collage { position: relative; height: 520px; }
.vvi-col-main { position: absolute; left: 0; top: 0; width: 76%; height: 100%; border-radius: 10px; background-size: cover; background-position: center; }
.vvi-col-main .vvi-script { position: absolute; left: 30%; bottom: 7%; color: #fff !important; font-size: 44px !important; margin: 0 !important; line-height: 1 !important; text-shadow: 0 2px 10px rgba(0,0,0,.4); }
.vvi-col-main .vvi-script small { display: block; font-size: 20px; margin-top: 6px; }
.vvi-col-polaroid { position: absolute; right: 0; top: 70px; width: 40%; height: 300px; background: #fff; padding: 12px; box-shadow: 0 12px 30px rgba(0,0,0,.18); transform: rotate(4deg); }
.vvi-col-polaroid span { display: block; width: 100%; height: 100%; background-size: cover; background-position: center; }
.vvi-col-compass { position: absolute; right: 4%; top: -24px; width: 92px !important; height: 92px !important; }
.vvi-paper { position: absolute; right: 2%; bottom: 20px; margin: 0 !important; background: #F3E6C8; padding: 16px 30px; font-size: 32px !important; color: var(--vv-green2) !important; line-height: 1.1 !important; transform: rotate(-5deg); text-align: center; }
.vvi-cgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.vvi-ccard { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 24px rgba(14,59,44,.07); }
.vvi-ccard span { display: block; height: 250px; background-size: cover; background-position: center; }
.vvi-ccard h3 { font-size: 27px !important; color: var(--vv-green) !important; margin: 24px 26px 10px !important; }
.vvi-ccard p { font-size: 16px !important; color: var(--vv-muted) !important; margin: 0 26px 26px !important; line-height: 1.6 !important; }
.vvi-pgrid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 34px 18px; }
.vvi-person { text-align: center; display: flex; flex-direction: column; align-items: center; }
.vvi-person span { width: 120px; height: 120px; border-radius: 50%; background-size: cover; background-position: center top; border: 5px solid #fff; box-shadow: 0 0 0 1px #E8E3D8, 0 6px 16px rgba(0,0,0,.08); margin-bottom: 14px; }
.vvi-person b { font-size: 18px; color: var(--vv-ink); } .vvi-person small { font-size: 14px; color: var(--vv-muted); }
.vvi-dream-img { height: 330px; border-radius: 10px; background-size: cover; background-position: 60% center; }
.vvi-checks { list-style: none; margin: 16px 0 0 !important; }
.vvi-checks li { position: relative; padding-left: 46px; margin: 0 0 16px !important; font-size: 18px; color: var(--vv-ink); }
.vvi-checks li::before { content: ""; position: absolute; left: 0; top: -2px; width: 32px; height: 32px; background: url(icons/check-c.png) center/contain no-repeat; }
/* liên hệ */
.vvi-h3 { font-size: 30px !important; color: var(--vv-green) !important; margin: 0 0 22px !important; }
.vvi-cinfo p { display: flex; align-items: center; gap: 22px; margin: 0 0 22px !important; }
.vvi-cinfo i { width: 88px; height: 88px; flex: 0 0 88px; border-radius: 50%; background: #F5F1E8; display: flex; align-items: center; justify-content: center; }
.vvi-cinfo i img { width: 40px; height: 40px; }
.vvi-cinfo span { display: flex; flex-direction: column; font-size: 16px; color: var(--vv-muted); gap: 4px; }
.vvi-cinfo a, .vvi-cinfo b { font-size: 21px; font-weight: 700; color: var(--vv-green) !important; line-height: 1.35; }
.vvi-cinfo b { font-weight: 500; }
.vvi-hours { display: flex; align-items: center; gap: 14px; border-top: 1px solid #E8E3D8; padding-top: 22px; font-size: 16px !important; color: var(--vv-ink) !important; margin: 0 0 26px !important; }
.vvi-hours span { color: #bbb; }
.vvi-excard-sm { padding: 24px; } .vvi-excard-sm .vvi-excard-top > span { width: 110px; height: 110px; flex-basis: 110px; } .vvi-excard-sm .vvi-excard-top { margin-bottom: 16px; }
.vvi-excard-sm .vv-btn { font-size: 16px; min-height: 50px; }
.vvi-form { background: #fff; border-radius: 12px; box-shadow: 0 10px 34px rgba(14,59,44,.09); padding: 32px 36px; }
.vvi-form h3 { font-size: 32px !important; color: var(--vv-green) !important; margin: 0 0 20px !important; }
.vvi-form .vvi-frow { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.vvi-form label { font-size: 15.5px; font-weight: 500; color: var(--vv-ink); display: block; margin-bottom: 14px; }
.vvi-form label em { color: var(--vv-red); font-style: normal; }
.vvi-form input:not([type=checkbox]):not([type=submit]), .vvi-form select, .vvi-form textarea { margin: 6px 0 0 !important; border: 1px solid #DDD7CA !important; border-radius: 6px !important; box-shadow: none !important; height: 48px; font-size: 15px; }
.vvi-form textarea { height: 110px !important; }
.vvi-form .wpcf7-acceptance label { font-weight: 400; display: flex; gap: 10px; align-items: center; } .vvi-form .wpcf7-list-item { margin: 0; }
.vvi-form input[type=submit] { width: 100%; min-height: 58px; border-radius: 8px; background: linear-gradient(180deg, #C9A24B, #B08335); color: #fff; font-size: 19px; font-weight: 600; text-transform: none; letter-spacing: 0; margin: 4px 0 8px; }
.vvi-form .vvi-fnote { text-align: center; font-size: 13.5px !important; color: var(--vv-muted) !important; margin: 0 !important; }
.vvi-map { position: relative; height: 420px; border-radius: 12px; overflow: hidden; margin-top: 10px; }
.vvi-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.vvi-map-card { position: absolute; left: 26px; top: 50%; transform: translateY(-50%); background: #fff; border-radius: 10px; padding: 24px 26px; box-shadow: 0 10px 30px rgba(0,0,0,.15); width: 330px; }
.vvi-map-card .vvi-map-logo { display: flex; align-items: center; gap: 12px; font-size: 34px !important; font-weight: 700; color: var(--vv-green) !important; margin: 0 0 12px !important; }
.vvi-map-card p { font-size: 15.5px !important; margin: 0 0 16px !important; color: var(--vv-ink) !important; }
.vvi-map-card .vv-btn { width: 100%; min-height: 50px; }
/* mobile */
@media (max-width: 849px) {
  .vvi-hero-title { font-size: 40px !important; } .vvi-h2-xl { font-size: 32px !important; }
  .vvi-filter { grid-template-columns: 1fr; } .vvi-tgrid, .vvi-cgrid { grid-template-columns: 1fr; }
  .vvi-count { flex-direction: column; align-items: flex-start; gap: 6px; }
  .vvi-find-row { flex-direction: column; text-align: center; } .vvi-find-row h2 { font-size: 26px !important; }
  .vvi-thero { grid-template-columns: 1fr; height: auto; } .vvi-thero-main { height: 280px; clip-path: none; } .vvi-thero-side { display: none; }
  .vvi-ttitle { font-size: 34px !important; } .vvi-tsub { font-size: 20px !important; }
  .vvi-gal { grid-template-columns: repeat(3, 1fr); height: auto; } .vvi-gal a { height: 90px; } .vvi-gal a:nth-child(4) { display: none; }
  .vvi-tgrid2 { grid-template-columns: 1fr; } .vvi-side { position: static; }
  .vvi-facts { grid-template-columns: 1fr 1fr; } .vvi-facts p:nth-child(3) { border-left: 0; }
  .vvi-tabs { grid-template-columns: 1fr 1fr; } .vvi-price-grid { grid-template-columns: 1fr; } .vvi-incx { grid-template-columns: 1fr; }
  .vvi-tour .vvi-h2 { font-size: 28px !important; } .vvi-more-head { flex-direction: column; gap: 6px; } .vvi-more-head .vvi-h2 { font-size: 28px !important; }
  .vvi-collage { height: 380px; margin-top: 20px; } .vvi-paper { font-size: 22px !important; }
  .vvi-pgrid { grid-template-columns: repeat(3, 1fr); gap: 22px 8px; } .vvi-person span { width: 88px; height: 88px; }
  .vvi-excard-top { flex-direction: column; text-align: center; } .vvi-excard-top p { align-items: center; }
  .vvi-form { padding: 24px 18px; } .vvi-form .vvi-frow { grid-template-columns: 1fr; gap: 0; }
  .vvi-map { height: 460px; } .vvi-map-card { top: auto; bottom: 16px; left: 16px; right: 16px; width: auto; transform: none; }
  .vvi-cinfo i { width: 64px; height: 64px; flex-basis: 64px; } .vvi-cinfo a, .vvi-cinfo b { font-size: 17px; }
}
/* CF7 tự bọc 2 ô của hàng đầu vào cùng một <p> + <br> */
.vvi-form .vvi-frow { display: block; }
.vvi-form .vvi-frow > p { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0; }
.vvi-form br { display: none; }
.vvi-form .wpcf7-form-control-wrap { display: block; }
.vvi-form input[type=submit] { background: url(icons/send-w.png) no-repeat calc(50% - 72px) center / 24px, linear-gradient(180deg, #C9A24B, #B08335); padding-left: 40px; }
@media (max-width: 849px) { .vvi-form .vvi-frow > p { grid-template-columns: 1fr; gap: 0; } }
/* ruler:auto BEGIN — tools/astra-bridge/lab/ruler_fix.py, đừng sửa tay */
@media (min-width: 850px) {
  body:not(.home) .vv-sec h2.vv-h2 { font-size: 57.0px !important; }
  body:not(.home) .vv-tbody h3 { font-size: 28.5px !important; }
  body:not(.home) .vvi-ccard h3 { font-size: 33.8px !important; }
  body:not(.home) .vvi-inc h3 { font-size: 21.8px !important; }
  body:not(.home) .vvi-price-grid h2.vvi-h2 { font-size: 40.3px !important; }
  body:not(.home) .vvi-tmain h2.vvi-h2 { font-size: 48.4px !important; }
  body:not(.home) .vvi-book-call img[src*="/icons/phone-g.png"] { width: 30px !important; height: 30px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
  body:not(.home) .vvi-excard-top img[src*="/icons/phone-g.png"] { width: 40px !important; height: 40px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
  body:not(.home) .vvi-find-row img[src*="/icons/logo.png"] { width: 106px !important; height: 106px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
  body:not(.home) .vvi-inc img[src*="/icons/check-c.png"] { width: 32px !important; height: 32px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
  body:not(.home) .vvi-sfeats img[src*="/icons/heart.png"] { width: 54px !important; height: 54px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
  body:not(.home) .vvi-tabs img { width: 32px !important; height: 32px !important; max-width: none !important; flex: 0 0 auto !important; object-fit: contain; }
}
@media (max-width: 849px) {
  body:not(.home) .vvi-book-call img[src*="/icons/phone-g.png"] { width: 22px !important; height: 22px !important; }
  body:not(.home) .vvi-excard-top img[src*="/icons/phone-g.png"] { width: 30px !important; height: 30px !important; }
  body:not(.home) .vvi-find-row img[src*="/icons/logo.png"] { width: 84px !important; height: 84px !important; }
  body:not(.home) .vvi-inc img[src*="/icons/check-c.png"] { width: 26px !important; height: 26px !important; }
  body:not(.home) .vvi-sfeats img[src*="/icons/heart.png"] { width: 44px !important; height: 44px !important; }
  body:not(.home) .vvi-tabs img { width: 24px !important; height: 24px !important; }
}
/* ruler:auto END */
/* ruler:manual (sau khối auto) — hero h1 đo NHO 1.34, tag lịch trình NHO */
@media (min-width: 850px) { .vvi-hero-title { font-size: 78px !important; } .vvi-dtags img { width: 22px !important; height: 22px !important; } }
@media (min-width: 850px) { body:not(.home) .vvi-about h2.vv-h2 { font-size: 48px !important; } }
.vvi-day summary b { white-space: nowrap; }
@media (max-width: 849px) { .vvi-day summary { flex-wrap: wrap; font-size: 18px; gap: 4px 8px; } .vvi-day summary::after { position: absolute; right: 0; top: 14px; } .vvi-day { padding-right: 24px; } }
/* fix1005: trang ngoài mockup ([vv_page]: điểm đến, thành phố, hỏi đáp, điều khoản, thiết kế tour) + cẩm nang/bài viết (tpl-vivu-blog/post) */
.vvp-sec { background: #fff; padding: 56px 0; } .vvp-sec-alt { background: #FBF8F1; }
.vvp-wrap { max-width: 1260px; margin: 0 auto; padding: 0 15px; }
.vvp-sec .vv-h2 { margin-bottom: 26px !important; }
.vvp-dgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.vvp-dcard { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; background: #ddd center/cover no-repeat; }
.vvp-dcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(8,28,20,.78) 100%); }
.vvp-dcard span { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1; display: flex; flex-direction: column; color: rgba(255,255,255,.9); font-size: 14px; }
.vvp-dcard b { font-family: "Playfair Display", serif; font-size: 24px; color: #fff; font-weight: 700; }
.vvp-dcard:first-child { grid-column: span 2; aspect-ratio: auto; }
.vvp-cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 44px; align-items: start; }
.vvp-lead { font-size: 18px !important; line-height: 1.7 !important; color: #2F3A35 !important; }
.vvp-main h3, .vvp-q h3 { font-size: 21px !important; font-weight: 700 !important; color: var(--vv-ink, #1F2D27) !important; margin: 24px 0 12px !important; }
.vvp-list { list-style: none; margin: 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; }
.vvp-list li { display: flex; gap: 12px; align-items: flex-start; margin: 0 !important; font-size: 16px; } .vvp-list img { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 2px; }
.vvp-side { position: sticky; top: 100px; display: flex; flex-direction: column; gap: 16px; }
.vvp-box { background: #FBF8F1; border: 1px solid #EDE6D6; border-radius: 14px; padding: 22px; }
.vvp-box img { width: 44px; height: 44px; margin-bottom: 10px; } .vvp-box b { display: block; font-size: 18px; color: #1F2D27; margin-bottom: 6px; } .vvp-box p { margin: 0 0 12px !important; color: #4B5A54; }
.vvp-box-g { background: #0E3B2C; border-color: #0E3B2C; } .vvp-box-g b { color: #fff; } .vvp-box-g p { color: rgba(255,255,255,.85) !important; }
.vvp-q { border-bottom: 1px solid #EDE6D6; padding-bottom: 14px; } .vvp-q h3 { display: flex; gap: 12px; align-items: center; margin-top: 18px !important; }
.vvp-q h3 i { flex: 0 0 32px; height: 32px; border-radius: 50%; background: #C5963B; color: #fff; font-style: normal; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.vvp-steps { margin: 0 0 0 18px !important; } .vvp-steps li { margin-bottom: 8px !important; color: #4B5A54; }
.vvp-cta { background: #0E3B2C; padding: 40px 0; } .vvp-cta .vvp-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.vvp-cta h2 { color: #fff !important; font-family: "Playfair Display", serif !important; font-size: 30px !important; margin: 0 0 6px !important; } .vvp-cta p { color: rgba(255,255,255,.85) !important; margin: 0 !important; } .vvp-cta .vv-btn { flex: 0 0 auto; }
.vvp-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 26px !important; } .vvp-chips a { padding: 8px 16px; border-radius: 99px; border: 1px solid #E3DCCB; color: #1F2D27 !important; font-size: 14px; background: #fff; } .vvp-chips a.on, .vvp-chips a:hover { background: #0E3B2C; border-color: #0E3B2C; color: #fff !important; }
.vvp-pgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vvp-pcard { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 26px rgba(14,59,44,.08); display: flex; flex-direction: column; }
.vvp-pimg { display: block; aspect-ratio: 16 / 10; background: #E8E2D4 center/cover no-repeat; }
.vvp-pbody { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; } .vvp-pbody h3 { font-family: "Playfair Display", serif !important; font-size: 21px !important; line-height: 1.3 !important; margin: 0 0 8px !important; } .vvp-pbody h3 a { color: #1F2D27 !important; }
.vvp-pbody p { font-size: 14.5px !important; color: #4B5A54 !important; } .vvp-pmeta { font-size: 13px !important; color: #7A857F !important; display: flex; gap: 10px; align-items: center; margin: 0 0 8px !important; }
.vvp-pmeta span { background: #F2EAD8; color: #8A6420; border-radius: 99px; padding: 2px 10px; font-weight: 600; font-size: 12px; } .vvp-more { margin-top: auto; font-weight: 600; color: #C5963B !important; }
.vvp-article { background: #fff; } .vvp-fig { margin: 0 0 22px !important; } .vvp-fig img { width: 100%; height: auto; border-radius: 12px; display: block; }
.vvp-content h2 { font-family: "Playfair Display", serif !important; font-size: 27px !important; color: #1F2D27 !important; margin: 28px 0 12px !important; }
.vvp-content p, .vvp-content li { font-size: 16.5px; line-height: 1.75; color: #34403B; } .vvp-content blockquote { border-left: 4px solid #C5963B; background: #FBF8F1; padding: 14px 20px; margin: 22px 0; font-style: italic; }
.vvp-mini { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid #EDE6D6; font-size: 14px; font-weight: 600; color: #1F2D27 !important; line-height: 1.35; } .vvp-mini span { flex: 0 0 64px; height: 50px; border-radius: 8px; background: #E8E2D4 center/cover no-repeat; }
.vvp-f2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; } .vvp-cf .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 14px; }
.vvp-form .wpcf7-form p:has(> label ~ label) { display: contents; }
@media (max-width: 849px) {
  .vvp-sec { padding: 36px 0; } .vvp-dgrid, .vvp-pgrid { grid-template-columns: minmax(0, 1fr); } .vvp-dcard, .vvp-dcard:first-child { grid-column: auto; aspect-ratio: 16 / 10; }
  .vvp-cols { grid-template-columns: minmax(0, 1fr); gap: 26px; } .vvp-side { position: static; } .vvp-list, .vvp-f2 { grid-template-columns: minmax(0, 1fr); }
  .vvp-cta .vvp-wrap { flex-direction: column; align-items: flex-start; } .vvp-cta h2 { font-size: 24px !important; }
}
.single-post #toc_container, .single-post .ez-toc-container, .single-post .lwptoc { display: none !important; }
.vvp-form .wpcf7-submit { background: #B8893E !important; border-radius: 8px !important; text-transform: none !important; font-size: 16px !important; padding: 0 30px !important; }
/* fix1005: thẻ chuyên gia (cửa hàng tour) tràn 900–1199; chữ viết tay ảnh ghép Giới thiệu đè nhau ở 390 */
.vvi-excard-top p { min-width: 0; } .vvi-excard-top b { overflow-wrap: anywhere; }
@media (min-width: 850px) and (max-width: 1199px) { .vvi-excard-top { flex-direction: column; align-items: flex-start; } .vvi-excard-top > span { width: 110px; height: 110px; flex-basis: 110px; } .vvi-excard-top b { font-size: 20px; } .vvi-excard-top a { font-size: 22px; } }
@media (max-width: 849px) { .vvi-col-main .vvi-script { left: 8% !important; right: 8%; bottom: 6% !important; font-size: 30px !important; } .vvi-col-main .vvi-script small { font-size: 16px; margin-top: 10px; } }
/* fix1005: 390 — chữ dải đầu trang trong (vvi-hero) dính mép trái x=0 (text_box rộng 100% + translate -50%) */
@media (max-width: 849px) { .vvi-hero .text-box.banner-layer { left: 18px !important; right: 18px !important; width: auto !important; transform: translateY(-50%) !important; top: 50% !important; } .vvi-hero .vv-hero-note, .vvi-hero .vvi-hero-note { display: none !important; } }
