/* ===== TRIP ME MORE - MOTION ADS ===== */

/* === KEYFRAMES === */
@keyframes fadeInUp    { from{opacity:0;transform:translateY(36px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeInLeft  { from{opacity:0;transform:translateX(-44px)} to{opacity:1;transform:translateX(0)} }
@keyframes fadeInRight { from{opacity:0;transform:translateX(44px)}  to{opacity:1;transform:translateX(0)} }
@keyframes zoomIn      { from{opacity:0;transform:scale(.86)} to{opacity:1;transform:scale(1)} }
@keyframes floatBob    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }
@keyframes pulseShadow { 0%,100%{box-shadow:0 0 0 0 rgba(106,27,154,.35)} 50%{box-shadow:0 0 0 12px rgba(106,27,154,0)} }
@keyframes slideInRight{ from{transform:translateX(120%);opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes ticker      { 0%{transform:translateX(100%)} 100%{transform:translateX(-100%)} }
@keyframes shimmerBg   { 0%{background-position:-400% center} 100%{background-position:400% center} }

/* === FIX: ensure site's own reveal animation works with both class names === */
.reveal.visible,
.reveal.r-visible {
  opacity: 1 !important;
  transform: translateY(0px) !important;
  transition: opacity 0.6s ease, transform 0.6s ease;
}

/* === HERO === */
.hero h1,.hero h2{ animation:fadeInUp .8s ease both }
.hero p          { animation:fadeInUp .9s .15s ease both }
.hero a,.hero button{ animation:zoomIn .7s .3s ease both }
.hero img        { animation:fadeInRight 1s .2s ease both }

/* === NAV === */
nav, .navbar { transition: background .35s, box-shadow .35s }
.tmm-nav-scrolled { background:rgba(33,17,75,.97) !important; box-shadow:0 3px 18px rgba(0,0,0,.25) !important }

/* === CARDS hover === */
.card,.package-card,.tour-card {
  transition: transform .28s ease, box-shadow .28s ease;
}
.card:hover,.package-card:hover,.tour-card:hover {
  transform: translateY(-6px) scale(1.025);
  box-shadow: 0 12px 36px rgba(82,41,153,.22);
}

/* === BUTTONS hover === */
button:not(#tmm-banner-close), .btn, [class*="btn-"] {
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
button:not(#tmm-banner-close):hover, .btn:hover, [class*="btn-"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(82,41,153,.3);
}

/* === IMAGES hover === */
img { transition: transform .3s ease; }
img:hover { transform: scale(1.03); }

/* === FLOATING PROMO BANNER === */
#tmm-float-banner {
  position: fixed;
  bottom: 24px;
  right: 20px;
  z-index: 9999;
  width: 230px;
  background: linear-gradient(135deg, #6a1b9a 0%, #e91e63 100%);
  color: #fff;
  border-radius: 16px;
  padding: 16px 16px 14px;
  box-shadow: 0 8px 32px rgba(106,27,154,.45);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  animation: slideInRight .65s cubic-bezier(.22,1,.36,1) both,
             floatBob 3.5s 1.5s ease-in-out infinite;
}
#tmm-banner-close {
  position: absolute;
  top: 8px; right: 10px;
  background: rgba(255,255,255,.2);
  border: none; color: #fff;
  width: 22px; height: 22px;
  border-radius: 50%; cursor: pointer;
  font-size: 14px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
}
#tmm-banner-close:hover { background: rgba(255,255,255,.4) }
.tmm-banner-icon { font-size: 1.6rem; line-height: 1 }
.tmm-banner-text { font-size: .85rem; line-height: 1.5 }
.tmm-banner-text strong { font-size: 1rem; display: block; margin-bottom: 2px }
.tmm-banner-btn {
  display: inline-block;
  margin-top: 6px;
  padding: 6px 16px;
  background: #fff;
  color: #6a1b9a;
  font-weight: 700;
  font-size: .82rem;
  border-radius: 30px;
  text-decoration: none;
  transition: background .2s, color .2s;
  animation: pulseShadow 2s 2s ease-in-out infinite;
}
.tmm-banner-btn:hover { background: #ffe082; color: #3a006f }

/* === TICKER BAR === */
#tmm-ticker-bar {
  width: 100%;
  overflow: hidden;
  background: linear-gradient(90deg, #1a0533, #6a1b9a, #e91e63, #6a1b9a, #1a0533);
  background-size: 300% 100%;
  animation: shimmerBg 8s linear infinite;
  padding: 10px 0;
  font-size: .88rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: .5px;
  white-space: nowrap;
  position: relative;
  z-index: 100;
}
.tmm-ticker-track {
  display: inline-block;
  animation: ticker 28s linear infinite;
}

@media (max-width: 600px) {
  #tmm-float-banner { width: 190px; right: 10px; bottom: 16px }
  .tmm-banner-text  { font-size: .78rem }
}


/* ===== TMM REVIEWS CAROUSEL ===== */
.reviews-section .reviews-grid { display: none !important; }
.tmm-carousel { position:relative; display:flex; align-items:center; gap:14px; margin-top:8px; }
.tmm-car-track-wrap { flex:1; overflow:hidden; }
.tmm-car-track { display:flex; gap:20px; padding:10px 2px 20px; transition:transform .5s cubic-bezier(.25,.8,.25,1); }
.tmm-review-card {
  min-width:calc(25% - 15px); flex-shrink:0;
  background:#fff; border-radius:18px; padding:26px 24px 22px;
  box-shadow:0 4px 20px rgba(82,41,153,.10); border:1.5px solid rgba(106,27,154,.08);
  display:flex; flex-direction:column; gap:14px;
  transition:box-shadow .3s, transform .3s;
}
.tmm-review-card:hover { box-shadow:0 10px 36px rgba(82,41,153,.18); transform:translateY(-4px); }
.tmm-rv-header { display:flex; align-items:center; gap:13px; }
.tmm-rv-avatar { width:52px; height:52px; border-radius:50%; object-fit:cover; border:2.5px solid #e8d5f5; flex-shrink:0; }
.tmm-rv-meta { flex:1; min-width:0; }
.tmm-rv-name { font-weight:700; color:#21114b; font-size:.94rem; }
.tmm-rv-country { font-size:.8rem; color:#888; margin-top:3px; display:flex; align-items:center; gap:5px; }
.tmm-rv-rating { font-size:.95rem; color:#f59e0b; letter-spacing:1px; white-space:nowrap; }
.tmm-rv-text { font-size:.88rem; color:#555; line-height:1.7; flex:1; font-style:italic; margin:0; }
.tmm-rv-footer { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:12px; border-top:1px solid #f0e8fa; }
.tmm-rv-service { font-size:.72rem; background:linear-gradient(90deg,#f0e4ff,#fde8f2); color:#6a1b9a; border-radius:20px; padding:4px 12px; font-weight:600; }
.tmm-rv-date { font-size:.72rem; color:#bbb; }
.tmm-car-btn {
  width:44px; height:44px; border-radius:50%; border:2px solid rgba(106,27,154,.18);
  background:#fff; color:#6a1b9a; font-size:1.6rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .25s; flex-shrink:0; box-shadow:0 2px 10px rgba(82,41,153,.08);
  line-height:1; padding:0;
}
.tmm-car-btn:hover { background:#6a1b9a; color:#fff; border-color:#6a1b9a; transform:scale(1.1); }
.tmm-car-dots { display:flex; justify-content:center; gap:8px; margin:6px 0 20px; }
.tmm-car-dot { width:8px; height:8px; border-radius:50%; background:#ddd; cursor:pointer; border:none; padding:0; transition:all .35s; }
.tmm-car-dot.tmm-dot-active { background:#6a1b9a; width:26px; border-radius:4px; }
.tmm-reviews-more { text-align:center; margin-top:8px; }
.tmm-see-more-btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 34px; border-radius:50px;
  background:transparent; border:2px solid #6a1b9a; color:#6a1b9a;
  font-weight:700; font-size:.92rem; text-decoration:none; transition:all .3s;
}
.tmm-see-more-btn:hover { background:#6a1b9a; color:#fff; box-shadow:0 8px 28px rgba(106,27,154,.28); transform:translateY(-2px); }
@media(max-width:1100px){ .tmm-review-card { min-width:calc(50% - 10px); } }
@media(max-width:600px){ .tmm-review-card { min-width:100%; } .tmm-carousel { gap:6px; } .tmm-car-btn { width:36px; height:36px; font-size:1.3rem; } }

/* ===== TMM REVIEW CARD - BLOG CARD STYLE OVERRIDE ===== */
.tmm-review-card {
  min-width:calc(25% - 15px); flex-shrink:0;
  background:#fff; border-radius:16px;
  box-shadow:0 2px 16px rgba(82,41,153,.08);
  border:1px solid #ede8f7; overflow:hidden;
  display:flex; flex-direction:column;
  transition:box-shadow .3s, transform .3s;
  /* reset old styles */
  padding:0 !important; gap:0 !important;
}
.tmm-review-card:hover { box-shadow:0 12px 40px rgba(82,41,153,.18); transform:translateY(-5px); }

/* Top image */
.tmm-rv-img-wrap { position:relative; width:100%; height:168px; overflow:hidden; flex-shrink:0; }
.tmm-rv-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.tmm-review-card:hover .tmm-rv-img { transform:scale(1.05); }
.tmm-rv-badge {
  position:absolute; top:14px; left:14px;
  background:rgba(33,17,75,.82); color:#fff;
  font-size:.63rem; font-weight:700; letter-spacing:1.2px;
  padding:5px 13px; border-radius:20px; text-transform:uppercase;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}

/* Card body */
.tmm-rv-body { padding:18px 18px 16px; display:flex; flex-direction:column; gap:8px; flex:1; }
.tmm-rv-quote {
  font-size:.88rem; font-weight:700; color:#21114b; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.tmm-rv-text {
  font-size:.8rem; color:#666; line-height:1.65;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  margin:0;
}
.tmm-rv-rating { font-size:.82rem; color:#f59e0b; letter-spacing:.5px; }

/* Footer */
.tmm-rv-footer {
  display:flex; align-items:center; justify-content:space-between;
  margin-top:auto; padding-top:13px; border-top:1px solid #f2edf9;
}
.tmm-rv-author { display:flex; align-items:center; gap:9px; min-width:0; }
.tmm-rv-avatar { width:34px; height:34px; border-radius:50%; object-fit:cover; border:2px solid #e8d5f5; flex-shrink:0; }
.tmm-rv-author-info { min-width:0; }
.tmm-rv-name { font-size:.8rem; font-weight:700; color:#21114b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tmm-rv-country { font-size:.7rem; color:#aaa; margin-top:1px; }
.tmm-rv-date-badge { font-size:.68rem; background:#f5f0ff; color:#6a1b9a; border-radius:20px; padding:4px 11px; font-weight:600; white-space:nowrap; flex-shrink:0; }

/* Responsive */
@media(max-width:1100px){ .tmm-review-card { min-width:calc(50% - 10px); } .tmm-rv-img-wrap { height:160px; } }
@media(max-width:600px){ .tmm-review-card { min-width:100%; } .tmm-rv-img-wrap { height:150px; } }

/* ===== TMM REVIEW CARD - TESTIMONIAL STYLE (v2) ===== */
.tmm-review-card {
  background:#fff; border-radius:18px;
  box-shadow:0 3px 18px rgba(82,41,153,.10);
  border:1.5px solid #ede8f7; overflow:visible;
  display:flex; flex-direction:column; gap:0;
  padding:24px 22px 20px !important;
  transition:box-shadow .3s, transform .3s;
  flex-shrink:0;
}
.tmm-review-card:hover { box-shadow:0 12px 40px rgba(82,41,153,.18); transform:translateY(-5px); }
/* Remove image wrap from previous style */
.tmm-rv-img-wrap { display:none !important; }

/* Top row: photo + stars + country */
.tmm-rv-top { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.tmm-rv-photo-wrap { position:relative; flex-shrink:0; }
.tmm-rv-photo {
  width:64px; height:64px; border-radius:50%; object-fit:cover;
  border:3px solid #e8d5f5; display:block;
}
.tmm-rv-flag-badge {
  position:absolute; bottom:-3px; right:-3px;
  font-size:1.1rem; line-height:1;
  background:#fff; border-radius:50%;
  width:24px; height:24px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 6px rgba(0,0,0,.15);
}
.tmm-rv-top-meta { display:flex; flex-direction:column; gap:4px; }
.tmm-rv-stars { color:#f59e0b; font-size:1rem; letter-spacing:1px; line-height:1; }
.tmm-rv-country-name { font-size:.78rem; color:#888; font-weight:500; }

/* Title / headline */
.tmm-rv-title {
  font-size:.92rem; font-weight:700; color:#21114b; line-height:1.45;
  margin-bottom:10px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* Feedback text */
.tmm-rv-feedback {
  font-size:.82rem; color:#666; line-height:1.68; margin:0 0 14px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
  font-style:italic; flex:1;
}

/* Footer */
.tmm-rv-footer {
  display:flex; align-items:center; justify-content:space-between;
  padding-top:14px; border-top:1px solid #f0eaf9; margin-top:auto;
}
.tmm-rv-name { font-size:.82rem; font-weight:700; color:#21114b; }
.tmm-rv-service { font-size:.7rem; color:#9c75cc; margin-top:2px; }
.tmm-rv-verified {
  font-size:.7rem; color:#059669; font-weight:700;
  background:#ecfdf5; border-radius:20px; padding:4px 10px;
  white-space:nowrap;
}/* ===== HERO BACKGROUND DARKENING ===== */
.hero-bg img {
  filter: brightness(0.72);
}


/* ===== CONTACT PHONE NUMBER FONT FIX ===== */
a[href*="tel"]:not([class]) {
  font-weight: 400 !important;
  font-size: 14px !important;
}
