/* fonts.css */
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 700; src: url('./fonts/5b6fc693-1Ptug8zYS_SKggPNyCIIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 700; src: url('./fonts/2b191abf-1Ptsg8zYS_SKggPNyCg4QoFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 400; src: url('./fonts/5b6fc693-1Ptug8zYS_SKggPNyCIIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 400; src: url('./fonts/2b191abf-1Ptsg8zYS_SKggPNyCg4QoFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 700; src: url('./fonts/8da53c27-1Ptug8zYS_SKggPNyCAIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 700; src: url('./fonts/2067f3e6-1Ptsg8zYS_SKggPNyCg4QIFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 400; src: url('./fonts/8da53c27-1Ptug8zYS_SKggPNyCAIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 400; src: url('./fonts/2067f3e6-1Ptsg8zYS_SKggPNyCg4QIFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 700; src: url('./fonts/738ece6c-1Ptug8zYS_SKggPNyCkIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 700; src: url('./fonts/8e2e6626-1Ptsg8zYS_SKggPNyCg4SYFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 400; src: url('./fonts/738ece6c-1Ptug8zYS_SKggPNyCkIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 400; src: url('./fonts/8e2e6626-1Ptsg8zYS_SKggPNyCg4SYFqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 700; src: url('./fonts/3ead825f-1Ptug8zYS_SKggPNyCMIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 700; src: url('./fonts/89ede841-1Ptsg8zYS_SKggPNyCg4Q4FqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 400; src: url('./fonts/3ead825f-1Ptug8zYS_SKggPNyCMIT4ttDfCmxA.woff2') format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 400; src: url('./fonts/89ede841-1Ptsg8zYS_SKggPNyCg4Q4FqL_KWxWMT.woff2') format('woff2'); unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 700; src: url('./fonts/a637e6d8-1Ptug8zYS_SKggPNyC0IT4ttDfA.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 700; src: url('./fonts/feaa17e9-1Ptsg8zYS_SKggPNyCg4TYFqL_KWxQ.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: normal; font-weight: 400; src: url('./fonts/a637e6d8-1Ptug8zYS_SKggPNyC0IT4ttDfA.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;font-display: swap;
}
@font-face {font-family: 'raleway'; font-style: italic; font-weight: 400; src: url('./fonts/feaa17e9-1Ptsg8zYS_SKggPNyCg4TYFqL_KWxQ.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;font-display: swap;
}
/* site.css */
@font-face{font-family:'Bodoni Moda';src:url('/assets/fonts/bodoni-moda-400-latin.woff2') format('woff2'),url('/assets/fonts/bodoni-moda-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Bodoni Fallback';src:local('Georgia');size-adjust:96%;ascent-override:92%;descent-override:26%}
:root{--ink:#20252b;--paper:#fff;--pale:#f4f2f1;--line:#d6d3d1;--rose:#b76c75;--rose-dark:#854345;--serif:'Bodoni Moda','Bodoni Fallback',Georgia,serif;--sans:'raleway',Arial,sans-serif;--gutter:clamp(22px,5vw,88px);--header-h:116px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);scrollbar-color:var(--rose-dark) var(--pale)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}::selection{background:var(--rose-dark);color:#fff}a{color:inherit;text-decoration:none;text-underline-offset:.24em}button,input,select,textarea{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}img,video{display:block;max-width:100%}svg{display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}h2{font-size:clamp(46px,5.4vw,84px)}h3{font-size:clamp(27px,2.3vw,38px)}h1 em,h2 em{font-weight:400;color:var(--rose-dark)}p+p{margin-top:1.3em}button{background:none;border:0}a:focus-visible,button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--rose-dark);outline-offset:5px}address{font-style:normal}.section{padding:130px var(--gutter)}.text-link{display:inline-flex;align-items:center;gap:36px;font-size:14px;font-weight:600;line-height:1.5;border-bottom:1px solid currentColor;padding:0 0 12px;transition:color .25s}.text-link svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .45s var(--ease)}.text-link:hover{color:var(--rose-dark)}.text-link:hover svg{transform:translateX(6px)}.skip{position:fixed;top:-100px;left:20px;z-index:1000;background:#fff;padding:14px}.skip:focus{top:10px}
.site-header{height:var(--header-h);position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:12px var(--gutter);gap:30px;background:#fff;border-bottom:1px solid #20252b13}.brand{display:flex;align-items:center;gap:18px;flex-shrink:0}.brand-logo{width:86px;height:86px;object-fit:contain}.brand-wordmark{display:flex;flex-direction:column}.brand-name{font-family:var(--serif);font-size:28px;letter-spacing:-.035em;line-height:1.1}.brand-profession{font-size:11px;letter-spacing:.28em;text-transform:uppercase;margin-top:9px}.nav{display:flex;align-items:center;gap:clamp(16px,1.7vw,28px)}.nav a{font-size:13px;white-space:nowrap;font-weight:500;position:relative}.nav a:after{content:'';position:absolute;bottom:-7px;height:1px;left:0;right:0;background:var(--rose-dark);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav a:hover:after,.nav a[aria-current]:after{transform:scaleX(1)}.nav .nav-contact{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--ink);padding:9px 0}.nav-contact svg{width:20px}.menu-toggle{display:none}
.manifesto{position:relative;background:var(--ink);color:#fff;padding-top:150px;padding-bottom:120px;overflow:hidden}.manifesto h2{font-size:clamp(46px,6.1vw,90px);max-width:1150px;line-height:1.16}.manifesto h2 em{color:#dba4a9}.manifesto-bottom{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:95px;align-items:end}.manifesto-mark{font-family:var(--serif);font-size:clamp(120px,19vw,280px);letter-spacing:-.04em;line-height:.8;color:#c9a9ad;opacity:.23}.manifesto-bottom h3{font-size:29px;line-height:1.25;max-width:480px}.manifesto-bottom p{font-size:16px;line-height:1.9;margin-top:24px;max-width:590px;color:#e0dce0}.manifesto .text-link{margin-top:30px}.manifesto .text-link:hover{color:#dba4a9}
.practice-home{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.practice-visual{position:relative;align-self:stretch;min-height:600px;overflow:hidden}.practice-visual img{height:100%;width:100%;object-fit:cover;object-position:47% center;transition:transform 1s var(--ease)}.practice-visual:has(+.practice-content a:hover) img{transform:scale(1.05)}.practice-image-caption{position:absolute;bottom:0;left:0;right:0;padding:38px 24px 20px;background:linear-gradient(transparent,#172126a6);color:#fff;font-size:12px}.practice-content h2{font-size:clamp(44px,4.5vw,67px)}.practice-rows{margin:42px 0 30px}.practice-rows a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:clamp(24px,2.2vw,32px);transition:color .2s}.practice-rows a:first-child{border-top:1px solid var(--line)}.practice-rows a:hover{color:var(--rose-dark)}.practice-rows a span{transition:transform .4s var(--ease)}.practice-rows a:hover span,.practice-rows a:focus-visible span{transform:translateX(8px)}.practice-rows svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1}.practice-content>p{font-size:14px;line-height:1.9;max-width:500px}.practice-content>.text-link{margin-top:30px}
.office-story{background:var(--pale);overflow:hidden}.office-story-heading{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;align-items:start;padding-bottom:70px}.office-story-heading h2{font-size:clamp(48px,5.1vw,78px)}.office-story-heading h3{font-size:26px;line-height:1.3}.office-story-heading p{font-size:15px;line-height:1.85;margin-top:22px}.office-story-heading .text-link{margin-top:28px}.estate-ribbon{display:grid;grid-template-columns:1.35fr .8fr 1fr;gap:24px;padding:0 var(--gutter);align-items:start}.estate-ribbon figure{margin:0;overflow:hidden}.estate-ribbon figure:nth-child(2){padding-top:80px}.estate-ribbon figure:nth-child(3){padding-top:25px}.estate-ribbon img{width:100%;height:360px;object-fit:cover;transition:transform 1.4s var(--ease)}.estate-ribbon figure:first-child img{height:430px}.estate-ribbon figure:nth-child(3) img{height:390px}.estate-ribbon figure:hover img{transform:scale(1.04)}.estate-ribbon figcaption{font-size:12px;margin-top:14px}.film-invite{display:flex;align-items:center;justify-content:space-between;padding-top:70px;padding-bottom:70px}.film-invite p{font-family:var(--serif);font-size:36px;letter-spacing:-.03em}.film-open svg{width:18px;fill:currentColor}.ethics-section{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;background:var(--rose-dark);color:white}.ethics-section h2{font-size:clamp(65px,8vw,110px);max-width:590px;line-height:1.08}.ethics-section h2 span{color:#e9b9bf}.ethics-section p{font-size:16px;line-height:1.9;max-width:600px}.ethics-section .text-link{margin-top:30px}.ethics-section .text-link:hover{color:#f4cbd0}
.network{background:#20252b;color:#fff;overflow:hidden}.network-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px}.network-heading h2{font-size:clamp(48px,5.4vw,82px)}.network h2 em{color:#dba4a9}.network-intro{font-size:14px;color:#e3dfe2;line-height:1.9;max-width:310px;padding-bottom:8px}.network-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:9vw;align-items:center;margin-top:70px}.brazil-map svg{width:100%;max-height:625px;overflow:visible}.state{fill:#2b3239;stroke:#4b545e;stroke-width:.9;transition:fill .3s,stroke .3s}.state-muted{pointer-events:none}.has-partners{fill:#8d5159;stroke:#c58990;cursor:pointer}.has-partners:hover,.has-partners:focus-visible{fill:#d198a0;stroke:#fff;outline:none;stroke-width:2}.has-partners.selected{fill:#dba4a9;stroke:#fff;stroke-width:1.2}.map-labels{pointer-events:none;fill:#fff;font-family:var(--sans);font-size:11px;text-anchor:middle}.map-caption{font-size:12px;display:flex;align-items:center;gap:10px;color:#ddd8db;margin-top:24px}.map-key{width:8px;height:8px;display:block;background:#dba4a9;border-radius:50%}.network-selector{border-top:1px solid #ffffff40;padding-top:20px}.network-selector label{display:block;font-size:12px;margin-bottom:10px;color:#d7ced1}.network select{font-size:17px;background:transparent;border:0;border-bottom:1px solid #ffffff50;border-radius:0;color:#fff;width:100%;padding:10px 20px 14px 0;cursor:pointer}.network option{color:#20252b;background:#fff}.state-result{padding-top:42px}.partner-number{font-family:var(--serif);font-size:clamp(110px,13vw,180px);line-height:.9;letter-spacing:-.04em;color:#e2a9b1;font-variant-numeric:tabular-nums}.partner-label{margin-top:12px;font-size:14px}.state-result h3{font-size:clamp(30px,3.6vw,50px);margin-top:25px;line-height:1.2}.network-detail-caption{margin-top:38px;font-size:13px;color:#d7ced1;line-height:1.8}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:65px}.section-head h2{font-size:clamp(48px,5.4vw,78px)}.section-head .text-link{margin-bottom:5px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.news-image{display:block;overflow:hidden;aspect-ratio:1.5;background:var(--pale)}.news-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.news-item:hover img{transform:scale(1.05)}.news-text{padding-top:24px}.date{font-size:11px;color:#5d5557;margin-bottom:12px}.news-item h3{font-size:28px;line-height:1.25;letter-spacing:-.025em}.news-item .text-link{font-size:12px;margin-top:24px;gap:24px}.news-item .text-link svg{width:19px}
.footer{padding:90px var(--gutter) 0;background:#fff;border-top:1px solid var(--line)}.footer-contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:7vw}.footer-contact h2{font-size:clamp(65px,7.5vw,108px)}.footer-cta{margin-top:28px}.footer-contact-details{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:60px;font-size:13px;line-height:1.9}.footer-detail-label{display:block;font-size:11px;margin-bottom:13px;color:#676065}.footer-channels>a{display:block;overflow-wrap:anywhere}.footer-channels a:hover,.footer-contact address a:hover{color:var(--rose-dark)}.footer-social{display:inline-flex!important;align-items:center;gap:12px;margin-top:15px;border-bottom:1px solid var(--line);padding-bottom:5px}.footer-social svg{width:17px;height:17px}.footer-map{padding-top:12px}.google-map{border:0;display:block;width:100%;height:430px;background:var(--pale)}.footer-map-caption{display:flex;justify-content:space-between;gap:24px;font-size:11px;margin-top:18px}.map-directions{display:flex;align-items:center;gap:10px}.map-directions svg{width:18px;height:18px}.footer-signoff{display:flex;align-items:center;justify-content:space-between;margin-top:80px;padding:26px 0;border-top:1px solid var(--line);font-size:11px;gap:25px}.footer-brand{display:flex;align-items:center;gap:15px;font-family:var(--serif);font-size:22px;line-height:1.2}.footer-brand img{width:60px;height:60px}.footer-brand>span>span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.13em;margin-top:6px}.footer-copyright{color:#6c6266}.back-to-top span{margin-left:12px}.footer .eyebrow,.network .eyebrow{display:none}
.film-dialog{border:0;padding:24px;background:#20252b;color:#fff;max-width:1100px;width:92vw;max-height:92svh}.film-dialog::backdrop{background:#111a23dc}.film-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:22px}.film-dialog h2{font-size:22px;letter-spacing:0}.film-close{display:flex;align-items:center;gap:15px;font-size:12px;padding:10px}.film-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3}.film-dialog video{width:100%;max-height:75svh}
@media(min-width:1600px){.opening-copy{top:13%}.cinema-media{inset:6% 4% 14% 43%}}
@media(max-width:1200px){.brand-wordmark{display:none}.nav{gap:20px}.nav a{font-size:12px}.opening-copy p{font-size:13px}.practice-home{gap:5vw}.chapter-nav{max-width:420px}.scroll-instruction{font-size:11px}}
@media(max-width:1000px){:root{--header-h:102px}.site-header{padding-top:10px;padding-bottom:10px}.brand-logo{width:80px;height:80px}.brand-wordmark{display:flex}.menu-toggle{display:flex;align-items:center;gap:20px;min-height:44px;font-size:13px;padding:10px 0}.menu-icon{width:28px;display:block}.menu-icon span{display:block;height:1px;background:currentColor;margin:6px 0;transition:transform .3s}.menu-toggle[aria-expanded=true] .menu-icon span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:28px var(--gutter) 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100svh - var(--header-h));overflow:auto}.nav.open{display:flex}.nav a{font-family:var(--serif);font-size:28px;padding:13px 0}.nav a:after{bottom:7px;right:auto;width:45px}.nav .nav-contact{border:0;justify-content:space-between}.nav-contact svg{width:26px}.cinema-stage{min-height:600px}.cinema-media{inset:38% 4% 14% 4%}.opening-copy{top:4%;width:92%;right:var(--gutter)}.opening-copy h1{font-size:clamp(50px,7.7vw,76px);line-height:1.02;max-width:700px}.opening-copy h1 br:first-child{display:none}.opening-copy h1 br:nth-child(2){display:none}.opening-copy h1 em{display:inline}.opening-copy h1 em:before{content:' '}.opening-copy p{font-size:13px;line-height:1.5;max-width:450px;margin-top:16px}.opening-copy .text-link{margin-top:15px;font-size:12px;padding-bottom:5px}.cinema-bottom{flex-wrap:wrap;align-items:center;bottom:22px;gap:12px}.chapter-nav{max-width:none;flex-basis:100%;order:-1;gap:20px}.chapter-nav button{min-width:0}.scroll-instruction{font-size:11px}.skip-film{font-size:11px}.film-caption{bottom:155px;max-width:650px}.film-caption h2{font-size:clamp(44px,7.5vw,72px)}.manifesto-bottom{gap:5vw}.manifesto-mark{font-size:150px}.manifesto-bottom h3{font-size:26px}.manifesto-bottom p{font-size:14px}.section{padding-top:100px;padding-bottom:100px}.practice-home{grid-template-columns:.9fr 1.1fr;gap:5vw}.practice-visual{min-height:580px}.practice-content h2{font-size:47px}.practice-rows a{font-size:25px}.office-story-heading{gap:5vw}.office-story-heading h2{font-size:52px}.estate-ribbon{gap:17px;grid-template-columns:1.15fr 1fr 1fr}.estate-ribbon figure:nth-child(3){display:block}.estate-ribbon img,.estate-ribbon figure:first-child img{height:330px}.network-grid{gap:5vw;grid-template-columns:1.2fr 1fr}.network-heading{align-items:start;gap:28px}.network-intro{max-width:230px;font-size:12px}.footer-contact-grid{grid-template-columns:1fr 1fr;gap:5vw}.footer-contact-details{grid-template-columns:1fr;margin-top:38px;gap:25px}.google-map{height:480px}.news-grid{gap:24px}.news-item h3{font-size:25px}}
@media(max-width:600px){:root{--header-h:88px;--gutter:22px}.site-header{gap:15px}.brand-logo{width:64px;height:64px}.brand{gap:12px}.brand-name{font-size:24px}.brand-profession{font-size:8px;margin-top:7px}.menu-toggle{gap:12px}.menu-icon{width:24px}.cinema{height:430svh}.cinema-stage{min-height:600px}.cinema-media{inset:42% 0% 15% 0%}.film-layer img,.film-layer video{object-position:53% 50%}.opening-copy{top:4%;width:calc(100% - 44px)}.opening-copy h1{font-size:49px;line-height:1.04;max-width:350px}.opening-copy h1 br:first-child{display:block}.opening-copy p{font-size:11px;line-height:1.6;margin-top:15px}.opening-copy .text-link{font-size:11px;margin-top:12px}.film-caption{bottom:155px;right:22px}.film-caption h2{font-size:46px;line-height:1.08}.film-place{font-size:11px}.chapter-nav{gap:14px}.chapter-nav button{font-size:11px;min-height:43px}.cinema-bottom{left:22px;right:22px;bottom:20px}.section{padding:75px var(--gutter)}.manifesto h2{font-size:44px;line-height:1.16}.manifesto-bottom{display:block;margin-top:45px}.manifesto-mark{display:none}.manifesto-bottom h3{font-size:26px}.manifesto-bottom p{font-size:14px;line-height:1.85}.practice-home{display:flex;flex-direction:column;gap:38px}.practice-visual{min-height:0;height:380px;width:100%;order:2}.practice-content h2{font-size:46px}.practice-rows{margin-top:32px}.practice-rows a{font-size:26px}.office-story-heading{display:block;padding-bottom:40px}.office-story-heading h2{font-size:47px;margin-bottom:35px}.office-story-heading h3{font-size:24px}.office-story-heading p{font-size:14px}.estate-ribbon{display:flex;overflow:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:15px}.estate-ribbon figure,.estate-ribbon figure:nth-child(2),.estate-ribbon figure:nth-child(3){display:block;flex:0 0 85%;padding-top:0;scroll-snap-align:center}.estate-ribbon img,.estate-ribbon figure:first-child img,.estate-ribbon figure:nth-child(3) img{height:330px}.estate-ribbon figcaption{font-size:11px}.film-invite{display:block;padding-top:40px;padding-bottom:55px}.film-invite p{font-size:28px;margin-bottom:25px}.ethics-section{display:block}.ethics-section h2{font-size:66px;margin-bottom:38px}.ethics-section p{font-size:14px}.network-heading{display:block}.network-heading h2{font-size:46px}.network-intro{margin-top:25px;font-size:13px;max-width:100%}.network-grid{display:flex;flex-direction:column;margin-top:30px;gap:35px}.brazil-map{width:100%}.network-detail{width:100%}.state-result{position:relative;display:grid;grid-template-columns:1fr 1.4fr;align-items:center;padding-top:30px;gap:4px 22px}.partner-number{font-size:115px;grid-row:1/3}.partner-label{font-size:12px;grid-column:2;grid-row:2;margin:0}.state-result h3{grid-column:2;grid-row:1;font-size:28px;align-self:end;margin:0}.network-detail-caption{font-size:12px;margin-top:22px}.map-caption{font-size:11px;margin-top:12px}.section-head{display:block;margin-bottom:35px}.section-head h2{font-size:48px;margin-bottom:28px}.news-grid{grid-template-columns:1fr;gap:45px}.news-item h3{font-size:29px}.news-text{padding-top:20px}.news-item .text-link{margin-top:20px}.footer{padding:60px var(--gutter) 0}.footer-contact-grid{display:block}.footer-contact h2{font-size:70px}.footer-contact-details{grid-template-columns:1fr 1fr;gap:22px;font-size:12px}.footer-map{margin-top:45px;padding-top:0}.google-map{height:350px}.footer-map-caption{font-size:11px;gap:14px}.footer-signoff{flex-wrap:wrap;margin-top:45px;gap:22px}.footer-copyright{display:none}.footer-brand{font-size:19px}.footer-brand img{width:48px;height:48px}.back-to-top{font-size:11px}.film-dialog{padding:14px;width:96vw}.film-dialog h2{font-size:17px}.film-dialog-top{gap:12px;margin-bottom:14px}.film-close{font-size:11px;padding:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.cinema{height:auto}.cinema-stage{position:relative;top:auto;height:calc(100svh - var(--header-h))}.cinema-media{will-change:auto}.chapter-nav{display:none}.cinema-bottom{color:var(--ink)}.scroll-instruction{display:none}}

/* Real-image previews follow both pointer and keyboard focus. */
.practice-visual .practice-preview{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease),transform 1s var(--ease)}.practice-visual .practice-preview.is-active{opacity:1}.practice-rows a.is-active{color:var(--rose-dark)}
.embed-wrap{position:relative}.embed-fallback{position:absolute;inset:0;background:var(--pale);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(28px,4vw,65px);transition:opacity .25s}.embed-fallback h3{font-size:clamp(32px,3.5vw,48px);max-width:330px}.embed-fallback p{font-size:14px;margin-top:22px;line-height:1.8}.embed-fallback .text-link{margin-top:30px;font-size:13px}.embed-pin{font-family:var(--serif);font-size:60px;line-height:1;margin-bottom:30px;color:var(--rose-dark)}.embed-wrap.is-loaded>.embed-fallback{opacity:0;visibility:hidden;pointer-events:none}.form-embed{min-height:480px}.form-embed .embed-fallback{max-height:700px}.form-embed .embed-fallback h2{font-size:clamp(38px,4vw,58px)}

.form-embed:not(.is-loaded) iframe{height:560px!important}.form-embed .embed-fallback{max-height:none}
/* A single continuous visit, already moving on arrival. */
.journey{height:480svh;position:relative;background:var(--ink)}.journey-stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));min-height:560px;isolation:isolate;overflow:hidden;color:#fff}.journey-picture{position:absolute;inset:0;background:var(--ink)}.journey-poster,.journey-canvas,.journey-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.journey-canvas,.journey-video{opacity:0}.journey[data-renderer=frames] .journey-canvas,.journey[data-renderer=video] .journey-video{opacity:1}.journey-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,20,26,.78),rgba(13,20,26,.12) 64%,rgba(13,20,26,.02));pointer-events:none}.journey-welcome,.journey-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:155px;max-width:1000px;pointer-events:none}.journey h1,.journey h2{color:#fff;font-size:clamp(58px,6.4vw,92px);line-height:1.08;letter-spacing:-.03em}.journey h1 em{color:#fff}.journey-welcome p{font-size:14px;line-height:1.65;margin-top:24px;max-width:530px}.journey-copy{opacity:0;visibility:hidden;max-width:940px}.journey-copy h2{font-size:clamp(50px,5.8vw,84px)}.journey-controls{position:absolute;bottom:36px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;gap:28px;font-size:13px}.journey-enter{display:flex;align-items:center;gap:20px;white-space:nowrap}.journey-enter svg{width:15px;height:28px;stroke:currentColor;fill:none;stroke-width:1.2}.journey-chapters{display:flex;gap:28px;flex:1;justify-content:center}.journey-chapters button{font-size:13px;padding:12px 0;min-height:46px;opacity:.65;position:relative}.journey-chapters button:after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:#fff;transform:scaleX(0);transition:transform .35s var(--ease)}.journey-chapters button[aria-pressed=true],.journey-chapters button:hover{opacity:1}.journey-chapters button[aria-pressed=true]:after{transform:scaleX(1)}.journey-pause{display:flex;align-items:center;gap:9px;padding:10px 0;font-size:12px;min-height:44px}.journey-pause[hidden]{display:none}.journey-pause svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.3;fill:none}.journey-skip{font-size:12px;white-space:nowrap;opacity:.85}.journey-controls :focus-visible{outline-color:#fff}.journey-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff26}.journey-progress span{display:block;width:100%;height:100%;background:#dba4a9;transform:scaleX(0);transform-origin:left}.journey-entry-anchor{position:absolute;top:20svh;left:0;width:1px;height:1px;pointer-events:none}.journey.is-inside .journey-enter{opacity:.7}.journey.is-inside .journey-welcome{visibility:hidden}
@media(max-width:1100px){.journey-controls{flex-wrap:wrap;gap:12px 24px;bottom:26px}.journey-chapters{order:-1;flex-basis:100%;justify-content:flex-start;gap:35px}.journey-skip{margin-left:auto}.journey-welcome,.journey-copy{bottom:175px}.journey h1{font-size:clamp(58px,8vw,78px)}}
@media(max-width:600px){.journey{height:440svh}.journey-stage{min-height:580px}.journey h1{font-size:52px;line-height:1.08}.journey h2{font-size:49px}.journey-welcome,.journey-copy{bottom:185px}.journey-welcome p{font-size:13px;line-height:1.65;margin-top:22px}.journey-chapters{justify-content:space-between;gap:16px}.journey-chapters button{font-size:12px}.journey-controls{gap:15px;bottom:24px}.journey-enter{font-size:13px;gap:14px}.journey-pause{margin-left:auto;font-size:12px}.journey-skip{flex-basis:100%;font-size:12px;margin-left:0}.journey-copy h2{font-size:47px}.journey-shade{background:linear-gradient(0deg,rgba(13,20,26,.82),rgba(13,20,26,.08) 78%)}}
@media(prefers-reduced-motion:reduce){.journey{height:auto}.journey-stage{position:relative;top:auto}.journey-chapters,.journey-pause,.journey-enter,.journey-progress{display:none}.journey-skip{margin-left:0}.journey-welcome{bottom:100px}.journey-canvas,.journey-video{display:none!important}}
/* inner-v2.css */
/* Secondary pages — the same architectural, editorial world as the home. */
body.inner{background:#fff;color:#20252b;font-family:var(--sans,'Raleway',sans-serif);font-size:17px;line-height:1.8}
body.inner main{min-width:0}
body.inner .section{padding:clamp(72px,8vw,128px) var(--gutter,clamp(22px,5vw,88px))}
body.inner h1,body.inner h2,body.inner h3{font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-weight:400;letter-spacing:-.035em;text-wrap:balance}
body.inner h1{font-size:clamp(60px,7.6vw,96px);line-height:1.04}
body.inner h2{font-size:clamp(42px,4.3vw,64px);line-height:1.12}
body.inner h3{font-size:clamp(30px,3.3vw,48px);line-height:1.16}
body.inner p{max-width:72ch}
body.inner p+p{margin-top:1.2em}
body.inner .text-link{font-family:var(--sans,'Raleway',sans-serif);font-size:13px;line-height:1.5;letter-spacing:.01em}

/* Introductions begin as a title spread, with the reading column set inward. */
body.inner .page-intro{display:block;padding-top:clamp(68px,7.5vw,116px);padding-bottom:clamp(70px,8vw,128px)}
body.inner .page-intro h1{position:static;max-width:14ch}
body.inner .intro-body{width:64%;max-width:790px;margin:clamp(40px,5.2vw,80px) 0 0 auto}
body.inner .intro-body p{font-size:17px;line-height:1.85}
body.inner .intro-body p:first-child{font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-size:clamp(25px,2.55vw,36px);line-height:1.5;letter-spacing:-.018em}
body.inner .wide-image{margin:0 0 0 var(--gutter);max-height:none;overflow:hidden;background:#f2f0ed}
body.inner .wide-image img{width:100%;height:auto;max-height:none;aspect-ratio:1.95;object-fit:cover}

/* Beliefs read as an editorial index, not three interchangeable cards. */
body.inner .principles{display:block;margin:0;background:#f5f3f0;padding-top:clamp(80px,8vw,130px);padding-bottom:clamp(80px,8vw,130px)}
body.inner .principles>div{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw;border-top:1px solid #c9c5c0;padding:48px 0}
body.inner .principles>div:last-child{padding-bottom:0;border-bottom:0}
body.inner .principles h2{font-size:clamp(40px,4vw,58px);margin:0}
body.inner .principles p,body.inner .principles li{font-family:var(--sans,'Raleway',sans-serif);font-size:16px;line-height:1.85}
body.inner .principles p{max-width:58ch}
body.inner .principles ul{margin:0;padding:0;list-style:none}
body.inner .principles li+li{margin-top:12px}

/* Portraits alternate within a quiet, generous interview-like rhythm. */
body.inner .team{padding-top:clamp(90px,10vw,156px);padding-bottom:clamp(90px,10vw,156px)}
body.inner .team-intro{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw;align-items:start;margin:0 0 clamp(68px,8vw,120px)}
body.inner .team-intro h2{max-width:8ch}
body.inner .team-intro p{font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-size:clamp(25px,2.35vw,34px);line-height:1.5;margin:0}
body.inner .partner-bio{display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw;align-items:start;margin:0 0 clamp(88px,10vw,156px)}
body.inner .partner-bio:last-child{margin-bottom:0}
body.inner .portrait{aspect-ratio:1;overflow:hidden;background:#f2f0ed;align-self:start;max-height:none}
body.inner .portrait img{width:100%;height:100%;object-fit:cover}
body.inner .partner-bio h3{max-width:16ch;font-size:clamp(32px,3.5vw,49px)}
body.inner .partner-bio .bio-role{font:12px/1.4 var(--sans,'Raleway',sans-serif);letter-spacing:.11em;text-transform:uppercase;color:#854345;margin:22px 0 34px}
body.inner .partner-bio p{font:16px/1.9 var(--sans,'Raleway',sans-serif);max-width:67ch}
body.inner .partner-bio p+p{margin-top:20px}
body.inner .partner-bio:nth-of-type(even){grid-template-columns:1.18fr .82fr}
body.inner .partner-bio:nth-of-type(even) .portrait{order:2}
body.inner .partner-bio:nth-of-type(even)>div:last-child{order:1}

/* Practice culminates in a room-scale image rather than another text section. */
body.inner .practice-image{margin:0 0 clamp(88px,10vw,156px) calc(var(--gutter) + 9vw);max-height:none;overflow:hidden;background:#f2f0ed}
body.inner .practice-image img{display:block;width:100%;height:auto;aspect-ratio:1.6;max-height:850px;object-fit:cover}

/* A sequence of broad views and tighter crops gives the office a photo essay. */
body.inner .gallery-section{padding-top:clamp(88px,10vw,150px);padding-bottom:clamp(88px,10vw,150px)}
body.inner .gallery-section h2{max-width:12ch;margin-bottom:clamp(55px,6vw,90px)}
body.inner .office-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(36px,7vw,112px) clamp(20px,3vw,48px);align-items:center}
body.inner .office-gallery img{display:block;width:100%;height:auto;max-height:none;object-fit:cover;grid-column:span 6;aspect-ratio:1.3}
body.inner .office-gallery img:nth-child(6n+1){grid-column:1/-1;aspect-ratio:1.9;height:auto}
body.inner .office-gallery img:nth-child(6n+2){grid-column:1/span 7;aspect-ratio:1.3}
body.inner .office-gallery img:nth-child(6n+3){grid-column:9/span 4;aspect-ratio:.85;align-self:end;margin-top:14%}
body.inner .office-gallery img:nth-child(6n+4){grid-column:3/span 10;aspect-ratio:1.75}
body.inner .office-gallery img:nth-child(6n+5){grid-column:1/span 5;aspect-ratio:.9;height:auto}
body.inner .office-gallery img:nth-child(6n+6){grid-column:7/span 6;aspect-ratio:1.3}

/* News behaves like a journal: one lead story and a staggered visual rhythm. */
body.inner .blog-heading{padding-bottom:clamp(55px,7vw,104px)}
body.inner .blog-heading h1{max-width:14ch}
body.inner .all-news{padding-top:0;padding-bottom:clamp(88px,10vw,156px)}
body.inner .all-news .news-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(70px,9vw,140px) clamp(22px,3vw,48px)}
body.inner .all-news .news-item{grid-column:span 6;min-width:0}
body.inner .all-news .featured{grid-column:1/-1;display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(40px,6vw,96px);border:0;border-bottom:1px solid #d9d5d1;padding-bottom:clamp(64px,7vw,100px)}
body.inner .all-news .news-item:nth-child(2),body.inner .all-news .news-item:nth-child(6){grid-column:1/span 5}
body.inner .all-news .news-item:nth-child(3),body.inner .all-news .news-item:nth-child(7){grid-column:8/span 5;margin-top:90px}
body.inner .all-news .news-item:nth-child(4){grid-column:1/span 7}
body.inner .all-news .news-item:nth-child(5){grid-column:9/span 4;margin-top:90px}
body.inner .news-image{display:block;aspect-ratio:1.45;overflow:hidden;background:#f2f0ed}
body.inner .news-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
body.inner .news-item:hover .news-image img{transform:scale(1.025)}
body.inner .news-text{padding-top:24px}
body.inner .news-text .date{font:12px/1.5 var(--sans,'Raleway',sans-serif);letter-spacing:.025em;color:#625954;margin-bottom:18px}
body.inner .news-text h3{font-size:clamp(27px,2.4vw,36px);line-height:1.26;letter-spacing:-.02em}
body.inner .news-text h3 a{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.17em;transition:text-decoration-color .25s}
body.inner .news-text h3 a:hover{text-decoration-color:currentColor}
body.inner .news-text .text-link{margin-top:25px;font-size:12px}
body.inner .all-news .featured .news-image{aspect-ratio:1.25}
body.inner .all-news .featured .news-text{padding:0;align-self:center}
body.inner .all-news .featured h3{font-size:clamp(34px,3.7vw,52px);line-height:1.18}

/* Article typography is deliberately quieter and comfortable for long reading. */
body.inner .article{padding:clamp(66px,7vw,108px) var(--gutter) clamp(88px,10vw,156px)}
body.inner .article-heading{max-width:1200px;margin:0 auto clamp(48px,5vw,76px)}
body.inner .article-heading>.text-link{margin-top:0;margin-bottom:clamp(36px,4vw,64px)}
body.inner .article-heading h1{max-width:25ch;font-size:clamp(42px,5.7vw,78px);line-height:1.13;letter-spacing:-.025em}
body.inner .article-meta{margin-top:30px;font:12px/1.7 var(--sans,'Raleway',sans-serif);color:#625954;max-width:80ch}
body.inner .article-cover{max-width:1200px;margin:0 auto;background:#f2f0ed}
body.inner .article-cover img{width:100%;height:auto;max-height:800px;object-fit:cover}
body.inner .article-body{max-width:730px;margin:clamp(48px,6vw,88px) auto 0;font:18px/1.95 var(--sans,'Raleway',sans-serif);overflow-wrap:break-word}
body.inner .article-body:empty{display:none}
body.inner .article-body>p:first-child{font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-size:27px;line-height:1.55;letter-spacing:-.012em;margin-bottom:32px}
body.inner .article-body h2,body.inner .article-body h3{font-size:clamp(30px,3vw,40px);line-height:1.25;margin:58px 0 23px}
body.inner .article-body p+p{margin-top:1.3em}
body.inner .article-body blockquote{margin:48px 0;padding:32px 0;border-top:1px solid #b8a5a1;border-bottom:1px solid #b8a5a1;font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-size:28px;line-height:1.55}
body.inner .article-body a{text-decoration:underline;text-underline-offset:.2em;color:#854345}
body.inner .article-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,44px);max-width:1200px;margin:clamp(55px,7vw,100px) auto 0;align-items:start}
body.inner .article-gallery img{width:100%;height:auto;aspect-ratio:1.4;object-fit:cover}
body.inner .article-gallery img:nth-child(5n+1){grid-column:1/-1;aspect-ratio:1.8}

/* Contact keeps a direct, generous two-column path to a real form. */
body.inner .contact-page{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,92px);align-items:start;padding-top:clamp(68px,7vw,110px)}
body.inner .contact-info{min-width:0;max-width:none}
body.inner .contact-info h1{font-size:clamp(60px,7.1vw,96px)}
body.inner .contact-intro{font-family:var(--serif,'Bodoni Moda',Georgia,serif);font-size:clamp(24px,2.2vw,31px);line-height:1.5;max-width:23ch;margin-top:32px}
body.inner .contact-info address{font:16px/1.8 var(--sans,'Raleway',sans-serif);margin:48px 0 30px;max-width:30ch}
body.inner .contact-info address a:hover{text-decoration:underline;text-decoration-thickness:1px}
body.inner .contact-method{display:block;font:clamp(15px,1.55vw,21px)/1.8 var(--sans,'Raleway',sans-serif);overflow-wrap:anywhere}
body.inner .contact-method:hover{text-decoration:underline;text-decoration-thickness:1px}
body.inner .contact-info>.text-link{margin-top:28px}
body.inner .contact-photo{width:100%;height:auto;aspect-ratio:1.35;object-fit:cover;margin-top:clamp(48px,5vw,80px)}
body.inner .contact-form{min-width:0;background:white;border-top:1px solid #d9d5d1;padding-top:20px;margin:8px 0 0}
body.inner .contact-form iframe{display:block;max-width:100%;background:white}
body.inner .form-fallback{max-width:none;text-align:left;margin:20px 0 0;padding-top:20px;border-top:1px solid #d9d5d1}
body.inner .form-fallback .text-link{font-size:12px;gap:16px;margin:0}
body.inner .form-fallback .text-link svg{flex-shrink:0}

body.inner .missing{min-height:65svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:30px}
body.inner .missing h1{max-width:13ch}
body.inner .missing p,body.inner .missing .text-link{margin:0}

/* At the review panel's 858px width, the compositions remain fully authored. */
@media(max-width:1000px){
 body.inner .intro-body{width:72%;margin-top:44px}
 body.inner .page-intro h1{font-size:clamp(56px,8.8vw,82px)}
 body.inner .principles>div{grid-template-columns:.7fr 1.3fr;gap:44px;padding:38px 0}
 body.inner .team-intro,body.inner .partner-bio{grid-template-columns:.78fr 1.22fr;gap:40px}
 body.inner .partner-bio:nth-of-type(even){grid-template-columns:1.22fr .78fr}
 body.inner .partner-bio h3{font-size:36px}
 body.inner .partner-bio p{font-size:15px;line-height:1.85}
 body.inner .portrait{position:sticky;top:150px}
 body.inner .office-gallery{column-gap:24px;row-gap:60px}
 body.inner .all-news .featured{grid-template-columns:1fr 1fr;gap:34px}
 body.inner .all-news .featured h3{font-size:34px}
 body.inner .all-news .news-item:nth-child(3),body.inner .all-news .news-item:nth-child(5),body.inner .all-news .news-item:nth-child(7){margin-top:60px}
 body.inner .all-news .news-item:nth-child(4){grid-column:1/span 6}
 body.inner .all-news .news-item:nth-child(5){grid-column:8/span 5}
 body.inner .news-text h3{font-size:28px}
 body.inner .article-heading h1{font-size:clamp(42px,6.7vw,66px)}
 body.inner .contact-page{grid-template-columns:.8fr 1.2fr;gap:28px}
 body.inner .contact-info h1{font-size:64px}
 body.inner .contact-intro{font-size:26px}
 body.inner .contact-method{font-size:15px}
 body.inner .contact-info address{font-size:15px}
}

@media(max-width:700px){
 body.inner{font-size:16px}
 body.inner .section{padding:68px var(--gutter)}
 body.inner h1{font-size:clamp(48px,12vw,70px);line-height:1.06}
 body.inner h2{font-size:42px}
 body.inner .page-intro{padding-top:56px;padding-bottom:64px}
 body.inner .page-intro h1{font-size:clamp(48px,12vw,70px);max-width:12ch}
 body.inner .intro-body{width:100%;margin-top:36px}
 body.inner .intro-body p{font-size:16px;line-height:1.85}
 body.inner .intro-body p:first-child{font-size:26px;line-height:1.5}
 body.inner .wide-image{margin:0 0 0 var(--gutter)}
 body.inner .wide-image img{aspect-ratio:1.14;min-height:0;max-height:none}
 body.inner .principles{padding-top:68px;padding-bottom:68px}
 body.inner .principles>div{grid-template-columns:1fr;gap:22px;padding:32px 0}
 body.inner .principles h2{font-size:40px}
 body.inner .principles p,body.inner .principles li{font-size:15px}
 body.inner .team-intro{grid-template-columns:1fr;gap:26px;margin-bottom:52px}
 body.inner .team-intro h2{max-width:12ch}
 body.inner .team-intro p{font-size:26px}
 body.inner .partner-bio,body.inner .partner-bio:nth-of-type(even){grid-template-columns:1fr;gap:30px;margin-bottom:70px}
 body.inner .partner-bio:nth-of-type(even) .portrait,body.inner .partner-bio:nth-of-type(even)>div:last-child{order:initial}
 body.inner .portrait{position:static;aspect-ratio:1;max-height:none}
 body.inner .partner-bio h3{font-size:36px;max-width:16ch}
 body.inner .partner-bio .bio-role{margin:17px 0 25px}
 body.inner .partner-bio p{font-size:16px;line-height:1.85}
 body.inner .practice-image{margin:0 0 70px var(--gutter);height:auto}
 body.inner .practice-image img{height:auto;aspect-ratio:1.05;max-height:none;object-position:54% center}
 body.inner .gallery-section h2{margin-bottom:38px}
 body.inner .office-gallery{grid-template-columns:repeat(6,minmax(0,1fr));gap:30px 12px}
 body.inner .office-gallery img,body.inner .office-gallery img:nth-child(6n+1),body.inner .office-gallery img:nth-child(6n+2),body.inner .office-gallery img:nth-child(6n+3),body.inner .office-gallery img:nth-child(6n+4),body.inner .office-gallery img:nth-child(6n+5),body.inner .office-gallery img:nth-child(6n+6){grid-column:1/-1;aspect-ratio:1.3;height:auto;margin:0}
 body.inner .office-gallery img:nth-child(3n+2){grid-column:1/span 5;aspect-ratio:1.05}
 body.inner .office-gallery img:nth-child(3n+3){grid-column:2/span 5;aspect-ratio:1.05}
 body.inner .blog-heading{padding-top:56px;padding-bottom:46px}
 body.inner .blog-heading h1{max-width:11ch}
 body.inner .all-news{padding-top:0}
 body.inner .all-news .news-grid{display:block}
 body.inner .all-news .news-item,body.inner .all-news .news-item:nth-child(3),body.inner .all-news .news-item:nth-child(5),body.inner .all-news .news-item:nth-child(7){display:block;margin:0 0 54px}
 body.inner .all-news .news-item:last-child{margin-bottom:0}
 body.inner .all-news .featured{padding-bottom:44px}
 body.inner .all-news .featured .news-image{aspect-ratio:1.2}
 body.inner .all-news .featured .news-text{padding-top:25px}
 body.inner .all-news .featured h3{font-size:35px}
 body.inner .news-text{padding-top:22px}
 body.inner .news-text h3{font-size:29px}
 body.inner .news-text .date{margin-bottom:14px}
 body.inner .news-text .text-link{margin-top:22px}
 body.inner .article{padding:48px var(--gutter) 70px}
 body.inner .article-heading{margin-bottom:34px}
 body.inner .article-heading>.text-link{margin-bottom:32px}
 body.inner .article-heading h1{font-size:clamp(36px,9.7vw,52px);line-height:1.17;max-width:25ch}
 body.inner .article-meta{font-size:11px;margin-top:24px}
 body.inner .article-cover{margin-left:calc(-1*var(--gutter));margin-right:calc(-1*var(--gutter))}
 body.inner .article-cover img{max-height:none;object-fit:contain}
 body.inner .article-body{font-size:16px;line-height:1.9;margin-top:38px}
 body.inner .article-body>p:first-child{font-size:25px;line-height:1.55;margin-bottom:28px}
 body.inner .article-body h2,body.inner .article-body h3{font-size:30px;margin:42px 0 19px}
 body.inner .article-body blockquote{font-size:25px;margin:36px 0;padding:24px 0}
 body.inner .article-gallery{grid-template-columns:1fr;gap:20px;margin-top:42px}
 body.inner .article-gallery img,body.inner .article-gallery img:nth-child(5n+1){grid-column:auto;aspect-ratio:auto;height:auto}
 body.inner .contact-page{display:block;padding-top:56px}
 body.inner .contact-info h1{font-size:clamp(52px,13vw,70px)}
 body.inner .contact-intro{font-size:27px;margin-top:26px;max-width:24ch}
 body.inner .contact-info address{font-size:16px;margin:34px 0 25px}
 body.inner .contact-method{font-size:16px}
 body.inner .contact-info>.text-link{margin-top:24px}
 body.inner .contact-photo{margin-top:36px;aspect-ratio:1.4;height:auto}
 body.inner .contact-form{margin:50px -12px 0;padding-top:14px}
 body.inner .form-fallback{margin:20px 12px 0}
 body.inner .form-fallback .text-link{font-size:11px;gap:12px}
 body.inner .missing{min-height:60svh;gap:25px}
 body.inner .missing h1{font-size:clamp(46px,11.8vw,65px)}
}

@media(prefers-reduced-motion:reduce){
 body.inner .news-image img,body.inner .news-text h3 a{transition:none}
 body.inner .news-item:hover .news-image img{transform:none}
}
/* refinement-v4.css */
/* v4: let the house lead once, with abstract material and quiet editorial space. */
.journey-controls.journey-chapters{justify-content:flex-start;gap:clamp(24px,4vw,64px);flex-wrap:nowrap;bottom:34px}
.journey-chapters button{font-size:14px;min-height:44px;white-space:nowrap;opacity:.82}
.journey-welcome,.journey-copy{bottom:130px}
.journey-welcome p{font-size:16px;line-height:1.7}
.manifesto{padding-top:clamp(90px,10vw,150px);padding-bottom:clamp(90px,10vw,150px)}
.manifesto-bottom{display:block;max-width:680px;margin:70px 0 0 auto}
.manifesto-bottom h3{max-width:580px;font-size:clamp(30px,3vw,43px)}
.manifesto-bottom p{font-size:16px}
.practice-home{gap:7vw;grid-template-columns:1fr 1.05fr}
.practice-visual{min-height:0;aspect-ratio:4/5;align-self:center;background:#f7f7f6}
.practice-visual .practice-preview{width:100%;height:100%;object-fit:cover;transform:scale(1.03);transition:opacity .7s var(--ease),transform 1.1s var(--ease)}
.practice-visual .practice-preview.is-active{transform:scale(1)}
.practice-content>p{font-size:16px}
.office-story{background:#f7f7f6;position:relative;isolation:isolate}
.office-story-heading{position:relative;z-index:1;padding-bottom:60px}
.office-story-heading p{font-size:16px}
.office-art{height:clamp(300px,40vw,680px);overflow:hidden}
.office-art img{width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:multiply}
/* Relief is geographic, including its focus ring: never the SVG bounding box. */
.brazil-map{perspective:1100px;padding:0 5px 15px}
.brazil-map svg{transform:rotateX(16deg) rotateZ(-4deg);transform-origin:center;filter:drop-shadow(0 26px 20px #090d124d)}
.network .state,.network .state:focus,.network .state:focus-visible{outline:none!important;outline-offset:0}
.state-depth{fill:#141b21;stroke:#12171c;stroke-width:.6;transform:translate(0,7px);pointer-events:none}
.state-muted{fill:#343e48;stroke:#53616d;stroke-width:.7}
.has-partners{fill:url(#map-face);stroke:#c8959d;stroke-width:1;transition:transform .35s var(--ease),fill .3s,stroke .3s,filter .35s}
.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{fill:url(#map-selected);stroke:#f4dce0;stroke-width:1.5;transform:translateY(-8px);filter:url(#map-relief)}
.has-partners:focus-visible{stroke:#fff;stroke-width:2.8}
.state-unit text{fill:#fff;font:12px var(--sans);text-anchor:middle;pointer-events:none;transition:transform .35s var(--ease)}
.state-unit:has(.has-partners:hover) text,.state-unit:has(.has-partners:focus-visible) text,.state-unit:has(.selected) text{transform:translateY(-8px)}
.network-intro,.network-detail-caption{font-size:16px}.map-caption,.network-selector label{font-size:14px}
/* Satellite panorama followed by a concise contact spread. */
.footer{padding:0;border-top:0}
.footer-map{padding:0;margin:0}
.footer-map .google-map{height:clamp(430px,63svh,760px);width:100%}
.footer-map-caption{margin:0;padding:18px var(--gutter);font-size:13px;border-bottom:1px solid var(--line)}
.footer-contact-grid{padding:80px var(--gutter) 60px;grid-template-columns:1fr 1.1fr;align-items:end;gap:8vw}
.footer-contact-details{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:38px;font-size:15px}
.footer-detail-label{font-size:13px;margin-bottom:18px}.footer-channels a{overflow-wrap:anywhere}
.footer-signoff{margin:0 var(--gutter);padding:26px 0;font-size:12px}.footer-brand>span>span{font-size:11px}
body.inner .abstract-wide img{aspect-ratio:2.6;object-fit:cover}
body.inner .practice-image{margin:0 var(--gutter) 90px;max-width:780px}
body.inner .practice-image img{aspect-ratio:4/3;object-fit:cover;object-position:center 42%}
/* The office is one photographic collection, not scattered independent pictures. */
body.inner .office-intro{padding-bottom:90px}
body.inner .office-intro .intro-body{width:100%;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:24px 7vw}
body.inner .office-intro .intro-body p:first-child{grid-row:span 2;font-size:clamp(27px,2.8vw,40px);max-width:24ch}
body.inner .office-intro .intro-body p+p{margin:0;font-size:16px}
.office-collection{padding:70px var(--gutter) 75px;background:var(--ink);color:#fff;overflow:hidden}
.office-collection-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:42px}
body.inner .office-collection h2{font-size:clamp(48px,5vw,76px);line-height:1.1}.office-collection h2 em{color:#dba4a9}
body.inner .office-position{font-size:16px;font-variant-numeric:tabular-nums;margin:0 0 8px;color:#e0c9cd}.office-position-divider{margin:0 12px;opacity:.55}
.office-gallery-stage{height:clamp(420px,67svh,860px);position:relative;overflow:hidden;background:#141a1f;touch-action:pan-y;isolation:isolate}
.office-gallery-stage:focus-visible{outline:2px solid #dba4a9;outline-offset:6px}
.office-slide{position:absolute;inset:0;opacity:0;transform:scale(1.025);transition:opacity .8s var(--ease),transform 1.2s var(--ease);pointer-events:none}
.office-slide.is-active{opacity:1;transform:scale(1);z-index:1}
.office-slide img{width:100%;height:calc(100% + 48px);object-fit:cover;transform:translateY(calc(-24px + var(--gallery-offset,0px)));filter:none}
.office-gallery-shade{position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#111a21c9);z-index:2;pointer-events:none}
.office-gallery-bottom{position:absolute;bottom:26px;left:32px;right:26px;display:flex;justify-content:space-between;align-items:center;gap:24px;z-index:3}
body.inner #office-caption{font-size:16px;line-height:1.5;max-width:40ch;margin:0}
.office-arrows{display:flex;gap:12px}.office-arrows button{width:46px;height:46px;border:1px solid #ffffff66;color:#fff;display:grid;place-items:center;transition:background .2s}
.office-arrows button:hover{background:#ffffff1a}.office-arrows svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}.office-arrows button:focus-visible{outline-color:#fff}
.office-thumbnails{display:flex;gap:12px;overflow-x:auto;padding:22px 3px 12px;scrollbar-width:thin;scrollbar-color:#c8919a #35404a}
.office-thumb{padding:0;flex:0 0 100px;height:70px;opacity:.5;transition:opacity .25s;position:relative;border-bottom:3px solid transparent}
.office-thumb img{width:100%;height:100%;object-fit:cover;filter:none}.office-thumb[aria-pressed=true]{opacity:1;border-color:#e2b4bd}.office-thumb:hover{opacity:1}.office-thumb:focus-visible{outline-color:#e2b4bd;outline-offset:3px}
@media(max-width:1100px){.journey-controls.journey-chapters{flex-basis:auto;gap:35px}.practice-home{gap:5vw}.footer-contact-grid{grid-template-columns:1fr;align-items:start;gap:50px}.footer-contact-details{grid-template-columns:1fr 1fr;max-width:840px}.office-story-heading{gap:5vw}}
@media(max-width:700px){.journey-controls.journey-chapters{gap:22px;bottom:26px}.journey-chapters button{font-size:12px}.journey-welcome,.journey-copy{bottom:120px}.journey-welcome p{font-size:14px}.manifesto-bottom{margin-top:45px}.manifesto-bottom p{font-size:16px}.practice-home{gap:36px}.practice-visual{height:auto;aspect-ratio:4/5;width:100%;max-width:450px;order:0}.practice-content>p,.office-story-heading p{font-size:16px}.office-art{height:300px}.footer-map .google-map{height:480px}.footer-map-caption{font-size:12px;align-items:center;gap:15px}.footer-contact-grid{padding:60px var(--gutter) 46px;gap:38px}.footer-contact-details{grid-template-columns:1fr;gap:32px;font-size:16px}.footer-detail-label{font-size:13px}.footer-signoff{gap:25px;padding:24px 0}.footer-brand>span>span{font-size:11px}.brazil-map{padding:0 0 10px}.brazil-map svg{transform:rotateX(12deg) rotateZ(-3deg)}.network-intro,.network-detail-caption{font-size:15px}.network-selector label,.map-caption{font-size:13px}body.inner .office-intro .intro-body{display:block}body.inner .office-intro .intro-body p:first-child{font-size:28px;max-width:none}body.inner .office-intro .intro-body p+p{margin-top:25px}body.inner .office-intro{padding-bottom:60px}.office-collection{padding:50px var(--gutter) 45px}.office-collection-heading{gap:20px;margin-bottom:30px}body.inner .office-collection h2{font-size:43px}body.inner .office-position{font-size:13px;white-space:nowrap}.office-position-divider{margin:0 6px}.office-gallery-stage{height:480px;margin:0 calc(-1 * var(--gutter))}.office-gallery-bottom{left:22px;right:20px;bottom:20px;gap:16px}body.inner #office-caption{font-size:14px;max-width:20ch}.office-arrows{gap:8px}.office-arrows button{width:42px;height:44px}.office-thumbnails{gap:10px}.office-thumb{flex-basis:83px;height:60px}body.inner .abstract-wide{margin:0}body.inner .abstract-wide img{aspect-ratio:1.4}body.inner .practice-image{margin:0 var(--gutter) 60px}}
@media(prefers-reduced-motion:reduce){.brazil-map svg{transform:none}.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{transform:none}.state-unit text{transform:none!important}.office-slide,.practice-preview{transition:none!important;transform:none!important}.office-slide img{transform:translateY(-24px)}.journey-controls.journey-chapters{display:none}}

.network .map-labels text{font-size:12px;transition:transform .35s var(--ease)}.network .map-labels .is-raised{transform:translateY(-8px)}.network svg *:focus{outline:none!important;-webkit-tap-highlight-color:transparent}

.map-embed .embed-fallback{background-color:var(--ink);background-image:linear-gradient(90deg,#111d28b8,#111d2800 78%),url("/assets/v4/lago-contexto.webp");background-position:center 58%;background-size:cover;color:#fff}.map-embed .embed-fallback h3{max-width:460px}.map-embed .embed-fallback .text-link{border-color:#fff}.map-embed .embed-fallback .text-link:hover{color:#fff}
/* experience-v5.css */
/* The images inhabit one room-height stage. Scroll is the camera's continuation. */
.office-walk{background:var(--ink);color:#fff}.office-walk-stage{position:relative}
.office-scene{position:relative;min-height:calc(100svh - var(--header-h));overflow:hidden;isolation:isolate}
.office-scene-image,.office-scene-shade{position:absolute;inset:0}.office-scene-image img{width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,50% 50%)}
.office-scene-shade{background:linear-gradient(180deg,#13202a00 32%,#111d287a 72%,#111b23b3)}
.office-scene-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:9%;z-index:2}
body.inner .office-scene-copy h1,body.inner .office-scene-copy h2{font-size:clamp(54px,7.5vw,96px);line-height:1.08;max-width:14ch;color:#fff}
.office-scene-copy em{color:#fff}.office-scene-copy p{font-size:18px;margin-top:24px}
.office-walk.is-enhanced{height:650svh}
.office-walk.is-enhanced .office-walk-stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));min-height:490px;overflow:hidden;isolation:isolate}
.office-walk.is-enhanced .office-scene{position:absolute;inset:0;min-height:0}
.office-walk.is-enhanced .office-scene-image,.office-walk.is-enhanced .office-scene-shade{clip-path:inset(var(--scene-mask,0%) var(--scene-mask,0%))}
.office-walk.is-enhanced .office-scene-image{transform:scale(var(--scene-scale,1.035))}
.office-walk.is-enhanced .office-scene-copy{opacity:var(--copy-alpha,1);transform:translateY(var(--copy-shift,0px))}
body.inner .office-words{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:start;background:#fff}
body.inner .office-words p{font-size:17px;line-height:1.9}.office-words h2 em{color:var(--rose-dark)}
/* Cast matte relief: one flat face, a darker extrusion, light on the upper edge. */
.brazil-map{perspective:1350px;padding-bottom:25px}
.brazil-map svg{transform:rotateX(36deg) rotateZ(-9deg);transform-origin:50% 55%;filter:drop-shadow(5px 38px 14px #080d1260)}
.state-depth{fill:#111a20;stroke:#111a20;stroke-width:1.3;transform:translate(0,13px)}
.state-muted{fill:#424d54;stroke:#778188;stroke-width:.7}
.has-partners{fill:#a16e76;stroke:#d0a0a7;stroke-width:.8}
.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{fill:#d3a0a7;stroke:#f1d6da;stroke-width:1.2;transform:translateY(-11px);filter:url(#map-relief)}
.has-partners:focus-visible{stroke:#fff;stroke-width:2.8}.network .map-labels .is-raised{transform:translateY(-11px)}
@media(max-width:700px){
 .office-walk.is-enhanced{height:590svh}.office-walk.is-enhanced .office-walk-stage{min-height:460px}
 body.inner .office-scene-copy h1,body.inner .office-scene-copy h2{font-size:clamp(46px,12vw,64px);max-width:11ch}.office-scene-copy{bottom:12%}.office-scene-copy p{font-size:16px}
 body.inner .office-words{grid-template-columns:1fr;gap:36px}body.inner .office-words p{font-size:16px}
 .brazil-map svg{transform:rotateX(31deg) rotateZ(-8deg)}
}
@media(prefers-reduced-motion:reduce){
 .office-walk.is-enhanced{height:auto}.office-walk.is-enhanced .office-walk-stage{position:relative;top:0;height:auto}
 .office-walk.is-enhanced .office-scene{position:relative;min-height:80svh;clip-path:none;visibility:visible!important}
 .office-walk.is-enhanced .office-scene-copy{opacity:1;transform:none}.office-scene-image{transform:none!important}
 .brazil-map svg{transform:rotateX(31deg) rotateZ(-8deg)}.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{transform:none}.network .map-labels .is-raised{transform:none}
}
/* A horizontal editorial shelf driven by the normal vertical page scroll. */
.services-walk{background:var(--ink);color:#fff;padding:55px 0 60px}
.services-stage{overflow:hidden;padding:0 var(--gutter)}
.services-heading{padding:0 0 36px;display:flex;align-items:center;gap:6vw}.services-heading::after{content:'';height:1px;flex:1;background:#ffffff50;transform-origin:left}
body.inner .services-heading h1{font-size:clamp(48px,5.8vw,84px);max-width:none;color:#fff}
.services-track{display:flex;gap:32px;align-items:start}.service-panel{flex:0 0 calc((100vw - 2 * var(--gutter) - 32px) / 2);min-width:0}
.service-art{overflow:hidden;height:clamp(245px,41svh,460px);background:#f7f7f6;perspective:1000px}.service-art img{width:100%;height:100%;object-fit:cover;object-position:50% 47%;transition:transform .8s var(--ease)}
.service-panel:hover .service-art img{transform:scale(1.045)}
.service-panel-text{padding:22px 0 0}body.inner .service-panel h2{font-size:clamp(27px,2.65vw,42px);line-height:1.2;color:#fff}body.inner .service-panel p{font-size:16px;line-height:1.65;max-width:52ch;margin:15px 0 0;color:#e7e0e1}
.services-window{overflow:visible}.services-walk:not(.is-enhanced) .services-window{overflow-x:auto;scroll-snap-type:x mandatory}.service-panel{scroll-snap-align:start}
.services-walk.is-enhanced{height:260svh;padding:0}.services-walk.is-enhanced .services-stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));min-height:690px;padding-top:42px;padding-bottom:35px}
body.inner .practice-statement{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw}.practice-statement em{color:var(--rose-dark)}.practice-statement p{font-size:17px}
/* Portrait selection expands into the biography within the same page. */
body.inner .about-intro{padding-bottom:70px}
body.inner .people-section{display:grid;grid-template-columns:.75fr 2fr;gap:48px 6vw;background:#f4f2f1;align-items:start}
.people-heading{position:sticky;top:calc(var(--header-h) + 50px)}.people-heading em{color:var(--rose-dark)}
.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;min-width:0}
.person{min-width:0}.person summary{list-style:none;cursor:pointer;position:relative;display:block}.person summary::-webkit-details-marker{display:none}
.person summary:focus-visible{outline:2px solid var(--rose-dark);outline-offset:7px}
.person-portrait{display:block;aspect-ratio:4/5;position:relative;overflow:hidden;background:#d9d5d0}
.person-portrait img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .35s}
.person summary:hover .person-portrait img{transform:scale(1.04);filter:contrast(1.025)}
.person-open{position:absolute;bottom:17px;right:20px;font:32px/1 var(--sans);color:#fff;background:#20252bd9;width:40px;height:40px;display:grid;place-items:center}
.person-name{display:block;font:400 clamp(25px,2.4vw,37px)/1.2 var(--serif);margin-top:25px;max-width:17ch}
.person-role{display:block;font-size:14px;margin-top:14px;color:var(--rose-dark)}
.person-action{display:inline-flex;gap:22px;margin-top:23px;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:8px}.person-action svg{width:18px;height:18px}
.person[open]{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;gap:38px;align-items:start}.person-open svg{width:20px;height:20px;transition:transform .35s var(--ease)}.person[open] .person-open svg{transform:rotate(45deg)}
.person-biography{padding-top:0}.person-biography p{font-size:16px;line-height:1.85}.person-biography p:first-child{font-family:var(--serif);font-size:26px;line-height:1.45}
.person[open] .person-action{display:none}.team-context{grid-column:2;max-width:72ch;padding-top:24px;font-size:17px}
::view-transition-group(*){animation-duration:.7s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
@media(max-width:1000px){
 .services-walk.is-enhanced .services-stage{min-height:660px}.service-art{height:38svh}.services-heading{padding-bottom:28px}
 body.inner .people-section{grid-template-columns:1fr;gap:38px}.people-heading{position:static}.people-heading h2 br{display:none}.team-context{grid-column:1}.people-grid{gap:30px}
}
@media(max-width:700px){
 .services-walk{padding:38px 0}.services-track{gap:22px}.service-panel{flex-basis:calc(100vw - 2 * var(--gutter))}
 .services-heading{padding-bottom:27px}.services-heading::after{display:none}body.inner .services-heading h1{font-size:48px}
 .service-art{height:35svh;min-height:225px}.service-panel-text{padding-top:23px}body.inner .service-panel h2{font-size:29px}body.inner .service-panel p{font-size:16px;line-height:1.6}
 .services-walk.is-enhanced{height:360svh}.services-walk.is-enhanced .services-stage{padding-top:35px;min-height:650px}
 body.inner .practice-statement{grid-template-columns:1fr;gap:38px}.practice-statement p{font-size:16px}
 .people-grid{grid-template-columns:1fr;gap:52px}.person-name{font-size:34px}.person-portrait{aspect-ratio:4/4.7}
 .person[open]{grid-column:auto;grid-template-columns:1fr;gap:25px}.person-biography p:first-child{font-size:26px}.team-context{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
 .services-walk.is-enhanced{height:auto;padding:45px 0}.services-walk.is-enhanced .services-stage{position:static;height:auto;min-height:0;padding-top:0}
 .services-track{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));transform:none!important;gap:48px 32px}.service-panel{min-width:0}
 .service-panel:hover .service-art img,.person summary:hover .person-portrait img{transform:none}
 ::view-transition-group(*){animation:none!important}
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){.services-track{grid-template-columns:1fr}}
/* Pale cast surfaces make the offset shadow legible, as in the supplied map reference. */
.network{background:#eeeae7;color:var(--ink)}.network h2 em,.network .partner-number{color:var(--rose-dark)}
.network-intro,.network-detail-caption,.network-selector label,.network .map-caption{color:#51454b}
.network-selector{border-top-color:#bdb2b4}.network select{color:var(--ink);border-bottom-color:#bdb2b4}.map-key{background:var(--rose-dark)}
.brazil-map svg{filter:drop-shadow(-7px 28px 11px #574a4147)}
.state-depth{fill:#93857f;stroke:#93857f}.state-muted{fill:#ded8d2;stroke:#b5aaa2}
.has-partners{fill:#b9828c;stroke:#d9b9bd}.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{fill:#d6acb2;stroke:#824551}
.network .map-labels text{fill:#20252b;font-weight:600;font-size:13px}.has-partners:focus-visible{stroke:#632e3b;stroke-width:3}
.services-walk.is-enhanced .services-stage{min-height:0}
@media(max-width:700px){.service-art{height:30svh;min-height:195px}.services-walk.is-enhanced .services-stage{padding-top:28px}}
/* On portrait screens, a tracked crop preserves the doorway without distant letterboxing. */
.journey{height:560svh}.journey-picture{overflow:hidden}
.journey-poster,.journey-canvas,.journey-video{inset:auto;left:calc(50% + var(--film-shift-x,0px));top:var(--film-top,50%);width:var(--film-width,100%);height:var(--film-height,100%);max-width:none;object-fit:fill;transform:translate(-50%,-50%) scale(var(--film-scale,1));transform-origin:center}
@media(max-width:700px){.journey{height:550svh}.journey[data-door=true] .journey-copy h2{font-size:40px}.journey[data-door=true] .journey-shade{opacity:.25}}
@media(prefers-reduced-motion:reduce){.journey{height:auto}.journey-poster{inset:0;width:100%;height:100%;object-fit:cover;transform:none}}
.service-art{background:#fff}.service-art img{object-fit:contain}.office-art{height:auto;aspect-ratio:2.33;background:#fff}.office-art img{object-fit:contain;mix-blend-mode:normal}
@media(max-width:700px){.office-art{aspect-ratio:1.8}}
/* pages-v6.css */
/* v6 internal pages. Tokens come from site.css :root. */
:root{--rose-light:#dba4a9;--ink-deep:#171b20}

/* Cursor bubble ----------------------------------------------------------
   Over [data-cursor] (the lawyer cards) a small white disc with a thin ink "+" follows the pointer (pages-v6.js, cursor()).
   The "+" is two 1.5px bars on the half-pixel grid (crisp at 1x and 2x); the ring and shadow keep the disc visible over white shirts. */
.v6-cursor{position:fixed;left:0;top:0;z-index:200;pointer-events:none;width:0;height:0}
.v6-cursor span{position:absolute;left:0;top:0;display:grid;place-items:center;width:var(--cursor-d,72px);height:var(--cursor-d,72px);margin:calc(var(--cursor-d,72px) / -2) 0 0 calc(var(--cursor-d,72px) / -2);font:600 9.5px/1 var(--sans);letter-spacing:.1em;text-indent:.1em;text-transform:uppercase;border-radius:50%;background:#fff;color:var(--ink);box-shadow:0 0 0 1px #20252b47,0 8px 22px #0b0f1459;opacity:0;transform:scale(.25);transition:transform .45s var(--ease),opacity .3s}
.v6-cursor.is-active span{opacity:1;transform:none}
.v6-cursor span::before,.v6-cursor span::after{content:none}




/* Reveals ----------------------------------------------------------------- */
.v6-reveal [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.v6-reveal [data-reveal].is-in{opacity:1;transform:none}
body.inner .v6-split{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:start}
body.inner .v6-split h2 em{color:var(--rose-dark)}body.inner .v6-split p{font-size:17px;line-height:1.9}
.v6-split .text-link{margin-top:44px}

/* O que fazemos ----------------------------------------------------------- */
.svc-shelf{background:var(--ink);color:#fff;position:relative;overflow:clip}
.svc-shelf::before{content:'';position:absolute;inset:0;background:radial-gradient(90% 70% at 85% 0%,#8543452e,transparent 60%),radial-gradient(70% 60% at 0% 100%,#0000004d,transparent 70%);pointer-events:none}
.svc-heading{display:flex;align-items:center;gap:4vw;margin-bottom:clamp(20px,3svh,44px)}
body.inner .svc-heading h2{font-size:clamp(50px,5.6vw,86px);color:#fff;white-space:nowrap}
.svc-rule{flex:1;height:1px;background:#ffffff4d}
.svc-count{white-space:nowrap;font-size:13px;letter-spacing:.2em;color:#ffffffa6;font-variant-numeric:tabular-nums}.svc-count b{color:#fff;font-weight:600}
.svc-intro{width:min(29vw,410px);align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:10px}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--rose-light);margin-bottom:26px}
.svc-lead{font:400 clamp(17px,1.3vw,20px)/1.6 var(--serif);letter-spacing:-.005em;color:#f1ecec}

/* Quem somos -------------------------------------------------------------- */
body.inner .page-hero{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:end;padding-top:clamp(90px,12svh,150px);padding-bottom:clamp(80px,10svh,130px)}
.page-lead{font:400 clamp(24px,2.2vw,34px)/1.45 var(--serif);letter-spacing:-.015em;max-width:30ch}
.team-v6{display:grid;grid-template-columns:.72fr 2fr;gap:48px 6vw;padding:clamp(90px,11svh,140px) var(--gutter);background:var(--ink);color:#fff;position:relative}
.team-aside{position:sticky;top:calc(var(--header-h) + 56px);align-self:start}
body.inner .team-aside h2{color:#fff;font-size:clamp(46px,4.6vw,72px)}body.inner .team-aside h2 em{color:var(--rose-light)}
.team-aside p{margin-top:34px;font-size:15px;line-height:1.85;color:#ffffffb8;max-width:36ch}
.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,48px)}
.team-grid .member:nth-child(2){margin-top:clamp(60px,9vw,150px)}
.member-card{display:block;width:100%;text-align:left;padding:0;color:inherit}
.member-card:focus-visible{outline:3px solid var(--rose-light);outline-offset:8px}
.member-portrait{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:radial-gradient(85% 70% at 50% 28%,#4a525b,#262b31 62%,#1b1f24)}
.member-portrait::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#15191ecc);transition:opacity .6s}
.member-portrait img{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;filter:grayscale(1) contrast(1.08) brightness(.9);transform-origin:50% 100%;transition:transform 1s var(--ease),filter .7s}
.member-portrait--card::before{content:'';position:absolute;inset:0;background:var(--rose-dark);opacity:0;transition:opacity .7s var(--ease)}
.member-card:hover .member-portrait--card::before,.member-card:focus-visible .member-portrait--card::before{opacity:.55}
.member-card:hover .member-portrait img,.member-card:focus-visible .member-portrait img{transform:scale(1.045);filter:grayscale(1) contrast(1.12) brightness(1)}
.member-name{display:block;margin-top:26px;font:400 clamp(24px,2.1vw,34px)/1.18 var(--serif);letter-spacing:-.03em;max-width:17ch}
.member-role{display:flex;align-items:center;gap:16px;margin-top:12px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-light)}
.member-role::after{content:'';width:34px;height:1px;background:currentColor;transition:width .6s var(--ease)}.member-card:hover .member-role::after{width:70px}
.member-bio{margin-top:28px;color:#ffffffc4;font-size:15px;line-height:1.85}.member-bio h3{display:none}
.team-v6.is-enhanced .member-bio{display:none}
body.inner .about-firm{background:#fff}
.principles-v6{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5vw;background:var(--pale)}
.principles-v6>div{border-top:1px solid #20252b40;padding-top:30px}
.principle-n{display:block;font:400 15px/1 var(--serif);color:var(--rose-dark);margin-bottom:34px}
body.inner .principles-v6 h2{font-size:clamp(36px,3.4vw,52px);margin-bottom:26px}
.principles-v6 p,.principles-v6 li{font-size:16px;line-height:1.8}.principles-v6 ul{margin:0;padding:0;list-style:none}
.principles-v6 li{padding:10px 0;border-bottom:1px solid #20252b1f}

/* Biography sheet */
.bio-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--ink-deep);color:#fff;overflow:auto;overscroll-behavior:contain}
.bio-dialog::backdrop{background:#0d1014cc}
.bio-sheet{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}
.bio-copy{padding:clamp(40px,6vw,96px) var(--gutter) 80px;display:flex;flex-direction:column}
.bio-close{display:inline-flex;align-items:center;gap:16px;align-self:flex-start;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#ffffffc4;padding:10px 0;min-height:44px}
.bio-close svg{width:22px;transition:transform .4s var(--ease)}.bio-close:hover{color:#fff}.bio-close:hover svg{transform:translateX(-6px)}
.bio-close:focus-visible{outline:3px solid var(--rose-light);outline-offset:6px}
body.inner .bio-copy h2{margin-top:clamp(50px,11svh,130px);font-size:clamp(50px,5.6vw,92px);line-height:1.04;color:#fff;max-width:11ch}
.bio-role{margin-top:26px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--rose-light)}
.bio-text{margin-top:46px;max-width:56ch;color:#ffffffcc}.bio-text p{font-size:16px;line-height:1.9}
.bio-text p:first-child{font:400 clamp(21px,1.7vw,26px)/1.55 var(--serif);color:#fff}
.bio-figure{position:sticky;top:0;height:100dvh}
.bio-figure .member-portrait{position:absolute;inset:0;aspect-ratio:auto}
.bio-figure .member-portrait::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--ink-deep),transparent 24%);z-index:1}
.bio-figure .member-portrait img{object-fit:contain;object-position:50% 100%}
.bio-dialog[open] .bio-copy>*{animation:bio-in .9s var(--ease) both}.bio-dialog[open] .bio-copy>:nth-child(2){animation-delay:.08s}.bio-dialog[open] .bio-copy>:nth-child(3){animation-delay:.14s}.bio-dialog[open] .bio-copy>:nth-child(4){animation-delay:.2s}
@keyframes bio-in{from{opacity:0;transform:translateY(28px)}}
::view-transition-group(bio-portrait){animation-duration:.75s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
body:has(.bio-dialog[open]){overflow:hidden}

/* O escritório ------------------------------------------------------------ */
.walk{background:var(--ink-deep);color:#fff}
.walk-stage{position:relative}
.walk-scene{position:relative;min-height:calc(100svh - var(--header-h));overflow:hidden;isolation:isolate}
.walk-image,.walk-shade{position:absolute;inset:0}
.walk-image img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.walk-shade{background:linear-gradient(90deg,#11171dd1 0%,#11171d80 30%,transparent 62%),linear-gradient(0deg,#11171db3 0%,transparent 45%)}
.walk-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(48px,10svh,110px);z-index:2}
.walk-index{display:block;font-size:12px;letter-spacing:.26em;color:#ffffffb3;margin-bottom:26px;font-variant-numeric:tabular-nums}
body.inner .walk-copy h1,body.inner .walk-copy h2{font-size:clamp(54px,7vw,104px);line-height:1.04;color:#fff;max-width:12ch;text-shadow:0 2px 30px #0b0f1459}
body.inner .walk-copy em{color:var(--rose-light)}
.walk-copy p{font-size:17px;margin-top:22px;color:#ffffffd9}
.walk-rail{display:none}
.walk.is-enhanced{height:calc(var(--scenes,7) * 105svh)}
.walk.is-enhanced .walk-stage{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));min-height:480px;overflow:hidden;isolation:isolate}
.walk.is-enhanced .walk-scene{position:absolute;inset:0;min-height:0;visibility:hidden}
.walk.is-enhanced .walk-scene[data-walk-scene="0"]{visibility:visible}
.walk.is-enhanced .walk-image{clip-path:inset(var(--clip,0% 0%));opacity:var(--window-alpha,1)}
.walk.is-enhanced .walk-image img{transform:scale(var(--zoom,1));filter:brightness(var(--dim,1));will-change:transform}
.walk.is-enhanced .walk-shade{opacity:var(--copy-alpha,1)}
.walk.is-enhanced .walk-copy{opacity:var(--copy-alpha,1);transform:translateY(var(--copy-shift,0px))}
.walk.is-enhanced .walk-rail{display:flex;flex-direction:column;gap:12px;position:absolute;right:var(--gutter);top:50%;transform:translateY(-50%);z-index:5}
.walk-rail span{width:1px;height:26px;background:#ffffff59;transition:height .5s var(--ease),background .4s}
.walk-rail span.is-current{height:54px;background:#fff}
body.inner .office-words{background:#fff}

/* Responsive -------------------------------------------------------------- */
@media(max-width:1000px){
 body.inner .page-hero{grid-template-columns:1fr;gap:36px}
 .team-v6{grid-template-columns:1fr;gap:44px}.team-aside{position:static}
 .principles-v6{grid-template-columns:1fr;gap:44px}
 .svc-intro{width:min(62vw,420px)}
}
@media(max-width:700px){
 body.inner .v6-split{grid-template-columns:1fr;gap:34px}body.inner .v6-split p{font-size:16px}
 .svc-heading{margin-bottom:26px}.svc-rule{display:none}
 body.inner .svc-heading h2{font-size:42px}.svc-count{margin-left:auto;font-size:11px}
 .svc-intro{width:74vw}.svc-lead{font-size:21px}
 .page-lead{font-size:23px}
 .team-grid{grid-template-columns:1fr;gap:56px}.team-grid .member:nth-child(2){margin-top:0}
 .bio-sheet{grid-template-columns:1fr;grid-template-rows:auto auto}
 .bio-figure{position:relative;height:62svh;order:-1}
 .bio-figure .member-portrait::before{background:linear-gradient(0deg,var(--ink-deep),transparent 30%)}
 .bio-close{position:fixed;top:14px;left:var(--gutter);z-index:3;background:#171b20cc;padding:10px 16px;backdrop-filter:blur(8px)}
 body.inner .bio-copy h2{margin-top:0;font-size:46px}.bio-copy{padding-top:10px}
 body.inner .walk-copy h1,body.inner .walk-copy h2{font-size:clamp(44px,12vw,62px);max-width:10ch}
 .walk-shade{background:linear-gradient(0deg,#11171dd9 0%,#11171d73 42%,transparent 70%)}
 .walk.is-enhanced .walk-rail{top:auto;bottom:34px;transform:none}
}
@media(prefers-reduced-motion:reduce){
 .v6-reveal [data-reveal]{opacity:1;transform:none}
 .walk.is-enhanced{height:auto}.walk.is-enhanced .walk-stage{position:relative;top:0;height:auto}
 .walk.is-enhanced .walk-scene{position:relative;min-height:80svh;visibility:visible}
 .walk.is-enhanced .walk-image{clip-path:none;opacity:1}.walk.is-enhanced .walk-image img{transform:none;filter:none}
 .walk.is-enhanced .walk-copy,.walk.is-enhanced .walk-shade{opacity:1;transform:none}
 ::view-transition-group(bio-portrait){animation:none}.bio-dialog[open] .bio-copy>*{animation:none}
}

/* v6.1 — presentation content: three-tier team, nine area icons, WhatsApp ------ */
.team-grid{list-style:none;margin:0;padding:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(34px,3.4vw,56px) clamp(24px,2.6vw,40px);align-items:start}
.team-grid .member{margin-top:0}.team-grid .member:nth-child(2){margin-top:0}
.team-group-title{grid-column:1/-1;display:flex;align-items:baseline;gap:22px;border-top:1px solid #ffffff2e;padding-top:26px;margin-top:clamp(26px,4vw,54px)}
.team-group-title:first-child{margin-top:0}
body.inner .team-group-title h3{font-size:clamp(28px,2.4vw,38px);color:#fff;letter-spacing:-.02em;margin:0}
.team-group-title span{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-light)}
.member-portrait{background:#2b3036}.member-portrait::after{background:linear-gradient(180deg,transparent 62%,#15191ea6)}
.member-portrait img{object-fit:cover;object-position:50% 18%;filter:grayscale(1) contrast(1.04) brightness(.96)}
.member-card:hover .member-portrait img,.member-card:focus-visible .member-portrait img{filter:none;transform:scale(1.04)}
.member-card:hover .member-portrait--card::before,.member-card:focus-visible .member-portrait--card::before{opacity:.28}
.member-full{display:block;margin-top:7px;font-size:12.5px;color:#ffffff9c;letter-spacing:.01em}
.member-name{font-size:clamp(22px,1.75vw,28px);margin-top:22px}
.member-bio h4{display:none}
.v6-reveal .team-grid [data-reveal]{transition-delay:calc(var(--i,0) * 45ms)}
.bio-full{margin-top:14px;font-size:14px;color:#ffffff99}
.bio-cta{margin-top:auto;padding-top:56px;color:#fff;align-self:flex-start}
.bio-figure .member-portrait img{object-fit:cover;object-position:50% 25%;filter:grayscale(1) contrast(1.04)}
.bio-figure .member-portrait::after{background:linear-gradient(180deg,transparent 60%,#171b20)}

/* Áreas de atuação: hairline grid of sculptural icons */
.areas-v6{background:#fff}
.areas-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:end;margin-bottom:clamp(44px,5vw,72px)}
.areas-head p{font-size:17px;line-height:1.85;max-width:52ch;color:#4a4f56}
body.inner .areas-head h2 em{color:var(--rose-dark)}
.areas-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#20252b26;border:1px solid #20252b26}
.area-tile{background:#fff;padding:clamp(26px,2.6vw,40px) clamp(22px,2.2vw,34px) clamp(30px,2.8vw,42px);position:relative;transition:background .5s var(--ease)}
.area-tile:hover{background:var(--pale)}
.area-art{width:min(100%,240px);aspect-ratio:1;margin:0 auto 22px;overflow:hidden}
.area-art img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.area-tile:hover .area-art img{transform:scale(1.06) translateY(-4px)}
body.inner .area-tile h3{font-size:clamp(22px,1.7vw,27px);line-height:1.2;letter-spacing:-.02em;margin:0}
.area-tile p{margin:10px 0 0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--rose-dark)}
.v6-reveal .areas-grid [data-reveal]{transition-delay:calc(var(--i,0) * 55ms)}

/* Home: area chips + principle list; O escritório: principles band */
.area-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 32px;padding:0}
.area-chips a{display:inline-block;font-size:12.5px;letter-spacing:.02em;padding:8px 14px;border:1px solid #20252b33;border-radius:999px;transition:border-color .3s,color .3s,background .3s}
.area-chips a:hover{border-color:var(--rose-dark);color:var(--rose-dark);background:#85434510}
.principle-list{list-style:none;margin:30px 0 38px;padding:0}
.principle-list li{display:flex;gap:22px;align-items:baseline;padding:16px 0;border-top:1px solid #ffffff33;font-size:15px;line-height:1.6}
.principle-list li:last-child{border-bottom:1px solid #ffffff33}
.principle-list span{font:400 15px/1 var(--serif);color:#f1c9cd;min-width:2ch}
.office-principles{background:var(--pale)}
.office-principles ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5vw}
.office-principles li{border-top:1px solid #20252b40;padding-top:26px;font:400 clamp(20px,1.6vw,24px)/1.45 var(--serif);letter-spacing:-.01em}
.office-principles li span{display:block;font-size:14px;color:var(--rose-dark);margin-bottom:22px;font-family:var(--serif)}
.v6-reveal .office-principles [data-reveal]{transition-delay:calc(var(--i,0) * 90ms)}
body.inner .office-words p.lead{font:400 clamp(20px,1.55vw,24px)/1.5 var(--serif);letter-spacing:-.01em;color:var(--ink)}
body.inner .office-words p.lead + p:not(.lead){margin-top:2em}

/* WhatsApp affordances */
.whatsapp-link{display:inline-flex;align-items:center;gap:10px}.whatsapp-link svg{width:18px;height:18px;flex:none}
.whatsapp-button{display:inline-flex;align-items:center;gap:16px;background:var(--ink);color:#fff;padding:16px 26px 16px 20px;margin:30px 0 42px;border-radius:999px;font-size:15px;font-weight:600;line-height:1.2;transition:background .35s,transform .35s var(--ease),box-shadow .35s}
.whatsapp-button svg{width:28px;height:28px;flex:none}
.whatsapp-button small{display:block;font-size:12px;font-weight:400;opacity:.78;margin-top:4px}
.whatsapp-button:hover{background:var(--rose-dark);transform:translateY(-2px);box-shadow:0 14px 34px #85434533}
.contact-label{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#625954;margin:26px 0 8px}
.contact-channels .contact-method{display:block}

@media(max-width:1000px){
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .areas-head{grid-template-columns:1fr;gap:22px}.areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .office-principles ul{grid-template-columns:1fr;gap:30px}
}
@media(max-width:600px){
 .team-grid{grid-template-columns:1fr;gap:44px}.team-group-title{flex-direction:column;gap:8px}
 .areas-grid{grid-template-columns:1fr}.area-art{width:min(100%,200px)}
 .whatsapp-button{width:100%;justify-content:center}
}
/* polish-v7.css */
/* v7 polish: conversion hierarchy, type scale, focus, motion tokens, mobile density.
   Loads last; every rule here overrides the earlier sheets on purpose. */
:root{--focus-ring:var(--rose-dark);--display-xl:clamp(56px,6.4vw,92px);--display-l:clamp(42px,4.8vw,68px);--display-m:clamp(26px,2.3vw,36px);--header-h:96px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
html{scrollbar-gutter:stable}

/* Focus: visible on every surface ----------------------------------------- */
a:focus-visible,button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:5px}
.manifesto,.ethics-section,.network.dark,.journey,.svc-shelf,.team-v6,.walk,.bio-dialog,.people-home{--focus-ring:#fff}
.journey a:focus-visible,.journey button:focus-visible{box-shadow:0 0 0 2px #20252b}

/* Header: the seal stays; navigation gains touch height and one primary action ------ */
.site-header{padding-top:10px;padding-bottom:10px}
.brand-logo{width:70px;height:70px}.brand-name{font-size:25px}.brand-profession{font-size:10px;margin-top:7px}
.nav a{font-size:14px;padding:14px 0;min-height:44px;display:inline-flex;align-items:center}
.nav a:after{bottom:8px;height:1.5px}
.nav .nav-contact{border:1px solid var(--ink);border-radius:999px;padding:9px 18px;gap:12px;min-height:40px;transition:background .3s,color .3s,border-color .3s}
.nav .nav-contact:after{display:none}.nav .nav-contact:hover{background:var(--rose-dark);border-color:var(--rose-dark);color:#fff}
.nav .nav-contact[aria-current]{background:var(--ink);color:#fff}
.header-quick{display:none}
@media(max-width:1000px){
 .header-quick{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;margin-left:auto;margin-right:14px;font-size:12px;font-weight:600;letter-spacing:.04em;border:1px solid #20252b33;border-radius:999px}
 .header-quick svg{width:20px;height:20px}
 .site-header{justify-content:flex-start}.menu-toggle{margin-left:0}
 .nav .nav-contact{border:0;border-radius:0;padding:13px 0;background:none}.nav .nav-contact:hover{background:none;color:inherit}.nav .nav-contact[aria-current]{background:none;color:inherit}
}

/* Display scale: no h2 heavier than the page's h1 --------------------------- */
.ethics-section h2,.footer-contact h2{font-size:var(--display-xl)}
.manifesto h2,.network-heading h2,.section-head h2,.office-story-heading h2,.practice-content h2,.people-home h2{font-size:var(--display-l)}
.journey h1{font-size:var(--display-xl)}

/* Hero: contact link, resting affordances, film-to-page handoff ---------------- */
.journey-welcome .journey-cta{pointer-events:auto;color:#fff;border-color:#ffffffb3;margin-top:28px;font-size:14px}
.journey-welcome .journey-cta:hover{color:#fff;border-color:#fff}
.journey-progress{background:#ffffff4d;height:3px}.journey-progress span{background:#dba4a9;min-width:2px;transform-origin:left}
.journey-chapters button{position:relative;padding-left:2px;padding-right:2px}
.journey-chapters button:after{transform:scaleX(var(--fill,0));transition:none}
.journey-chapters button[aria-pressed=true]:after{transform:scaleX(var(--fill,1))}
.journey-canvas,.journey-video{transition:opacity .3s}
.journey.is-inside .journey-welcome{visibility:visible;opacity:0;pointer-events:none}
.journey-stage{min-height:0}
.journey-picture{transform:scale(var(--settle,1));transform-origin:50% 100%;will-change:transform}
.journey-shade{opacity:var(--shade,1)}
.manifesto{position:relative}

/* Home: people strip ------------------------------------------------------- */
.people-home{background:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:end}
.people-home h2 em{color:var(--rose-dark)}.people-head p{margin:26px 0 34px;font-size:16px;line-height:1.85;max-width:38ch;color:#4a4f56}
.people-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,26px)}
.people-strip li:nth-child(even){margin-top:clamp(28px,3vw,56px)}
.people-strip a{display:block}
.people-portrait{display:block;aspect-ratio:4/5;overflow:hidden;background:#2b3036}
.people-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;filter:grayscale(1) contrast(1.04);transition:filter .6s,transform 1s var(--ease)}
.people-strip a:hover .people-portrait img{filter:none;transform:scale(1.04)}
.people-name{display:block;margin-top:14px;font:400 clamp(17px,1.3vw,21px)/1.2 var(--serif);letter-spacing:-.02em}
.people-role{display:block;margin-top:6px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-dark)}

/* Home: CTA hierarchy on the emotional peak; footer contact block -------------- */
.ethics-section .text-link{border-bottom-color:#fff}
.footer-cta{font-size:15px}
.footer-nav{display:flex;flex-wrap:wrap;gap:8px 28px;padding:34px 0 0;margin-top:40px;border-top:1px solid var(--line);font-size:13px}
.footer-nav a{padding:10px 0;min-height:44px;display:inline-flex;align-items:center;position:relative}
.footer-nav a:after{content:'';position:absolute;left:0;right:0;bottom:8px;height:1px;background:var(--rose-dark);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.footer-nav a:hover:after{transform:scaleX(1)}
.footer-signoff{margin-top:26px}.footer-copyright{display:inline;font-size:12px}
.footer-detail-label,.date,.article-meta,.svc-count,.map-labels text,.footer-brand>span>span{font-size:12px}
.footer-signoff,.footer-map-caption,.back-to-top,.map-directions{font-size:13px}
.back-to-top,.map-directions{padding:8px 0;min-height:24px}
.news-item .text-link{font-size:14px}.form-fallback .text-link{font-size:14px}
.form-privacy{margin-top:16px;font-size:12px;color:#625954}
.blog-intro{margin-top:18px;font-size:16px;color:#4a4f56;max-width:48ch}
body.inner .article-heading,body.inner .article-cover{margin-left:0;margin-right:0}
.article-body ul{padding-left:1.2em;margin:1.3em 0;list-style:disc}.article-body li{margin:.45em 0;line-height:1.75}
.google-map{width:100%}.footer-map .embed-fallback{opacity:1;visibility:visible}
.footer-map .embed-wrap.is-loaded>.embed-fallback{opacity:0;visibility:hidden}

/* Network: national reading first, one tab stop, big enough targets ---------- */
.state-hit{fill:transparent;pointer-events:all;cursor:pointer}
.network select{border-bottom-color:#8a7d80}
.state.has-partners{cursor:pointer}

/* Services shelf: gutters fade, clean renders, heading semantics --------------- */
.svc-more{display:inline-flex;align-items:center;gap:14px;margin-top:18px;font-size:13px;font-weight:600;color:#fff;border-bottom:1px solid #ffffff66;padding-bottom:8px;transition:border-color .3s}
.svc-more:hover{border-color:#fff}.svc-more svg{width:18px;height:18px}
@media(max-height:820px){.svc-heading{margin-bottom:14px}}

/* Team: explainers, touch hint -------------------------------------------------- */
.team-group-title{align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px 22px}
.team-group-title>div{display:flex;align-items:baseline;gap:22px}
.team-group-title p{margin:0;font-size:14px;color:#ffffffa6;max-width:40ch}
.member-hint{display:none}
@media(hover:none){.member-hint{display:inline;margin-left:14px;color:#fff;letter-spacing:.02em;text-transform:none;font-size:12px}.member-role::after{display:none}}
.about-closer{background:var(--ink);color:#fff;display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:center}
body.inner .about-closer h2{color:#fff}body.inner .about-closer h2 em{color:var(--rose-light)}
.about-closer-links{display:flex;flex-wrap:wrap;gap:24px 48px}.about-closer .text-link{color:#fff;border-color:#ffffff99}.about-closer .text-link:hover{color:var(--rose-light)}

/* Office walk: keep scenes in the tree, hand text to image in sequence ------------ */
.walk.is-enhanced .walk-scene{visibility:visible}
.walk.is-enhanced .walk-scene.is-offstage{opacity:0;pointer-events:none}
.walk-index .sr-only{position:absolute}

/* Reveals: emphasis, never availability ---------------------------------------- */
.v6-reveal [data-reveal]{transform:translateY(18px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.v6-reveal.reveal-done [data-reveal]{opacity:1;transform:none}

/* Biography sheet: static root, portrait morph keeps its ratio ------------------- */
::view-transition-old(root),::view-transition-new(root){animation:none}
::view-transition-old(bio-portrait),::view-transition-new(bio-portrait){height:100%;object-fit:cover}
.bio-dialog[open] .bio-copy>*{animation-duration:.6s}

/* Mobile ------------------------------------------------------------------------ */
@media(max-width:1000px){
 :root{--header-h:84px}
 .people-home{grid-template-columns:1fr;gap:34px}.people-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .about-closer{grid-template-columns:1fr;gap:30px}
}
@media(max-width:700px){
 :root{--header-h:72px;--gutter:22px}
 .brand-logo{width:54px;height:54px}.brand-name{font-size:21px}.brand-profession{font-size:9px;margin-top:5px}
 .header-quick span{display:none}.header-quick{padding:8px 11px;margin-right:10px}
 .journey{height:420svh}
 .journey-chapters button{font-size:13px;padding:12px 6px}
 .people-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.people-strip li:nth-child(even){margin-top:28px}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 14px}.member-name{font-size:19px}.member-full{font-size:11.5px}
 .footer-contact-details{margin-top:44px}
 .footer-map .google-map{height:min(300px,38svh)}
 .footer-nav{gap:4px 22px}
 .whatsapp-link{min-height:44px;align-items:center}
 .svc-intro{width:58vw}
 .walk.is-enhanced{height:calc(var(--scenes,7) * 78svh)}
 .v6-reveal [data-reveal]{transform:translateY(12px);transition-duration:.45s,.55s}
 .text-link{min-height:44px;align-items:flex-end}
}
@media(prefers-reduced-motion:reduce){
 .journey-picture{transform:none}.people-portrait img{transition:none}
}
.journey-picture{filter:brightness(var(--dim,1))}
html.has-cursor [data-cursor],html.has-cursor [data-cursor] a,html.has-cursor [data-cursor] button{cursor:none}
.walk.is-enhanced .walk-image img{will-change:auto}.walk.is-enhanced .walk-scene.is-live .walk-image img{will-change:transform}

/* Contact form: native, instant, in the site's typography ------------------- */
body.inner .contact-form{border-top:0;padding-top:0}
.site-form{background:var(--pale);padding:clamp(26px,3.4vw,48px)}
body.inner .site-form-title{font-size:clamp(30px,2.6vw,40px);margin:0 0 26px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field--wide{grid-column:1/-1}
.field span{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#4a4f56}.field b{color:var(--rose-dark);font-weight:600}
.field input,.field select,.field textarea{font:16px/1.5 var(--sans);color:var(--ink);background:#fff;border:1px solid #20252b26;border-radius:0;padding:13px 14px;min-height:50px;width:100%;transition:border-color .25s,box-shadow .25s}
.field textarea{resize:vertical;min-height:140px}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#20252b 50%),linear-gradient(135deg,#20252b 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--rose-dark);box-shadow:0 0 0 3px #85434526}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:#a3303a}
.field-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{margin:22px 0 0;font-size:13px;line-height:1.65;color:#625954}
.form-submit{display:inline-flex;align-items:center;gap:18px;margin-top:24px;background:var(--ink);color:#fff;font:600 15px var(--sans);padding:0 28px;min-height:54px;transition:background .3s}
.form-submit svg{width:22px;height:22px}.form-submit:hover{background:var(--rose-dark)}.form-submit:disabled{opacity:.6}
.form-status{margin-top:14px;font-size:14px;min-height:1.4em}
.site-form.is-sent .form-status{color:#2f6b45;font-weight:600}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}.site-form{margin:0 -22px;padding:28px 22px}}
/* Hero title fits narrow phones */
@media(max-width:700px){.journey h1{font-size:clamp(38px,11.5vw,52px)}.journey h2{font-size:clamp(34px,10vw,46px)}}
/* Footer without the map (every page but Contato) */
.footer:not(.footer--map){padding-top:clamp(60px,7vw,100px)}
.area-tile>a{display:block;height:100%}
.area-cta{display:inline-flex;align-items:center;gap:12px;margin-top:16px;font-size:13px;font-weight:600;color:var(--rose-dark);opacity:.0;transform:translateY(6px);transition:opacity .4s,transform .5s var(--ease)}
.area-cta svg{width:18px;height:18px}
.area-tile:hover .area-cta,.area-tile a:focus-visible .area-cta{opacity:1;transform:none}
@media(hover:none){.area-cta{opacity:1;transform:none}}
/* O escritório: forward dissolve instead of a hard-edged window */
.walk.is-enhanced .walk-image{clip-path:none;opacity:var(--alpha,1)}
.walk.is-enhanced .walk-image img{transform:scale(var(--zoom,1));filter:blur(var(--blur,0px));transform-origin:50% 55%}
.walk.is-enhanced .walk-scene.is-live .walk-image img{will-change:transform,filter}
.walk.is-enhanced .walk-shade{opacity:calc(.35 + var(--copy-alpha,1) * .65)}
.walk.is-enhanced{height:calc(var(--scenes,7) * 90svh)}
@media(max-width:700px){.walk.is-enhanced{height:calc(var(--scenes,7) * 70svh)}}

/* 23/09/2026 — one opening for the inner pages; the services band keeps its own h2 below it */
.svc-heading h2{font-size:var(--display-l);white-space:nowrap}
.svc-heading h2 em{color:var(--rose-light)}

/* Footer without the "Vamos conversar" invitation (it stays on Contato) */
.footer--compact .footer-contact-grid{display:block;padding-top:clamp(48px,7svh,72px);padding-bottom:clamp(30px,4svh,48px)}
.footer--compact .footer-contact-details{margin-top:0;max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.footer--compact .footer-contact-details{grid-template-columns:1fr}}

/* O que fazemos — how a case is conducted, drawn step by step */
.process{padding-top:0}
.process-head{display:flex;align-items:center;gap:28px;margin-bottom:clamp(40px,6svh,72px)}
.process-head .eyebrow{white-space:nowrap;margin:0;color:var(--rose-dark)}
.process-rule{flex:1;height:1px;background:#20252b1f}
.process-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(20px,2.6vw,44px);position:relative}
.process-steps::before,.process-steps::after{content:'';position:absolute;left:0;right:0;top:5px;height:1px;background:#20252b1f}
.process-steps::after{background:var(--rose-dark);transform-origin:left center}
.step{position:relative;padding-top:42px}
.step::before{content:'';position:absolute;top:0;left:0;width:11px;height:11px;border-radius:50%;background:var(--rose-dark);border:1px solid var(--rose-dark);box-sizing:border-box}
.step-n{display:block;font:500 12px/1 var(--sans);letter-spacing:.2em;color:var(--rose-dark);margin-bottom:16px}
.process .step h3{font:400 clamp(22px,1.8vw,28px)/1.15 var(--serif);letter-spacing:-.01em;margin:0 0 12px}
.process .step p{font-size:15px;line-height:1.65;color:#20252bb8;margin:0;max-width:28ch}
/* motion only once pages-v6.js is running: the line draws, each stop lights up in turn */
.has-process .process-steps::after{transform:scaleX(0);transition:transform 1.8s cubic-bezier(.22,.7,.2,1)}
.has-process .process-steps.is-in::after{transform:scaleX(1)}
.has-process .step{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease) calc(var(--i) * .3s + .1s),transform .8s var(--ease) calc(var(--i) * .3s + .1s)}
.has-process .step::before{background:#fff;transition:background .35s ease calc(var(--i) * .3s + .35s)}
.has-process .process-steps.is-in .step{opacity:1;transform:none}
.has-process .process-steps.is-in .step::before{background:var(--rose-dark)}
@media(max-width:900px){
 .process-steps{grid-template-columns:1fr;gap:34px;padding-left:34px}
 .process-steps::before,.process-steps::after{left:5px;right:auto;top:6px;bottom:6px;width:1px;height:auto}
 .process-steps::after{transform-origin:center top}
 .has-process .process-steps::after{transform:scaleY(0)}
 .has-process .process-steps.is-in::after{transform:scaleY(1)}
 .step{padding-top:0}
 .step::before{left:-34px;top:5px}
 .step p{max-width:40ch}
}
@media(prefers-reduced-motion:reduce){.has-process .step,.has-process .step::before,.has-process .process-steps::after{transition:none}}
.footer-channels>.whatsapp-link{display:flex;align-items:center;gap:10px}
.footer-nav{margin-left:var(--gutter);margin-right:var(--gutter)}
.practice-statement{padding-bottom:clamp(48px,7svh,88px)}
.process{padding-bottom:clamp(56px,8svh,100px)}

/* Home visit: the firm's story, one chapter per leg of the film */
.journey-copy{max-width:780px}
.journey-beat{position:absolute;left:0;right:0;bottom:0;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility 0s linear .5s}
.journey-beat.is-active{opacity:1;visibility:visible;transition:opacity .8s var(--ease) .12s,visibility 0s}
.journey-beat>*{transform:translateY(18px);transition:transform 1s var(--ease)}
.journey-beat.is-active>*{transform:none}
.journey-beat.is-active>:nth-child(2){transition-delay:.05s}
.journey-beat.is-active>:nth-child(3){transition-delay:.12s}
.journey-beat.is-active>:nth-child(n+4){transition-delay:.2s}
.journey-copy .journey-beat h2{font-size:clamp(44px,5.2vw,78px)}
.beat-label{display:flex;align-items:center;gap:14px;margin:0 0 22px;font:500 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#fffffff0}
.beat-label span{color:var(--rose-light);letter-spacing:.16em}
.beat-label:after{content:'';width:44px;height:1px;background:#ffffff73}
.journey-welcome .beat-label{margin-bottom:22px}
.journey .beat-text{margin:22px 0 0;max-width:54ch;font-size:16px;line-height:1.65;color:#ffffffe6}
.journey .beat-proof{margin:18px 0 0;font:500 11px/1.7 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--rose-light)}
.journey-beat .journey-cta{margin-top:28px;color:#fff;border-color:#ffffffb3;font-size:14px}
.journey-beat.is-active .journey-cta{pointer-events:auto}
.journey-chapters .chapter-n{font-size:10px;letter-spacing:.16em;opacity:.62;margin-right:9px}
@media(max-width:1100px){.journey-controls.journey-chapters{gap:24px}}
@media(max-width:700px){
 .journey-copy .journey-beat h2{font-size:clamp(34px,9.6vw,44px)}
 .journey .beat-text{font-size:14px;margin-top:16px}
 .journey .beat-proof{font-size:10px;margin-top:14px}
 .beat-label{margin-bottom:16px}
 .journey-controls.journey-chapters{gap:16px}
 .journey-chapters button:not([aria-pressed=true]) .chapter-name{display:none}
 .journey-chapters .chapter-n{margin-right:6px}
}
@media(prefers-reduced-motion:reduce){.journey-beat,.journey-beat>*{transition:none}}
.journey-copy .journey-beat h2 em{color:#fff}

/* 23/09/2026 (b) — Home fronts open in place */
.practice-item{border-bottom:1px solid var(--line)}
.practice-item:first-child{border-top:1px solid var(--line)}
.practice-item h3{margin:0;font-size:inherit}
.practice-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 0;background:none;border:0;color:inherit;text-align:left;cursor:pointer;font:400 clamp(24px,2.2vw,32px)/1.15 var(--serif);letter-spacing:-.01em;transition:color .2s}
.practice-toggle:hover,.practice-item.is-open .practice-toggle,.practice-toggle.is-active{color:var(--rose-dark)}
.practice-toggle:focus-visible{outline:2px solid var(--rose-dark);outline-offset:4px}
.practice-sign{position:relative;flex:none;width:18px;height:18px}
.practice-sign:before,.practice-sign:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform .45s var(--ease)}
.practice-sign:after{transform:rotate(90deg)}
.practice-item.is-open .practice-sign:after{transform:rotate(0deg)}
.practice-panel>div{overflow:hidden}
.practice-panel p{margin:0;padding:0 0 24px;max-width:52ch;font-size:16px;line-height:1.7;color:#20252bc7}
.is-accordion .practice-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.is-accordion .practice-item.is-open .practice-panel{grid-template-rows:1fr}
.is-accordion .practice-panel p{opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .5s var(--ease)}
.is-accordion .practice-item.is-open .practice-panel p{opacity:1;transform:none;transition-delay:.12s}
.area-chips li{cursor:default}
@media(prefers-reduced-motion:reduce){.is-accordion .practice-panel,.is-accordion .practice-panel p{transition:none}}

/* O que fazemos — the case flow on the horizontal shelf (after STLAW's "Our Services") */
.process-shelf .svc-heading h2{white-space:normal;line-height:1.02}

/* Quem somos — the firm's opening paragraph leads the team block */
.team-aside .team-lead{font:400 clamp(19px,1.5vw,23px)/1.5 var(--serif);color:#fff;max-width:30ch}

/* Eventos e Notícias — feed */
.feed-head{padding-bottom:clamp(28px,4svh,44px)}
.feed-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.feed-filters button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;border:1px solid #20252b33;border-radius:999px;background:none;color:inherit;font:500 13px/1 var(--sans);letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.feed-filters button span{font-size:11px;opacity:.6}
.feed-filters button:hover{border-color:#20252b99}
.feed-filters button[aria-pressed=true]{background:var(--ink,#20252b);border-color:var(--ink,#20252b);color:#fff}
.feed-filters button:focus-visible{outline:2px solid var(--rose-dark);outline-offset:3px}
.feed{padding-top:0}
.feed-card{position:relative;display:flex;flex-direction:column}
.feed-card[hidden]{display:none}
.feed-image{overflow:hidden;background:#f4f2f1;aspect-ratio:3/2}
.feed-image img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.feed-card:hover .feed-image img{transform:scale(1.04)}
.feed-body{padding-top:22px;display:flex;flex-direction:column;flex:1}
.feed-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 14px;font:500 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#20252b99}
.feed-meta span+span:before{content:'';display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;margin-right:14px;vertical-align:middle;opacity:.6}
.feed-kind{color:var(--rose-dark)}
.feed-title{margin:0;font:400 clamp(22px,1.9vw,28px)/1.2 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.feed-title a{color:inherit;text-decoration:none;transition:color .2s}
.feed-title a:after{content:'';position:absolute;inset:0;z-index:1}
.feed-card:hover .feed-title a{color:var(--rose-dark)}
.feed-card:focus-within{outline:2px solid var(--rose-dark);outline-offset:8px}
.feed-title a:focus-visible{outline:none}
.feed-excerpt{margin:14px 0 0;font-size:15px;line-height:1.7;color:#20252bb8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feed-action{display:inline-flex;align-items:center;gap:10px;margin-top:auto;padding-top:20px;font:500 13px/1 var(--sans)}
.feed-action svg{width:18px;height:18px;transition:transform .4s var(--ease)}
.feed-card:hover .feed-action svg{transform:translateX(6px)}
.feed-card--featured{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(28px,4vw,64px);align-items:center;padding-bottom:clamp(56px,8svh,96px);margin-bottom:clamp(56px,8svh,96px);border-bottom:1px solid var(--line)}
.feed-card--featured .feed-image{aspect-ratio:16/10}
.feed-card--featured .feed-body{padding-top:0}
.feed-card--featured .feed-title{font-size:var(--display-m,clamp(26px,2.3vw,36px));font-size:clamp(30px,3vw,46px);line-height:1.1}
.feed-card--featured .feed-excerpt{-webkit-line-clamp:5;font-size:16px}
.feed-card--featured .feed-action{margin-top:28px}
.feed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(48px,6svh,72px) clamp(24px,3vw,44px)}
.feed-empty{margin-top:24px;color:#20252b99}
@media(max-width:1000px){.feed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-card--featured{grid-template-columns:1fr}.feed-card--featured .feed-body{padding-top:4px}}
@media(max-width:620px){.feed-grid{grid-template-columns:1fr}.feed-filters{gap:8px}.feed-filters button{padding:0 16px}}
.feed-image--poster{background:var(--ink,#20252b)}
.feed-image--poster img{object-fit:contain}
.feed-card:hover .feed-image--poster img{transform:scale(1.02)}
.feed-card--featured{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
.feed-card--featured .feed-image--poster{aspect-ratio:4/5;max-height:78svh}
.feed-card--featured .feed-image--poster img{object-fit:cover}

/* ===== 23/09/2026 (c) ===== */
/* Generic in-place accordion (Home fronts, O que fazemos areas) */
.is-accordion .accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.is-accordion .accordion-item.is-open .accordion-panel{grid-template-rows:1fr}
.accordion-panel>div{overflow:hidden}
.is-accordion .accordion-panel p{opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .5s var(--ease)}
.is-accordion .accordion-item.is-open .accordion-panel p{opacity:1;transform:none;transition-delay:.12s}
@media(prefers-reduced-motion:reduce){.is-accordion .accordion-panel,.is-accordion .accordion-panel p{transition:none}}

/* O que fazemos — areas open in place; no call to contact */
.area-tile h3{margin:0}
.area-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0;background:none;border:0;color:inherit;text-align:left;cursor:pointer;font:inherit}
body.inner .area-tile h3 .area-toggle span:first-child{font:400 clamp(22px,1.7vw,27px)/1.2 var(--serif);letter-spacing:-.02em}
.area-toggle:focus-visible{outline:2px solid var(--rose-dark);outline-offset:6px}
.area-tile.is-open .area-toggle{color:var(--rose-dark)}
.area-tile .area-detail{margin:10px 0 0}
.area-tile .accordion-panel p{margin:0;padding-top:16px;font-size:15px;line-height:1.7;letter-spacing:0;text-transform:none;color:#20252bc7}
.area-tile{cursor:pointer}

/* Home — area labels are links to their area */
.area-chips a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid #20252b2e;border-radius:999px;color:inherit;text-decoration:none;font-size:13px;transition:background .25s,color .25s,border-color .25s}
.area-chips a:hover,.area-chips a:focus-visible{background:var(--ink,#20252b);border-color:var(--ink,#20252b);color:#fff}
.area-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.area-chips li{cursor:auto}

/* Home — "Experiência que atravessa o tempo." over time and tradition */
.manifesto-art{position:absolute;inset:0;z-index:0;pointer-events:none}
.manifesto-art img{width:100%;height:100%;object-fit:cover;object-position:78% 60%;opacity:.92}
.manifesto-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,#20252bd9 34%,#20252b33 70%,#20252b1a 100%),linear-gradient(0deg,#20252bcc 0%,transparent 45%)}
.manifesto>*:not(.manifesto-art){position:relative;z-index:1}
@media(max-width:700px){.manifesto-art img{object-position:70% 50%;opacity:.55}}

/* Home — mission, vision and values, all in prose */
.principles-v6 h2{font-size:clamp(36px,3.4vw,52px);margin-bottom:26px}

/* Shelves — every card on the same baseline (the focus effect no longer scales or drifts) */
.svc-caption{white-space:nowrap;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#ffffffa6}


/* O escritório — the same opening row as the shelves, over the walk */
.walk-heading{position:absolute;top:0;left:0;right:0;z-index:5;padding:clamp(28px,4svh,48px) var(--gutter) 0;pointer-events:none}
body.inner .walk-heading h1{font-size:var(--display-l);color:#fff;margin:0;white-space:nowrap;text-shadow:0 2px 24px #0b0f1473}
body.inner .walk-heading h1 em{color:var(--rose-light)}
.walk-heading .svc-rule{background:#ffffff59}
.walk-stage:before{content:'';position:absolute;inset:0 0 auto;height:34%;z-index:4;background:linear-gradient(180deg,#11171db3,transparent);pointer-events:none}
.walk.is-enhanced .walk-rail{display:none}
body.inner .walk-copy h2{font-size:clamp(46px,5.6vw,84px)}

/* Eventos e Notícias — the dark opening band, then a quieter feed */
.feed-band{background:var(--ink,#20252b);color:#fff;padding:clamp(34px,5svh,56px) var(--gutter) clamp(40px,6svh,64px)}
body.inner .feed-band h1{font-size:var(--display-l);color:#fff;margin:0;white-space:nowrap}
body.inner .feed-band h1 em{color:var(--rose-light)}
.feed-band .svc-heading{margin-bottom:22px}
.feed-intro{margin:0;font-size:15px;color:#ffffffb3}
.feed-band .feed-filters button{border-color:#ffffff40;color:#fff}
.feed-band .feed-filters button:hover{border-color:#ffffffa6}
.feed-band .feed-filters button[aria-pressed=true]{background:#fff;border-color:#fff;color:var(--ink,#20252b)}
.feed{padding-top:clamp(56px,8svh,96px)}
body.inner .feed-title{font:400 clamp(18px,1.3vw,21px)/1.3 var(--serif);letter-spacing:-.005em}
body.inner .feed-card--featured .feed-title{font-size:clamp(24px,2vw,30px);line-height:1.2}
.feed-card--featured .feed-image--poster{max-height:64svh}
.feed-meta{font-size:10.5px}

/* Footer — black, in columns */
.site-footer{background:#0d0f12;color:#ffffffd9;padding:clamp(64px,9svh,110px) var(--gutter) 36px}
.fx-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:clamp(32px,5vw,80px)}
.fx-logo{display:inline-flex;align-items:center;gap:16px;color:#fff;text-decoration:none}
.fx-logo img{width:58px;height:58px;filter:invert(1)}
.fx-logo>span{font:400 26px/1.1 var(--serif);letter-spacing:-.01em}
.fx-logo>span>span{display:block;margin-top:6px;font:500 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#ffffff99}
.fx-brand p{margin:26px 0 0;max-width:38ch;font-size:15px;line-height:1.75;color:#ffffffb8}
.site-footer .fx-label{margin:6px 0 22px;font:500 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:#ffffff73}
.fx-col ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.fx-col a{color:#ffffffe6;text-decoration:none;font-size:15px;transition:color .2s}
.fx-col a:hover,.fx-col a:focus-visible{color:var(--rose-light)}
.fx-col .fx-external svg{width:14px;height:14px;margin-left:8px;vertical-align:-2px}
.fx-note{margin:clamp(48px,7svh,80px) 0 0;max-width:110ch;font-size:13px;line-height:1.75;color:#ffffff73}
.fx-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding-top:26px;border-top:1px solid #ffffff1f;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff80}
.fx-bottom .back-to-top{color:#ffffffcc;text-decoration:none}
.fx-bottom .back-to-top:hover{color:#fff}
@media(max-width:1000px){.fx-top{grid-template-columns:1fr 1fr}.fx-brand{grid-column:1/-1}}
@media(max-width:600px){.fx-top{grid-template-columns:1fr}.fx-bottom{flex-direction:column}}
.manifesto-art img{transform:scaleX(-1);object-position:22% 72%}
.manifesto-art:after{background:linear-gradient(270deg,var(--ink) 0%,#20252be6 38%,#20252b40 72%,#20252b26 100%),linear-gradient(180deg,#20252bd9 0%,transparent 38%)}
.manifesto-art img{position:absolute;right:0;top:0;width:60%;height:66%;opacity:1;transform:none;object-fit:cover;object-position:82% 58%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 32%),linear-gradient(0deg,transparent 0,#000 34%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 32%),linear-gradient(0deg,transparent 0,#000 34%);mask-composite:intersect}
.manifesto-art:after{display:none}
@media(max-width:700px){.manifesto-art img{width:100%;height:42%;opacity:.5;object-position:80% 55%}}

/* ===== 23/09/2026 (d) ===== */
/* Network map: partner states in dark graphite, the selected one in black */
.network .state.has-partners{fill:#2b3138;stroke:#5a636d;stroke-width:.8;filter:none}
.network .state.has-partners:hover,.network .state.has-partners:focus-visible,.network .state.has-partners.selected{fill:#0d0f12;stroke:#fff;stroke-width:1.2}
.network .map-labels text{fill:#fff}
.network .state-depth{fill:#7d7f82;stroke:#7d7f82}
.network h2 em,.network .partner-number{color:var(--ink,#20252b)}
.network .state-result h3:empty{display:none}

/* Shelves: cards aligned on their top edge, whatever the length of their text (01 and 05 have one line) */

/* Home, "Ética e eficiência": bullets instead of numbers */
.principle-list li{gap:16px}
.principle-list li:before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:#f1c9cd;transform:translateY(-2px)}
/* Home manifesto: sculpture left, words right (replaces the full-bleed background) */
.manifesto--split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(40px,6vw,110px);align-items:center}
.manifesto-figure{margin:0;aspect-ratio:1;background:#fff;overflow:hidden}
.manifesto-figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.manifesto--split:hover .manifesto-figure img{transform:scale(1.03)}
.manifesto--split h2{font-size:clamp(40px,4.4vw,72px)}
.manifesto--split .manifesto-bottom{margin:clamp(40px,6svh,64px) 0 0;max-width:none}
.manifesto--split .manifesto-bottom h3{font-size:clamp(24px,2.2vw,32px)}
@media(max-width:900px){.manifesto--split{grid-template-columns:1fr}.manifesto-figure{max-width:560px}}
/* O escritório: longer scenes, no blur (it made the dissolve stutter on large photos) */
.walk.is-enhanced{height:calc(var(--scenes,7) * 120svh)}
@media(max-width:700px){.walk.is-enhanced{height:calc(var(--scenes,7) * 90svh)}}
.walk.is-enhanced .walk-image img{filter:none}
.walk.is-enhanced .walk-scene.is-live .walk-image img{will-change:transform}
.walk.is-enhanced .walk-scene.is-live .walk-image{will-change:opacity}
/* O escritório — texts under the walk */
.office-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,72px) clamp(40px,6vw,110px);align-items:start;padding-top:clamp(90px,12svh,150px)}
body.inner .office-intro h2{font-size:var(--display-l);margin:0}
.office-lead{margin:0;font:400 clamp(21px,1.8vw,27px)/1.5 var(--serif);letter-spacing:-.01em;color:#20252b}
.office-columns{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,56px);margin-top:clamp(28px,4svh,48px)}
.office-columns p{margin:0;padding-top:22px;border-top:1px solid #20252b26;font-size:15.5px;line-height:1.8;color:#20252bcc}
.office-columns--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.office-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(36px,5vw,90px);background:var(--pale,#f4f2f1);padding:clamp(70px,10svh,120px) var(--gutter)}
.office-feature-photo{margin:0;aspect-ratio:16/10;overflow:hidden}
.office-feature-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.office-feature:hover .office-feature-photo img{transform:scale(1.03)}
.office-feature-copy .eyebrow{display:block;color:var(--rose-dark);margin-bottom:22px}
body.inner .office-feature-copy h2{font-size:var(--display-m,clamp(30px,2.8vw,44px));font-size:clamp(34px,3.2vw,52px);margin:0 0 24px}
.office-feature-copy p{font-size:16px;line-height:1.8;color:#20252bcc;max-width:46ch}
.office-house{padding-top:clamp(90px,12svh,150px)}
body.inner .office-house h2{font-size:var(--display-l);margin:0}
.office-quote{margin:clamp(34px,5svh,56px) 0 0;padding:0 0 0 clamp(20px,2vw,32px);border-left:2px solid var(--rose-dark);max-width:62ch}
.office-quote p{margin:0;font:400 clamp(20px,1.7vw,26px)/1.55 var(--serif);font-style:italic;color:#20252b}
.office-house .office-columns{margin-top:clamp(40px,6svh,64px)}
@media(max-width:900px){.office-intro,.office-feature{grid-template-columns:1fr}.office-columns,.office-columns--two{grid-template-columns:1fr}}

/* ===== 23/09/2026 (e) ===== */
/* Home: the manifesto goes light, the people block goes dark (colours swapped) */
.manifesto.manifesto--split{background:#fff;color:var(--ink,#20252b);--focus-ring:var(--ink,#20252b)}
.manifesto--split h2,.manifesto--split h3{color:var(--ink,#20252b)}
.manifesto--split h2 em{color:var(--rose-dark)}
.manifesto--split .manifesto-bottom p{color:#4a4f56}
.manifesto--split .text-link{color:var(--ink,#20252b);border-color:var(--ink,#20252b)}
.manifesto--split .text-link:hover{color:var(--rose-dark)}
.manifesto--split .manifesto-figure{background:#f4f2f1}
.people-home{background:var(--ink,#20252b);color:#fff;--focus-ring:#fff}
.people-home h2{color:#fff}
.people-home h2 em{color:var(--rose-light)}
.people-head p{color:#ffffffb8}
.people-home .people-name{color:#fff}
.people-home .people-role{color:var(--rose-light)}
.people-home .text-link{color:#fff;border-color:#ffffffb3}
.people-home .text-link:hover{color:var(--rose-light)}

/* Network map: partner states in #864445; tilted to the right like the hour hand at 13:40 (about 50°) */
.network .state.has-partners{fill:#864445;stroke:#b98386;stroke-width:.8}
.network .state.has-partners:hover,.network .state.has-partners:focus-visible,.network .state.has-partners.selected{fill:#5a2b2d;stroke:#fff;stroke-width:1.2}
.network .state-depth{fill:#5a2b2d;stroke:#5a2b2d}
.network h2 em,.network .partner-number{color:#864445}
.network .brazil-map svg{transform:rotateX(31deg) rotateZ(50deg);transform-origin:50% 52%}

/* O escritório: columns start on the same line (the site's p+p margin no longer applies here) */
body.inner .office-columns p+p{margin-top:0}
.office-columns--one{grid-template-columns:minmax(0,1fr);max-width:78ch}
.office-feature-map{aspect-ratio:16/10;overflow:hidden;background:var(--pale,#f4f2f1)}
.office-feature-map .google-map{width:100%;height:100%;border:0;display:block}
.network .brazil-map svg{transform:rotateX(31deg) rotateZ(50deg) scale(.74);transform-origin:50% 50%}
.network .brazil-map{overflow:visible}
/* Network map upright (north up), only slightly tilted to the right */
.network .brazil-map svg{transform:rotateX(31deg) rotateZ(3deg);transform-origin:50% 52%}
/* Contato: the map runs straight into the black footer, no white band between them */
.footer.footer--map{padding:0;margin:0;border:0;background:none}
.footer--map .footer-map{margin:0;padding:0}
.footer--map .footer-map .embed-wrap{margin:0}
.footer--map .google-map{display:block}
.fx-col .fx-external{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.fx-col .fx-external svg{margin-left:0}

/* Contato — the dark opening band like the other pages, then channels, address and form */
.contact-band{background:var(--ink,#20252b);color:#fff;padding:clamp(34px,5svh,56px) var(--gutter) clamp(44px,7svh,72px)}
body.inner .contact-band h1{font-size:var(--display-l);color:#fff;margin:0;white-space:nowrap}
body.inner .contact-band h1 em{color:var(--rose-light)}
body.inner .contact-page{padding-top:clamp(56px,8svh,96px)}
.contact-channels-buttons{display:grid;gap:14px;max-width:380px}
.channel-button{display:flex;width:100%;margin:0}
.channel-button svg{width:26px;height:26px}
.contact-details{margin-top:clamp(36px,5svh,52px);max-width:380px}
.contact-details .contact-label{margin:0 0 16px}
.contact-line{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid #20252b1f;color:inherit;text-decoration:none;font-size:16px;line-height:1.6;transition:color .2s}
.contact-line:last-child{border-bottom:1px solid #20252b1f}
.contact-line svg{flex:none;width:22px;height:22px;margin-top:1px;color:var(--rose-dark)}
.contact-line:hover{color:var(--rose-dark)}

/* One opening title for every inner page (Quem somos, O que fazemos, O escritório, Eventos e Notícias, Contato) */
:root{--band-title:clamp(46px,5.6vw,80px);--band-top:48px}
body.inner .svc-heading h1,body.inner .svc-heading h2{font-size:var(--band-title);line-height:1.04;letter-spacing:-.035em;margin:0;white-space:nowrap;color:#fff}
body.inner .svc-heading h1 em,body.inner .svc-heading h2 em{color:var(--rose-light)}
.walk-heading{padding-top:var(--band-top)}
.feed-band,.contact-band{padding-top:var(--band-top)}
@media(max-width:700px){:root{--band-top:32px}}
/* One size for every section title across the site (the opening bands use --band-title) */
body .manifesto--split h2,body .people-home h2,body .practice-content h2,body .ethics-section h2,body .network-heading h2,
body.inner .team-aside h2,body.inner .areas-head h2,body.inner .practice-statement h2,
body.inner .office-intro h2,body.inner .office-feature-copy h2,body.inner .office-house h2{font-size:var(--display-l);line-height:1.08;letter-spacing:-.03em}
/* Footer: WhatsApp and Instagram buttons under the firm's line (same links as Contato) */
.fx-social{display:flex;gap:12px;margin-top:30px}
.fx-social a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #ffffff40;border-radius:50%;color:#fff;transition:background .25s,border-color .25s,color .25s,transform .25s}
.fx-social a:hover,.fx-social a:focus-visible{background:#fff;border-color:#fff;color:#0d0f12;transform:translateY(-2px)}
.fx-social svg{width:22px;height:22px}
/* Opening bands on phones: the title wraps, the caption or counter drops below it instead of leaving the screen */
@media(max-width:700px){
 .svc-heading{flex-wrap:wrap;row-gap:14px}
 body.inner .svc-heading h1,body.inner .svc-heading h2{white-space:normal}
 .svc-heading .svc-rule{display:none}
 .svc-heading .svc-caption,.svc-heading .svc-count{flex-basis:100%;margin-left:0;white-space:normal}
}
@media(max-width:700px){.svc-heading .svc-count{flex-basis:auto}}  /* the counters of the other bands stay beside the title (the shelves put theirs below it: shelf-v9) */
/* Final review fixes: contrast margins and field errors */
.feed-meta{color:#4a4f56}
.fx-note{color:#ffffff99}
.field-error{display:block;margin-top:6px;font-size:13px;color:#8b1d24}
.article-table{overflow-x:auto;margin:24px 0 32px}
.article-table table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.6}
.article-table th{text-align:left;font:500 12px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rose-dark);padding:0 16px 12px 0;border-bottom:1px solid #20252b33}
.article-table td{vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid #20252b1a}
/* Home chapters without numbers; on phones the inactive chapters are short bars, the active one shows its name */
@media(max-width:700px){
 .journey-chapters button:not([aria-pressed=true]){min-width:26px}
 .journey-chapters button:not([aria-pressed=true]):before{content:'';position:absolute;left:2px;right:2px;bottom:3px;height:1px;background:#ffffff59}
}

/* ===== 24/09/2026 — photographs instead of 3D art ===== */
/* O que fazemos: area cards in the GMPR manner — black-and-white photo, dark veil, title over the photo */
.areas-grid .area-tile{padding:0;background:#fff;cursor:pointer}
.area-figure{position:relative;overflow:hidden;background:var(--ink,#20252b)}
.areas-grid .area-figure .area-art{width:100%;max-width:none;margin:0;aspect-ratio:1/1;overflow:hidden}
.areas-grid .area-figure .area-art img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform 1.1s var(--ease)}
.areas-grid .area-tile:hover .area-art img,.areas-grid .area-tile.is-open .area-art img{transform:scale(1.05)}
.area-figure:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#141a22f0 0%,#141a2299 32%,#141a2200 62%);pointer-events:none}
.area-figure h3{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:0 clamp(20px,2vw,28px) clamp(18px,2vw,24px)}
.area-figure .area-toggle,.areas-grid .area-tile.is-open .area-toggle{color:#fff}
body.inner .area-figure h3 .area-toggle span:first-child{color:#fff;font-size:clamp(22px,1.8vw,28px)}
.area-figure .area-toggle:focus-visible{outline-color:#fff}
.area-figure .area-detail{position:absolute;left:clamp(20px,2vw,28px);top:clamp(16px,1.6vw,22px);z-index:2;margin:0;color:#fff;font-size:11px;letter-spacing:.2em}
.areas-grid .area-tile .accordion-panel p{padding:18px clamp(20px,2vw,28px) 22px}
/* Home manifesto: a real photograph of the office */
.manifesto--split .manifesto-figure{aspect-ratio:4/5;background:#f4f2f1}
.manifesto--split .manifesto-figure img{object-position:50% 50%}
.area-figure:before{content:'';position:absolute;inset:0 0 auto;height:30%;z-index:1;background:linear-gradient(180deg,#141a2299,#141a2200);pointer-events:none}

/* ===== 24/09/2026 (b) — line drawings of the sculpture collection; colour-on-hover area photos ===== */
/* Home fronts and manifesto: drawings on white */
.practice-visual{background:#fff}
.practice-visual .practice-preview{object-fit:contain}
.manifesto--split .manifesto-figure{background:#fff}
.manifesto--split .manifesto-figure img{object-fit:contain}
/* Areas: breathing room between cards; dark, black-and-white at rest, colour on hover (same zoom) */
.areas-grid{gap:clamp(16px,2vw,28px);background:none;border:0}
.areas-grid .area-figure .area-art img{filter:grayscale(1) brightness(.72);transition:transform 1.1s var(--ease),filter .6s ease}
.areas-grid .area-tile:hover .area-art img,.areas-grid .area-tile:focus-within .area-art img,.areas-grid .area-tile.is-open .area-art img{filter:none}
.areas-grid .area-tile{border:1px solid #20252b1a}

/* ===== 24/09/2026 (c) — areas sized like the rest of the team on Quem somos; O escritório gallery ===== */
/* O que fazemos: the five steps are the large cards; the nine areas sit smaller, in three columns beside a sticky heading (as .team-v6) */
.areas-v6{display:grid;grid-template-columns:.72fr 2fr;gap:48px 6vw;align-items:start}
.areas-v6 .areas-head{display:block;position:sticky;top:calc(var(--header-h) + 56px);margin:0}
.areas-v6 .areas-head p{margin-top:34px;font-size:15px;max-width:36ch}
.areas-v6 .areas-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,1.8vw,28px)}
body.inner .areas-v6 .area-figure h3 .area-toggle span:first-child{font-size:clamp(19px,1.5vw,24px)}
@media(max-width:1000px){.areas-v6{grid-template-columns:1fr;gap:36px}.areas-v6 .areas-head{position:static}.areas-v6 .areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* phones: two columns, so the areas stay smaller than the step cards above (as on Quem somos) */
@media(max-width:560px){.areas-v6 .areas-grid{gap:12px}.areas-v6 .area-figure h3{padding:0 14px 14px}.areas-v6 .area-figure .area-detail{left:14px;top:12px;font-size:9px;letter-spacing:.14em}body.inner .areas-v6 .area-figure h3 .area-toggle span:first-child{font-size:16px;line-height:1.15}.areas-v6 .area-toggle{gap:8px}}

/* O escritório: the gallery (.office-slides: .office-gallery is an old v2 class) takes the place of the map beside "Portas abertas" */
.office-slides{position:relative;min-width:0;touch-action:pan-y}
.gallery-track{position:relative;aspect-ratio:16/9;overflow:hidden;background:#20252b}
.gallery-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.4s var(--ease),visibility 0s 1.4s;visibility:hidden}
.gallery-slide.is-active{opacity:1;visibility:visible;transition:opacity 1.4s var(--ease),visibility 0s}
.gallery-slide video{display:block;width:100%;height:100%;object-fit:cover;background:#20252b}
.gallery-slide.is-waiting video{opacity:0}  /* a clip about to play from its first frame (ink) hides its poster, so the slide goes ink -> picture, never poster -> ink -> picture */
.gallery-bar{display:flex;align-items:center;gap:14px;margin-top:18px}
.gallery-count{font:500 11px/1 var(--sans);letter-spacing:.2em;color:#20252b99;min-width:62px}
.gallery-count b{color:#20252b;font-weight:600}
.gallery-progress{flex:1;height:1px;background:#20252b26;overflow:hidden}
.gallery-progress i{display:block;height:100%;background:var(--rose-dark);transform-origin:0 50%;transform:scaleX(0)}
.gallery-bar button{width:42px;height:42px;border-radius:50%;border:1px solid #20252b33;background:none;color:#20252b;display:grid;place-items:center;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.gallery-bar button:hover,.gallery-bar button:focus-visible{background:#20252b;color:#fff;border-color:#20252b}
.gallery-bar svg{width:17px;height:17px}
.gallery-prev svg{transform:scaleX(-1)}
.gallery-toggle span{width:10px;height:12px;border-left:2px solid currentColor;border-right:2px solid currentColor}
.office-slides.is-paused .gallery-toggle span{border:0;width:0;height:0;border-left:10px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;margin-left:3px}
@media(prefers-reduced-motion:reduce){.gallery-slide{transition:none}}

/* ===== 24/09/2026 (d) — partner map: title on the left, map on the right, hover only (no selector, not clickable) ===== */
.network--static .network-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,110px);align-items:center;margin-top:0}
.network--static .network-heading{display:block}
.network--static .map-caption{margin-top:36px}
.network--static .state.has-partners{cursor:default}
@media(max-width:900px){.network--static .network-grid{grid-template-columns:1fr;gap:28px}}

/* ===== 24/09/2026 (f) — brand icons as medallions (brand_icons.py) in place of the cancelled hand drawings ===== */
.brand-mark{position:relative;width:100%;height:100%;display:grid;place-items:center;background:#f4f2f1;color:var(--ink,#20252b);container-type:size;overflow:hidden}
.brand-mark-ring{position:absolute;left:50%;top:50%;width:min(70cqw,70cqh);aspect-ratio:1;border:1px solid #8543454d;border-radius:50%;transform:translate(-50%,-50%);transition:transform 1.1s var(--ease),border-color .6s}
.brand-mark svg{position:relative;width:min(36cqw,36cqh);height:auto;overflow:visible;transition:transform 1.1s var(--ease)}
.brand-mark svg [stroke]{vector-effect:non-scaling-stroke;stroke-width:2.2px}
.brand-mark svg [fill="currentColor"]{fill:var(--rose-dark,#854345)}
.practice-visual,.manifesto--split .manifesto-figure{background:#f4f2f1}
.practice-visual .brand-mark.practice-preview{position:absolute;inset:0;width:100%;height:100%}
.svc-card:hover .brand-mark-ring,.manifesto--split:hover .brand-mark-ring,.practice-visual:hover .brand-mark-ring{transform:translate(-50%,-50%) scale(1.04);border-color:#85434580}
.svc-card:hover .brand-mark svg,.manifesto--split:hover .brand-mark svg{transform:scale(1.03)}
@media(prefers-reduced-motion:reduce){.brand-mark-ring,.brand-mark svg{transition:none}}

/* ===== 24/09/2026 (g) — photos on the Home and the five steps (research/media/v13), like the nine areas; step text never clipped ===== */
.practice-visual .practice-preview{object-fit:cover}
.manifesto--split .manifesto-figure img{object-fit:cover}

/* ===== 24/09/2026 (h) — Home: the emblem as a sculpture, transparent PNG/WebP (research/media/v14); no panel behind ===== */
.practice-visual,.manifesto--split .manifesto-figure{background:none;overflow:visible}
.practice-visual .practice-preview,.manifesto--split .manifesto-figure img{object-fit:contain;object-position:50% 50%;transform:none}
.manifesto--split:hover .manifesto-figure img{transform:none}

/* ===== 24/09/2026 (i) — Home fronts: one fixed image; each theme bounces on hover (no image swap) ===== */
@keyframes practice-bounce{0%{transform:translateY(0)}28%{transform:translateY(-7px)}52%{transform:translateY(0)}70%{transform:translateY(-3px)}86%{transform:translateY(0)}100%{transform:translateY(0)}}
.practice-toggle>span:first-child{display:inline-block;transition:color .3s ease}
.practice-toggle:hover>span:first-child,.practice-toggle:focus-visible>span:first-child{animation:practice-bounce .7s cubic-bezier(.3,.7,.4,1) both;color:var(--rose-dark,#854345)}
.practice-toggle:hover .practice-sign,.practice-toggle:focus-visible .practice-sign{animation:practice-bounce .7s cubic-bezier(.3,.7,.4,1) .06s both}
@media(prefers-reduced-motion:reduce){.practice-toggle:hover>span:first-child,.practice-toggle:hover .practice-sign,.practice-toggle:focus-visible>span:first-child,.practice-toggle:focus-visible .practice-sign{animation:none}}

/* ===== 24/09/2026 (l) — article "Destaque" kept as text (it came as an image card) ===== */
.article-highlight{margin:0 0 clamp(32px,4vw,48px);padding:26px 30px;border-left:2px solid var(--rose-dark,#854345);background:#f4f2f1}
.article-highlight span{display:block;font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--rose-dark,#854345);margin-bottom:14px}
.article-highlight p{margin:0;font:400 clamp(19px,1.6vw,23px)/1.5 var(--serif);color:var(--ink,#20252b)}

/* ===== 25/09/2026 — featured post: landscape photo covers now; the poster-era two columns no longer apply on phones ===== */
.feed-card--featured:not(:has(.feed-image--poster)){grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
@media(max-width:760px){
 .feed-card--featured,.feed-card--featured:not(:has(.feed-image--poster)){grid-template-columns:1fr;gap:22px;align-items:start}
 .feed-card--featured .feed-image{aspect-ratio:3/2}
 body.inner .feed-card--featured .feed-title{font-size:clamp(26px,7.4vw,32px);overflow-wrap:anywhere}
 .feed-card--featured .feed-excerpt{-webkit-line-clamp:4}
 .feed-card--featured .feed-action{margin-top:18px}
}
/* tone-v8.css */
/* tone-v8 — v8 round, 13/10/2026
   MONOCHROME-FIRST. Client brief: "the old site was more monochromatic; the reddish colour is exaggerated —
   keep it discreet, subtle, less explicit". Loads after every other stylesheet, so everything here is an override.

   System
   - Neutrals do all the work: ink #20252b, graphite #3b4249, soft ink #5a6067 (italic emphasis, hovers, labels on light),
     soft white rgba(255,255,255,.72) (italic emphasis, labels on dark).
   - Rose survives only as --accent (#854345), as a whisper: the 1.5px nav underline, the keyboard focus ring on light
     backgrounds, the 01/02/03 numerals on Home and the 2px rule beside quotes/highlights. Nothing else.
   - The legacy tokens --rose / --rose-dark / --rose-light are re-declared as neutrals below. Every older stylesheet
     (and anything redesigned later) that still says var(--rose-*) therefore turns neutral by itself; only colours
     hard-coded as hex are overridden one by one further down.
   - Errors stay red (.field-error, .is-invalid): that is functional, not brand colour.
   - Left alone on purpose (being redesigned elsewhere): .journey hero film (its progress bar keeps #dba4a9), .walk scenes. */

:root{
  --ink-soft:#5a6067;                 /* 6.4:1 on #fff, 5.3:1 on #eceae8 */
  --graphite:#3b4249;                 /* hover fills for ink buttons, map partner states */
  --on-dark-soft:rgba(255,255,255,.72);
  --accent:#854345;                   /* the only rose left (8.4:1 on #fff, 7.6:1 on #f4f2f1) */

  /* legacy rose tokens → neutrals (see header comment) */
  --rose:#7b8187;
  --rose-dark:var(--ink-soft);        /* used as text/border/fill on LIGHT surfaces */
  --rose-light:var(--on-dark-soft);   /* used as text/border/outline on DARK surfaces */

  --focus-ring:var(--accent);         /* dark sections already switch it to #fff (polish-v7) */
}
/* dark surfaces missing from polish-v7's list: the rose ring would drop below 3:1 there (2.6:1 on the footer) */
.site-footer,.feed-band,.contact-band,.office-band,.about-closer,.svc-shelf{--focus-ring:#fff}

/* ---------- global ---------- */
html{scrollbar-color:#6b7279 var(--pale)}
::selection{background:var(--ink);color:#fff}
h1 em,h2 em{color:var(--ink-soft)}
.text-link:hover{color:var(--ink-soft)}

/* ---------- header / nav: the whisper ---------- */
.nav a:after{background:var(--accent)}
@media(min-width:1001px){
  .nav .nav-contact:hover{background:var(--ink);border-color:var(--ink)}
}
.footer-nav a:after{background:rgba(255,255,255,.65)}          /* dark footer: neutral underline */
.fx-col a:hover,.fx-col a:focus-visible{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em}

/* ---------- Home ---------- */
/* hero manifesto (light) */
.manifesto:not(.manifesto--split) h2 em{color:var(--on-dark-soft)}
.manifesto:not(.manifesto--split) .text-link:hover{color:var(--on-dark-soft)}
.manifesto-mark{color:#c4c7ca}
.manifesto--split h2 em,.manifesto-copy h2 em{color:var(--ink-soft)}
.manifesto--split .text-link:hover{color:var(--ink-soft)}
/* people (dark ink band) */
.people-home h2 em{color:var(--on-dark-soft)}
.people-home .people-role{color:var(--on-dark-soft)}
.people-home .text-link:hover{color:var(--on-dark-soft)}
/* practice rows / accordion: hover softens, the open row stays full ink */
.practice-rows a:hover{color:var(--ink-soft)}
.practice-rows a.is-active{color:var(--ink)}
.practice-toggle:hover{color:var(--ink-soft)}
.practice-toggle.is-active,.practice-item.is-open .practice-toggle{color:var(--ink)}
.practice-toggle:hover>span:first-child,.practice-toggle:focus-visible>span:first-child{color:var(--ink-soft)}
.practice-toggle:focus-visible{outline-color:var(--accent)}
.practice-home h2 em,.practice-content h2 em{color:var(--ink-soft)}
/* Missão / Visão / Valores numerals: the one deliberate rose on Home */
.principle-n{color:var(--accent)}
/* "Ética e eficiência": burgundy band → dark ink (neighbours are pale: principles above, network below) */
.ethics-section{background:var(--ink);color:#fff}
.ethics-section h2 span{color:rgba(255,255,255,.55)}
.ethics-section .text-link:hover{color:var(--on-dark-soft)}
.ethics-section .principle-list li:before,.principle-list li:before{background:rgba(255,255,255,.75)}
.principle-list span{color:var(--on-dark-soft)}

/* ---------- Brazil partner map (Home) ---------- */
.network{background:#ecebea;color:var(--ink)}
.network h2 em,.network .partner-number{color:var(--ink-soft)}
.network-intro,.network-detail-caption,.network-selector label,.network .map-caption{color:#4a5056}
.network-selector{border-top-color:#c6c6c4}
.network select{border-bottom-color:#8a8f94}
.map-key{background:var(--graphite)}
.network .brazil-map svg{filter:drop-shadow(-7px 28px 11px #20252b40)}
.network .state-muted{fill:#d9d9d7;stroke:#b9b9b7}
.network .state-depth{fill:#565c62;stroke:#565c62}
.network .state.has-partners{fill:var(--graphite);stroke:#7d848b;stroke-width:.8}
.network .state.has-partners:hover,.network .state.has-partners:focus-visible,.network .state.has-partners.selected{fill:#171b20;stroke:#fff;stroke-width:1.2}
.network .state.has-partners:focus-visible{stroke:#fff;stroke-width:2.8}
.has-partners.selected{fill:#171b20}
/* same palette for any map instance outside .network (e.g. a future one on /contato/) */
.state-muted{fill:#d9d9d7;stroke:#b9b9b7}
.state-depth{fill:#565c62;stroke:#565c62}
.has-partners{fill:var(--graphite);stroke:#7d848b}
.has-partners:hover,.has-partners:focus-visible,.has-partners.selected{fill:#171b20;stroke:#fff}

/* ---------- Quem somos / O que fazemos (dark ink bands) ---------- */
.svc-shelf::before{background:radial-gradient(90% 70% at 85% 0%,#ffffff0d,transparent 60%),radial-gradient(70% 60% at 0% 100%,#0000004d,transparent 70%)}
.eyebrow{color:var(--on-dark-soft)}                              /* default eyebrows sit on dark bands */
.svc-heading h1 em,.svc-heading h2 em,body.inner .svc-heading h1 em,body.inner .svc-heading h2 em{color:var(--on-dark-soft)}
.team-v6 .team-aside h2 em,body.inner .team-aside h2 em{color:var(--on-dark-soft)}
.member-role,.bio-role,.team-group-title span,.beat-label span{color:var(--on-dark-soft)}
.member-portrait--card::before{background:var(--ink-deep)}
.member-card:focus-visible,.bio-close:focus-visible{outline-color:#fff}
.about-closer h2 em,body.inner .about-closer h2 em{color:var(--on-dark-soft)}
.about-closer .text-link:hover{color:var(--on-dark-soft)}
/* light sections of O que fazemos */
body.inner .areas-head h2 em,body.inner .v6-split h2 em,.practice-statement em{color:var(--ink-soft)}
.area-tile p{color:var(--on-dark-soft)}                          /* sits on a dark photo tile */
.area-cta{color:#fff}
.area-chips a:hover,.area-chips a:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff}   /* chips: ink fill on hover (replaces the rose tint of pages-v6) */
.area-toggle:focus-visible{outline-color:#fff}
.area-tile.is-open .area-toggle{color:#fff}

/* ---------- Blog / Eventos e Notícias ---------- */
.feed-band h1 em,body.inner .feed-band h1 em{color:var(--on-dark-soft)}
.feed-kind{color:var(--ink-soft)}
.feed-card:hover .feed-title a{color:var(--ink-soft)}
.feed-card:focus-within{outline-color:var(--accent)}
.feed-filters button:focus-visible{outline-color:#fff}           /* filters sit on the dark band */

/* ---------- Contato ---------- */
.contact-band h1 em,body.inner .contact-band h1 em{color:var(--on-dark-soft)}
.contact-line svg{color:var(--ink-soft)}
.contact-line:hover{color:var(--ink-soft)}
.field b{color:var(--ink-soft)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px #20252b26}
.form-submit:hover{background:var(--graphite)}
.whatsapp-button:hover{background:var(--graphite);box-shadow:0 14px 34px #20252b33}
.embed-pin{color:var(--ink-soft)}
.footer-channels a:hover,.footer-contact address a:hover{color:var(--ink-soft)}

/* ---------- O escritório (light parts only; .walk is being redesigned) ---------- */
.office-words h2 em,.office-intro h2 em,.office-feature-copy h2 em,.office-house h2 em{color:var(--ink-soft)}
.office-feature-copy .eyebrow{color:var(--ink-soft)}
.office-quote{border-left-color:var(--accent)}
.gallery-progress i{background:var(--ink)}
.gallery-count{color:var(--ink-soft)}                                  /* was ink at 60% = 4.0:1, below AA */
.office-collection h2 em{color:var(--on-dark-soft)}
.office-gallery-stage:focus-visible{outline-color:var(--focus-ring)}
body.inner .office-position{color:var(--on-dark-soft)}
.office-thumbnails{scrollbar-color:#8a9097 #35404a}
.office-thumb[aria-pressed=true]{border-color:#fff}
.office-thumb:focus-visible{outline-color:#fff}
.brand-mark-ring{border-color:#20252b4d}
.brand-mark svg [fill="currentColor"]{fill:var(--ink)}
.svc-card:hover .brand-mark-ring,.manifesto--split:hover .brand-mark-ring,.practice-visual:hover .brand-mark-ring{border-color:#20252b80}

/* ---------- Articles ---------- */
body.inner .article-body a{color:var(--ink);text-decoration-color:var(--ink-soft);text-decoration-thickness:1px}
body.inner .article-body a:hover{text-decoration-thickness:2px}
body.inner .article-body blockquote{border-top-color:#c9c9c7;border-bottom-color:#c9c9c7}
body.inner .partner-bio .bio-role{color:var(--ink-soft)}
.article-highlight{border-left-color:var(--accent)}
.article-highlight span{color:var(--ink-soft)}
.article-table th{color:var(--ink)}

/* ---------- misc ---------- */
.person-role{color:var(--ink-soft)}
.person summary:focus-visible{outline-color:var(--accent)}
/* hero-v8.css */
/* hero-v8 — v8 round, 13/10/2026 */

/* Home hero: the headline on the left, the film playing by itself in a contained 16:9 window on the right.
   One screen at most (never sticky, never taller than needed). Monochrome; behaviour lives in journey.js. */
.hero-v8{--hero-h:min(calc(100svh - var(--header-h)),820px);--hero-mute:#585d63;--focus-ring:var(--ink);position:relative;display:flex;align-items:center;min-height:var(--hero-h);padding:clamp(28px,5svh,56px) var(--gutter);background:var(--paper);color:var(--ink)}
.hero-inner{position:relative;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 60%;align-items:center;gap:clamp(32px,4.5vw,80px)}

/* headline */
.hero-intro{max-width:560px;container-type:inline-size}
.hero-label{display:flex;align-items:center;gap:14px;margin:0 0 clamp(18px,2.2vw,28px);font:500 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ink)}
.hero-label:after{content:'';width:44px;height:1px;background:var(--ink);opacity:.4}
.hero-v8 h1{font-size:clamp(38px,3.3vw,60px);line-height:1.06;letter-spacing:-.03em;color:var(--ink)}
.hero-v8 h1 em{color:inherit}
@supports (container-type:inline-size){.hero-v8 h1{font-size:clamp(34px,10.5cqi,66px)}}
.hero-lead{margin-top:clamp(18px,2vw,28px);max-width:42ch;font-size:clamp(15px,1.15vw,17px);line-height:1.7;color:var(--hero-mute)}

/* the frame: the 16:9 box is reserved up front, the poster fills it until the film can play */
.hero-film{container-type:inline-size;justify-self:end;width:100%;max-width:max(calc((var(--hero-h) - 262px) * 16 / 9),480px)}
.hero-frame{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:2px;background:var(--pale)}
.hero-media{position:absolute;inset:0}
.hero-frame .journey-poster,.hero-video{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transform:none}
.hero-video{opacity:0;background:transparent;transition:opacity .45s ease}
.hero-v8.is-live .hero-video{opacity:1}

/* the one control: icon only, shown on hover or focus (always on touch screens and while paused) */
.hero-toggle{position:absolute;right:12px;bottom:12px;z-index:2;display:grid;place-items:center;width:40px;height:40px;border-radius:2px;background:rgba(32,37,43,.78);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);color:#fff;opacity:0;transition:opacity .25s ease,background-color .25s ease}
.hero-toggle svg{width:18px;height:18px;fill:currentColor}
.hero-toggle .i-play,[data-paused=true] .hero-toggle .i-pause{display:none}
[data-paused=true] .hero-toggle .i-play{display:block}
.hero-frame:hover .hero-toggle,.hero-toggle:focus-visible,[data-paused=true] .hero-toggle{opacity:1}
.hero-toggle:hover{background:rgba(32,37,43,.92)}
.hero-toggle:focus-visible{outline:2px solid #fff;outline-offset:-5px;box-shadow:0 0 0 2px var(--ink)}
@media(hover:none){.hero-toggle{opacity:.92}}
@media(pointer:coarse){.hero-toggle{width:44px;height:44px;right:10px;bottom:10px}}

/* chapter rail: five real buttons (none is current during the opening); the current one carries a thin progress line */
.hero-chapters{position:relative;display:flex;gap:clamp(10px,1.5vw,26px);margin:8px -4px 0;padding:4px;overflow-x:auto;scrollbar-width:none} /* 4px of room so the focus ring is never clipped by the scroller */
.hero-chapters::-webkit-scrollbar{display:none}
.hero-chapter{position:relative;flex:1 1 auto;min-height:44px;padding:15px 0 10px;text-align:left;white-space:nowrap;font:500 13px/1.2 var(--sans);letter-spacing:.01em;color:var(--hero-mute);transition:color .3s ease}
.hero-chapter:before,.hero-chapter:after{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.hero-chapter:after{height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left}
.hero-chapter:hover,.hero-chapter[aria-pressed=true]{color:var(--ink)}
.hero-chapter[aria-pressed=true]:after{transform:scaleX(var(--fill,0))}
.hero-chapter:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* what the film says under the rail: the chapter's text line, one chapter at a time, cross-fading in the same cell (no height jump);
   its title is the subtitle burnt into the film, so it is not repeated here */
.hero-captions{display:grid;margin-top:clamp(12px,1.4vw,20px)}
.hero-cap{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .45s ease,transform .6s var(--ease),visibility 0s linear .45s}
.hero-cap.is-active{opacity:1;visibility:visible;transform:none;transition-delay:.12s,.12s,0s}
.hero-cap p{margin:0;max-width:none}
.hero-cap-text{max-width:62ch!important;font-size:clamp(14px,1.15vw,16px);line-height:1.65;color:var(--hero-mute)}

/* tablets and phones: headline first, then the frame full width, then the chapters */
@media(max-width:959px){
 .hero-v8{align-items:flex-start;padding-top:clamp(26px,4svh,44px);padding-bottom:clamp(32px,5svh,52px)}
 .hero-inner{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(24px,4svh,36px)}
 .hero-intro{max-width:640px}
 .hero-v8 h1{font-size:clamp(36px,6.6vw,54px)}
 .hero-film{justify-self:stretch;max-width:none}
}
@media(max-width:600px){
 .hero-v8 h1{font-size:clamp(30px,calc(11vw - 5px),42px)} /* ~11% of the 100vw - 2 gutters column: the first phrase stays on one line */
 .hero-chapters{gap:8px;margin-right:calc(-1 * var(--gutter));padding-right:calc(var(--gutter) + 4px)}
 .hero-chapter{font-size:12px;padding-top:14px}
 .hero-cap-text{font-size:14px}
}
@media(max-width:380px){.hero-chapters{gap:6px}.hero-chapter{font-size:11px}}

@media(forced-colors:active){.hero-toggle{opacity:1;border:1px solid ButtonText;background:ButtonFace;color:ButtonText}}
@media(prefers-reduced-motion:reduce){.hero-video,.hero-toggle,.hero-chapter,.hero-cap,.hero-cap.is-active{transition:none}.hero-cap{transform:none}}
/* office-v8.css */
/* office-v8 — v8 round, 13/10/2026 */

/* O escritório — opening band (same pattern as the feed band): title, rule, one lead line */
.office-band{background:var(--ink,#20252b);color:#fff;padding:var(--band-top,48px) var(--gutter) clamp(34px,5.5svh,58px)}
.office-band .svc-heading{margin-bottom:22px}
.office-band-lead{margin:0;font-size:15px;color:#ffffffb3;text-wrap:balance}

/* O escritório — editorial mosaic: contained in the gutters, plain scrolling.
   Desktop: 12 columns, rows of 8+4, 3+3+6 and 5+7. Up to 1000px: one wide photo, then pairs. */
.office-mosaic{background:var(--pale,#f4f2f1);padding:clamp(40px,6svh,72px) var(--gutter) clamp(56px,8svh,96px)}
.mosaic-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(32px,5svh,52px) clamp(14px,1.8vw,28px)}
.mosaic-item{grid-column:span var(--span,6);display:flex;flex-direction:column;min-width:0;margin:0}
.mosaic-photo{position:relative;overflow:hidden;background:#e4e1df;aspect-ratio:var(--ar,16/9)}
.mosaic-item.is-fill .mosaic-photo{aspect-ratio:auto;flex:1 1 0;min-height:0}
.mosaic-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform 1.4s var(--ease)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.mosaic-item:hover .mosaic-photo img{transform:scale(1.03)}}

/* captions: small serif, the italic half in an ink tone */
.mosaic-item figcaption{display:flex;align-items:baseline;gap:.9em;padding-top:clamp(12px,1.1vw,16px);font:400 clamp(18px,1.45vw,22px)/1.3 var(--serif);letter-spacing:-.015em;color:var(--ink,#20252b);text-wrap:balance}
.mosaic-item figcaption em{font-style:italic;color:#20252bcc}
.mosaic-t{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:1.1em}
.mosaic-tag{font:500 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#20252bb8}

/* the text that follows has its own white ground: less air above it than between two white sections */
.office-mosaic+.office-intro{padding-top:clamp(72px,10svh,120px)}

@media(max-width:1000px){
 .mosaic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,44px) clamp(12px,2.2vw,20px)}
 .mosaic-item{grid-column:span 1}
 .mosaic-item:first-child{grid-column:1/-1}
 .mosaic-photo,.mosaic-item.is-fill .mosaic-photo{aspect-ratio:1.1;flex:none}
 .mosaic-item:first-child .mosaic-photo{aspect-ratio:2}
 /* client, 14/10/2026: photos in a row share one height and one top line (no stepped column) */
 .office-mosaic+.office-intro{padding-top:clamp(64px,9svh,96px)}
}
@media(max-width:700px){
 .mosaic-item:first-child .mosaic-photo{aspect-ratio:3/2}
 .mosaic-item:not(:first-child) .mosaic-photo{aspect-ratio:4/5}
 .mosaic-item figcaption{font-size:16px;gap:.7em}
}
/* feed-v8.css */
/* feed-v8 — v8 round, 13/10/2026 */

/* Eventos e Notícias — two labelled groups: events first, then articles */
.feed-group[hidden]{display:none}
.feed-group:not([hidden])~.feed-group:not([hidden]){margin-top:clamp(72px,10svh,120px)}
.feed-group-head{display:flex;align-items:center;gap:clamp(18px,2vw,28px);margin-bottom:clamp(30px,4.5svh,48px)}
body.inner .feed-group-head h2{margin:0;font:400 var(--display-m,clamp(26px,2.3vw,36px))/1.1 var(--serif);letter-spacing:-.015em;color:var(--ink,#20252b)}
.feed-group-rule{flex:1;height:1px;background:#20252b1f}
.feed-group-count{white-space:nowrap;font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#20252b99;font-variant-numeric:tabular-nums}
.feed-group-count b{color:var(--rose-dark);font-weight:600}
/* a group with a single post has no grid below the featured card, so no closing rule or gap either */
.feed-group>.feed-card--featured:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.feed-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:620px){.feed-grid--pair{grid-template-columns:1fr}.feed-group-rule{display:none}}

/* Posts — inline bold and links, numbered lists, centred signature, plain gridded table (13/10/2026) */
.article-body ol{padding-left:1.5em;margin:1.3em 0;list-style:decimal}
.article-body .align-center{text-align:center}
.article-body p:not(.align-center)+.align-center{margin-top:2.4em}
.article-body .align-center+.align-center{margin-top:.25em}
.article-table td{padding:14px 18px;border:1px solid #20252b2e}
@media(max-width:620px){.article-table td{padding:12px 14px}}
/* the highlight sits right under the cover image: give it the same breathing room it has below */
.article-cover+.article-highlight,.article-cover~.article-highlight{margin-top:clamp(28px,3.4vw,44px)}
/* home-v9.css */
/* home-v9 — v9 round, 13/10/2026

   The Home opens on the same ink band as every inner page (client: "the Home is the only page that is all white, with no
   contrast against the header or a black block; it loses the visual identity"). White header, then the ink band
   (.svc-shelf, .office-band, .feed-band, .contact-band all use var(--ink) with the shelf's soft light from the top right),
   then the white sections. The film's intertitle veil is the same ink (#20252b), so the window and the band read as one.
   Loads after hero-v8.css: colours only, the layout stays as it is. */

.hero-v8{--hero-mute:rgba(255,255,255,.66);--hero-line:rgba(255,255,255,.16);--focus-ring:#fff;
  background:radial-gradient(90% 70% at 85% 0%,#ffffff0d,transparent 60%),radial-gradient(70% 60% at 0% 100%,#0000004d,transparent 70%),var(--ink,#20252b);
  color:#fff}

.hero-v8 h1{color:#fff}
.hero-v8 h1 em{color:var(--on-dark-soft,rgba(255,255,255,.72))}
.hero-lead{color:var(--hero-mute)}

/* the window: the poster's own dark while it loads, and a hairline so the vignetted edges still read as a frame */
.hero-frame{background:#2a3037;box-shadow:0 0 0 1px rgba(255,255,255,.07),0 30px 60px -30px rgba(0,0,0,.55)}
.hero-toggle:focus-visible{box-shadow:0 0 0 2px #fff}

/* chapter rail on ink */
.hero-chapter{color:var(--hero-mute)}
.hero-chapter:before{background:var(--hero-line)}
.hero-chapter:after{background:#fff}
.hero-chapter:hover,.hero-chapter[aria-pressed=true]{color:#fff}
.hero-chapter:focus-visible{outline-color:#fff}

/* what the film says under the rail (the chapter's text line; its title is burnt into the film) */
.hero-cap-text{color:var(--hero-mute)}

@media(forced-colors:active){.hero-v8{background:Canvas;color:CanvasText}}
/* shelf-v9.css */
/* shelf-v9 — 14/10/2026
   The two ink shelves (O que fazemos: five steps; Quem somos: the corpo jurídico) are one native horizontal scroller:
   scroll-snap, drag with the mouse, an arrow on each side. No sticky stage, no vertical-to-horizontal scroll (the client
   found it unintuitive and dislikes sections that trap the scroll). Markup: pages_v6.py (_shelf_rail); behaviour:
   pages-v6.js (shelf()). Cards of both shelves share one width and one 4:5 photo, so the pages read as siblings.

   Size: the whole band is as tall as the Home hero (hero-v8.css), so the heading row, the photos and their text are on one
   screen, like the Home opening ("zoomed out", client 14/10/2026). Photo height = hero height - padding - heading row - gap -
   text; the card width follows from 4:5. Pure CSS, no JS. */

@property --fade{syntax:'<length>';inherits:false;initial-value:0px}

.svc-shelf{
  --hero-h:min(calc(100svh - var(--header-h)),820px);       /* = .hero-v8 --hero-h */
  --pad-t:clamp(28px,5svh,56px);--pad-b:var(--pad-t);       /* = the hero's vertical padding */
  --head-fs:clamp(38px,3.3vw,60px);                         /* = .hero-v8 h1 */
  --head-h:calc(var(--head-fs) * 2.12);                     /* the title: two lines at 1.06 */
  --gap:clamp(16px,2.6svh,28px);                            /* heading row to photos */
  --t-top:clamp(14px,2.2svh,20px);--t-title:clamp(22px,1.9vw,30px);--t-text:clamp(13.5px,1.05vw,15px);--t-lh:1.55;  /* the text under a photo */
  --text-h:calc(var(--t-top) + var(--t-title) * 1.12 + 8px + 3 * var(--t-text) * var(--t-lh));                        /* a title and three lines */
  --media-h:max(250px,calc(var(--hero-h) - var(--pad-t) - var(--pad-b) - var(--head-h) - var(--gap) - var(--text-h)));
  --card-cap:100vw;
  --card-w:min(calc(var(--media-h) * .8),var(--card-cap));  /* same width for steps and lawyers */
  --card-gap:clamp(28px,3.4vw,56px);
  --arrow:52px;
  --fade-w:clamp(40px,6vw,96px);
  min-height:var(--hero-h);
  padding:var(--pad-t) var(--gutter) var(--pad-b);
}
/* the heading at the Home h1 scale (the selector outranks body.inner .svc-heading h2 of polish-v7) */
body.inner .svc-shelf .svc-heading h2{font-size:var(--head-fs);line-height:1.06;letter-spacing:-.03em}
.svc-shelf>.svc-heading{position:relative;margin-bottom:var(--gap)}  /* above the shelf's soft light (::before) */

/* The scroller: first card on the page margin, last card able to reach the end with the same margin */
.svc-rail{position:relative;display:flow-root}  /* flow-root: the window's negative margins must not collapse through the rail (the arrows measure from the photos' top) */
.svc-window{
  position:relative;margin:-14px calc(-1 * var(--gutter));padding:14px 0 14px var(--gutter);  /* 14px: room for focus rings, since overflow-x clips y too; the end margin is the track's padding (every browser counts it) */
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);
  scrollbar-width:none;cursor:grab;
  --fade:0px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - var(--fade)),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - var(--fade)),transparent);
  transition:--fade .35s var(--ease);
}
.svc-window::-webkit-scrollbar{display:none}
.svc-shelf.has-more .svc-window{--fade:var(--fade-w)}                    /* "there is more": gone at the end */
.svc-window.is-dragging{scroll-snap-type:none;cursor:grabbing}
.svc-window:focus-visible{outline:2px solid #fff;outline-offset:-6px}
.svc-window img{-webkit-user-drag:none}
.svc-track{display:flex;align-items:flex-start;gap:var(--card-gap);width:max-content;padding-right:var(--gutter)}
.svc-card{position:relative;flex:none;width:var(--card-w);scroll-snap-align:start}

/* One 4:5 photo: the lawyers' portraits (900x1125) and the steps' square photos, cropped (object-position set per photo) */
.svc-media{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#2b3036}
.svc-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04) brightness(.96);transition:transform 1s var(--ease),filter .6s}
.svc-card:hover .svc-media img,.svc-card:focus-within .svc-media img{transform:scale(1.05);filter:none}
/* .svc-shelf prefix: outranks body.inner h3 (inner-v2.css), which had been setting these titles at 48px */
.svc-shelf .svc-title{margin-top:var(--t-top);font:400 var(--t-title)/1.12 var(--serif);letter-spacing:-.02em;color:#fff}
.svc-text{margin-top:8px;max-width:44ch;font-size:var(--t-text);line-height:var(--t-lh);color:#ffffffb3;transition:color .4s}
.svc-card:hover .svc-text{color:#fff}

/* Quem somos: the portrait card. The name sits over the photo's foot; the full name and role are below */
.lawyer-card .member-card{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
.lawyer-card .member-card>*{grid-column:1}
.lawyer-card .member-portrait{grid-row:1}
.svc-shelf .lawyer-card .member-name{grid-row:1;align-self:end;position:relative;z-index:2;margin:0 clamp(16px,calc(var(--card-w) * .075),28px) clamp(14px,calc(var(--card-w) * .065),24px);max-width:none;font:400 var(--t-title)/1.12 var(--serif);letter-spacing:-.02em;color:#fff}
.lawyer-card .member-full{display:block;margin-top:var(--t-top);font-size:clamp(12.5px,.95vw,14px);color:#ffffffa6}
.lawyer-card .member-role{margin-top:8px;color:#ffffffd9}
.lawyer-card .member-name+.member-role{margin-top:var(--t-top)}  /* no full name (Lídia, Sarney, Laura): the role takes its row */
.lawyer-card .member-hint{opacity:.7}
.lawyer-card .member-bio{display:none}

/* Arrows: always visible, at the two edges of the image row (centred on the photos, overlapping the row a little) */
.svc-arrow{
  position:absolute;z-index:3;top:calc(var(--card-w) * .625 - var(--arrow) / 2);width:var(--arrow);height:var(--arrow);padding:0;
  display:inline-flex;align-items:center;justify-content:center;border:1px solid #fff;border-radius:50%;
  background:#20252bcc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;cursor:pointer;
  transition:background .25s,color .25s,opacity .3s;
}
.svc-arrow[hidden]{display:none}
.svc-arrow--prev{left:max(calc(var(--arrow) * -.66),calc(8px - var(--gutter)))}  /* the rail starts at the page margin: 1/3 of the arrow over the first photo, never closer than 8px to the screen edge */
.svc-arrow--next{right:max(calc(var(--arrow) * -.66),calc(8px - var(--gutter)))}
.svc-arrow svg{width:22px;height:22px}
@media(hover:hover){.svc-arrow:hover:not(:disabled){background:#fff;color:var(--ink)}}  /* no sticky fill after a tap */
.svc-arrow:focus-visible{outline:2px solid #fff;outline-offset:3px}
.svc-arrow:disabled{opacity:.3;cursor:default}

/* tablets and phones: the Home's own steps (hero-v8.css), padding and title included */
@media(max-width:959px){
  .svc-shelf{--pad-t:clamp(26px,4svh,44px);--pad-b:clamp(32px,5svh,52px);--head-fs:clamp(36px,6.6vw,54px)}
}
@media(max-width:700px){
  .svc-shelf{--head-fs:clamp(30px,calc(11vw - 5px),42px);--head-h:calc(var(--head-fs) * 2.12 + 33px);  /* + the counter or caption on its own line */
    --card-cap:78vw;--arrow:44px;min-height:0}                                  /* the next card peeks in; the block follows its content */
  .svc-shelf .svc-heading .svc-count{flex-basis:100%}  /* the counter drops below the title, like the caption of Quem somos */
  .svc-arrow svg{width:20px;height:20px}
}
@media(max-width:420px){.svc-shelf .svc-caption{font-size:11px;letter-spacing:.15em}}  /* "Quem conduz o seu caso no dia a dia." on one line, no orphan */
@media(prefers-reduced-motion:reduce){
  .svc-window{transition:none}
  .svc-media img{transition:none}
  .svc-card:hover .svc-media img,.svc-card:focus-within .svc-media img{transform:none}
}
/* photo-hover-v12.css */
/* Black and white photos that take their colour on hover (tap on touch screens): Quem somos, O escritório and the Blog.
   Quem somos: the whole team, two photos in a carousel across the top of "Nossa equipe." (11/11/2026).
   Contained in the content width (no full-bleed). Black and white like the portraits; with the mouse over the photo it grows a little
   and takes its colour, exactly as the portraits do (.member-card:hover: filter none, scale 1.04). */
.team-photo{grid-column:1/-1;margin:0 0 clamp(8px,2vw,24px);position:relative;--arrow:44px}
.team-photo-stage{position:relative;aspect-ratio:2.4;overflow:hidden;background:#2b3036}
.team-photo-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;
  filter:grayscale(1) contrast(1.04) brightness(.96);opacity:0;visibility:hidden;
  transition:opacity .9s var(--ease,ease),visibility 0s .9s,filter .6s,transform 1s var(--ease,ease)}
.team-photo-slide.is-active{opacity:1;visibility:visible;transition:opacity .9s var(--ease,ease),visibility 0s,filter .6s,transform 1s var(--ease,ease)}
/* only the pointer resting on the PHOTO itself: not on the arrows (they are siblings of the stage, so hovering or clicking them
   leaves the stage un-hovered), not keyboard focus, and not touch screens, where :hover sticks after a tap */
@media (hover:hover) and (pointer:fine){.team-photo-stage:hover .team-photo-slide{filter:none;transform:scale(1.04)}}
/* touch: a tap on the photo toggles the same state (pages-v6.js, teamPhoto()) */
.team-photo.is-color .team-photo-slide{filter:none;transform:scale(1.04)}
.team-photo-arrow{position:absolute;top:calc(50% - 14px);transform:translateY(-50%);z-index:2;width:var(--arrow);height:var(--arrow);
  display:grid;place-items:center;border-radius:50%;border:1px solid #ffffffb3;background:#15191e8c;color:#fff;cursor:pointer;
  transition:background .3s,color .3s,opacity .3s}
.team-photo-arrow[hidden]{display:none}
.team-photo-arrow--prev{left:14px}
.team-photo-arrow--next{right:14px}
.team-photo-arrow svg{width:20px;height:20px}
.team-photo-arrow:hover{background:#fff;color:var(--ink)}
.team-photo-arrow:focus-visible{outline:2px solid #fff;outline-offset:3px}
.team-photo-count{margin-top:14px;font-size:11px;letter-spacing:.24em;color:#ffffff8c}
.team-photo-count b{font-weight:400;color:#fff}
/* phones: the photo is small and the people reach its edges, so the arrows sit under it, beside the count */
@media (max-width:640px){.team-photo{--arrow:38px}.team-photo-arrow{top:auto;bottom:0;transform:none}.team-photo-arrow--prev{left:auto;right:48px}.team-photo-arrow--next{right:0}.team-photo-arrow svg{width:16px;height:16px}.team-photo-count{min-height:var(--arrow);display:flex;align-items:center;margin-top:12px}}
@media (prefers-reduced-motion:reduce){.team-photo-slide,.team-photo-slide.is-active{transition:none}.team-photo-stage:hover .team-photo-slide,.team-photo.is-color .team-photo-slide{transform:none}}

/* O escritório: the photo mosaic follows the same rule as Quem somos (client, 11/11/2026): black and white; with the mouse
   over a photo it takes its colour and grows 4%; on touch screens a tap does the same (pages-v6.js, tapColor()). */
.mosaic-photo img{filter:grayscale(1) contrast(1.04) brightness(.96);transition:transform 1s var(--ease,ease),filter .6s}
.mosaic-item:hover .mosaic-photo img{transform:none}
/* .mosaic-item .mosaic-photo:hover: as specific as the rule above that cancels the old item-wide zoom, and later, so it wins */
@media (hover:hover) and (pointer:fine){.mosaic-item .mosaic-photo:hover img{filter:none;transform:scale(1.04)}}
.mosaic-item.is-color .mosaic-photo img{filter:none;transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.mosaic-photo img{transition:none}.mosaic-item .mosaic-photo:hover img,.mosaic-item.is-color .mosaic-photo img{transform:none}}

/* Blog: the cover photos follow the same rule (client, 11/11/2026): black and white; with the mouse over the card (the whole card
   is the article's link) the photo takes its colour, with the 4% lift the card already had. On touch screens a tap opens the
   article, as with the portraits of Quem somos, so the photos stay black and white there. */
.feed-image img{filter:grayscale(1) contrast(1.04) brightness(.96);transition:transform 1s var(--ease,ease),filter .6s}
@media (hover:hover) and (pointer:fine){.feed-card:hover .feed-image img,.feed-card:focus-within .feed-image img{filter:none}}
@media (prefers-reduced-motion:reduce){.feed-image img{transition:none}}
/* system-v10.css */
/* system-v10 — UX/UI pass, part 1 (14/10/2026). Loads LAST: every rule here is a deliberate override of the older sheets.

   One system, for the Home and every inner page:
   - gutter: integer steps, one max-width (--page-max); every section pads itself with var(--gutter), which now includes the centring margin
   - grid: 12 columns, only two splits: 6|6 (text at columns 7-12) and 4|8 (content at columns 5-12)
   - section spacing: --space-section (and --space-section-tight between blocks of the same colour)
   - type scale per role: --fs-h1 (Home h1 and the opening bands), --fs-h2 (never above the h1), --fs-h3; --label and --meta for small caps
   - the opening band: ONE component (.svc-shelf, .office-band, .feed-band, .contact-band, .page-band): padding, h1 scale, eyebrow, caption
   - buttons: .btn pill 48px; media controls are 44px circles; chips 36px (44px on touch)
   - focus: 2px ring, 4px offset, ink on light and white on dark (--focus-ring is set per surface in tone-v8 / polish-v7)
   Markup: home_v2.py, pages_v6.py, components_v2.py, build.py. Behaviour: site.js, pages-v6.js. */

/* ============ 1. Tokens ============ */
:root{
  --page-max:1600px;
  --g-step:88px;                                                   /* integer gutter steps (the old 5vw gave 68.3px at 1366 and 51.2px at 1024) */
  --gutter:max(var(--g-step),calc((100vw - var(--page-max)) / 2)); /* the step, or the centring margin once the page is wider than --page-max */
  --grid-gap:clamp(16px,2vw,32px);
  --space-section:clamp(72px,8vw,128px);
  --space-section-tight:clamp(48px,5vw,80px);                      /* blocks that follow a block of the same colour, or a photo block */

  --fs-h1:clamp(34px,3.3vw,60px);                                  /* = the Home h1 (hero-v8.css) within a pixel; the opening bands use it */
  --fs-h2:clamp(32px,3.1vw,56px);                                  /* section titles: never above the h1 */
  --fs-h3:clamp(24px,2.2vw,34px);
  --display-l:var(--fs-h2);                                        /* the older sheets' "section title" token */
  --lh-title:1.06;

  --label:500 11px/1.4 var(--sans);--label-ls:.2em;                /* uppercase labels: roles, footer headings, eyebrows */
  --meta:500 12px/1.4 var(--sans);--meta-ls:.12em;                 /* counters, captions, dates */

  --band-pt:clamp(28px,5svh,56px);--band-pb:var(--band-pt);        /* = the Home hero's vertical padding */
  --band-gap:clamp(16px,2.6svh,28px);
  --eyebrow-h:32px;                                                /* the band's eyebrow line + its gap (counted in the shelf height) */

  --focus-w:2px;--focus-o:4px;
  --tap:44px;
}
@media(max-width:1759px){:root{--g-step:72px}}
@media(max-width:1279px){:root{--g-step:56px}}
@media(max-width:1023px){:root{--g-step:40px}}
@media(max-width:700px){:root{--g-step:22px}}
@media(max-width:959px){
  :root{--fs-h1:clamp(36px,6.6vw,54px);--fs-h2:clamp(30px,5.2vw,44px);--fs-h3:clamp(22px,3.4vw,28px);--band-pt:clamp(26px,4svh,44px);--band-pb:clamp(32px,5svh,52px)}
}
@media(max-width:700px){
  :root{--fs-h1:clamp(30px,calc(11vw - 5px),42px);--fs-h2:clamp(28px,8.4vw,36px);--fs-h3:clamp(22px,6.4vw,26px)}
}

/* ============ 2. Section spacing: one token ============ */
body:is(.home,.inner) .section{padding-block:var(--space-section)}
body.inner .team-v6{padding-block:var(--space-section)}
body.inner .office-feature{padding-block:var(--space-section)}
body.inner .office-mosaic{padding-block:var(--space-section-tight)}
body.inner .office-mosaic+.office-intro{padding-top:var(--space-section-tight)}
body.inner .areas-v6+.practice-statement{padding-top:var(--space-section-tight)}
body.inner .practice-statement{padding-bottom:var(--space-section)}
body.inner .section.feed,body.inner .section.contact-page{padding-top:var(--space-section-tight)}  /* they follow a band */
/* anchors never land under the sticky header or flush against it */
.area-tile,.svc-card,.practice-item{scroll-margin-top:16px}

/* ============ 3. Type: titles ============ */
h1,h2,h3,.svc-caption{text-wrap:balance}
.hero-v8 h1{text-wrap:balance}
/* Home: no section title above the h1 (--fs-h2 is derived from the h1's own scale) */
body .manifesto--split h2,body .people-home h2,body .practice-content h2,body .ethics-section h2,body .network-heading h2,
body.inner .team-aside h2,body.inner .areas-head h2,body.inner .practice-statement h2,
body.inner .office-intro h2,body.inner .office-feature-copy h2,body.inner .office-house h2{font-size:var(--fs-h2);line-height:var(--lh-title);letter-spacing:-.03em}
/* Missão, Visão and Valores are the h3 of the block below the section titles */
body .principles-v6 h2{font-size:var(--fs-h3);line-height:1.15;margin-bottom:20px}
/* the last orphans ("Raul Marques / Saboia", "SÓCIO- / FUNDADOR") */
.people-role,.member-role{hyphens:none}
.people-role{white-space:nowrap}

/* ============ 4. Small caps, links, buttons, focus ============ */
/* labels: one style for roles, footer headings, eyebrows */
.people-role,.member-role,.bio-role,.team-group-title span,.eyebrow,.mosaic-tag,.area-detail,.band-eyebrow,.site-footer .fx-label,.fx-key{
  font:var(--label);letter-spacing:var(--label-ls);text-transform:uppercase}
.office-feature-copy .eyebrow{font:var(--label);letter-spacing:var(--label-ls);margin-bottom:22px}
.area-figure .area-detail{font-size:11px;letter-spacing:var(--label-ls)}
/* meta: counters, captions, small dates */
.svc-count,.svc-caption,.gallery-count,.fx-bottom{font:var(--meta);letter-spacing:var(--meta-ls)}
.svc-count,.svc-caption{text-transform:uppercase;color:#ffffffa6;white-space:nowrap;font-variant-numeric:tabular-nums}
.svc-count b{color:#fff;font-weight:600}
.fx-bottom{text-transform:uppercase}

/* text links: one size */
.text-link,body.inner .text-link{font-size:14px;letter-spacing:0}

/* buttons: the primary action is a 48px pill (Contato in the header, send, the channels); media controls are 44px circles; chips 36px */
.btn,.form-submit,.whatsapp-button{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 24px;border:1px solid var(--ink);border-radius:999px;
  background:var(--ink);color:#fff;font:600 14px/1.2 var(--sans);letter-spacing:.01em;text-decoration:none;
  transition:background .3s,border-color .3s,transform .35s var(--ease),box-shadow .35s}
.btn svg,.form-submit svg,.whatsapp-button svg{width:22px;height:22px;flex:none}
.btn:hover,.form-submit:hover,.whatsapp-button:hover{background:var(--graphite);border-color:var(--graphite)}
.whatsapp-button{justify-content:flex-start;padding:8px 24px 8px 20px;min-height:56px;margin:0}                 /* two lines (title and number): 56px */
.whatsapp-button small{margin-top:2px}
.form-submit{margin-top:24px}
@media(min-width:1001px){.nav .nav-contact{min-height:48px;padding:0 22px;font-weight:600}}   /* the menu panel on phones keeps its plain list */
.svc-shelf{--arrow:44px}
.gallery-bar button{width:var(--tap);height:var(--tap)}
.fx-social a{width:var(--tap);height:var(--tap)}
.hero-toggle{width:var(--tap);height:var(--tap);border-radius:50%}
.area-chips a{min-height:36px}
@media(max-width:700px),(pointer:coarse){.area-chips a{min-height:var(--tap)}}

/* focus: one ring everywhere (rose on light surfaces, white on dark: --focus-ring), 2px at 4px */
a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible,
.practice-toggle:focus-visible,.area-toggle:focus-visible,.member-card:focus-visible,.bio-close:focus-visible,.feed-filters button:focus-visible,.person summary:focus-visible{
  outline:var(--focus-w) solid var(--focus-ring);outline-offset:var(--focus-o)}
.area-figure{--focus-ring:#fff}                                                      /* the title over a dark photo */
main[tabindex="-1"]:focus-visible{outline:0}                                          /* "Voltar ao início" moves focus here: no ring around the whole page */
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:var(--focus-w) solid var(--ink);outline-offset:2px}  /* inputs: a real ring, not only a 15% shadow */
/* inside scrollers that clip the ring, the ring sits inside (the shelf windows keep 14px of room: 2px at 4px fits) */
.svc-window:focus-visible{outline-offset:-6px}
.hero-chapter:focus-visible,.hero-toggle:focus-visible{outline-offset:2px}
.hero-toggle:focus-visible{outline-offset:-5px}

/* ============ 5. Header and menu ============ */
.nav a:not([aria-current]):not(.nav-contact):hover:after{background:var(--ink-soft)}    /* hover is lighter than the current page's rule */
html.menu-open,html.menu-open body{overflow:hidden}                                       /* the page does not scroll behind the open menu */
@media(max-width:1000px){
  /* a full-height panel under the header: nothing behind it answers a tap; an empty area of the panel closes it (site.js) */
  .nav{position:fixed;left:0;right:0;top:var(--header-h);bottom:0;max-height:none;border-bottom:0;overscroll-behavior:contain;padding-bottom:max(42px,env(safe-area-inset-bottom))}
}
/* phones in landscape: the header would take a fifth of the screen */
@media(max-height:500px) and (orientation:landscape){
  :root{--header-h:56px}
  .site-header{padding-top:6px;padding-bottom:6px}
  .brand-logo{width:44px;height:44px}.brand-name{font-size:19px}.brand-profession{font-size:8px;margin-top:3px}
}

/* ============ 6. The opening band: one component ============ */
:is(.office-band,.feed-band,.contact-band,.page-band){
  position:relative;background:var(--ink);color:#fff;padding:var(--band-pt) var(--gutter) var(--band-pb);--focus-ring:#fff}
:is(.office-band,.feed-band,.contact-band,.page-band) .svc-heading{margin-bottom:var(--band-gap)}
@media(min-width:701px){:is(.office-band,.feed-band,.contact-band,.page-band){min-height:calc(var(--band-pt) + var(--band-pb) + var(--eyebrow-h) + var(--fs-h1) * 2.12 + var(--band-gap))}}   /* the same height on every page: room for the eyebrow and a two-line title (phones: the band follows its content) */
.svc-shelf{--pad-t:var(--band-pt);--pad-b:var(--band-pb);--head-fs:var(--fs-h1);--gap:var(--band-gap);--head-h:calc(var(--head-fs) * 2.12 + var(--eyebrow-h))}
@media(max-width:700px){.svc-shelf{--head-h:calc(var(--head-fs) * 2.12 + 33px + var(--eyebrow-h))}}   /* + the counter or caption on its own line */
/* the title: the Home h1 scale on every band */
body.inner .svc-heading :is(h1,h2){font-size:var(--fs-h1);line-height:var(--lh-title);letter-spacing:-.03em;margin:0}
.svc-heading{gap:clamp(20px,4vw,56px)}
/* the eyebrow: the page's menu label, small and uppercase, above the title. A real element where the markup is ours (.band-eyebrow),
   a pseudo-element on the bands whose markup is not (Blog e eventos, Contato) */
.band-eyebrow{position:relative;margin:0 0 calc(var(--eyebrow-h) - 15.4px);color:var(--on-dark-soft);max-width:none}
.feed-band::before,.contact-band::before{display:block;margin:0 0 calc(var(--eyebrow-h) - 15.4px);font:var(--label);letter-spacing:var(--label-ls);text-transform:uppercase;color:var(--on-dark-soft)}
.feed-band::before{content:'Blog e eventos';content:'Blog e eventos' / ''}   /* the "/ ''" form keeps the generated text out of the accessibility tree where supported */
.contact-band::before{content:'Contato';content:'Contato' / ''}
.contact-band .svc-caption{display:none}                          /* it only repeated the eyebrow */
.office-band-lead,.feed-intro{margin:0;font-size:15px;line-height:1.6;color:#ffffffb3}

/* ============ 7. Grid: 12 columns, 6|6 and 4|8 ============ */
@media(min-width:901px){
  .manifesto--split,.practice-home,.ethics-section,body.inner .practice-statement.v6-split,.office-intro,.office-feature,.office-house,.people-home,.network--static .network-grid{
    display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap)}
  /* 6|6 */
  .manifesto--split .manifesto-figure,.practice-home .practice-visual,.ethics-section>h2,.practice-statement>h2,.office-intro>h2,.office-feature .office-slides{grid-column:1/7}
  .manifesto--split .manifesto-copy,.practice-home .practice-content,.ethics-section>div,.practice-statement>div,.office-intro>.office-lead,.office-feature .office-feature-copy{grid-column:7/13}
  .office-intro>.office-columns{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--grid-gap)}
  /* "Uma casa, não uma sala de espera.": the title left, the quote and the text right (it used to leave the right half empty) */
  .office-house>h2{grid-column:1/7;grid-row:1/3}
  .office-house>.office-quote{grid-column:7/13;grid-row:1;margin-top:0}
  .office-house>.office-columns{grid-column:7/13;grid-row:2;max-width:none;margin-top:clamp(28px,4svh,44px)}
  .office-house .office-quote{max-width:none}
  /* 4|8 */
  .network--static .network-heading{grid-column:1/5}
  .network--static .brazil-map{grid-column:5/13}
  .practice-statement.v6-split,.office-feature,.office-house{align-items:start}
  .office-feature{align-items:center}
}
@media(min-width:1101px){
  .people-home{align-items:end}
  .people-head{grid-column:1/5}
  .people-strip{grid-column:5/13}
  .team-v6,.areas-v6{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap)}
  .team-aside,.areas-v6 .areas-head{grid-column:1/5}
  .team-grid,.areas-v6 .areas-grid{grid-column:5/13}
}
/* below ~1100px the two-column layouts do not fit (228px side columns, 197px cards): title above, grid below */
@media(max-width:1100px){
  .people-home{grid-template-columns:minmax(0,1fr);gap:34px}
  .team-v6,.areas-v6{grid-template-columns:minmax(0,1fr);gap:44px}
  .team-aside,.areas-v6 .areas-head{position:static}
  .areas-v6 .areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-aside p{max-width:62ch}.team-aside .team-lead{max-width:34ch}       /* stacked: a reading measure, not the whole width */
}
/* Missão / Visão / Valores: three equal tracks with the grid's gap are exactly columns 1-4, 5-8 and 9-12 */
.principles-v6{column-gap:var(--grid-gap)}
/* measure: no text line above ~75 characters */
.practice-statement p,.office-columns p,body.inner .office-lead{max-width:68ch}
.ethics-section p{max-width:68ch}
.hero-cap-text{max-width:56ch!important}
.mosaic-grid{column-gap:var(--grid-gap)}

/* ============ 8. Home ============ */
.practice-rows{margin-top:36px}

/* ============ 9. Quem somos and O que fazemos ============ */
/* the corpo jurídico cards: names and roles on one line across the row, whether or not the card has a full name */
.svc-shelf .lawyer-card .member-card{grid-template-rows:auto minmax(calc(var(--t-top) + 1.8 * clamp(12.5px,.95vw,14px)),auto) auto}
.svc-shelf .lawyer-card .member-full{grid-row:2}
.svc-shelf .lawyer-card .member-role{grid-row:3;margin-top:8px}
/* the name over the photo shrinks with the card (the eyebrow took 32px of height, so the cards are a little narrower): never two lines over the face */
.svc-shelf .lawyer-card .member-name{--name-m:clamp(14px,calc(var(--card-w) * .06),24px);margin-inline:var(--name-m);font-size:min(var(--t-title),calc((var(--card-w) - 2 * var(--name-m)) / 9.6))}
/* the band melts into "Nossa equipe" (both ink): a hairline marks the seam instead of a hard gradient edge */
.svc-shelf+.team-v6{border-top:1px solid #ffffff14}
@media(max-height:900px){.team-aside{position:static}}                 /* the sticky column is taller than the window on small screens */
/* the open area: its neighbours do not stretch into empty boxes, and the sign turns into a minus */
.areas-v6 .areas-grid{align-items:start}
.area-tile.is-open .practice-sign:after{transform:rotate(0deg)}
.areas-grid .area-tile:last-child:nth-child(odd){grid-column:1/-1}
@media(min-width:1101px){.areas-grid .area-tile:last-child:nth-child(odd){grid-column:auto}}   /* 3 columns: the ninth fills the last row by itself */
.areas-grid .area-tile:last-child:nth-child(odd) .area-art{aspect-ratio:16/9}
@media(min-width:1101px){.areas-grid .area-tile:last-child:nth-child(odd) .area-art{aspect-ratio:1}}
@media(max-width:600px){
  .areas-v6 .areas-grid{grid-auto-flow:dense}
  .areas-grid .area-tile.is-open{grid-column:1/-1}                         /* the opened text gets the full width, not a 165px column */
  .areas-grid .area-tile.is-open .area-art{aspect-ratio:16/10}
  .areas-grid .area-tile.is-open .accordion-panel p{padding:18px 22px 22px}
}
.step-card .svc-title{text-wrap:balance}
/* team grid on small screens: titles of the groups stay on the left; roles and the "Biografia" hint never push the card wider */
.team-grid .member-role{flex-wrap:wrap;row-gap:4px}
.member-hint{white-space:nowrap}
@media(max-width:600px){.team-group-title{align-items:flex-start}}

/* ============ 10. O escritório ============ */
body.inner .office-intro>.office-lead{margin:0}

/* ============ 11. 404 ============ */
body.inner .missing{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-section-tight) var(--grid-gap);min-height:0;align-items:start}
.missing-lead p{max-width:38ch;margin:0 0 28px}
.missing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px}
.missing-links{list-style:none;margin:0;padding:0;border-top:1px solid #20252b26}
.missing-links a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;border-bottom:1px solid #20252b26;font:400 var(--fs-h3)/1.15 var(--serif);letter-spacing:-.02em;transition:padding .35s var(--ease),color .25s}
.missing-links svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .45s var(--ease)}
@media(hover:hover){.missing-links a:hover{padding-left:12px;color:var(--ink-soft)}.missing-links a:hover svg{transform:translateX(6px)}}
@media(prefers-reduced-motion:reduce){.missing-links a,.missing-links svg,.btn,.form-submit,.whatsapp-button{transition:none}.missing-links a:hover{padding-left:0}}
@media(min-width:901px){
  body.inner .missing{grid-template-columns:repeat(12,minmax(0,1fr))}
  .missing-lead{grid-column:1/5}.missing-links{grid-column:5/13}
}

/* ============ 12. Footer ============ */
.site-footer .fx-note{max-width:110ch}                                       /* body.inner p{72ch} had cut it to 573px on every page but the Home */
.fx-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap);row-gap:40px}
.fx-brand,.fx-col{grid-column:span 3}
.fx-bottom{align-items:center}
.fx-bottom .back-to-top{display:inline-flex;align-items:center;min-height:var(--tap);padding:0}
.fx-col ul{gap:0}
.fx-col a{display:inline-flex;align-items:center;min-height:36px}
.fx-col .fx-line{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:var(--tap);padding:6px 0}
.fx-key{color:#ffffff73}
.fx-val{color:#ffffffe6;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.fx-col a .i-ext,.fx-val .i-ext{display:inline-block;width:13px;height:13px;margin-left:7px;vertical-align:-1px}
@media(max-width:1100px){
  .fx-top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-brand{grid-column:1/-1}.fx-col{grid-column:auto}
}
@media(max-width:1000px),(pointer:coarse){.fx-col a{min-height:var(--tap);min-width:var(--tap)}}
@media(max-width:700px){
  .fx-top{grid-template-columns:minmax(0,1fr);row-gap:28px}
  .fx-bottom{flex-direction:column;align-items:flex-start;gap:4px}
}

/* ============ 13. Phones ============ */
@media(max-width:700px){
  /* the last card of a shelf can stop at the page margin, like the others */
  .svc-track{padding-right:max(var(--gutter),calc(100vw - var(--gutter) - var(--card-w)))}
  /* partner map: the title sits on the gutter like every other title; the state codes are too small to read at this scale */
  .network--static .network-grid{justify-items:stretch}
  .network .network-heading{justify-self:start;width:100%}
  .network .map-labels{display:none}
  /* biography: a full-width bar keeps the way back fixed without text running behind it */
  .bio-sheet{padding-top:56px}
  .bio-close{top:0;left:0;right:0;width:100%;min-height:56px;padding:0 var(--gutter);background:var(--ink-deep);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid #ffffff1f}
}
/* system-v11.css */
/* system-v11 — UX/UI pass, part 2 (14/10/2026): Eventos e Notícias, the posts, Contato and its form.
   Loads after system-v10 and uses its tokens: --label / --meta (small caps), --fs-h1..h3, --space-section*, --grid-gap, --gutter, --focus-w / --focus-o, --tap.
   Markup: blog_v8.py (feed), build.py (posts, contact), components_v2.py (map). Behaviour: site.js (form, map), pages-v6.js (filters). */

/* ============ 1. Small caps: dates, counters and credits take --meta; the contact label takes --label ============ */
.feed-meta,body.inner .article-meta,.article-next-label,.article-next-meta{
  font:var(--meta);letter-spacing:var(--meta-ls);text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ink-soft)}
body.inner .contact-label{display:block;margin:0 0 16px;font:var(--label);letter-spacing:var(--label-ls);text-transform:uppercase;color:var(--ink-soft)}
.contact-details .contact-label{margin:0 0 12px}
/* form labels: the first span of a field only (the error message is a span too and used to inherit this style) */
.field>span:first-child{font:var(--label);letter-spacing:var(--label-ls);text-transform:uppercase;color:var(--ink)}

/* ============ 2. Eventos e Notícias ============ */
/* the meta line: kind, date, extra. Each item stays whole; the bullet that would start a wrapped line is clipped by the box (blog_v8._meta) */
.feed-meta{display:block;overflow:hidden;margin:0 0 14px}
.feed-meta-list{display:flex;flex-wrap:wrap;gap:4px 0;margin-left:-16px}
.feed-meta-list>span{position:relative;padding-left:16px;white-space:nowrap}
.feed-meta-list>span+span:before{content:'';position:absolute;left:6px;top:50%;width:3px;height:3px;margin:-1.5px 0 0;border-radius:50%;background:currentColor;opacity:.6}
.feed-kind{color:var(--ink)}
/* the active filter's counter: ink on white, no 60% opacity (it measured 4.2:1) */
.feed-filters button[aria-pressed=true] span{opacity:1;color:var(--ink-soft)}

/* ============ 3. Posts: one axis ============ */
/* header, cover, gallery and the end block are centred on the same 1200px axis; the text is a 66-character column; the highlight sits between them */
body.inner .article-heading,body.inner .article-cover,body.inner .article-gallery,body.inner .article-next{max-width:1200px;margin-inline:auto}
body.inner .article-heading{margin-bottom:clamp(36px,4vw,56px)}
body.inner .article-heading h1{max-width:22ch;font-size:clamp(36px,4vw,60px);line-height:1.1;letter-spacing:-.03em;text-wrap:balance}
body.inner .article-meta{max-width:none;margin-top:clamp(20px,2vw,28px)}
body.inner .article-meta time{white-space:nowrap}
/* back link: the arrow before the text, pointing back (the "to the list" link used to point forward) */
.text-link--back{gap:16px}
.text-link--back:hover svg{transform:translateX(-6px)}
body.inner .article-cover{margin-top:0}
body.inner .article-cover img{margin-inline:auto}
/* photos recovered at low resolution (the 2020 events): shown at their sharp size, never past their own width, centred (--w = natural width) */
body.inner .article-cover.is-lowres{max-width:min(var(--w),720px)}
/* the text column: ~69 characters a line. (66ch would be 727px here: the zero of Raleway is wide, so it gave 79 characters; 35em measures 69.) */
body.inner .article-body{max-width:35em;margin:clamp(40px,5vw,72px) auto 0;line-height:1.85}
body.inner .article-highlight{max-width:730px;margin:clamp(28px,3.4vw,44px) auto 0}
body.inner .article-cover+.article-highlight,body.inner .article-cover~.article-highlight{margin-top:clamp(28px,3.4vw,44px)}
body.inner .article-highlight+.article-body{margin-top:clamp(32px,4vw,56px)}
body.inner .article-highlight p{max-width:none}
@media(min-width:801px){body.inner .article-highlight{padding-inline:48px}}   /* its text lines up with the column below (730 - border - 2 x 48 = 35em) */
body.inner .article-body h2{font-size:clamp(28px,2.8vw,38px);line-height:1.2;margin:clamp(40px,4.4vw,56px) 0 20px}
body.inner .article-body h3{font-size:clamp(23px,2.1vw,29px);line-height:1.25;margin:36px 0 16px}
/* the table: a header row (th), then the cells */
.article-table th{padding:14px 18px;border:1px solid #20252b2e;background:var(--pale);font:600 15.5px/1.6 var(--sans);letter-spacing:0;text-transform:none;text-align:left;color:var(--ink);vertical-align:top}
/* gallery: two columns on the axis, each photo at its own proportions (no crop, so a panorama stays a panorama) */
body.inner .article-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);margin-top:clamp(40px,5vw,72px);align-items:start;justify-items:center}
body.inner .article-gallery img:nth-child(n){width:100%;max-width:var(--w,100%);height:auto;aspect-ratio:auto;grid-column:auto;object-fit:cover}
body.inner .article-gallery img.is-wide:nth-child(n),body.inner .article-gallery img.is-solo:nth-child(n){grid-column:1/-1}
/* the end of a post: neighbours, the way back, the way to the firm */
body.inner .article-next{margin-top:clamp(56px,7vw,104px);padding-top:clamp(28px,3.2vw,44px);border-top:1px solid #20252b26}
.article-next-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);margin-bottom:clamp(28px,3.4vw,44px)}
.article-next-item{display:flex;flex-direction:column;gap:10px;min-width:0;padding:clamp(20px,2.2vw,28px);border:1px solid #20252b26;transition:border-color .25s,background .25s}
.article-next-item--prev{grid-column:1}
.article-next-item--next{grid-column:2;align-items:flex-end;text-align:right}
.article-next-label{display:inline-flex;align-items:center;gap:10px}
.article-next-label svg{width:18px;height:18px;flex:none;transition:transform .4s var(--ease)}
.article-next-title{font:400 clamp(21px,1.8vw,26px)/1.2 var(--serif);letter-spacing:-.02em;text-wrap:balance;color:var(--ink)}
@media(hover:hover){
  .article-next-item:hover{border-color:var(--ink);background:var(--pale)}
  .article-next-item--prev:hover .article-next-label svg{transform:translateX(-6px)}
  .article-next-item--next:hover .article-next-label svg{transform:translateX(6px)}
}
.article-next-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px}
@media(max-width:700px){
  body.inner .article-heading h1{max-width:none;font-size:clamp(28px,8.4vw,40px);hyphens:auto;overflow-wrap:break-word}
  body.inner .article-cover.is-lowres{max-width:none}            /* the column on a phone is still under the photo's own width */
  body.inner .article-gallery{grid-template-columns:minmax(0,1fr)}
  body.inner .article-body{max-width:none}
  .article-next-items{grid-template-columns:minmax(0,1fr)}
  .article-next-item--prev,.article-next-item--next{grid-column:1;align-items:flex-start;text-align:left}
}

/* ============ 4. Contato ============ */
@media(min-width:1101px){
  /* 4|8, like the other pages: the channels in columns 1-4, the form in columns 5-12, both starting on the same line */
  body.inner .contact-page{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap);align-items:start}
  body.inner .contact-info{grid-column:1/5}
  body.inner .contact-form{grid-column:5/13;margin:0}
}
@media(max-width:1100px){
  /* the two columns do not fit: the channels side by side, the address under them, then the form at the full width */
  body.inner .contact-page{display:block}
  .contact-channels-buttons{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}
  .contact-details{max-width:none}
  body.inner .contact-form{margin:clamp(40px,5vw,56px) 0 0}
}
@media(max-width:700px){
  .contact-channels-buttons{grid-template-columns:minmax(0,1fr)}
  /* the form card keeps its own 22px bleed (polish-v7); the wrapper no longer adds a second -12px (that was the sideways scroll) */
  body.inner .contact-form{margin:40px 0 0}
}
/* the form */
body.inner .site-form-title{margin:0 0 8px}
.form-legend{margin:0 0 clamp(20px,2.4vw,28px);font-size:13px;line-height:1.5;color:var(--ink-soft)}
.form-legend b{color:var(--ink);font-weight:600}
.form-note{max-width:66ch;color:var(--ink-soft)}
.form-note+.form-note{margin-top:8px}
.form-submit{margin-top:28px}
.form-submit:disabled{opacity:.6;pointer-events:none}
/* focus: the standard ring (2px, 4px off, ink), and no second glow */
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:none}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:var(--focus-w) solid var(--ink);outline-offset:var(--focus-o)}
/* errors: the functional red, 13px, sentence case, under the field: never mistaken for the next label */
.field .field-error{display:flex;align-items:flex-start;gap:6px;margin:-2px 0 0;font:500 13px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:#8b1d24}
.field .field-error[hidden]{display:none}
.field .field-error:before{content:'';flex:none;width:14px;height:14px;margin-top:1px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1Zm-.75 3.5h1.5v4.5h-1.5V4.5Zm0 6h1.5V12h-1.5v-1.5Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1Zm-.75 3.5h1.5v4.5h-1.5V4.5Zm0 6h1.5V12h-1.5v-1.5Z'/%3E%3C/svg%3E") center/contain no-repeat}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:#8b1d24;box-shadow:inset 0 0 0 1px #8b1d24}
/* the live region under the button: progress, the list of what is missing, or the failure with its two other ways in */
.form-status{margin-top:18px;max-width:66ch;min-height:0;font-size:14px;line-height:1.6;color:var(--ink)}
.form-status:empty{margin:0}
.form-status.is-error{padding:14px 18px;border-left:2px solid #8b1d24;background:#fff}
.form-status a{text-decoration:underline;text-underline-offset:.2em;font-weight:600}
/* sent: the card holds only the thanks, in ink (no green); "Enviar outra mensagem" brings the empty form back */
.site-form.is-sent :is(.site-form-title,.form-legend,.form-grid,.form-note,.form-submit,.form-status){display:none}
.form-done[hidden]{display:none}
.form-done{padding:clamp(8px,2vw,24px) 0}
.form-done:focus{outline:0}
body.inner .form-done h3{font:400 clamp(30px,2.6vw,40px)/1.15 var(--serif);letter-spacing:-.03em;color:var(--ink)}
.form-done p{margin-top:14px;max-width:44ch;font-size:17px;line-height:1.6}
.form-done .form-again{margin-top:32px;cursor:pointer}
/* the form card on a phone: the select never shows less than its placeholder */
.field select{text-overflow:ellipsis}

/* ============ 5. The map (Contato) ============ */
.map-embed .embed-fallback{padding-inline:var(--gutter)}
/* the address card is the loading state and the blocked state; the lake photo (343 KB) is fetched only when the map is blocked */
.map-embed .embed-fallback{background-image:none}
.map-embed.is-blocked .embed-fallback{background-image:linear-gradient(90deg,#111d28b8,#111d2800 78%),url("/assets/v4/lago-contexto.webp")}
.map-embed.is-blocked{min-height:clamp(320px,48svh,520px)}
.map-embed.is-blocked iframe{display:none}
.map-embed .embed-fallback a{color:#fff}
.footer--map h2.sr-only{margin:-1px}
