/* TOUR SCOPE V8.2.0 — final public UI/performance polish.
   Presentation-only layer. It does not alter baseline HTML, CMS/MySQL data,
   Cloudinary public IDs/versions, routes, pricing, publish state or SEO copy. */

:root {
  --ts-action-h: 52px;
  --ts-action-radius: 15px 15px 5px;
  --ts-action-shadow: 0 12px 28px rgba(1,19,57,.16);
}

/* Consistent action language and control geometry across public templates. */
:where(.header-cta,.button,.trip-detail-button,.trip-whatsapp-button,
       .signature-header-cta,.signature-button,.xp-header-cta,.xp-btn,
       .floating-whatsapp,.xp-floating-wa) {
  font-family: var(--body, "Segoe UI", "Aptos", Arial, sans-serif);
  letter-spacing: .01em !important;
  text-transform: none !important;
  font-weight: 800;
}

:where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn) {
  min-height: var(--ts-action-h);
  border-radius: var(--ts-action-radius);
  transition: transform .2s cubic-bezier(.2,.7,.2,1), box-shadow .2s ease,
              background-color .2s ease, border-color .2s ease, filter .2s ease;
}

:where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn):active {
  transform: translateY(0) scale(.985) !important;
}

:where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn):focus-visible,
:where(.card-arrow-link,.card-footer button,.quick-submit,.feeling-list button,
       .trip-detail-button,.trip-whatsapp-button):focus-visible {
  outline: 3px solid #13bfd0 !important;
  outline-offset: 3px !important;
}

/* Homepage conversion controls. */
:where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn,
       .signature-island-body > a) {
  white-space:nowrap;
}
.round-link span {
  font-size:12px;
  line-height:1;
  letter-spacing:.02em;
}
.header-cta {
  height: 50px;
  padding: 0 7px 0 19px;
  border-radius: 999px;
  font-size: 12px;
}

.hero-actions .button {
  min-height: 56px;
  padding-left: 20px;
  padding-right: 7px;
  gap: 14px;
  font-size: 13px;
}

