/* Companion styles for perfin-runtime.js */

/* Logo carousel before Swiper measures it: same layout Swiper will apply (no jump on init). */
.elementor-image-carousel-wrapper.swiper:not(.swiper-initialized) .swiper-slide {
  width: calc((100% - (var(--e-image-carousel-slides-to-show, 3) - 1) * 60px) / var(--e-image-carousel-slides-to-show, 3));
  margin-right: 60px;
}
.elementor-image-carousel-wrapper.swiper .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* MetForm select: a transparent native <select> over the original react-select look. */
.mf-input-select.pf-select {
  position: relative;
}
.mf-input-select.pf-select .pf-native-select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  font-size: 16px; /* avoids iOS zoom on focus */
  z-index: 2;
}
.mf-input-select.pf-select.pf-focus .mf_select__control {
  border-color: #4285f478;
}
.mf-input-select.pf-select .mf_select__placeholder.pf-has-value {
  color: hsl(0, 0%, 20%);
}

/* ===================== All Service content layer (scripts/site) ===================== */

/* Brand palette: blues only, base #56BEFF (replaces the template's orange / teal).
   Same variables the template uses everywhere, so gradients and hovers follow. */
html .elementor-kit-23,
html body {
  --e-global-color-primary: #56beff; /* base */
  --e-global-color-secondary: #1784cf; /* buttons */
  --e-global-color-38d0f4a: #2e9fea; /* gradient mid tone */
  --e-global-color-4da9a17: #0b4f80; /* dark / hover */
  --e-global-color-933a220: #04213a; /* darkest */
  /* photo overlays: black (only used by the template's overlay gradients) */
  --e-global-color-18f1ff5: #000000e6;
  --e-global-color-bfa5357: #00000080;
  --e-global-color-0a2c89e: #000000e6;
  --e-global-color-c9da145: #00000080;
  --e-global-color-9c764db: #bde5ff; /* light accent */
  --e-global-color-ce6e7e7: #e3f4ff; /* light background */
}
.elementskit-menu-hamburger {
  border-color: var(--e-global-color-primary) !important;
}
::selection {
  background: #56beff;
  color: #fff;
}

/* Headings placed inside badge-style icon lists (e.g. the page H1) keep the badge look. */
.elementor-icon-list-text.pf-inline-heading {
  font: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  letter-spacing: inherit;
  text-transform: inherit;
  line-height: inherit;
  display: inline;
}

/* Logos: the All Service mark is taller than the template's wordmark. */
.elementor-element-66922a2 img,
.elementskit-nav-logo img {
  height: 58px !important;
  width: auto !important;
  max-width: none !important;
}
.elementor-element-5a00832 img {
  width: 210px !important;
  height: auto !important;
}
@media (max-width: 767px) {
  .elementor-element-66922a2 img,
  .elementskit-nav-logo img {
    height: 48px !important;
  }
}

/* Outline icons drawn by scripts/site/dom.mjs follow the icon colour of their list. */
svg[class*="pf-icon-"] [stroke] {
  stroke: var(--e-icon-list-icon-color, currentColor);
}
svg.pf-icon-whatsapp [fill="currentColor"] {
  fill: var(--e-icon-list-icon-color, currentColor);
}
.elementor-icon-list-icon svg[class*="pf-icon-"] {
  fill: none;
}
/* Footer contacts: one icon style for every line (white outline, same size) */
[data-id="pf-contato-lista"] svg[class*="pf-icon-"] {
  width: 20px !important;
  height: 20px !important;
}
[data-id="pf-contato-lista"] svg[class*="pf-icon-"] [stroke] {
  stroke: #fff;
}
[data-id="pf-contato-lista"] svg.pf-icon-whatsapp [fill="currentColor"] {
  fill: #fff;
}

/* Desktop menu: six items (template had five) on a single line */
@media (min-width: 1025px) {
  .elementor-element-75266bb {
    width: auto !important;
    max-width: none !important;
  }
  .elementor-element-75266bb .elementskit-navbar-nav {
    flex-wrap: nowrap !important;
    white-space: nowrap;
  }
}

