/* =========================================================
   Dr. Arthur Cardoso Paroneto — Ortopedia / Trauma do Esporte
   Identidade: teal profundo + laranja da marca
   ========================================================= */

:root{
  /* --- cor --- */
  --ink:        #052E32;
  --ink-soft:   #0A3B41;
  --ink-line:   rgba(235,234,232,.14);
  --deep:       #205662;
  --sage:       #669293;
  --mist:       #A3B5B7;
  --fog:        #DCDADB;
  --sand:       #CDC1A9;
  --sand-soft:  #E3DCCD;
  --flame:      #EE7431;
  --flame-deep: #D25E1D;
  --cream:      #EBEAE8;
  --paper:      #F6F5F2;
  --white:      #FFFFFF;

  --text:       #12292C;
  --text-soft:  #4A6467;
  --line:       rgba(5,46,50,.12);

  /* --- tipografia --- */
  --display: 'Jost', 'Futura', 'Trebuchet MS', sans-serif;
  --body:    'Instrument Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --quote:   'Newsreader', Georgia, serif;

  --step--1: clamp(.78rem, .76rem + .12vw, .86rem);
  --step-0:  clamp(1rem, .97rem + .16vw, 1.08rem);
  --step-1:  clamp(1.1rem, 1.03rem + .34vw, 1.32rem);
  --step-2:  clamp(1.35rem, 1.2rem + .7vw, 1.85rem);
  --step-3:  clamp(1.75rem, 1.42rem + 1.6vw, 2.9rem);
  --step-4:  clamp(2.3rem, 1.6rem + 3.3vw, 4.6rem);
  --step-5:  clamp(2.8rem, 1.7rem + 5.2vw, 6.4rem);

  /* --- ritmo --- */
  --gutter:  clamp(1.25rem, 5vw, 3rem);
  --maxw:    1260px;
  --section: clamp(5rem, 9vw, 8.5rem);
  --block:   clamp(2.5rem, 5vw, 4.5rem);
  --radius:  4px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--body);
  font-size:var(--step-0);
  line-height:1.68;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; height:auto; }
figure{ margin:0; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
::selection{ background:var(--flame); color:#fff; }

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.022em;
  margin:0;
  text-wrap:balance;
}
p{ margin:0; text-wrap:pretty; }

.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--flame); color:#fff; padding:.85rem 1.25rem;
}
.skip:focus{ left:1rem; top:1rem; }

:where(a,button,summary,input):focus-visible{
  outline:2px solid var(--flame);
  outline-offset:3px;
  border-radius:2px;
}

/* =========================================================
   Elementos de marca
   ========================================================= */

.eyebrow{
  font-family:var(--display);
  font-size:var(--step--1);
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--flame);
  display:flex;
  align-items:center;
  gap:.85rem;
  margin:0 0 1.5rem;
}
.eyebrow::before{
  content:"";
  width:clamp(28px,4vw,48px);
  height:1px;
  background:var(--flame);
  flex:none;
}
.eyebrow--center{ justify-content:center; }

.lede{
  font-size:var(--step-1);
  line-height:1.62;
  color:var(--text-soft);
  max-width:62ch;
}

.rule{ height:1px; background:var(--line); border:0; margin:0; }

/* --- botões --- */
.btn{
  --btn-bg:var(--flame);
  --btn-fg:#fff;
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  padding:1.05rem 1.75rem;
  background:var(--btn-bg);
  color:var(--btn-fg);
  font-family:var(--display);
  font-size:var(--step--1);
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  border-radius:var(--radius);
  overflow:hidden;
  isolation:isolate;
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
  will-change:transform;
}
.btn::after{
  content:"";
  position:absolute; inset:0;
  background:var(--flame-deep);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s var(--ease-out);
  z-index:-1;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(210,94,29,.75); }
.btn:hover::after{ transform:scaleX(1); }
.btn .ico{ width:1.05em; height:1.05em; flex:none; transition:transform .45s var(--ease-out); }
.btn:hover .ico{ transform:translateX(3px); }

.btn--ghost{
  --btn-bg:transparent;
  --btn-fg:var(--cream);
  border:1px solid rgba(235,234,232,.32);
}
.btn--ghost::after{ background:rgba(235,234,232,.1); }
.btn--ghost:hover{ box-shadow:none; }

