:root {
  --primary:#7c72ab;
  --secondary:#e6ffc7;
  --tertiary:#333333;
  --dark-violet:#333333;
  --on-surface:#333333;
  --on-background:#333333;
  --background:#f4f4f4;
  --surface:#e9e9e9;
  --outline:#7c72ab;
  --primary-container:#7c72ab;
  --tertiary-container:#333333;
  --surface-container-low:#f4f4f4;
  --surface-container-lowest:#ffffff;
  --error:#ef4444;
  --font-body:'Poppins',sans-serif
}
* {
  box-sizing:border-box;
  margin:0;
  padding:0
}
html {
  scroll-behavior:smooth
}
body {
  font-family:var(--font-body);
  background-color:var(--background);
  color:var(--on-surface);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale
}
.container {
  width:100%;
  max-width:80rem;
  margin:0 auto;
  padding:0 1.5rem
}
.italic {
  font-style:italic
}
.text-secondary {
  color:var(--secondary) !important
}
.hidden {
  display:none !important
}
.material-symbols-outlined {
  font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  vertical-align:middle;
  font-size:24px
}
.material-symbols-outlined.fill-1 {
  font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 24
}
@keyframes pulse-subtle {
  0%,100% {
  transform:scale(1);
  opacity:1
}
50% {
  transform:scale(1.05);
  opacity:0.9
}
}
.pulse-subtle-anim {
  animation:pulse-subtle 2s cubic-bezier(0.4,0,0.6,1) infinite
}
.reveal {
  opacity:0;
  transform:translateY(30px);
  transition:opacity 0.8s ease-out,transform 0.8s ease-out
}
.reveal.active {
  opacity:1;
  transform:translateY(0)
}
.cta-hover {
  transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),filter 0.3s ease
}
.cta-hover:hover {
  transform:scale(1.05);
  filter:brightness(1.1)
}
.urgency-bar {
  background-color:var(--on-background);
  color:white;
  text-align:center;
  padding:0.5rem 1rem;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  position:relative;
  z-index:60
}
.urgency-bar .divider {
  margin:0 0.75rem;
  opacity:0.4
}
@media (min-width:768px) {
  .urgency-bar {
  font-size:12px
}
}
.main-header {
  position:sticky;
  top:0;
  width:100%;
  z-index:50;
  background-color:rgba(255,255,255,0.95);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(0,0,0,0.05)
}
.nav-container {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:1rem 1.5rem
}
.nav-logo img {
  height:3.25rem;
  width:auto;
  object-fit:contain;
  display:block
}
.nav-links {
  display:none;
  gap:2rem
}
.nav-link {
  font-size:13px;
  font-weight:600;
  color:var(--on-surface);
  text-decoration:none;
  transition:color 0.2s ease
}
.nav-link:hover {
  color:var(--primary)
}
.btn-reserve {
  background-color:var(--dark-violet);
  color:white;
  padding:0.625rem 1.5rem;
  border-radius:9999px;
  font-weight:700;
  font-size:13px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  display:inline-block
}
@media (min-width:768px) {
  .nav-logo img {
  height:3.75rem;
  width:auto;
  object-fit:contain
}
.nav-links {
  display:flex
}
}
.hero-section {
  position:relative;
  min-height:85vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  background-color:var(--primary);
  padding:4rem 0
}
.hero-canvas {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none
}
.hero-bg {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none
}
.hero-bg img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(0.5);
  opacity:0.4
}
.hero-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to right,rgba(0,0,0,0.6),transparent);
  z-index:2;
  pointer-events:none
}
.hero-content {
  position:relative;
  z-index:10;
  max-width:48rem;
  color:white
}
.hero-subtitle {
  display:inline-flex;
  align-items:center;
  gap:0.75rem;
  margin-bottom:1.5rem
}
.hero-subtitle-line {
  width:3rem;
  height:1px;
  background-color:var(--secondary)
}
.hero-subtitle-text {
  color:var(--secondary);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.15em
}
.hero-title {
  font-weight:700;
  font-size:3rem;
  line-height:1.15;
  margin-bottom:1.5rem
}
.hero-title span.italic {
  color:var(--secondary)
}
.hero-desc {
  font-size:1.125rem;
  line-height:1.6;
  margin-bottom:2.5rem;
  opacity:0.9;
  max-width:32rem
}
.hero-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:1rem
}
.btn-hero-primary {
  background-color:var(--secondary);
  color:var(--on-surface);
  padding:1rem 2rem;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  box-shadow:0 10px 15px -3px rgba(0,0,0,0.3)
}
.btn-hero-secondary {
  background-color:rgba(255,255,255,0.1);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,0.2);
  color:white;
  padding:1rem 2rem;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  transition:background-color 0.2s ease;
  display:inline-flex;
  align-items:center
}
.btn-hero-secondary:hover {
  background-color:rgba(255,255,255,0.2)
}
.hero-badges {
  margin-top:4rem;
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  align-items:center;
  border-top:1px solid rgba(255,255,255,0.1);
  padding-top:2rem
}
.hero-badge {
  display:flex;
  flex-direction:column
}
.hero-badge-lbl {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.05em;
  opacity:0.7;
  margin-bottom:0.25rem
}
.hero-badge-val {
  font-weight:700;
  font-size:1.125rem
}
@media (min-width:768px) {
  .hero-title {
  font-size:4.5rem
}
.hero-desc {
  font-size:1.25rem
}
}
.stats-section {
  background-color:var(--on-background);
  padding:2.5rem 0
}
.stats-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:2rem;
  text-align:center
}
.stat-val {
  color:var(--secondary);
  font-size:2.25rem;
  font-weight:700;
  margin-bottom:0.25rem
}
.stat-val span {
  font-size:1.25rem;
  opacity:0.6
}
.stat-lbl {
  color:rgba(255,255,255,0.6);
  font-size:10px;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:0.15em
}
@media (min-width:768px) {
  .stats-grid {
  grid-template-columns:repeat(4,1fr)
}
.stat-val {
  font-size:3rem
}
}
.diff-section {
  padding:6rem 0;
  background-color:var(--surface-container-low)
}
.diff-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:5rem;
  align-items:center
}
.diff-tag {
  color:var(--dark-violet);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.diff-title {
  font-size:2.25rem;
  font-weight:700;
  margin-bottom:2rem;
  line-height:1.2
}
.diff-title span.italic {
  color:var(--dark-violet)
}
.diff-desc {
  color:#4a4c50;
  font-size:1.125rem;
  line-height:1.7;
  margin-bottom:1.5rem
}
.diff-list {
  display:flex;
  flex-direction:column;
  gap:1rem
}
.diff-card {
  background-color:white;
  padding:1.5rem;
  border-radius:1rem;
  display:flex;
  gap:1.5rem;
  border:1px solid rgba(0,0,0,0.05);
  transition:transform 0.3s ease,box-shadow 0.3s ease
}
.diff-card:hover {
  transform:translateY(-2px);
  box-shadow:0 10px 25px -5px rgba(0,0,0,0.05),0 8px 10px -6px rgba(0,0,0,0.05)
}
.diff-card-num {
  font-size:2.25rem;
  font-weight:900;
  color:rgba(95,86,150,0.15);
  font-style:italic;
  line-height:1
}
.diff-card-title {
  font-weight:700;
  font-size:1.125rem;
  margin-bottom:0.5rem
}
.diff-card-desc {
  color:#4a4c50;
  font-size:14px;
  line-height:1.5
}
@media (min-width:768px) {
  .diff-grid {
  grid-template-columns:1fr 1fr
}
.diff-title {
  font-size:3rem
}
}
.steps-section {
  padding:6rem 0;
  background-color:white
}
.steps-header {
  margin-bottom:4rem
}
.steps-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem
}
.step-card {
  position:relative;
  padding:2rem;
  border-radius:1rem;
  background-color:var(--surface-container-lowest);
  border:1px solid rgba(0,0,0,0.06);
  transition:border-color 0.3s ease
}
.step-card:hover {
  border-color:rgba(95,86,150,0.3)
}
.step-num {
  color:var(--dark-violet);
  font-weight:700;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.05em;
  margin-bottom:1.5rem;
  display:block
}
.step-num span {
  font-size:1.875rem;
  display:block;
  margin-top:0.25rem;
  font-style:italic;
  opacity:0.15
}
.step-title {
  font-weight:700;
  font-size:1.25rem;
  margin-bottom:0.75rem
}
.step-desc {
  color:#4a4c50;
  font-size:14px;
  line-height:1.6
}
@media (min-width:768px) {
  .steps-grid {
  grid-template-columns:repeat(4,1fr)
}
}
.packages-section {
  padding:6rem 0;
  background-color:var(--on-background);
  color:white
}
.packages-header {
  text-align:center;
  margin-bottom:4rem
}
.packages-header .tag {
  color:var(--secondary);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.packages-header h2 {
  font-size:2.5rem;
  font-weight:700
}
.packages-header h2 span {
  color:var(--secondary)
}
.packages-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  max-width:64rem;
  margin:0 auto
}
.package-card {
  background-color:white;
  color:var(--on-surface);
  padding:2.5rem;
  border-radius:1.5rem;
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  transition:transform 0.3s ease
}
.package-card:hover {
  transform:translateY(-8px)
}
.package-card.featured {
  border:4px solid var(--secondary);
  box-shadow:0 25px 50px -12px rgba(199,239,0,0.15)
}
.featured-badge {
  position:absolute;
  top:0;
  right:0;
  background-color:var(--secondary);
  color:var(--on-surface);
  padding:0.375rem 1rem;
  font-weight:700;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:0.1em;
  border-bottom-left-radius:0.75rem
}
.package-card-header {
  margin-bottom:2rem
}
.package-card-tag {
  font-size:11px;
  font-weight:700;
  color:var(--dark-violet);
  text-transform:uppercase;
  letter-spacing:0.1em;
  display:block;
  margin-bottom:0.5rem
}
.package-card-title {
  font-size:1.875rem;
  font-weight:700
}
.price-box {
  padding:1.5rem 0;
  border-top:1px solid rgba(0,0,0,0.06);
  border-bottom:1px solid rgba(0,0,0,0.06);
  margin-bottom:2rem
}
.price-lbl {
  display:block;
  font-size:11px;
  font-weight:700;
  color:#71767a;
  text-transform:uppercase;
  margin-bottom:0.25rem
}
.price-val {
  font-size:3rem;
  font-weight:800;
  line-height:1
}
.price-note {
  font-size:12px;
  color:#71767a;
  margin-top:0.5rem
}
.package-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:1rem;
  margin-bottom:2.5rem;
  flex-grow:1
}
.package-item {
  display:flex;
  align-items:flex-start;
  gap:0.75rem;
  font-size:14px
}
.package-item .icon-check {
  color:var(--primary);
  font-size:1.125rem
}
.package-item.excluded {
  opacity:0.4;
  font-style:italic
}
.package-item.excluded .icon-close {
  color:var(--error);
  font-size:1.125rem
}
.btn-package {
  width:100%;
  padding:1rem;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  text-align:center;
  text-decoration:none;
  display:block
}
.package-card:not(.featured) .btn-package {
  background-color:var(--on-background);
  color:white
}
.package-card.featured .btn-package {
  background-color:var(--dark-violet);
  color:white
}
.btn-single-query {
  display:block;
  text-align:center;
  font-size:11px;
  font-weight:700;
  color:var(--dark-violet);
  text-transform:uppercase;
  margin-top:1rem;
  text-decoration:underline;
  transition:color 0.2s ease
}
.btn-single-query:hover {
  color:var(--primary)
}
.payment-methods {
  margin-top:5rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2.5rem;
  border-top:1px solid rgba(255,255,255,0.1);
  padding-top:4rem
}
.payment-title {
  font-size:1.125rem;
  font-weight:700
}
.payment-badges {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1.5rem
}
.payment-card {
  background-color:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.1);
  padding:1rem 1.5rem;
  border-radius:1rem;
  display:flex;
  align-items:center;
  gap:0.75rem;
  transition:background-color 0.2s ease
}
.payment-card:hover {
  background-color:rgba(255,255,255,0.1)
}
.payment-card .material-symbols-outlined {
  color:var(--secondary)
}
.payment-card span.text {
  font-weight:700;
  font-size:14px
}
.payment-note {
  font-size:12px;
  color:rgba(255,255,255,0.5);
  text-align:center;
  max-width:28rem
}
@media (min-width:768px) {
  .packages-header h2 {
  font-size:3rem
}
.packages-grid {
  grid-template-columns:repeat(2,1fr)
}
.payment-methods {
  flex-direction:row
}
}
.itinerary-section {
  padding:6rem 0;
  background-color:var(--dark-violet);
  color:white
}
.itinerary-header {
  text-align:center;
  margin-bottom:4rem
}
.itinerary-header .tag {
  color:var(--secondary);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.itinerary-header h2 {
  font-size:2.5rem;
  font-weight:700;
  margin-bottom:1.5rem
}
.itinerary-header p {
  max-width:42rem;
  margin:0 auto;
  opacity:0.8
}
.itinerary-tabs {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1rem;
  margin-bottom:4rem
}
.itinerary-tab-btn {
  background-color:rgba(255,255,255,0.1);
  border:1px solid rgba(255,255,255,0.2);
  color:white;
  padding:0.75rem 2.5rem;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  transition:background-color 0.2s ease,color 0.2s ease
}
.itinerary-tab-btn:hover {
  background-color:rgba(255,255,255,0.2)
}
.itinerary-tab-btn.active-tab {
  background-color:white !important;
  color:var(--dark-violet) !important
}
.itinerary-tab-btn span {
  font-style:italic;
  font-size:12px;
  margin-right:0.5rem;
  opacity:0.6;
  font-weight:500
}
.itinerary-panel {
  display:grid;
  grid-template-columns:1fr;
  gap:3rem;
  align-items:start;
  transition:opacity 0.4s ease-in-out,transform 0.4s ease-in-out
}
.itinerary-panel.hidden {
  display:none !important;
  opacity:0;
  transform:scale(0.98)
}
.itinerary-days-list {
  display:flex;
  flex-direction:column;
  gap:1.5rem
}
.itinerary-day-card {
  display:flex;
  gap:1.5rem;
  padding:1.5rem;
  border-radius:1rem;
  background-color:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.1);
  transition:background-color 0.2s ease
}
.itinerary-day-card:hover {
  background-color:rgba(255,255,255,0.1)
}
.itinerary-day-num {
  font-weight:700;
  flex-shrink:0;
  text-align:center
}
.itinerary-day-num span.lbl {
  font-size:10px;
  text-transform:uppercase;
  display:block;
  margin-bottom:0.25rem;
  color:var(--secondary);
  opacity:0.8
}
.itinerary-day-num span.val {
  font-size:1.5rem;
  font-style:italic;
  line-height:1;
  color:var(--secondary)
}
.itinerary-day-title {
  font-weight:700;
  font-size:1.125rem;
  margin-bottom:0.25rem
}
.itinerary-day-desc {
  font-size:14px;
  opacity:0.7;
  line-height:1.5
}
.itinerary-download-btn {
  background-color:white;
  color:var(--dark-violet);
  padding:0.75rem 2.5rem;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  border:none;
  cursor:pointer;
  margin-top:2rem;
  display:inline-block
}
.itinerary-image-wrapper {
  border-radius:1.5rem;
  overflow:hidden;
  box-shadow:0 25px 50px -12px rgba(0,0,0,0.3);
  height:500px
}
.itinerary-image-wrapper img {
  width:100%;
  height:100%;
  object-fit:cover
}
@media (min-width:768px) {
  .itinerary-header h2 {
  font-size:3rem
}
.itinerary-panel {
  grid-template-columns:1fr 1fr
}
}
.auth-section {
  padding:6rem 0;
  background-color:var(--primary);
  color:white;
  position:relative;
  overflow:hidden
}
.auth-bg-icon {
  position:absolute;
  right:-5rem;
  top:5rem;
  opacity:0.1;
  pointer-events:none
}
.auth-bg-icon .material-symbols-outlined {
  font-size:300px
}
.auth-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:5rem;
  align-items:center;
  position:relative;
  z-index:10
}
.auth-info .tag {
  color:var(--secondary);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.auth-info h2 {
  font-size:2.5rem;
  font-weight:700;
  margin-bottom:2rem;
  line-height:1.2
}
.auth-info h2 span {
  color:var(--secondary)
}
.auth-info p {
  font-size:1.125rem;
  line-height:1.7;
  margin-bottom:1.5rem;
  opacity:0.9
}
.auth-stats {
  display:flex;
  flex-wrap:wrap;
  gap:3rem;
  margin-top:2.5rem
}
.auth-stat-item {
  display:flex;
  flex-direction:column
}
.auth-stat-val {
  color:var(--secondary);
  font-weight:700;
  font-size:1.875rem;
  margin-bottom:0.25rem
}
.auth-stat-lbl {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:0.05em;
  opacity:0.7;
  font-weight:600
}
.ceo-card {
  background-color:white;
  color:var(--on-surface);
  padding:2.5rem;
  border-radius:1.5rem;
  box-shadow:0 25px 50px -12px rgba(0,0,0,0.2)
}
.ceo-img-wrapper {
  height:16rem;
  border-radius:1rem;
  overflow:hidden;
  margin-bottom:2rem
}
.ceo-img-wrapper img {
  width:100%;
  height:100%;
  object-fit:cover
}
.ceo-name {
  font-size:1.5rem;
  font-weight:700;
  margin-bottom:0.25rem
}
.ceo-title {
  color:var(--dark-violet);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  margin-bottom:1rem;
  display:block
}
.ceo-quote {
  font-size:1.125rem;
  font-style:italic;
  color:#4a4c50;
  font-weight:500;
  line-height:1.6
}
@media (min-width:768px) {
  .auth-info h2 {
  font-size:3rem
}
.auth-grid {
  grid-template-columns:1fr 1fr
}
}
.gallery-section {
  padding: 6rem 0;
  background-color: var(--surface);
  overflow: hidden;
}
.gallery-header {
  text-align: center;
  margin-bottom: 3rem;
}
.gallery-header .tag {
  color: var(--dark-violet);
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 1rem;
  display: block;
}
.gallery-header h2 {
  font-size: 2.5rem;
  font-weight: 700;
}
.gallery-header h2 span {
  color: var(--dark-violet);
}

/* Infinite Smooth Carousel Styles */
.infinite-carousel-container {
  position: relative;
  width: 100%;
  padding: 1.5rem 0;
  overflow: hidden;
}

.infinite-carousel-wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
  mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}

