* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Be Vietnam Pro', sans-serif; color: #555; line-height: 1.6; background-color: #fff; -webkit-font-smoothing: antialiased; font-size: 16px; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; transition: color 0.3s ease; }
a:hover { color: #ff3e3e; }

.container { width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }

.row { display: flex; flex-wrap: wrap; margin-right: -15px; margin-left: -15px; }
.col-lg-3 { flex: 0 0 auto; width: 25%; padding-right: 15px; padding-left: 15px; }
.col-lg-4 { flex: 0 0 auto; width: 33.333333%; padding-right: 15px; padding-left: 15px; }
.col-lg-8 { flex: 0 0 auto; width: 66.666667%; padding-right: 15px; padding-left: 15px; }
.col-lg-9 { flex: 0 0 auto; width: 75%; padding-right: 15px; padding-left: 15px; }

.d-flex { display: flex !important; }
.justify-between { justify-content: space-between !important; }
.items-center { align-items: center !important; }
.text-center { text-align: center !important; }
.text-white { color: #fff !important; }
.text-red-1 { color: #ff3e3e !important; }
.bg-red-1-05 { background-color: rgba(255, 62, 62, 0.05) !important; }
.fw-500 { font-weight: 500 !important; }
.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }
.text-15 { font-size: 15px !important; }
.text-18 { font-size: 18px !important; }
.text-60 { font-size: 60px !important; }
.mt-10 { margin-top: 10px !important; }
.mb-20 { margin-bottom: 20px !important; }
.mb-30 { margin-bottom: 30px !important; }
.pt-40 { padding-top: 40px !important; }
.layout-pt-md { padding-top: 80px; }
.layout-pb-md { padding-bottom: 80px; }

.header-top-bar { background-color: #1a2b48; color: #fff; padding: 8px 30px; font-size: 13px; }
.main-header { display: flex; justify-content: space-between; align-items: center; padding: 0 30px; height: 80px; background: #fff; }
.main-nav ul { display: flex; list-style: none; margin: 0; padding: 0; }
.main-nav li a { padding: 15px; display: block; font-weight: 700; text-transform: uppercase; font-size: 14px; color: #1a2b48; }

.tour-cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; }
.related-tour-card-body { padding: 18px; }
.related-tour-card-title { font-size: 18px; font-weight: 600; margin-bottom: 10px; line-height: 1.4; }
.related-tour-card-meta { font-size: 13px; color: #777; margin-bottom: 12px; }
.related-tour-card-price { text-align: right; font-size: 18px; font-weight: 700; color: #ff3e3e; }
.related-tour-card-price-label { font-size: 12px; font-weight: 500; color: #777; }