.btn--outline{
  --btn-bg:transparent;
  --btn-fg:var(--ink);
  border:1px solid rgba(5,46,50,.24);
}
.btn--outline::after{ background:var(--ink); }
.btn--outline:hover{ --btn-fg:var(--cream); box-shadow:none; }

.btn--sm{ padding:.8rem 1.3rem; font-size:.74rem; white-space:nowrap; }
.btn--block{ width:100%; }

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
  align-items:center;
}

/* =========================================================
   Navbar
   ========================================================= */

.nav{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  padding-block:clamp(1rem,1.8vw,1.5rem);
  transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s var(--ease);
}
.nav::before{
  content:"";
  position:absolute; inset:0;
  background:rgba(5,46,50,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ink-line);
  opacity:0;
  transition:opacity .5s var(--ease);
}
.nav.is-stuck{ padding-block:.72rem; }
.nav.is-stuck::before{ opacity:1; }

.nav__inner{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.nav__logo{ display:block; flex:none; position:relative; z-index:2; }
.nav__logo img{
  width:clamp(168px,17vw,214px);
  transition:width .5s var(--ease);
}
.nav.is-stuck .nav__logo img{ width:clamp(150px,15vw,186px); }

.nav__links{
  display:flex;
  align-items:center;
  gap:clamp(1.4rem,2.4vw,2.6rem);
  list-style:none;
  margin:0; padding:0;
}
.nav__links a{
  position:relative;
  font-family:var(--display);
  font-size:.82rem;
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--cream);
  padding-block:.4rem;
  white-space:nowrap;
  opacity:.85;
  transition:opacity .35s var(--ease);
}
.nav__links a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:1px;
  background:var(--flame);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease-out);
}
.nav__links a:hover{ opacity:1; }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }

.nav__links .btn{ display:none; }
.nav__cta{ display:flex; align-items:center; gap:1rem; position:relative; z-index:2; }

.nav__toggle{
  display:none;
  width:44px; height:44px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  margin-right:-8px;
}
.nav__toggle span{
  display:block;
  width:22px; height:1.5px;
  background:var(--cream);
  transition:transform .4s var(--ease-out), opacity .3s var(--ease);
}
.nav.is-open .nav__toggle span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav.is-open .nav__toggle span:nth-child(2){ opacity:0; }
.nav.is-open .nav__toggle span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

@media (max-width:1040px){
  .nav__toggle{ display:flex; }
  .nav__cta .btn{ display:none; }
  .nav__links{
    position:fixed;
    inset:0 0 auto;
    padding:calc(clamp(72px,12vw,96px) + 1.5rem) var(--gutter) 3rem;
    flex-direction:column;
    align-items:flex-start;
    gap:.35rem;
    background:var(--ink);
    border-bottom:1px solid var(--ink-line);
    transform:translateY(-102%);
    transition:transform .6s var(--ease-out);
    box-shadow:0 34px 60px -34px rgba(0,0,0,.75);
    max-height:100dvh;
    overflow-y:auto;
  }
  .nav.is-open .nav__links{ transform:translateY(0); }
  .nav__links li{ width:100%; }
  .nav__links a{
    font-size:1.15rem;
    letter-spacing:.06em;
    padding-block:.85rem;
    display:block;
    width:100%;
    border-bottom:1px solid var(--ink-line);
  }
  .nav__links a::after{ display:none; }
  .nav__links li:last-child{ width:100%; margin-top:1.6rem; }
  .nav__links .btn{ display:inline-flex; width:100%; }
}

/* =========================================================
   Hero
   ========================================================= */

.hero{
  position:relative;
  background:var(--ink);
  color:var(--cream);
  padding-top:clamp(7.5rem,13vw,10.5rem);
  padding-bottom:clamp(2.5rem,5vw,4rem);
  overflow:hidden;
  isolation:isolate;
}
.hero__inner{ position:relative; z-index:1; }
.hero__copy{ max-width:44rem; }

