:root {
  --ink: #171716;
  --graphite: #242423;
  --slate: #5B676B;
  --sage: #7B8B84;
  --mist: #CFD8D7;
  --ivory: #F5F0E6;
  --porcelain: #FBFAF7;
  --taupe: #A99D8D;
  --line: rgba(36, 36, 35, .14);
  --content: min(91vw, 1390px);
  --serif: "Noto Serif Display", "Times New Roman", serif;
  --sans: "Lato", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--porcelain); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--porcelain);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.site-shell { overflow: clip; }

.hero {
  position: relative;
  isolation: isolate;
  background: var(--porcelain);
  min-height: 100svh;
  padding-top: 106px;
}

.site-header {
  width: 100%;
  margin: 0;
  padding-inline: max(4.5vw, calc((100vw - 1390px) / 2));
  box-sizing: border-box;
  min-height: 106px;
  display: grid;
  grid-template-columns: minmax(300px, 450px) 1fr;
  align-items: center;
  gap: 42px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  background: rgba(229,216,208,.94);
  border-bottom: 1px solid rgba(74,31,45,.10);
  box-shadow: 0 8px 30px rgba(59,24,31,.06);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
.brand {
  display: inline-flex;
  align-items: center;
  width: min(100%, 405px);
  text-decoration: none;
}
.brand img { width: 100%; height: auto; display: block; }
.primary-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(20px, 2vw, 37px);
  font-size: 12px;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.primary-nav > a:not(.nav-contact) {
  position: relative;
  text-decoration: none;
  padding: 18px 0;
}
.primary-nav > a:not(.nav-contact)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 10px;
  height: 1px;
  background: var(--taupe);
  transition: right .25s ease;
}
.primary-nav > a.is-current::after,
.primary-nav > a:not(.nav-contact):hover::after,
.primary-nav > a:not(.nav-contact):focus-visible::after { right: 0; }
.nav-contact {
  min-height: 52px;
  padding: 0 18px;
  border: 1px solid rgba(169,157,141,.82);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  text-decoration: none;
  color: #756b5e;
  white-space: nowrap;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.nav-contact:hover, .nav-contact:focus-visible {
  background: var(--graphite);
  border-color: var(--graphite);
  color: var(--porcelain);
}
.menu-toggle { display: none; }

.hero-stage {
  min-height: 580px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 48%) minmax(0, 52%);
  overflow: hidden;
  background:
    radial-gradient(circle at 23% 34%, rgba(169,157,141,.08), transparent 22%),
    var(--porcelain);
}
.hero-stage::before { display: none; }

.hero-copy {
  width: min(88%, 660px);
  margin-left: max(4.5vw, calc((100vw - 1390px) / 2));
  padding: 74px 0 66px;
  align-self: center;
  position: relative;
  z-index: 5;
}
.hero-monogram {
  position: absolute;
  width: 430px;
  left: -250px;
  top: 62px;
  opacity: .035;
  filter: grayscale(1);
  pointer-events: none;
}
.eyebrow {
  margin: 0 0 24px;
  color: var(--sage);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
}
.hero h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(56px, 4.75vw, 78px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: .012em;
  text-transform: uppercase;
  max-width: 690px;
}
.hero h1 span { color: #8f806b; }
.ornament {
  margin-top: 25px;
  width: 245px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}
.ornament span { height: 1px; background: rgba(169,157,141,.55); }
.ornament i {
  width: 7px;
  height: 7px;
  background: var(--taupe);
  transform: rotate(45deg);
}
.hero-lead {
  margin: 28px 0 0;
  max-width: 520px;
  color: #555550;
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.7;
  font-weight: 400;
}
.hero-actions {
  margin-top: 34px;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.primary-cta {
  min-height: 60px;
  display: grid;
  grid-template-columns: 58px minmax(0, auto) 46px;
  align-items: stretch;
  border: 1px solid rgba(169,157,141,.8);
  text-decoration: none;
  color: #6f6253;
  background: rgba(251,250,247,.88);
  transition: transform .25s ease, border-color .25s ease, color .25s ease;
}
.cta-icon {
  display: grid;
  place-items: center;
  background: var(--graphite);
  color: var(--ivory);
  font-size: 20px;
}
.cta-label {
  display: flex;
  align-items: center;
  padding: 0 24px;
  font-size: 12px;
  letter-spacing: .075em;
  text-transform: uppercase;
  font-weight: 500;
}
.cta-arrow {
  display: grid;
  place-items: center;
  font-size: 20px;
  color: var(--taupe);
}
.primary-cta:hover, .primary-cta:focus-visible {
  transform: translateY(-2px);
  border-color: var(--sage);
  color: var(--slate);
}
.secondary-cta {
  text-decoration: none;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(36,36,35,.24);
  padding: 11px 0 8px;
}
.secondary-cta:hover, .secondary-cta:focus-visible { border-color: var(--sage); color: var(--slate); }

.hero-art {
  position: relative;
  min-height: 580px;
  overflow: hidden;
  background: #e9dfd3;
  margin-left: -72px;
}
.justice-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 48% 50%;
  filter: saturate(.84) contrast(.98) brightness(1.02);
}
.hero-art::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(
      90deg,
      rgba(251,250,247,1) 0%,
      rgba(251,250,247,.94) 7%,
      rgba(251,250,247,.72) 15%,
      rgba(251,250,247,.36) 24%,
      rgba(251,250,247,.10) 32%,
      rgba(251,250,247,0) 40%
    ),
    linear-gradient(180deg, rgba(123,139,132,.08), transparent 35%);
  pointer-events: none;
}
.art-frame {
  position: absolute;
  z-index: 3;
  right: 5.2%;
  top: 8%;
  width: 42%;
  height: 73%;
  border: 1px solid rgba(169,157,141,.22);
  pointer-events: none;
}

.pillars {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding-inline: max(4.5vw, calc((100vw - 1390px)/2));
  background: #222320;
  color: var(--porcelain);
}
.pillar {
  min-height: 184px;
  padding: 28px clamp(25px, 2.6vw, 42px) 26px;
  text-align: center;
  border-right: 1px solid rgba(207,216,215,.14);
}
.pillar:first-child { border-left: 1px solid rgba(207,216,215,.14); }
.pillar-icon {
  width: 41px;
  height: 41px;
  margin: 0 auto 11px;
  display: block;
  color: #b9ad9b;
}
.pillar-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.pillar h2 {
  margin: 0 0 9px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: #d6cbbc;
}
.pillar p {
  margin: 0 auto;
  max-width: 275px;
  color: rgba(251,250,247,.72);
  font-size: 12px;
  line-height: 1.55;
}

