:root { --ink: #102a43; --ocean: #0b7285; --sky: #0ea5e9; --coral: #f97316; --sun: #fbbf24; }
* { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; }
.font-display { font-family: 'Plus Jakarta Sans', sans-serif; }
.brand-mark { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 14px; color: white; background: linear-gradient(135deg, #0b7285, #0ea5e9); box-shadow: 0 10px 24px rgba(14, 165, 233, .25); }
.brand-logo { display: block; width: 56px; height: 56px; flex: 0 0 56px; border: 2px solid #d99b2b; border-radius: 16px; background: #fff; object-fit: contain; box-shadow: 0 8px 22px rgba(15, 42, 67, .14); }
.admin-sidebar .brand-logo { width: 44px; height: 44px; flex-basis: 44px; border-radius: 13px; }
.nav-link { display: block; border-radius: 10px; padding: .6rem .75rem; color: #486581; font-size: .86rem; font-weight: 600; transition: all .2s ease; }
.nav-link:hover, .nav-link.active { color: #0b7285; background: #e6fffa; }
.social-mini { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 10px; color: white; font-size: .9rem; transition: transform .2s; }
.social-mini:hover { transform: translateY(-2px); }
.language-switcher { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid #d9e2ec; border-radius: 999px; background: #f8fafc; }
.language-option { min-width: 29px; border: 0; border-radius: 999px; padding: .25rem .35rem; color: #627d98; background: transparent; font-size: .65rem; font-weight: 800; line-height: 1; cursor: pointer; transition: all .2s ease; }
.language-option:hover, .language-option.active { color: white; background: #0b7285; }
.zalo, .chat-zalo, .float-zalo { background: #0b8ed1; }
.wa, .chat-wa, .float-wa { background: #16a34a; }
.fb, .chat-fb, .float-fb { background: #2563eb; }
.hero-bg { background: linear-gradient(110deg, rgba(3, 37, 65, .92), rgba(11, 114, 133, .7)), url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2200&q=85') center/cover; }
.hero-pattern { background-image: radial-gradient(rgba(255,255,255,.18) 1px, transparent 1px); background-size: 18px 18px; }
.search-box { box-shadow: 0 20px 70px rgba(15, 42, 67, .14); }
.tab-button { border-bottom: 3px solid transparent; color: #627d98; font-weight: 700; transition: all .2s; }
.tab-button:hover, .tab-button.active { border-color: #f97316; color: #0b7285; background: #f0fdfa; }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fade-in .3s ease; }
@keyframes fade-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.card-lift { transition: transform .25s ease, box-shadow .25s ease; }
.card-lift:hover { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(15, 42, 67, .12); }
.cover-image { height: 205px; object-fit: cover; width: 100%; }
.tour-cover { height: 240px; object-fit: cover; width: 100%; }
.chat-btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; border-radius: 9px; padding: .5rem .72rem; color: white; font-size: .75rem; font-weight: 700; transition: opacity .2s, transform .2s; }
.chat-btn:hover { opacity: .88; transform: translateY(-1px); }
.floating-contact { position: fixed; right: 18px; bottom: 20px; z-index: 50; display: flex; flex-direction: column; gap: 10px; }
.floating-contact a { display: flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 999px; color: white; font-size: 1.2rem; box-shadow: 0 10px 24px rgba(15,42,67,.22); animation: float-wiggle 3.5s ease-in-out infinite; }
.floating-contact a:nth-child(2) { animation-delay: .4s; }.floating-contact a:nth-child(3) { animation-delay: .8s; }
@keyframes float-wiggle { 0%, 88%, 100% { transform: rotate(0) scale(1); } 91% { transform: rotate(-8deg) scale(1.08); } 94% { transform: rotate(8deg) scale(1.08); } }
.prose-content { color: #486581; line-height: 1.9; white-space: pre-line; }
.prose-content p { margin-bottom: 1.25rem; }
.admin-sidebar { background: linear-gradient(180deg, #102a43, #0b7285); transition: transform .25s ease; }
.admin-sidebar.is-open { transform: translateX(0); }
.admin-menu-button, .admin-menu-close { display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; align-items: center; justify-content: center; border: 1px solid #d9e2ec; border-radius: 10px; color: var(--ink); background: #fff; font-size: 1rem; }
.admin-menu-button { display: inline-flex; }
.admin-menu-close { border-color: rgba(255,255,255,.2); color: #fff; background: rgba(255,255,255,.1); }
.admin-menu-backdrop:not([hidden]) { position: fixed; inset: 0; z-index: 40; display: block; border: 0; background: rgba(16, 42, 67, .55); }
body.admin-menu-open { overflow: hidden; }
@media (min-width: 1024px) {
    .admin-sidebar { transform: none; }
    .admin-menu-button, .admin-menu-close, .admin-menu-backdrop { display: none !important; }
}
input, select, textarea { outline: none; }
input:focus, select:focus, textarea:focus { border-color: #0ea5e9 !important; box-shadow: 0 0 0 3px rgba(14, 165, 233, .12); }
@media (max-width: 640px) { .hero-title { font-size: 2rem !important; line-height: 1.15; } .floating-contact { right: 12px; bottom: 12px; } .floating-contact a { width: 44px; height: 44px; } }