.hero h1{
  font-size:var(--step-4);
  font-weight:300;
  letter-spacing:-.03em;
  margin-bottom:1.6rem;
}
.hero h1 .accent{
  display:block;
  font-weight:500;
  color:var(--white);
}
.hero h1 .local{
  display:block;
  font-size:.5em;
  font-weight:300;
  letter-spacing:.006em;
  color:var(--mist);
  margin-top:.55rem;
}
.hero__lede{
  font-size:var(--step-1);
  line-height:1.66;
  color:rgba(235,234,232,.82);
  max-width:46ch;
  margin-bottom:2.2rem;
}
.hero .actions{ margin-bottom:2.4rem; }
.hero__meta{
  font-size:var(--step--1);
  letter-spacing:.05em;
  color:var(--mist);
}
.creds__flag{
  color:var(--sand) !important;
  border-color:var(--sand) !important;
  font-weight:500;
}

.creds{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  list-style:none;
  margin:0 0 2.2rem;
  padding:0;
}
.creds li{
  font-family:var(--display);
  font-size:.74rem;
  font-weight:400;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--mist);
  border:1px solid rgba(235,234,232,.22);
  border-radius:100px;
  padding:.5rem .95rem;
  white-space:nowrap;
}

/* --- imagem --- */
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 100%;
}

@media (min-width:900px){
  /* a arte já traz a área livre à esquerda: o texto ocupa esse espaço */
  .hero{
    display:flex;
    align-items:center;
    /* 45vw = proporção da arte: evita cortar o Dr. na lateral */
    min-height:min(94vh,45vw,940px);
    padding-bottom:clamp(3rem,5vw,4.5rem);
  }
  .hero__inner{ width:100%; }
  .hero__copy{ max-width:min(46%,33rem); }
  .hero__media img{ object-position:62% 12%; }
}
@media (max-width:899px){
  /* a arte vertical já reserva o topo para o texto: o padding guarda a
     faixa de baixo onde o Dr. aparece */
  .hero{ padding-bottom:110vw; }
}

/* =========================================================
   Faixa rodando
   ========================================================= */

.marquee{
  overflow:hidden;
  padding-block:clamp(.9rem,1.6vw,1.25rem);
  border-block:1px solid transparent;
}
.marquee--sand{ background:var(--sand); color:var(--ink); }
.marquee--ink{ background:var(--ink); color:var(--cream); border-color:var(--ink-line); }

.marquee__track{
  display:flex;
  width:max-content;
  animation:marquee 46s linear infinite;
}
.marquee--ink .marquee__track{ animation-duration:38s; }
.marquee:hover .marquee__track{ animation-play-state:paused; }

.marquee__group{
  display:flex;
  align-items:center;
  flex:none;
}
.marquee__group span{
  font-family:var(--display);
  font-size:clamp(.8rem,1.4vw,.95rem);
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding-inline:clamp(1rem,2vw,1.6rem);
  display:flex;
  align-items:center;
  gap:clamp(1rem,2vw,1.6rem);
  white-space:nowrap;
}
.marquee__group span::after{
  content:"";
  width:5px; height:5px;
  border-radius:50%;
  background:var(--flame);
  flex:none;
}
.marquee--ink .marquee__group span{ color:rgba(235,234,232,.72); }

@keyframes marquee{ to{ transform:translateX(-50%); } }

/* =========================================================
   Seções
   ========================================================= */

.section{ padding-block:var(--section); position:relative; }
.section--paper{ background:var(--paper); }
.section--cream{ background:var(--cream); }
.section--ink{ background:var(--ink); color:var(--cream); }
.section--ink h2,.section--ink h3{ color:var(--white); }

.section-head{ margin-bottom:var(--block); max-width:60rem; }
.section-head h2{ font-size:var(--step-3); font-weight:300; }
.section-head h2 strong{ font-weight:500; }
.section-head .lede{ margin-top:1.4rem; }
.section--ink .lede{ color:rgba(235,234,232,.72); }
.section-head--center{ margin-inline:auto; text-align:center; }
.section-head--center .lede{ margin-inline:auto; }

.section-head--split{
  display:grid;
  gap:1.6rem;
  max-width:none;
  align-items:end;
}
@media (min-width:900px){
  .section-head--split{ grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:clamp(2rem,5vw,5rem); }
  .section-head--split .lede{ padding-bottom:.35rem; }
}

.section-foot{
  margin-top:var(--block);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:1.25rem 2rem;
}
.section-foot p{
  font-size:var(--step--1);
  color:var(--text-soft);
  max-width:38ch;
  letter-spacing:.01em;
}
.section--ink .section-foot p{ color:var(--mist); }

