:root{
  --tsm-yellow:#F5A623;
  --tsm-yellow-dark:#DB8F12;
  --tsm-black:#1A1A1A;
  --tsm-cream:#FAF6EF;
  --tsm-gray:#6B6B6B;
  --tsm-white:#FFFFFF;
  --radius:14px;
  --shadow:0 10px 30px rgba(26,26,26,0.08);
  --font-heading:'Poppins', sans-serif;
  --font-body:'Inter', sans-serif;
}

body{
  font-family:var(--font-body);
  color:var(--tsm-black);
  background:var(--tsm-cream);
  overflow-x:hidden;
}
h1,h2,h3,h4,.brand-font{
  font-family:var(--font-heading);
  font-weight:700;
  letter-spacing:-0.02em;
}
a{ text-decoration:none; }
.btn-tsm{
  background:var(--tsm-yellow);
  color:var(--tsm-black);
  font-weight:700;
  border:none;
  border-radius:50px;
  padding:.85rem 2rem;
  transition:all .25s ease;
  box-shadow:0 8px 20px rgba(245,166,35,.35);
}
.btn-tsm:hover{ background:var(--tsm-yellow-dark); color:var(--tsm-black); transform:translateY(-2px); }
.btn-outline-tsm{
  border:2px solid var(--tsm-black);
  color:var(--tsm-black);
  border-radius:50px;
  padding:.75rem 1.8rem;
  font-weight:700;
  background:transparent;
  transition:all .25s ease;
}
.btn-outline-tsm:hover{ background:var(--tsm-black); color:var(--tsm-white); }

/* ===== Navbar ===== */
.tsm-navbar{
  background:var(--tsm-cream);
  padding:.9rem 0;
  position:sticky; top:0; z-index:1000;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.tsm-navbar .logo-img{ height:52px; }
.tsm-navbar .nav-link{
  color:var(--tsm-black)!important;
  font-weight:600;
  margin:0 .6rem;
  position:relative;
}
.tsm-navbar .nav-link:hover{ color:var(--tsm-yellow-dark)!important; }
.tsm-navbar .nav-cta{
  background:var(--tsm-black);
  color:var(--tsm-white)!important;
  border-radius:50px;
  padding:.55rem 1.4rem!important;
}
.tsm-navbar .nav-cta:hover{ background:var(--tsm-yellow); color:var(--tsm-black)!important; }

/* ===== Hero ===== */
.hero{
  background:linear-gradient(135deg,#1a1a1a 0%,#2b2b2b 60%,#1a1a1a 100%);
  color:var(--tsm-white);
  padding:70px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; right:-120px; top:-80px;
  width:420px; height:420px;
  background:radial-gradient(circle,rgba(245,166,35,.35) 0%,transparent 70%);
}
.hero h1{ font-size:2.6rem; line-height:1.15; }
.hero .lead{ color:#ddd; font-size:1.15rem; }
.hero-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(245,166,35,.15);
  color:var(--tsm-yellow);
  border:1px solid rgba(245,166,35,.4);
  border-radius:50px; padding:.4rem 1rem; font-size:.85rem; font-weight:700;
  margin-bottom:1rem;
}

/* ===== Booking card ===== */
.booking-card{
  background:var(--tsm-white);
  border-radius:var(--radius);
  box-shadow:0 25px 60px rgba(0,0,0,.35);
  padding:1.8rem;
}
.booking-card .form-label{ font-weight:600; font-size:.85rem; color:var(--tsm-gray); }
.booking-card .form-control,.booking-card .form-select{
  border-radius:10px; border:1px solid #e6e2d8; padding:.65rem .9rem;
}
.booking-card .form-control:focus,.booking-card .form-select:focus{
  border-color:var(--tsm-yellow); box-shadow:0 0 0 .2rem rgba(245,166,35,.2);
}
.price-preview{
  background:var(--tsm-cream);
  border-radius:10px;
  padding:.9rem 1.1rem;
  font-weight:700;
  display:flex; justify-content:space-between; align-items:center;
}
.price-preview .amount{ color:var(--tsm-yellow-dark); font-size:1.3rem; }

/* ===== Section titles ===== */
.section-eyebrow{
  color:var(--tsm-yellow-dark); font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; font-size:.8rem;
}
.section-title{ font-size:2rem; margin-bottom:.5rem; }
.section-sub{ color:var(--tsm-gray); max-width:640px; }

/* ===== Destination cards ===== */
.dest-card{
  background:var(--tsm-white);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
  height:100%;
}
.dest-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.12); }
.dest-card img{ width:100%; height:200px; object-fit:cover; }
.dest-card .dest-body{ padding:1.2rem; }
.dest-card .dest-price{ color:var(--tsm-yellow-dark); font-weight:800; font-size:1.25rem; }
.dest-card .dest-meta{ color:var(--tsm-gray); font-size:.85rem; }
.badge-featured{
  background:var(--tsm-yellow); color:var(--tsm-black); font-weight:700;
  border-radius:50px; padding:.3rem .8rem; font-size:.72rem;
}

