@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap");:root{--navy:#101e35;--gold:#a5844d;--paper:#f7f5f1;--muted:#667080}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--navy);font-family:"DM Sans",sans-serif}a{text-decoration:none;color:inherit}header{height:82px;position:absolute;z-index:20;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 6vw}.logo{width:245px}nav{display:flex;gap:27px}nav a{font-size:11px}.right{display:flex;align-items:center;gap:6px}.right button{border:0;background:transparent;padding:8px;cursor:pointer}.right button.active{font-weight:700}.topcta{background:#c6a064;padding:13px 20px;border-radius:25px;font-size:10px;margin-left:10px}#menu{display:none;font-size:20px}.hero{height:860px;position:relative;overflow:hidden;padding:145px 6vw}.bg{position:absolute;inset:0;background:url("../images/hero.jpg") center/cover}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,249,246,.98),rgba(250,249,246,.78) 36%,rgba(250,249,246,.05) 67%)}.copy{position:relative;z-index:3;width:48%}.eyebrow,.kicker{font-size:9px;letter-spacing:.28em;font-weight:600}.copy h1,.firm h2,.practices>h2,.contact h2{font:400 clamp(56px,6vw,92px)/.94 "Libre Caslon Display",Georgia;margin:24px 0;letter-spacing:-.035em}.copy h1 em{font-style:normal;color:var(--gold)}.lead{font-size:16px;line-height:1.6;max-width:600px;color:#45536a}.actions{display:flex;gap:15px;margin-top:28px}.actions a{padding:14px 23px;border-radius:25px;font-size:11px}.actions a:first-child{background:var(--navy);color:white}.actions a:last-child{border:1px solid #78808b;background:#ffffff55}.monolith{position:absolute;z-index:4;right:6vw;top:160px;width:250px;background:#111216aa;backdrop-filter:blur(12px);border:1px solid #b38d5544;padding:28px;color:#ead6b7;display:flex;flex-direction:column;gap:8px;font-size:10px}.monolith img{background:rgba(255,255,255,.94);padding:12px;border-radius:8px;opacity:1}.monolith hr{border:0;border-top:1px solid #a5844d;width:100%;margin:10px 0}.quick{position:absolute;z-index:5;left:6vw;right:6vw;bottom:30px;display:grid;grid-template-columns:repeat(4,1fr);background:#faf8f3c9;backdrop-filter:blur(18px);border:1px solid #ffffffcc;border-radius:16px}.quick a{padding:20px;min-height:125px;display:grid;grid-template-columns:52px 1fr 15px;gap:13px;align-items:center;border-right:1px solid #8b7a6129}.quick a:last-child{border:0}.quick i{font:26px Georgia;color:var(--gold);width:50px;height:50px;background:#fff;border-radius:12px;display:grid;place-items:center}.quick b,.quick small{display:block}.quick b{font:18px "Libre Caslon Display",Georgia}.quick small{font-size:9px;line-height:1.5;color:#687180;margin-top:5px}.stats{padding:32px 7vw;background:white;display:grid;grid-template-columns:repeat(4,1fr)}.stats div{padding:0 28px;border-right:1px solid #ddd7cf}.stats div:last-child{border:0}.stats b,.stats small{display:block}.stats b{font:21px "Libre Caslon Display",Georgia}.stats small{font-size:8px;letter-spacing:.12em;color:#777;margin-top:6px}.firm{display:grid;grid-template-columns:.9fr 1.1fr;background:#fff;min-height:620px}.firmimg{background:url("../images/hero.jpg") 69% center/cover}.firmcopy{padding:95px 8vw}.kicker{color:var(--gold)}.firm h2{font-size:clamp(48px,5vw,72px);line-height:1.03}.firmcopy>p:last-child{font-size:14px;line-height:1.8;color:var(--muted)}.practices{padding:115px 6vw;background:#f1ede6}.practices>h2{font-size:clamp(48px,5vw,72px);line-height:1.03;max-width:950px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#d6cfc5;margin-top:60px}.grid article{background:#f8f6f2;padding:32px;min-height:270px}.grid i{font:29px Georgia;color:var(--gold)}.grid h3{font:25px "Libre Caslon Display",Georgia;margin:55px 0 10px}.grid p{font-size:12px;line-height:1.7;color:#6b7078}.quote{padding:110px 9vw;background:var(--navy);color:white}.quote blockquote{font:400 clamp(48px,6vw,85px)/1.03 "Libre Caslon Display",Georgia;max-width:1100px;margin:40px 0 0}.contact{padding:105px 7vw;background:#e8e1d6;display:grid;grid-template-columns:1.3fr .7fr;gap:8vw}.contact h2{font-size:clamp(48px,5vw,70px);line-height:1.02}.contact>div:last-child{align-self:end}.contact a{display:block;border-bottom:1px solid #c5b9aa;padding:15px 0;font-size:12px}.contact div p:last-child{font-size:11px;line-height:1.7;color:#666}footer{min-height:125px;padding:30px 6vw;background:white;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#777}footer img{width:210px}footer i{font-style:normal}@media(max-width:900px){header{padding:0 20px}.logo{width:185px}nav{display:none;position:absolute;top:75px;left:15px;right:15px;background:#fff;padding:25px;flex-direction:column;border-radius:12px}nav.open{display:flex}.topcta{display:none}#menu{display:block}.hero{height:1250px;padding:125px 20px}.copy{width:100%}.copy h1{font-size:58px}.monolith{display:none}.shade{background:linear-gradient(180deg,#faf9f6fa,#faf9f6c0 48%,#fff0 75%)}.quick{left:20px;right:20px;grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr;gap:25px}.stats div{border:0}.firm,.contact{grid-template-columns:1fr}.firmimg{min-height:400px}.firmcopy,.practices,.quote,.contact{padding:80px 20px}.grid{grid-template-columns:1fr 1fr}footer{flex-direction:column;align-items:flex-start;gap:20px;padding:30px 20px}}@media(max-width:600px){.quick{grid-template-columns:1fr}.quick a:nth-child(4){display:none}.grid,.stats{grid-template-columns:1fr}.hero{height:1400px}}
/* Extended editorial content, using the original ivory, navy and glass palette. */
section,[id]{scroll-margin-top:28px}header{gap:20px}header nav{gap:18px}header nav a{white-space:nowrap}.language-label{font-size:11px;padding:8px}.content-section{padding:100px 6vw}.content-section>h2{font:400 clamp(44px,5vw,72px)/1.03 "Libre Caslon Display",Georgia;letter-spacing:-.035em;max-width:950px;margin:24px 0 32px}.section-intro{max-width:850px;color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:42px}.prose{font-size:14px;line-height:1.85;color:#536074;overflow-wrap:anywhere}.prose p{margin:0 0 18px}.prose h4{font:inherit;margin:0 0 18px}.prose li{margin-bottom:10px}.prose ul,.prose ol{padding-left:22px}.glass{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 14px 45px #101e3506;border-radius:16px}.team{background:radial-gradient(ellipse at 90% 10%,#dbc8a750,transparent 65%),#f1ede6}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.profile{padding:36px}.profile h3,.resource h3,.locations h3,.contact-form h3{font:400 32px/1.15 "Libre Caslon Display",Georgia;margin:18px 0 30px}.profile summary{display:flex;justify-content:space-between;border-top:1px solid #a5844d40;padding:20px 0 0;font-size:12px;cursor:pointer}.profile details[open] summary{margin-bottom:25px}.profile details[open] summary span{transform:rotate(45deg)}summary::-webkit-details-marker{display:none}.all-practices{background:linear-gradient(135deg,#ede5d7,#f7f5f1 50%,#e3e6e8)}.practice-list{display:grid;gap:12px;margin-top:45px}.practice-detail summary{display:flex;align-items:center;gap:28px;cursor:pointer;padding:27px 32px;list-style:none}.detail-number{font-size:11px;letter-spacing:.15em;color:var(--gold)}.practice-detail h3{font:400 29px/1.2 "Libre Caslon Display",Georgia;margin:0;flex:1}.expand{font-size:25px;color:var(--gold);transition:transform .2s}.practice-detail[open] .expand{transform:rotate(45deg)}.practice-detail[open]{background:#ffffffe0}.practice-detail>.prose{padding:0 7vw 32px;max-width:1050px}.text-link{display:inline-block;font-size:11px;color:#836332;border-bottom:1px solid #a5844d55;padding:10px 0}.network{color:white;background:linear-gradient(100deg,#101e35f5,#101e35d9),url('../images/hero.jpg') center/cover}.network .section-intro{color:#d2d8e0}.network-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:24px}.network .glass{background:#ffffff0d;border-color:#ffffff26;color:#e5e9ef}.locations{padding:32px}.locations h3{color:#e3cba5;margin-top:0}.locations p,.locations li{font-size:13px;line-height:2}.locations ul{columns:2;list-style:none;padding:0;margin:0}.locations li{break-inside:avoid}.resources{background:radial-gradient(ellipse at 10% 100%,#dfcfb560,transparent 65%),var(--paper)}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.resource{padding:28px;transition:background .2s,transform .2s}.resource:hover{background:#fff;transform:translateY(-3px)}.resource h3{font-size:25px;margin:22px 0 0}.contact{gap:40px 8vw}.contact-form{grid-column:1/-1;display:grid;grid-template-columns:1fr;max-width:800px;width:100%;padding:36px}.contact .contact-form p{font-size:12px;line-height:1.6;color:#536074}.contact-form h3{margin:0}.contact-form label{font-size:12px;margin:20px 0 8px}.contact-form input,.contact-form textarea{width:100%;font:inherit;font-size:16px;border:1px solid #b6ad9d;background:#ffffff80;padding:13px;border-radius:8px;color:var(--navy)}.contact-form textarea{resize:vertical}.contact-form button{justify-self:start;background:var(--navy);color:white;border:0;border-radius:30px;padding:15px 25px;font:inherit;font-size:12px;margin-top:24px;cursor:pointer}:focus-visible{outline:2px solid #a5844d;outline-offset:5px}footer{flex-wrap:wrap;gap:25px}.legal{width:100%;display:flex;gap:25px;flex-wrap:wrap;border-top:1px solid #ddd7cf;padding-top:22px}.legal span{margin-left:auto}
@media(max-width:1200px){header nav{gap:12px}.logo{width:195px}.topcta{display:none}}
@media(max-width:1000px){header nav{display:none;position:absolute;top:75px;left:15px;right:15px;background:#fffffff0;backdrop-filter:blur(18px);padding:25px;flex-direction:column;border-radius:12px}header nav.open{display:flex}#menu{display:block}.team-grid{grid-template-columns:1fr}.network-grid{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.content-section{padding:65px 20px}.profile,.locations,.resource,.contact-form{padding:24px}.resource-grid{grid-template-columns:1fr}.practice-detail summary{padding:22px 18px;gap:14px}.practice-detail h3{font-size:25px}.practice-detail>.prose{padding:0 20px 24px}.locations ul{columns:2}.quick a:nth-child(4){display:grid}.hero{height:1260px}.quick a{min-height:110px;padding:15px}.copy h1{font-size:clamp(46px,12vw,58px)}.lead{font-size:14px}.actions{gap:10px;flex-wrap:wrap}.actions a{padding:13px 18px}.legal{gap:18px}.legal span{margin-left:0}.contact a{overflow-wrap:anywhere}.firmimg{min-height:300px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Clean brand composition and softly illuminated navigation. */
.brand-panel{top:200px;right:6vw;width:300px;min-height:205px;display:grid;place-items:center;padding:35px;background:linear-gradient(140deg,#ffffffdb,#f4eee2a3);border:1px solid #fff9;border-radius:18px;box-shadow:0 22px 70px #101e3520;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.brand-panel img{width:100%;padding:0;background:none;border-radius:0}
header nav a{position:relative;padding:10px 5px;border-radius:8px;transition:color .25s,background .25s,box-shadow .25s,transform .25s}
header nav a::after{content:"";position:absolute;left:20%;right:20%;bottom:3px;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .25s}
header nav a:hover,header nav a:focus-visible{color:#765421;background:#e6c58a25;box-shadow:0 0 22px #caa56835;transform:translateY(-2px)}
header nav a:hover::after,header nav a:focus-visible::after{transform:scaleX(1)}
.quick a{border-radius:14px;transition:background .3s,box-shadow .3s,transform .3s}
.quick a i{transition:background .3s,color .3s,box-shadow .3s,transform .3s}
.quick a:hover,.quick a:focus-visible{background:#fff8;box-shadow:inset 0 0 24px #dab97828,0 0 25px #dac49d30;transform:translateY(-4px)}
.quick a:hover i,.quick a:focus-visible i{background:#fff9e7;color:#89632d;box-shadow:0 0 20px #d3b67d55;transform:scale(1.06)}
#menu{border-radius:50%;transition:background .25s,box-shadow .25s}#menu:hover{background:#fff7;box-shadow:0 0 20px #caa56840}
nav.open{animation:menu-entrance .25s ease-out}
@keyframes menu-entrance{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* Native scrolling keeps every institutional link available without JavaScript. */
.carousel{position:relative;min-width:0}.carousel-controls{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:22px}.carousel-controls button{border:1px solid #a5844d45;background:#ffffff90;color:var(--navy);border-radius:25px;min-width:44px;min-height:44px;padding:10px 16px;font:500 12px "DM Sans",sans-serif;cursor:pointer;transition:background .25s,box-shadow .25s}.carousel-controls button:hover{background:#fff;box-shadow:0 0 20px #a5844d25}
.carousel-track.resource-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#b99c6e #eae3d9;padding:12px 4px 25px;margin:0 -4px;overscroll-behavior-x:contain}
.carousel-track .resource{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;min-width:0;display:flex;flex-direction:column;padding:26px;transform:none}
.institution-logo{height:150px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;padding:18px;margin-bottom:26px}.institution-logo img{width:100%;height:100%;object-fit:contain;transition:transform .35s}.resource:hover .institution-logo img{transform:scale(1.045)}.carousel-track .resource h3{font-size:24px;margin-top:16px;line-height:1.2}.carousel-track .resource:hover{box-shadow:0 12px 30px #101e350b;border-color:#cbb58c}
@media(max-width:1000px){.brand-panel{display:none}.carousel-track .resource{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:600px){.carousel-track .resource{flex-basis:86%;padding:22px}.institution-logo{height:135px}.carousel-controls{justify-content:flex-start}.carousel-track .resource h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){.carousel-track.resource-grid{scroll-behavior:auto}nav.open{animation:none}header nav a:hover,.quick a:hover,.quick a:hover i{transform:none}}
header{background:linear-gradient(90deg,#faf9f6d9,#faf9f6a6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #ffffff45}
@media(min-width:1001px) and (max-width:1200px){header nav{display:none;position:absolute;top:75px;left:15px;right:15px;background:#fffffff0;backdrop-filter:blur(18px);padding:25px;flex-direction:column;border-radius:12px}header nav.open{display:flex}#menu{display:block}}

/* Readable supporting text and a discreet, prominent profile control. */
body{font-size:16px}.eyebrow,.kicker{font-size:12px;letter-spacing:.18em;line-height:1.6}header nav a{font-size:13px}.topcta,.actions a,.text-link{font-size:14px}.quick b{font-size:22px}.quick small{font-size:13px;line-height:1.6}.stats b{font-size:25px}.stats small{font-size:12px;line-height:1.6}.prose,.section-intro,.grid p,.firmcopy>p:last-child{font-size:16px;line-height:1.85}.locations p,.locations li{font-size:15px}.detail-number{font-size:13px}.contact a{font-size:16px}.contact div p:last-child{font-size:15px}.contact .contact-form p,.contact-form label,.contact-form button{font-size:15px}.carousel-controls button{font-size:14px}footer{font-size:13px;line-height:1.6}.legal{gap:20px 28px}
.profile summary{padding:16px 20px;margin-top:28px;border:1px solid #a5844d55;border-radius:10px;background:linear-gradient(120deg,#e9dcc360,#ffffffb3);color:#654d2a;font-size:15px;font-weight:600;align-items:center;gap:16px;box-shadow:0 5px 18px #a5844d09;transition:background .25s,border-color .25s,box-shadow .25s}.profile summary span{width:28px;height:28px;display:grid;place-items:center;border:1px solid #a5844d40;border-radius:50%;font-size:20px;font-weight:400;flex-shrink:0;transition:transform .25s}.profile summary:hover,.profile summary:focus-visible{background:#f6eddd;border-color:#a5844d99;box-shadow:0 5px 22px #a5844d18}.profile details[open] summary{background:#ede1cb80;margin-bottom:26px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.language-switch select{font:500 13px "DM Sans",sans-serif;color:var(--navy);border:1px solid #a5844d55;border-radius:22px;background:#ffffffb3;padding:10px 12px;max-width:115px;cursor:pointer;min-height:42px}.right{flex-shrink:0}.legal-section{background:linear-gradient(140deg,#f3eee5,#f9f7f3)}.legal-detail{margin-top:18px}.legal-detail summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:28px 32px;cursor:pointer}.legal-detail h3{font:400 30px/1.2 "Libre Caslon Display",Georgia;margin:0}.legal-detail summary>span{color:var(--gold);font-size:26px;transition:transform .2s}.legal-detail[open] summary>span{transform:rotate(45deg)}.legal-copy{padding:0 32px 35px;max-width:1050px;overflow-wrap:anywhere}.legal-copy strong{color:var(--navy)}
/* Long French labels must not collide with the header or adjacent service cards. */
.quick a{grid-template-columns:45px minmax(0,1fr) 15px;padding:18px;gap:10px}.quick i{width:45px;height:45px}.quick b{line-height:1.15}.quick small{margin-top:9px}.quick{bottom:24px}.copy{width:52%;max-width:720px}.copy h1{font-size:clamp(56px,5.6vw,86px)}html[lang="fr"] .copy h1{font-size:clamp(50px,5.1vw,78px)}
@media(max-width:1400px){header nav{display:none;position:absolute;top:75px;left:15px;right:15px;background:#fffffff0;backdrop-filter:blur(18px);padding:25px;flex-direction:column;border-radius:12px}header nav.open{display:flex}#menu{display:block}.topcta{display:none}}
@media(max-width:900px){.copy{width:100%}.copy h1,html[lang="fr"] .copy h1{font-size:58px}.quick a{min-height:145px}.stats small{font-size:12px}}
@media(max-width:600px){header{padding:0 16px;gap:10px}.logo{width:150px}.language-switch select{font-size:12px;padding:9px 7px;max-width:105px}.right{gap:0}#menu{padding:6px}.copy h1{font-size:clamp(46px,12vw,58px)}html[lang="fr"] .copy h1{font-size:clamp(40px,10.6vw,53px)}.quick a{min-height:126px;padding:16px}.quick b{font-size:22px}.lead{font-size:16px}.hero{height:1390px}.profile summary{padding:14px 16px}.legal-detail summary{padding:24px 20px}.legal-detail h3{font-size:27px}.legal-copy{padding:0 20px 25px}.carousel-controls button{padding:10px 14px}.actions a{font-size:14px}}
@media(prefers-reduced-motion:reduce){.profile summary,.profile summary span{transition:none}}
@media(min-width:1401px) and (max-width:1600px){header nav{display:none;position:absolute;top:75px;left:15px;right:15px;background:#fffffff0;backdrop-filter:blur(18px);padding:25px;flex-direction:column;border-radius:12px}header nav.open{display:flex}#menu{display:block}.topcta{display:none}}

/* Gentle motion, with no hidden content or perpetual decorative effects. */
.carousel-track.resource-grid{scroll-snap-type:none}
.carousel-track.resource-grid.is-moving{scroll-behavior:auto}
@keyframes brand-arrive{from{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.brand-panel{animation:brand-arrive 1.1s cubic-bezier(.22,1,.36,1) both}
.actions a,.topcta,.contact-form button{transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.actions a:hover,.topcta:hover,.contact-form button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #a5844d26}
.practice-detail,.legal-detail{transition:border-color .3s,box-shadow .3s,background .3s}
.practice-detail:hover,.legal-detail:hover{border-color:#c4ac7f80;box-shadow:0 10px 32px #a5844d0e}
.contact-form input,.contact-form textarea{transition:border-color .25s,box-shadow .25s,background .25s}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--gold);background:#ffffffbf;box-shadow:0 0 0 4px #a5844d10}
@media(prefers-reduced-motion:reduce){.brand-panel{animation:none}.actions a:hover,.topcta:hover,.contact-form button:hover{transform:none}}