/* =========================================================
   Grid de blocos (topo e base sempre alinhados)
   ========================================================= */

.grid{
  display:grid;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.section--ink .grid{ background:var(--ink-line); border-color:var(--ink-line); }
@media (min-width:640px){ .grid--2{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px){ .grid--3{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:640px) and (max-width:979px){ .grid--3{ grid-template-columns:repeat(2,1fr); } }

.cell{
  display:flex;
  flex-direction:column;
  gap:1rem;
  background:var(--paper);
  padding:clamp(1.75rem,3vw,2.5rem);
  min-height:100%;
  transition:background .5s var(--ease);
}
.section--cream .cell{ background:var(--cream); }
.section--ink .cell{ background:var(--ink); }
.cell:hover{ background:var(--white); }
.section--ink .cell:hover{ background:var(--ink-soft); }

.cell__num{
  font-family:var(--display);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.2em;
  color:var(--flame);
}
.cell h3{
  font-size:var(--step-2);
  font-weight:400;
  letter-spacing:-.018em;
}
.cell p{ color:var(--text-soft); font-size:.97rem; }
.section--ink .cell p{ color:rgba(235,234,232,.66); }
.cell__foot{ margin-top:auto; padding-top:.5rem; }

/* --- lista de sinais --- */
.signal{ gap:1.15rem; }
.signal__icon{
  width:34px; height:34px;
  flex:none;
  display:grid;
  place-items:center;
  border:1px solid var(--flame);
  border-radius:50%;
  color:var(--flame);
}
.signal__icon svg{ width:15px; height:15px; }
.signal p{
  font-family:var(--display);
  font-size:var(--step-1);
  font-weight:400;
  line-height:1.4;
  letter-spacing:-.012em;
  color:var(--text);
}
.section--ink .signal p{ color:var(--cream); }

/* =========================================================
   Etapas de tratamento
   ========================================================= */

.steps-layout{ display:grid; gap:var(--block); align-items:start; }
@media (min-width:1000px){
  .steps-layout{ grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(3rem,6vw,6rem); }
  .steps-aside{ position:sticky; top:clamp(6rem,10vw,8rem); }
}
.steps-aside h2{ font-size:var(--step-3); font-weight:300; }
.steps-aside .lede{ margin-top:1.4rem; }
.steps-aside .actions{ margin-top:2.2rem; }

.steps{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.section--ink .steps{ border-color:var(--ink-line); }
.step{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem 1.5rem;
  padding-block:clamp(1.6rem,2.6vw,2.1rem);
  border-bottom:1px solid var(--line);
  align-items:start;
}
.section--ink .step{ border-color:var(--ink-line); }
.step__idx{
  font-family:var(--display);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.18em;
  color:var(--flame);
  padding-top:.45rem;
  min-width:2.2rem;
}
.step h3{ font-size:var(--step-2); font-weight:400; margin-bottom:.6rem; }
.step p{ color:var(--text-soft); }
.section--ink .step p{ color:rgba(235,234,232,.68); }
@media (max-width:520px){
  .step{ grid-template-columns:1fr; gap:.5rem; }
  .step__idx{ padding-top:0; }
}

/* =========================================================
   Sobre
   ========================================================= */

.about{ display:grid; gap:var(--block); align-items:start; }
.about__figure{ position:relative; }
.about__figure img{ width:100%; border-radius:2px; }
@media (min-width:960px){
  .about{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(3rem,6vw,6rem); }
  .about__figure{ position:sticky; top:clamp(6rem,10vw,8rem); }
}
.about__badge{
  position:absolute;
  left:0; bottom:0;
  transform:translate(-8%,28%);
  background:var(--ink);
  color:var(--cream);
  padding:1.15rem 1.35rem;
  max-width:15rem;
}
.about__badge strong{
  display:block;
  font-family:var(--display);
  font-size:var(--step-2);
  font-weight:400;
  color:var(--white);
  line-height:1;
  margin-bottom:.35rem;
}
.about__badge span{
  font-size:.76rem;
  letter-spacing:.06em;
  color:var(--mist);
  line-height:1.4;
  display:block;
}
@media (max-width:600px){
  .about__badge{ position:static; transform:none; margin-top:1.25rem; max-width:none; }
}

.about__body h2{ font-size:var(--step-3); font-weight:300; margin-bottom:1.5rem; }
.about__body p + p{ margin-top:1.15rem; }
.about__body p{ color:var(--text-soft); }

.titles{
  list-style:none;
  margin:2.5rem 0 0;
  padding:0;
  border-top:1px solid var(--line);
}
.titles li{
  display:flex;
  align-items:baseline;
  gap:1rem;
  padding-block:.95rem;
  border-bottom:1px solid var(--line);
  font-size:.97rem;
}
.titles li::before{
  content:"";
  width:6px; height:6px;
  flex:none;
  background:var(--flame);
  transform:translateY(-2px);
}
.titles strong{ font-weight:500; color:var(--text); }
.titles span{ color:var(--text-soft); }

.consulta{
  margin-top:2.5rem;
  padding:clamp(1.6rem,3vw,2.2rem);
  background:var(--white);
  border-left:2px solid var(--flame);
}
.section--cream .consulta{ background:rgba(255,255,255,.6); }
.consulta h3{
  font-size:var(--step-1);
  font-weight:500;
  letter-spacing:.01em;
  margin-bottom:.9rem;
}
.consulta p{ color:var(--text-soft); font-size:.97rem; }

.pull{
  font-family:var(--quote);
  font-style:italic;
  font-size:var(--step-2);
  line-height:1.4;
  color:var(--deep);
  margin-top:2rem;
  padding-left:1.5rem;
  border-left:1px solid var(--sand);
}

/* =========================================================
   Depoimentos — carrossel
   ========================================================= */

.reviews__head{
  display:grid;
  gap:1.5rem;
  align-items:end;
  margin-bottom:var(--block);
}
@media (min-width:900px){
  .reviews__head{ grid-template-columns:1fr auto; }
}
.reviews__head h2{ font-size:var(--step-3); font-weight:300; }

.carousel{ position:relative; }
.carousel__viewport{
  display:flex;
  gap:1px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding-bottom:2px;
  cursor:grab;
}
@media (max-width:899px){
  /* sangra até a borda da tela no mobile */
  .carousel__viewport{
    margin-inline:calc(var(--gutter) * -1);
    padding-inline:var(--gutter);
  }
}
.carousel__viewport::-webkit-scrollbar{ display:none; }
.carousel__viewport.is-dragging{ cursor:grabbing; scroll-behavior:auto; scroll-snap-type:none; }
.carousel__viewport.is-dragging *{ user-select:none; }
@media (prefers-reduced-motion: reduce){ .carousel__viewport{ scroll-behavior:auto; } }

.review{
  flex:0 0 min(88%,26rem);
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  padding:clamp(1.75rem,3vw,2.4rem);
  background:var(--ink-soft);
  border:1px solid var(--ink-line);
  border-radius:2px;
  min-height:100%;
}
@media (min-width:760px){ .review{ flex-basis:min(46%,26rem); } }
@media (min-width:1180px){ .review{ flex-basis:min(32%,25rem); } }

.review__stars{ display:flex; gap:3px; color:var(--flame); }
.review__stars svg{ width:15px; height:15px; }
.review p{
  color:rgba(235,234,232,.8);
  font-size:.99rem;
  line-height:1.7;
}
.review__foot{
  margin-top:auto;
  padding-top:1.25rem;
  border-top:1px solid var(--ink-line);
  display:flex;
  align-items:center;
  gap:.85rem;
}
.review__avatar{
  width:38px; height:38px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--deep);
  color:var(--cream);
  font-family:var(--display);
  font-size:.95rem;
  font-weight:500;
}
.review__who strong{
  display:block;
  font-family:var(--display);
  font-weight:500;
  font-size:.97rem;
  color:var(--white);
  letter-spacing:.005em;
}
.review__who span{
  font-size:.78rem;
  color:var(--sage);
  letter-spacing:.03em;
}

.carousel__nav{
  display:flex;
  align-items:center;
  gap:.6rem;
}
.carousel__btn{
  width:52px; height:52px;
  display:grid;
  place-items:center;
  border:1px solid var(--ink-line);
  border-radius:50%;
  color:var(--cream);
  transition:background .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease-out), opacity .3s var(--ease);
}
.carousel__btn:hover{ background:var(--flame); border-color:var(--flame); color:#fff; }
.carousel__btn[disabled]{ opacity:.3; pointer-events:none; }
.carousel__btn svg{ width:17px; height:17px; }

.carousel__foot{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  margin-top:2.25rem;
  flex-wrap:wrap;
}
.dots{ display:flex; gap:.5rem; }
.dot{
  width:26px; height:3px;
  background:var(--ink-line);
  border-radius:2px;
  transition:background .4s var(--ease), width .4s var(--ease-out);
}
.dot.is-active{ background:var(--flame); width:44px; }
@media (min-width:900px){ .carousel__foot .carousel__nav{ display:none; } }
@media (max-width:899px){ .reviews__head .carousel__nav{ display:none; } }

/* --- bloco de recursos (seção de dor) --- */
.pain-note{
  margin-top:var(--block);
  max-width:52rem;
  margin-inline:auto;
}
.pain-note .consulta{ margin-top:0; }
.pain-note a{
  color:var(--deep);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  transition:color .35s var(--ease);
}
.pain-note a:hover{ color:var(--flame); }

/* =========================================================
   Onde atendo
   ========================================================= */

.where{ display:grid; gap:var(--block); align-items:stretch; }
@media (min-width:960px){
  .where{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(2.5rem,5vw,5rem); }
}
.where__body{ display:flex; flex-direction:column; }
.where__body h2{ font-size:var(--step-3); font-weight:300; margin-bottom:1.5rem; }
.where__body h2 strong{ display:block; }
.where__addr{
  font-family:var(--display);
  font-size:var(--step-2);
  font-weight:400;
  line-height:1.35;
  letter-spacing:-.012em;
  margin-bottom:1rem;
}
.where__note{ color:var(--text-soft); max-width:44ch; }
.where__actions{ margin-top:auto; padding-top:var(--block); }
.where__map{
  position:relative;
  min-height:clamp(19rem,38vw,27rem);
  border:1px solid var(--line);
  border-radius:2px;
  overflow:hidden;
  background:var(--fog);
}
.where__map iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

/* =========================================================
   FAQ
   ========================================================= */

.faq{ max-width:64rem; margin-inline:auto; border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  padding-block:clamp(1.3rem,2.4vw,1.7rem);
  font-family:var(--display);
  font-size:var(--step-1);
  font-weight:400;
  line-height:1.35;
  letter-spacing:-.01em;
  list-style:none;
  cursor:pointer;
  transition:color .35s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--deep); }
.faq__sign{
  position:relative;
  width:20px; height:20px;
  flex:none;
  margin-top:.35rem;
}
.faq__sign::before,.faq__sign::after{
  content:"";
  position:absolute;
  inset:50% 0 auto;
  height:1.5px;
  background:var(--flame);
  transition:transform .45s var(--ease-out);
}
.faq__sign::after{ transform:rotate(90deg); }
.faq details[open] .faq__sign::after{ transform:rotate(0); }
.faq__panel{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .5s var(--ease-out);
}
.faq details[open] .faq__panel{ grid-template-rows:1fr; }
.faq__panel > div{ overflow:hidden; }
.faq__panel p{
  color:var(--text-soft);
  max-width:60ch;
  padding-bottom:clamp(1.3rem,2.4vw,1.7rem);
}

/* =========================================================
   CTA final + rodapé
   ========================================================= */

.cta{
  position:relative;
  background:var(--ink);
  color:var(--cream);
  overflow:hidden;
  isolation:isolate;
  text-align:center;
}
.cta__mono{
  position:absolute;
  z-index:-1;
  right:-6%;
  top:50%;
  transform:translateY(-50%);
  width:min(620px,70vw);
  opacity:.05;
  pointer-events:none;
}
.cta h2{
  font-size:var(--step-4);
  font-weight:300;
  letter-spacing:-.03em;
  margin-bottom:1.5rem;
}
.cta h2 strong{ font-weight:500; color:var(--white); }
.cta .lede{ margin:0 auto 2.6rem; color:rgba(235,234,232,.76); }
.cta .actions{ justify-content:center; }
.cta__meta{
  margin-top:2rem;
  font-size:var(--step--1);
  letter-spacing:.05em;
  color:var(--sage);
}

.footer{
  background:#032226;
  color:rgba(235,234,232,.62);
  padding-block:clamp(3.5rem,6vw,5rem);
  font-size:.9rem;
}

.footer__top{
  display:grid;
  gap:clamp(2.5rem,5vw,3.5rem);
  padding-bottom:clamp(2.5rem,4vw,3.5rem);
  border-bottom:1px solid var(--ink-line);
}
@media (min-width:820px){
  .footer__top{
    grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);
    gap:clamp(2.5rem,5vw,4.5rem);
    align-items:start;
  }
}

.footer__logo{
  width:clamp(210px,20vw,260px);
  margin-bottom:1.75rem;
}
.footer__id{ line-height:1.75; max-width:34ch; }
.footer__id strong{
  display:block;
  font-family:var(--display);
  font-size:1.05rem;
  font-weight:500;
  letter-spacing:.005em;
  color:var(--cream);
  margin-bottom:.35rem;
}

.footer__title{
  font-family:var(--display);
  font-size:.76rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--sand);
  margin:0 0 1.35rem;
}

