/* Fontes locais: não dependem de Google Fonts ou de conexão com a internet. */@font-face  {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/geist-ff2310f5.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face  {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/geist-875ccdd4.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face  {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/geist-52306abf.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face  {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/geist-001175b1.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face  {
    font-family: 'Geist';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url(fonts/geist-98bbbccb.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face  {
    font-family: 'Geist Fallback';
    src: local("Arial");
    ascent-override: 95.94%;
    descent-override: 28.16%;
    line-gap-override: 0.00%;
    size-adjust: 104.76%;
}
/* Base usada pelo protótipo original. */:root {
  --font-geist-sans:'Geist','Geist Fallback',Arial,sans-serif
}
html {
  line-height:1.5;
  -webkit-text-size-adjust:100%;
  tab-size:4
}
svg,img {
  display:block;
  vertical-align:middle
}
img {
  max-width:100%
}
h1,h2,h3,p {
  margin-top:0
}
:root {
  --background:#fafcfd;
  --foreground:#223643;
  --primary:#32677e;
  --primary-foreground:#fff;
  --border:#d5e0e5;
  --card:#fff;
  --card-foreground:#223643;
  --muted:#edf3f6;
  --muted-foreground:#576a76;
  --ring:#32677e;
  --radius:0px;
  --accent:#dcecf2;
  --accent-foreground:#223643;
  --popover:#fff;
  --popover-foreground:#223643;
  --input:#d5e0e5;
  --secondary:#e7eff3;
  --secondary-foreground:#223643;
}
.dark {
  --background:#223643;
  --foreground:#fafcfd;
  --primary:#b1d4e2;
  --primary-foreground:#223643;
  --border:#526673;
  --card:#293e4d;
  --card-foreground:#fafcfd;
  --muted:#293e4d;
  --muted-foreground:#c3d0d8;
  --accent:#375969;
  --accent-foreground:#fff;
  --popover:#293e4d;
  --popover-foreground:#fff;
  --input:#526673;
  --ring:#b1d4e2;
  --secondary:#375969;
  --secondary-foreground:#fff;
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  background:var(--background);
  color:var(--foreground);
  font-family:var(--font-geist-sans),Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
a,summary {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,summary:focus-visible {
  outline:3px solid #32677e;
  outline-offset:6px
}
a:hover {
  color:#32677e
}
.skip {
  position:absolute;
  top:-100px;
  padding:15px;
  background:#fff;
  z-index:100
}
.skip:focus {
  top:0
}
.header {
  height:104px;
  padding:0 5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  border-bottom:1px solid var(--border);
  background:#fafcfdf5;
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(15px)
}
.brand {
  display:flex;
  flex-direction:column;
  gap:7px;
  flex-shrink:0
}
.brand>span {
  font-family:Georgia,serif;
  font-size:22px;
  letter-spacing:-.7px
}
.brand b {
  color:#6297b0
}
.brand small {
  font-size:10px;
  letter-spacing:3.5px
}
.header nav {
  display:flex;
  gap:35px;
  font-size:14px
}
.header-cta {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:14px;
  border-bottom:1px solid #9bafba;
  padding:12px 0
}
.hero {
  padding:35px 5% 0;
  overflow:hidden
}
.hero-top,.hero-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  letter-spacing:1.8px;
  font-weight:500
}
.eyebrow i {
  width:6px;
  height:6px;
  background:#639eb6;
  border-radius:50%;
  box-shadow:0 0 0 4px #e3eef3
}
.hero-index {
  font-size:12px;
  letter-spacing:1.2px;
  color:#657681
}
.hero-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:5%;
  padding:38px 0 36px;
  align-items:stretch
}
.hero-copy {
  padding:20px 0 25px;
  position:relative;
  z-index:2
}
h1 {
  font-size:clamp(48px,5.3vw,85px);
  font-weight:400;
  line-height:1.055;
  letter-spacing:-3.7px;
  margin:0 0 30px
}
h1 em {
  font-style:normal;
  color:#63869a
}
.hero-copy p {
  font-size:17px;
  line-height:1.7;
  max-width:355px;
  color:#647580;
  margin:0 0 30px
}
.button {
  display:inline-flex;
  align-items:center;
  gap:35px;
  padding:18px 22px;
  background:#2d566b;
  color:#fff;
  font-size:14px;
  transition:background .2s
}
.button:hover {
  background:#203e4e;
  color:white
}
.hero-photo {
  position:relative;
  min-height:465px;
  overflow:hidden;
  margin-left:15px;
  background:#dbe7ed
}
.hero-photo img {
  width:100%;
  height:100%;
  position:absolute;
  object-fit:cover;
  animation:reveal 1.2s ease-out
}
.photo-cross {
  position:absolute;
  top:18px;
  right:24px;
  color:#fff;
  font-size:28px;
  font-weight:200
}
.photo-caption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:25px 27px;
  background:#f7fbf8da;
  backdrop-filter:blur(20px);
  font-size:16px;
  line-height:1.5
}
.photo-caption strong {
  font-weight:500
}
.hero-bottom {
  padding:23px 0;
  border-top:1px solid var(--border);
  font-size:12px;
  letter-spacing:1.3px
}
.hero-bottom a {
  display:flex;
  gap:22px;
  align-items:center;
  letter-spacing:0;
  font-size:14px
}
.section {
  display:grid;
  grid-template-columns:23% 1fr;
  padding:100px 5%;
  gap:4%;
  border-top:1px solid var(--border);
  scroll-margin-top:10px
}
.section-label {
  font-size:12px;
  letter-spacing:1.6px;
  padding-top:10px;
  color:#576e7c
}
h2 {
  font-size:clamp(30px,3.2vw,50px);
  line-height:1.2;
  font-weight:400;
  letter-spacing:-1.7px;
  margin:0 0 38px
}
h2 span {
  color:#637f90
}
.about-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6%
}
p {
  font-size:16px;
  line-height:1.8;
  margin:0;
  color:#5b6f7b
}
.facts {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  margin-top:50px;
  gap:20px
}
.facts>div {
  border-top:1px solid var(--border);
  padding-top:24px;
  display:flex;
  flex-direction:column;
  gap:8px
}
.facts strong {
  font-size:38px;
  font-weight:400;
  letter-spacing:-1px
}
.facts span {
  font-size:14px;
  color:#617581
}
.practice {
  background:#edf3f6
}
.practice-heading {
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:flex-end
}
.practice-heading p {
  max-width:180px;
  font-size:14px;
  margin-bottom:40px
}
.area-list {
  border-top:1px solid #c4d3dc
}
details {
  border-bottom:1px solid #c4d3dc
}
summary {
  display:flex;
  align-items:center;
  cursor:pointer;
  gap:25px;
  padding:23px 0;
  list-style:none
}
summary::-webkit-details-marker {
  display:none
}
.area-number {
  font-size:12px;
  color:#6a8391;
  min-width:24px
}
h3 {
  font-size:24px;
  font-weight:400;
  letter-spacing:-.6px;
  margin:0
}
.plus {
  margin-left:auto;
  color:#688ba0;
  transition:transform .2s;
  flex-shrink:0
}
details[open] .plus {
  transform:rotate(45deg)
}
.area-content {
  padding:0 40px 26px 49px
}
.area-content a {
  margin-top:18px;
  display:inline-flex;
  gap:20px;
  align-items:center;
  font-size:14px;
  color:#32677e
}
.partners {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px
}
.partners article {
  border-top:1px solid var(--border);
  padding-top:25px
}
.partners article>span {
  font-size:12px;
  letter-spacing:1.5px;
  color:#688493
}
.partners h3 {
  margin:16px 0;
  font-size:25px
}
.partners p {
  font-size:16px
}
.contact {
  background:#dfeaf0
}
.contact h2 {
  font-size:clamp(40px,5.5vw,75px);
  letter-spacing:-3px;
  margin:24px 0 35px
}
.contact h2 span {
  color:#56798e
}
.contact-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid #a9bdc9;
  padding-bottom:25px;
  font-size:21px
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  padding-top:35px
}
.contact-grid small {
  display:block;
  font-size:12px;
  letter-spacing:1.4px;
  margin-bottom:15px
}
.contact-grid a {
  display:block;
  font-size:16px;
  line-height:1.9;
  overflow-wrap:anywhere
}
.contact-grid p {
  font-size:16px
}
footer {
  padding:40px 5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px
}
footer>span,footer>a:last-child {
  font-size:12px;
  color:#617581
}
@keyframes reveal {
  from {
    opacity:.4;
    transform:scale(1.05)
  }
  to {
    opacity:1;
    transform:scale(1)
  }
}
@media(min-width:1600px) {
  .header,.hero,.section,footer {
    padding-left:max(5%,calc((100vw - 1440px)/2));
    padding-right:max(5%,calc((100vw - 1440px)/2))
  }
}
@media(max-width:1000px) {
  .header nav {
    gap:20px
  }
  .hero-grid {
    gap:2%;
    grid-template-columns:1.15fr 1fr
  }
  h1 {
    font-size:54px;
    letter-spacing:-2.8px
  }
  .hero-photo {
    min-height:430px
  }
  .section {
    grid-template-columns:1fr;
    gap:30px;
    padding-top:70px;
    padding-bottom:70px
  }
  .practice-heading {
    align-items:flex-start
  }
  .brand>span {
    font-size:19px
  }
  .header-cta {
    gap:10px
  }
}
@media(max-width:700px) {
  .header {
    height:88px;
    padding:0 6%;
    flex-wrap:wrap;
    gap:0
  }
  .brand>span {
    font-size:17px
  }
  .brand small {
    font-size:10px;
    letter-spacing:1.2px
  }
  .header nav {
    display:none
  }
  .header-cta {
    font-size:12px;
    gap:8px
  }
  .hero {
    padding:27px 6% 0
  }
  .hero-top .eyebrow {
    font-size:12px;
    letter-spacing:.4px
  }
  .hero-index {
    display:none
  }
  .hero-grid {
    grid-template-columns:1fr;
    padding-top:10px;
    gap:15px
  }
  h1 {
    font-size:clamp(40px,10.6vw,65px);
    letter-spacing:-2.3px;
    margin-bottom:24px
  }
  .hero-copy {
    padding-bottom:10px
  }
  .hero-copy p {
    font-size:16px
  }
  .hero-photo {
    min-height:320px;
    margin:0
  }
  .hero-photo img {
    object-position:center 45%
  }
  .hero-bottom>span {
    font-size:12px;
    letter-spacing:.3px;
    max-width:180px;
    line-height:1.7
  }
  .hero-bottom a {
    font-size:14px;
    gap:10px
  }
  .section {
    padding:55px 6%;
    gap:24px
  }
  .about-columns,.partners,.contact-grid {
    grid-template-columns:1fr;
    gap:25px
  }
  h2 {
    font-size:32px;
    letter-spacing:-1.2px;
    margin-bottom:25px
  }
  .facts {
    gap:15px;
    margin-top:30px
  }
  .facts strong {
    font-size:28px
  }
  .facts span {
    font-size:14px
  }
  .practice-heading {
    display:block
  }
  .practice-heading p {
    max-width:none;
    margin-bottom:25px
  }
  summary {
    gap:15px;
    padding:22px 0
  }
  h3 {
    font-size:23px
  }
  .area-content {
    padding-left:39px
  }
  .contact .eyebrow {
    font-size:12px;
    line-height:1.6;
    letter-spacing:.4px
  }
  .contact h2 {
    font-size:48px;
    letter-spacing:-2px
  }
  .contact-link {
    font-size:18px
  }
  footer {
    padding:35px 6%;
    flex-wrap:wrap
  }
  footer .brand {
    width:100%
  }
  footer>span {
    font-size:12px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
/* Títulos das páginas separadas e navegação acessível no celular. */.page-title {
  font-size:clamp(30px,3.2vw,50px);
  line-height:1.2;
  font-weight:400;
  letter-spacing:-1.7px;
  margin:0 0 38px
}
.page-title span {
  color:#637f90
}
.contact .page-title {
  font-size:clamp(40px,5.5vw,75px);
  letter-spacing:-3px;
  margin:24px 0 35px
}
.contact .page-title span {
  color:#56798e
}
.internal-page main {
  min-height:65vh
}
.header nav a[aria-current=page] {
  color:#32677e;
  text-decoration:underline;
  text-underline-offset:7px
}
@media(max-width:700px) {
  .header {
    height:auto;
    min-height:88px;
    padding-top:18px;
    padding-bottom:12px;
    row-gap:18px
  }
  .header nav {
    display:flex;
    order:3;
    width:100%;
    gap:24px;
    overflow-x:auto;
    padding:8px 0 5px;
    font-size:14px;
    white-space:nowrap
  }
  .page-title {
    font-size:32px;
    letter-spacing:-1.2px;
    margin-bottom:25px
  }
  .contact .page-title {
    font-size:48px;
    letter-spacing:-2px
  }
  html {
    scroll-padding-top:155px
  }
}
