
/* Atualizações pontuais V17: carrosséis autênticos, páginas educativas e mapa regional. */
.google-reviews {overflow:hidden; --review-width:368px;}
.google-section-header{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:25px}
.google-section-header h2{max-width:790px;margin:0;font:500 clamp(2.2rem,4vw,4rem)/1.1 var(--font-display);letter-spacing:-.034em}
.google-reviews-all{font-size:.85rem;font-weight:700;color:var(--forest);white-space:nowrap;border-bottom:1px solid var(--gold);padding-bottom:8px}
.google-review-section{overflow:hidden;background:#fbfaf7;border-block:1px solid var(--line)}
.google-review-viewport{overflow:hidden;touch-action:pan-y;outline-offset:-3px}
.google-review-viewport:focus-visible{outline:3px solid var(--gold)}
.google-review-track{display:flex;gap:15px;width:max-content;animation:reviewDrift 58s linear infinite;will-change:transform}
.google-review-viewport:hover .google-review-track,.google-review-viewport:focus-within .google-review-track{animation-play-state:paused}
@keyframes reviewDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.google-review-card{flex:0 0 var(--review-width);width:var(--review-width);min-height:254px;background:#fff;border:1px solid #e5e6df;padding:22px 23px;display:flex;flex-direction:column;box-sizing:border-box}
.google-review-person{display:flex;align-items:center;gap:11px;min-width:0}
.google-review-person strong{font-size:.92rem;line-height:1.3;overflow-wrap:anywhere}
.google-review-avatar{width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;border-radius:50%;background:#e4ede7;color:var(--forest);font-size:.78rem;font-weight:700;object-fit:cover}
.google-review-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:13px 0 9px}
.google-review-stars{letter-spacing:.025em;color:#dfa52f;font-size:.94rem}
.google-review-card p{flex:1;font-size:.87rem;line-height:1.62;color:#40514c;margin:0}
.google-review-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;font-size:.72rem;color:#667570}
.google-review-foot a{color:var(--forest);text-decoration:underline;text-underline-offset:3px;font-weight:700}
.google-review-foot a:hover{color:#9c7838}
.google-review-note{display:block;margin-top:12px;font-size:.71rem;color:#697a73}
.google-reviews--hero{margin-top:22px;max-width:665px;--review-width:278px}
.google-review-caption{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:.78rem;color:var(--forest);margin-bottom:10px}
.gold-star{color:#d19e37;font-size:.8rem;letter-spacing:.07em}
.google-review-caption-source{font-size:.7rem;margin-left:auto;color:#708079}
.google-reviews--hero .google-review-viewport{mask-image:linear-gradient(to right,#000 92%,transparent)}
.google-reviews--hero .google-review-track{gap:10px;animation-duration:49s}
.google-reviews--hero .google-review-card{min-height:190px;padding:15px 16px}
.google-reviews--hero .google-review-avatar{height:32px;width:32px;flex-basis:32px}
.google-reviews--hero .google-review-meta{margin:7px 0 5px}
.google-reviews--hero .google-review-person strong{font-size:.79rem}
.google-reviews--hero .google-review-card p{font-size:.76rem;line-height:1.52;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.google-reviews--hero .google-review-foot{margin-top:8px;font-size:.68rem}
.hero-grid{align-items:center}
.hero-content{min-width:0}
.hero .google-reviews--hero .google-review-note{display:none}
/* Interactive symptom tiles */
.concern-card:not(.concern-cta){position:relative;display:flex;flex-direction:column}
.concern-card:not(.concern-cta) h3{margin-bottom:13px}
.concern-card:not(.concern-cta) .concern-card-link{display:inline-flex;align-items:center;gap:8px;color:var(--gold-light);font-size:.79rem;font-weight:700;margin-top:auto;padding-top:18px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:color .2s ease}
.concern-card-link:after{content:"";position:absolute;inset:0}
.concern-card:has(.concern-card-link):hover .concern-card-link{text-decoration-color:currentColor}
.concern-card:has(.concern-card-link):focus-within{outline:2px solid var(--gold-light);outline-offset:-2px;background:rgba(255,255,255,.06)}
/* Compact regional map, no individual clinic highlighted */
.locations--regional{padding-block:70px}
.locations--regional .locations-layout--single{grid-template-columns:1fr .92fr;gap:65px;align-items:center}
.locations--regional .locations-heading{position:static}
.locations--regional .locations-heading h2{font-size:clamp(2.1rem,3.7vw,3.2rem);line-height:1.12;margin-bottom:17px}
.locations--regional .locations-heading > p:not(.eyebrow){max-width:570px;font-size:.95rem;line-height:1.65;margin-bottom:25px;color:#61716b}
.locations--regional .location-map-card{max-width:540px}
.locations--regional .location-map-embed{aspect-ratio:2.35/1;min-height:0}
.locations--regional .location-map-copy{padding:12px 15px;display:flex;flex-direction:column;gap:3px}
.locations--regional .location-map-copy span{font-weight:700;font-size:.78rem;color:var(--forest)}
.locations--regional .location-map-copy small{font-size:.72rem}
@media(max-width:900px){.locations--regional .locations-layout--single{grid-template-columns:1fr;gap:24px}.locations--regional .location-map-card{width:100%;max-width:650px}}
@media(max-width:820px){
 .google-review-section{padding-block:54px}
 .google-section-header{align-items:start;flex-direction:column;gap:13px;margin-bottom:20px}
 .google-section-header h2{font-size:clamp(2rem,6vw,2.8rem)}
 .google-review-track{animation:none!important}
 .google-review-viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y;scroll-padding-left:14px}
 .google-review-viewport::-webkit-scrollbar{display:none}
 .google-review-track{gap:11px;padding-left:14px;padding-bottom:8px}
 .google-review-card{flex-basis:min(350px,calc(100vw - 48px));width:min(350px,calc(100vw - 48px));min-height:257px;scroll-snap-align:start}
 .google-reviews--hero{max-width:100%;--review-width:min(290px,calc(100vw - 68px))}
 .google-reviews--hero .google-review-card{min-height:189px;flex-basis:var(--review-width);width:var(--review-width)}
 .google-reviews--hero .google-review-viewport{mask-image:none}
 .google-review-viewport:focus-visible{outline-offset:-3px}
}
@media(max-width:560px){.locations--regional{padding-block:47px}.locations--regional .location-map-embed{min-height:0;height:170px;aspect-ratio:auto}.locations--regional .button{font-size:.84rem}.google-reviews--hero{margin-top:18px}.google-review-card{min-height:280px}.concern-card:not(.concern-cta){min-height:210px}}
@media(prefers-reduced-motion:reduce){.google-review-track{animation:none!important}}

/* V18: readable and accessible author links from the Google reviews API. */
.google-review-author-name{font-size:.92rem;line-height:1.3;overflow-wrap:anywhere;font-weight:700;color:var(--forest);text-decoration:none}
a.google-review-author-name:hover{text-decoration:underline;text-underline-offset:3px}
.google-reviews--hero .google-review-author-name{font-size:.79rem}

.google-review-caption { font-size:.84rem;font-weight:700;letter-spacing:.015em; }
.google-review-avatar { height:36px;width:36px;flex-basis:36px; }
.google-reviews--hero .google-review-avatar { height:30px;width:30px;flex-basis:30px; }


/* V21 — avaliações com a fonte identificada sem modificar o carrossel existente. */
.review-source-links{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px 22px}
.google-review-origin{display:inline-flex;align-items:center;gap:6px;color:#566960;font-size:.72rem;font-weight:700}
.google-review-origin--doctoralia{color:#337063}
.google-review-verified{display:inline-flex;align-items:center;border-radius:99px;background:#edf6ed;color:#346845;font-size:.67rem;font-weight:600;padding:3px 7px}
.google-review-foot{flex-wrap:wrap;row-gap:8px}
@media(max-width:820px){.review-source-links{justify-content:flex-start;gap:12px 18px}}
@media(max-width:360px){.google-section-header h2{font-size:1.95rem}.google-reviews-all{font-size:.78rem}}


/* V22: celular — seis assuntos em 2 x 3, mais legíveis e sem rolagem excessiva. */
@media (max-width: 600px) {
  .concerns.section { padding-top: 39px; padding-bottom: 44px; }
  .concerns .split-heading { gap: 15px; margin-bottom: 24px; }
  .concerns .split-heading h2 { font-size: clamp(2rem, 8.1vw, 2.7rem); line-height: 1.13; }
  .concerns .split-heading > p { font-size: .83rem; line-height: 1.55; margin: 0; }
  .concern-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .concern-grid > .concern-card:not(.concern-cta) {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 230px;
    padding: 18px 13px 17px;
  }
  .concern-grid > .concern-card:not(.concern-cta) > span { font-size: .78rem; line-height: 1.2; }
  .concern-grid > .concern-card:not(.concern-cta) h3 {
    font-size: clamp(1.08rem, 4vw, 1.27rem);
    line-height: 1.2;
    margin: 16px 0 9px;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .concern-grid > .concern-card:not(.concern-cta) p {
    font-size: .77rem;
    line-height: 1.43;
    margin: 0;
    color: rgba(255,255,255,.73);
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .concern-grid > .concern-card:not(.concern-cta) .concern-card-link {
    padding-top: 12px;
    margin-top: auto;
    font-size: .74rem;
    line-height: 1.3;
    white-space: nowrap;
    text-decoration-color: currentColor;
  }
  .concern-grid > .concern-cta {
    grid-column: 1 / -1;
    min-height: 104px;
    padding: 21px 19px;
    align-items: center;
    gap: 14px;
  }
  .concern-grid > .concern-cta .mini-label { font-size: .62rem; }
  .concern-grid > .concern-cta h3 { font-size: clamp(1.38rem, 5.6vw, 1.7rem); line-height: 1.1; margin-top: 7px; }
  .concern-grid > .concern-cta > a { width: 46px; height: 46px; flex: 0 0 46px; }
}
@media (max-width: 350px) {
  .concern-grid > .concern-card:not(.concern-cta) { padding: 15px 10px; min-height: 227px; }
  .concern-grid > .concern-card:not(.concern-cta) h3 { font-size: 1.04rem; }
  .concern-grid > .concern-card:not(.concern-cta) p { font-size: .73rem; }
  .concern-grid > .concern-card:not(.concern-cta) .concern-card-link { font-size: .7rem; }
}

/* V22: movimento dos dois carrosséis é controlado por JS em todas as telas.
   Foco e hover não podem pausar o autoplay indefinidamente após abrir um link. */
.google-review-track,
.google-reviews--hero .google-review-track,
.google-review-viewport:hover .google-review-track,
.google-review-viewport:focus-within .google-review-track { animation: none !important; }
.google-review-viewport {
  scroll-behavior: auto;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.google-review-viewport::-webkit-scrollbar { display: none; }
@media(max-width:820px) {
  .google-review-viewport { scroll-snap-type: none !important; }
  .google-review-card { scroll-snap-align: none; }
}
