/* Conversão boutique — atualização de agosto de 2026 */
:root {
  --conversion-gold: #c3a061;
  --conversion-navy: #061a30;
  --conversion-paper: #fbfaf7;
}

.navAppointment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid var(--conversion-navy);
  color: var(--conversion-navy);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}

.navAppointment:hover,
.navAppointment:focus-visible {
  background: var(--conversion-navy);
  color: #fff;
}

.premiumHeroIndex {
  grid-template-columns: repeat(4, auto);
}

.premiumHeroIndex span,
.premiumHeroIndex a {
  min-width: 128px;
  padding-right: 20px;
  padding-left: 20px;
}

.practiceCard {
  position: relative;
  transition: background-color .25s ease, padding-left .25s ease;
}

.practiceCard::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;
  background: var(--conversion-gold);
  content: "";
  opacity: 0;
  transform: scaleY(.4);
  transition: opacity .25s ease, transform .25s ease;
}

.practiceCard:hover,
.practiceCard:focus-within {
  background: rgba(195, 160, 97, .055);
}

.practiceCard:hover::before,
.practiceCard:focus-within::before {
  opacity: 1;
  transform: scaleY(1);
}

.practiceCard:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  padding-right: 4vw;
}

.responsibilityCard {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(320px, 1.3fr);
  column-gap: clamp(36px, 7vw, 110px);
  background: rgba(6, 26, 48, .035);
}

.responsibilityCard > span,
.responsibilityCard > h3 {
  grid-column: 1;
}

.responsibilityCard > p,
.responsibilityCard > .practiceTopics,
.responsibilityCard > a {
  grid-column: 2;
}

.responsibilityCard > p { grid-row: 1 / span 2; }

.practiceTopics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 25px;
  padding: 0;
  list-style: none;
}

.practiceTopics li {
  padding: 8px 11px;
  border: 1px solid rgba(6, 26, 48, .14);
  color: var(--conversion-navy);
  font-size: 10px;
  letter-spacing: .035em;
}

.conversionBand {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(60px, 9vw, 150px);
  padding: clamp(85px, 9vw, 128px) 8vw;
  background: var(--conversion-navy);
  color: #fff;
}

.conversionBand h2 {
  max-width: 720px;
  margin: 22px 0 0;
  font: 400 clamp(36px, 4vw, 58px)/1.08 var(--font-display, Georgia, serif);
  letter-spacing: -.025em;
}

.conversionBandCopy {
  align-self: end;
}

.conversionBandCopy p {
  max-width: 590px;
  margin: 0 0 30px;
  color: rgba(255, 255, 255, .74);
  font-size: 15px;
  line-height: 1.75;
}

.conversionButton {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 42px;
  min-height: 56px;
  padding: 0 23px;
  border: 1px solid #f5f1e9;
  background: #f5f1e9;
  color: var(--conversion-navy);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.conversionButton:hover,
.conversionButton:focus-visible {
  border-color: var(--conversion-gold);
  background: var(--conversion-gold);
  transform: translateY(-2px);
}

.contactSteps {
  display: grid;
  gap: 0;
  margin: 34px 0 0;
  padding: 0;
  border-top: 1px solid var(--stone);
  list-style: none;
}

.contactSteps li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid var(--stone);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.contactSteps span {
  color: var(--conversion-gold);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .13em;
}

.contact form {
  position: relative;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid #d8d0c4;
  background: rgba(255, 255, 255, .45);
}

.contact form::before {
  display: block;
  margin-bottom: 8px;
  color: var(--conversion-navy);
  font: 400 26px/1.25 var(--font-display, Georgia, serif);
  content: "Solicitação de consulta";
}

.contact form::after {
  display: block;
  order: -1;
  margin: -12px 0 8px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
  content: "Envie somente as informações necessárias para o enquadramento inicial.";
}

html[lang^="en"] .contact form::before { content: "Consultation request"; }
html[lang^="en"] .contact form::after { content: "Provide only what is needed for the initial fit assessment."; }
html[lang^="es"] .contact form::before { content: "Solicitud de consulta"; }
html[lang^="es"] .contact form::after { content: "Facilite solo lo necesario para la evaluación inicial."; }
html[lang^="it"] .contact form::before { content: "Richiesta di consulenza"; }
html[lang^="it"] .contact form::after { content: "Fornisca solo quanto necessario per la valutazione iniziale."; }

.contact .primaryButton {
  width: 100%;
}

.floatingAppointment {
  position: fixed;
  z-index: 45;
  right: 24px;
  bottom: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 50px;
  padding: 0 19px;
  border: 1px solid rgba(255, 255, 255, .32);
  background: rgba(6, 26, 48, .94);
  box-shadow: 0 14px 38px rgba(6, 26, 48, .22);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.floatingAppointment:hover,
.floatingAppointment:focus-visible {
  background: var(--conversion-gold);
  color: var(--conversion-navy);
  transform: translateY(-2px);
}

/* Enquadramento consistente das chegadas por links internos. */
html { scroll-padding-top: 96px; }
section[id], .practiceCard[id] { scroll-margin-top: 96px; }

.premiumHeroIndex a {
  color: inherit;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  border-right: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.82);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .15em;
  text-align: center;
  text-transform: uppercase;
  transition: background-color .22s ease, color .22s ease;
}
.premiumHeroIndex a:hover,
.premiumHeroIndex a:focus-visible {
  background: #c8a45f;
  color: #071b30;
  outline: none;
}

.international p {
  hyphens: none;
  overflow-wrap: normal;
  text-wrap: pretty;
}

/* Ao chegar às seções, título e início do conteúdo ficam no primeiro quadro. */
#perspectivas,
#contato {
  scroll-margin-top: 82px;
}

