/* Travel CON AMIGOS — logo-extracted brand layer
   Navy + teal + vibrant orange. Script headlines. Custom cursor. */

:root {
  --navy: #0A0A0A;
  --navy-mid: #1c1c1c;
  --navy-dark: #000000;
  --teal: #32B7AB;
  --teal-mid: #2ec4bd;
  --teal-dark: #3C8370;
  --teal-light: #e7f8f7;
  --gold: #C56C0F;
  --gold-hover: #A85A0D;
  --gold-light: #32B7AB;
  --orange: #C56C0F;
  --orange-hover: #A85A0D;
  --primary: #0A0A0A;
  --primary-soft: #32B7AB;
  --primary-dark: #000000;
  --secondary: #32B7AB;
  --accent: #C56C0F;
  --brand-maroon: #0A0A0A;
  --brand-maroon-dark: #000000;
  --brand-teal: #32B7AB;
  --brand-teal-light: #e7f8f7;
  --brand-sky: #32B7AB;
  --brand-emerald: #3C8370;
  --brand-orange: #C56C0F;
  --brand-gold: #C56C0F;
  --brand-gold-light: #32B7AB;
  --header-nav-h: 6.15rem;
  --header-total-h: var(--header-nav-h);
}

.site-header--modern {
  --logo-navy: #0A0A0A;
  --logo-gold: #C56C0F;
  --logo-gold-bright: #C56C0F;
  --logo-teal: #32B7AB;
}

.page-home,
.gti-home {
  --gti-navy: #0A0A0A;
  --gti-navy-deep: #000000;
  --gti-gold: #C56C0F;
  --gti-gold-bright: #C56C0F;
  --gti-gold-hover: #A85A0D;
  --gti-teal: #32B7AB;
}

/* ---------- Typography ---------- */
.gti-home h1,
.tca-script,
.ft-invite__title,
.gti-cta h2 {
  font-family: "Great Vibes", "Allura", cursive;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.12;
}

.gti-home h2 {
  font-family: "Great Vibes", "Allura", cursive;
  font-weight: 400;
  letter-spacing: 0.01em;
}

.gti-home h3,
.gti-home p,
.gti-home li,
.site-nav-list,
body {
  font-family: Inter, Outfit, system-ui, sans-serif;
}

