/*
 * Fora do Feed — FDF Pack Oral Rio v1.5
 * Camada de compatibilidade entre o HTML/CSS original da Oral Rio e o Elementor.
 * Objetivo: preservar o visual do site e permitir edição sem vazamentos de layout.
 */

.elementor-widget[class*="elementor-widget-fdf-oral-"] {
  margin-bottom: 0;
  min-width: 0;
}
.elementor-widget[class*="elementor-widget-fdf-oral-"] > .elementor-widget-container {
  margin: 0;
  padding: 0;
  min-width: 0;
}
.fdf-oral-bridge-page,
.fdf-oral-bridge-page #page,
.fdf-oral-bridge-page .elementor,
.elementor-editor-active .elementor {
  overflow-x: clip;
}
.elementor-widget[class*="elementor-widget-fdf-oral-"] section {
  width: 100%;
  max-width: 100%;
}

/* No editor, o canvas é menor que a janela real. Evita falsos estouros horizontais. */
.elementor-editor-active .elementor-widget[class*="elementor-widget-fdf-oral-"] .container {
  max-width: calc(100% - 2rem);
}

/* =========================================================
   HERO — proteção responsiva + enquadramento
   ========================================================= */
.elementor-widget-fdf-oral-hero .hero {
  overflow: hidden !important;
  --fdf-hero-image-x: 50%;
  --fdf-hero-image-y: 50%;
}
.elementor-widget-fdf-oral-hero .hero-media img {
  object-position: var(--fdf-hero-image-x) var(--fdf-hero-image-y);
}
.elementor-widget-fdf-oral-hero .experience-badge {
  max-width: calc(100% - 1.5rem);
  box-sizing: border-box;
}

