/* ════════════════════════════════════════════════════════════
   ELEMENTOR OVERRIDES — Technocrats Digimate
   Overrides Hello Elementor defaults to match brand system
════════════════════════════════════════════════════════════ */

/* ─── Global body / page ─── */
body.elementor-page {
  background-color: var(--td-ink) !important;
}
.elementor-section-wrap,
.e-con-inner {
  max-width: 1200px;
}

/* ─── Remove Hello Elementor's default header if using Elementor header ─── */
.site-header { display: none; }
.site-footer { display: none; }

/* ─── Elementor container max-width ─── */
.elementor-container {
  max-width: 1200px !important;
}
.elementor-section.td-container-wide .elementor-container {
  max-width: 100% !important;
}

/* ─── Section padding presets ─── */
.td-section-padding > .elementor-container {
  padding-top:    100px;
  padding-bottom: 100px;
}
.td-section-padding-sm > .elementor-container {
  padding-top:    60px;
  padding-bottom: 60px;
}
.td-section-padding-lg > .elementor-container {
  padding-top:    120px;
  padding-bottom: 120px;
}
/* Hero section: more top padding for nav */
.td-hero-section > .elementor-container,
.td-page-hero > .elementor-container {
  padding-top:    140px;
  padding-bottom: 100px;
}

/* ─── Elementor default button override ─── */
.elementor-button {
  font-family:    var(--td-ff-body) !important;
  border-radius:  var(--td-r8) !important;
  font-weight:    700 !important;
  letter-spacing: 0.2px !important;
  transition:     all 0.22s var(--td-ease) !important;
}
.elementor-button.td-btn-primary {
  background-color: var(--td-gold) !important;
  color:            var(--td-ink) !important;
  border:           none !important;
}
.elementor-button.td-btn-primary:hover {
  background-color: var(--td-gold-lt) !important;
  transform:        translateY(-2px) !important;
  box-shadow:       0 10px 32px rgba(196, 146, 42, 0.38) !important;
}
.elementor-button.td-btn-ghost {
  background-color: transparent !important;
  color:            var(--td-white) !important;
  border:           1px solid rgba(255, 255, 255, 0.18) !important;
}
.elementor-button.td-btn-ghost:hover {
  border-color: var(--td-gold) !important;
  color:        var(--td-gold-lt) !important;
}

/* ─── Elementor heading widget ─── */
.elementor-widget-heading .elementor-heading-title {
  line-height: 1.1;
}
.elementor-widget-heading .td-display-xl {
  font-family:    var(--td-ff-display) !important;
  font-size:      clamp(44px, 5.5vw, 72px) !important;
  letter-spacing: -1.5px !important;
  line-height:    1.06 !important;
}

/* ─── Elementor image widget ─── */
.elementor-widget-image img {
  border-radius: var(--td-r16);
}

/* ─── Elementor divider ─── */
.elementor-widget-divider.td-gold-divider .elementor-divider-separator {
  border-top: 2px solid var(--td-gold) !important;
}

