/* Preserve the homepage's Vercel base typography inside the explore shell. */
body.home:has(#home) { font-size: 13px; line-height: 1.9; }
body.home:has(#home) #app-main { max-width: 100%; overflow-x: clip; }
body.home:has(#home) #colophon { line-height: 1.9; border-top: 0; }

/* Elementor adds widget boxes between the original positioning ancestors. */
body.home:has(#home) .elementor .speego-hero-bg-media > .elementor-widget-html,
body.home:has(#home) .elementor .speego-hero-bg-media > .elementor-widget-html > .elementor-widget-container {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none;
}
/* Elementor's HTML widget has no intrinsic height around this absolutely
   positioned video. Stretch its two wrappers to the video frame so the
   consultation background remains visible on every homepage translation. */
body.home:has(#home) .elementor #consultation-form .speego-consult-video-frame > :is(.elementor-widget-html, .elementor-widget-image),
body.home:has(#home) .elementor #consultation-form .speego-consult-video-frame > :is(.elementor-widget-html, .elementor-widget-image) > .elementor-widget-container {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
body.home:has(#home) .elementor #consultation-form .speego-consult-video-frame .elementor-widget-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: right center !important;
}
body.home:has(#home) .elementor .speego-hero-stat-copy {
  display: block !important;
  width: auto !important;
  min-width: 0;
  flex: 1 1 auto;
}
body.home:has(#home) .elementor .speego-hero-stat-copy > * {
  width: auto !important;
  margin: 0 !important;
}
body.home:has(#home) .elementor .speego-hero-stat-copy p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
/* Heading hooks live on the actual heading, not its duplicated widget box. */
body.home:has(#home) .elementor .elementor-widget-text-editor:is(.speego-hero-heading,.speego-services-title,.speego-workflow-heading,.speego-partners-title,.speego-testimonial-title,.speego-why-title,.speego-news-title,.speego-workflow-title) {
  display: contents !important;
}
body.home:has(#home) .elementor .elementor-widget-text-editor:is(.speego-hero-heading,.speego-services-title,.speego-workflow-heading,.speego-partners-title,.speego-testimonial-title,.speego-why-title,.speego-news-title,.speego-workflow-title)::after,
body.home:has(#home) .elementor .elementor-widget-text-editor:is(.speego-hero-heading,.speego-services-title,.speego-workflow-heading,.speego-partners-title,.speego-testimonial-title,.speego-why-title,.speego-news-title,.speego-workflow-title)::before {
  content: none !important;
}
body.home:has(#home) .elementor .speego-hero-subheading > .elementor-widget-text-editor,
body.home:has(#home) .elementor .speego-workflow-icon-wrap > .elementor-widget-text-editor {
  display: contents !important;
}
body.home:has(#home) .elementor .speego-hero-subheading p { display: inline; margin: 0; }
body.home:has(#home) .elementor .speego-hero-subheading { width: max-content !important; max-width: 100% !important; }
body.home:has(#home) .elementor .speego-workflow-badge { top: -2px; right: -2px; }
body.home:has(#home) .elementor .speego-service-body > .elementor-widget-heading,
body.home:has(#home) .elementor .speego-service-body > .elementor-widget-text-editor { display: contents !important; }
body.home:has(#home) .elementor .speego-service-body .speego-service-title { margin: 0 0 10px !important; }
body.home:has(#home) .elementor .speego-service-body .speego-service-text { margin: 0 0 20px !important; }
/* Reference service CTA is a full-width flex row (whole card width clickable). */
body.home:has(#home) .elementor #services-speego .speego-service-link { display: flex !important; }
/* Trust bar: the icon and copy sit in text-editor widget boxes. The icon box
   shrank to 61px, so the copy overlapped the 84px circle; unwrap both so the
   item's 16px gap applies, and keep the copy content-sized like the ref. */
body.home:has(#home) .elementor #trust-speego .speego-trust-bar__item > .elementor-widget,
body.home:has(#home) .elementor #trust-speego .speego-trust-bar__copy > .elementor-widget { display: contents !important; }
/* Elementor's text-editor box still shrink-wraps the 84px icon to the width
   of its text node (about 61px), even when the box is visually unwrapped.
   Reserve the circle's full width so each title begins after the icon. */
body.home:has(#home) .elementor #trust-speego .speego-trust-bar__item > .elementor-widget-text-editor:has(.speego-trust-bar__icon) {
  flex: 0 0 84px !important;
  width: 84px !important;
  min-width: 84px !important;
  max-width: 84px !important;
}
body.home:has(#home) .elementor #trust-speego .speego-trust-bar__copy { width: auto !important; flex: 0 1 auto !important; }
/* Icons are restored beside the copy. Keep the circle at the reference size
   and stop the Elementor copy box from taking the whole row. */
body.home:has(#home) .elementor .speego-trust-bar__item {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 16px !important;
}
body.home:has(#home) .elementor .speego-trust-bar__item > .speego-trust-bar__icon {
  flex: 0 0 84px !important;
  width: 84px !important;
  height: 84px !important;
  min-width: 84px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
body.home:has(#home) .elementor .speego-trust-bar__item > .speego-trust-bar__icon svg {
  width: 56px !important;
  height: 56px !important;
}
body.home:has(#home) .elementor .speego-trust-bar__item > .speego-trust-bar__copy {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* Workflow connector: Elementor's 100% width beat the left/right insets, so
   the line ran past the 4th step to the page edge. */
body.home:has(#home) .elementor #process-speego .speego-workflow-track { width: auto !important; }
/* Partner cards: the article is an e-con (flex column, 20px gap, 10px
   padding) and each text widget adds a box; restore the ref block card. */
body.home:has(#home) .elementor #partners-speego .speego-partners-copy-grid > article { display: block !important; padding: 0 0 0 22px !important; }
body.home:has(#home) .elementor #partners-speego .speego-partners-copy-grid > article > .elementor-widget { display: contents !important; }
/* Partner marquee uses the reference's homepage logo size (280x78 boxes). */
body.home:has(#home) .elementor .speego-trust-logo-item { height: 92px !important; min-height: 0 !important; }
body.home:has(#home) .elementor .speego-trust-marquee-track { height: 92px !important; align-items: center !important; }
body.home:has(#home) .elementor .speego-trust-logo-img { width: auto !important; height: 78px !important; max-height: 84px !important; max-width: 280px !important; object-fit: contain; flex: 0 0 auto; }
/* News thumbs: the image widget sits between the fixed-height thumb and img. */
body.home:has(#home) .elementor #news-speego .speego-service-thumb > .elementor-widget-image { width: 100%; height: 100%; }
body.home:has(#home) .elementor #news-speego .speego-service-thumb img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
/* The card CTA label is a span, so the generated per-card span rule (accent
   uppercase category style) must not leak into it. */
body.home:has(#home) .elementor #news-speego .speego-service-link span { color: inherit !important; font-size: inherit !important; font-weight: inherit !important; text-transform: none !important; }
body.home:has(#home) .elementor .speego-testi-stars > .elementor-widget-text-editor { display: contents !important; }
body.home:has(#home) .elementor .speego-testi-stars p { margin: 0 !important; line-height: 1 !important; }
body.home:has(#home) .elementor .speego-testimonial-card > .elementor-widget-text-editor:has(blockquote.speego-testi-quote) { display: contents !important; }
body.home:has(#home) .elementor .speego-testimonial-card .speego-testi-stars { line-height: 1 !important; min-height: 0 !important; height: auto !important; }
/* Testimonial author: the reference keeps 16px above the divider, centres the
   initials in the avatar and stacks name/role 3px apart; the text-editor
   widgets added paragraph margins and an off-centre box around the initials. */
body.home:has(#home) .elementor .speego-testimonial-card > .speego-testi-author { padding-top: 16px !important; }
body.home:has(#home) .elementor .speego-testi-avatar > .elementor-widget { display: contents !important; }
body.home:has(#home) .elementor .speego-testi-author :is(.speego-testi-avatar, .speego-testi-name, .speego-testi-role) p { margin: 0 !important; }
/* News cards: 6px between category and title as on the reference. */
body.home:has(#home) .elementor #news-speego .speego-service-body .speego-service-title { margin: 6px 0 10px !important; }
/* News header: Elementor's tablet column direction right-aligned the title
   and button; the reference row wraps the button below, left-aligned. The
   button's widget box must not shrink, or "View All" wraps on phones. */
body.home:has(#home) .elementor #news-speego .speego-news-header { flex-direction: row !important; }
body.home:has(#home) .elementor #news-speego .speego-news-header > .elementor-widget:has(.speego-news-view-all) { flex: 0 0 auto !important; }
/* Why cells: the title class is on both the widget box and the h3, so the
   6px bottom margin applied twice on phones. */
body.home:has(#home) .elementor #why-speego .speego-why-cell > .elementor-widget.speego-why-cell-title { margin: 0 !important; }
/* Consultation form: the form's HTML widget was shrink-wrapped inside the
   centred column, narrowing the 580px form on tablets. */
body.home:has(#home) .elementor #consultation-form .speego-form-container > .elementor-widget:has(#speego-consultation-form) { width: 100% !important; }
@media (min-width: 1024px) {
  body.home:has(#home) .elementor #consultation-form .speego-consult-stage {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  body.home:has(#home) .elementor #consultation-form .speego-form-container {
    width: 100% !important;
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  body.home:has(#home) .elementor #consultation-form .speego-consult-stage {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  body.home:has(#home) .elementor #consultation-form .speego-form-container {
    width: 100% !important;
    max-width: 580px !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
}
@media (max-width: 767px) {
  body.home:has(#home) .elementor #consultation-form .speego-consult-stage {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  body.home:has(#home) .elementor #consultation-form .speego-form-container {
    width: 100% !important;
    max-width: 540px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    align-self: center !important;
    text-align: center !important;
  }
}
/* Reuse the existing consent state; do not suppress the initial prompt. */
body.home:has(#home) .speego-cookie-consent:not([hidden]) { display: block !important; }
/* The reference home has no breadcrumb; the shell's empty slot added 24px
   of flow above the hero and shifted every section down. */
body.home:has(#home) #breadcrumbSection { display: none !important; }
/* Elementor's .e-con::before overlay rule makes the eyebrow dash absolute;
   the reference keeps it inline, 14px (8px on phones) before the text. */
body.home:has(#home) .elementor #home .speego-hero-subheading::before { position: static !important; flex: 0 0 auto; }
/* The scroll indicator is fixed, but its widget box was a third flex item in
   the hero row, so space-between pushed the console 40px left at desktop. */
body.home:has(#home) .elementor #home .speego-hero-container > .elementor-widget:has(> .elementor-widget-container > .speego-hero-scroll-indicator, > .speego-hero-scroll-indicator) { display: contents !important; }
/* Reference centres the 1440px hero row with auto margins; the generated
   8px side margins shifted it 8px right below 1456px. */
body.home:has(#home) .elementor #home .speego-hero-container { margin-left: auto !important; margin-right: auto !important; }
/* Stat copy is an e-con with Elementor's default 10px padding; the reference
   block is content-sized, which keeps the three labels on one line. */
body.home:has(#home) .elementor #home .speego-hero-stat-copy { padding: 0 !important; flex: 0 1 auto; }
body.home:has(#home) .elementor #home .speego-hero-stat-copy > .speego-hero-stat-num { margin-bottom: 2px !important; }
body.home:has(#home) .elementor #home .speego-hero-stat-item { width: auto !important; }
/* Imported documents keep icon, number and label as three sibling containers. */
body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) {
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) !important;
  column-gap: 16px !important;
  row-gap: 2px !important;
  padding: 0 !important;
}
body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) > .speego-hero-stat-icon {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  padding: 0 !important;
}
body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) > :is(.speego-hero-stat-num, .speego-hero-stat-lbl) {
  grid-column: 2;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) > .speego-hero-stat-num { grid-row: 1; }
body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) > .speego-hero-stat-lbl { grid-row: 2; }
body.home:has(#home) .elementor #home :is(.speego-hero-stat-num, .speego-hero-stat-lbl) > .elementor-widget {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
body.home:has(#home) .elementor #home :is(.speego-hero-stat-num, .speego-hero-stat-lbl) p {
  margin: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
body.home:has(#home) .elementor #home .speego-hero-stat-num { white-space: nowrap !important; }
body.home:has(#home) .elementor #home .speego-hero-stat-lbl { overflow-wrap: normal !important; word-break: normal !important; }
/* The imported partner subtitle retained a desktop-only nowrap setting. */
body.home:has(#home) .elementor #partners-speego .speego-section-subtitle {
  white-space: normal !important;
  overflow-wrap: normal !important;
}
/* Elementor's `.elementor a { box-shadow:none }` removes the CTA shadows. */
body.home:has(#home) .elementor #home .speego-hero-btn-primary { box-shadow: 0 10px 24px rgba(255, 106, 0, 0.28); }
body.home:has(#home) .elementor #home .speego-hero-btn-primary:hover { box-shadow: 0 14px 30px rgba(255, 106, 0, 0.38); }
body.home:has(#home) .elementor #home .speego-hero-btn-secondary { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04); }
body.home:has(#home) .elementor #home .speego-hero-btn-secondary:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08); }
/* Top-bar policy toggle is bold on the reference homepage only. */
body.home:has(#home) #masthead .speego-policy-toggle { font-weight: 700; }

/* Reference tablet hero: CTAs stay in one left-aligned row, stats keep their
   content width, and the left column keeps its 720px flex basis. */
@media (min-width: 769px) and (max-width: 1024px) {
  body.home:has(#home) .elementor #home .speego-hero-left-content { flex: 1 1 720px !important; }
  body.home:has(#home) .elementor #home .speego-hero-buttons-group { flex-direction: row !important; }
  body.home:has(#home) .elementor #home .speego-hero-stat-item { flex: 0 1 auto !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  body.home:has(#home) .elementor #home .speego-hero-left-content { padding-bottom: 0 !important; }
  /* Elementor's tablet 10px e-con padding inset the testimonial cards. */
  body.home:has(#home) .elementor #testimonials-speego .speego-testimonial-grid { padding: 0 !important; }
}
/* Two-column workflow: the generated tablet rules keep Elementor's 10px
   bottom padding on each step, adding 10px per row (phones use 30px). */
@media (min-width: 641px) and (max-width: 1024px) {
  body.home:has(#home) .elementor #process-speego .speego-workflow-step { padding-bottom: 0 !important; }
}
/* The reference home keeps the header quote button beside the language
   switcher until 767px; inner pages hide it from 991px (shared style.css). */
@media (min-width: 768px) and (max-width: 991px) {
  body.home:has(#home) #masthead .speego-header-cta-wrap > .speego-header-quote-btn { display: flex !important; }
}

@media (max-width: 767px) {
  body.home:has(#home) .elementor .speego-hero-stats-row { gap: 16px !important; }
  body.home:has(#home) .elementor .speego-hero-stat-item { gap: 10px !important; min-width: 0; flex: 1 1 0; }
  body.home:has(#home) .elementor .speego-hero-stat-icon { width: 24px; min-width: 24px; }
  /* Reference FAB: inherited 1px tracking and UA button padding wrap the
     label onto two lines inside the 64px circle. */
  body.home:has(#home) .speego-track-fab { padding: 1px 6px; }
  body.home:has(#home) .speego-track-fab__label { letter-spacing: 1px; }
  body.home:has(#home) .elementor #home .speego-hero-stat-item:not(:has(.speego-hero-stat-copy)) { grid-template-columns: 24px minmax(0, 1fr) !important; column-gap: 10px !important; }
  body.home:has(#home) .elementor .speego-testimonial-dots { display: flex !important; }
  body.home:has(#home) .elementor .speego-testimonial-dot.is-active { width: 22px; border-radius: 999px; background: #0f5baa; }
  body.home:has(#home) .elementor .speego-trust-logo-item,
  body.home:has(#home) .elementor .speego-trust-marquee-track { height: 58px !important; }
  body.home:has(#home) .elementor .speego-trust-logo-img { height: 48px !important; max-height: 52px !important; max-width: 180px !important; }
  body.home:has(#home) .elementor #news-speego .speego-service-body > .elementor-widget-text-editor > span { font-size: 17px !important; }
}
@media (max-width: 640px) {
  body.home:has(#home) .elementor #services-speego .speego-service-body .speego-service-text { margin-bottom: 10px !important; }
  body.home:has(#home) .elementor #news-speego .speego-service-body > .elementor-widget-text-editor > span { line-height: 1.3; overflow-wrap: anywhere; }
  body.home:has(#home) .elementor #news-speego .speego-service-body .speego-service-text { margin-bottom: 10px !important; }
}

/* Consultation: image fills the whole left half (full height + width);
   tighter heading line spacing. */
@media (min-width: 1024px) {
  body.home:has(#home) .elementor #consultation-form .speego-consult-stage {
    grid-template-columns: 1fr 1fr !important;
  }
  body.home:has(#home) .elementor #consultation-form .speego-consult-video-frame {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 600px !important;
    align-self: stretch !important;
  }
  body.home:has(#home) .elementor #consultation-form .speego-consult-video-frame .elementor-widget-image img {
    object-position: center center !important;
  }
}
body.home:has(#home) .elementor #consultation-form .speego-form-heading h3 {
  line-height: 1.15 !important;
}
@media (min-width: 1024px) {
  body.home:has(#home) .elementor #consultation-form.speego-consult-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