.footer__links{
  display:grid;
  grid-template-rows:repeat(4,auto);
  grid-auto-flow:column;
  gap:.7rem 1.5rem;
  list-style:none;
  margin:0; padding:0;
}
.footer__links a{
  font-size:.92rem;
  letter-spacing:.01em;
  transition:color .35s var(--ease);
}
.footer__links a:hover{ color:var(--flame); }

.footer__phone{
  display:inline-block;
  font-family:var(--display);
  font-size:clamp(1.35rem,2.4vw,1.65rem);
  font-weight:400;
  letter-spacing:-.01em;
  color:var(--cream);
  margin-bottom:.9rem;
  transition:color .35s var(--ease);
}
.footer__phone:hover{ color:var(--flame); }
.footer__note{ line-height:1.7; margin-bottom:1.75rem; }
.footer__col .btn{ white-space:nowrap; }

.footer__bottom{
  padding-top:clamp(2rem,3.5vw,2.75rem);
  display:flex;
  flex-wrap:wrap;
  gap:1rem 2.5rem;
  justify-content:space-between;
  align-items:flex-end;
  font-size:.82rem;
  line-height:1.65;
}
.footer__legal{ max-width:66ch; color:rgba(235,234,232,.45); }
@media (max-width:600px){
  /* espaço para o botão flutuante do WhatsApp não cobrir o texto */
  .footer{ padding-bottom:6rem; }
}