/* ─── Elementor icon box widget ─── */
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-wrapper {
  background:    linear-gradient(160deg, #171717, #111);
  border:        1px solid var(--td-border-dk);
  border-radius: var(--td-r24);
  padding:       32px 28px;
  transition:    all 0.3s ease;
  position:      relative;
  overflow:      hidden;
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-wrapper::after {
  content:          '';
  position:         absolute;
  bottom:           0; left: 0; right: 0;
  height:           2px;
  background:       linear-gradient(90deg, transparent, var(--td-gold), transparent);
  transform:        scaleX(0);
  transition:       transform 0.3s;
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-wrapper:hover::after {
  transform: scaleX(1);
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-wrapper:hover {
  border-color: var(--td-gold-a22);
  transform:    translateY(-5px);
  box-shadow:   var(--td-sh-gold);
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon {
  background:    var(--td-gold-a06);
  border:        1px solid var(--td-gold-a12);
  border-radius: var(--td-r12);
  width:         52px; height: 52px;
  display:       flex; align-items: center; justify-content: center;
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon i {
  color: var(--td-gold) !important;
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-title {
  font-size:   16.5px !important;
  font-weight: 700 !important;
  color:       var(--td-white) !important;
}
.elementor-widget-icon-box.td-service-icon-box .elementor-icon-box-description {
  font-size:  13px !important;
  color:      var(--td-muted) !important;
  line-height: 1.65 !important;
}

/* ─── Elementor testimonial ─── */
.elementor-widget-testimonial.td-testi-style .elementor-testimonial-content {
  font-size:   13.5px !important;
  line-height: 1.75 !important;
  font-style:  italic !important;
  color:       #333 !important;
}
.elementor-widget-testimonial.td-testi-style .elementor-testimonial-name {
  font-weight: 700 !important;
  font-size:   13px !important;
  color:       var(--td-ink) !important;
}
.elementor-widget-testimonial.td-testi-style .elementor-testimonial-job {
  font-size: 11px !important;
  color:     var(--td-muted) !important;
}
.elementor-widget-testimonial.td-testi-style .elementor-testimonial-wrapper {
  background:    var(--td-white) !important;
  border-radius: var(--td-r24) !important;
  padding:       32px !important;
  box-shadow:    var(--td-sh-card) !important;
}

/* ─── Elementor counter ─── */
.elementor-widget-counter.td-metric-counter .elementor-counter-number-wrapper {
  font-family:    var(--td-ff-display) !important;
  font-size:      52px !important;
  font-weight:    700 !important;
  color:          var(--td-ink) !important;
  letter-spacing: -2px !important;
}
.elementor-widget-counter.td-metric-counter .elementor-counter-title {
  font-family:    var(--td-ff-mono) !important;
  font-size:      10.5px !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color:          rgba(8, 8, 8, 0.6) !important;
}

/* ─── Elementor accordion ─── */
.elementor-widget-accordion.td-faq .elementor-accordion-item {
  border-bottom: 1px solid var(--td-border-dk) !important;
  border-top:    none !important;
  border-left:   none !important;
  border-right:  none !important;
}
.elementor-widget-accordion.td-faq .elementor-tab-title {
  font-size:   14px !important;
  font-weight: 600 !important;
  color:       var(--td-white) !important;
  padding:     20px 0 !important;
  background:  transparent !important;
}
.elementor-widget-accordion.td-faq .elementor-tab-title.elementor-active {
  color: var(--td-gold-lt) !important;
}
.elementor-widget-accordion.td-faq .elementor-tab-content {
  font-size:   13.5px !important;
  color:       var(--td-platinum) !important;
  line-height: 1.7 !important;
  background:  transparent !important;
  padding:     0 0 20px !important;
}

/* ─── Elementor form ─── */
.elementor-form .elementor-field-label {
  font-size:      12px !important;
  font-weight:    600 !important;
  color:          #333 !important;
  letter-spacing: 0.3px !important;
}
.elementor-form .elementor-field-type-text input,
.elementor-form .elementor-field-type-email input,
.elementor-form .elementor-field-type-tel input,
.elementor-form .elementor-field-type-select select,
.elementor-form .elementor-field-type-textarea textarea {
  background:    #F9F8F5 !important;
  border:        1px solid rgba(0,0,0,.1) !important;
  border-radius: var(--td-r8) !important;
  padding:       12px 16px !important;
  font-size:     14px !important;
  font-family:   var(--td-ff-body) !important;
  color:         var(--td-ink) !important;
  transition:    border-color .2s, box-shadow .2s !important;
}
.elementor-form .elementor-field-type-text input:focus,
.elementor-form .elementor-field-type-email input:focus,
.elementor-form .elementor-field-type-tel input:focus,
.elementor-form .elementor-field-type-textarea textarea:focus {
  border-color: var(--td-gold) !important;
  box-shadow:   0 0 0 3px rgba(196, 146, 42, .12) !important;
  outline:      none !important;
}
.elementor-form .elementor-button[type="submit"] {
  background-color: var(--td-ink) !important;
  color:            var(--td-white) !important;
  font-size:        15px !important;
  font-weight:      700 !important;
  padding:          16px 28px !important;
  width:            100% !important;
  transition:       all .22s !important;
}
.elementor-form .elementor-button[type="submit"]:hover {
  background-color: var(--td-gold) !important;
  color:            var(--td-ink) !important;
}

/* ─── Sticky nav compensation ─── */
.admin-bar #nav { top: 32px; }

/* ─── WhatsApp Float (output by shortcode / global HTML widget) ─── */
.td-wa-float {
  position:      fixed;
  bottom:        28px; right: 28px;
  width:         56px; height: 56px;
  border-radius: 50%;
  background:    #25D366;
  display:       flex; align-items: center; justify-content: center;
  font-size:     24px;
  box-shadow:    0 4px 20px rgba(37, 211, 102, .45);
  cursor:        pointer;
  z-index:       9999;
  transition:    all .25s;
  text-decoration: none;
  animation:     tdWaPop .6s 1.5s ease both;
}
.td-wa-float:hover { transform: scale(1.12); box-shadow: 0 8px 32px rgba(37, 211, 102, .55); }
@keyframes tdWaPop {
  from { opacity: 0; transform: scale(.5); }
  to   { opacity: 1; transform: scale(1); }
}

/* ─── Sticky CTA Bar ─── */
.td-sticky-cta {
  position:          fixed; bottom: 0; left: 0; right: 0;
  background:        rgba(8, 8, 8, .96);
  backdrop-filter:   blur(20px);
  border-top:        1px solid var(--td-border-dk);
  padding:           14px 60px;
  display:           none;
  align-items:       center;
  justify-content:   space-between;
  gap:               20px;
  z-index:           8888;
  transition:        transform .3s;
}
.td-sticky-cta.is-visible { display: flex; }
.td-sticky-cta__text { font-size: 14px; font-weight: 500; color: var(--td-platinum); }
.td-sticky-cta__text em { font-style: normal; color: var(--td-gold-lt); }

/* ─── Responsive ─── */
@media (max-width: 768px) {
  .td-sticky-cta { padding: 12px 24px; }
  .td-sticky-cta__text { font-size: 12px; }
}
