*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:#f8fafc;color:#0f172a}.wrap{width:min(1120px,92%);margin:auto}a{text-decoration:none;color:inherit}.header{position:sticky;top:0;z-index:10;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.06)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand span{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;display:grid;place-items:center;font-weight:900}.brand img{width:52px;height:52px;object-fit:contain;border-radius:14px}.brand small{display:block;color:#64748b}.nav nav{display:flex;gap:22px;color:#334155}.btn{border:0;border-radius:var(--button-radius,999px);padding:13px 20px;font-weight:800;display:inline-flex;justify-content:center;align-items:center;cursor:pointer}.soft{background:#ecfdf5}.main{background:linear-gradient(135deg,var(--primary),var(--secondary));color:var(--button-text,#fff)}.zalo{background:#0866ff;color:#fff}.full{width:100%;margin-top:8px}.small-btn{padding:10px 14px;background:#0ea5e9;color:#fff;border-radius:14px;white-space:nowrap}.hero{padding:88px 0;background:radial-gradient(circle at top right,#bbf7d0,transparent 35%),linear-gradient(135deg,#ecfdf5,#eff6ff);display:flex;align-items:center}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.badge{display:inline-block;background:var(--hero-badge-bg,#dcfce7);color:var(--hero-badge-color,#047857);padding:8px 14px;border-radius:999px;font-weight:800}.hero h1{font-size:var(--hero-title-size,54px);line-height:1.05;margin:18px 0;color:var(--hero-title-color,#064e3b)}.hero p,.lead{font-size:19px;line-height:1.6;color:#475569}.hero .hero-desc{font-size:var(--hero-desc-size,19px);color:var(--hero-desc-color,#475569)}.actions{display:flex;gap:12px;margin:26px 0}.booking,.contact-card,.card,.price{background:#fff;border:1px solid #e2e8f0;border-radius:26px;padding:26px;box-shadow:0 18px 48px rgba(15,23,42,.08)}.booking input{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:14px 16px;margin:8px 0;font-size:16px}.map-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.fare-box{background:#f0fdf4;border:1px solid #bbf7d0;color:#065f46;border-radius:14px;padding:10px 12px;margin:10px 0;font-size:14px}#bookingMap,.customer-map-frame{width:100%;height:260px;border:0;border-radius:18px;background:#e2e8f0;margin:10px 0;overflow:hidden}.admin-map-frame{width:100%;height:430px;border:0;border-radius:18px;background:#e2e8f0;margin:10px 0;overflow:hidden}.ok{background:#dcfce7;color:#047857;border-radius:14px;padding:12px}.section{padding:76px 0}.alt{background:#eefdf6}.section h2{font-size:38px;margin:0 0 28px;color:#064e3b}.split{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center}.grid{display:grid;gap:20px}.two{grid-template-columns:repeat(2,1fr)}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.card img{width:100%;height:210px;object-fit:cover;border-radius:18px}.price{text-align:center}.price b,.price small{display:block}.price strong{display:block;color:#059669;font-size:24px;margin:12px 0}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery img{width:100%;height:190px;object-fit:cover;border-radius:18px}.embed iframe,.embed video{width:100%;aspect-ratio:16/9;border:0;border-radius:18px}.more{color:#059669;font-weight:800}details{background:#fff;margin:12px 0;padding:18px;border-radius:16px;border:1px solid #e2e8f0}summary{cursor:pointer;font-weight:800}.footer{background:#052e24;color:#fff;text-align:center;padding:70px 0}.footer p{color:#d1fae5}.map iframe{max-width:100%;border:0;border-radius:18px}.float{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-size:28px;box-shadow:0 14px 30px rgba(0,0,0,.22)}.article{background:#fff;border-radius:24px;padding:32px;box-shadow:0 18px 48px rgba(0,0,0,.08)}.article img{width:100%;max-height:430px;object-fit:cover;border-radius:20px}.muted{color:#64748b}@media(max-width:900px){.nav nav{display:none}.hero-grid,.split,.two,.three,.four,.gallery{grid-template-columns:1fr}.hero h1{font-size:min(var(--hero-title-size,54px),40px)}.actions{flex-direction:column}.map-row{grid-template-columns:1fr}}