.button.whatsapp-button {
  background: linear-gradient(135deg,#06365d 0%,#087b92 100%);
  border-color: rgba(255,255,255,.62);
  box-shadow: 0 14px 32px rgba(2,47,76,.22);
}
.button.whatsapp-button:hover {
  background: linear-gradient(135deg,#07436f 0%,#0794a6 100%);
  box-shadow: 0 16px 34px rgba(2,47,76,.28);
}
.button.whatsapp-button > svg { color:#21d683; }
.button.whatsapp-button > span {
  color:#fff;
  background:linear-gradient(135deg,#ff6a24,#fb562f);
}

.header-cta span,
.button.primary > span,
.button.coral > span,
.button.whatsapp-button > span,
.detail-plan-button > span,
.collection-more > span {
  display:grid;
  place-items:center;
  flex:0 0 40px;
  width:40px;
  height:40px;
  border-radius:12px 12px 4px;
}

/* One arrow language: compact, clear, no oversized decorative controls. */
.action-arrow .arrow-speed { display:none !important; }
.action-arrow .arrow-core { transform:translateX(-1px); }

.signature-header-cta > span,
.signature-button > span {
  width:38px;
  height:38px;
  min-width:38px;
  display:grid;
  place-items:center;
  border-radius:12px 12px 4px;
  background:rgba(1,19,57,.92);
  color:#fff;
}
.signature-button.secondary > span {
  background:linear-gradient(145deg,rgba(1,19,57,.82),rgba(8,124,146,.84));
}
.xp-header-cta .xp-arrow,
.xp-btn.primary .xp-arrow {
  box-sizing:border-box;
  width:38px !important;
  height:38px !important;
  padding:9px;
  margin-left:8px;
  border-radius:12px 12px 4px;
  background:rgba(1,19,57,.92);
  color:#fff;
}
.signature-island-body > a > b {
  width:38px;
  height:38px;
  min-width:38px;
  display:grid;
  place-items:center;
  border-radius:12px 12px 4px;
}
.action-arrow,.xp-arrow,.signature-arrow { width:22px !important; height:22px !important; }
.card-arrow-link,
.card-footer button,
.quick-submit {
  width:52px;
  height:52px;
  min-width:52px;
  min-height:52px;
  border-radius:15px 15px 5px !important;
  box-shadow:0 10px 24px rgba(1,19,57,.18);
}
.card-footer button {
  background:linear-gradient(145deg,rgba(1,19,57,.9),rgba(7,140,167,.82));
  border-color:rgba(255,255,255,.55);
}
.card-footer button:hover,
.card-arrow-link:hover {
  transform:translateY(-2px);
}

.feeling-list button {
  min-height:76px;
  grid-template-columns:1fr auto;
  gap:18px;
  padding:0 12px 0 16px;
  transition:background-color .2s ease, padding-left .2s ease;
}
.feeling-list button > span { display:none; }
.feeling-list strong {
  font-family:var(--display,"Arial Black",Arial,sans-serif);
  font-size:clamp(22px,2vw,28px);
  letter-spacing:-.025em;
}
.feeling-list i {
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:13px 13px 4px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,rgba(1,19,57,.72),rgba(8,124,146,.8));
}

.collection-more {
  min-height:54px;
  padding:0 7px 0 20px;
  border-width:1px;
  border-radius:999px;
  font-size:13px;
}

/* Floating WhatsApp is useful only where it does not compete with stronger CTAs. */
body.ts-rich-media-visible .floating-whatsapp,
body.ts-rich-media-visible .xp-floating-wa,
body.ts-mobile-menu-open .floating-whatsapp,
body.ts-mobile-menu-open .xp-floating-wa {
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(12px) !important;
}

/* Final CTA: preserve the new photography rather than crushing it with overlay. */
.final-shade { background:rgba(4,28,39,.54); }
.final-content { width:min(920px,calc(100% - 44px)); }
.final-content .button.whatsapp-button.large {
  min-height:58px;
  padding-left:20px;
  padding-right:7px;
  font-size:13px;
}

/* Generic + signature CTAs remain brand-consistent without changing structure. */
.xp-header-cta,.xp-btn.primary,.signature-header-cta,.signature-button.primary {
  box-shadow:0 12px 28px rgba(251,86,47,.2);
}
.xp-btn.ghost,.signature-button.secondary {
  border-color:rgba(255,255,255,.34);
}

@media (hover:hover) and (pointer:fine) {
  :where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn):hover {
    transform:translateY(-2px);
    filter:saturate(1.03);
  }
  .feeling-list button:hover { padding-left:20px; }
}

@media (max-width:1050px) {
  /* Cleaner global-company-style navigation drawer. */
  .mobile-menu {
    width:min(88vw,390px);
    padding:92px 22px 24px;
    padding-top:max(92px,calc(env(safe-area-inset-top) + 78px));
    padding-bottom:max(24px,calc(env(safe-area-inset-bottom) + 18px));
    border-radius:24px 0 0 24px;
  }
  .mobile-menu::before {
    width:146px;
    height:52px;
    top:max(20px,calc(env(safe-area-inset-top) + 10px));
    left:22px;
  }
  .mobile-menu nav { margin:10px 0 4px; }
  .mobile-menu nav a {
    min-height:56px;
    padding:15px 0;
    font-size:clamp(19px,4vw,24px);
    line-height:1.08;
  }
  .mobile-menu nav a::after { font-size:19px; }
  .mobile-menu .button {
    min-height:54px;
    margin-top:18px;
    padding:0 18px;
    justify-content:space-between;
    font-size:13px;
    box-shadow:0 12px 28px rgba(251,86,47,.17);
  }
  .mobile-menu .button::after {
    content:"→";
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:11px 11px 4px;
    background:rgba(1,19,57,.92);
    color:#fff;
    font-size:18px;
  }
  .ts-menu-backdrop {
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    background:rgba(1,19,57,.58);
  }
}

@media (max-width:720px) {
  /* Remove expensive live blur from fixed/sticky chrome on touch devices.
     Backgrounds are already opaque enough, so visual quality is retained. */
  .site-header.solid,
  .site-header.ts-scrolled,
  .signature-header,
  .signature-header.ts-scrolled,
  .xp-header,
  .xp-header.ts-scrolled {
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  .site-header.solid,.site-header.ts-scrolled { background:rgba(253,251,248,.985) !important; }
  .xp-header,.xp-header.ts-scrolled { background:rgba(3,16,43,.985) !important; }

  /* Mobile motion is intentionally restrained to keep first scroll fluid. */
  html.ts-motion-ready .ts-motion-item,
  html.ts-motion-ready .ts-motion-item.ts-motion-pending,
  html.ts-motion-ready .ts-motion-item.ts-motion-from-left.ts-motion-pending,
  html.ts-motion-ready .ts-motion-item.ts-motion-from-right.ts-motion-pending,
  html.ts-motion-ready .ts-motion-item.ts-motion-scale.ts-motion-pending {
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    transition-delay:0ms !important;
  }

  /* Feeling image: keep the emotional shot strong without making the section feel endless. */
  .feeling-section {
    padding-top:390px !important;
  }
  .feeling-media {
    height:410px !important;
    clip-path:ellipse(82% 64% at 49% 34%) !important;
  }
  .feeling-content h2 {
    width:100%;
    max-width:380px;
    margin:32px 0 34px !important;
    font-size:39px !important;
    line-height:.94 !important;
    letter-spacing:-.048em !important;
    text-wrap:balance;
  }
  .feeling-content h2 br { display:none; }
  .feeling-list button {
    min-height:68px;
    padding-left:10px;
    padding-right:8px;
  }
  .feeling-list strong { font-size:23px; }
  .feeling-list i { width:42px;height:42px; }

  /* Closing CTA: bring content into view sooner and let turquoise detail breathe. */
  .why-section.section-pad { padding-bottom:40px !important; }
  .final-cta {
    min-height:610px !important;
    padding-left:18px !important;
    padding-right:18px !important;
  }
  .final-shade {
    background:linear-gradient(180deg,rgba(4,28,39,.46),rgba(4,28,39,.56)) !important;
  }
  .final-content h2 {
    margin-bottom:30px !important;
    font-size:49px !important;
    line-height:.9 !important;
  }
  .final-content .eyebrow { margin-bottom:22px; }
  .final-content .button.whatsapp-button.large {
    width:min(100%,360px);
    min-height:58px;
    justify-content:space-between;
    margin-inline:auto;
  }

  /* Premium touch geometry. */
  .hero-actions .button,
  .detail-actions .button,
  .booking-panel form > .button,
  .signature-button,
  .xp-btn {
    min-height:56px !important;
    font-size:13px !important;
  }
  .signature-header-cta,
  .xp-header-cta {
    min-height:48px !important;
    font-size:12px !important;
  }
  .signature-island-body > a {
    min-height:48px;
    gap:10px;
  }
  .collection-more { min-height:52px; }
}

@media (max-width:380px) {
  .feeling-content h2 { font-size:36px !important; max-width:342px; }
  .final-content h2 { font-size:46px !important; }
}

@media (prefers-reduced-motion:reduce) {
  :where(.header-cta,.button,.signature-header-cta,.signature-button,.xp-header-cta,.xp-btn,
         .card-arrow-link,.card-footer button,.feeling-list button,.mobile-menu nav a) {
    transition:none !important;
  }
}

/* V8.2.1 — mobile menu grid/stretch correction only.
   Fixes the CTA occupying the flexible 1fr track and improves logo contrast.
   No CMS/data/Cloudinary/SEO/route behavior changes. */
@media (max-width:1050px) {
  .mobile-menu {
    grid-template-rows:auto auto !important;
    align-content:start !important;
  }
  .mobile-menu nav {
    align-content:start !important;
  }
  .mobile-menu .button {
    width:100% !important;
    height:60px !important;
    min-height:60px !important;
    max-height:60px !important;
    align-self:start !important;
    margin-top:24px !important;
  }
  .mobile-menu::before {
    filter:brightness(0) invert(1) drop-shadow(0 8px 18px rgba(0,0,0,.14)) !important;
    opacity:.96 !important;
  }
}