@media (max-width: 760px) {
  html { scroll-padding-top: 86px; }
  section[id], .practiceCard[id], #perspectivas, #contato { scroll-margin-top: 86px; }
  .premiumHeroIndex a { min-height: 50px; }
}

@media (max-width: 1180px) {
  .navAppointment { display: none; }
  .premiumHeroIndex span,
  .premiumHeroIndex a { min-width: 112px; }
}

@media (max-width: 760px) {
  .responsibilityCard { display: block; }
}

@media (max-width: 820px) {
  body { padding-bottom: 54px; }

  .conversionBand {
    grid-template-columns: 1fr;
    gap: 34px;
    padding: 78px 24px;
  }

  .conversionBandCopy { align-self: start; }

  .contact form { padding: 28px 22px; }

  .practiceCard:last-child:nth-child(odd) {
    grid-column: auto;
    padding-right: 0;
  }

  .floatingAppointment {
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 54px;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .25);
    padding: 0 24px;
    border-radius: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .practiceCard,
  .practiceCard::before,
  .conversionButton,
  .floatingAppointment {
    transition: none !important;
  }
}

/* Ajuste final de identidade e composição do primeiro quadro — 27/08/2026 */
.brand {
  display: flex;
  width: max-content;
  min-width: 0;
  height: auto;
  padding-right: 22px;
  border-right: 0;
  align-items: center;
  justify-content: center;
}

.brandSymbol {
  display: none;
}

