/* Mr. TIQ — Elementor bridge (v2.2)
   Hooks by CSS ID, because Elementor 4 applies _element_id to containers
   but not _css_classes. Everything else is set inside Elementor. */

.elementor-page #main-content > .elementor { width: 100%; }

/* ---- Hero portrait: pulsing ring ---- */
#tiq-portrait { position: relative; }
#tiq-portrait::before {
  content: ''; position: absolute; top: 50%; left: 50%;
  width: 460px; height: 460px; border-radius: 50%;
  border: 2px solid rgba(240,64,64,.3);
  transform: translate(-50%,-50%);
  animation: tiq-pulse-ring 3s ease infinite;
  pointer-events: none; z-index: 0;
}
#tiq-portrait > * { position: relative; z-index: 1; }
@keyframes tiq-pulse-ring {
  0%,100% { transform: translate(-50%,-50%) scale(1);    opacity:.3; }
  50%     { transform: translate(-50%,-50%) scale(1.05); opacity:.1; }
}

/* ---- About: quote badge floating over the image ---- */
#tiq-about-media { position: relative; overflow: hidden; }
#tiq-about-media .tiq-quote-badge {
  position: absolute; bottom: 24px; left: 24px; right: 24px; z-index: 2;
  width: auto; max-width: none;
  background: rgba(38,41,52,.9);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  padding: 20px 24px; border-radius: 6px;
  border-left: 3px solid #F04040;
}
#tiq-about-media .tiq-quote-badge p { margin: 0; color: #fff; }
#tiq-about-media .elementor-widget-image img { display: block; width: 100%; }

/* ---- Service cards ---- */
[id^="tiq-svc-"] { position: relative; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; }
[id^="tiq-svc-"]::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(135deg,#F04040 0%,#BA2A2A 100%);
  transform: scaleX(0); transition: transform .3s ease;
}
[id^="tiq-svc-"]:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,.15) !important; }
[id^="tiq-svc-"]:hover::after { transform: scaleX(1); }

/* ---- Stat cards ---- */
[id^="tiq-stat-"] { transition: background .3s ease, border-color .3s ease; }
[id^="tiq-stat-"]:hover { background: rgba(255,255,255,.08) !important; border-color: rgba(240,64,64,.3) !important; }

/* ---- Insight cards ---- */
[id^="tiq-ins-"] { overflow: hidden; }

/* ---- CTA ambient circle ---- */
#cta { position: relative; overflow: hidden; }
#cta::before {
  content: ''; position: absolute; top: -200px; left: calc(100% - 260px);
  width: 400px; height: 400px; border-radius: 50%;
  background: rgba(240,64,64,.08); pointer-events: none;
}
#cta > .e-con-inner { position: relative; z-index: 1; }

/* ---- Partners badges ---- */
#tiq-partners-grid .partner-text-badge { margin: 4px 3px; }

/* ---- Contact form (CF7 in an Elementor shortcode widget) ---- */
#tiq-form-wrap .wpcf7 p { margin: 0 !important; }
#tiq-form-wrap .wpcf7 br { display: none; }
#tiq-form-wrap .wpcf7 label { display: block; margin-top: 10px !important; margin-bottom: 5px !important; line-height: 1; }
#tiq-form-wrap .wpcf7-form-control-wrap { margin: 0 !important; display: block; }
#tiq-form-wrap .wpcf7 input, #tiq-form-wrap .wpcf7 textarea, #tiq-form-wrap .wpcf7 select { margin: 0 !important; }
#tiq-form-wrap .tiq-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
  #tiq-portrait::before { width: 340px; height: 340px; }
}
@media (max-width: 767px) {
  #tiq-portrait::before { width: 260px; height: 260px; }
  #tiq-about-media .tiq-quote-badge { position: static; margin: 0; border-radius: 0; }
  #tiq-form-wrap .tiq-form-row { grid-template-columns: 1fr; }
}

/* ---- Portrait cutout sits on the brand red circle ---- */
#tiq-portrait .elementor-widget-image img { background: #F04040; }

/* ---- Partner logo carousels (native Elementor Image Carousel) ---- */
.tiq-logo-row .swiper-slide-inner,
.tiq-logo-row .elementor-carousel-image { display: flex; align-items: center; justify-content: center; min-height: 84px; }
.tiq-logo-row img,
.tiq-logo-row .swiper-slide-image { max-height: 58px; max-width: 88%; width: auto !important; height: auto; margin: 0 auto; object-fit: contain; }
.tiq-logo-row .swiper-slide { display: flex; align-items: center; justify-content: center; }
.tiq-logo-row .elementor-image-carousel-wrapper { padding: 4px 0; }
@media (max-width: 767px) {
  .tiq-logo-row img, .tiq-logo-row .swiper-slide-image { max-height: 46px; }
  .tiq-logo-row .swiper-slide-inner, .tiq-logo-row .elementor-carousel-image { min-height: 64px; }
}

/* ---- Nothing may create horizontal scroll ----
   The off-canvas menu sits off-screen, and fadeInLeft / fadeInRight
   translate elements past the viewport while they play. */
html, body { overflow-x: clip; }
#main-content { overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }
.mobile-menu { right: 0 !important; transform: translateX(100%); transition: transform .3s ease; will-change: transform; }
.mobile-menu.open { transform: translateX(0); }

body.elementor-editor-active .site-header { position: absolute; }
