/* Camada final de interface — bugs encontrados em QA */

html,body{max-width:100%;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box;min-width:0}
img,picture,figure,video,iframe{max-width:100%}
figure{margin:0}

.container{
  width:min(1120px,calc(100% - 32px))!important;
  max-width:1120px!important;
  margin-inline:auto!important;
  padding-inline:0!important;
}

/* Home: primeira dobra equilibrada e sem corte */
.hero{
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding:clamp(34px,4vw,56px) 0 clamp(40px,4vw,56px)!important;
}
.hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,.94fr) minmax(420px,1.06fr)!important;
  gap:clamp(28px,4vw,50px)!important;
  align-items:center!important;
}
.hero-copy{width:100%;max-width:590px!important}
.hero-copy h1{
  max-width:12.5ch!important;
  margin:10px 0 14px!important;
  font-size:clamp(2.55rem,3.55vw,3.45rem)!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
  text-wrap:balance;
}
.hero-copy>p{
  max-width:58ch!important;
  margin:0!important;
  font-size:1rem!important;
  line-height:1.55!important;
}
.hero-copy .actions{margin-top:20px!important}
.hero-points{margin-top:22px!important}

.hero-media{
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:590px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:10px!important;
  overflow:hidden!important;
  border-radius:24px!important;
}
.hero-media picture{
  display:block!important;
  width:100%!important;
  aspect-ratio:1693/929!important;
  overflow:hidden!important;
  border-radius:17px!important;
}
.hero-media picture>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  margin:0 auto!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  border-radius:17px!important;
}
.hero-media figcaption{
  position:absolute!important;
  top:16px!important;
  left:16px!important;
  width:min(300px,calc(100% - 32px))!important;
  max-width:calc(100% - 32px)!important;
}

/* Notebook com pouca altura: não deixar título empurrar o restante da dobra */
@media (min-width:1180px) and (max-height:820px){
  .hero{padding:30px 0 38px!important}
  .hero-grid{gap:32px!important}
  .hero-copy h1{font-size:clamp(2.35rem,3.2vw,3rem)!important;max-width:13.5ch!important}
  .hero-copy>p{font-size:.96rem!important;line-height:1.45!important}
  .hero-copy .actions{margin-top:16px!important}
  .hero-points{margin-top:16px!important}
  .hero-points div{padding:10px 12px!important}
  .hero-media{max-width:540px!important}
}

@media(max-width:1179px){
  .hero-grid{grid-template-columns:1fr!important;gap:28px!important}
  .hero-copy{max-width:780px!important;margin-inline:auto!important}
  .hero-copy h1{max-width:16ch!important}
  .hero-media{max-width:760px!important}
}

@media(max-width:900px){
  .hero{padding:36px 0 44px!important}
  .hero-copy h1{font-size:clamp(2.2rem,7.6vw,3.15rem)!important;max-width:none!important}
  .hero-media{max-width:620px!important;padding:8px!important}
  .hero-media picture{aspect-ratio:1/1!important}
  .hero-media picture>img{object-fit:contain!important;object-position:center!important}
  .hero-media figcaption{
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin-top:8px!important;
    padding:12px 14px!important;
  }
}

@media(max-width:520px){
  .container{width:calc(100% - 24px)!important}
  .hero{padding:28px 0 36px!important}
  .hero-copy h1{font-size:clamp(1.95rem,9.2vw,2.35rem)!important;line-height:1.08!important;letter-spacing:-.03em!important}
  .hero-copy>p{font-size:.96rem!important}
  .hero-points{grid-template-columns:1fr!important;gap:8px!important}
  .hero-media{max-width:100%!important}
}

