:root{--ink:#242126;--muted:#6c6870;--paper:#f8f7f4;--cream:#efede8;--wine:#6e1639;--deep:#2b1018;--gold:#c7ad79;--line:#ddd9d2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'DM Sans',Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}.wrap{width:min(1200px,calc(100% - 72px));margin:auto}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:#fff;padding:12px}.skip-link:focus{left:12px}.site-header{position:relative;z-index:20;background:#fff}.utility{background:#231a1e;color:#d6cbd0;font-size:10px;letter-spacing:.15em}.utility-inner{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:24px}.utility-inner>div{display:flex;align-items:center;gap:18px;letter-spacing:.03em;font-size:12px}.utility a:hover,.footer a:hover{color:var(--gold)}.utility-divider{height:12px;width:1px;background:#756a6f}.nav-inner{min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:12px;min-width:255px}.brand-mark{font-family:Georgia,serif;font-size:38px;letter-spacing:-.14em;color:var(--wine);line-height:1;padding-right:6px}.brand-mark span{color:#171317}.brand-name{font-family:Georgia,serif;font-size:13px;font-weight:bold;line-height:1.05;letter-spacing:.05em}.brand-name small{display:block;font:500 7px/1.3 'DM Sans',sans-serif;letter-spacing:.08em;margin-top:5px}.primary-nav{display:flex;align-items:center;gap:33px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.primary-nav>a:not(.nav-cta):hover{color:var(--wine)}.nav-cta{background:var(--wine);color:#fff;padding:16px 22px;white-space:nowrap}.nav-cta:hover,.button-dark:hover{background:#4d102a}.nav-cta span{margin-left:18px}.menu-toggle{display:none;background:none;border:0;width:40px;padding:8px;cursor:pointer}.menu-toggle span{display:block;height:2px;background:var(--deep);margin:6px 0}.hero{height:min(720px,calc(100vh - 134px));min-height:575px;position:relative;overflow:hidden;background:#240d14;color:#fff}.hero-media,.hero-shade{position:absolute;inset:0}.hero-media{background:url('/assets/hero.png') center center/cover no-repeat}.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.58),rgba(36,9,19,.19) 53%,rgba(20,8,12,.03))}.hero-content{position:relative;z-index:1;padding-top:clamp(110px,13vw,196px)}.eyebrow{display:inline-flex;align-items:center;gap:16px;color:var(--wine);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.eyebrow.light{color:#e9d5d9}.eyebrow i{width:28px;height:1px;background:currentColor}.hero h1,.subhero h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-.035em;line-height:1.13}.hero h1{font-size:clamp(57px,7vw,108px);margin:24px 0 26px;max-width:780px}.hero h1 em,h2 em{font-weight:400;color:var(--gold)}.hero p{max-width:500px;color:#f2e9e9;font-size:17px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:34px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:17px 24px;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;transition:background .2s,color .2s}.button span,.inline-link span,.text-link span{font-size:18px;font-weight:400}.button-light{background:#fff;color:var(--deep)}.button-light:hover{background:var(--gold)}.button-outline{border:1px solid rgba(255,255,255,.6);color:#fff}.button-outline:hover{background:#fff;color:var(--deep)}.button-dark{background:var(--wine);color:#fff}.text-link{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:7px}.light-link{color:#fff}.text-link span{margin-left:18px}.hero-index{position:absolute;z-index:1;right:40px;bottom:36px;display:flex;align-items:center;gap:18px;color:#fff;font-size:10px;letter-spacing:.16em}.hero-index .line{width:62px;height:1px;background:rgba(255,255,255,.7)}.section{padding:110px 0}.intro-grid,.focus-grid,.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.intro{background:#fff}.intro h2,.focus h2,.detail h2{font-size:clamp(42px,4.4vw,66px);margin:22px 0 0}.intro h2 em,.focus h2 em,.detail h2 em{color:var(--wine)}.intro-copy{padding-top:38px}.lead{font-family:'Playfair Display',Georgia,serif;font-size:24px;line-height:1.55;color:#2c2226}.intro-copy p:not(.lead),.focus p,.detail p{color:var(--muted);font-size:15px;line-height:1.9}.inline-link{display:inline-flex;align-items:center;gap:25px;color:var(--wine);border-bottom:1px solid var(--wine);padding-bottom:7px;margin-top:18px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.expertise{background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:48px}.section-heading h2{font-size:clamp(46px,5vw,70px);margin:15px 0 0}.section-heading h2 em{color:var(--wine)}.section-heading p{color:var(--muted);max-width:325px;margin-bottom:9px}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.practice-card{background:#fff;min-height:300px;padding:36px;position:relative;transition:background .2s,color .2s}.practice-card:hover,.practice-card:focus-visible{background:var(--deep);color:#fff}.card-number{color:var(--wine);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.practice-card:hover .card-number{color:var(--gold)}.practice-card h3{font-family:'Playfair Display',Georgia,serif;font-size:29px;font-weight:400;line-height:1.25;margin:33px 0 11px}.practice-card p{color:var(--muted);font-size:13px;line-height:1.7;max-width:280px}.practice-card:hover p{color:#e1d8db}.card-arrow{position:absolute;right:34px;bottom:26px;color:var(--wine);font-size:24px}.practice-card:hover .card-arrow{color:var(--gold)}.all-practices{display:grid;grid-template-columns:220px 1fr;gap:40px;margin-top:64px;border-top:1px solid var(--line);padding-top:35px}.all-practices>span{font-size:11px;letter-spacing:.15em;font-weight:700;color:var(--wine)}.practice-directory{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 20px}.practice-directory a{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:8px;font-size:13px;font-weight:600}.practice-directory a:hover{color:var(--wine)}.approach{min-height:590px;display:grid;grid-template-columns:1fr 1fr;background:var(--deep);color:#fff}.approach-image{background:url('/assets/lisbon-original.png') center center/cover no-repeat;min-height:500px}.approach-panel{max-width:650px;align-self:center;padding:80px clamp(40px,8vw,120px)}.approach-panel h2,.contact-section h2{font-size:clamp(45px,4.5vw,68px);margin:20px 0 25px}.approach-panel p{color:#ddd1d3;line-height:1.9;font-size:15px;max-width:490px;margin-bottom:36px}.focus{background:#fff}.focus-grid>div:last-child{padding-top:30px}.contact-section{background:var(--wine);color:#fff;padding:100px 0}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:13%}.contact-section h2{margin-bottom:18px}.contact-section h2 em{color:#e6c39e}.contact-section p{color:#e7d6dc;max-width:420px;margin-bottom:32px}.contact-details{border-left:1px solid rgba(255,255,255,.24);padding-left:62px;display:grid;gap:27px;align-content:center}.contact-details>div{display:grid;gap:5px}.contact-details span,.footer-heading{font-size:10px;font-weight:700;letter-spacing:.2em;color:#d9b9c5}.contact-details a,.contact-details address{font-family:'Playfair Display',Georgia,serif;font-size:22px;font-style:normal;line-height:1.4}.contact-details .map-link{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-top:4px}.footer{background:#1e171b;color:#d7cdd1;padding:70px 0 0}.footer-grid{display:grid;grid-template-columns:1.5fr .8fr 1fr;gap:80px}.footer-brand{font-family:Georgia,serif;font-size:49px;letter-spacing:-.15em;color:#fff}.footer p{font-size:13px;color:#b9aeb2;line-height:1.8}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-grid>div:first-child{gap:0}.footer-heading{display:block;margin:14px 0 14px}.footer-grid a:not(.footer-brand),.footer address{font-size:13px;font-style:normal}.footer-bottom{margin-top:60px;padding:22px 0;border-top:1px solid rgba(255,255,255,.13);display:flex;justify-content:space-between;color:#9e9196;font-size:11px}.subhero{background:linear-gradient(90deg,rgba(31,9,16,.93),rgba(37,12,20,.84)),url('/assets/hero.png') center 45%/cover;color:#fff;padding:90px 0 100px}.breadcrumb{display:inline-block;color:#d7c4c9;margin-bottom:75px;font-size:12px}.breadcrumb:hover{color:#fff}.subhero .eyebrow{display:flex}.subhero h1{font-size:clamp(54px,6vw,85px);margin:20px 0}.subhero p{max-width:720px;font-size:19px;color:#e8dce0}.detail{background:#fff}.detail ul{padding-left:0;list-style:none;margin:35px 0}.detail li{border-top:1px solid var(--line);padding:16px 0 16px 30px;position:relative;font-size:15px}.detail li:last-child{border-bottom:1px solid var(--line)}.detail li::before{content:"";position:absolute;left:2px;top:24px;width:8px;height:8px;border:1.5px solid var(--wine);transform:rotate(45deg)}.detail .button{margin-top:22px}.related{background:var(--cream)}.related h2{font-size:48px;margin:12px 0 30px}.related-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.related-links a{background:#fff;padding:26px;font-family:'Playfair Display',Georgia,serif;font-size:22px;display:flex;align-items:center;justify-content:space-between}.related-links span{font-family:'DM Sans',sans-serif;color:var(--wine)}.related-links a:hover{color:var(--wine)}
@media(max-width:1050px){.primary-nav{gap:18px;font-size:11px}.brand{min-width:220px}.brand-mark{font-size:33px}.brand-name{font-size:11px}.practice-card{padding:27px}.practice-card h3{font-size:25px}}@media(max-width:800px){.wrap{width:min(100% - 40px,620px)}.utility-inner>span{display:none}.utility-inner{justify-content:center}.nav-inner{min-height:75px}.menu-toggle{display:block}.primary-nav{display:none;position:absolute;left:0;right:0;top:114px;background:#fff;padding:18px 20px 26px;box-shadow:0 20px 30px rgba(0,0,0,.1);flex-direction:column;align-items:stretch;gap:0}.primary-nav.is-open{display:flex}.primary-nav a{padding:13px 0}.primary-nav .nav-cta{margin-top:10px;text-align:center;padding:15px}.hero{height:650px;min-height:0}.hero-media{background-position:56% center}.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.74),rgba(28,8,15,.15))}.hero-content{padding-top:125px}.hero h1{font-size:clamp(52px,8vw,72px)}.hero-index{display:none}.section{padding:78px 0}.intro-grid,.focus-grid,.detail-grid,.contact-grid{grid-template-columns:1fr;gap:30px}.intro-copy,.focus-grid>div:last-child{padding-top:0}.section-heading{display:block}.practice-grid{grid-template-columns:repeat(2,1fr)}.all-practices{grid-template-columns:1fr;gap:20px}.practice-directory{grid-template-columns:repeat(2,1fr)}.approach{grid-template-columns:1fr}.approach-image{min-height:350px}.approach-panel{padding:70px 40px}.contact-details{border-left:0;border-top:1px solid rgba(255,255,255,.24);padding:40px 0 0}.footer-grid{grid-template-columns:repeat(2,1fr);gap:30px}.footer-grid>div:first-child{grid-column:1/-1}.related-links{grid-template-columns:1fr}.subhero{padding:70px 0}.breadcrumb{margin-bottom:55px}}@media(max-width:540px){.utility-inner>div{gap:10px;font-size:10px}.nav-inner{min-height:72px}.primary-nav{top:111px}.brand{min-width:0}.brand-mark{font-size:30px}.brand-name{font-size:10px}.brand-name small{font-size:6px}.hero{height:630px}.hero-media{background-position:60% center}.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.88),rgba(28,8,15,.4))}.hero-content{padding-top:122px}.hero h1{font-size:51px}.hero p{font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column;gap:22px}.intro h2,.focus h2,.detail h2,.section-heading h2,.approach-panel h2,.contact-section h2{font-size:42px}.practice-grid,.practice-directory{grid-template-columns:1fr}.practice-card{min-height:235px}.practice-card h3{margin-top:20px}.practice-card p{max-width:100%;padding-right:28px}.approach-image{min-height:260px}.approach-panel{padding:65px 20px}.contact-section{padding:78px 0}.contact-details a,.contact-details address{font-size:19px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{gap:12px;flex-wrap:wrap}.subhero h1{font-size:50px}.subhero p{font-size:16px}}

/* Stable icon rendering and hero proportions. */
.icon-arrow{display:inline-block;width:18px;height:18px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;flex:none}
.nav-cta .icon-arrow,.button .icon-arrow{margin-left:2px}
.card-arrow .icon-arrow{width:25px;height:25px}
.practice-directory .icon-arrow,.related-links .icon-arrow{width:16px;height:16px}
.hero-content{padding-top:clamp(115px,10vw,145px)}
.hero h1{font-size:clamp(60px,6vw,84px);max-width:900px}
@media(max-width:800px){.hero-content{padding-top:105px}.hero h1{font-size:clamp(51px,7.4vw,70px);max-width:680px}}
@media(max-width:540px){.hero-content{padding-top:105px}.hero h1{font-size:clamp(46px,11vw,58px);max-width:100%}}
/* Compact header and responsive navigation. */
.utility-inner{min-height:30px}
.nav-inner{min-height:72px}
.brand{min-width:220px}
.brand-mark{font-size:32px}
.brand-name{font-size:11px}
.brand-name small{font-size:6.5px}
.primary-nav{gap:26px;font-size:11px}
.nav-cta{padding:13px 18px}
.hero{height:min(720px,calc(100vh - 102px))}
@media(max-width:1050px){.primary-nav{gap:16px}.brand{min-width:205px}}
@media(max-width:800px){.nav-inner{min-height:64px}.brand{min-width:0}.primary-nav{top:100%}.hero{height:620px;min-height:0}.hero-content{padding-top:95px}.hero h1{font-size:clamp(49px,7.3vw,66px)}}
@media(max-width:540px){.wrap{width:calc(100% - 36px)}.utility-inner{min-height:28px}.utility-inner>div{font-size:9px}.nav-inner{min-height:62px}.brand-mark{font-size:28px}.brand-name{font-size:9px}.brand-name small{font-size:5.5px}.menu-toggle{display:block;flex:none}.hero{height:auto;min-height:600px}.hero-content{padding-top:90px;padding-bottom:75px}.hero h1{font-size:clamp(43px,11vw,52px);line-height:1.12;margin:22px 0}.hero p{font-size:14px;max-width:320px}.hero-actions{margin-top:28px}.button{padding:15px 18px}.eyebrow{font-size:9px;letter-spacing:.16em}.hero .eyebrow{gap:10px}.hero .eyebrow i{width:20px}}
/* Font files are hosted with the site, avoiding third-party requests on page load. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 600;font-display:swap;src:url('/assets/playfair-latin.woff2') format('woff2')}
/* Privacy page. */
.privacy-hero{padding-bottom:82px}
.privacy-layout{display:grid;grid-template-columns:240px minmax(0,760px);gap:8%}
.privacy-layout aside p{font-size:12px;color:var(--muted)}
.privacy-content h2{font-size:32px;margin:0 0 14px;color:var(--deep)}
.privacy-content h2:not(:first-child){margin-top:48px}
.privacy-content p{color:var(--muted);font-size:15px;line-height:1.9;margin:0}
.privacy-content a{text-decoration:underline;text-underline-offset:3px;color:var(--wine)}
@media(max-width:800px){.privacy-layout{grid-template-columns:1fr;gap:36px}.privacy-content h2{font-size:29px}}
/* Final header sizing and hero contrast. */
.utility-inner{min-height:24px}
.nav-inner{min-height:58px}
.brand-mark{font-size:29px}
.brand-name{font-size:10px}
.brand-name small{font-size:6px}
.nav-cta{padding:10px 16px}
.hero{height:min(720px,calc(100vh - 82px))}
.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.76),rgba(36,9,19,.42) 58%,rgba(20,8,12,.03))}
@media(max-width:800px){.utility{display:none}.nav-inner{min-height:62px}.hero{height:620px}.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.8),rgba(28,8,15,.25))}}
@media(max-width:540px){.nav-inner{min-height:62px}.hero{height:auto;min-height:600px}.hero-shade{background:linear-gradient(90deg,rgba(28,8,15,.9),rgba(28,8,15,.43))}}