/* ---------- Header / logo ---------- */
.site-header.site-header--modern {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.site-header--modern::after {
  height: 3px;
  background: linear-gradient(90deg, #32B7AB 0%, #32B7AB 28%, #C56C0F 28%, #C56C0F 52%, #7a8b2a 52%, #7a8b2a 72%, #32B7AB 72%, #32B7AB 100%);
}

.site-header--modern .site-navbar-row {
  min-height: 5.35rem;
}

.site-header--modern .site-logo-img,
.site-header--modern.is-scrolled .site-logo-img {
  height: 4.35rem;
  max-width: min(10.5rem, 48vw);
  aspect-ratio: auto;
  object-fit: contain;
  object-position: left center;
  mix-blend-mode: multiply;
}

@media (min-width: 768px) {
  .site-header--modern .site-logo-img,
  .site-header--modern.is-scrolled .site-logo-img {
    height: 5.1rem;
    max-width: 12.25rem;
  }

  .site-header--modern .site-navbar-row {
    min-height: 5.75rem;
  }
}

@media (min-width: 1280px) {
  .site-header--modern .site-navbar-row {
    grid-template-columns: minmax(11rem, 13.5rem) minmax(0, 1fr) auto;
    min-height: 6.05rem;
  }

  .site-header--modern .site-logo-img,
  .site-header--modern.is-scrolled .site-logo-img {
    height: 5.35rem;
    max-width: 13rem;
  }
}

.site-header--modern .site-nav-list .nav-link:hover,
.site-header--modern .site-nav-list .nav-link.active {
  color: var(--orange);
}

.site-header--modern .site-nav-cta {
  display: none;
  background: var(--orange);
  border-color: var(--orange);
  border-radius: 999px;
  box-shadow: 0 10px 22px -12px rgba(232, 123, 31, 0.7);
}

@media (min-width: 768px) {
  .site-header--modern .site-nav-cta {
    display: inline-flex;
  }
}

.site-header--modern .site-nav-cta:hover {
  background: var(--orange-hover);
  border-color: var(--orange-hover);
}

.ft-logo {
  background: #fff;
  border-radius: 10px;
  padding: 0.35rem 0.55rem;
}

.ft-logo__img {
  height: 4.6rem;
  max-width: 12.5rem;
}

.site-footer--pro {
  background: #000000;
  border-top: 3px solid var(--teal);
}

.ft-invite {
  background: linear-gradient(180deg, #0A0A0A 0%, #000000 100%);
  border-bottom: 1px solid rgba(50, 183, 171, 0.28);
}

.ft-btn--gold {
  border-radius: 999px;
}

/* ==========================================================================
   Custom cursor — orange triangle + trailing teal airplane
   ========================================================================== */
.tca-cursor {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 0;
  height: 0;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  body.tca-cursor-on,
  body.tca-cursor-on * {
    cursor: none !important;
  }

  body.tca-cursor-on input,
  body.tca-cursor-on textarea,
  body.tca-cursor-on select,
  body.tca-cursor-on input *,
  body.tca-cursor-on textarea * {
    cursor: text !important;
  }

  .tca-cursor.is-on {
    display: block;
  }
}

.tca-cursor__plane {
  position: absolute;
  top: -28px;
  left: -42px;
  width: 34px;
  height: 34px;
  color: var(--teal);
  filter: drop-shadow(0 4px 8px rgba(26, 168, 161, 0.45));
  will-change: transform;
}

.tca-cursor__plane svg {
  width: 100%;
  height: 100%;
  display: block;
}

.tca-cursor__trail {
  position: absolute;
  top: -6px;
  left: -28px;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, #32B7AB);
  opacity: 0.7;
}

.tca-cursor__triangle {
  position: absolute;
  top: -2px;
  left: -2px;
  width: 16px;
  height: 16px;
  background: var(--orange);
  clip-path: polygon(0 0, 100% 70%, 38% 70%, 0 100%);
  filter: drop-shadow(0 3px 6px rgba(232, 123, 31, 0.55));
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), filter 0.28s ease;
}

.tca-cursor::after {
  content: "";
  position: absolute;
  top: -16px;
  left: -16px;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(26, 168, 161, 0.38);
  border-radius: 50%;
  opacity: 0.55;
  transition:
    width 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    height 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    top 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    left 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.28s ease,
    opacity 0.28s ease;
}

.tca-cursor.is-hover::after {
  top: -26px;
  left: -26px;
  width: 52px;
  height: 52px;
  border-color: #e0741e;
  opacity: 0.95;
}

.tca-cursor.is-hover .tca-cursor__plane {
  color: #e0741e;
  filter: drop-shadow(0 4px 10px rgba(224, 116, 30, 0.55));
}

.tca-cursor.is-hover .tca-cursor__plane svg {
  transform: scale(1.38);
  transform-origin: center;
}

.tca-cursor.is-hover .tca-cursor__triangle {
  transform: scale(1.45);
  background: #e0741e;
  filter: drop-shadow(0 4px 10px rgba(224, 116, 30, 0.7));
}

.tca-cursor.is-hover .tca-cursor__trail {
  background: linear-gradient(90deg, transparent, #e0741e);
  opacity: 1;
}

.tca-cursor__plane svg {
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ==========================================================================
   Homepage hero
   ========================================================================== */
.page-home .hero-home--cinematic.tca-hero {
  display: grid;
  align-content: center;
  min-height: 100vh;
  min-height: 100dvh;
  color: #fff;
  background: #000000 !important;
}

.tca-hero .hero-slideshow img,
.tca-hero .tca-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
}

.page-home .hero-home--cinematic.tca-hero .hero-overlay {
  background:
    linear-gradient(180deg, rgba(10, 37, 64, 0.38) 0%, rgba(10, 37, 64, 0.18) 32%, rgba(10, 37, 64, 0.28) 52%, rgba(6, 24, 43, 0.82) 100%),
    linear-gradient(90deg, rgba(10, 37, 64, 0.42) 0%, transparent 38%, transparent 62%, rgba(10, 37, 64, 0.38) 100%);
}

.tca-hero .gti-hero-inner {
  display: grid;
  justify-items: center;
  text-align: center;
  width: min(920px, calc(100% - 2rem));
  margin: 0 auto;
  padding: calc(var(--header-total-h, 6.15rem) + 1.6rem) 0 9.5rem;
  grid-template-columns: 1fr;
}

.tca-hero .gti-hero-copy {
  max-width: 46rem;
}

.tca-hero .gti-hero-copy h1 {
  max-width: none;
  color: #fff;
  font-size: clamp(3.4rem, 9vw, 6.6rem);
  line-height: 1.02;
  text-shadow: 0 10px 40px rgba(6, 24, 43, 0.45);
}

.tca-hero .gti-hero-copy h1 em {
  font-style: normal;
  color: #f0a12c;
}

.tca-hero .gti-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: #fff;
  letter-spacing: 0.28em;
}

.tca-hero .gti-kicker::before,
.tca-hero .gti-kicker::after {
  content: "";
  width: 2.2rem;
  height: 2px;
  background: linear-gradient(90deg, #32B7AB, #C56C0F);
}

.tca-hero .gti-hero-lead {
  margin-left: auto;
  margin-right: auto;
  color: rgba(255, 255, 255, 0.95);
  text-shadow: 0 6px 24px rgba(6, 24, 43, 0.55);
}

.tca-hero .gti-hero-actions {
  justify-content: center;
}

.tca-explore {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  min-height: 3.35rem;
  padding: 0.85rem 1.9rem 0.85rem 1.45rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #E68A2E 0%, #C56C0F 100%);
  color: #fff;
  font-family: Inter, sans-serif;
  font-size: 0.82rem;
  font-weight: 750;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow:
    0 16px 36px -12px rgba(232, 123, 31, 0.75),
    0 0 0 6px rgba(232, 123, 31, 0.16);
  transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.tca-explore:hover {
  transform: translateY(-2px);
  background: linear-gradient(180deg, #f49a44 0%, #d46a12 100%);
  color: #fff;
  box-shadow:
    0 20px 40px -12px rgba(232, 123, 31, 0.85),
    0 0 0 8px rgba(26, 168, 161, 0.18);
}

.tca-explore__feather {
  width: 1.55rem;
  height: 1.55rem;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.tca-hero .gti-hero-places {
  display: none;
}

.tca-hero .gti-hero-foot {
  display: none;
}

.tca-hero .gti-hero-stats div {
  border-top: 1px solid rgba(26, 168, 161, 0.55);
  background: rgba(6, 24, 43, 0.38);
  border-radius: 10px;
  text-align: center;
}

.tca-hero .gti-hero-now {
  display: none;
}

@media (min-width: 900px) {
  .tca-hero .gti-hero-inner {
    grid-template-columns: 1fr;
    padding-bottom: 9.5rem;
  }

  .tca-hero .gti-hero-foot {
    grid-template-columns: 1fr;
    max-width: 36rem;
  }
}

/* ==========================================================================
   Service blocks
   ========================================================================== */
.tca-services {
  position: relative;
  z-index: 4;
  width: min(1180px, calc(100% - 1.5rem));
  margin: -4.75rem auto 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

@media (min-width: 700px) {
  .tca-services {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: -5.25rem;
  }
}

.tca-service {
  position: relative;
  display: grid;
  gap: 0.55rem;
  min-height: 11.5rem;
  padding: 1.45rem 1.35rem 1.3rem;
  border-radius: 18px;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 22px 44px -22px rgba(6, 24, 43, 0.55);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.tca-service:hover {
  transform: translateY(-6px);
  color: #fff;
  box-shadow: 0 28px 48px -18px rgba(6, 24, 43, 0.6);
}

.tca-service--navy {
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(26, 168, 161, 0.28), transparent 46%),
    linear-gradient(160deg, #1c1c1c 0%, #0A0A0A 100%);
}

.tca-service--teal {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(240, 161, 44, 0.22), transparent 46%),
    linear-gradient(160deg, #2ec4bd 0%, #0e7a75 100%);
}

.tca-service--orange {
  background:
    radial-gradient(120% 90% at 100% 100%, rgba(10, 37, 64, 0.28), transparent 50%),
    linear-gradient(160deg, #f08a2e 0%, #d46a12 100%);
}

.tca-service__icon {
  width: 2.55rem;
  height: 2.55rem;
  color: #fff;
}

.tca-service h3 {
  margin: 0;
  font-family: Inter, sans-serif;
  font-size: 1.12rem;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: #fff;
}

.tca-service p {
  margin: 0;
  max-width: 18rem;
  font-size: 0.9rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.86);
}

.tca-service span {
  margin-top: auto;
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
}

.tca-service::after {
  content: "";
  position: absolute;
  right: -1.2rem;
  bottom: -1.6rem;
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  z-index: -1;
}

.page-home .sk-ww-tripadvisor-reviews {
  width: min(1180px, calc(100% - 1.5rem));
  margin: 2.25rem auto 0;
}

.page-home .gti-why:not(.tca-why) {
  padding-top: 4.25rem;
}

/* Buttons + links */
.gti-btn--gold,
.gti-why-btn--solid,
.ft-btn--gold,
.site-nav-btn--primary {
  background: var(--orange);
  border-color: var(--orange);
  color: #fff;
}

.gti-text-link {
  color: var(--navy);
  border-bottom-color: var(--orange);
}

.gti-text-link:hover {
  color: var(--orange);
}

.gti-kicker {
  color: var(--orange);
}

.gti-home a:hover {
  text-underline-offset: 3px;
}

.gti-cta {
  background:
    linear-gradient(180deg, rgba(10, 37, 64, 0.72), rgba(6, 24, 43, 0.88)),
    url("../images/tca-hero-friends-taj.jpg") center/cover;
}

.mobile-cta-bar__primary {
  background: var(--orange) !important;
}

@media (max-width: 699px) {
  .tca-hero .gti-hero-foot {
    bottom: 5.5rem;
  }

  .tca-hero .gti-hero-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tca-hero .gti-hero-stats dt {
    font-size: 1.15rem;
  }

  .tca-hero .gti-hero-stats dd {
    font-size: 0.58rem;
  }

  .tca-hero .gti-hero-inner {
    padding: calc(var(--header-total-h, 5.5rem) + 0.6rem) 0 7.25rem;
  }

  .tca-hero .gti-hero-copy h1 {
    font-size: clamp(3rem, 13vw, 4.4rem);
  }

  .tca-hero .gti-hero-lead {
    font-size: 0.95rem;
    max-width: 22rem;
  }

  .tca-services {
    margin-top: -3.6rem;
  }
}