/* ===== Why us icons ===== */
.feature-icon{
  width:60px; height:60px; border-radius:16px;
  background:rgba(245,166,35,.15);
  display:flex; align-items:center; justify-content:center;
  color:var(--tsm-yellow-dark); font-size:1.6rem; margin-bottom:1rem;
}

/* ===== Testimonials ===== */
.testimonial-card{
  background:var(--tsm-white); border-radius:var(--radius); padding:1.6rem;
  box-shadow:var(--shadow); height:100%;
}
.testimonial-card .stars{ color:var(--tsm-yellow); }

/* ===== Blog cards ===== */
.blog-card{
  background:var(--tsm-white); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow); height:100%; transition:transform .25s ease;
}
.blog-card:hover{ transform:translateY(-6px); }
.blog-card img{ width:100%; height:190px; object-fit:cover; }
.blog-card .blog-body{ padding:1.2rem; }
.blog-card .blog-date{ color:var(--tsm-gray); font-size:.8rem; }

/* ===== Footer ===== */
.tsm-footer{ background:var(--tsm-black); color:#ccc; padding:60px 0 24px; }
.tsm-footer h5{ color:var(--tsm-white); margin-bottom:1.2rem; }
.tsm-footer a{ color:#bbb; }
.tsm-footer a:hover{ color:var(--tsm-yellow); }
.footer-bottom{ border-top:1px solid #333; margin-top:40px; padding-top:20px; font-size:.85rem; color:#888; }

/* ===== WhatsApp float ===== */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:1050;
  width:60px; height:60px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:1.7rem; box-shadow:0 10px 25px rgba(37,211,102,.5);
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5); }
  70%{ box-shadow:0 0 0 14px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}

/* ===== Currency switcher ===== */
.currency-switch select{
  border-radius:50px; border:1px solid #e6e2d8; padding:.35rem .9rem; font-weight:600; font-size:.85rem;
}

/* ===== Admin ===== */
.admin-sidebar{ background:var(--tsm-black); min-height:100vh; color:#ddd; }
.admin-sidebar .brand{ color:var(--tsm-yellow); font-weight:800; padding:1.2rem; font-size:1.2rem; }
.admin-sidebar a{
  color:#ccc; display:block; padding:.75rem 1.4rem; font-weight:600; border-left:3px solid transparent;
}
.admin-sidebar a:hover,.admin-sidebar a.active{
  background:rgba(245,166,35,.12); color:var(--tsm-yellow); border-left-color:var(--tsm-yellow);
}
.admin-topbar{ background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.05); padding:1rem 1.5rem; }
.stat-card{ background:#fff; border-radius:var(--radius); padding:1.4rem; box-shadow:var(--shadow); }
.stat-card .stat-num{ font-size:1.8rem; font-weight:800; }
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--tsm-black); }
.login-card{ background:#fff; border-radius:var(--radius); padding:2.4rem; width:100%; max-width:400px; box-shadow:0 30px 60px rgba(0,0,0,.4); }

@media (max-width:768px){
  .hero h1{ font-size:1.9rem; }
  .booking-card{ margin-top:2rem; }
}