.infinite-carousel-track {
  display: flex;
  gap: 1.5rem;
  width: max-content;
  will-change: transform;
}

.gallery-track {
  animation: infiniteScroll 45s linear infinite;
}

.shorts-track {
  animation: infiniteScroll 40s linear infinite;
}

.infinite-carousel-container:hover .infinite-carousel-track {
  animation-play-state: paused;
}

@keyframes infiniteScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.gallery-track .gallery-img {
  width: 320px;
  height: 220px;
  flex-shrink: 0;
  border-radius: 1.25rem;
  object-fit: cover;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}

.gallery-track .gallery-img:hover {
  transform: scale(1.05);
  box-shadow: 0 20px 35px rgba(0,0,0,0.2);
}

.shorts-track .short-card {
  width: 270px;
  flex-shrink: 0;
  background-color: white;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  border: 1px solid rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.shorts-track .short-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 35px rgba(0,0,0,0.15);
}

.short-iframe-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  background-color: #000;
}

.short-iframe-wrapper iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

.short-card-info {
  padding: 1.25rem;
  background-color: white;
}

.short-card-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--on-surface);
  line-height: 1.4;
  margin-bottom: 0.25rem;
}

.short-card-channel {
  font-size: 12px;
  color: var(--dark-violet);
  font-weight: 600;
}

