:root {
  --navy: #071d29;
  --paper: #f7f5f0;
  --ink: #102532;
  --muted: #657079;
  --red: #c44b50;
  --gold: #c6a466;
  --line: #d7d2ca;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { font: inherit; }
img { display: block; max-width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 12px 16px; color: white; background: var(--red); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.lang-en { display: none; }
body[data-locale="en"] .lang-pt { display: none; }
body[data-locale="en"] .lang-en { display: inline; }

.site-header { position: relative; z-index: 20; min-height: 62px; display: grid; grid-template-columns: 210px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 8px clamp(24px, 3vw, 54px); color: #fff; background: var(--navy); border-bottom: 1px solid rgba(255,255,255,.16); }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; color: #fff; text-decoration: none; }
.brand img, .footer-brand img { object-fit: contain; }
.brand > span { display: grid; gap: 1px; }
.brand strong { font-family: var(--serif); font-size: 1.03rem; font-weight: 600; line-height: 1; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.brand small { font-size: .43rem; line-height: 1; text-transform: uppercase; letter-spacing: .2em; white-space: nowrap; }
.site-nav { display: flex; justify-content: center; gap: clamp(12px, 1.25vw, 22px); }
.site-nav a { position: relative; color: inherit; font-size: .72rem; font-weight: 500; text-decoration: none; letter-spacing: .02em; background: none; border: 0; cursor: pointer; }
.site-nav a::after { content: ""; position: absolute; right: 0; bottom: -7px; left: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
.site-nav a:hover::after, .site-nav a:focus-visible::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 22px; }
.language { display: flex; align-items: center; gap: 9px; }
.language span { width: 1px; height: 15px; background: rgba(255,255,255,.38); }
.language button { padding: 5px 2px; border: 0; color: rgba(255,255,255,.55); background: none; font-size: .65rem; cursor: pointer; }
.language button[aria-pressed="true"] { color: #fff; }
.outline-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-width: 166px; padding: 11px 15px; text-transform: uppercase; text-decoration: none; letter-spacing: .15em; font-size: .62rem; font-weight: 600; white-space: nowrap; background: transparent; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.menu-toggle { display: none; }

.hero { display: grid; grid-template-columns: minmax(0, 3.25fr) minmax(360px, 1fr); min-height: 440px; background: #fff; }
.hero-primary { position: relative; min-height: 440px; overflow: hidden; color: #fff; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,19,29,.9) 0%, rgba(3,19,29,.64) 44%, rgba(3,19,29,.08) 85%); }
.hero-copy { position: relative; z-index: 2; width: min(560px, 74%); padding: 72px 0 60px clamp(40px, 6.5vw, 108px); }
.eyebrow, .section-caption { margin: 0; text-transform: uppercase; letter-spacing: .28em; font-size: .64rem; font-weight: 600; }
.eyebrow { color: var(--gold); }
.eyebrow--red { color: var(--red); }
.hero h1 { margin: 10px 0 13px; font-family: var(--serif); font-size: clamp(3.45rem, 5.3vw, 5.7rem); font-weight: 600; line-height: .88; letter-spacing: -.045em; }
.hero-summary { max-width: 520px; margin: 0; font-family: var(--serif); font-size: 1.2rem; line-height: 1.22; }
.outline-button--light { color: #fff; border: 1px solid var(--gold); }
.outline-button--light:hover, .outline-button--light:focus-visible { color: var(--navy); background: var(--gold); }
.photo-credit { position: absolute; right: 12px; bottom: 8px; z-index: 3; font-size: .55rem; color: rgba(255,255,255,.68); }
.founder-card { min-width: 0; display: grid; grid-template-columns: 46% 54%; background: #fff; }
.founder-card--text { grid-template-columns: 1fr; position: relative; align-items: center; border-left: 1px solid var(--line); }
.founder-card--text::before { content: none; }
.founder-photo { min-width: 0; min-height: 100%; overflow: hidden; }
.founder-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.founder-copy { align-self: start; padding: 72px clamp(28px, 3vw, 52px) 60px; }
.founder-copy h2 { margin: 6px 0 7px; font-family: var(--serif); font-size: clamp(2rem, 2.4vw, 3rem); font-weight: 600; line-height: .95; letter-spacing: -.035em; }
.founder-lead { margin: 0 0 13px; font-family: var(--serif); font-size: 1.03rem; font-style: italic; line-height: 1.15; }
.founder-detail { margin: 0 0 18px; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.outline-button--red { width: 100%; min-width: 0; color: var(--ink); border: 1px solid rgba(196,75,80,.52); }
.outline-button--red:hover, .outline-button--red:focus-visible { color: #fff; background: var(--red); }

.stats { min-height: 84px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; padding: 0 clamp(36px, 10vw, 165px); background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.stat { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 6px 24px; }
.stat + .stat { border-left: 1px solid var(--line); }
.stat strong { font-family: Georgia, serif; font-size: clamp(2.55rem, 3.45vw, 3.85rem); font-weight: 400; font-variant-numeric: lining-nums proportional-nums; line-height: .9; letter-spacing: -.055em; }
.stat > span { font-family: Georgia, serif; font-size: .86rem; line-height: 1.15; }

.editorial-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 390px; padding: 40px clamp(36px, 6.4vw, 106px) 34px; background: var(--paper); border-bottom: 1px solid var(--line); }
.practice-panel { padding-right: clamp(38px, 4.5vw, 76px); border-right: 1px solid var(--line); }
.insights-panel { padding-left: clamp(38px, 4.5vw, 76px); }
.section-heading { min-height: 72px; display: flex; align-items: flex-start; }
.section-heading--with-link { justify-content: space-between; gap: 20px; }
.section-kicker { margin: 0; font-family: var(--serif); font-size: clamp(1.75rem, 2.15vw, 2.6rem); font-weight: 600; line-height: .9; }
.section-kicker::before { content: ""; display: inline-block; width: 28px; height: 1px; margin: 0 12px 8px 0; background: var(--gold); }
.section-caption { margin: 7px 0 0 41px; color: #858b8e; font-size: .54rem; }
.text-link { margin-top: 7px; color: var(--red); text-transform: uppercase; text-decoration: none; letter-spacing: .14em; font-size: .55rem; font-weight: 600; white-space: nowrap; }
.practice-list { list-style: none; padding: 0; margin: 10px 0 0; }
.practice-list li { min-height: 66px; display: grid; grid-template-columns: 50px 1fr 22px; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); }
.practice-list li:last-child { border-bottom: 0; }
.list-number { color: var(--red); font-family: var(--serif); font-size: 1.7rem; }
.practice-list a { display: flex; flex-direction: column; gap: 5px; min-width: 0; padding: 9px 0; text-decoration: none; }
.practice-list strong { font-family: var(--serif); font-size: 1.12rem; font-weight: 600; line-height: 1.15; }
.practice-list small { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.row-arrow { color: var(--red); font-size: 1.2rem; transition: transform .2s ease; }
.practice-list li:hover .row-arrow, .insight:hover .row-arrow { transform: translateX(4px); }
.insight-list { margin-top: 10px; }
.insight { min-height: 86px; display: grid; grid-template-columns: 42px 1fr 22px; align-items: center; gap: 17px; padding: 10px 0; color: inherit; text-decoration: none; border-bottom: 1px solid var(--line); }
.insight:last-child { border-bottom: 0; }
.insight-mark { display: grid; place-items: center; width: 34px; height: 34px; color: #fff; background: var(--navy); font-family: var(--serif); font-size: 1rem; }
.insight-content { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.insight-content small { color: var(--red); font-size: .5rem; font-weight: 600; letter-spacing: .1em; }
.insight-content small i { display: inline-block; width: 12px; height: 1px; margin: 0 7px 2px; background: var(--line); }
.insight-content strong { font-family: var(--serif); font-size: 1.05rem; font-weight: 600; line-height: 1.16; }

/* Distinct, readable sections for services, publications and practical information. */
.approach-section { padding: 58px clamp(36px, 6.4vw, 106px) 66px; background: #fff; border-bottom: 1px solid var(--line); }
.approach-section .section-heading { min-height: 84px; }
.section-kicker { margin-top: 0; margin-bottom: 0; }
.approach-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; }
.approach-grid article { padding: 25px 28px 24px; background: var(--paper); border-top: 2px solid var(--gold); }
.approach-number { color: var(--red); font-family: var(--serif); font-size: 1.6rem; }
.approach-grid h3 { margin: 10px 0 12px; font-family: var(--serif); font-size: clamp(1.55rem, 1.8vw, 2rem); font-weight: 600; line-height: 1; }
.approach-grid p { margin: 0; color: var(--muted); font-size: .83rem; line-height: 1.65; }

.editorial-grid { display: block; min-height: 0; padding: 0; background: transparent; border-bottom: 0; }
.practice-panel { padding: 64px clamp(36px, 6.4vw, 106px) 70px; background: var(--paper); border: 0; }
.practice-panel .section-heading, .insights-panel .section-heading { min-height: 90px; }
.practice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 22px; margin-top: 0; }
.practice-list li { position: relative; min-height: 130px; grid-template-columns: 45px 1fr 20px; align-items: start; gap: 15px; padding: 24px 22px; background: #fff; border: 1px solid var(--line); transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, border-color .24s ease; }
.practice-list li:last-child { border-bottom: 1px solid var(--line); }
.practice-list li:hover, .practice-list li:focus-within { transform: translateY(-4px); background: #fffdf8; border-color: var(--gold); box-shadow: 0 16px 30px -20px rgba(7,29,41,.42); }
.practice-list a { gap: 12px; padding: 0; }
.practice-list a::after { content: ""; position: absolute; inset: 0; }
.practice-list strong { font-size: clamp(1.4rem, 1.8vw, 1.9rem); line-height: 1; }
.practice-list small { max-width: 42ch; font-size: .78rem; line-height: 1.5; }
.practice-list .row-arrow { align-self: center; }
.related-practices { display: grid; grid-template-columns: 210px 1fr; gap: 25px; align-items: start; margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line); }
.related-practices h3 { margin: 0; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; line-height: 1.1; }
.related-practices > div { display: flex; flex-wrap: wrap; gap: 10px; }
.related-practices a { max-width: 100%; padding: 11px 14px; color: var(--ink); background: #fff; border: 1px solid var(--line); font-size: .72rem; line-height: 1.4; text-decoration: none; }
.related-practices a:hover, .related-practices a:focus-visible { border-color: var(--red); color: var(--red); }
.insights-panel { padding: 64px clamp(36px, 6.4vw, 106px) 72px; background: #e9e7e1; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.insight-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin: 0; }
.insight { min-height: 190px; align-items: start; gap: 17px; padding: 30px; background: #fff; border: 1px solid var(--line); }
.insight:last-child { border-bottom: 1px solid var(--line); }
.insight-content { gap: 19px; }
.insight-content small { font-size: .61rem; }
.insight-content strong { font-size: clamp(1.3rem, 1.7vw, 1.75rem); line-height: 1.15; }
.insight .row-arrow { align-self: end; }
@media (min-width: 621px) {
  .insight--featured { grid-column: 1 / -1; min-height: 150px; }
  .insight--featured .insight-content strong { max-width: 50ch; }
}

.faq-section { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.4fr); gap: clamp(40px, 7vw, 115px); padding: 68px clamp(36px, 6.4vw, 106px) 78px; background: var(--paper); border-top: 1px solid var(--line); }
.faq-intro p { max-width: 38ch; margin: 22px 0 0 41px; color: var(--muted); font-size: .85rem; line-height: 1.6; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list details:first-child { border-top: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 20px 46px 20px 0; font-family: var(--serif); font-size: 1.5rem; font-weight: 600; line-height: 1.1; list-style: none; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; top: 17px; color: var(--red); font-family: var(--sans); font-size: 1.4rem; font-weight: 400; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { max-width: 75ch; margin: 0; padding: 0 40px 20px 0; color: var(--muted); font-size: .83rem; line-height: 1.7; }

.offices { min-height: 220px; display: grid; grid-template-columns: .85fr 1fr 1fr; align-items: stretch; padding: 38px clamp(36px, 6.4vw, 106px); background: #fff; }
.offices-title { align-self: center; padding-right: 42px; }
.office { min-width: 0; display: flex; align-items: center; padding: 8px clamp(24px, 3vw, 48px); border-left: 1px solid var(--line); }
.office-copy { display: grid; gap: 14px; }
.office-city { margin: 0; font-family: var(--serif); font-size: clamp(1.85rem, 2.4vw, 2.4rem); font-weight: 600; line-height: 1; }
.office p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.office a { width: max-content; color: var(--red); text-transform: uppercase; text-decoration: none; font-size: .72rem; font-weight: 600; letter-spacing: .08em; white-space: nowrap; }
.office a:hover, .office a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.site-footer { padding: 55px clamp(36px, 6.4vw, 106px) 28px; color: rgba(255,255,255,.78); background: #061722; border-top: 1px solid rgba(198,164,102,.55); }
.footer-main { display: grid; grid-template-columns: minmax(220px, 1.1fr) minmax(130px, .6fr) minmax(250px, 1.2fr); gap: clamp(28px, 4vw, 70px); padding-bottom: 38px; }
.footer-column { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.footer-column h2 { margin: 0 0 9px; color: var(--gold); font-size: .81rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.footer-column a { color: #fff; font-size: .75rem; line-height: 1.45; text-decoration: none; }
.footer-column a:hover, .footer-column a:focus-visible, .footer-legal a:hover, .footer-legal a:focus-visible { color: var(--gold); text-decoration: underline; text-underline-offset: 4px; }
.footer-brand { width: max-content; max-width: 100%; margin-bottom: 10px; }
.footer-brand strong { font-size: 1.04rem; }
.site-footer .footer-brand small { font-size: .75rem; letter-spacing: .05em; }
.footer-identity p { margin: 0; color: rgba(255,255,255,.75); font-size: .75rem; line-height: 1.6; }
.footer-contact address { display: grid; gap: 6px; margin: 0 0 9px; font-size: .75rem; font-style: normal; line-height: 1.5; }
.footer-contact address strong:not(:first-child) { margin-top: 9px; }
.footer-contact address span { color: rgba(255,255,255,.7); }
.footer-contact > a { overflow-wrap: anywhere; }
.footer-bottom { display: grid; gap: 14px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); }
.footer-legal { display: flex; flex-wrap: wrap; gap: 12px 22px; font-size: .75rem; line-height: 1.5; }
.footer-legal a { color: #fff; text-decoration: none; }
.footer-source-note { margin: 0; color: rgba(255,255,255,.75); font-size: .75rem; line-height: 1.5; }

.contact-section { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(36px, 6vw, 100px); padding: 64px clamp(36px, 6.4vw, 106px) 56px; color: #fff; background: var(--navy); }
.contact-intro h2 { margin: 16px 0 18px; font-family: var(--serif); font-size: clamp(2.7rem, 4vw, 4.3rem); font-weight: 600; line-height: .9; }
.contact-intro > p:not(.eyebrow) { max-width: 44ch; color: rgba(255,255,255,.72); font-size: .9rem; line-height: 1.7; }
.contact-direct { display: grid; gap: 12px; margin-top: 30px; }
.contact-direct a { width: max-content; max-width: 100%; color: #fff; font-size: .85rem; text-decoration-color: var(--gold); text-underline-offset: 5px; overflow-wrap: anywhere; }
.contact-locations { display: grid; gap: 17px; margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.24); }
.contact-locations h3 { margin: 0 0 4px; font-family: var(--serif); font-size: 1.55rem; font-weight: 600; }
.contact-locations p { margin: 0 0 6px; color: rgba(255,255,255,.7); font-size: .78rem; line-height: 1.5; }
.contact-locations a { color: #fff; font-size: .75rem; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.contact-intro .contact-confidentiality { max-width: 48ch; margin: 24px 0 0; color: rgba(255,255,255,.68); font-size: .75rem; line-height: 1.6; }
.contact-form { display: grid; gap: 17px; padding: 34px; color: var(--ink); background: var(--paper); }
.form-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-row { display: grid; gap: 8px; }
.form-row label { font-size: .69rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
.form-row input, .form-row textarea { width: 100%; padding: 11px 13px; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 0; font: inherit; font-size: .84rem; }
.form-row textarea { resize: vertical; min-height: 110px; }
.form-row input:focus, .form-row textarea:focus { border-color: var(--red); }
.form-notice { margin: 0; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.contact-submit { display: inline-flex; align-items: center; justify-content: center; gap: 18px; width: 100%; padding: 15px 20px; color: #fff; background: var(--navy); border: 1px solid var(--navy); cursor: pointer; font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.contact-submit:hover, .contact-submit:focus-visible { background: #163849; }
.form-status { min-height: 1em; margin: 0; color: var(--muted); font-size: .75rem; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }

@media (max-width: 1180px) {
  .site-header { grid-template-columns: 205px 1fr auto; padding-inline: 28px; }
  .site-nav { gap: 16px; }
  .site-nav a { font-size: .65rem; }
  .hero { grid-template-columns: 1.7fr 1fr; }
  .founder-card { grid-template-columns: 1fr; }
  .founder-copy { padding: 72px 26px 60px; }
  .founder-detail { display: none; }
  .stats { padding-inline: 36px; }
  .editorial-grid, .offices { padding-inline: 36px; }
  .site-footer { padding-inline: 36px; }
}

@media (max-width: 840px) {
  .site-header { min-height: 64px; grid-template-columns: 1fr auto auto; }
  .brand img { width: 40px; height: 40px; }
  .brand strong { font-size: .9rem; }
  .brand small { font-size: .36rem; }
  .menu-toggle { display: grid; gap: 6px; width: 38px; height: 38px; place-content: center; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.35); }
  .menu-toggle > span:not(.sr-only) { display: block; width: 18px; height: 1px; background: currentColor; }
  .site-nav { position: absolute; top: 64px; right: 0; left: 0; display: none; flex-direction: column; gap: 0; padding: 12px 28px 22px; background: var(--navy); border-top: 1px solid rgba(255,255,255,.14); }
  .site-nav[data-open="true"] { display: flex; }
  .site-nav a { padding: 12px 0; font-size: .8rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .header-actions { gap: 0; }
  .hero { grid-template-columns: 1fr; }
  .hero-primary { min-height: 470px; }
  .hero-copy { width: 100%; padding: 70px 28px 38px; }
  .hero h1 { font-size: clamp(4rem, 17vw, 6.3rem); }
  .founder-card { grid-template-columns: 1fr; }
  .founder-copy { padding: 32px 28px; }
  .founder-detail { display: block; }
  .stats { grid-template-columns: 1fr; padding: 0 28px; }
  .stat { justify-content: flex-start; padding: 22px 0; }
  .stat + .stat { border-left: 0; border-top: 1px solid var(--line); }
  .editorial-grid { grid-template-columns: 1fr; padding: 32px 28px; }
  .practice-panel { padding: 0 0 30px; border-right: 0; border-bottom: 1px solid var(--line); }
  .insights-panel { padding: 30px 0 0; }
  .offices { grid-template-columns: 1fr; padding: 38px 28px; }
  .offices-title { padding: 0 0 25px; }
  .office { min-height: 0; padding: 26px 0; border-top: 1px solid var(--line); border-left: 0; }
  .site-footer { padding-inline: 28px; }
}

@media (max-width: 560px) {
  .site-header { padding-inline: 18px; }
  .brand > span { display: none; }
  .hero-primary { min-height: 510px; }
  .hero-photo { object-position: 57% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(3,19,29,.92), rgba(3,19,29,.46)); }
  .hero-copy { padding-inline: 20px; }
  .founder-copy { padding: 30px 22px; }
  .practice-list li { grid-template-columns: 38px 1fr 18px; min-height: 72px; }
  .practice-list small { margin-top: 3px; }
  .section-heading--with-link { display: block; }
  .text-link { display: inline-block; margin: 12px 0 4px 41px; }
  .insight { grid-template-columns: 34px 1fr 18px; gap: 10px; padding: 10px 0; }
}

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

@media (max-width: 1180px) {
  .approach-section, .practice-panel, .insights-panel, .faq-section { padding-right: 36px; padding-left: 36px; }
  .site-nav { gap: 12px; }
  .site-nav a { font-size: .62rem; }
}
@media (max-width: 840px) {
  .editorial-grid { padding: 0; }
  .approach-section, .practice-panel, .insights-panel, .faq-section { padding: 45px 28px 52px; }
  .approach-grid { gap: 15px; }
  .approach-grid article { padding: 22px; }
  .practice-panel { border: 0; }
  .insights-panel { border-top: 1px solid var(--line); }
  .practice-list { grid-template-columns: 1fr; gap: 12px; }
  .practice-list li { min-height: 110px; grid-template-columns: 42px 1fr 20px; padding: 21px; }
  .related-practices { grid-template-columns: 1fr; gap: 15px; }
  .faq-section { grid-template-columns: 1fr; gap: 28px; }
  .faq-intro p { margin-left: 0; }
}
@media (max-width: 620px) {
  .approach-grid, .insight-list { grid-template-columns: 1fr; }
  .approach-grid { gap: 12px; }
  .practice-panel .section-heading, .insights-panel .section-heading { min-height: 95px; }
  .practice-list li { min-height: 105px; }
  .practice-list strong { font-size: 1.42rem; }
  .insight { min-height: 145px; padding: 23px; }
  .faq-list summary { font-size: 1.3rem; }
}

@media (max-width: 1180px) {
  .founder-detail { display: block; }
}
@media (max-width: 1080px) {
  .site-header { min-height: 64px; grid-template-columns: 1fr auto auto; }
  .menu-toggle { display: grid; gap: 6px; width: 38px; height: 38px; place-content: center; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.35); cursor: pointer; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 18px; height: 1px; background: currentColor; }
  .site-nav { position: absolute; top: 64px; right: 0; left: 0; display: none; flex-direction: column; gap: 0; padding: 12px 28px 22px; background: var(--navy); border-top: 1px solid rgba(255,255,255,.14); box-shadow: 0 20px 30px rgba(0,0,0,.14); }
  .site-nav[data-open="true"] { display: flex; }
  .site-nav a { padding: 12px 0; font-size: .8rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .header-actions { gap: 14px; }
  .brand > span { min-width: 0; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 52px; }
}
@media (max-width: 840px) {
  .contact-section { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 52px 28px; }
}
@media (max-width: 620px) {
  .form-pair { grid-template-columns: 1fr; }
  .contact-form { padding: 24px; }
  .contact-submit { width: 100%; }
  .footer-main { grid-template-columns: 1fr; gap: 34px; }
  .site-footer { padding: 44px 28px; }
  .site-footer .footer-brand > span { display: grid; }
}

/* 2026-09-29 — Marcellus, nome no hero, faixa do sócio, cantos 4px, animação dos artigos */
:root { --serif: "Marcellus", Georgia, serif; --sans: "Hanken Grotesk", Arial, sans-serif; --radius: 4px; }
.brand strong, .section-kicker, .practice-list strong, .insight-content strong, .approach-grid h3, .related-practices h3, .faq-list summary, .office-city, .contact-intro h2, .contact-locations h3, .list-number, .approach-number, .insight-mark { font-weight: 400; letter-spacing: 0; }
.section-kicker, .contact-intro h2 { line-height: 1.05; }
.hero { display: block; min-height: 0; background: var(--navy); }
.hero-primary { min-height: clamp(460px, 40vw, 580px); display: flex; align-items: center; }
.hero-copy { width: min(1100px, 100%); padding: 64px clamp(28px, 7.5vw, 108px); }
.hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(3.3rem, 7.2vw, 6.5rem); font-weight: 400; line-height: 1; letter-spacing: .015em; }
@media (min-width: 841px) { .hero h1 { white-space: nowrap; } }
.hero-copy .eyebrow { margin-top: 18px; }
.hero-rule { display: block; width: 64px; height: 1px; margin: 28px 0 22px; background: var(--gold); }
.hero-position { margin: 0; font-family: var(--serif); font-size: clamp(1.3rem, 1.9vw, 1.75rem); line-height: 1.25; }
.hero-summary { margin-top: 10px; font-family: var(--sans); font-size: .95rem; line-height: 1.55; color: rgba(255,255,255,.82); }
.founder-strip { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(28px, 4vw, 56px); padding: 34px clamp(28px, 7.5vw, 108px); background: #fff; border-bottom: 1px solid var(--line); }
.founder-strip h2 { margin: 10px 0 0; font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1.15; white-space: nowrap; }
.founder-strip .founder-lead { align-self: end; max-width: 60ch; margin: 0 0 2px; font-family: var(--serif); font-size: 1rem; font-style: normal; line-height: 1.4; }
.founder-strip .outline-button--red { width: auto; min-width: 0; }
.outline-button { font-size: .7rem; }
.stat strong { font-family: var(--serif); letter-spacing: 0; }
.stat > span { font-family: var(--sans); color: var(--muted); }
.practice-list li, .insight, .outline-button, .related-practices a, .contact-form, .form-row input, .form-row textarea, .contact-submit, .menu-toggle, .approach-grid article { border-radius: var(--radius); }
.insight-mark { border-radius: 3px; transition: background-color .24s ease; }
.insight { position: relative; transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, border-color .24s ease; }
.insight:hover, .insight:focus-visible { transform: translateY(-4px); background: #fffdf8; border-color: var(--gold); box-shadow: 0 16px 30px -20px rgba(7,29,41,.42); }
.insight:hover .insight-mark, .insight:focus-visible .insight-mark { background: var(--red); }
.insight .row-arrow { transition: transform .24s ease; }
.insight:focus-visible .row-arrow { transform: translateX(4px); }
@media (max-width: 1180px) {
  .founder-strip { grid-template-columns: minmax(0, 1fr) auto; row-gap: 14px; }
  .founder-strip .founder-lead { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 840px) {
  .hero-primary { min-height: 480px; }
  .hero-copy { padding: 56px 28px; }
  .founder-strip { grid-template-columns: 1fr; gap: 16px; padding: 30px 28px; }
  .founder-strip h2 { white-space: normal; }
  .founder-strip .outline-button--red { justify-self: start; }
}
@media (max-width: 560px) {
  .hero-copy { padding: 48px 20px; }
  .founder-strip { padding: 28px 20px; }
}
.footer-identity .footer-registration { margin-top: 4px; color: rgba(255,255,255,.5); font-size: .68rem; letter-spacing: .06em; }

.hero-photo { object-position: 50% 62%; transform: scale(1.14); transform-origin: 88% 70%; }
.hero-shade { background:
  linear-gradient(90deg, rgba(3,19,29,.9) 0%, rgba(3,19,29,.6) 38%, rgba(3,19,29,.1) 72%, rgba(3,19,29,.04) 100%),
  linear-gradient(0deg, rgba(3,19,29,.35), transparent 40%); }
@media (max-width: 560px) {
  .hero-photo { transform: none; object-position: 70% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(3,19,29,.92), rgba(3,19,29,.5)); }
}