/* Desktop: o selo nasce no canto inferior direito, como no projeto original. */
@media (min-width: 861px) {
  .elementor-widget-fdf-oral-hero .experience-badge {
    top: auto !important;
    left: auto !important;
    right: var(--fdf-badge-d-x, 2rem) !important;
    bottom: var(--fdf-badge-d-y, 2rem) !important;
  }
  .elementor-widget-fdf-oral-hero.fdf-badge-d-tr .experience-badge { top: var(--fdf-badge-d-y,2rem)!important; right: var(--fdf-badge-d-x,2rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-d-tl .experience-badge { top: var(--fdf-badge-d-y,2rem)!important; left: var(--fdf-badge-d-x,2rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-d-br .experience-badge { bottom: var(--fdf-badge-d-y,2rem)!important; right: var(--fdf-badge-d-x,2rem)!important; top:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-d-bl .experience-badge { bottom: var(--fdf-badge-d-y,2rem)!important; left: var(--fdf-badge-d-x,2rem)!important; top:auto!important; right:auto!important; }
}

/* Tablet: desktop controls não vazam para a composição responsiva, salvo se o usuário liberar o modo manual. */
@media (min-width: 681px) and (max-width: 860px) {
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero {
    min-height: 780px !important;
  }
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero-media {
    height: 68% !important;
  }
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero-content {
    left: 1rem !important;
    right: 1rem !important;
    top: auto !important;
    bottom: 1.25rem !important;
    width: auto !important;
    max-width: none !important;
    padding: 1.5rem !important;
    transform: none !important;
  }
  .elementor-widget-fdf-oral-hero .experience-badge {
    top: var(--fdf-badge-t-y, 1rem) !important;
    right: var(--fdf-badge-t-x, 1rem) !important;
    bottom: auto !important;
    left: auto !important;
  }
  .elementor-widget-fdf-oral-hero.fdf-badge-t-tr .experience-badge { top:var(--fdf-badge-t-y,1rem)!important; right:var(--fdf-badge-t-x,1rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-t-tl .experience-badge { top:var(--fdf-badge-t-y,1rem)!important; left:var(--fdf-badge-t-x,1rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-t-br .experience-badge { bottom:var(--fdf-badge-t-y,1rem)!important; right:var(--fdf-badge-t-x,1rem)!important; top:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-t-bl .experience-badge { bottom:var(--fdf-badge-t-y,1rem)!important; left:var(--fdf-badge-t-x,1rem)!important; top:auto!important; right:auto!important; }
}

/* Mobile: posição independente. O padrão coloca o +40 sobre a imagem, à esquerda,
   reproduzindo o comportamento mostrado no site oficial. */
@media (max-width: 680px) {
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero {
    min-height: 790px !important;
  }
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero-media {
    height: 62% !important;
  }
  .elementor-widget-fdf-oral-hero:not(.fdf-hero-manual-yes) .hero-content {
    left: 1rem !important;
    right: 1rem !important;
    top: auto !important;
    bottom: .75rem !important;
    width: auto !important;
    max-width: none !important;
    padding: 1.5rem 1.25rem !important;
    transform: none !important;
  }
  .elementor-widget-fdf-oral-hero .experience-badge {
    top: var(--fdf-badge-m-y, 30%) !important;
    left: var(--fdf-badge-m-x, 1rem) !important;
    right: auto !important;
    bottom: auto !important;
  }
  .elementor-widget-fdf-oral-hero.fdf-badge-m-tr .experience-badge { top:var(--fdf-badge-m-y,30%)!important; right:var(--fdf-badge-m-x,1rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-m-tl .experience-badge { top:var(--fdf-badge-m-y,30%)!important; left:var(--fdf-badge-m-x,1rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-m-br .experience-badge { bottom:var(--fdf-badge-m-y,1rem)!important; right:var(--fdf-badge-m-x,1rem)!important; top:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-hero.fdf-badge-m-bl .experience-badge { bottom:var(--fdf-badge-m-y,1rem)!important; left:var(--fdf-badge-m-x,1rem)!important; top:auto!important; right:auto!important; }
}

/* =========================================================
   SOBRE — moldura real para a foto, sem vazamentos
   ========================================================= */
.elementor-widget-fdf-oral-about .about-image-wrap {
  position: relative;
  min-height: 0 !important;
  padding-bottom: 1.75rem;
  overflow: visible;
}
/* O tema antigo usava o pseudo-elemento no wrapper. O Bridge usa o frame abaixo. */
.elementor-widget-fdf-oral-about .about-image-wrap::before,
.elementor-widget-fdf-oral-about .about-image-wrap::after {
  display: none !important;
}
.elementor-widget-fdf-oral-about .fdf-about-image-frame {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1.14 / 1;
  overflow: hidden;
  border-radius: 1.6rem;
  background: #fbfaf7;
  box-shadow: var(--shadow);
  isolation: isolate;
  --fdf-about-img-x: 50%;
  --fdf-about-img-y: 38%;
}
.elementor-widget-fdf-oral-about .fdf-about-image-frame > img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  display: block;
  object-fit: cover;
  object-position: var(--fdf-about-img-x) var(--fdf-about-img-y);
  border-radius: 0 !important;
}
.elementor-widget-fdf-oral-about .fdf-about-image-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, transparent var(--fdf-about-fade-start,56%), color-mix(in srgb, var(--fdf-about-fade-color,#fbfaf7) 8%, transparent) 68%, var(--fdf-about-fade-color,#fbfaf7) 100%),
    linear-gradient(90deg, color-mix(in srgb, var(--fdf-about-fade-color,#fbfaf7) 58%, transparent) 0, transparent 8%, transparent 92%, color-mix(in srgb, var(--fdf-about-fade-color,#fbfaf7) 58%, transparent) 100%);
  pointer-events: none;
}
.elementor-widget-fdf-oral-about.fdf-about-overlay-no .fdf-about-image-frame::after {
  display: none;
}
.elementor-widget-fdf-oral-about.fdf-about-sidefade- .fdf-about-image-frame::after,
.elementor-widget-fdf-oral-about:not(.fdf-about-sidefade-yes) .fdf-about-image-frame::after {
  background:linear-gradient(180deg, transparent var(--fdf-about-fade-start,56%), color-mix(in srgb, var(--fdf-about-fade-color,#fbfaf7) 8%, transparent) 68%, var(--fdf-about-fade-color,#fbfaf7) 100%);
}
.elementor-widget-fdf-oral-about .image-note {
  z-index: 3;
  box-sizing: border-box;
}

@media (min-width: 861px) {
  .elementor-widget-fdf-oral-about .image-note {
    left: var(--fdf-about-note-d-x, 1.25rem) !important;
    right: auto !important;
    bottom: var(--fdf-about-note-d-y, 0px) !important;
    top: auto !important;
  }
  .elementor-widget-fdf-oral-about.fdf-about-note-d-tl .image-note { top:var(--fdf-about-note-d-y,1.25rem)!important; left:var(--fdf-about-note-d-x,1.25rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-d-tr .image-note { top:var(--fdf-about-note-d-y,1.25rem)!important; right:var(--fdf-about-note-d-x,1.25rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-d-bl .image-note { bottom:var(--fdf-about-note-d-y,0px)!important; left:var(--fdf-about-note-d-x,1.25rem)!important; top:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-d-br .image-note { bottom:var(--fdf-about-note-d-y,0px)!important; right:var(--fdf-about-note-d-x,1.25rem)!important; top:auto!important; left:auto!important; }
}
@media (min-width: 681px) and (max-width: 860px) {
  .elementor-widget-fdf-oral-about:not(.fdf-about-manual-yes) .fdf-about-image-frame {
    height: auto !important;
    aspect-ratio: 1.14 / 1 !important;
    border-radius: 1.6rem !important;
  }
  .elementor-widget-fdf-oral-about .image-note {
    left: var(--fdf-about-note-t-x, 1.25rem) !important;
    right: auto !important;
    bottom: var(--fdf-about-note-t-y, 0px) !important;
    top: auto !important;
  }
  .elementor-widget-fdf-oral-about.fdf-about-note-t-tl .image-note { top:var(--fdf-about-note-t-y,1rem)!important; left:var(--fdf-about-note-t-x,1.25rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-t-tr .image-note { top:var(--fdf-about-note-t-y,1rem)!important; right:var(--fdf-about-note-t-x,1.25rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-t-bl .image-note { bottom:var(--fdf-about-note-t-y,0px)!important; left:var(--fdf-about-note-t-x,1.25rem)!important; top:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-t-br .image-note { bottom:var(--fdf-about-note-t-y,0px)!important; right:var(--fdf-about-note-t-x,1.25rem)!important; top:auto!important; left:auto!important; }
}
@media (max-width: 680px) {
  .elementor-widget-fdf-oral-about:not(.fdf-about-manual-yes) .fdf-about-image-frame {
    height: auto !important;
    aspect-ratio: 1 / .94 !important;
    border-radius: 1.15rem !important;
  }
  .elementor-widget-fdf-oral-about .image-note {
    right: var(--fdf-about-note-m-x, .75rem) !important;
    left: auto !important;
    bottom: var(--fdf-about-note-m-y, 0px) !important;
    top: auto !important;
    max-width: min(290px, calc(100% - 1.5rem));
  }
  .elementor-widget-fdf-oral-about.fdf-about-note-m-tl .image-note { top:var(--fdf-about-note-m-y,.75rem)!important; left:var(--fdf-about-note-m-x,.75rem)!important; bottom:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-m-tr .image-note { top:var(--fdf-about-note-m-y,.75rem)!important; right:var(--fdf-about-note-m-x,.75rem)!important; bottom:auto!important; left:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-m-bl .image-note { bottom:var(--fdf-about-note-m-y,0px)!important; left:var(--fdf-about-note-m-x,.75rem)!important; top:auto!important; right:auto!important; }
  .elementor-widget-fdf-oral-about.fdf-about-note-m-br .image-note { bottom:var(--fdf-about-note-m-y,0px)!important; right:var(--fdf-about-note-m-x,.75rem)!important; top:auto!important; left:auto!important; }
}

/* =========================================================
   SERVIÇOS — neutraliza reset de imagem do Elementor
   ========================================================= */
.elementor .elementor-widget-fdf-oral-services .service-card > img {
  width: 100%;
  height: 250px;
  min-height: 0;
  max-height: none;
  display: block;
  object-fit: cover;
  --fdf-default-img-x: 50%;
  --fdf-default-img-y: 50%;
  object-position: var(--fdf-service-img-x, var(--fdf-default-img-x)) var(--fdf-service-img-y, var(--fdf-default-img-y));
}
.elementor .elementor-widget-fdf-oral-services .service-card-primary > img { --fdf-default-img-y: 46%; }
.elementor .elementor-widget-fdf-oral-services .service-card-emergency > img { --fdf-default-img-y: 52%; }
.elementor .elementor-widget-fdf-oral-services .service-card-whitening > img { --fdf-default-img-y: 50%; }
.elementor .elementor-widget-fdf-oral-services .service-card-body { min-height: 285px; }
.elementor-widget-fdf-oral-services.fdf-services-compact-yes .service-card-body { min-height: 0; }
.elementor-widget-fdf-oral-services.fdf-services-compact-yes .service-card .service-number { margin-bottom: 0; }
.elementor-widget-fdf-oral-services.fdf-services-compact-yes .service-card .arrow-link { margin-top: 1rem; }

/* Fontes do projeto no preview do Elementor. */
.elementor-widget[class*="elementor-widget-fdf-oral-"] {
  --fdf-font-heading: "Bricolage Grotesque Variable", "Segoe UI", sans-serif;
  --fdf-font-body: "Lora Variable", Georgia, serif;
}

@media (max-width: 860px) {
  .elementor .elementor-widget-fdf-oral-services .service-card > img { height: 210px; }
  .elementor .elementor-widget-fdf-oral-services .service-card-body { min-height: 270px; }
  .elementor-widget-fdf-oral-services.fdf-services-compact-yes .service-card-body { min-height: 0; }
}

/* =========================================================
   v1.4 — nitidez, fade e biblioteca de ícones
   ========================================================= */
/* Selo +40: posição fica estável e a animação usa a propriedade translate,
   evitando conflito com transform:none e preservando os offsets responsivos. */
.elementor-widget-fdf-oral-hero .experience-badge{
  animation:none!important;
  transform:none!important;
  filter:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  will-change:auto;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  isolation:isolate;
}
@keyframes fdf-or-badge-float{
  0%,100%{translate:0 0}
  50%{translate:0 calc(var(--fdf-badge-float-distance,7px) * -1)}
}
.elementor-widget-fdf-oral-hero.fdf-badge-motion-yes .experience-badge{
  animation:fdf-or-badge-float var(--fdf-badge-float-duration,4s) ease-in-out infinite!important;
  will-change:translate;
}
@media (prefers-reduced-motion: reduce){
  .elementor-widget-fdf-oral-hero.fdf-badge-motion-yes .experience-badge{
    animation:none!important;
    translate:none!important;
    will-change:auto;
  }
}

/* Fade opcional apenas sobre a camada da foto do Hero. Não mexe no conteúdo,
   no selo nem no gradiente responsivo já existente no tema. */
.elementor-widget-fdf-oral-hero .hero-media{isolation:isolate;overflow:hidden}
.elementor-widget-fdf-oral-hero .hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:0;
}
.elementor-widget-fdf-oral-hero.fdf-hero-photo-fade-yes .hero-media::after{
  opacity:calc(var(--fdf-hero-fade-opacity,100)/100);
}
.elementor-widget-fdf-oral-hero.fdf-hero-fade-dir-bottom .hero-media::after{
  background:linear-gradient(to top,var(--fdf-hero-fade-color,#fff) 0,transparent var(--fdf-hero-fade-size,45%));
}
.elementor-widget-fdf-oral-hero.fdf-hero-fade-dir-top .hero-media::after{
  background:linear-gradient(to bottom,var(--fdf-hero-fade-color,#fff) 0,transparent var(--fdf-hero-fade-size,45%));
}
.elementor-widget-fdf-oral-hero.fdf-hero-fade-dir-left .hero-media::after{
  background:linear-gradient(to right,var(--fdf-hero-fade-color,#fff) 0,transparent var(--fdf-hero-fade-size,45%));
}
.elementor-widget-fdf-oral-hero.fdf-hero-fade-dir-right .hero-media::after{
  background:linear-gradient(to left,var(--fdf-hero-fade-color,#fff) 0,transparent var(--fdf-hero-fade-size,45%));
}

/* Ícones escolhidos pela biblioteca do Elementor mantêm a mesma caixa visual
   dos SVGs originais, sem exigir upload de SVG bruto pelo plugin. */
.elementor-widget[class*="elementor-widget-fdf-oral-"] .fdf-or-icon{
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:1em;
  height:1em;
  color:currentColor;
  line-height:1;
}
.elementor-widget[class*="elementor-widget-fdf-oral-"] .fdf-or-icon svg{
  width:1em;
  height:1em;
  fill:currentColor;
}
.elementor-widget[class*="elementor-widget-fdf-oral-"] .fdf-or-icon i{font-size:1em;line-height:1}
.elementor-widget-fdf-oral-hero .hero-actions .button{gap:.55rem}
.elementor-widget-fdf-oral-hero .hero-actions .text-link{display:inline-flex;align-items:center;gap:.45rem}
.elementor-widget-fdf-oral-trust .trust-grid p > .fdf-or-icon{
  color:var(--fdf-trust-icon-color,var(--color-accent));
  font-size:1.35rem;
}
.elementor-widget-fdf-oral-trust .trust-grid p > svg.fdf-or-icon{stroke:currentColor}

/* Ícone substituto do botão flutuante, inserido apenas quando escolhido no Hero. */
.whatsapp-float .fdf-or-floating-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.05em;
  height:1.05em;
  flex:0 0 auto;
  color:currentColor;
  font-size:1rem;
  line-height:1;
}
.whatsapp-float .fdf-or-floating-icon svg{width:1em;height:1em;fill:currentColor}
.whatsapp-float .fdf-or-floating-icon i{font-size:1em;line-height:1}
.fdf-or-floating-icon-template{display:none!important}

/* Dica visual apenas no editor. Não aparece no site público. */
.elementor-editor-active [data-fdf-edit]{position:relative}
.elementor-editor-active [data-fdf-edit]::before{
  content:"FDF · clique para editar";
  position:absolute;
  z-index:9999;
  top:8px;
  left:8px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(10,45,64,.88);
  color:#fff;
  font:600 10px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease;
}
.elementor-editor-active [data-fdf-edit]:hover::before{opacity:1}
.whatsapp-float:hover{background-color:var(--fdf-wa-hover-bg,#0e5844)!important}


/* =========================================================
   v1.5 — biblioteca de ícones em todo o Pack + compatibilidade
   ========================================================= */
.elementor-widget-fdf-oral-about .image-note > .fdf-or-icon,
.elementor-widget-fdf-oral-about .check-list .fdf-or-icon,
.elementor-widget-fdf-oral-services .arrow-link .fdf-or-icon,
.elementor-widget-fdf-oral-emergency .inline-actions .fdf-or-icon,
.elementor-widget-fdf-oral-emergency .emergency-list-icon .fdf-or-icon,
.elementor-widget-fdf-oral-comfort .comfort-icon .fdf-or-icon,
.elementor-widget-fdf-oral-care .care-grid article > .fdf-or-icon,
.elementor-widget-fdf-oral-location .address-card .fdf-or-icon,
.elementor-widget-fdf-oral-location .inline-actions .fdf-or-icon,
.elementor-widget-fdf-oral-final-cta .cta-proof .fdf-or-icon,
.elementor-widget-fdf-oral-final-cta .button .fdf-or-icon{
  color:currentColor;
}

.elementor-widget-fdf-oral-about .image-note > .fdf-or-icon{flex:0 0 auto;color:var(--color-accent);font-size:1.4rem}
.elementor-widget-fdf-oral-about .check-list .fdf-or-icon{
  flex:0 0 auto;padding:.2rem;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);font-size:1.35rem;
}
.elementor-widget-fdf-oral-services .arrow-link,
.elementor-widget-fdf-oral-emergency .inline-actions .button,
.elementor-widget-fdf-oral-location .inline-actions .button,
.elementor-widget-fdf-oral-final-cta .button{
  display:inline-flex;align-items:center;gap:.55rem;
}
.elementor-widget-fdf-oral-emergency .emergency-list-icon .fdf-or-icon{font-size:21px;color:inherit}
.elementor-widget-fdf-oral-comfort .comfort-icon .fdf-or-icon{font-size:1em;color:inherit}
.elementor-widget-fdf-oral-care .care-grid article > .fdf-or-icon{color:var(--color-accent);font-size:2rem}
.elementor-widget-fdf-oral-location .address-card .fdf-or-icon{flex:0 0 auto;margin-top:.15rem;color:var(--accent,var(--color-accent))}
.elementor-widget-fdf-oral-final-cta .cta-proof .fdf-or-icon{flex:0 0 auto;color:var(--color-accent);font-size:1.25rem}

/* Ajuste de enquadramento continua funcionando em tablet/mobile mesmo quando
   o modo de medidas seguras está ativo. Apenas altura/proporção são protegidas. */
.elementor-widget-fdf-oral-about .fdf-about-image-frame > img,
.elementor-widget-fdf-oral-hero .hero-media img{
  object-position:var(--fdf-about-img-x,50%) var(--fdf-about-img-y,38%);
}
.elementor-widget-fdf-oral-hero .hero-media img{
  object-position:var(--fdf-hero-image-x,50%) var(--fdf-hero-image-y,50%);
}


.elementor-widget-fdf-oral-faq .fdf-faq-marker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:1.25em;
  min-height:1.25em;
  line-height:1;
}
.elementor-widget-fdf-oral-faq .fdf-faq-marker .fdf-or-icon{
  font-size:1em;
}

/* =========================================================
   v1.6 — avaliações Google próprias, sem iframe ou serviço externo
   Mantém a seção reviews/reviews-shell do tema e estiliza somente
   o conteúdo cadastrado no widget 08.
   ========================================================= */
.elementor-widget-fdf-oral-reviews .reviews-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-top:2rem;
}
.elementor-widget-fdf-oral-reviews .review-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:1.25rem;
  border:1px solid rgba(31,79,68,.14);
  border-radius:1rem;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 28px rgba(31,79,68,.06);
}
.elementor-widget-fdf-oral-reviews .review-card-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.elementor-widget-fdf-oral-reviews .review-stars{
  flex:0 0 auto;
  color:#c58a32;
  letter-spacing:.08em;
  font-size:.9rem;
  white-space:nowrap;
}
.elementor-widget-fdf-oral-reviews .review-card-text{
  margin:1rem 0;
  font-size:.98rem;
}
.elementor-widget-fdf-oral-reviews .review-card-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin-top:auto;
  color:rgba(31,79,68,.72);
  font-size:.8rem;
}
.elementor-widget-fdf-oral-reviews .review-google-badge::before{
  content:'✓';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.15em;
  height:1.15em;
  margin-right:.3rem;
  border-radius:50%;
  background:#4285f4;
  color:#fff;
  font-size:.8em;
}
.elementor-widget-fdf-oral-reviews .reviews-link-wrap{margin-top:1.5rem}
.elementor-widget-fdf-oral-reviews .reviews-link{
  display:inline-flex;
  align-items:center;
  color:var(--color-primary,#1f4f44);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.2em;
}
@media (max-width:1024px){
  .elementor-widget-fdf-oral-reviews .reviews-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  .elementor-widget-fdf-oral-reviews .reviews-list{grid-template-columns:1fr;gap:.8rem;margin-top:1.5rem}
  .elementor-widget-fdf-oral-reviews .review-card{padding:1rem}
}


/* =========================================================
   v1.5.1 — WhatsApp: compatibilidade mobile com o tema Oral Rio
   O CSS original do tema oculta todos os spans do botão no mobile
   para esconder apenas o rótulo "WhatsApp". Como o FDF usa um span
   para hospedar o ícone escolhido no Elementor, ele também era
   ocultado. Esta regra restaura somente o holder seguro do ícone.
   ========================================================= */
@media (max-width: 767px){
  .whatsapp-float > .fdf-or-floating-icon{
    display:inline-flex !important;
    position:static !important;
    width:1.05em !important;
    height:1.05em !important;
    min-width:0 !important;
    min-height:0 !important;
    overflow:visible !important;
    clip:auto !important;
    clip-path:none !important;
    white-space:normal !important;
    margin:0 !important;
    padding:0 !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .whatsapp-float > .fdf-or-floating-icon > svg,
  .whatsapp-float > .fdf-or-floating-icon > i{
    display:block !important;
    position:static !important;
    width:1em !important;
    height:1em !important;
    overflow:visible !important;
    clip:auto !important;
    opacity:1 !important;
    visibility:visible !important;
  }
}