/* Avaliações: permanecer dentro da seção e sem cards estreitos */
.reviews-section{position:relative!important;overflow:hidden!important}
.review-carousel{
  display:flex!important;
  width:100%!important;
  gap:16px!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  padding:6px 0 16px!important;
  scrollbar-width:none;
}
.review-carousel::-webkit-scrollbar{display:none}
.review-card{
  box-sizing:border-box!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  scroll-snap-align:start!important;
}
@media(min-width:1200px){.review-card{flex:0 0 calc((100% - 32px)/3)!important}}
@media(min-width:701px) and (max-width:1199px){.review-card{flex:0 0 calc((100% - 16px)/2)!important}}
@media(max-width:700px){
  .review-carousel{gap:12px!important}
  .review-card{flex:0 0 100%!important;width:100%!important;min-height:0!important}
  .reviews-section .carousel-controls{display:none!important}
}

/* Detalhes dos serviços: produto menor e centralizado */
.internal.service-detail-hero{overflow:visible!important}
.internal .service-hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(260px,360px)!important;
  gap:clamp(24px,4vw,44px)!important;
  align-items:center!important;
}
.service-hero-media{
  display:grid!important;
  place-items:center!important;
  width:min(100%,350px)!important;
  max-width:350px!important;
  justify-self:center!important;
  margin-inline:auto!important;
  padding:12px!important;
  overflow:hidden!important;
}
.service-hero-media picture{display:grid!important;place-items:center!important;width:100%!important}
.service-hero-media img{
  display:block!important;
  width:min(100%,305px)!important;
  max-width:305px!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  margin-inline:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:900px){
  .internal .service-hero-grid{grid-template-columns:1fr!important}
  .service-hero-media{max-width:310px!important}
  .service-hero-media img{max-width:272px!important}
}
@media(max-width:480px){
  .service-hero-media{max-width:275px!important;padding:8px!important}
  .service-hero-media img{max-width:240px!important}
}

/* Página Serviços: imagens completas, centralizadas e cards equilibrados */
.service-grid{align-items:stretch!important}
.service-card{height:100%!important;overflow:hidden!important}
.service-card-media{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  aspect-ratio:16/10!important;
  padding:14px!important;
  overflow:hidden!important;
}
.service-card-media img{
  display:block!important;
  width:auto!important;
  max-width:82%!important;
  height:100%!important;
  max-height:100%!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:980px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){
  .service-grid{grid-template-columns:1fr!important}
  .service-card-media{aspect-ratio:4/3!important}
  .service-card-media img{max-width:76%!important}
}

/* Fale conosco e Agendamento: quebrar cedo antes do conteúdo apertar */
.contact-grid{
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.22fr)!important;
  gap:clamp(22px,4vw,42px)!important;
  align-items:start!important;
}
.contact-list,.contact-item,.contact-grid .form{min-width:0;max-width:100%}
.contact-item strong{display:block;overflow-wrap:anywhere}
.contact-grid .form{width:100%!important;max-width:760px!important}

.schedule-layout{
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)!important;
  gap:clamp(20px,3vw,30px)!important;
  align-items:start!important;
}
.schedule-form,.schedule-sidebar,.schedule-box{min-width:0;max-width:100%}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.form input,.form select,.form textarea{width:100%!important;min-width:0!important;max-width:100%!important}
.row-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
.row-line strong{text-align:right;overflow-wrap:anywhere}

@media(max-width:1020px){
  .contact-grid,.schedule-layout{grid-template-columns:1fr!important}
  .contact-list,.contact-grid .form,.schedule-form,.schedule-sidebar{width:100%!important;max-width:780px!important;margin-inline:auto!important}
  .schedule-sidebar{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .form-grid,.schedule-sidebar{grid-template-columns:1fr!important}
  .schedule-form{padding:22px 18px!important}
}
@media(max-width:520px){
  .row-line{grid-template-columns:1fr!important;gap:2px!important}
  .row-line strong{text-align:left!important}
}

/* Conteúdo interno nunca deve ser recortado por altura fixa */
.internal,.internal .container,.section,.section .container{
  min-height:0!important;
  max-height:none!important;
  overflow:visible;
}
.internal h1,.internal p,.section h2,.section p{
  overflow:visible!important;
  text-overflow:clip!important;
}
.internal{padding-top:clamp(30px,4vw,50px)!important;padding-bottom:clamp(16px,2vw,26px)!important}
.internal + .section{padding-top:clamp(24px,3vw,42px)!important}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