/* Footer: five columns (brand, Navegação, Serviços, Especialidades, All Service/contatos) */
@media (min-width: 1025px) {
  .elementor-element-c746ddf {
    --gap: 40px 40px !important;
    --column-gap: 40px !important;
  }
  [data-id="0dd78af"] {
    flex: 0 0 260px !important;
    width: 260px !important;
  }
  [data-id="17cabef"] {
    flex: 0 0 110px !important;
    width: 110px !important;
  }
  [data-id="4536052"] {
    flex: 0 0 185px !important;
    width: 185px !important;
  }
  [data-id="55e4252"] {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0;
  }
  [data-id="pf-contato"] {
    flex: 0 0 270px !important;
    width: 270px !important;
  }
}

/* Sub-menu arrow */
.elementskit-navbar-nav .elementskit-submenu-indicator.pf-icon-arrowDown {
  width: 12px;
  height: 12px;
  margin-left: 6px;
  display: inline-block;
  vertical-align: middle;
  float: none;
  fill: none;
}
.elementskit-navbar-nav .elementskit-submenu-indicator.pf-icon-arrowDown path {
  stroke: currentColor;
}
.elementskit-navbar-nav .elementskit-dropdown .dropdown-item {
  white-space: normal;
  line-height: 1.35;
}

/* "Saiba mais" link inside accordions */
.pf-accordion-more {
  margin-top: 10px;
}
.pf-accordion-more a {
  color: var(--e-global-color-primary);
  font-weight: 600;
}

/* Footer copyright line */
.elementor-element-f3a2824 a {
  color: inherit;
  text-decoration: none;
}
.elementor-element-f3a2824 a:hover {
  text-decoration: underline;
}
/* Breathing room under the copyright line */
.elementor-element-83ce51e {
  padding-bottom: 32px !important;
}
.elementor-element-f3a2824 .pf-sep {
  margin: 0 6px;
  opacity: 0.6;
}
/* Same width as the footer columns (the line spanned the whole screen); balanced lines */
.elementor-element-f3a2824 .elementor-heading-title {
  display: block;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
  line-height: 1.9;
  text-wrap: balance;
}
/* lines break between the links, never inside one */
@media (min-width: 768px) {
  .elementor-element-f3a2824 a {
    white-space: nowrap;
  }
}

/* Google reviews call-out (replaces the template's sample testimonials) */
.pf-reviews {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 10px 40px rgba(6, 21, 21, 0.08);
}
.pf-reviews-stars {
  color: var(--e-global-color-primary);
  font-size: 22px;
  letter-spacing: 4px;
  margin-bottom: 12px;
}
.pf-reviews-title {
  font-size: 22px;
  font-weight: 600;
  color: var(--e-global-color-accent);
  margin: 0 0 8px;
}
.pf-reviews-text {
  color: var(--e-global-color-text);
  margin: 0 0 20px;
}
.pf-reviews-btn {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 100px;
  background: var(--e-global-color-secondary);
  color: #fff !important;
  font-weight: 500;
  text-decoration: none;
  transition: transform 0.3s, background 0.3s;
}
.pf-reviews-btn:hover {
  background: var(--e-global-color-4da9a17);
  transform: translateY(-3px);
}

/* Home "Avaliações": portrait cut-out sized to the section, not to the column width */
.elementor-element-3b0e3206 img {
  width: auto !important;
  max-width: 100% !important;
  max-height: 480px;
  display: block;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .elementor-element-3b0e3206 img {
    max-height: 360px;
  }
}
/* The cut-out stands on the bottom edge of the section (cancels its 100px bottom padding) */
@media (min-width: 1025px) {
  .elementor-element-5e2af29d {
    margin-bottom: -100px !important;
  }
}

/* Photos with English text in them sit behind a blurred overlay, so the text can't be read
   (the overlay is the template's ::before layer over the photo). */
.pf-blur::before {
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  opacity: 1 !important; /* a translucent layer would let the sharp photo through */
}

/* Section borrowed from another template page */
.pf-imported-section {
  display: contents;
}
