@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

:root{
  --ink:#111114;
  --muted:#5f6065;
  --red:#b51f1f;
  --red-dark:#8e1515;
  --paper:#f7f7f5;
  --white:#fff;
  --line:#d7d7d3;
  --navy:#10101b;
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--white);font-family:"DM Sans",Arial,sans-serif;font-weight:400;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.site-header{
  height:88px;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);display:flex;align-items:center;padding:0 clamp(24px,6vw,88px);
  border-bottom:1px solid #eee;justify-content:space-between
}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content}
.brand-mark{width:39px;height:39px;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:600;letter-spacing:-.05em;font-size:14px}
.brand-name{font-size:15px;letter-spacing:.16em;color:var(--red);font-weight:500}
.brand-name strong{font-weight:600}
.desktop-nav{display:flex;gap:clamp(20px,3vw,48px);margin-left:auto;margin-right:40px}
.desktop-nav a,.footer-nav a{font-size:12px;letter-spacing:.18em;font-weight:600}
.desktop-nav a{position:relative}
.desktop-nav a:after{content:"";height:1px;background:var(--red);position:absolute;left:0;right:100%;bottom:-7px;transition:.25s}
.desktop-nav a:hover:after{right:0}
.header-actions{display:flex;align-items:center;gap:18px}
.icon-button{border:0;background:none;cursor:pointer}
.search-toggle{font-size:30px;line-height:1;transform:rotate(-20deg)}
.menu-toggle{display:none;width:30px;padding:4px 0}
.menu-toggle span{display:block;height:1.5px;background:#111;margin:6px 0;transition:.25s}
.search-panel{position:fixed;z-index:60;left:0;right:0;top:88px;background:#fff;border-bottom:1px solid #ddd;transform:translateY(-120%);transition:.35s}
.search-panel.open{transform:translateY(0)}
.search-inner{max-width:var(--max);margin:auto;padding:22px 6vw;display:flex;gap:20px}
.search-inner input{flex:1;border:0;border-bottom:1px solid #222;padding:12px 0;font-size:20px;outline:0}
.search-inner button{border:0;background:none;text-transform:uppercase;letter-spacing:.14em;font-size:11px;cursor:pointer}
.mobile-menu{display:none}
.hero{min-height:calc(100vh - 88px);position:relative;overflow:hidden;background:#07070b;color:#fff;display:flex;align-items:center}
.hero-pattern{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 73% 40%,rgba(35,45,160,.2),transparent 31%),#07070b}
.grid-lines{position:absolute;inset:-20%;background-image:radial-gradient(circle,rgba(66,79,230,.75) 1.7px,transparent 2.3px);background-size:24px 24px;transform:rotate(-11deg) scale(1.3);opacity:.42;mask-image:linear-gradient(90deg,transparent 15%,#000 42%,#000 85%,transparent)}
.orb{position:absolute;border-radius:50%;filter:blur(40px)}
.orb-a{width:520px;height:520px;right:10%;top:5%;background:radial-gradient(circle,rgba(34,70,255,.42),transparent 65%)}
.orb-b{width:420px;height:420px;right:-5%;bottom:-10%;background:radial-gradient(circle,rgba(188,25,185,.28),transparent 66%)}
.hero-content{position:relative;z-index:2;max-width:var(--max);width:100%;padding:100px 7vw}
.eyebrow{font-size:11px;letter-spacing:.27em;font-weight:600;margin:0 0 30px}
.eyebrow.light{color:#fff}
.hero h1{font-size:clamp(58px,8vw,118px);line-height:.92;font-weight:300;letter-spacing:-.045em;margin:0 0 36px;max-width:850px}
.hero h1 span{color:#fff;opacity:.72}
.hero-copy{font-size:clamp(17px,1.5vw,22px);font-weight:300;max-width:610px;line-height:1.55;color:#e9e9ed;margin-bottom:42px}
.outline-button,.solid-button{display:inline-flex;align-items:center;gap:30px;padding:17px 23px;border:1px solid currentColor;font-size:11px;font-weight:600;letter-spacing:.18em;transition:.25s}
.outline-button span,.solid-button span{font-size:16px}
.light-button{color:#fff}
.light-button:hover{background:#fff;color:#111}
.solid-button{background:#fff;color:#111;border-color:#fff}
.solid-button:hover{background:transparent;color:#fff}
.hero-scroll{position:absolute;z-index:2;right:6vw;bottom:35px;font-size:10px;letter-spacing:.25em;writing-mode:vertical-rl;display:flex;gap:14px;align-items:center}
.section-pad{padding:130px clamp(24px,8vw,150px)}
.section-label{font-size:10px;letter-spacing:.25em;font-weight:600;color:#666;min-width:160px}
.intro{display:grid;grid-template-columns:160px 1fr;gap:70px;background:#fff}
.intro-content{max-width:1050px}
.lead{font-size:clamp(31px,4vw,57px);line-height:1.15;font-weight:300;letter-spacing:-.025em;margin:0 0 65px;max-width:1050px}
.lead em{font-family:"Playfair Display",serif;color:var(--red)}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--line);padding-top:35px}
.intro-grid p{max-width:480px;color:#45464a;font-size:16px}
.competencies{background:var(--paper)}
.section-heading{display:grid;grid-template-columns:160px 1fr;gap:70px;margin-bottom:75px}
.section-heading h2{font-size:clamp(40px,5vw,72px);line-height:1.05;font-weight:300;letter-spacing:-.035em;margin:0}
.section-heading h2 span,.approach h2 span{font-family:"Playfair Display",serif;font-style:italic;color:var(--red)}
.cards{max-width:1120px;margin-left:auto;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #c8c8c4}
.practice-card{min-height:310px;padding:35px 35px 30px;border-bottom:1px solid #c8c8c4;position:relative;transition:.3s}
.practice-card:nth-child(odd){border-right:1px solid #c8c8c4}
.practice-card:hover{background:#fff;transform:translateY(-3px)}
.card-number{font-size:10px;letter-spacing:.18em;color:#777}
.practice-card h3{font-size:27px;font-weight:400;margin:50px 0 16px}
.practice-card p{color:#65666a;max-width:440px;font-size:15px}
.card-arrow{position:absolute;right:30px;bottom:27px;font-size:24px;color:var(--red)}
.feature{display:grid;grid-template-columns:1.15fr .85fr;min-height:620px;background:#111}
.feature-image{min-height:620px;overflow:hidden}
.architecture-art{height:100%;position:relative;background:linear-gradient(135deg,#17283b,#06101a 55%,#8d4c1d)}
.building{position:absolute;bottom:0;border:1px solid rgba(255,255,255,.16);background:linear-gradient(120deg,rgba(255,255,255,.18),rgba(0,0,0,.2));transform:skewY(-9deg)}
.b1{left:3%;width:33%;height:76%}.b2{left:27%;width:35%;height:92%}.b3{left:54%;width:28%;height:67%}.b4{right:-6%;width:35%;height:83%}
.building:after{content:"";position:absolute;inset:10px;background:repeating-linear-gradient(0deg,transparent 0 24px,rgba(180,220,240,.14) 25px),repeating-linear-gradient(90deg,transparent 0 35px,rgba(180,220,240,.13) 36px)}
.light-reflection{position:absolute;width:70%;height:120%;right:-10%;top:-15%;background:linear-gradient(110deg,transparent 0 43%,rgba(255,230,170,.35) 46%,transparent 50%);filter:blur(5px)}
.feature-copy{color:#fff;padding:100px clamp(40px,7vw,110px);display:flex;flex-direction:column;justify-content:center}
.feature-copy .eyebrow{color:#d9d9de}
.feature-copy h2{font-size:clamp(43px,5vw,72px);line-height:1.03;font-weight:300;letter-spacing:-.04em;margin:0 0 35px}
.feature-copy p{color:#c7c7ca;max-width:570px;font-size:17px}
.text-link{display:inline-flex;gap:22px;align-items:center;margin-top:35px;font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--red)}
.text-link span{font-size:17px}
.feature .text-link{color:#fff}
.approach{background:#fff;display:grid;grid-template-columns:160px 1fr;gap:70px}
.approach-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}
.approach h2{font-size:clamp(45px,5vw,75px);line-height:1.02;font-weight:300;letter-spacing:-.04em;margin:0}
.steps{border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.step>span{font-size:10px;letter-spacing:.16em;color:var(--red);padding-top:6px}
.step h3{font-size:22px;font-weight:500;margin:0 0 8px}.step p{margin:0;color:#666;font-size:15px}
.cta{background:#10101b;color:#fff;padding:125px 8vw;position:relative;overflow:hidden}
.cta:after{content:"";position:absolute;width:650px;height:650px;right:-180px;top:-230px;border-radius:50%;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.02)}
.cta-inner{position:relative;z-index:2;max-width:1000px}
.cta h2{font-size:clamp(52px,7vw,105px);line-height:.96;font-weight:300;letter-spacing:-.045em;margin:0 0 35px}
.cta h2 span{font-family:"Playfair Display",serif;font-style:italic;color:#d7d7dc}
.cta p:not(.eyebrow){font-size:17px;color:#c6c6cb;max-width:620px}
.cta-actions{display:flex;gap:15px;margin-top:42px;flex-wrap:wrap}
.legal{background:#f4f4f2;display:grid;grid-template-columns:160px 1fr;gap:70px}
.legal-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:50px}
.legal h2,.privacy h2{font-size:42px;font-weight:300;margin:0 0 25px;letter-spacing:-.03em}
.legal p,.legal address,.privacy p{font-style:normal;font-size:14px;color:#555;line-height:1.8}
.legal-note{color:#777!important;font-size:12px!important;margin-bottom:30px}
.legal h3,.privacy h3{font-size:14px;margin-top:25px;margin-bottom:5px}
.dark-link{margin-top:15px}
.privacy{display:grid;grid-template-columns:160px 1fr;gap:70px;background:#fff}
.privacy-copy{max-width:850px}
.privacy-copy p{max-width:800px}
.site-footer{background:#d8d8d6;padding:55px clamp(24px,8vw,150px) 25px}
.footer-top{display:flex;justify-content:space-between;gap:40px;align-items:flex-start;padding-bottom:50px}
.footer-nav{display:flex;flex-wrap:wrap;gap:28px 38px;max-width:650px;justify-content:flex-end}
.footer-nav a{font-size:10px}
.footer-bottom{border-top:1px solid #bbb;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.12em;color:#555}
.footer-bottom a{font-weight:600}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .desktop-nav{display:none}.menu-toggle{display:block}
  .mobile-menu{position:fixed;z-index:49;top:88px;left:0;right:0;background:#fff;padding:25px;display:flex;flex-direction:column;transform:translateY(-130%);transition:.35s;border-bottom:1px solid #ddd}
  .mobile-menu.open{transform:translateY(0)}
  .mobile-menu a{padding:15px 0;border-bottom:1px solid #eee;font-size:12px;letter-spacing:.18em;font-weight:600}
  .intro,.section-heading,.approach,.legal,.privacy{grid-template-columns:1fr;gap:35px}
  .intro-grid,.approach-grid,.legal-grid{grid-template-columns:1fr;gap:25px}
  .section-label{margin-bottom:5px}
  .cards{grid-template-columns:1fr}
  .practice-card:nth-child(odd){border-right:0}
  .feature{grid-template-columns:1fr}
  .feature-image{min-height:430px}.feature-copy{min-height:520px}
  .footer-top{flex-direction:column}.footer-nav{justify-content:flex-start}
}
@media(max-width:600px){
  .site-header{height:74px;padding:0 18px}.brand-name{font-size:11px;letter-spacing:.11em}.brand-mark{width:34px;height:34px}
  .search-panel{top:74px}.mobile-menu{top:74px}
  .hero{min-height:calc(100vh - 74px)}.hero-content{padding:70px 24px}
  .hero h1{font-size:58px}.hero-scroll{display:none}
  .section-pad{padding:85px 24px}
  .lead{font-size:34px;margin-bottom:45px}
  .intro-grid{gap:5px}
  .practice-card{min-height:285px;padding:27px}
  .feature-copy{padding:75px 28px}
  .feature-image{min-height:330px}
  .cta{padding:90px 24px}.cta h2{font-size:55px}
  .legal-grid{gap:35px}
  .site-footer{padding:45px 24px 20px}
  .footer-bottom{flex-direction:column;gap:8px}
}

.office-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:34px;max-width:1050px}
.office-list div{border-top:1px solid rgba(255,255,255,.18);padding-top:15px;color:#c6c6cb;font-size:13px;line-height:1.7}
.office-list strong{color:#fff;letter-spacing:.08em}
.office-list a{color:#fff}
.pending-data{color:#9a9a9a}
@media (max-width:900px){.office-list{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.office-list{grid-template-columns:1fr}}
