@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');

:root { --ink:#173f3a; --clay:#c85e3e; --sand:#f4ead8; --sun:#efb94f; }
html { scroll-behavior:smooth; }
body { font-family:'DM Sans',sans-serif; color:#173f3a; background:#fffaf1; }
h1,h2,h3,.serif { font-family:'Playfair Display',serif; }
.nav-link { position:relative; }
.nav-link::after { content:''; position:absolute; left:0; right:100%; bottom:-5px; height:2px; background:var(--clay); transition:.25s; }
.nav-link:hover::after,.nav-link.active::after { right:0; }
.social-link { display:grid; height:2.6rem; width:2.6rem; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:999px; color:white; transition:.2s; }
.social-link:hover { border-color:var(--sun); background:var(--sun); color:var(--ink); transform:translateY(-2px); }
.social-link svg { height:1.25rem; width:1.25rem; fill:currentColor; }
.whatsapp-float { position:fixed; right:1.25rem; bottom:1.25rem; z-index:45; display:flex; width:3.5rem; height:3.5rem; align-items:center; justify-content:center; border:2px solid rgba(255,255,255,.75); border-radius:999px; background:#25d366; color:#fff; box-shadow:0 8px 28px rgba(12,45,42,.28); transition:.2s; }
.whatsapp-float:hover { background:#1fba59; transform:translateY(-3px); box-shadow:0 12px 32px rgba(12,45,42,.35); }
.whatsapp-float svg { width:1.65rem; height:1.65rem; fill:currentColor; }
.hero-home { background:linear-gradient(90deg,rgba(12,45,42,.89) 0%,rgba(12,45,42,.55) 52%,rgba(12,45,42,.12) 100%),url('https://images.unsplash.com/photo-1588598198321-9735fd52455b?auto=format&fit=crop&w=2000&q=85') center/cover; }
.page-hero { background:linear-gradient(90deg,rgba(14,54,49,.88),rgba(14,54,49,.38)),var(--hero-image) center/cover; }
.classic-ceylon-hero {
  background-image:
    linear-gradient(90deg, rgba(14, 54, 49, 0.88), rgba(14, 54, 49, 0.38)),
    url("../img/classic-ceylon-tea.jpg");
  background-position: center;
  background-size: cover;
}
.hill-city-escape-hero {
  background:
    linear-gradient(90deg,rgba(14,54,49,.88),rgba(14,54,49,.38)),
    url("../img/tea.jpg") center/cover;
}
.ocean-escape-hero {
  background:
    linear-gradient(90deg,rgba(14,54,49,.88),rgba(14,54,49,.38)),
    url("../img/beach.jpg") center/cover;
}
.sri-lanka-wildlife-hero {
  background-image:
    linear-gradient(90deg, rgba(14, 54, 49, 0.88), rgba(14, 54, 49, 0.32)),
    url("../img/sri-lanka-wildlife.jpg");
  background-position: center;
  background-size: cover;
}
.custom-journey {
  background-image:
    linear-gradient(90deg, rgba(10, 43, 40, 0.96) 0%, rgba(10, 43, 40, 0.78) 42%, rgba(10, 43, 40, 0.12) 76%),
    url("../img/mong.jpg");
  background-position: center;
  background-size: cover;
}
@media (max-width: 767px) {
  .custom-journey {
    background-image:
      linear-gradient(180deg, rgba(10, 43, 40, 0.88), rgba(10, 43, 40, 0.94)),
      url("../img/mong.jpg");
    background-position: 58% center;
  }
}
.tour-card img { transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.tour-card:hover img { transform:scale(1.06); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s,transform .7s; }
.reveal.visible { opacity:1; transform:none; }
.pattern { background-image:radial-gradient(rgba(23,63,58,.12) 1px,transparent 1px); background-size:18px 18px; }
.field { width:100%; border:1px solid #d9cbb5; background:white; border-radius:14px; padding:.9rem 1rem; outline:none; transition:.2s; }
.field:focus { border-color:var(--clay); box-shadow:0 0 0 3px rgba(200,94,62,.12); }
.flight-section { border-top:1px solid rgba(23,63,58,.12); padding-top:1.75rem; }
.flight-choice { display:flex; cursor:pointer; align-items:flex-start; gap:.85rem; border:1px solid #d9cbb5; border-radius:16px; padding:1rem; transition:.2s; }
.flight-choice:hover { border-color:rgba(200,94,62,.65); background:rgba(200,94,62,.035); }
.flight-choice:has(input:checked) { border-color:var(--clay); background:rgba(200,94,62,.07); box-shadow:0 0 0 2px rgba(200,94,62,.1); }
.flight-choice input { margin-top:.25rem; accent-color:var(--clay); }
.flight-choice strong,.flight-choice small { display:block; }
.flight-choice small { margin-top:.25rem; color:rgba(23,63,58,.62); }
.conditional-fields { margin-top:1.25rem; border-radius:1.25rem; background:#fffaf1; padding:1.25rem; }
.currency-field { position:relative; }
.currency-field span { position:absolute; left:1rem; top:50%; z-index:1; transform:translateY(-50%); color:rgba(23,63,58,.6); font-size:.9rem; }
.currency-field input { padding-left:4.6rem; }
.transport-enquiry { scroll-margin-top:2rem; border-top:1px solid rgba(23,63,58,.12); padding-top:1.75rem; }
.service-choice { display:flex; cursor:pointer; align-items:center; gap:.7rem; border:1px solid #d9cbb5; border-radius:14px; padding:.9rem 1rem; transition:.2s; }
.service-choice:hover { border-color:rgba(200,94,62,.65); }
.service-choice:has(input:checked) { border-color:var(--clay); background:rgba(200,94,62,.07); }
.service-choice input { accent-color:var(--clay); }
.transport-highlight { border-radius:1.5rem; background:rgba(239,185,79,.12); padding:1.5rem; box-shadow:0 0 0 3px rgba(239,185,79,.2); }
.activity-trigger { display:inline-flex; align-items:center; gap:.65rem; border:1px solid var(--clay); border-radius:999px; padding:.7rem 1rem; color:var(--clay); font-weight:700; transition:.2s; }
.activity-trigger:hover { background:rgba(200,94,62,.08); }
.activity-trigger span { font-size:1.25rem; line-height:1; }
.activity-summary { margin-top:1rem; border:1px dashed #d9cbb5; border-radius:14px; padding:.8rem 1rem; color:rgba(23,63,58,.6); font-size:.9rem; }
.activity-summary.has-selection { border-style:solid; border-color:rgba(200,94,62,.35); background:rgba(200,94,62,.06); color:var(--ink); }
.activity-modal { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:1rem; }
.activity-modal.hidden { display:none; }
.activity-backdrop { position:absolute; inset:0; background:rgba(10,36,33,.72); backdrop-filter:blur(3px); }
.activity-dialog { position:relative; width:min(900px,100%); max-height:calc(100vh - 2rem); overflow:auto; border-radius:2rem; background:#fffaf1; padding:2rem; box-shadow:0 25px 80px rgba(0,0,0,.3); }
.activity-close { display:grid; flex:0 0 auto; height:2.5rem; width:2.5rem; place-items:center; border-radius:999px; background:rgba(23,63,58,.08); font-size:1.75rem; line-height:1; }
.activity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.activity-card { position:relative; cursor:pointer; overflow:hidden; border:3px solid transparent; border-radius:1.15rem; background:white; box-shadow:0 6px 20px rgba(23,63,58,.1); transition:.2s; }
.activity-card:hover { transform:translateY(-2px); }
.activity-card input { position:absolute; top:.75rem; right:.75rem; z-index:1; height:1.3rem; width:1.3rem; accent-color:var(--clay); }
.activity-card img { width:100%; height:130px; object-fit:cover; }
.activity-card span { display:block; padding:.8rem 1rem; font-weight:700; }
.activity-card:has(input:checked) { border-color:var(--clay); background:#fff7f2; }
body.activity-modal-open { overflow:hidden; }
@media (max-width:640px) { .activity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .activity-dialog { padding:1.35rem; border-radius:1.5rem; } .activity-card img { height:100px; } }
.package-day {
  overflow: hidden;
  border: 1px solid rgba(23, 63, 58, 0.12);
  border-radius: 1.25rem;
  background: #fff;
}
.package-day summary {
  display: flex;
  cursor: pointer;
  list-style: none;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  font-family: "Playfair Display", serif;
  font-size: 1.25rem;
  font-weight: 600;
}
.package-day summary::-webkit-details-marker { display: none; }
.package-day summary::after {
  content: "+";
  margin-left: auto;
  font-family: "DM Sans", sans-serif;
  color: var(--clay);
  font-size: 1.5rem;
}
.package-day[open] summary::after { content: "−"; }
.package-day summary span {
  min-width: 5.25rem;
  font-family: "DM Sans", sans-serif;
  color: var(--clay);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.package-day > div {
  border-top: 1px solid rgba(23, 63, 58, 0.08);
  padding: 1.25rem 1.5rem 1.5rem 7.75rem;
  color: rgba(23, 63, 58, 0.72);
  line-height: 1.75;
}
.package-day > div p + p { margin-top: 0.6rem; }
.package-list { display: grid; gap: 0.7rem; }
.package-list li { position: relative; padding-left: 1.4rem; line-height: 1.65; }
.package-list li::before { content: "✓"; position: absolute; left: 0; color: var(--sun); font-weight: 700; }
@media (max-width: 640px) {
  .package-day summary { align-items: flex-start; flex-direction: column; gap: 0.35rem; }
  .package-day > div { padding: 1.25rem 1.5rem 1.5rem; }
}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.tour-card img{transition:none} }