.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 25;
  background: rgba(255, 255, 255, 0.9);
  color: var(--dark-violet);
  border: 1px solid rgba(0, 0, 0, 0.1);
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: background-color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
  opacity: 0.85;
}

.carousel-arrow:hover {
  opacity: 1;
  background: white;
  transform: translateY(-50%) scale(1.12);
}

.carousel-prev {
  left: 1rem;
}

.carousel-next {
  right: 1rem;
}

@media (max-width: 640px) {
  .gallery-track .gallery-img {
    width: 260px;
    height: 180px;
  }
  .shorts-track .short-card {
    width: 230px;
  }
  .carousel-arrow {
    width: 2.5rem;
    height: 2.5rem;
  }
}

.lightbox-modal {
  display:none !important;
  position:fixed;
  inset:0;
  top:0;
  left:0;
  width:100vw;
  height:100vh;
  z-index:99999;
  background-color:rgba(0,0,0,0.92);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.3s ease
}
.lightbox-modal.active {
  display:flex !important;
  opacity:1;
  pointer-events:auto
}
.lightbox-content {
  position:relative;
  max-width:90vw;
  max-height:85vh;
  display:flex;
  align-items:center;
  justify-content:center
}
.lightbox-img {
  max-width:90vw;
  max-height:85vh;
  border-radius:1rem;
  box-shadow:0 25px 50px rgba(0,0,0,0.5);
  object-fit:contain
}
.lightbox-close,.lightbox-prev,.lightbox-next {
  position:fixed;
  background:rgba(255,255,255,0.2);
  color:white;
  border:1px solid rgba(255,255,255,0.3);
  cursor:pointer;
  border-radius:50%;
  width:3.5rem;
  height:3.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.5rem;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  transition:background-color 0.2s ease,transform 0.2s ease;
  z-index:100000;
  user-select:none
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover {
  background:rgba(255,255,255,0.4);
  transform:scale(1.1)
}
.lightbox-close {
  top:2rem;
  right:2rem
}
.lightbox-prev {
  left:2rem;
  top:50%;
  transform:translateY(-50%)
}
.lightbox-next {
  right:2rem;
  top:50%;
  transform:translateY(-50%)
}
.lightbox-prev:hover {
  transform:translateY(-50%) scale(1.1)
}
.lightbox-next:hover {
  transform:translateY(-50%) scale(1.1)
}
.testimonials-section {
  padding:6rem 0;
  background-color:var(--surface-container-low);
  overflow: hidden;
}
.testimonials-header {
  text-align:center;
  margin-bottom:3rem;
}
.testimonials-header .tag {
  color:var(--dark-violet);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.testimonials-header h2 {
  font-size:2.5rem;
  font-weight:700;
  color:var(--dark-violet)
}
.testimonials-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:2rem
}
.testimonial-card {
  background-color:white;
  padding:2.5rem;
  border-radius:1.5rem;
  box-shadow:0 10px 15px -3px rgba(0,0,0,0.05);
  border:1px solid rgba(0,0,0,0.05);
  display:flex;
  flex-direction:column;
  transition:box-shadow 0.3s ease
}
.testimonial-card:hover {
  box-shadow:0 20px 25px -5px rgba(0,0,0,0.08)
}
.stars-container {
  display:flex;
  color:#ffb300;
  margin-bottom:1.5rem
}
.stars-container .material-symbols-outlined {
  font-size:20px
}
.testimonial-text {
  color:#4a4c50;
  font-style:italic;
  margin-bottom:2rem;
  line-height:1.6;
  flex-grow:1
}
.testimonial-author {
  font-weight:700;
  font-size:1.125rem;
  margin-bottom:0.25rem
}
.testimonial-info {
  font-size:11px;
  color:var(--dark-violet);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.05em
}
.shorts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  width: 100%;
}
@media (max-width: 1024px) {
  .shorts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .shorts-grid {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin: 0 auto;
  }
}
.short-card {
  background-color: white;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  border: 1px solid rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  width: 100%;
}
.short-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 35px rgba(0,0,0,0.15);
}
.short-iframe-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  background-color: #000;
}
.short-iframe-wrapper iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
.short-card-info {
  padding: 1.25rem;
  background-color: white;
}
.short-card-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--on-surface);
  line-height: 1.4;
  margin-bottom: 0.25rem;
}
.short-card-channel {
  font-size: 12px;
  color: var(--dark-violet);
  font-weight: 600;
}
.faq-section {
  padding:6rem 0;
  background-color:white
}
.faq-container {
  max-width:56rem;
  margin:0 auto
}
.faq-header {
  text-align:center;
  margin-bottom:4rem
}
.faq-header .tag {
  color:var(--dark-violet);
  font-weight:700;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.15em;
  margin-bottom:1rem;
  display:block
}
.faq-header h2 {
  font-size:2.5rem;
  font-weight:700
}
.faq-header h2 span {
  color:var(--dark-violet)
}
.faq-list {
  display:flex;
  flex-direction:column;
  gap:1rem
}
.faq-item {
  border:1px solid rgba(0,0,0,0.06);
  border-radius:1rem;
  overflow:hidden;
  background-color:var(--surface-container-lowest)
}
.faq-btn {
  width:100%;
  padding:1.5rem;
  text-align:left;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-weight:700;
  font-size:1.125rem;
  border:none;
  background:none;
  cursor:pointer;
  color:var(--on-surface)
}
.faq-btn-icon {
  transition:transform 0.3s ease
}
.faq-answer {
  max-height:0;
  overflow:hidden;
  transition:max-height 0.3s ease,padding-bottom 0.3s ease;
  padding:0 1.5rem
}
.faq-answer p {
  color:#4a4c50;
  font-size:14px;
  line-height:1.6
}
.faq-item.open .faq-answer {
  max-height:500px;
  padding-bottom:1.5rem
}
.faq-item.open .faq-btn-icon {
  transform:rotate(180deg)
}
.contact-section {
  padding:6rem 0;
  background-color:var(--dark-violet);
  color:white
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:5rem;
  align-items:center
}
.contact-info h2 {
  font-size:2.5rem;
  font-weight:700;
  margin-bottom:1.5rem;
  line-height:1.2
}
.contact-info h2 span {
  color:var(--secondary)
}
.contact-info p.desc {
  font-size:1.125rem;
  opacity:0.8;
  margin-bottom:2.5rem;
  line-height:1.6
}
.contact-details {
  display:flex;
  flex-direction:column;
  gap:1.5rem
}
.contact-detail-item {
  display:flex;
  align-items:center;
  gap:1rem
}
.contact-detail-icon {
  width:3rem;
  height:3rem;
  background-color:rgba(255,255,255,0.1);
  border-radius:9999px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--secondary)
}
.contact-detail-lbl {
  font-size:11px;
  text-transform:uppercase;
  font-weight:700;
  opacity:0.6;
  margin-bottom:0.15rem
}
.contact-detail-val {
  font-weight:700
}
.contact-form-card {
  background-color:white;
  padding:2.5rem;
  border-radius:1.5rem;
  color:var(--on-surface);
  box-shadow:0 25px 50px -12px rgba(0,0,0,0.25)
}
.contact-form {
  display:flex;
  flex-direction:column;
  gap:1.5rem
}
.form-row {
  display:grid;
  grid-template-columns:1fr;
  gap:1.5rem
}
.form-group {
  display:flex;
  flex-direction:column;
  gap:0.5rem
}
.form-label {
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  opacity:0.6
}
.form-input,.form-textarea {
  width:100%;
  background-color:var(--surface);
  border:none;
  border-radius:0.75rem;
  padding:1rem;
  font-size:14px;
  font-family:var(--font-body);
  transition:box-shadow 0.2s ease
}
.form-input:focus,.form-textarea:focus {
  outline:none;
  box-shadow:0 0 0 2px var(--primary)
}
.form-submit-btn {
  width:100%;
  padding:1rem;
  background-color:var(--primary);
  color:white;
  border-radius:9999px;
  font-weight:700;
  font-size:14px;
  border:none;
  cursor:pointer;
  box-shadow:0 10px 15px -3px rgba(0,0,0,0.1)
}
.form-note {
  font-size:10px;
  text-align:center;
  opacity:0.4;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:0.1em;
  margin-top:1rem
}
@media (min-width:768px) {
  .contact-info h2 {
  font-size:3rem
}
.contact-grid {
  grid-template-columns:1fr 1fr
}
.form-row {
  grid-template-columns:repeat(2,1fr)
}
}
.main-footer {
  background-color:var(--on-background);
  color:white;
  padding:3rem 0
}
.footer-container {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2rem
}
.footer-logo {
  height:3.25rem;
  width:auto;
  object-fit:contain;
  opacity:1;
  filter:none
}
.footer-links {
  display:flex;
  gap:2rem
}
.footer-link {
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  opacity:0.6;
  color:white;
  text-decoration:none;
  transition:opacity 0.2s ease
}
.footer-link:hover {
  opacity:1
}
.footer-copy {
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  opacity:0.4
}
@media (min-width:768px) {
  .footer-container {
  flex-direction:row;
  justify-content:space-between
}
}
.whatsapp-float {
  position:fixed;
  bottom:2rem;
  right:2rem;
  z-index:100;
  background-color:#25D366;
  color:white;
  padding:1rem;
  border-radius:9999px;
  box-shadow:0 10px 25px -5px rgba(0,0,0,0.3),0 8px 10px -6px rgba(0,0,0,0.3);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:transform 0.2s ease
}
.whatsapp-float:hover {
  transform:scale(1.1)
}
.whatsapp-float svg {
  width:2rem;
  height:2rem;
  display:block
}
.hero-video-container {
  position:absolute;
  inset:0;
  z-index:2;
  overflow:hidden;
  opacity:0.4;
  filter:brightness(0.5);
  pointer-events:none
}
.hero-video-container iframe {
  width:100vw;
  height:56.25vw;
  min-height:100vh;
  min-width:177.77vh;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none
}
.itinerary-panels  {
   display: flex;
   flex-direction: column;
   gap: 6rem;
}
@media (min-width: 768px)  {
  .itinerary-panel.reverse .itinerary-days-list  {
   order: 2;
}
  .itinerary-panel.reverse .itinerary-image-wrapper  {
   order: 1;
}
}