.hero-info {
  width: var(--content);
  margin: 0 auto;
  min-height: 92px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  background: var(--porcelain);
}
.hero-info > div,
.hero-info > a {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 26px;
  color: #5e5d58;
  text-decoration: none;
}
.hero-info > * + * { border-left: 1px solid var(--line); }
.info-mark { color: var(--taupe); font-size: 20px; flex: 0 0 auto; }
.hero-info p { margin: 0; min-width: 0; }
.hero-info strong { display: block; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.hero-info small { display: block; margin-top: 5px; color: #88827a; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
:focus-visible { outline: 2px solid var(--sage); outline-offset: 4px; }

@media (max-width: 1180px) {
  :root { --content: min(92vw, 1080px); }
  .site-header { padding-inline: 4vw; grid-template-columns: minmax(260px, 340px) 1fr; gap: 24px; }
  .primary-nav { gap: 18px; font-size: 11px; }
  .nav-contact { display: none; }
  .hero-stage { grid-template-columns: 52% 48%; min-height: 560px; }
  .hero-copy { margin-left: 4vw; width: 90%; padding: 64px 0; }
  .hero h1 { font-size: clamp(52px, 5.7vw, 68px); }
  .hero-art { min-height: 560px; margin-left: -52px; }
  .pillar { padding-inline: 23px; }
}

@media (max-width: 900px) {
  .hero { padding-top: 88px; }
  .site-header { min-height: 88px; padding-inline: 4vw; grid-template-columns: 1fr auto; gap: 20px; }
  .brand { width: min(68vw, 330px); }
  .menu-toggle {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(36,36,35,.18);
    background: rgba(251,250,247,.9);
    display: grid;
    place-content: center;
    gap: 7px;
    cursor: pointer;
    position: relative;
    z-index: 31;
  }
  .menu-toggle span { width: 19px; height: 1px; background: var(--ink); display: block; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .primary-nav {
    position: absolute;
    top: 76px;
    right: 0;
    width: min(88vw, 380px);
    padding: 28px;
    display: grid;
    gap: 4px;
    background: rgba(251,250,247,.99);
    border: 1px solid var(--line);
    box-shadow: 0 24px 60px rgba(23,23,22,.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .primary-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .primary-nav > a:not(.nav-contact) { padding: 15px 0; border-bottom: 1px solid var(--line); }
  .nav-contact { display: flex; margin-top: 12px; }
  .hero-stage { grid-template-columns: 1fr; min-height: 0; background: var(--porcelain); }
  .hero-stage::before { display: none; }
  .hero-copy { width: var(--content); margin: 0 auto; padding: 58px 0 52px; }
  .hero h1 { font-size: clamp(52px, 8.2vw, 70px); max-width: 760px; }
  .hero-lead { max-width: 620px; }
  .hero-art { min-height: 500px; margin-left: 0; }
  .hero-art::before { background: linear-gradient(180deg, rgba(251,250,247,.75) 0%, rgba(251,250,247,0) 20%); }
  .justice-image { object-position: 50% 48%; }
  .pillars { grid-template-columns: repeat(2, 1fr); padding-inline: 4vw; }
  .pillar { min-height: 170px; border-bottom: 1px solid rgba(207,216,215,.14); }
  .pillar:nth-child(2) { border-right: none; }
  .pillar:nth-child(3) { border-left: 1px solid rgba(207,216,215,.14); }
  .hero-info { grid-template-columns: 1fr; padding: 8px 0; }
  .hero-info > * + * { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 600px) {
  :root { --content: calc(100vw - 38px); }
  .site-header { min-height: 78px; }
  .brand { width: min(70vw, 270px); }
  .menu-toggle { width: 44px; height: 44px; }
  .primary-nav { top: 68px; width: min(92vw, 360px); }
  .hero-copy { padding: 44px 0 40px; }
  .hero-monogram { width: 330px; left: -190px; top: 32px; }
  .eyebrow { font-size: 10px; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(40px, 11.5vw, 52px); line-height: 1.08; }
  .hero h1 br { display: none; }
  .hero h1 span { display: block; margin-top: 5px; }
  .ornament { width: 190px; margin-top: 21px; }
  .hero-lead { margin-top: 22px; font-size: 15.5px; line-height: 1.65; }
  .hero-actions { margin-top: 29px; display: grid; justify-items: stretch; gap: 13px; }
  .primary-cta { width: 100%; grid-template-columns: 54px 1fr 42px; min-height: 58px; }
  .cta-label { padding: 0 14px; font-size: 10.5px; letter-spacing: .055em; }
  .secondary-cta { justify-self: start; font-size: 11px; }
  .hero-art { min-height: 385px; }
  .justice-image { object-position: 43% 50%; }
  .art-frame { right: 5%; top: 7%; width: 46%; height: 74%; }
  .pillars { grid-template-columns: repeat(2,1fr); padding: 0; }
  .pillar { min-height: 174px; padding: 23px 15px; }
  .pillar:first-child, .pillar:nth-child(3) { border-left: none; }
  .pillar-icon { width: 35px; height: 35px; }
  .pillar h2 { font-size: 11.5px; }
  .pillar p { font-size: 11px; line-height: 1.48; }
  .hero-info { width: var(--content); }
  .hero-info > div, .hero-info > a { padding: 16px 4px; }
}

@media (max-width: 370px) {
  :root { --content: calc(100vw - 28px); }
  .brand { width: 225px; }
  .hero h1 { font-size: 39px; }
  .hero-art { min-height: 350px; }
  .cta-label { font-size: 10px; padding-inline: 10px; }
  .pillar { padding-inline: 12px; }
  .pillar p { font-size: 10.5px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* Etapa 3 — Sobre */
.about {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background:
    radial-gradient(circle at 15% 20%, rgba(123,139,132,.08), transparent 24%),
    linear-gradient(112deg, var(--ivory) 0%, #f7f3eb 42%, var(--porcelain) 100%);
  border-top: 1px solid rgba(36,36,35,.06);
}
.about::before {
  content: "VC";
  position: absolute;
  right: -3vw;
  bottom: -105px;
  z-index: -1;
  font-family: var(--serif);
  font-size: clamp(220px, 24vw, 430px);
  font-weight: 300;
  line-height: .8;
  letter-spacing: -.08em;
  color: rgba(91,103,107,.028);
  pointer-events: none;
}
.about-inner {
  width: var(--content);
  margin: 0 auto;
  padding: clamp(92px, 9vw, 142px) 0 clamp(94px, 9vw, 138px);
  display: grid;
  grid-template-columns: minmax(360px, .92fr) minmax(420px, 1.08fr);
  grid-template-areas:
    "visual heading"
    "visual body";
  column-gap: clamp(68px, 7vw, 118px);
  row-gap: 34px;
  align-items: start;
}
.about-heading { grid-area: heading; padding-top: 16px; }
.section-kicker {
  margin: 0 0 22px;
  color: var(--sage);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
}
.about h2 {
  margin: 0;
  max-width: 690px;
  font-family: var(--serif);
  font-size: clamp(50px, 4.6vw, 72px);
  font-weight: 300;
  line-height: 1.08;
  letter-spacing: .01em;
}
.about h2 span { color: #8f806b; }
.about-ornament {
  margin-top: 26px;
  width: 210px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}
.about-ornament span { height: 1px; background: rgba(169,157,141,.55); }
.about-ornament i { width: 7px; height: 7px; background: var(--sage); transform: rotate(45deg); }

.about-visual {
  grid-area: visual;
  margin: 0;
  min-width: 0;
  align-self: stretch;
}
.about-photo-shell {
  position: relative;
  width: min(100%, 500px);
  margin: 0 auto;
  padding: 18px 18px 0 0;
}
.about-photo-shell img {
  position: relative;
  z-index: 3;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 655 / 832;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 220px 220px 6px 6px;
  filter: saturate(.9) contrast(.98) brightness(1.02);
}
.about-dark-panel {
  position: absolute;
  z-index: 1;
  left: -48px;
  top: 74px;
  bottom: 42px;
  width: 46%;
  background: var(--graphite);
}
.about-outline {
  position: absolute;
  z-index: 2;
  inset: 0 0 38px 34px;
  border: 1px solid rgba(123,139,132,.5);
  border-radius: 224px 224px 8px 8px;
}
.about-visual figcaption {
  width: min(100%, 500px);
  margin: 19px auto 0;
  color: #746f68;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.about-visual figcaption span { color: var(--sage); padding: 0 5px; }

.about-body {
  grid-area: body;
  max-width: 680px;
}
.about-body > p {
  margin: 0;
  color: #555550;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.78;
}
.about-body > p + p { margin-top: 17px; }
.about-facts {
  margin-top: 42px;
  padding-top: 27px;
  border-top: 1px solid rgba(36,36,35,.13);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.about-facts > div {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 13px;
}
.fact-mark { color: var(--sage); font-size: 18px; line-height: 1; margin-top: 1px; flex: 0 0 auto; }
.about-facts p { margin: 0; min-width: 0; }
.about-facts strong {
  display: block;
  color: var(--ink);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1.45;
  text-transform: uppercase;
}
.about-facts small {
  display: block;
  margin-top: 6px;
  color: #8a8379;
  font-size: 10px;
  letter-spacing: .07em;
  line-height: 1.45;
  text-transform: uppercase;
}

@media (max-width: 1180px) {
  .about-inner {
    grid-template-columns: minmax(330px, .9fr) minmax(390px, 1.1fr);
    column-gap: clamp(48px, 5vw, 70px);
  }
  .about-photo-shell { width: min(100%, 450px); }
  .about-dark-panel { left: -30px; }
}

@media (max-width: 900px) {
  .about-inner {
    padding: 86px 0 96px;
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "visual"
      "body";
    row-gap: 44px;
  }
  .about-heading { padding-top: 0; }
  .about h2 { max-width: 760px; font-size: clamp(48px, 7vw, 66px); }
  .about-visual { width: min(88%, 560px); margin: 0 auto; }
  .about-photo-shell { width: 100%; }
  .about-dark-panel { left: -34px; top: 68px; }
  .about-body { max-width: 720px; }
}

@media (max-width: 600px) {
  .about-inner { padding: 72px 0 78px; row-gap: 34px; }
  .section-kicker { font-size: 10px; margin-bottom: 17px; }
  .about h2 { font-size: clamp(38px, 11vw, 48px); line-height: 1.08; }
  .about-ornament { width: 180px; margin-top: 22px; }
  .about-visual { width: min(92%, 470px); }
  .about-photo-shell { padding: 12px 12px 0 0; }
  .about-photo-shell img { border-radius: 160px 160px 5px 5px; }
  .about-outline { inset: 0 0 28px 22px; border-radius: 164px 164px 6px 6px; }
  .about-dark-panel { left: -22px; top: 58px; bottom: 34px; width: 45%; }
  .about-visual figcaption { margin-top: 15px; font-size: 9px; line-height: 1.5; }
  .about-body > p { font-size: 15.5px; line-height: 1.7; }
  .about-facts { margin-top: 32px; padding-top: 24px; grid-template-columns: 1fr; gap: 21px; }
}

@media (max-width: 370px) {
  .about-inner { padding-top: 64px; }
  .about h2 { font-size: 37px; }
  .about-visual { width: 95%; }
  .about-dark-panel { left: -14px; }
}

/* Etapa 4 — Atuação */
.practice {
  position: relative;
  overflow: clip;
  isolation: isolate;
  background: var(--graphite);
  color: var(--porcelain);
}
.practice::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 10% 20%, rgba(123,139,132,.13), transparent 25%),
    radial-gradient(circle at 88% 78%, rgba(169,157,141,.10), transparent 27%);
  pointer-events: none;
}
.practice-inner {
  position: relative;
  width: var(--content);
  margin: 0 auto;
  padding: clamp(96px, 9vw, 144px) 0 clamp(88px, 8vw, 126px);
}
.practice-intro {
  position: relative;
  z-index: 2;
  width: min(760px, 70%);
}
.practice-kicker { color: #aab9b3; }
.practice h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(52px, 5vw, 78px);
  font-weight: 300;
  line-height: 1.07;
  letter-spacing: .008em;
  color: var(--porcelain);
}
.practice h2 span { color: #c4b7a5; }
.practice-lead {
  margin: 30px 0 0;
  max-width: 660px;
  color: rgba(251,250,247,.72);
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.75;
}
.practice-ornament {
  margin-top: 30px;
  width: 210px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}
.practice-ornament span { height: 1px; background: rgba(207,216,215,.25); }
.practice-ornament i { width: 7px; height: 7px; background: var(--sage); transform: rotate(45deg); }
.practice-photo {
  position: absolute;
  z-index: 1;
  right: -7vw;
  top: 12px;
  width: clamp(420px, 42vw, 640px);
  aspect-ratio: 1.02;
  margin: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
  opacity: .92;
  pointer-events: none;
}
.practice-photo::before {
  content: "";
  position: absolute;
  inset: -12%;
  z-index: -1;
  background: radial-gradient(circle at 50% 50%, rgba(169,157,141,.08), rgba(123,139,132,.035) 38%, transparent 70%);
  filter: blur(14px);
  pointer-events: none;
}
.practice-photo::after {
  content: "";
  position: absolute;
  inset: -3%;
  background:
    linear-gradient(90deg, var(--graphite) 0%, rgba(36,36,35,.94) 4%, rgba(36,36,35,.58) 11%, rgba(36,36,35,0) 27%),
    linear-gradient(270deg, var(--graphite) 0%, rgba(36,36,35,.96) 4%, rgba(36,36,35,.55) 11%, rgba(36,36,35,0) 26%),
    linear-gradient(180deg, var(--graphite) 0%, rgba(36,36,35,.88) 4%, rgba(36,36,35,.42) 11%, rgba(36,36,35,0) 24%),
    linear-gradient(0deg, var(--graphite) 0%, rgba(36,36,35,.92) 5%, rgba(36,36,35,.48) 13%, rgba(36,36,35,0) 27%),
    linear-gradient(rgba(36,36,35,.06), rgba(36,36,35,.12));
  pointer-events: none;
}
.practice-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 52% 50%;
  filter: saturate(.66) contrast(1.03) brightness(.71);
  transform: scale(1.055);
  opacity: .92;
}
.practice-grid {
  position: relative;
  z-index: 2;
  margin-top: clamp(62px, 6vw, 92px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(207,216,215,.16);
  border-bottom: 1px solid rgba(207,216,215,.16);
}
.practice-card {
  min-width: 0;
  min-height: 280px;
  padding: 34px clamp(24px, 2.5vw, 40px) 38px;
  border-right: 1px solid rgba(207,216,215,.13);
}
.practice-card:first-child { border-left: 1px solid rgba(207,216,215,.13); }
.practice-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(169,157,141,.5);
  border-radius: 50%;
  color: #c9bdad;
  font-family: var(--serif);
  font-size: 15px;
}
.practice-card h3 {
  margin: 28px 0 15px;
  color: #e3d9ca;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1.45;
  text-transform: uppercase;
}
.practice-card p {
  margin: 0;
  color: rgba(251,250,247,.62);
  font-size: 14px;
  line-height: 1.72;
}
.practice-footer {
  position: relative;
  z-index: 2;
  margin-top: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.practice-footer p {
  margin: 0;
  color: rgba(251,250,247,.58);
  font-size: 11px;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.practice-footer p strong { color: #d8cdbd; font-weight: 500; }
.practice-footer p span { padding: 0 7px; color: var(--sage); }
.practice-footer a {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 0 22px;
  border: 1px solid rgba(169,157,141,.55);
  color: #e3d9ca;
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .09em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.practice-footer a:hover,
.practice-footer a:focus-visible { background: var(--porcelain); color: var(--graphite); border-color: var(--porcelain); }

@media (max-width: 1020px) {
  .practice-intro { width: min(760px, 82%); }
  .practice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .practice-card { min-height: 245px; border-bottom: 1px solid rgba(207,216,215,.13); }
  .practice-card:nth-child(2) { border-right: 1px solid rgba(207,216,215,.13); }
  .practice-card:nth-child(3) { border-left: 1px solid rgba(207,216,215,.13); border-bottom: 0; }
  .practice-card:nth-child(4) { border-bottom: 0; }
  .practice-photo { right: -10%; top: 52px; width: clamp(340px, 44vw, 455px); opacity: .82; }
}

@media (max-width: 700px) {
  .practice-inner { padding: 76px 0 78px; }
  .practice-intro { width: 100%; }
  .practice h2 { font-size: clamp(40px, 11vw, 50px); }
  .practice-lead { margin-top: 22px; font-size: 15.5px; line-height: 1.68; }
  .practice-photo {
    position: relative;
    top: auto;
    right: auto;
    width: 112%;
    aspect-ratio: 16 / 10;
    margin: 30px -6% -2px;
    opacity: .9;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
  }
  .practice-photo::before { inset: -8%; filter: blur(10px); }
  .practice-photo::after {
    inset: -2%;
    background:
      linear-gradient(90deg, var(--graphite) 0%, rgba(36,36,35,.88) 6%, rgba(36,36,35,.38) 14%, transparent 30%),
      linear-gradient(270deg, var(--graphite) 0%, rgba(36,36,35,.88) 6%, rgba(36,36,35,.38) 14%, transparent 30%),
      linear-gradient(180deg, var(--graphite) 0%, rgba(36,36,35,.84) 6%, rgba(36,36,35,.35) 15%, transparent 31%),
      linear-gradient(0deg, var(--graphite) 0%, rgba(36,36,35,.9) 6%, rgba(36,36,35,.4) 15%, transparent 31%);
  }
  .practice-photo img {
    object-position: 50% 46%;
    transform: scale(1.07);
    opacity: .9;
  }
  .practice-grid { margin-top: 48px; grid-template-columns: 1fr; }
  .practice-card,
  .practice-card:nth-child(3) {
    min-height: 0;
    padding: 29px 4px 30px;
    border-left: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(207,216,215,.13);
  }
  .practice-card:last-child { border-bottom: 0; }
  .practice-number { width: 38px; height: 38px; font-size: 14px; }
  .practice-card h3 { margin-top: 20px; }
  .practice-card p { max-width: 520px; font-size: 13.5px; }
  .practice-footer { margin-top: 30px; align-items: stretch; flex-direction: column; }
  .practice-footer a { justify-content: space-between; width: 100%; }
}

/* Etapa 5 — Atendimento e contato */
.contact {
  position: relative;
  overflow: clip;
  isolation: isolate;
  background:
    radial-gradient(circle at 7% 90%, rgba(207,216,215,.34), transparent 25%),
    linear-gradient(120deg, var(--porcelain) 0%, var(--ivory) 100%);
  color: var(--ink);
}
.contact::before {
  content: "VC";
  position: absolute;
  right: -2vw;
  top: 2%;
  font-family: var(--serif);
  font-size: clamp(240px, 31vw, 520px);
  font-weight: 300;
  line-height: .8;
  letter-spacing: -.09em;
  color: rgba(91,103,107,.026);
  pointer-events: none;
  user-select: none;
}
.contact-inner {
  position: relative;
  z-index: 2;
  width: var(--content);
  margin: 0 auto;
  padding: clamp(94px, 9vw, 142px) 0 clamp(96px, 9vw, 138px);
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(390px, .72fr);
  align-items: start;
  gap: clamp(74px, 8vw, 132px);
}
.contact-copy { min-width: 0; padding-top: 14px; }
.contact-kicker { color: var(--sage); }
.contact h2 {
  margin: 0;
  max-width: 820px;
  font-family: var(--serif);
  font-size: clamp(52px, 5vw, 78px);
  font-weight: 300;
  line-height: 1.07;
  letter-spacing: .008em;
  color: var(--ink);
}
.contact h2 span { color: #8f806b; }
.contact-lead {
  margin: 29px 0 0;
  max-width: 680px;
  color: #5b5a55;
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.75;
}
.contact-ornament {
  margin-top: 29px;
  width: 210px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}
.contact-ornament span { height: 1px; background: rgba(169,157,141,.5); }
.contact-ornament i { width: 7px; height: 7px; background: var(--sage); transform: rotate(45deg); }
.contact-values {
  margin-top: clamp(48px, 5vw, 70px);
  border-top: 1px solid rgba(36,36,35,.14);
}
.contact-values article {
  min-width: 0;
  display: grid;
  grid-template-columns: 54px minmax(0,1fr);
  gap: 22px;
  padding: 25px 0 27px;
  border-bottom: 1px solid rgba(36,36,35,.14);
}
.contact-number {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(169,157,141,.55);
  border-radius: 50%;
  color: #8d7d69;
  font-family: var(--serif);
  font-size: 14px;
}
.contact-values h3 {
  margin: 0 0 9px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}
.contact-values p {
  margin: 0;
  max-width: 610px;
  color: #69665f;
  font-size: 14px;
  line-height: 1.7;
}
.contact-card {
  position: relative;
  overflow: hidden;
  min-height: 610px;
  padding: clamp(42px, 4.2vw, 62px) clamp(34px, 3.7vw, 56px) 42px;
  background: var(--graphite);
  color: var(--porcelain);
  border: 1px solid rgba(169,157,141,.24);
}
.contact-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 84% 17%, rgba(123,139,132,.22), transparent 27%),
    linear-gradient(145deg, transparent 0 65%, rgba(169,157,141,.08));
  pointer-events: none;
}
.contact-card::after {
  content: "";
  position: absolute;
  right: -110px;
  bottom: -110px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(207,216,215,.12);
  border-radius: 50%;
  pointer-events: none;
}
.contact-mark {
  position: absolute;
  z-index: 0;
  right: -80px;
  top: 5px;
  width: 310px;
  height: auto;
  opacity: .035;
  filter: grayscale(1) invert(1);
  pointer-events: none;
}
.contact-card > *:not(.contact-mark) { position: relative; z-index: 2; }
.contact-card-label {
  margin: 0 0 25px;
  color: #aab9b3;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.contact-card h3 {
  margin: 0;
  font-family: var(--serif);
  color: var(--porcelain);
  font-size: clamp(42px, 4vw, 64px);
  font-weight: 300;
  line-height: 1.05;
}
.contact-card-text {
  margin: 25px 0 0;
  max-width: 410px;
  color: rgba(251,250,247,.67);
  font-size: 15px;
  line-height: 1.72;
}
.contact-whatsapp {
  margin-top: 34px;
  min-height: 58px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border: 1px solid rgba(169,157,141,.54);
  color: #e4dacb;
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.contact-whatsapp:hover,
.contact-whatsapp:focus-visible {
  background: var(--porcelain);
  color: var(--graphite);
  border-color: var(--porcelain);
}
.contact-meta {
  margin-top: 38px;
  border-top: 1px solid rgba(207,216,215,.14);
}
.contact-meta > div {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  gap: 12px;
  align-items: start;
  padding: 18px 0;
  border-bottom: 1px solid rgba(207,216,215,.12);
}
.contact-meta > div > span { color: #b9ad9b; font-size: 17px; line-height: 1; }
.contact-meta p { margin: 0; min-width: 0; }
.contact-meta strong {
  display: block;
  color: #ddd3c5;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .1em;
  line-height: 1.4;
  text-transform: uppercase;
}
.contact-meta small {
  display: block;
  margin-top: 5px;
  color: rgba(251,250,247,.48);
  font-size: 9px;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}

@media (max-width: 1020px) {
  .contact-inner {
    grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr);
    gap: 54px;
  }
  .contact-card { min-height: 585px; }
}

@media (max-width: 820px) {
  .contact-inner {
    padding: 84px 0 94px;
    grid-template-columns: 1fr;
    gap: 54px;
  }
  .contact-copy { padding-top: 0; }
  .contact h2 { max-width: 720px; font-size: clamp(48px, 7.5vw, 65px); }
  .contact-values { max-width: 720px; }
  .contact-card { width: min(100%, 650px); min-height: 0; }
}

@media (max-width: 600px) {
  .contact-inner { padding: 74px 0 78px; gap: 40px; }
  .contact h2 { font-size: clamp(40px, 11vw, 49px); line-height: 1.08; }
  .contact-lead { margin-top: 22px; font-size: 15.5px; line-height: 1.7; }
  .contact-ornament { width: 180px; margin-top: 23px; }
  .contact-values { margin-top: 38px; }
  .contact-values article { grid-template-columns: 46px minmax(0,1fr); gap: 15px; padding: 22px 0 24px; }
  .contact-number { width: 38px; height: 38px; }
  .contact-values p { font-size: 13.5px; }
  .contact-card { padding: 38px 26px 30px; }
  .contact-card h3 { font-size: clamp(42px, 12vw, 54px); }
  .contact-whatsapp { margin-top: 30px; min-height: 58px; padding-inline: 17px; }
  .contact-meta { margin-top: 30px; }
}

/* =========================================================
   ETAPA 6 — RODAPÉ INSTITUCIONAL + CRÉDITO UNNICORA
   ========================================================= */
.site-footer {
  position: relative;
  overflow: hidden;
  color: var(--porcelain);
  background:
    radial-gradient(circle at 82% 26%, rgba(123,139,132,.12), transparent 24%),
    linear-gradient(180deg, #242423 0%, #1f1f1e 46%, #171716 100%);
  border-top: 1px solid rgba(169,157,141,.16);
}
.site-footer::before {
  content: "";
  position: absolute;
  width: 430px;
  height: 430px;
  right: -170px;
  top: -210px;
  border: 1px solid rgba(207,216,215,.07);
  border-radius: 50%;
  pointer-events: none;
}
.footer-inner {
  position: relative;
  z-index: 1;
  width: var(--content);
  margin: 0 auto;
  padding: clamp(68px, 6vw, 94px) 0 30px;
}
.footer-main {
  display: grid;
  grid-template-columns: minmax(320px, 1.4fr) minmax(150px, .48fr) minmax(250px, .72fr);
  gap: clamp(50px, 6vw, 105px);
  align-items: start;
}
.footer-brand {
  display: inline-flex;
  width: min(100%, 375px);
  text-decoration: none;
}
.footer-brand img {
  display: block;
  width: 100%;
  height: auto;
  filter: grayscale(1) brightness(0) invert(91%);
  opacity: .9;
}
.footer-brand-block > p {
  margin: 28px 0 0;
  max-width: 500px;
  color: rgba(251,250,247,.58);
  font-size: 14px;
  line-height: 1.75;
}
.footer-brand-block > .footer-registration {
  margin-top: 14px;
  color: rgba(251,250,247,.76);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}
.footer-label {
  margin: 3px 0 23px;
  color: #aab9b3;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .25em;
  line-height: 1.4;
  text-transform: uppercase;
}
.footer-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 11px;
}
.footer-nav a {
  position: relative;
  padding: 4px 0;
  color: rgba(251,250,247,.72);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .1em;
  line-height: 1.4;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .2s ease, transform .2s ease;
}
.footer-nav a::before {
  content: "";
  position: absolute;
  left: -13px;
  top: 50%;
  width: 5px;
  height: 5px;
  background: var(--sage);
  opacity: 0;
  transform: translateY(-50%) rotate(45deg);
  transition: opacity .2s ease;
}
.footer-nav a:hover,
.footer-nav a:focus-visible { color: var(--porcelain); transform: translateX(4px); }
.footer-nav a:hover::before,
.footer-nav a:focus-visible::before { opacity: 1; }
.footer-contact {
  display: grid;
  gap: 14px;
}
.footer-contact > p:not(.footer-label),
.footer-contact > a {
  margin: 0;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(207,216,215,.09);
  text-decoration: none;
}
.footer-contact strong {
  display: block;
  color: #ded7cc;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .1em;
  line-height: 1.45;
  text-transform: uppercase;
}
.footer-contact span {
  display: block;
  margin-top: 4px;
  color: rgba(251,250,247,.42);
  font-size: 9px;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}
.footer-contact > a:hover strong,
.footer-contact > a:focus-visible strong { color: var(--porcelain); }
.footer-rule {
  margin: clamp(58px, 6vw, 82px) 0 24px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 10px;
  align-items: center;
}
.footer-rule span { height: 1px; background: rgba(169,157,141,.18); }
.footer-rule i { width: 6px; height: 6px; background: var(--sage); transform: rotate(45deg); opacity: .65; }
.footer-bottom {
  min-height: 84px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: clamp(25px, 4vw, 56px);
  align-items: center;
}
.footer-copyright {
  margin: 0;
  color: rgba(251,250,247,.38);
  font-size: 9px;
  letter-spacing: .1em;
  line-height: 1.6;
  text-transform: uppercase;
}
.footer-copyright span { color: rgba(169,157,141,.75); }
.developer-credit {
  display: grid;
  grid-template-columns: auto auto;
  gap: 14px;
  align-items: center;
  text-decoration: none;
}
.developer-copy {
  color: rgba(251,250,247,.34);
  font-size: 8px;
  letter-spacing: .13em;
  line-height: 1.45;
  text-align: right;
  text-transform: uppercase;
}
.developer-lockup {
  min-width: 132px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.developer-lockup img {
  display: block;
  height: auto;
  filter: grayscale(1) brightness(0) invert(86%);
  opacity: .88;
  transition: opacity .2s ease;
}
.developer-symbol { width: 27px; max-height: 31px; object-fit: contain; }
.developer-wordmark { width: 96px; max-height: 27px; object-fit: contain; }
.developer-credit:hover .developer-lockup img,
.developer-credit:focus-visible .developer-lockup img { opacity: 1; }
.back-to-top {
  position: fixed;
  right: clamp(16px, 1.8vw, 28px);
  bottom: calc(env(safe-area-inset-bottom, 0px) + clamp(16px, 1.8vw, 28px));
  z-index: 90;
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0;
  border: 1px solid rgba(169,157,141,.58);
  border-radius: 50%;
  color: #eee7dc;
  background: rgba(23,23,22,.92);
  box-shadow: 0 12px 30px rgba(23,23,22,.18), 0 2px 8px rgba(23,23,22,.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease, border-color .2s ease, background .2s ease, color .2s ease;
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.back-to-top span { font-size: 18px; line-height: 1; }
.back-to-top small {
  margin-top: 1px;
  font-size: 6px;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
}
.back-to-top:hover,
.back-to-top:focus-visible {
  background: var(--porcelain);
  border-color: var(--porcelain);
  color: var(--graphite);
  box-shadow: 0 14px 34px rgba(23,23,22,.24), 0 3px 10px rgba(23,23,22,.15);
}
.back-to-top:focus-visible {
  outline: 2px solid var(--sage);
  outline-offset: 3px;
}

@media (max-width: 900px) {
  .footer-main {
    grid-template-columns: minmax(0, 1.35fr) minmax(145px, .55fr);
    gap: 48px 70px;
  }
  .footer-contact { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .footer-contact .footer-label { grid-column: 1 / -1; margin-bottom: 0; }
  .footer-bottom { grid-template-columns: 1fr auto; }
  .developer-credit { justify-self: end; }
}

@media (max-width: 600px) {
  .footer-inner { padding: 60px 0 24px; }
  .footer-main { grid-template-columns: 1fr; gap: 42px; }
  .footer-brand { width: min(100%, 310px); }
  .footer-brand-block > p { margin-top: 23px; font-size: 13.5px; }
  .footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
  .footer-nav .footer-label { grid-column: 1 / -1; }
  .footer-nav a { font-size: 10px; }
  .footer-contact { grid-column: auto; grid-template-columns: 1fr; gap: 14px; }
  .footer-contact .footer-label { grid-column: auto; }
  .footer-rule { margin: 48px 0 24px; }
  .footer-bottom {
    min-height: 0;
    grid-template-columns: 1fr auto;
    gap: 24px 16px;
    align-items: end;
  }
  .footer-copyright { align-self: center; }
  .developer-credit {
    grid-column: 1 / -1;
    grid-row: 1;
    justify-self: start;
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .developer-copy { text-align: left; }
  .developer-lockup { min-width: 0; }
  .developer-symbol { width: 24px; }
  .developer-wordmark { width: 92px; }
  .back-to-top {
    right: 14px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
    width: 48px;
    height: 48px;
  }
}

/* =========================================================
   ETAPA 7 — ACABAMENTO FINAL E ACESSIBILIDADE
   ========================================================= */
.eyebrow,
.section-kicker,
.contact-kicker { color: var(--slate); }

.cta-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.footer-meta {
  display: grid;
  gap: 9px;
  min-width: 0;
}
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.footer-legal a {
  color: rgba(251,250,247,.62);
  font-size: 9px;
  letter-spacing: .1em;
  line-height: 1.5;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .2s ease;
}
.footer-legal a:hover,
.footer-legal a:focus-visible { color: var(--porcelain); }
.footer-copyright { color: rgba(251,250,247,.58); }
.developer-copy { color: rgba(251,250,247,.58); }
.footer-contact span { color: rgba(251,250,247,.58); }

@media (max-width: 900px) {
  .footer-meta { align-self: center; }
}

@media (max-width: 600px) {
  .footer-meta { grid-column: 1 / -1; grid-row: 2; }
  .footer-copyright { align-self: auto; }
  .footer-legal { margin-top: 1px; }
}

/* =========================================================
   IDENTIDADE OFICIAL 10/08/2026 — ELEGÂNCIA DA DEFESA
   Referência cromática direta enviada pela cliente.
   ========================================================= */
:root {
  --ink: #381016;
  --graphite: #3B181F;
  --slate: #6B2835;
  --sage: #AD8654;
  --mist: #D8C7BD;
  --ivory: #E5D8D0;
  --porcelain: #EEE3DC;
  --taupe: #AD8654;
  --wine: #381016;
  --wine-deep: #2D0E14;
  --champagne: #AD8654;
  --warm-bg: #E5D8D0;
  --line: rgba(76, 11, 19, .14);
  --serif: "EB Garamond", Georgia, serif;
  --sans: "Lato", Arial, sans-serif;
}
html, body { background: var(--warm-bg); }
body { color: var(--ink); }
:focus-visible { outline-color: var(--champagne); }

.hero {
  background: var(--warm-bg);
}
.site-header {
  min-height: 124px;
}
.brand {
  width: min(100%, 500px);
}
.brand img {
  width: 100%;
  height: auto;
  filter: none;
}
.primary-nav {
  color: #381016;
}
.primary-nav > a:not(.nav-contact)::after { background: var(--champagne); }
.nav-contact {
  border-color: rgba(156,115,59,.55);
  color: #765430;
  background: rgba(238,225,217,.58);
}
.nav-contact:hover,.nav-contact:focus-visible {
  background: var(--wine);
  border-color: var(--wine);
  color: #f4e7dd;
}

.hero-stage {
  min-height: 570px;
  grid-template-columns: minmax(0, 49%) minmax(0, 51%);
  background:
    radial-gradient(circle at 18% 36%, rgba(179,137,87,.075), transparent 26%),
    linear-gradient(90deg, #E5D8D0 0%, #E5D8D0 45%, #E9D8CC 100%);
}
.hero-copy {
  width: min(88%, 650px);
  padding: 66px 0 64px;
}
.hero-monogram {
  width: 360px;
  left: -210px;
  top: 45px;
  opacity: .035;
  filter: none;
}
.eyebrow {
  color: #8E6640;
  margin-bottom: 25px;
}
.hero h1 {
  max-width: 610px;
  color: var(--wine);
  font-size: clamp(62px, 5.2vw, 84px);
  font-weight: 400;
  line-height: .96;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.hero h1 span { color: var(--champagne); }
.ornament span { background: rgba(179,137,87,.46); }
.ornament i { background: var(--champagne); }
.hero-lead {
  color: #5E514B;
  max-width: 480px;
  font-size: clamp(16px,1.15vw,18px);
}
.primary-cta {
  border-color: rgba(156,115,59,.55);
  color: #795333;
  background: rgba(238,225,217,.78);
}
.cta-icon {
  background: var(--wine);
  color: #D8B173;
}
.cta-arrow { color: var(--champagne); }
.primary-cta:hover,.primary-cta:focus-visible {
  border-color: var(--wine);
  color: var(--wine);
}

.hero-art {
  min-height: 570px;
  margin-left: -58px;
  background: #E4D3C8;
}
.justice-image {
  object-position: 42% 50%;
  filter: sepia(.12) saturate(.78) contrast(.99) brightness(1.04) hue-rotate(-7deg);
}
.hero-art::before {
  background:
    linear-gradient(90deg,
      rgba(238,225,217,1) 0%,
      rgba(238,225,217,.94) 7%,
      rgba(238,225,217,.72) 15%,
      rgba(238,225,217,.37) 24%,
      rgba(238,225,217,.10) 32%,
      rgba(238,225,217,0) 41%),
    linear-gradient(180deg, rgba(179,137,87,.05), transparent 40%);
}
.art-frame { border-color: rgba(179,137,87,.16); }

.pillars {
  background: var(--graphite);
  color: #F4E7DD;
}
.pillar { border-color: rgba(216,177,115,.22); }
.pillar:first-child { border-left-color: rgba(216,177,115,.22); }
.pillar-icon { color: #C89B5E; }
.pillar h2 { color: #D2AA72; }
.pillar p { color: rgba(244,231,221,.82); }
.hero-info { background: #E5D8D0; }
.hero-info > * + * { border-color: rgba(76,11,19,.12); }
.info-mark { color: #9C733B; }
.hero-info strong { color: #5A2A2E; }
.hero-info small { color: #8C7466; }

/* Sobre */
.about {
  background:
    radial-gradient(circle at 16% 22%, rgba(179,137,87,.08), transparent 24%),
    linear-gradient(112deg, #EEE3DC 0%, #E5D8D0 46%, #F5EAE2 100%);
  border-top-color: rgba(76,11,19,.07);
}
.about::before { color: rgba(76,11,19,.035); }
.section-kicker,.contact-kicker { color: #8E6640; }
.about h2,.contact h2 { color: var(--wine); font-weight: 400; }
.about h2 span,.contact h2 span { color: var(--champagne); }
.about-ornament span,.contact-ornament span { background: rgba(179,137,87,.46); }
.about-ornament i,.contact-ornament i { background: var(--champagne); }
.about-dark-panel { background: var(--graphite); }
.about-outline { border-color: rgba(179,137,87,.65); }
.about-visual figcaption { color: #684349; }
.about-visual figcaption span { color: var(--champagne); }
.about-body > p { color: #584C47; }
.about-facts { border-color: rgba(76,11,19,.15); }
.about-facts strong { color: #5A2A2E; }
.about-facts small { color: #8C7466; }

/* Atuação */
.practice {
  background: var(--graphite);
  color: #F4E7DD;
}
.practice::before {
  background:
    radial-gradient(circle at 10% 20%, rgba(179,137,87,.09), transparent 25%),
    radial-gradient(circle at 88% 78%, rgba(127,45,59,.18), transparent 27%);
}
.practice-kicker { color: #D4AB69; }
.practice h2 { color: #F3E5DB; font-weight: 400; }
.practice h2 span { color: #CFA66D; }
.practice-lead { color: rgba(244,231,221,.82); }
.practice-ornament span { background: rgba(216,177,115,.25); }
.practice-ornament i { background: #CFA66D; }
.practice-photo::after {
  background:
    linear-gradient(90deg, var(--graphite) 0%, rgba(59,24,31,.94) 5%, rgba(59,24,31,.55) 13%, rgba(59,24,31,0) 29%),
    linear-gradient(270deg, var(--graphite) 0%, rgba(59,24,31,.95) 5%, rgba(59,24,31,.52) 13%, rgba(59,24,31,0) 29%),
    linear-gradient(180deg, var(--graphite) 0%, rgba(59,24,31,.90) 5%, rgba(59,24,31,.45) 13%, rgba(59,24,31,0) 28%),
    linear-gradient(0deg, var(--graphite) 0%, rgba(59,24,31,.92) 5%, rgba(59,24,31,.48) 14%, rgba(59,24,31,0) 29%);
}
.practice-photo img { filter: sepia(.16) saturate(.72) contrast(1.02) brightness(.73) hue-rotate(-6deg); }
.practice-grid,.practice-card { border-color: rgba(216,177,115,.16); }
.practice-number { border-color: rgba(216,177,115,.5); color: #D2AA72; }
.practice-card h3 { color: #E5C894; }
.practice-card p { color: rgba(244,231,221,.72); }
.practice-footer p { color: rgba(244,231,221,.62); }
.practice-footer p strong { color: #E5C894; }
.practice-footer p span { color: #CFA66D; }
.practice-footer a { border-color: rgba(216,177,115,.50); color: #E7D0A8; }
.practice-footer a:hover,.practice-footer a:focus-visible { background: #E5D8D0; color: var(--wine); border-color: #E5D8D0; }

/* Contato */
.contact {
  background:
    radial-gradient(circle at 7% 90%, rgba(179,137,87,.10), transparent 25%),
    linear-gradient(120deg, #EEE3DC 0%, #E5D8D0 100%);
}
.contact::before { color: rgba(76,11,19,.028); }
.contact-lead { color: #5D504A; }
.contact-values { border-color: rgba(76,11,19,.14); }
.contact-values article { border-color: rgba(76,11,19,.14); }
.contact-number { border-color: rgba(179,137,87,.55); color: #8E633C; }
.contact-values strong { color: #5A2A2E; }
.contact-values small { color: #8C7466; }
.contact-card {
  background: linear-gradient(150deg, #381016 0%, #3B181F 62%, #2D0E14 100%);
  border-color: rgba(216,177,115,.24);
}
.contact-card::before { color: rgba(216,177,115,.05); }
.contact-card h3 { color: #F3E5DB; }
.contact-card p { color: rgba(244,231,221,.75); }
.contact-whatsapp { background: #E5D8D0; color: var(--wine); border-color: #E5D8D0; }
.contact-whatsapp:hover,.contact-whatsapp:focus-visible { background: #D2AA72; border-color: #D2AA72; color: #381016; }
.contact-meta { border-color: rgba(216,177,115,.18); }
.contact-meta strong { color: #E5C894; }
.contact-meta small { color: rgba(244,231,221,.58); }

/* Rodapé */
.site-footer {
  background:
    radial-gradient(circle at 82% 26%, rgba(179,137,87,.10), transparent 24%),
    linear-gradient(180deg, #3B181F 0%, #35151C 48%, #291016 100%);
  border-top-color: rgba(216,177,115,.16);
}
.site-footer::before { border-color: rgba(216,177,115,.09); }
.footer-brand {
  width: min(100%, 410px);
  background: rgba(238,225,217,.96);
  padding: 13px 16px;
  border: 1px solid rgba(216,177,115,.22);
}
.footer-brand img { filter: none; opacity: 1; }
.footer-label { color: #D1A85E; }
.footer-brand-block > p { color: rgba(244,231,221,.68); }
.footer-brand-block > .footer-registration { color: rgba(231,208,168,.82); }
.footer-nav a { color: rgba(244,231,221,.78); }
.footer-nav a::before { background: #CFA66D; }
.footer-contact strong { color: #E7D0A8; }
.footer-contact span { color: rgba(244,231,221,.58); }
.footer-rule span { background: rgba(216,177,115,.20); }
.footer-rule i { background: #CFA66D; }
.footer-legal a { color: rgba(244,231,221,.70); }
.footer-copyright,.developer-copy { color: rgba(244,231,221,.60); }
.developer-lockup img { filter: grayscale(1) brightness(0) invert(88%); }
.back-to-top {
  border-color: rgba(216,177,115,.62);
  color: #F0DDBD;
  background: rgba(59,24,31,.94);
  box-shadow: 0 12px 30px rgba(50,19,31,.20), 0 2px 8px rgba(50,19,31,.14);
}
.back-to-top:hover,.back-to-top:focus-visible { background: #E5D8D0; border-color: #E5D8D0; color: var(--wine); }

/* Menu móvel no mesmo campo marfim da referência */
@media (max-width: 900px) {
  .primary-nav { background: rgba(238,225,217,.99); box-shadow: 0 24px 60px rgba(76,11,19,.12); }
  .menu-toggle { background: rgba(238,225,217,.92); border-color: rgba(76,11,19,.18); }
  .hero-stage { background: #E5D8D0; }
  .hero-art::before { background: linear-gradient(180deg, rgba(238,225,217,.78) 0%, rgba(238,225,217,0) 22%); }
}
@media (max-width: 600px) {
  .site-header { min-height: 82px; }
  .brand { width: min(74vw, 300px); }
  .hero-copy { padding-top: 48px; }
  .hero h1 { font-size: clamp(44px, 12vw, 56px); line-height: .98; }
  .hero h1 br { display: block; }
  .hero h1 span { display: inline; margin-top: 0; }
  .hero-art { min-height: 390px; }
  .pillars { background: var(--graphite); }
  .pillar { border-color: rgba(216,177,115,.18); }
  .footer-brand { width: min(100%, 325px); }
}

/* Correção responsiva da direção aprovada após os overrides cromáticos */
@media (max-width: 900px) {
  .hero-stage {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .hero-copy {
    width: var(--content);
    margin: 0 auto;
    padding: 58px 0 50px;
  }
  .hero-art {
    min-height: 500px;
    margin-left: 0;
  }
  .hero h1 { max-width: 720px; }
}
@media (max-width: 600px) {
  .hero-copy { padding: 42px 0 38px; }
  .hero h1 {
    max-width: 100%;
    font-size: clamp(43px, 12.8vw, 55px);
    line-height: .96;
  }
  .hero h1 br { display: block; }
  .hero-art {
    min-height: 390px;
    margin-left: 0;
  }
  .justice-image { object-position: 42% 50%; }
}

/* =========================================================
   HERO | INTEGRACAO DA IMAGEM SEM BORDAS VISIVEIS
   A escultura se dissolve no campo marfim, sem moldura ou
   recorte retangular aparente. Mantem a paleta aprovada.
   ========================================================= */
.hero-art {
  background: #E5D8D0;
}
.hero-art .justice-image {
  inset: -2px;
  width: calc(100% + 4px);
  height: calc(100% + 4px);
}
.hero-art::before {
  background:
    linear-gradient(90deg,
      #E5D8D0 0%,
      rgba(229,216,208,.98) 6%,
      rgba(229,216,208,.84) 14%,
      rgba(229,216,208,.50) 24%,
      rgba(229,216,208,.16) 34%,
      rgba(229,216,208,0) 44%),
    linear-gradient(180deg,
      #E5D8D0 0%,
      rgba(229,216,208,.92) 2%,
      rgba(229,216,208,.58) 7%,
      rgba(229,216,208,.18) 12%,
      rgba(229,216,208,0) 18%);
}
.art-frame {
  display: none;
}

@media (max-width: 900px) {
  .hero-art::before {
    background:
      linear-gradient(180deg,
        #E5D8D0 0%,
        rgba(229,216,208,.88) 4%,
        rgba(229,216,208,.34) 12%,
        rgba(229,216,208,0) 22%);
  }
}

/* Hero sem bordas: a imagem já possui transparência feathered nas bordas. */
.hero-art::before {
  background: linear-gradient(90deg,
    #E5D8D0 0%,
    rgba(229,216,208,.62) 10%,
    rgba(229,216,208,.18) 22%,
    rgba(229,216,208,0) 35%);
}
@media (max-width: 900px) {
  .hero-art::before {
    background: linear-gradient(180deg,
      #E5D8D0 0%,
      rgba(229,216,208,.40) 9%,
      rgba(229,216,208,0) 20%);
  }
}

/* =========================================================
   AJUSTE OFICIAL — RODAPE CLARO COM FAIXA VINHO
   Baseline: Elegancia da Defesa / HERO SEM BORDAS
   ========================================================= */
.site-footer {
  color: #4C0B13;
  background:
    radial-gradient(circle at 84% 24%, rgba(76,11,19,.045), transparent 25%),
    linear-gradient(to bottom, #3B181F 0 14px, #E7D9D1 14px 100%);
  border-top: 0;
}
.site-footer::before {
  border-color: rgba(76,11,19,.075);
}
.footer-inner {
  padding-top: clamp(78px, 6.8vw, 104px);
}
.footer-brand {
  width: min(100%, 410px);
  padding: 0;
  border: 0;
  background: transparent;
}
.footer-brand img {
  filter: none;
  opacity: 1;
}
.footer-brand-block > p {
  color: #5D504A;
}
.footer-brand-block > .footer-registration {
  color: #74473F;
}
.footer-label {
  color: #8B623B;
}
.footer-nav a {
  color: #4C0B13;
}
.footer-nav a::before {
  background: #B38957;
}
.footer-nav a:hover,
.footer-nav a:focus-visible {
  color: #9A6C3F;
}
.footer-contact > p:not(.footer-label),
.footer-contact > a {
  border-bottom-color: rgba(76,11,19,.14);
}
.footer-contact strong {
  color: #4C0B13;
}
.footer-contact span {
  color: #7A6860;
}
.footer-contact > a:hover strong,
.footer-contact > a:focus-visible strong {
  color: #9A6C3F;
}
.footer-rule span {
  background: rgba(76,11,19,.18);
}
.footer-rule i {
  background: #B38957;
  opacity: .82;
}
.footer-copyright,
.developer-copy {
  color: #6C5951;
}
.footer-copyright span {
  color: #9B7047;
}
.footer-legal a {
  color: #5A2A2E;
}
.footer-legal a:hover,
.footer-legal a:focus-visible {
  color: #9A6C3F;
}
.developer-lockup img {
  filter: grayscale(1) brightness(0);
  opacity: .56;
}
.developer-credit:hover .developer-lockup img,
.developer-credit:focus-visible .developer-lockup img {
  opacity: .78;
}

@media (max-width: 600px) {
  .site-footer {
    background:
      radial-gradient(circle at 92% 16%, rgba(76,11,19,.04), transparent 24%),
      linear-gradient(to bottom, #3B181F 0 11px, #E7D9D1 11px 100%);
  }
  .footer-inner { padding-top: 66px; }
}

/* CONTRASTE FINAL DO RODAPE CLARO */
.site-footer {
  background:
    radial-gradient(circle at 84% 24%, rgba(76,11,19,.035), transparent 25%),
    linear-gradient(to bottom, #3B181F 0 14px, #EEE1D9 14px, #E5D8D0 58%, #E3D5CD 100%);
}
.footer-label { color: #775033; }
.footer-nav a:hover,
.footer-nav a:focus-visible { color: #775033; }
.footer-contact span { color: #6F5C53; }
.footer-contact > a:hover strong,
.footer-contact > a:focus-visible strong { color: #775033; }
.footer-copyright,
.developer-copy { color: #6B584F; }
.footer-legal a:hover,
.footer-legal a:focus-visible { color: #775033; }

@media (max-width: 600px) {
  .site-footer {
    background:
      radial-gradient(circle at 92% 16%, rgba(76,11,19,.03), transparent 24%),
      linear-gradient(to bottom, #3B181F 0 11px, #EEE1D9 11px, #E5D8D0 62%, #E3D5CD 100%);
  }
}


/* =========================================================
   MENU FIXO V2 — 10/08/2026
   Mantém a navegação visível durante toda a rolagem.
   ========================================================= */
html {
  scroll-padding-top: 124px;
}
.site-header {
  position: fixed !important;
  inset: 0 0 auto 0;
  width: 100%;
  z-index: 2000;
  background: rgba(229, 216, 208, .94);
  border-bottom: 1px solid rgba(56, 16, 22, .10);
  box-shadow: 0 8px 30px rgba(56, 16, 22, .055);
  -webkit-backdrop-filter: blur(14px) saturate(115%);
  backdrop-filter: blur(14px) saturate(115%);
}
.hero {
  padding-top: 124px;
  z-index: 100;
}
#inicio, #sobre, #atuacao, #principios, #contato {
  scroll-margin-top: 124px;
}
@media (max-width: 900px) {
  html { scroll-padding-top: 88px; }
  .site-header { min-height: 88px; }
  .brand { width: min(68vw, 330px); }
  .hero { padding-top: 88px; }
  #inicio, #sobre, #atuacao, #principios, #contato { scroll-margin-top: 88px; }
  .primary-nav { top: 100%; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 82px; }
  .site-header { min-height: 82px; }
  .brand { width: min(74vw, 300px); }
  .hero { padding-top: 82px; }
  #inicio, #sobre, #atuacao, #principios, #contato { scroll-margin-top: 82px; }
}

/* Ajuste V3 — fotografia real da Dra. Vanessa na seção Atuação */
.practice-photo {
  right: -5vw;
  top: 24px;
  width: clamp(430px, 42vw, 650px);
  aspect-ratio: 792 / 807;
  opacity: .96;
  -webkit-mask-image: radial-gradient(ellipse 78% 80% at 52% 48%, #000 0%, #000 54%, rgba(0,0,0,.98) 63%, rgba(0,0,0,.78) 76%, rgba(0,0,0,.34) 90%, transparent 100%);
  mask-image: radial-gradient(ellipse 78% 80% at 52% 48%, #000 0%, #000 54%, rgba(0,0,0,.98) 63%, rgba(0,0,0,.78) 76%, rgba(0,0,0,.34) 90%, transparent 100%);
}
.practice-photo::before {
  inset: -10%;
  background: radial-gradient(circle at 54% 48%, rgba(207,166,109,.12), rgba(76,11,19,.08) 45%, transparent 74%);
  filter: blur(18px);
}
.practice-photo::after {
  inset: -4%;
  background:
    linear-gradient(90deg, #3B181F 0%, rgba(59,24,31,.86) 6%, rgba(59,24,31,.42) 15%, rgba(59,24,31,0) 31%),
    linear-gradient(270deg, #3B181F 0%, rgba(59,24,31,.86) 6%, rgba(59,24,31,.40) 15%, rgba(59,24,31,0) 31%),
    linear-gradient(180deg, #3B181F 0%, rgba(59,24,31,.78) 6%, rgba(59,24,31,.32) 16%, rgba(59,24,31,0) 34%),
    linear-gradient(0deg, #3B181F 0%, rgba(59,24,31,.88) 6%, rgba(59,24,31,.42) 16%, rgba(59,24,31,0) 34%),
    linear-gradient(rgba(59,24,31,.10), rgba(59,24,31,.16));
}
.practice-photo img {
  object-fit: cover;
  object-position: 50% 48%;
  transform: scale(1.035);
  opacity: .94;
  filter: sepia(.12) saturate(.78) contrast(1.04) brightness(.72) hue-rotate(-5deg);
}

@media (max-width: 1020px) {
  .practice-photo {
    right: -9%;
    top: 60px;
    width: clamp(350px, 45vw, 470px);
  }
}

@media (max-width: 700px) {
  .practice-photo {
    position: relative;
    top: auto;
    right: auto;
    width: 112%;
    aspect-ratio: 16 / 11;
    margin: 30px -6% -4px;
    opacity: .95;
    -webkit-mask-image: radial-gradient(ellipse 82% 78% at 50% 50%, #000 0%, #000 55%, rgba(0,0,0,.94) 66%, rgba(0,0,0,.58) 80%, transparent 100%);
    mask-image: radial-gradient(ellipse 82% 78% at 50% 50%, #000 0%, #000 55%, rgba(0,0,0,.94) 66%, rgba(0,0,0,.58) 80%, transparent 100%);
  }
  .practice-photo::after {
    inset: -3%;
    background:
      linear-gradient(90deg, #3B181F 0%, rgba(59,24,31,.72) 7%, rgba(59,24,31,.28) 17%, transparent 34%),
      linear-gradient(270deg, #3B181F 0%, rgba(59,24,31,.72) 7%, rgba(59,24,31,.28) 17%, transparent 34%),
      linear-gradient(180deg, #3B181F 0%, rgba(59,24,31,.70) 7%, rgba(59,24,31,.24) 18%, transparent 36%),
      linear-gradient(0deg, #3B181F 0%, rgba(59,24,31,.82) 7%, rgba(59,24,31,.34) 18%, transparent 36%);
  }
  .practice-photo img {
    object-position: 50% 36%;
    transform: scale(1.03);
    filter: sepia(.10) saturate(.80) contrast(1.03) brightness(.74) hue-rotate(-5deg);
  }
}

/* Ajuste V4 — integração total da fotografia da seção Atuação, sem bordas retangulares */
.practice-photo {
  -webkit-mask-image: none;
  mask-image: none;
  overflow: visible;
}
.practice-photo::after {
  inset: -7%;
  background:
    radial-gradient(ellipse 72% 72% at 54% 48%, transparent 48%, rgba(59,24,31,.10) 62%, rgba(59,24,31,.44) 78%, #3B181F 100%),
    linear-gradient(90deg, #3B181F 0%, rgba(59,24,31,.72) 7%, rgba(59,24,31,.18) 20%, transparent 36%),
    linear-gradient(270deg, #3B181F 0%, rgba(59,24,31,.72) 7%, rgba(59,24,31,.18) 20%, transparent 36%),
    linear-gradient(180deg, #3B181F 0%, rgba(59,24,31,.66) 7%, rgba(59,24,31,.14) 21%, transparent 38%),
    linear-gradient(0deg, #3B181F 0%, rgba(59,24,31,.78) 8%, rgba(59,24,31,.22) 22%, transparent 40%);
}
.practice-photo img {
  transform: scale(1.075);
}
@media (max-width: 700px) {
  .practice-photo {
    -webkit-mask-image: none;
    mask-image: none;
  }
  .practice-photo::after {
    inset: -8%;
    background:
      radial-gradient(ellipse 76% 70% at 50% 43%, transparent 45%, rgba(59,24,31,.12) 61%, rgba(59,24,31,.52) 80%, #3B181F 100%),
      linear-gradient(90deg, #3B181F 0%, rgba(59,24,31,.70) 8%, rgba(59,24,31,.18) 23%, transparent 42%),
      linear-gradient(270deg, #3B181F 0%, rgba(59,24,31,.70) 8%, rgba(59,24,31,.18) 23%, transparent 42%),
      linear-gradient(180deg, #3B181F 0%, rgba(59,24,31,.66) 8%, rgba(59,24,31,.16) 24%, transparent 44%),
      linear-gradient(0deg, #3B181F 0%, rgba(59,24,31,.78) 9%, rgba(59,24,31,.22) 25%, transparent 46%);
  }
  .practice-photo img { transform: scale(1.075); }
}

/* Ajuste V5 — moldura editorial integrada na seção Atuação */
.practice-showcase {
  position: relative;
  z-index: 1;
  min-height: clamp(430px, 34vw, 500px);
}

.practice-showcase::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: -58px;
  left: calc((100% - 96vw) / 2);
  right: calc((100% - 96vw) / 2);
  bottom: -176px;
  border: 1px solid rgba(216,177,115,.36);
  background:
    linear-gradient(135deg, rgba(216,177,115,.025), transparent 28%),
    linear-gradient(315deg, rgba(45,14,20,.11), transparent 34%);
  box-shadow:
    inset 0 0 0 1px rgba(229,216,208,.025),
    0 20px 60px rgba(45,14,20,.12);
  pointer-events: none;
}

.practice-showcase::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: -180px;
  width: 8px;
  height: 8px;
  background: #CFA66D;
  border: 2px solid var(--graphite);
  transform: translateX(-50%) rotate(45deg);
  pointer-events: none;
}

.practice-showcase > .practice-intro,
.practice-showcase > .practice-photo {
  z-index: 2;
}

.practice-grid {
  z-index: 3;
  border-top: 0;
}

.practice-number {
  position: relative;
  z-index: 4;
  background: var(--graphite);
}

@media (max-width: 1020px) {
  .practice-showcase {
    min-height: clamp(440px, 50vw, 520px);
  }
  .practice-showcase::before {
    top: -44px;
    left: calc((100% - 94vw) / 2);
    right: calc((100% - 94vw) / 2);
    bottom: -146px;
  }
  .practice-showcase::after {
    bottom: -150px;
  }
}

@media (max-width: 700px) {
  .practice-showcase {
    min-height: 0;
  }
  .practice-showcase::before {
    top: -26px;
    left: -12px;
    right: -12px;
    bottom: -96px;
    border-color: rgba(216,177,115,.32);
    background:
      linear-gradient(135deg, rgba(216,177,115,.022), transparent 34%),
      linear-gradient(315deg, rgba(45,14,20,.09), transparent 38%);
    box-shadow: inset 0 0 0 1px rgba(229,216,208,.02);
  }
  .practice-showcase::after {
    bottom: -100px;
    width: 7px;
    height: 7px;
  }
  .practice-grid {
    margin-top: 48px;
  }
}

/* =========================================================
   AJUSTE V6 — MOLDURA EDITORIAL DA ATUAÇÃO
   Repete a linguagem visual da seção Sobre: painel profundo
   deslocado + contorno champagne fino, sem englobar os cards.
   ========================================================= */
.practice-showcase {
  min-height: clamp(430px, 34vw, 500px);
}

/* Remove a moldura perimetral grande da V5. */
.practice-showcase::before,
.practice-showcase::after {
  content: none !important;
  display: none !important;
}

/* A faixa 01–04 volta a ser um bloco independente. */
.practice-grid {
  border-top: 1px solid rgba(216,177,115,.16);
}

/* Moldura localizada apenas na fotografia, no mesmo vocabulário do Sobre. */
.practice-photo {
  right: -4.2vw;
  top: 22px;
  width: clamp(470px, 41.5vw, 640px);
  aspect-ratio: 792 / 807;
  overflow: visible;
  opacity: 1;
  isolation: isolate;
}

/* Painel vinho/ameixa deslocado atrás da imagem. */
.practice-photo::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: -46px;
  top: 62px;
  bottom: -34px;
  width: 46%;
  background: linear-gradient(180deg, rgba(45,14,20,.98), rgba(56,16,22,.96));
  box-shadow: 0 24px 54px rgba(45,14,20,.24);
  filter: none;
  pointer-events: none;
}

/* Contorno champagne deslocado, equivalente ao about-outline. */
.practice-photo::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: -20px;
  right: -22px;
  bottom: 24px;
  left: 30px;
  border: 1px solid rgba(207,166,109,.62);
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
  pointer-events: none;
}

.practice-photo img {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 4px;
  opacity: 1;
  transform: none;
  filter: sepia(.10) saturate(.80) contrast(1.03) brightness(.76) hue-rotate(-5deg);
  box-shadow: 0 18px 46px rgba(45,14,20,.18);
}

@media (max-width: 1020px) {
  .practice-photo {
    right: -5%;
    top: 54px;
    width: clamp(350px, 43vw, 470px);
  }
  .practice-photo::before {
    left: -34px;
    top: 52px;
    bottom: -28px;
  }
  .practice-photo::after {
    top: -16px;
    right: -18px;
    bottom: 20px;
    left: 24px;
  }
}

@media (max-width: 700px) {
  .practice-photo {
    position: relative;
    right: auto;
    top: auto;
    width: min(92%, 500px);
    aspect-ratio: 792 / 807;
    margin: 42px auto 14px;
  }
  .practice-photo::before {
    left: -18px;
    top: 46px;
    bottom: -22px;
    width: 42%;
  }
  .practice-photo::after {
    top: -12px;
    right: -14px;
    bottom: 18px;
    left: 18px;
    border-radius: 5px;
  }
  .practice-photo img {
    object-position: 50% 48%;
    border-radius: 3px;
  }
  .practice-grid {
    margin-top: 48px;
  }
}

@media (max-width: 390px) {
  .practice-photo {
    width: 90%;
  }
  .practice-photo::before {
    left: -12px;
    top: 38px;
    bottom: -18px;
  }
  .practice-photo::after {
    top: -10px;
    right: -10px;
    bottom: 14px;
    left: 14px;
  }
}

/* Refinamento V6.1 — moldura no mesmo desenho da seção Sobre */
.practice-showcase {
  min-height: clamp(570px, 42vw, 640px);
}
.practice-photo {
  right: -1.6vw;
  top: 26px;
  width: clamp(455px, 39vw, 590px);
  aspect-ratio: 792 / 807;
}
.practice-photo::before {
  left: -48px;
  top: 74px;
  bottom: 40px;
  width: 46%;
  background: var(--wine-deep);
  box-shadow: 0 22px 54px rgba(45,14,20,.22);
}
.practice-photo::after {
  top: -1px;
  right: -18px;
  bottom: 38px;
  left: 34px;
  border: 1px solid rgba(179,137,87,.65);
  border-radius: 224px 224px 8px 8px;
}
.practice-photo img {
  border-radius: 220px 220px 6px 6px;
  object-position: 50% 47%;
  filter: sepia(.08) saturate(.84) contrast(1.02) brightness(.80) hue-rotate(-5deg);
  box-shadow: 0 18px 46px rgba(45,14,20,.16);
}
.practice-grid {
  margin-top: 30px;
}

@media (max-width: 1020px) {
  .practice-showcase {
    min-height: clamp(505px, 51vw, 555px);
  }
  .practice-photo {
    right: -3%;
    top: 48px;
    width: clamp(350px, 42vw, 450px);
  }
  .practice-photo::before {
    left: -32px;
    top: 62px;
    bottom: 34px;
  }
  .practice-photo::after {
    top: 0;
    right: -14px;
    bottom: 30px;
    left: 26px;
    border-radius: 180px 180px 7px 7px;
  }
  .practice-photo img {
    border-radius: 176px 176px 5px 5px;
  }
  .practice-grid { margin-top: 26px; }
}

@media (max-width: 700px) {
  .practice-showcase { min-height: 0; }
  .practice-photo {
    width: min(88%, 440px);
    margin: 46px auto 20px;
  }
  .practice-photo::before {
    left: -22px;
    top: 58px;
    bottom: 34px;
    width: 45%;
  }
  .practice-photo::after {
    top: 0;
    right: -12px;
    bottom: 28px;
    left: 22px;
    border-radius: 164px 164px 6px 6px;
  }
  .practice-photo img {
    border-radius: 160px 160px 5px 5px;
    object-position: 50% 46%;
  }
  .practice-grid { margin-top: 48px; }
}

@media (max-width: 390px) {
  .practice-photo { width: 90%; }
  .practice-photo::before { left: -14px; }
  .practice-photo::after {
    right: -9px;
    left: 18px;
  }
}

/* =========================================================
   V7 — BOTAO TOPO ELEGANTE
   Refinamento visual apenas do controle flutuante.
   Mantem a identidade vinho + champagne + marfim.
   ========================================================= */
.back-to-top {
  width: 46px;
  height: 58px;
  border-radius: 999px;
  border: 1px solid rgba(173,134,84,.62);
  color: var(--wine);
  background:
    linear-gradient(180deg, rgba(248,240,234,.96) 0%, rgba(229,216,208,.92) 100%);
  box-shadow:
    0 14px 32px rgba(56,16,22,.11),
    0 3px 9px rgba(56,16,22,.07),
    inset 0 0 0 1px rgba(255,255,255,.36);
  backdrop-filter: blur(14px) saturate(115%);
  -webkit-backdrop-filter: blur(14px) saturate(115%);
  gap: 3px;
  overflow: hidden;
  transition:
    opacity .22s ease,
    visibility .22s ease,
    transform .24s ease,
    border-color .22s ease,
    background .22s ease,
    color .22s ease,
    box-shadow .22s ease;
}

.back-to-top::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px solid rgba(173,134,84,.16);
  border-radius: inherit;
  pointer-events: none;
}

.back-to-top::after {
  content: "";
  position: absolute;
  top: 0;
  left: 9px;
  right: 9px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent);
  pointer-events: none;
}

.back-to-top.is-visible {
  transform: translateY(0);
}

.back-to-top span {
  position: relative;
  z-index: 1;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 17px;
  font-weight: 400;
  line-height: .85;
  color: currentColor;
  transform: translateY(0);
  transition: transform .22s ease;
}

.back-to-top small {
  position: relative;
  z-index: 1;
  margin-top: 0;
  font-family: Lato, Arial, sans-serif;
  font-size: 6px;
  font-weight: 500;
  letter-spacing: .17em;
  line-height: 1;
  color: currentColor;
  opacity: .82;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  color: #F4EEE6;
  background: linear-gradient(180deg, rgba(59,24,31,.97), rgba(45,14,20,.98));
  border-color: rgba(173,134,84,.88);
  box-shadow:
    0 16px 34px rgba(56,16,22,.18),
    0 4px 10px rgba(56,16,22,.10),
    inset 0 0 0 1px rgba(216,177,115,.08);
  transform: translateY(-2px);
}

.back-to-top:hover span,
.back-to-top:focus-visible span {
  transform: translateY(-2px);
}

.back-to-top:focus-visible {
  outline: 1px solid rgba(173,134,84,.92);
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .back-to-top {
    right: 14px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
    width: 44px;
    height: 54px;
  }
  .back-to-top span { font-size: 16px; }
  .back-to-top small { font-size: 5.7px; }
}

/* =========================================================
   V8 — TIPOGRAFIA / PRIMEIRA RODADA MODERADA
   Ajuste incremental de legibilidade: +1 px principalmente
   nos textos pequenos. H1/H2 e corpos editoriais principais
   permanecem inalterados.
   ========================================================= */
.primary-nav { font-size: 13px; }

.pillar h2 {
  font-size: 14px;
  font-weight: 500;
}
.pillar p { font-size: 13px; }

.hero-info strong { font-size: 12px; }
.hero-info small { font-size: 11px; }

.about-visual figcaption { font-size: 11px; }
.about-facts strong { font-size: 12px; }
.about-facts small { font-size: 11px; }

.practice-card h3 { font-size: 14px; }
.practice-card p { font-size: 15px; }
.practice-footer p,
.practice-footer a { font-size: 12px; }

.contact-values h3 { font-size: 13px; }
.contact-values p { font-size: 15px; }
.contact-card-text { font-size: 16px; }
.contact-whatsapp { font-size: 12px; }
.contact-meta strong { font-size: 12px; }
.contact-meta small { font-size: 10px; }

.footer-brand-block > p { font-size: 15px; }
.footer-brand-block > .footer-registration { font-size: 11px; }
.footer-label { font-size: 10px; }
.footer-nav a { font-size: 12px; }
.footer-contact strong { font-size: 11px; }
.footer-contact span { font-size: 10px; }
.footer-copyright { font-size: 10px; }
.footer-legal a { font-size: 10px; }
.developer-copy { font-size: 9px; }
.back-to-top small { font-size: 7px; }

@media (max-width: 1180px) {
  .primary-nav { font-size: 12px; }
}

@media (max-width: 600px) {
  .primary-nav { font-size: 12px; }

  .pillar h2 { font-size: 12.5px; }
  .pillar p { font-size: 12px; }
  .hero-info strong { font-size: 11.5px; }
  .hero-info small { font-size: 10.5px; }

  .about-visual figcaption { font-size: 10px; }
  .about-facts strong { font-size: 11.5px; }
  .about-facts small { font-size: 10.5px; }

  .practice-card h3 { font-size: 13.5px; }
  .practice-card p { font-size: 14.5px; }
  .practice-footer p,
  .practice-footer a { font-size: 11.5px; }

  .contact-values h3 { font-size: 12.5px; }
  .contact-values p { font-size: 14.5px; }
  .contact-card-text { font-size: 15.5px; }
  .contact-whatsapp { font-size: 11.5px; }
  .contact-meta strong { font-size: 11.5px; }
  .contact-meta small { font-size: 9.5px; }

  .footer-brand-block > p { font-size: 14.5px; }
  .footer-brand-block > .footer-registration { font-size: 10.5px; }
  .footer-label { font-size: 9.5px; }
  .footer-nav a { font-size: 11px; }
  .footer-contact strong { font-size: 10.5px; }
  .footer-contact span { font-size: 9.5px; }
  .footer-copyright { font-size: 9.5px; }
  .footer-legal a { font-size: 9.5px; }
  .developer-copy { font-size: 8.5px; }
  .back-to-top small { font-size: 6.5px; }
}

@media (max-width: 370px) {
  .pillar p { font-size: 11.5px; }
  .practice-card p { font-size: 14px; }
  .contact-values p { font-size: 14px; }
}

/* =========================================================
   V9 — CREDITO UNNICORA COMPACTO + SCROLL TOPO MAIS SUAVE
   Ajuste pontual solicitado: credito do desenvolvedor menor,
   sem caixa/borda, e retorno ao topo mais suave no desktop.
   ========================================================= */
@media (min-width: 901px) {
  .developer-credit {
    width: 280px;
    max-width: 280px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    justify-self: end;
  }

  .developer-copy {
    flex: 0 1 138px;
    max-width: 138px;
    font-size: 7.5px;
    letter-spacing: .105em;
    line-height: 1.42;
    text-align: right;
  }

  .developer-lockup {
    min-width: 0;
    flex: 0 0 auto;
    gap: 6px;
  }

  .developer-symbol {
    width: 21px;
    max-height: 24px;
  }

  .developer-wordmark {
    width: 84px;
    max-height: 21px;
  }
}

@media (max-width: 900px) and (min-width: 601px) {
  .developer-credit {
    width: 265px;
    max-width: 265px;
    gap: 9px;
  }
  .developer-copy {
    font-size: 8px;
    letter-spacing: .10em;
  }
  .developer-symbol { width: 21px; }
  .developer-wordmark { width: 84px; }
}

@media (max-width: 600px) {
  .developer-credit {
    width: min(100%, 248px);
    max-width: 248px;
  }
  .developer-copy {
    font-size: 8px;
    letter-spacing: .095em;
  }
  .developer-symbol { width: 21px; }
  .developer-wordmark { width: 82px; }
}


/* =========================================================
   V10 — AUDITORIA MOBILE MULTIPLATAFORMA
   iPhone / Safari, Android / Chrome e navegadores modernos.
   Safe areas, recortes de tela, viewport dinamico, toque,
   menu mobile e paisagem em aparelhos de toque.
   ========================================================= */
:root {
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-bottom-max: env(safe-area-max-inset-bottom, env(safe-area-inset-bottom, 0px));
  --header-bar-h: 124px;
  color-scheme: light;
}

html {
  scroll-padding-top: calc(var(--header-bar-h) + var(--safe-top) + 10px);
}

body {
  overflow-x: hidden;
  overscroll-behavior-x: none;
}

.site-shell {
  overflow-x: hidden;
  overflow-x: clip;
}

.hero {
  min-height: 100vh;
  min-height: 100svh;
  padding-top: calc(var(--header-bar-h) + var(--safe-top));
}

.site-header {
  min-height: calc(var(--header-bar-h) + var(--safe-top));
  padding-top: var(--safe-top);
  padding-left: max(4.5vw, var(--safe-left), calc((100vw - 1390px) / 2));
  padding-right: max(4.5vw, var(--safe-right), calc((100vw - 1390px) / 2));
}

#inicio, #sobre, #atuacao, #principios, #contato {
  scroll-margin-top: calc(var(--header-bar-h) + var(--safe-top) + 10px);
}

button,
a,
.menu-toggle,
.primary-cta,
.contact-whatsapp,
.practice-footer a,
.back-to-top {
  touch-action: manipulation;
}

html.menu-open,
body.menu-open {
  overscroll-behavior: none;
}

/* O controle flutuante respeita Dynamic Island/notch em paisagem
   e a barra de gestos do Android/iPhone na parte inferior. */
.back-to-top {
  right: calc(var(--safe-right) + clamp(14px, 1.6vw, 24px));
  bottom: calc(var(--safe-bottom) + clamp(14px, 1.6vw, 24px));
}

/* Menu de toque: o mesmo comportamento e usado em celulares largos
   em paisagem, evitando a troca prematura para o menu desktop. */
@media (max-width: 900px), (hover: none) and (pointer: coarse) and (max-width: 1024px) {
  :root {
    --header-bar-h: 80px;
    --mobile-edge: clamp(18px, 4vw, 30px);
    --content: calc(100vw - max(var(--mobile-edge), var(--safe-left)) - max(var(--mobile-edge), var(--safe-right)));
  }

  .site-header {
    min-height: calc(var(--header-bar-h) + var(--safe-top));
    padding-top: var(--safe-top);
    padding-left: max(4vw, var(--safe-left));
    padding-right: max(4vw, var(--safe-right));
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
  }

  .brand {
    width: min(68vw, 315px);
    max-width: calc(100vw - max(4vw, var(--safe-left)) - max(4vw, var(--safe-right)) - 68px);
  }

  .menu-toggle {
    display: grid;
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    place-content: center;
    gap: 7px;
    cursor: pointer;
    position: relative;
    z-index: 31;
    flex: 0 0 auto;
  }

  .primary-nav {
    position: absolute;
    top: 100%;
    right: max(12px, var(--safe-right));
    left: auto;
    width: min(88vw, 380px);
    max-width: calc(100vw - max(12px, var(--safe-left)) - max(12px, var(--safe-right)));
    max-height: calc(100vh - var(--header-bar-h) - var(--safe-top) - max(12px, var(--safe-bottom)));
    max-height: calc(100dvh - var(--header-bar-h) - var(--safe-top) - max(12px, var(--safe-bottom)));
    padding: 22px 24px;
    display: grid;
    gap: 2px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: rgba(238,225,217,.985);
    border: 1px solid rgba(76,11,19,.13);
    box-shadow: 0 24px 60px rgba(56,16,22,.15);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px) scale(.985);
    transform-origin: top right;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    font-size: 12px;
  }

  .primary-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
  }

  .primary-nav > a:not(.nav-contact) {
    min-height: 48px;
    padding: 10px 0;
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(76,11,19,.13);
  }

  .nav-contact {
    display: flex;
    min-height: 50px;
    margin-top: 12px;
    padding-inline: 16px;
  }

  .pillars {
    padding-left: var(--safe-left);
    padding-right: var(--safe-right);
  }

  .footer-nav a,
  .footer-contact > a,
  .footer-legal a,
  .developer-credit {
    min-height: 44px;
  }

  .footer-nav a,
  .footer-legal a {
    display: inline-flex;
    align-items: center;
  }

  .footer-contact > a {
    display: block;
    padding-top: 7px;
  }

  .developer-credit {
    align-items: center;
  }

  .footer-inner {
    padding-bottom: calc(30px + var(--safe-bottom-max));
  }
}

@media (max-width: 600px) {
  :root {
    --header-bar-h: 72px;
    --mobile-edge: 18px;
  }

  .site-header {
    min-height: calc(var(--header-bar-h) + var(--safe-top));
    gap: 12px;
  }

  .brand {
    width: min(68vw, 260px);
    max-width: calc(100vw - max(4vw, var(--safe-left)) - max(4vw, var(--safe-right)) - 58px);
  }

  .menu-toggle {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }

  .primary-nav {
    right: max(10px, var(--safe-right));
    width: min(92vw, 360px);
    max-width: calc(100vw - max(10px, var(--safe-left)) - max(10px, var(--safe-right)));
    padding: 18px 20px 20px;
  }

  .primary-nav > a:not(.nav-contact) {
    min-height: 46px;
    padding-block: 9px;
  }

  .nav-contact {
    min-height: 48px;
  }

  .hero-copy {
    padding-top: 40px;
  }

  .hero-info > div,
  .hero-info > a {
    min-height: 58px;
  }

  .about-inner,
  .practice-inner,
  .contact-inner {
    width: var(--content);
  }

  .footer-inner {
    padding-bottom: calc(28px + var(--safe-bottom-max));
  }

  .footer-nav a {
    min-height: 44px;
    padding-block: 8px;
  }

  .footer-legal {
    gap: 8px 18px;
    flex-wrap: wrap;
  }

  .footer-legal a {
    min-height: 44px;
    padding-block: 10px;
  }

  .developer-credit {
    min-height: 44px;
  }

  .back-to-top {
    right: calc(var(--safe-right) + 12px);
    bottom: calc(var(--safe-bottom) + 12px);
    width: 44px;
    height: 54px;
  }

  /* Mantem os microtextos na faixa legivel da identidade sem
     ampliar os titulos editoriais. */
  .footer-label { font-size: 10px; }
  .footer-contact span,
  .footer-legal a,
  .footer-copyright { font-size: 10px; }
  .developer-copy { font-size: 8.5px; }
  .back-to-top small { font-size: 7.5px; }
}

@media (max-width: 370px) {
  :root { --mobile-edge: 15px; }
  .brand { width: min(67vw, 225px); }
  .primary-nav { padding-inline: 17px; }
  .cta-label { font-size: 10.25px; }
  .footer-nav { gap: 6px 16px; }
}

/* Paisagem em celular: barra mais enxuta e menu rolavel dentro da
   viewport dinamica. Evita que o menu desktop apareca por largura. */
@media (hover: none) and (pointer: coarse) and (orientation: landscape) and (max-height: 600px) and (max-width: 1024px) {
  :root {
    --header-bar-h: 64px;
    --mobile-edge: 20px;
    --content: calc(100vw - max(var(--mobile-edge), var(--safe-left)) - max(var(--mobile-edge), var(--safe-right)));
  }

  .site-header {
    min-height: calc(var(--header-bar-h) + var(--safe-top));
    padding-left: max(20px, var(--safe-left));
    padding-right: max(20px, var(--safe-right));
  }

  .brand { width: min(42vw, 235px); }
  .menu-toggle { width: 44px; height: 44px; min-width: 44px; min-height: 44px; }

  .primary-nav {
    width: min(58vw, 360px);
    max-height: calc(100vh - var(--header-bar-h) - var(--safe-top) - max(10px, var(--safe-bottom)));
    max-height: calc(100dvh - var(--header-bar-h) - var(--safe-top) - max(10px, var(--safe-bottom)));
    padding: 12px 18px 16px;
  }

  .primary-nav > a:not(.nav-contact) {
    min-height: 44px;
    padding-block: 6px;
  }

  .nav-contact { min-height: 44px; margin-top: 8px; }

  .hero-copy { padding-top: 32px; padding-bottom: 32px; }
  .hero h1 { font-size: clamp(42px, 7vw, 54px); }
  .hero-lead { margin-top: 19px; font-size: 15px; line-height: 1.58; }
  .hero-actions { margin-top: 22px; }
  .hero-art { min-height: 310px; }

  .about-inner,
  .practice-inner,
  .contact-inner { padding-top: 58px; padding-bottom: 64px; }
}

/* =========================================================
   V11 — MOBILE: MENU SEM SALTO + RODAPE MAIS COMPACTO
   Ajustes exclusivos de estabilidade do menu e densidade
   vertical do rodape em telas pequenas.
   ========================================================= */

/* Mantem o gutter de rolagem estavel quando o navegador usa scrollbar
   classica. Navegadores sem suporte simplesmente ignoram a propriedade. */
html { scrollbar-gutter: stable; }

@media (max-width: 600px) {
  /* Rodape compacto somente no mobile. A hierarquia e o conteudo permanecem. */
  .footer-inner {
    padding-top: 38px;
    padding-bottom: calc(18px + var(--safe-bottom-max));
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .footer-brand {
    width: min(78vw, 270px);
  }

  .footer-brand-block > p {
    margin-top: 14px;
    max-width: 340px;
    font-size: 13px;
    line-height: 1.55;
  }

  .footer-brand-block > .footer-registration {
    margin-top: 8px;
    font-size: 10px;
    line-height: 1.35;
  }

  .footer-label {
    margin: 0 0 7px;
    font-size: 9.5px;
    line-height: 1.3;
  }

  .footer-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 10px;
  }

  .footer-nav .footer-label {
    grid-column: 1 / -1;
  }

  .footer-nav a {
    min-height: 42px;
    padding-block: 6px;
    font-size: 10.5px;
    line-height: 1.25;
  }

  .footer-contact {
    gap: 0;
  }

  .footer-contact .footer-label {
    margin-bottom: 2px;
  }

  .footer-contact > p:not(.footer-label),
  .footer-contact > a {
    padding: 8px 0;
  }

  .footer-contact > p:not(.footer-label) {
    min-height: 0;
  }

  .footer-contact > a {
    min-height: 44px;
  }

  .footer-contact strong {
    font-size: 10.5px;
    line-height: 1.35;
  }

  .footer-contact span {
    margin-top: 2px;
    font-size: 9.5px;
    line-height: 1.35;
  }

  .footer-rule {
    margin: 24px 0 16px;
  }

  .footer-bottom {
    grid-template-columns: 1fr;
    gap: 9px;
    align-items: start;
  }

  .developer-credit {
    grid-column: auto;
    grid-row: auto;
    width: min(100%, 226px);
    max-width: 226px;
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 8px;
    justify-self: start;
  }

  .developer-copy {
    flex: 0 1 108px;
    max-width: 108px;
    font-size: 7.5px;
    line-height: 1.35;
    letter-spacing: .085em;
    text-align: left;
  }

  .developer-lockup {
    flex: 0 0 auto;
    min-width: 0;
    gap: 5px;
  }

  .developer-symbol { width: 19px; max-height: 22px; }
  .developer-wordmark { width: 74px; max-height: 19px; }

  .footer-meta {
    grid-column: auto;
    grid-row: auto;
    gap: 2px;
  }

  .footer-copyright {
    font-size: 9px;
    line-height: 1.45;
  }

  .footer-legal {
    margin-top: 0;
    gap: 4px 14px;
  }

  .footer-legal a {
    min-height: 38px;
    padding-block: 7px;
    font-size: 9.5px;
  }
}

@media (max-width: 370px) {
  .footer-inner { padding-top: 34px; }
  .footer-main { gap: 20px; }
  .footer-brand { width: min(80vw, 245px); }
  .footer-nav { gap-inline: 6px; }
  .footer-nav a { font-size: 10px; }
  .developer-credit { max-width: 216px; }
}

/* V12 — logo HD oficial fornecida pela cliente.
   O arquivo fonte permanece intacto. O recorte visual usa somente overflow/object-fit
   para retirar o grande respiro externo do PNG sem redesenhar, recolorir ou deformar a marca. */
.brand,
.footer-brand {
  aspect-ratio: 750 / 164;
  overflow: hidden;
}
.brand img,
.footer-brand img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}

/* =========================================================
   V13 — LOGO INTEGRADA AO FUNDO
   A matriz cromatica permanece intacta; somente o fundo marfim do PNG
   foi removido para que header e rodape usem a propria superficie local.
   ========================================================= */
.brand,
.footer-brand {
  aspect-ratio: auto;
  overflow: visible;
  background: transparent;
}
.brand img,
.footer-brand img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  display: block;
  background: transparent;
}


/* =========================================================
   V14 — ASSINATURA HORIZONTAL 16:9 FORNECIDA PELA CLIENTE
   Matriz: logo_vanessa_cavallim_16_9.png.
   O fundo da matriz foi removido apenas para integracao com as superficies
   do header e rodape; desenho, cores e proporcoes da marca permanecem.
   ========================================================= */
.brand { width: min(100%, 500px); }
.brand img,
.footer-brand img {
  width: 100%;
  height: auto;
  display: block;
}
.footer-brand { width: min(100%, 410px); }
@media (max-width: 900px) {
  .brand { width: min(66vw, 320px); }
}
@media (max-width: 600px) {
  .brand { width: min(69vw, 255px); }
  .footer-brand { width: min(78vw, 260px); }
}
@media (max-width: 370px) {
  .brand { width: min(67vw, 225px); }
  .footer-brand { width: min(80vw, 240px); }
}
