:root {
  --ease-out-soft: cubic-bezier(.2, .8, .2, 1);
  --ease-spring: cubic-bezier(.18, .89, .32, 1.28);
  --forest: #1f3d2b;
  --moss: #687246;
  --sand: #e4d2ad;
  --paper: #f6f0e3;
  --clay: #9c6a42;
}

* {
  -webkit-tap-highlight-color: transparent;
}

[x-cloak] {
  display: none !important;
}

body {
  background:
    radial-gradient(ellipse at 16% 18%, rgba(127, 143, 85, .12), transparent 34rem),
    linear-gradient(180deg, #fbf7ed 0%, #f3ead8 48%, #fbf7ed 100%);
  color: #2f261e;
  overflow-x: hidden;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 60;
  opacity: .32;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

.organic-lines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .16;
  background-image: url("data:image/svg+xml,%3Csvg width='260' height='220' viewBox='0 0 260 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%231f3d2b' stroke-width='1.2'%3E%3Cpath d='M26 132c42-62 89-61 141-14 31 28 53 24 70-9'/%3E%3Cpath d='M18 172c52-45 95-41 132-5 25 24 61 26 92-13'/%3E%3Cpath d='M48 54c26 11 35 31 21 60-20-15-28-35-21-60Z'/%3E%3Cpath d='M195 35c-21 22-22 46-3 72 17-23 18-47 3-72Z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 280px 240px;
}

.nav-scrolled {
  background: rgba(246, 240, 227, .86);
  border-color: rgba(104, 114, 70, .24);
  box-shadow: 0 12px 30px rgba(51, 41, 28, .08);
}

.hero {
  background-image:
    linear-gradient(105deg, rgba(19, 36, 25, .86) 0%, rgba(31, 61, 43, .62) 38%, rgba(31, 61, 43, .18) 70%),
    url("https://images.unsplash.com/photo-1537996194471-e657df975ab4?auto=format&fit=crop&w=2200&q=82");
  background-size: cover;
  background-position: center;
}

.leaf-badge {
  clip-path: polygon(8% 0, 100% 0, 92% 100%, 0 100%);
}

.btn-ripple {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-size: 220% 100%;
  background-image: linear-gradient(110deg, #1f3d2b, #687246 45%, #9c6a42 72%, #1f3d2b);
  transition: transform .35s var(--ease-spring), background-position .65s var(--ease-out-soft), box-shadow .35s var(--ease-out-soft);
}

.btn-ripple:hover {
  transform: translateY(-3px) rotate(-1deg);
  background-position: 100% 0;
  box-shadow: 0 18px 38px rgba(31, 61, 43, .24);
}

.btn-ripple::after {
  content: "";
  position: absolute;
  width: 12rem;
  height: 12rem;
  left: var(--x, 50%);
  top: var(--y, 50%);
  translate: -50% -50%;
  border-radius: 999px;
  background: rgba(255, 255, 255, .25);
  transform: scale(0);
  opacity: 0;
  z-index: -1;
}

.btn-ripple.is-rippling::after {
  animation: ripple .62s ease-out;
}

@keyframes ripple {
  0% { transform: scale(0); opacity: .8; }
  100% { transform: scale(1.45); opacity: 0; }
}

.wave-top {
  clip-path: polygon(0 5%, 14% 0, 34% 7%, 55% 2%, 76% 8%, 100% 1%, 100% 100%, 0 100%);
}

.wave-both {
  clip-path: polygon(0 0, 17% 5%, 40% 0, 62% 7%, 84% 2%, 100% 7%, 100% 95%, 80% 100%, 58% 94%, 31% 100%, 11% 95%, 0 98%);
}

.destination-card {
  transform-style: preserve-3d;
  transition: transform .45s var(--ease-out-soft), box-shadow .45s var(--ease-out-soft);
}

.destination-card img,
.gallery-card img {
  transition: transform .8s var(--ease-out-soft), filter .45s var(--ease-out-soft);
}

.destination-card:hover {
  transform: translateY(-9px) rotate(var(--tilt, -1deg));
  box-shadow: 0 24px 58px rgba(51, 41, 28, .22);
}

.destination-card:hover img,
.gallery-card:hover img {
  transform: scale(1.08) translateY(-4px);
  filter: saturate(1.08) contrast(1.04);
}

.price-featured::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 1.5rem;
  padding: 1px;
  background: linear-gradient(135deg, rgba(31, 61, 43, .9), rgba(228, 210, 173, .25), rgba(156, 106, 66, .75));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.gallery-card .overlay {
  opacity: 0;
  transform: translateY(18px) rotate(-1deg);
  transition: opacity .36s var(--ease-out-soft), transform .36s var(--ease-out-soft);
}

.gallery-card:hover .overlay {
  opacity: 1;
  transform: translateY(0) rotate(0);
}

.testimonial-swiper {
  overflow: visible;
  min-width: 0;
  padding: 1rem .25rem 2.5rem;
}

.testimonial-card {
  transform: rotate(-1.2deg);
}

.dummy-photo {
  display: grid;
  width: 3.75rem;
  height: 3.75rem;
  flex: 0 0 3.75rem;
  place-items: center;
  border: 3px solid rgba(255, 255, 255, .78);
  border-radius: 999px;
  box-shadow: 0 12px 24px rgba(31, 61, 43, .16);
  color: #1f3d2b;
  font-family: Poppins, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
}

.swiper-slide:nth-child(even) .testimonial-card {
  transform: rotate(1.4deg);
}

.swiper-pagination-bullet {
  background: #687246;
  opacity: .28;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  width: 1.6rem;
  border-radius: 999px;
}

.cta-scene {
  background-image:
    linear-gradient(95deg, rgba(31, 61, 43, .92), rgba(31, 61, 43, .58), rgba(74, 51, 37, .34)),
    url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2100&q=82");
  background-size: cover;
  background-position: center;
}

.lightbox {
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s var(--ease-out-soft);
}

.lightbox.open {
  opacity: 1;
  pointer-events: auto;
}

.lightbox img {
  transform: translateY(16px) scale(.96);
  transition: transform .32s var(--ease-spring);
}

.lightbox.open img {
  transform: translateY(0) scale(1);
}

.parallax-soft {
  transform: translate3d(0, var(--parallax, 0px), 0);
  transition: transform .08s linear;
}

@media (max-width: 768px) {
  .wave-top,
  .wave-both {
    clip-path: none;
  }

  .testimonial-card,
  .swiper-slide:nth-child(even) .testimonial-card {
    transform: none;
  }
}