.brand .brandCopy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.brand .brandCopy strong {
  color: var(--conversion-navy);
  font: 400 20px/1 var(--font-display, Georgia, serif);
  letter-spacing: .18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.brand .brandCopy small {
  margin-top: 7px;
  padding-left: .5em;
  color: rgba(7, 27, 48, .78);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .5em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (min-width: 821px) {
  .premiumHeroContent {
    width: min(820px, 68vw);
    padding: clamp(50px, 6.5vh, 72px) clamp(58px, 7vw, 104px) clamp(92px, 11vh, 122px);
    justify-content: center;
  }

  .premiumHero h1 {
    max-width: 19ch;
    margin: 22px 0 20px;
    font-size: clamp(46px, 4.55vw, 64px);
    line-height: 1.04;
    letter-spacing: -.038em;
    text-wrap: pretty;
  }

  .premiumLead {
    max-width: 52ch;
    margin: 0;
    font-size: clamp(15px, 1.15vw, 17px);
    line-height: 1.65;
    text-wrap: pretty;
  }
}

@media (max-width: 820px) {
  .brand {
    padding-right: 8px;
  }

  .brand .brandCopy strong {
    font-size: 16px;
    letter-spacing: .14em;
  }

  .brand .brandCopy small {
    margin-top: 5px;
    font-size: 7px;
    letter-spacing: .42em;
  }

  .premiumHero h1 {
    max-width: 17ch;
    font-size: clamp(36px, 9.5vw, 46px);
    line-height: 1.06;
    letter-spacing: -.034em;
    text-wrap: pretty;
  }

  .premiumLead {
    max-width: 44ch;
    margin: 0;
    text-wrap: pretty;
  }
}

/* Organização estratégica das áreas e correções finais — 27/08/2026 */
.premiumScroll {
  display: none !important;
}

.practiceGrid .practiceCard,
.practiceGrid .practiceCard:nth-child(even),
.practiceGrid .practiceCard:last-child:nth-child(odd) {
  padding-right: clamp(28px, 3.2vw, 48px);
  padding-left: clamp(28px, 3.2vw, 48px);
}

.practiceGridOrganized > .practiceCardLead {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(320px, 1.3fr);
  column-gap: clamp(36px, 7vw, 110px);
  border-right: 0;
  background: rgba(6, 26, 48, .035);
}

.practiceGridOrganized > .practiceCardLead > span,
.practiceGridOrganized > .practiceCardLead > h3 {
  grid-column: 1;
}

.practiceGridOrganized > .practiceCardLead > p,
.practiceGridOrganized > .practiceCardLead > .practiceTopics,
.practiceGridOrganized > .practiceCardLead > a {
  grid-column: 2;
}

.practiceGridOrganized > .practiceCardLead > p {
  grid-row: 1 / span 2;
}

.practiceGridOrganized > .practiceCard:nth-child(even) {
  border-right: 1px solid var(--stone);
}

.practiceGridOrganized > .practiceCard:nth-child(odd):not(.practiceCardLead) {
  border-right: 0;
}

.practiceGridOrganized > .practiceCard:last-child:nth-child(odd) {
  grid-column: auto;
}

@media (max-width: 760px) {
  .practiceGrid .practiceCard,
  .practiceGrid .practiceCard:nth-child(even),
  .practiceGrid .practiceCard:last-child:nth-child(odd) {
    padding-right: 22px;
    padding-left: 22px;
    border-right: 0;
  }

  .practiceGridOrganized > .practiceCardLead {
    display: block;
  }
}

/* Revisão editorial e densidade de navegação — 27/08/2026 */
.premiumHero .premiumLead {
  max-width: 50ch;
  font-size: clamp(15px, 1.05vw, 16px);
  line-height: 1.55;
  text-wrap: pretty;
}

.perspectives {
  padding: 52px 8vw 54px;
}

.perspectivesHeading {
  gap: clamp(36px, 6vw, 84px);
  margin-bottom: 28px;
}

.perspectivesHeading h2 {
  font-size: clamp(29px, 2.35vw, 36px);
  line-height: 1.14;
}

.perspectivesHeading p {
  margin-top: 10px;
  line-height: 1.55;
}

.perspectives .insightGrid {
  min-height: 300px;
}

.insightBase,
.insightReveal {
  padding: clamp(24px, 2.4vw, 34px);
}

.insightBase h3 {
  margin-bottom: 12px;
  font-size: clamp(21px, 1.65vw, 26px);
  line-height: 1.18;
}

.insightReveal p {
  margin: 18px 0 22px;
  font-size: 14px;
  line-height: 1.55;
}

.perspectivesNote {
  margin-top: 14px;
}

.practices {
  padding-top: 52px;
  padding-bottom: 56px;
}

.practices .sectionHeading {
  margin-bottom: 28px;
}

.practiceGrid .practiceCard,
.practiceGrid .practiceCard:nth-child(even),
.practiceGrid .practiceCard:last-child:nth-child(odd) {
  padding-top: 22px;
  padding-bottom: 20px;
}

.practiceCard h3 {
  margin-top: 12px;
  margin-bottom: 8px;
  font-size: 22px;
  line-height: 1.2;
}

.practiceCard p {
  margin-bottom: 6px;
  font-size: 14.5px;
  line-height: 1.5;
}

.practiceTopics {
  gap: 6px;
  margin: 12px 0 14px;
}

.practiceTopics li {
  padding: 6px 9px;
  font-size: 9.5px;
}

.practiceCard a {
  margin-top: 8px;
}

@media (min-width: 821px) {
  .floatingAppointment {
    right: 22px;
    bottom: 20px;
    min-height: 44px;
    padding: 0 18px;
    font-size: 8.5px;
  }
}

@media (max-width: 820px) {
  .premiumHero .premiumLead {
    max-width: 42ch;
    line-height: 1.5;
  }

  .perspectives {
    padding: 46px 24px 48px;
  }

  .perspectivesHeading {
    gap: 18px;
    margin-bottom: 22px;
  }

  .perspectives .insightCard,
  .perspectives .insightBase,
  .perspectives .insightReveal {
    min-height: 260px;
  }

  .practices {
    padding-top: 48px;
    padding-bottom: 50px;
  }
}

@media (max-width: 560px) {
  .perspectives .insightBase {
    min-height: 230px;
    padding: 24px 22px;
  }

  .perspectives .insightReveal {
    min-height: 200px;
    padding: 24px 22px;
  }

  .practiceGrid .practiceCard,
  .practiceGrid .practiceCard:nth-child(even),
  .practiceGrid .practiceCard:last-child:nth-child(odd) {
    padding: 20px;
  }
}

/* Âncoras sem compensação duplicada e parágrafos com leitura natural. */
html {
  scroll-padding-top: 88px;
}

section[id],
.practiceCard[id],
#inicio,
#escritorio,
#perspectivas,
#atuacao,
#relacoes,
#contato,
#perguntas-frequentes {
  scroll-margin-top: 0;
}

.practiceCard p,
.officeOverviewBody p,
.international p,
.conversionBandCopy p,
.contact > div > p,
.faq p {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto;
}

@media (max-width: 760px) {
  html {
    scroll-padding-top: 82px;
  }
}