/* --- WhatsApp flutuante --- */
.wa-float{
  position:fixed;
  right:clamp(1rem,3vw,1.75rem);
  bottom:clamp(1rem,3vw,1.75rem);
  z-index:90;
  width:56px; height:56px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--flame);
  color:#fff;
  box-shadow:0 12px 28px -10px rgba(5,46,50,.6);
  transform:translateY(140%) scale(.85);
  opacity:0;
  transition:transform .6s var(--ease-out), opacity .5s var(--ease), background .35s var(--ease);
}
.wa-float.is-in{ transform:none; opacity:1; }
.wa-float:hover{ background:var(--flame-deep); }
.wa-float svg{ width:27px; height:27px; }

@media (max-width:600px){
  .hero .actions .btn,
  .cta .actions .btn,
  .section-foot > .btn,
  .where__actions .btn{ width:100%; }
}

/* =========================================================
   Animação de entrada
   ========================================================= */

[data-reveal]{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
  transition-delay:var(--delay,0ms);
}
[data-reveal].is-in{ opacity:1; transform:none; }

/* a cortina vive no filho: clip-path no próprio alvo zera a
   área observada pelo IntersectionObserver e trava o reveal */
[data-reveal="mask"]{ opacity:1; transform:none; }
[data-reveal="mask"] > picture{
  display:block;
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.15s var(--ease-out);
  transition-delay:var(--delay,0ms);
}
[data-reveal="mask"].is-in > picture{ clip-path:inset(0 0 0 0); }
[data-reveal="mask"] > figcaption{
  opacity:0;
  transition:opacity .9s var(--ease-out);
  transition-delay:calc(var(--delay,0ms) + 420ms);
}
[data-reveal="mask"].is-in > figcaption{ opacity:1; }

[data-reveal="fade"]{ transform:none; }

.hero [data-reveal]{ transition-duration:1s; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  [data-reveal]{ opacity:1 !important; transform:none !important; clip-path:none !important; }
  .marquee__track{ animation:none; }
}
