/* MGCo. Legal — static site styles */
:root{--hdr:96px;--ink:#123540;--navy:#0B4A58;--teal:#0A6E82;--teal-dk:#07586A;--teal-lt:#7FB5BD;--teal-pale:#CFE8EC;--tint:#F1F7F8;--tint-2:#E4F0F2;--line:#E1E9EB;--line-dk:rgba(255,255,255,.2);--grey:#44565D;--grey-2:#687A80;--grey-3:#98A8AD;--stroke-grey:#C3D3D7;--sans:'Archivo',sans-serif;--mono:'IBM Plex Mono',monospace;--serif:'Cormorant Garamond',serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--navy)}
img{max-width:100%}
.mono{font-family:var(--mono)}
.kicker{margin:0 0 28px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.outline{color:transparent;-webkit-text-stroke:1.5px var(--navy)}
.outline-w{color:transparent;-webkit-text-stroke:1.2px var(--teal-pale)}
.serif-accent{font-family:var(--serif);font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;color:var(--teal)}

/* Header — logo left, menu toggle right; transparent over the page, frosted once scrolled */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:transparent;border-bottom:1px solid transparent;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease;view-transition-name:site-header}
.site-header.scrolled{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line);box-shadow:0 12px 30px -26px rgba(10,74,88,.45)}
/* reading progress along the bottom edge of the header */
.site-header::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:var(--progress,0%);background:linear-gradient(90deg,var(--teal-lt),var(--teal));pointer-events:none}

/* Page-to-page transitions (browsers with cross-document view transitions); the header stays put */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vtOut .3s ease both}
::view-transition-new(root){animation:vtIn .6s cubic-bezier(.19,1,.22,1) both}
@keyframes vtOut{to{opacity:0}}
@keyframes vtIn{from{opacity:0;transform:translateY(16px)}}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
.site-header .logo{flex:0 0 auto;display:flex;align-items:center}
.site-header .logo img{height:64px;width:auto;max-width:none;flex:none;object-fit:contain;display:block}
.menu-btn{position:relative;display:flex;align-items:center;justify-content:center;width:52px;height:52px;margin-right:-10px;padding:0;border:none;background:none;color:var(--teal);cursor:pointer}
.menu-btn .bars{display:flex;align-items:center;gap:6px;height:24px}
.menu-btn .bars i{display:block;width:2px;height:24px;background:currentColor;transition:height .35s cubic-bezier(.19,1,.22,1)}
.menu-btn:hover .bars i:nth-child(1),.menu-btn:focus-visible .bars i:nth-child(1){height:14px}
.menu-btn:hover .bars i:nth-child(3),.menu-btn:focus-visible .bars i:nth-child(3){height:18px}
.menu-btn:focus-visible{outline:1px solid var(--teal);outline-offset:2px}

/* Menu — panel slides in from the right over a dimmed page */
.overlay-menu{position:fixed;inset:0;z-index:90;visibility:hidden;pointer-events:none;transition:visibility 0s linear .6s}
.overlay-menu.open{visibility:visible;pointer-events:auto;transition:none}
.menu-scrim{position:absolute;inset:0;background:rgba(10,74,88,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .5s ease}
.overlay-menu.open .menu-scrim{opacity:1}
.menu-panel{position:absolute;top:0;right:0;bottom:0;width:min(576px,100%);display:flex;flex-direction:column;background:linear-gradient(165deg,var(--teal) 0%,var(--teal-dk) 100%);color:#fff;transform:translateX(100%);transition:transform .6s cubic-bezier(.19,1,.22,1);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;box-shadow:-30px 0 80px -40px rgba(7,40,50,.6)}
.overlay-menu.open .menu-panel{transform:none}
.menu-panel .bar{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;height:var(--hdr);padding:0 40px}
.menu-panel .bar span{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal-pale)}
.menu-panel .close-btn{width:52px;height:52px;margin-right:-10px;border:none;background:none;color:#fff;font-size:34px;font-weight:300;line-height:1;cursor:pointer;transition:transform .4s cubic-bezier(.19,1,.22,1)}
.menu-panel .close-btn:hover,.menu-panel .close-btn:focus-visible{transform:rotate(90deg);outline:none}
.menu-panel nav{flex:1 0 auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:8px 40px 28px}
.menu-panel nav>a{display:block;padding:7px 0;color:#fff;text-align:right;opacity:0;transform:translateX(28px);transition:opacity .45s ease,transform .6s cubic-bezier(.19,1,.22,1),color .2s}
.menu-panel nav>a .n{display:none}
.menu-panel nav>a .l{font-weight:500;font-size:clamp(22px,2.1vw,30px);line-height:1.2;letter-spacing:-.01em;background:linear-gradient(currentColor,currentColor) no-repeat 100% 100%/0 1px;padding-bottom:3px;transition:background-size .45s cubic-bezier(.19,1,.22,1)}
.menu-panel nav>a:hover .l,.menu-panel nav>a:focus-visible .l,.menu-panel nav>a[aria-current="page"] .l{background-size:100% 1px}
.menu-panel nav>a[aria-current="page"]{color:var(--teal-pale)}
.menu-panel nav>a:focus-visible{outline:none}
.overlay-menu.open nav>a{opacity:1;transform:none}
.overlay-menu.open nav>a:nth-child(2){transition-delay:.04s}.overlay-menu.open nav>a:nth-child(3){transition-delay:.08s}
.overlay-menu.open nav>a:nth-child(4){transition-delay:.12s}.overlay-menu.open nav>a:nth-child(5){transition-delay:.16s}
.overlay-menu.open nav>a:nth-child(6){transition-delay:.2s}.overlay-menu.open nav>a:nth-child(7){transition-delay:.24s}
.overlay-menu.open nav>a:nth-child(8){transition-delay:.28s}.overlay-menu.open nav>a:nth-child(9){transition-delay:.32s}
.menu-panel nav .sub{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 28px;padding-top:24px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.menu-panel nav .sub a{color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px}
.menu-panel nav .sub a:hover,.menu-panel nav .sub a[aria-current="page"]{color:#fff;border-bottom-color:#fff}
.menu-panel .meta{flex-shrink:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 26px;padding:22px 40px 28px;border-top:1px solid rgba(255,255,255,.18);font-family:var(--mono);font-size:11px;letter-spacing:.1em}
.menu-panel .meta a{color:rgba(255,255,255,.82)}
.menu-panel .meta a:hover{color:#fff}
.menu-panel .meta .loc{color:rgba(255,255,255,.55)}

/* BCI gate */
.gate{position:fixed;inset:0;z-index:100;background:rgba(10,74,88,.32);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:24px}
.gate{padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.gate.open{display:flex;animation:fadeIn .4s ease both}
.gate .panel{background:#fff;box-shadow:0 40px 100px -30px rgba(10,74,88,.45);border-top:3px solid var(--teal);width:100%;max-width:660px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}
.gate .panel-head{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 40px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.gate .panel-head .t{color:var(--teal)}.gate .panel-head .r{color:var(--grey-3)}
.gate .panel-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:32px 40px;font-size:13.5px;line-height:1.8;color:var(--grey)}
.gate .panel-body h2{margin:0 0 22px;font-weight:650;font-size:26px;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}
.gate .panel-body p{margin:0 0 13px}
.gate .panel-foot{flex:0 0 auto;display:flex;border-top:1px solid var(--line)}
.gate .panel-foot button{flex:1;min-width:0;padding:18px 12px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border:none;transition:background .2s,color .2s}
.gate .agree{background:var(--teal);color:#fff}.gate .agree:hover{background:var(--teal-dk)}
.gate .disagree{background:#fff;color:var(--grey-2);border-left:1px solid var(--line)}.gate .disagree:hover{background:var(--tint);color:var(--ink)}

/* Hero */
.hero{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--line)}
.hero-main{display:flex;flex-direction:column;justify-content:flex-end;padding:150px 0 0 32px;overflow:hidden;container-type:inline-size}
.hero .hero-title,.page-hero h1{margin:0;font-weight:700;text-transform:uppercase;line-height:.92;letter-spacing:-.03em}
.hero .hero-title{font-size:clamp(58px,10.2vw,176px)}
.hero .hero-title{font-size:clamp(30px,calc((100cqw - 44px)/9.9),164px)}
/* rotating hero messages, stacked in one cell; the active one is .on */
.hero-msgs{display:grid}
.hero-msg{grid-area:1/1;transition:opacity .6s ease,visibility .6s}
.hero-msg:not(.on){opacity:0;visibility:hidden;pointer-events:none}
.hero-msg:not(.on) .hero-foot{transform:translateY(12px)}
.hero-msg .hero-foot{transition:transform .8s cubic-bezier(.19,1,.22,1) .35s}
.hero .line{display:block;overflow:hidden}
.hero .line>span{display:block;transform:translateY(112%)}
.hero-msg.on .line>span{animation:mk .9s cubic-bezier(.19,1,.22,1) forwards}
.hero .l1>span{color:var(--navy)}
.hero-msg.on .l1>span{animation-delay:.25s}.hero-msg.on .l2>span{animation-delay:.4s}.hero-msg.on .l3>span{animation-delay:.55s}.hero-msg.on .l4>span{animation-delay:.7s}
.hero .l2>span{color:transparent;-webkit-text-stroke:1.5px var(--teal)}
.hero .l3>span{color:var(--ink)}
.hero .l4>span{font-family:var(--serif);font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;color:var(--teal)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;flex-wrap:wrap;margin:56px 32px 0 0;padding:26px 0;border-top:1px solid var(--teal)}
.hero-foot p{margin:0;max-width:480px;font-size:15px;line-height:1.7;color:var(--grey)}
.hero-copy{max-width:600px}
.hero-copy p{margin:0 0 14px;max-width:none}
.hero-copy .tagline{margin:6px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.tagline-line{margin:32px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.site-footer .cols .about-col .tagline{margin:16px 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.fade-in{opacity:0;animation:rv .8s cubic-bezier(.19,1,.22,1) forwards}
.d1{animation-delay:.15s}.d2{animation-delay:.7s}.d3{animation-delay:.95s}.d4{animation-delay:1.1s}

/* Hero intro logo (home) — shown alone at the centre of the hero on load,
   then it flies into the header logo and hands over to it */
.hero-brand{--hb:clamp(96px,10.5vw,176px);display:none;position:fixed;z-index:70;left:50%;top:calc(50vh + var(--hdr)/2);transform:translate(-50%,-50%);align-items:center;gap:calc(var(--hb)*.16);color:#173748;pointer-events:none;white-space:nowrap}
.intro .hero-brand,.intro-out .hero-brand{display:flex}
@media (min-width:901px){body.has-rail .hero-brand{left:calc(50% - 100px)}}
.hb-mark{flex:none;width:var(--hb);height:var(--hb);overflow:visible;animation:hbMark 1.3s cubic-bezier(.19,1,.22,1) both}
.hb-mark .w{animation:hbW .72s cubic-bezier(.19,1,.22,1) both,hbWave 9s ease-in-out infinite;transition:fill .65s ease}
.hb-mark .w1,.hb-mark .w2,.hb-mark .w3{fill:#02647E}
.hb-mark .w4,.hb-mark .w5,.hb-mark .w6{fill:#173748}
.hb-mark .w1{--dx:5px;--dy:-5px;animation-delay:.08s,1.95s}
.hb-mark .w2{--dx:-3px;--dy:-7px;animation-delay:.14s,2.01s}
.hb-mark .w3{--dx:-7px;--dy:-3px;animation-delay:.2s,2.07s}
.hb-mark .w4{--dx:-7px;--dy:3px;animation-delay:.25s,2.13s}
.hb-mark .w5{--dx:-3px;--dy:7px;animation-delay:.31s,2.18s}
.hb-mark .w6{--dx:5px;--dy:5px;animation-delay:.37s,2.24s}
.hb-ring{fill:none;stroke:rgba(10,110,130,.22);stroke-width:.5;stroke-dasharray:358.2;animation:hbDraw 1.56s cubic-bezier(.65,0,.35,1) .23s both;transition:opacity .7s}
.hb-orbit{fill:none;stroke:var(--teal);stroke-width:1.1;stroke-linecap:round;stroke-dasharray:5 95;transform-box:fill-box;transform-origin:center;animation:hbFade .68s ease 1.17s both,hbOrbit 22s linear 1.17s infinite;transition:opacity .7s}
.hb-rule{flex:none;align-self:stretch;width:1px;margin:calc(var(--hb)*.12) 0;background:linear-gradient(180deg,transparent,var(--teal) 20%,var(--teal) 80%,transparent);transform-origin:top;animation:hbRule .68s cubic-bezier(.19,1,.22,1) .52s both}
.hb-type{display:flex;flex-direction:column;gap:calc(var(--hb)*.07);min-width:0}
.hb-name{display:block;overflow:hidden;padding-bottom:.04em;font-weight:600;font-size:calc(var(--hb)*.3);line-height:1;letter-spacing:.08em;white-space:nowrap;transition:color 1.3s ease}
.hb-name>span{display:block;animation:hbUp .78s cubic-bezier(.19,1,.22,1) .59s both}
.hb-name b{font-weight:600;color:#02647E;transition:color 1.3s ease}
.hb-sub{font-family:var(--mono);font-size:max(9px,calc(var(--hb)*.078));letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2);animation:hbFade .78s ease .88s both;transition:color 1.3s ease}
.hb-sub i{font-style:normal;color:var(--teal);padding:0 .3em}
/* Flight into the header logo */
.hero-brand.fly{transition:transform .81s cubic-bezier(.77,0,.18,1),opacity .35s ease}
.hero-brand.fly .hb-ring,.hero-brand.fly .hb-orbit{opacity:0}
.hb-rule,.hb-type{transition:opacity .7s ease}
.hero-brand.fly .hb-rule,.hero-brand.fly .hb-type{opacity:0}
.hero-brand.gone{opacity:0;transition:opacity .35s ease}
.site-header .logo img{transition:opacity .6s ease,height .35s ease}
.intro .site-header .logo img{opacity:0}
/* Intro: everything in the hero waits; the logo plays first, then the rest */
.intro .hero-main *,.intro .hero-brand,.intro .hero-brand *{animation-play-state:paused!important}
.intro .site-index{opacity:0;visibility:hidden}
.intro-play .hero-brand,.intro-play .hero-brand *{animation-play-state:running!important}
.hero-ui{transition:opacity .8s ease,visibility .8s}
.intro .hero-ui{opacity:0;visibility:hidden}
.intro .hero-slides .hs,.intro .hero-slides .hs.active{opacity:0}
@media (max-width:600px){.hero-brand{--hb:72px}.hb-name{font-size:24px}.hb-sub{letter-spacing:.12em;line-height:1.5}.hb-sub i{padding:0 .15em}}
@keyframes hbMark{from{opacity:0;transform:rotate(-40deg) scale(.9)}to{opacity:1;transform:none}}
@keyframes hbW{from{opacity:0;transform:translate(var(--dx),var(--dy))}to{opacity:1;transform:none}}
@keyframes hbWave{0%,10%,100%{opacity:1}5%{opacity:.45}}
@keyframes hbDraw{from{stroke-dashoffset:358.2}to{stroke-dashoffset:0}}
@keyframes hbOrbit{to{transform:rotate(360deg)}}
@keyframes hbRule{from{transform:scaleY(0)}to{transform:none}}
@keyframes hbUp{from{transform:translateY(110%)}to{transform:none}}
@keyframes hbFade{from{opacity:0}to{opacity:1}}

/* Page hero (inner pages) */
.page-hero{padding:170px 32px 70px;border-bottom:1px solid var(--line);container-type:inline-size}
.page-hero h1{font-size:clamp(50px,9.6vw,160px)}
.page-hero h1{font-size:clamp(30px,calc((100cqw - 72px)/8.55),160px)}
.page-hero h1 .a{display:block;color:var(--navy)}
.page-hero h1 .b{display:block;color:transparent;-webkit-text-stroke:1.5px var(--teal)}
.page-hero .lede{margin:44px 0 0;max-width:680px;font-size:16px;line-height:1.75;color:var(--grey)}

/* Buttons + links */
.btn{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);border:1px solid var(--teal);padding:16px 30px;transition:background .25s,color .25s;background:none;cursor:pointer}
.btn:hover{background:var(--teal);color:#fff}
.btn-w{color:#fff;border-color:rgba(255,255,255,.6)}
.btn-w:hover{background:#fff;color:var(--teal-dk)}
.tlink{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--teal);padding-bottom:6px}

/* Split sections */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);border-bottom:1px solid var(--line)}
.split-l{border-right:1px solid var(--line);padding:64px 32px}
.split-l .sticky{position:sticky;top:110px}
.big-num{display:block;font-weight:700;font-size:clamp(80px,9vw,150px);line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--stroke-grey)}
.split-l .lab{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.split-r{padding:64px 32px 80px}
.split-r h2{margin:0 0 32px;font-weight:600;font-size:clamp(28px,3.4vw,52px);line-height:1.15;letter-spacing:-.02em;max-width:900px;text-wrap:balance}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:40px;max-width:900px}
.two-col p,.split-r>p{margin:0 0 18px;font-size:14.5px;line-height:1.85;color:var(--grey);max-width:760px}

/* Section headers */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:32px;flex-wrap:wrap;padding:64px 32px 40px}
.sec-head h2{margin:0;font-weight:700;text-transform:uppercase;font-size:clamp(48px,7.4vw,120px);line-height:.95;letter-spacing:-.03em;color:var(--navy)}
.sec-head .tag{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}

/* Practice accordion */
.practice-row{border-top:1px solid var(--line);cursor:pointer;transition:background .8s ease}
.practice-row .head{display:flex;align-items:baseline;gap:32px;padding:22px 32px}
.practice-row .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;min-width:34px;color:var(--grey-3);transition:color .7s ease}
.practice-row h3{margin:0;font-weight:600;font-size:clamp(22px,2.6vw,38px);line-height:1.1;letter-spacing:-.015em;text-transform:uppercase;color:var(--ink);transition:transform .9s cubic-bezier(.19,1,.22,1),color .8s ease}
.practice-row .arr{margin-left:auto;font-size:18px;color:var(--teal-lt);opacity:0;transition:opacity .7s ease}
.practice-row .body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 1.1s cubic-bezier(.19,1,.22,1)}
.practice-row .body>div{overflow:hidden}
.practice-row .body p{margin:0;padding:0 32px 28px 98px;max-width:820px;font-size:14px;line-height:1.75;color:rgba(255,255,255,.88);opacity:0;transform:translateY(-8px);transition:opacity .6s ease,transform .9s cubic-bezier(.19,1,.22,1)}
.practice-row.active .body p{opacity:1;transform:none;transition-delay:.2s}
.practice-row.active{background:var(--teal)}
.practice-row.active .n{color:var(--teal-pale)}
.practice-row.active h3{color:#fff;transform:translateX(14px)}
.practice-row.active .arr{opacity:1;color:#fff}
.practice-row.active .body{grid-template-rows:1fr}
.row-cta{border-top:1px solid var(--line);padding:22px 32px;text-align:right}

/* Tinted sections */
.tint{background:var(--tint);color:var(--ink);border-bottom:1px solid var(--line)}
.tint .sec-head h2{color:transparent;-webkit-text-stroke:1.5px var(--teal)}
.tint .sec-head .tag{color:var(--grey-2)}
.ind-row{display:flex;align-items:baseline;gap:32px;padding:30px 32px;border-top:1px solid var(--line);color:var(--navy);transition:padding-left .4s cubic-bezier(.19,1,.22,1),color .2s}
.ind-row:hover{color:var(--teal);padding-left:56px}
.ind-row .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--teal);min-width:34px}
.ind-row .t{font-weight:600;font-size:clamp(24px,3.4vw,52px);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase}
.ind-row .m{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-2);text-align:right;max-width:280px}

/* Ticker */
.ticker-wrap{border-top:1px solid var(--line);overflow:hidden;padding:20px 0}
.ticker{display:flex;white-space:nowrap;font-weight:700;text-transform:uppercase;font-size:clamp(28px,3.6vw,54px);letter-spacing:-.01em;color:transparent;-webkit-text-stroke:1px rgba(10,110,130,.4);animation:ticker 30s linear infinite}
.ticker span{padding-right:.6em}
.ticker-cap{margin:14px 32px 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}

/* Linkages */
.linkages{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.linkage{padding:72px 32px}
.linkage:nth-child(odd){border-right:1px solid var(--line)}
.linkage:nth-child(n+3){border-top:1px solid var(--line)}
.linkage h3{margin:0 0 22px;font-weight:600;font-size:clamp(26px,3vw,44px);letter-spacing:-.02em;line-height:1.05}
.linkage p{margin:0 0 26px;max-width:460px;font-size:14px;line-height:1.8;color:var(--grey)}
.linkage .k{margin:0 0 8px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}

/* Partners grid (home) */
.partners-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
/* Our People — team gallery after the partner profiles */
.team-gallery-sec{border-bottom:1px solid var(--line);padding-bottom:72px;background:linear-gradient(180deg,#fff 0,var(--tint) 260px,var(--tint) 100%)}
.team-gallery-sec .sec-head{padding-bottom:36px}
.team-gallery{display:flex;flex-wrap:wrap;justify-content:center;gap:28px 24px;padding:0 32px}
.team-gallery .tg-person{flex:0 0 auto;width:calc((100% - 72px)/4)}
.team-gallery .tg-name{font-size:clamp(17px,1.6vw,22px)}
.tg-item{position:relative;margin:0;overflow:hidden;background:var(--tint-2);box-shadow:0 22px 50px -34px rgba(10,74,88,.55);transition:transform .6s cubic-bezier(.19,1,.22,1),box-shadow .6s ease}
.tg-item img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;transform:scale(1.02);transition:transform 1s cubic-bezier(.19,1,.22,1)}
.tg-item::after{content:"";position:absolute;left:0;bottom:0;z-index:2;height:3px;width:100%;background:linear-gradient(90deg,var(--teal-lt),var(--teal));transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.19,1,.22,1)}
.tg-item:hover{transform:translateY(-6px);box-shadow:0 34px 70px -34px rgba(10,74,88,.65)}
.tg-item:hover img{transform:scale(1.06)}
.tg-item:hover::after{transform:none}
.tg-label{display:flex;align-items:center;justify-content:center;gap:18px;margin:40px 0 0;padding:0 32px;font-family:var(--mono);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--teal)}
.tg-label::before,.tg-label::after{content:"";width:56px;height:1px;background:var(--teal-lt)}
.tg-advisors{display:grid;grid-template-columns:repeat(2,calc((100% - 136px)/4));justify-content:center;gap:24px;margin:56px auto 0;padding:0 32px}
.tg-advisor{min-width:0}
@media (max-width:600px){.tg-advisors{gap:12px;padding:0 20px;margin-top:36px}.tg-name{font-size:17px}.tg-advisor .tg-label{font-size:9.5px;letter-spacing:.16em;gap:0}.tg-advisor .tg-label::before,.tg-advisor .tg-label::after{display:none}}
.tg-advisor .tg-item img{object-position:center 25%}
.tg-name{margin:22px 0 0;text-align:center;font-weight:600;font-size:clamp(22px,2vw,28px);letter-spacing:-.01em;color:var(--navy)}
.tg-advisor .tg-label{margin-top:10px;padding:0}
.tg-person:nth-child(4n+2) .tg-item{transition-delay:.1s}.tg-person:nth-child(4n+3) .tg-item{transition-delay:.2s}.tg-person:nth-child(4n) .tg-item{transition-delay:.3s}
@media (max-width:900px){.team-gallery{gap:16px 14px}.team-gallery .tg-person{width:calc((100% - 42px)/4)}}
@media (max-width:600px){.tg-label{margin-top:24px;font-size:11px}.team-gallery-sec{padding-bottom:40px}.team-gallery{gap:12px;padding:0 20px}.team-gallery .tg-person{width:calc((100% - 12px)/2)}.team-gallery-sec .sec-head{padding-bottom:24px}}
/* stand-in for a partner photo until one is supplied */
.photo-ph{display:flex;align-items:center;justify-content:center;width:100%;height:480px;background:radial-gradient(70% 60% at 50% 38%,rgba(207,232,236,.9),rgba(207,232,236,0) 70%),linear-gradient(160deg,var(--tint) 0%,var(--tint-2) 100%)}
.photo-ph span{font-weight:700;font-size:clamp(90px,9vw,150px);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--teal);transform:translateY(-14%)}
.partner-sec .photo-col .photo-ph{height:calc(100vh - 70px)}
@media (min-width:901px) and (max-width:1199px){.partners-grid{grid-template-columns:repeat(2,1fr)}.partner-card:nth-child(2){border-right:none}.partner-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media (max-width:900px){.partner-sec .photo-col .photo-ph{height:70vh}}
.partner-card{position:relative;display:block;overflow:hidden}
.partner-card:not(:last-child){border-right:1px solid var(--line)}
.partner-card img{display:block;width:100%;height:480px;object-fit:cover;object-position:top;transition:transform .7s cubic-bezier(.19,1,.22,1)}
.partner-card:hover img{transform:scale(1.03)}
.partner-card .cap{position:absolute;left:0;right:0;bottom:0;padding:24px 28px;background:linear-gradient(transparent,rgba(7,88,106,.88));pointer-events:none}
.partner-card .cap .nm{margin:0;font-weight:700;text-transform:uppercase;font-size:clamp(24px,2.4vw,40px);letter-spacing:-.02em;color:#fff;line-height:1}
.partner-card .cap .rl{margin:8px 0 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal-pale)}



/* Awards & recognition */
.awards .sec-head h2{line-height:.9}
.award-list{border-top:1px solid var(--line)}
.award-row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:32px;padding:26px 32px;border-bottom:1px solid var(--line);transition:background .25s,padding-left .35s cubic-bezier(.19,1,.22,1)}
.award-row:hover{background:rgba(10,110,130,.05);padding-left:48px}
.award-row .yr{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--teal)}
.award-row .t h3{margin:0;font-weight:600;font-size:clamp(18px,1.9vw,28px);line-height:1.2;letter-spacing:-.015em;color:var(--navy)}
.award-row .t p{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--grey)}
.award-row .cat{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);border:1px solid var(--stroke-grey);background:#fff;padding:8px 14px;white-space:nowrap}
.award-strip{display:flex;flex-wrap:wrap;align-items:center;gap:14px 36px;padding:24px 32px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
.award-strip .k{color:var(--teal);letter-spacing:.2em}


/* Hotline desks */
.hotline{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}
.hotline .sec-head h2{line-height:.9;color:var(--navy)}
.hotline .sec-head .tag{color:var(--teal)}
.hotline-lede{margin:-8px 0 0;padding:0 32px 48px;max-width:720px;font-size:15px;line-height:1.75;color:var(--grey)}
.desks{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.desk{display:flex;flex-direction:column;padding:44px 32px 48px;border-right:1px solid var(--line);background:linear-gradient(180deg,var(--tint),#fff 70%)}
.desk:last-child{border-right:none}
.desk .k{margin:0 0 22px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.desk h3{margin:0 0 14px;font-weight:650;font-size:clamp(26px,3vw,44px);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy)}
.desk h3 .serif-accent{color:var(--teal)}
.desk .who{margin:0 0 28px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:2;color:var(--grey-2)}
.desk .covers{list-style:none;margin:0 0 36px;padding:0;border-top:1px solid var(--line);flex:1}
.desk .covers li{position:relative;padding:12px 0 12px 26px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--grey)}
.desk .covers li::before{content:"";position:absolute;left:0;top:21px;width:12px;height:1px;background:var(--teal)}
.desk .reach{display:flex;flex-direction:column;gap:12px}
.desk .reach .tel{font-weight:700;font-size:clamp(26px,3vw,40px);letter-spacing:-.02em;line-height:1;color:var(--teal);transition:color .2s}
.desk .reach .tel:hover{color:var(--teal-dk)}
.desk .reach .mail{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);border-bottom:1px solid var(--teal);align-self:flex-start;padding-bottom:5px}
.desk .reach .sla{margin-top:6px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-3)}
.hotline-note{margin:0;padding:20px 32px;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--grey-2);max-width:900px}


/* Hotline Desks pop-up (home) — opens after the logo intro; content cloned from the Hotline Desks section */
html.modal-open{overflow:hidden}
.hl-modal{width:min(1040px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:none;border-top:3px solid var(--teal);background:#fff;color:var(--ink);box-shadow:0 40px 120px -30px rgba(10,74,88,.55);overflow:hidden}
.hl-modal[open]{display:flex;flex-direction:column;animation:hlIn .55s cubic-bezier(.19,1,.22,1)}
.hl-modal::backdrop{background:rgba(10,74,88,.34);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hl-modal[open]::backdrop{animation:fadeIn .4s ease}
@keyframes hlIn{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
.hl-head{flex:none;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:26px 32px 22px;border-bottom:1px solid var(--line);background:linear-gradient(120deg,var(--tint) 0%,#fff 70%)}
.hl-k{margin:0 0 10px;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.hl-k::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(10,110,130,.5);animation:hlPing 1.8s ease-out infinite}
@keyframes hlPing{0%{box-shadow:0 0 0 0 rgba(10,110,130,.5)}100%{box-shadow:0 0 0 10px rgba(10,110,130,0)}}
.hl-head h2{margin:0;font-weight:700;text-transform:uppercase;font-size:clamp(28px,3.6vw,50px);line-height:.95;letter-spacing:-.025em;color:var(--navy)}
.hl-head h2 span{color:transparent;-webkit-text-stroke:1.2px var(--teal)}
.hl-close{flex:none;width:46px;height:46px;border:1px solid var(--teal);background:#fff;color:var(--teal);font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .35s cubic-bezier(.19,1,.22,1)}
.hl-close:hover,.hl-close:focus-visible{background:var(--teal);color:#fff;transform:rotate(90deg);outline:none}
.hl-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.hl-lede{margin:0;padding:22px 32px;max-width:780px;font-size:14.5px;line-height:1.75;color:var(--grey)}
.hl-body .desk{padding:32px 32px 36px}
.hl-body .desk h3{font-size:clamp(22px,2.4vw,32px)}
.hl-body .desk .covers{margin-bottom:28px}
.hl-body .desk .reach .tel{font-size:clamp(22px,2.4vw,32px)}
.hl-note{margin:0;padding:16px 32px 20px;border-top:1px solid var(--line);font-size:12px;line-height:1.65;color:var(--grey-2)}
@media (max-width:600px){
  .hl-modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}
  .hl-head{padding:20px 20px 18px;gap:16px}
  .hl-close{width:42px;height:42px;font-size:24px}
  .hl-lede,.hl-note{padding-left:20px;padding-right:20px}
  .hl-body .desk{padding:26px 20px 30px}
}

/* Insights — listing, rows, featured, article */
.post-list{border-top:1px solid var(--line)}
.post-row{display:grid;grid-template-columns:120px 130px 1fr 40px;gap:32px;align-items:start;padding:30px 32px;border-bottom:1px solid var(--line);color:var(--ink);transition:background .3s,padding-left .4s cubic-bezier(.19,1,.22,1)}
.post-row:hover{background:var(--tint);padding-left:48px}
.post-row .d{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--grey-2);padding-top:6px}
.post-row .c{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);padding-top:7px}
.post-row h3{margin:0 0 8px;font-weight:600;font-size:clamp(18px,1.9vw,26px);line-height:1.25;letter-spacing:-.015em;color:var(--navy);text-wrap:balance;transition:color .2s}
.post-row:hover h3{color:var(--teal)}
.post-row .t p{margin:0 0 10px;max-width:760px;font-size:14px;line-height:1.7;color:var(--grey)}
.post-row .tg{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-3)}
.post-row .arr{justify-self:end;padding-top:2px;font-size:20px;color:var(--teal-lt);opacity:0;transition:opacity .3s}
.post-row:hover .arr{opacity:1}
.post-row.hide{display:none}
.home-insights,.more-posts{border-bottom:1px solid var(--line)}
.home-insights .row-cta,.more-posts .row-cta{border-top:none}
.featured-post{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-bottom:1px solid var(--line)}
.featured-post .fp-img{display:block;overflow:hidden;border-right:1px solid var(--line);background:var(--tint)}
.featured-post .fp-img img{display:block;width:100%;height:100%;min-height:380px;object-fit:cover;transition:filter .6s ease,transform 1.2s cubic-bezier(.19,1,.22,1)}
.featured-post .fp-img:hover img{transform:scale(1.02)}
.featured-post .fp-body{padding:56px 32px 60px;display:flex;flex-direction:column;justify-content:center}
.featured-post .k{margin:0 0 22px;display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.featured-post h2{margin:0 0 18px;font-weight:600;font-size:clamp(26px,3vw,44px);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.featured-post h2 a{color:var(--navy);transition:color .2s}
.featured-post h2 a:hover{color:var(--teal)}
.featured-post p{margin:0 0 16px;max-width:560px;font-size:15px;line-height:1.75;color:var(--grey)}
.featured-post .tg{margin:0 0 30px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-3)}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:28px 32px}
.filters .k{margin-right:14px;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey-3)}
.filter-btn{background:none;border:1px solid var(--line);color:var(--ink);padding:10px 18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.filter-btn:hover{border-color:var(--teal);color:var(--teal)}
.filter-btn.active{background:var(--teal);color:#fff;border-color:var(--teal)}
.filters .count{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-3)}
.post-empty{margin:0;padding:48px 32px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-3);border-top:1px solid var(--line)}
.subscribe-band{background:linear-gradient(120deg,var(--teal-dk) 0%,var(--teal) 100%);color:#fff;padding:90px 32px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:48px;align-items:center}
.subscribe-band h2{margin:0 0 20px;font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.4vw,64px);letter-spacing:-.03em;line-height:1}
.subscribe-band p{margin:0;max-width:520px;font-size:14.5px;line-height:1.8;color:rgba(255,255,255,.85)}
.subscribe-band .kicker,.careers-cta .kicker{color:var(--teal-pale)}
.subscribe-band .sub-actions{display:flex;flex-direction:column;align-items:flex-start;gap:28px;justify-self:end}
.subscribe-band .apply{display:inline-block;background:#fff;color:var(--teal-dk);padding:20px 44px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:background .25s,color .25s}
.subscribe-band .apply:hover{background:var(--tint-2);color:var(--teal-dk)}
.insights-disclaimer{margin:0;padding:20px 32px;font-size:12px;line-height:1.7;color:var(--grey-3);border-bottom:1px solid var(--line)}
/* Article page */
.article-head{padding:170px 32px 56px;border-bottom:1px solid var(--line)}
.article-head .kicker a{color:var(--teal)}
.article-head h1{margin:0;max-width:1100px;font-weight:700;font-size:clamp(34px,5.2vw,84px);line-height:1.02;letter-spacing:-.03em;color:var(--navy);text-wrap:balance}
.article-meta{display:flex;flex-wrap:wrap;gap:16px 48px;margin-top:40px;font-size:13.5px;color:var(--grey)}
.article-meta .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-3);margin-right:8px}
.article .photo-band img{height:clamp(260px,46vh,520px)}
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);border-bottom:1px solid var(--line)}
.article-side{border-right:1px solid var(--line);padding:56px 32px}
.article-side .sticky{position:sticky;top:110px}
.article-side .k{margin:0 0 14px;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.article-side .toc{display:flex;flex-direction:column}
.article-side .toc a{padding:10px 0;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);transition:color .2s,padding-left .3s}
.article-side .toc a:last-child{border-bottom:1px solid var(--line)}
.article-side .toc a:hover{color:var(--teal);padding-left:8px}
.article-body{padding:56px 32px 80px;max-width:820px}
.article-body .lead{margin:0 0 40px;font-size:clamp(17px,1.6vw,21px);line-height:1.6;color:var(--navy);font-weight:500}
.article-body h2{margin:48px 0 18px;font-weight:600;font-size:clamp(20px,2vw,28px);line-height:1.2;letter-spacing:-.015em;color:var(--navy);scroll-margin-top:100px}
.article-body p{margin:0 0 20px;font-size:15.5px;line-height:1.85;color:var(--grey)}
.article-body ul,.article-body ol{margin:0 0 24px;padding-left:22px}
.article-body li{margin:0 0 12px;font-size:15px;line-height:1.75;color:var(--grey)}
.article-body li strong{color:var(--navy);font-weight:600}
.article-body a{color:var(--teal);border-bottom:1px solid var(--teal-lt)}
.article-body .callout{margin:40px 0;padding:28px 32px;background:var(--tint);border-left:3px solid var(--teal);color:var(--ink)}
.article-body .callout .k{margin:0 0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.article-body .callout p{margin:0;color:var(--navy);font-size:16px;line-height:1.6;font-weight:500}
.article-body .disclaimer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:var(--grey-3)}
.article-foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:40px}


/* Suit Up — client portal */
.su-cta{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:36px}
.su-hero .lede strong{color:var(--navy);font-weight:600}
.su-showcase{padding:0 32px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff 0,#fff 120px,var(--tint) 120px,var(--tint) 100%)}
.su-stage{max-width:1200px;margin:0 auto;padding:56px 0 0}
.su-caption{margin:0;padding:16px 0 20px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-3)}
/* Suit Up screenshots (images/suitup-*.png — real screens of the web app) */
.su-shot{background:#fff;border:1px solid var(--line);box-shadow:0 30px 80px -30px rgba(10,74,88,.28);overflow:hidden}
.su-chrome{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--tint);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10.5px;color:var(--grey-2)}
.su-chrome .dots{display:flex;gap:6px}.su-chrome .dots i{width:9px;height:9px;border-radius:50%;background:#D5DADB;display:block}
.su-chrome .url{flex:1;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:6px 12px;color:var(--grey)}
.su-chrome .url .ico{color:var(--teal)}
.su-chrome .badge{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);border:1px solid var(--teal-lt);padding:4px 8px}
.su-shot img{display:block;width:100%;height:auto;background:#F7F9FA}
/* cropped detail of a screenshot, used inside the feature sections */
.su-crop{margin:36px 0 0;max-width:760px;position:relative;background:#fff;border:1px solid var(--line);box-shadow:0 24px 60px -30px rgba(10,74,88,.28);overflow:hidden}
.su-crop img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:left top;background:#F7F9FA}
.su-crop.right img{object-position:right top}
.su-crop.board img{object-position:56% top}
.su-crop.center img{object-position:center top}
.su-crop .cap{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:14px;padding:8px 12px;background:rgba(255,255,255,.94);border:1px solid var(--line);color:var(--ink);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;pointer-events:none}
.su-crop .cap .n{color:var(--teal)}
.su-live-grid .su-crop{margin-top:8px;max-width:none}
.su-live-grid .su-crop img{aspect-ratio:4/5}
/* page sections */
.su-list{list-style:none;margin:28px 0 0;padding:0;max-width:760px;border-top:1px solid var(--line)}
.su-list li{position:relative;padding:12px 0 12px 26px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--grey)}
.su-list li::before{content:"";position:absolute;left:0;top:21px;width:12px;height:1px;background:var(--teal)}
.su-live-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:48px;align-items:start}
.su-security .sec-head h2{line-height:.9}
.su-sec-lede{margin:-8px 0 0;padding:0 32px 48px;max-width:760px;font-size:15px;line-height:1.75;color:var(--grey)}
.su-sec-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.su-sec-grid .cell{padding:36px 32px 40px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.su-sec-grid .cell:nth-child(3n){border-right:none}
.su-sec-grid .n{display:block;margin-bottom:18px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--teal)}
.su-sec-grid h3{margin:0 0 12px;font-weight:600;font-size:clamp(18px,1.7vw,24px);line-height:1.2;letter-spacing:-.015em;color:var(--navy)}
.su-sec-grid p{margin:0;font-size:13.5px;line-height:1.7;color:var(--grey)}
.su-steps{border-bottom:1px solid var(--line)}
.su-steps .sec-head h2{line-height:.9}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.step{padding:40px 32px 48px;border-right:1px solid var(--line)}.step:last-child{border-right:none}
.step .n{display:block;margin-bottom:22px;font-weight:700;font-size:clamp(44px,5vw,80px);line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--stroke-grey)}
.step h3{margin:0 0 12px;font-weight:600;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.015em;color:var(--navy)}
.step p{margin:0;font-size:14px;line-height:1.75;color:var(--grey);max-width:360px}
.cta-band .su-cta{margin-top:0}
/* home */
.su-home{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff 0,#fff 160px,var(--tint) 160px,var(--tint) 100%)}
.su-home-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:48px;align-items:center;padding:0 32px 72px}
.su-home .su-stage{padding:0;max-width:none}
.su-home-copy .k{margin:0 0 14px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.su-home-copy h3{margin:0 0 20px;font-weight:600;font-size:clamp(26px,3vw,44px);line-height:1.12;letter-spacing:-.02em;color:var(--navy);text-wrap:balance}
.su-home-copy>p{margin:0;font-size:14.5px;line-height:1.85;color:var(--grey);max-width:520px}
.su-home-copy .su-list{margin-top:24px}


/* Carousel component */
.carousel{position:relative;--pv:1;--gap:0px}
.carousel-track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;outline:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track:focus-visible{box-shadow:inset 0 0 0 2px var(--teal)}
.carousel .slide{flex:0 0 calc((100% - (var(--pv) - 1)*var(--gap))/var(--pv));scroll-snap-align:start;min-width:0}
.carousel-ui{display:flex;align-items:center;gap:14px;padding:14px 32px;border-top:1px solid var(--line);flex-wrap:wrap}
.c-btn{width:40px;height:40px;border:1px solid var(--teal);background:none;color:var(--teal);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,opacity .2s}
.c-btn:hover{background:var(--teal);color:#fff}
.c-btn[disabled]{opacity:.25;cursor:default}.c-btn[disabled]:hover{background:none;color:var(--teal)}
.carousel .dots{display:flex;gap:8px;flex-wrap:wrap;max-width:100%}
.carousel .dots button{width:22px;height:2px;padding:0;border:none;background:var(--stroke-grey);cursor:pointer;transition:background .2s,width .3s}
.carousel .dots button.active{background:var(--teal);width:36px}
.carousel .counter{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--grey-3)}
@media (prefers-reduced-motion:reduce){.carousel-track{scroll-behavior:auto}}
/* photo carousel = photo band with controls overlaid */
.photo-carousel{border-bottom:1px solid var(--line);background:var(--tint)}
.photo-carousel .slide{margin:0;position:relative;overflow:hidden}
.photo-carousel .slide img{display:block;width:100%;height:clamp(300px,58vh,640px);object-fit:cover;transition:filter .6s ease}
.photo-carousel .slide .cap{position:absolute;left:32px;bottom:28px;display:flex;align-items:center;gap:14px;padding:10px 14px;background:rgba(255,255,255,.94);color:var(--ink);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;pointer-events:none}
.photo-carousel .slide .cap .n{color:var(--teal)}
.photo-carousel .carousel-ui{position:absolute;right:32px;bottom:24px;padding:0;border:none;background:rgba(255,255,255,.94);padding:8px 10px}
.photo-carousel .c-btn{width:34px;height:34px}
.photo-carousel .dots button{background:rgba(10,110,130,.25)}.photo-carousel .dots button.active{background:var(--teal)}
.photo-carousel .counter{color:var(--grey-2);margin-left:6px}
.photo-carousel.inline{margin:36px 0 0;max-width:760px;border-bottom:none}
.photo-carousel.inline .slide img{height:auto;aspect-ratio:16/9}
.photo-carousel.inline .slide .cap{left:16px;bottom:16px}
.photo-carousel.inline .carousel-ui{right:16px;bottom:14px}
/* deals carousel */
.deals-carousel .carousel-track.deals{display:flex;grid-template-columns:none;--gap:0px}
.deals-carousel{--pv:3}
.deals-carousel .deal{border-right:1px solid var(--line);border-bottom:none}
.deals-carousel .carousel-ui{border-top:1px solid var(--line)}
/* jurisdictions carousel (about) */
.juris-carousel{margin-top:36px;max-width:900px;--pv:2;--gap:16px;border-top:1px solid var(--line);padding-top:16px}
.j-card{border:1px solid var(--line);padding:26px 26px 28px;min-height:100%}
.j-card .n{display:block;margin-bottom:16px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--teal)}
.j-card h3{margin:0 0 10px;font-weight:600;font-size:clamp(18px,1.7vw,24px);letter-spacing:-.015em;color:var(--navy)}
.j-card p{margin:0;font-size:13.5px;line-height:1.7;color:var(--grey)}
.juris-carousel .carousel-ui{padding:14px 0 0;margin-top:16px}
/* practice quick-nav carousel */
.practice-carousel{--pv:4;border-bottom:1px solid var(--line)}
.area[id]{scroll-margin-top:80px}
.p-card{display:flex;flex-direction:column;gap:18px;padding:30px 32px 26px;border-right:1px solid var(--line);color:var(--navy);transition:background .25s,color .25s}
.p-card:hover{background:var(--teal);color:#fff}
.p-card .n{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--teal)}
.p-card .t{font-weight:600;font-size:clamp(16px,1.4vw,20px);line-height:1.2;letter-spacing:-.01em;text-transform:uppercase;min-height:2.4em}
.p-card .arr{color:var(--teal);font-size:16px}
.p-card:hover .n,.p-card:hover .arr{color:var(--teal-pale)}
/* featured insights carousel */
.featured-wrap{border-bottom:1px solid var(--line)}
.featured-carousel .slide.featured-post{border-bottom:none}
/* suit up carousel */
.su-carousel{max-width:1200px;margin:0 auto;padding:56px 0 0;--pv:1;--gap:32px}
.su-slide-k{margin:0 0 14px;display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}
.su-slide-k span{color:var(--teal)}
.su-carousel .carousel-ui{padding:14px 0 0;border-top:none}
@media (max-width:900px){
  .deals-carousel,.practice-carousel{--pv:2}
  .juris-carousel{--pv:1}
}
@media (max-width:600px){
  .deals-carousel,.practice-carousel{--pv:1}
  .carousel-ui{padding:12px 20px}
  .photo-carousel .slide .cap{left:20px;bottom:20px}
  .photo-carousel .carousel-ui{right:12px;bottom:12px}
  .carousel .dots{display:none}
  .p-card{border-right:none}
}


/* Hero carousel (crossfade background) */
.has-slides{position:relative;isolation:isolate;overflow:hidden;color:var(--ink)}
.hero-slides{position:absolute;inset:0;z-index:-1;background:var(--tint)}
.hero-slides .hs{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.hero-slides .hs.active{opacity:1}
.hero-slides .hs img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(.88) brightness(1.06);transform:scale(1.06);transition:transform 9s linear}
.hero-slides .hs.active img{transform:scale(1)}
/* teal duotone on the photo, then a light-to-teal veil (text side stays light) */
.hero-slides::before{content:"";position:absolute;inset:0;z-index:1;background:#0A6E82;mix-blend-mode:color;opacity:.75;pointer-events:none}
.hero-slides::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(244,249,250,.91) 42%,rgba(214,236,240,.62) 66%,rgba(10,110,130,.16) 100%),linear-gradient(0deg,rgba(10,110,130,.1),rgba(10,110,130,0) 40%)}
.hero-ui{position:absolute;z-index:2;top:96px;right:32px;display:flex;align-items:center;gap:12px;padding:8px 10px;background:rgba(255,255,255,.88);border:1px solid var(--line);backdrop-filter:blur(6px)}
.hero-ui .c-btn{width:34px;height:34px}
.hero-ui .dots{display:flex;gap:8px}
.hero-ui .dots button{width:22px;height:2px;padding:0;border:none;background:rgba(10,110,130,.25);cursor:pointer;transition:background .2s,width .3s}
.hero-ui .dots button.active{background:var(--teal);width:36px}
.hero-ui .counter{margin-left:6px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--grey-2)}
/* Hero slide 2 — animated world map (jurisdictions); replays each time the slide becomes active */
.hero-slides .hs.map{z-index:2;background:radial-gradient(60% 70% at 72% 45%,rgba(207,232,236,.75),rgba(207,232,236,0) 70%),linear-gradient(90deg,#fff 0%,#F6FAFB 38%,#E6F1F3 100%)}
.wm{position:absolute;top:50%;right:96px;width:min(62vw,1020px);aspect-ratio:2/1;transform:translateY(-30%)}
.wm-dots,.wm-lines{position:absolute;inset:0;width:100%;height:100%}
.wm-dots{opacity:.32}
.wm-lines{overflow:visible}
.wm-arc{fill:none;stroke:var(--teal);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.75}
.wm-pkt{fill:none;stroke:var(--teal);stroke-width:3;stroke-linecap:round;stroke-dasharray:.035 .965;stroke-dashoffset:1;opacity:0}
.wm-pt .wm-dot,.wm-hub .wm-dot{fill:var(--teal);stroke:#fff;stroke-width:2}
.wm-hub .wm-dot{fill:var(--navy)}
.wm-ring{fill:none;stroke:var(--teal);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.wm-pt,.wm-hub{transform-box:fill-box;transform-origin:center}
.wm-lines text{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;fill:var(--navy);paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:3px}
.wm-hub .hub-l{font-family:var(--sans);font-size:15px;font-weight:700;letter-spacing:.06em}
.wm-hub .hub-s{font-size:10px;fill:var(--teal)}
.hs.map.active .wm-dots{animation:wmFade 1.4s ease both}
.hs.map.active .wm-glow{animation:wmFade 1.6s ease .2s both}
.hs.map.active .wm-hub{animation:wmPop .7s cubic-bezier(.19,1,.22,1) .3s both}
.hs.map.active .wm-hub .wm-ring{animation:wmPulse 2.4s ease-out 1s infinite}
.hs.map.active .wm-hub .wm-ring.r2{animation-delay:2.2s}
.hs.map.active .wm-arc{animation:wmDraw 1.1s cubic-bezier(.65,0,.35,1) calc(.6s + var(--i)*.18s) both}
.hs.map.active .wm-pt{animation:wmPop .6s cubic-bezier(.19,1,.22,1) calc(1.5s + var(--i)*.18s) both}
.hs.map.active .wm-pt .wm-ring{animation:wmPulse 2.8s ease-out calc(2.3s + var(--i)*.25s) infinite}
.hs.map.active .wm-pkt{animation:wmTravel 3.2s linear calc(2.2s + var(--i)*.4s) infinite}
@keyframes wmFade{from{opacity:0}}
@keyframes wmDraw{from{stroke-dashoffset:1}}
@keyframes wmPop{from{opacity:0;transform:scale(.3)}}
@keyframes wmPulse{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
@keyframes wmTravel{0%{stroke-dashoffset:1;opacity:1}85%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@media (max-width:900px){.wm{right:-6%;width:120vw;top:auto;bottom:6%;transform:none;opacity:.55}.wm-lines text{display:none}}
/* text on top of the slides (light veil, dark teal text) */
.page-hero.has-slides{min-height:min(72vh,720px);display:flex;flex-direction:column;justify-content:flex-end}
.page-hero.has-slides .lede strong{color:var(--navy)}
@media (max-width:900px){.hero-slides::after{background:linear-gradient(180deg,rgba(241,248,249,.88),rgba(232,243,245,.94))}}
.page-hero.has-slides[style*="display:flex"]{flex-direction:row;align-items:flex-end}
.page-hero[style*="display:flex"] h1{font-size:clamp(30px,calc((100cqw - 500px)/5.0),160px)}
@media (prefers-reduced-motion:reduce){.hero-slides .hs{transition:none}.hero-slides .hs img{transform:none;transition:none}}
@media (max-width:900px){.hero.has-slides .hero-ui{top:auto;bottom:16px;right:20px}.hero.has-slides .hero-foot{padding-bottom:78px}}
@media (max-width:600px){.hero-ui{top:88px;right:20px;gap:8px}.hero-ui .dots{display:none}.page-hero.has-slides{min-height:0}}


/* Page index — "on this page" navigation built from [data-index] sections,
   highlights the section in view. Fixed right column on desktop, bottom pill on mobile. */
[data-index]{scroll-margin-top:var(--hdr)}
.site-index{--si-text:var(--grey-2);--si-muted:var(--grey-3);--si-active:var(--navy);--si-accent:var(--teal);--si-track:var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;transition:opacity .8s ease,visibility .8s,background .35s ease,border-color .35s ease}
.si-t{margin:0 0 18px;color:var(--si-accent)}
.si-t span{color:var(--si-muted)}
.si-track{position:relative;border-left:1px solid var(--si-track);transition:border-color .35s ease}
/* progress: fills the track down to the section in view */
.si-progress{position:absolute;left:-1px;top:0;width:1px;height:0;background:linear-gradient(180deg,transparent,var(--si-accent));opacity:.55;transition:height .6s cubic-bezier(.19,1,.22,1)}
/* active marker: glowing bar + soft band behind the item + pulsing dot */
.si-marker{position:absolute;left:-2px;top:0;width:3px;height:0;border-radius:3px;
  background:linear-gradient(180deg,var(--teal-lt),var(--si-accent));box-shadow:0 0 12px rgba(10,110,130,.35);
  transition:transform .55s cubic-bezier(.19,1,.22,1),height .3s ease}
.si-marker::before{content:"";position:absolute;left:3px;top:0;bottom:0;width:176px;pointer-events:none;
  background:linear-gradient(90deg,rgba(10,110,130,.11),rgba(10,110,130,0) 85%)}
.si-marker::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
  background:var(--si-accent);box-shadow:0 0 0 0 rgba(10,110,130,.45)}
.si-marker.pulse::after{animation:siPulse 1.1s ease-out}
.si-marker.pulse{animation:siStretch .55s cubic-bezier(.19,1,.22,1)}
@keyframes siPulse{0%{box-shadow:0 0 0 0 rgba(10,110,130,.5);transform:scale(1.35)}100%{box-shadow:0 0 0 9px rgba(10,110,130,0);transform:scale(1)}}
@keyframes siStretch{0%{scale:1 1.6}100%{scale:1 1}}
.si-list{list-style:none;margin:0;padding:0}
.si-list a{position:relative;display:flex;gap:10px;padding:7px 0 7px 14px;line-height:1.45;color:var(--si-text);transition:color .25s ease,transform .45s cubic-bezier(.19,1,.22,1),letter-spacing .45s ease}
.si-list a .n{flex:none;color:var(--si-muted);transition:color .25s ease}
.si-list a:hover{color:var(--si-accent);transform:translateX(2px)}
.si-list a.active{color:var(--si-active);font-weight:600;transform:translateX(6px);letter-spacing:.12em}
.si-list a.active .n{color:var(--si-accent)}
.si-toggle{display:none}
@media (min-width:901px){
  body.has-rail main > *,
  body.has-rail > .site-footer{padding-right:96px}
  body.has-rail .has-slides .hero-ui{right:112px}
  .site-index{position:fixed;right:34px;top:50%;z-index:50;transform:translateY(-50%);max-height:calc(100vh - var(--hdr) - 48px);padding:0;background:none;border:none}
  .si-t{display:none}
  .si-track{border-left:none}
  /* the rail line through the dots */
  .si-track::before{content:"";position:absolute;right:4px;top:14px;bottom:14px;width:1px;background:var(--si-track)}
  .si-progress{left:auto;right:4px;top:0;background:linear-gradient(180deg,transparent,var(--si-accent));opacity:.8}
  .si-list a{justify-content:flex-end;align-items:center;gap:14px;padding:8px 0}
  .si-list a .n{display:none}
  .si-list a .l{padding:4px 10px;border-radius:2px;background:var(--si-pill);white-space:nowrap;opacity:0;transform:translateX(8px);transition:opacity .3s ease,transform .45s cubic-bezier(.19,1,.22,1),color .25s}
  .si-list a::after{content:"";flex:none;width:9px;height:9px;border-radius:50%;border:1px solid var(--si-dot);background:var(--si-dot-bg);transition:background .3s,border-color .3s,transform .3s}
  .si-list a:hover{transform:none}
  .si-list a:hover::after{border-color:var(--si-accent);transform:scale(1.25)}
  .si-list a.active{transform:none;letter-spacing:.1em}
  .si-list a.active::after{background:var(--si-accent);border-color:var(--si-accent)}
  .si-list a.active .l,.site-index:hover .si-list a .l,.site-index:focus-within .si-list a .l{opacity:1;transform:none}
  /* sliding ring around the active dot */
  .si-marker{left:auto;right:-4px;width:17px;background:none;box-shadow:none;border-radius:0}
  .si-marker::before{display:none}
  .si-marker::after{left:auto;right:0;width:17px;height:17px;margin:-8.5px 0 0;background:transparent;border:1px solid var(--si-accent)}
  .si-marker.pulse{animation:none}
  .site-index{--si-pill:rgba(255,255,255,.88);--si-dot:var(--stroke-grey);--si-dot-bg:#fff}
  /* over teal bands */
  .site-index.on-dark{--si-text:rgba(255,255,255,.78);--si-muted:rgba(255,255,255,.5);--si-active:#fff;--si-accent:#fff;--si-track:rgba(255,255,255,.35);--si-pill:rgba(7,88,106,.55);--si-dot:rgba(255,255,255,.6);--si-dot-bg:transparent}
}
@media (min-width:901px) and (max-height:760px){
  .si-list a{padding-top:5px;padding-bottom:5px}
}
@media (max-width:900px){
  .site-index{position:fixed;left:50%;bottom:14px;z-index:55;width:min(380px,calc(100vw - 28px));
    transform:translate(-50%,calc(100% + 30px));transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .8s ease,visibility .8s}
  .site-index.show{transform:translate(-50%,0)}
  .si-panel{display:none;max-height:min(60vh,460px);overflow-y:auto;padding:18px 18px 10px;background:#fff;border:1px solid var(--line);border-bottom:none;box-shadow:0 -18px 40px -24px rgba(10,74,88,.35)}
  .site-index.open .si-panel{display:block}
  .si-toggle{display:flex;align-items:center;gap:12px;width:100%;padding:13px 16px;border:none;background:var(--teal);color:#fff;font:inherit;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;box-shadow:0 14px 30px -14px rgba(10,74,88,.6)}
  .si-toggle{position:relative}
  .si-toggle::before{content:"";position:absolute;left:0;top:0;height:2px;width:var(--si-pct,0%);background:var(--teal-pale);transition:width .3s ease}
  .si-toggle .k{color:var(--teal-pale)}
  .si-toggle .cur{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .si-toggle .ic{transition:transform .3s ease}
  .site-index.open .si-toggle .ic{transform:rotate(180deg)}
}


@media (max-width:600px){
  .gate .panel-head{padding:14px 20px;font-size:9px;letter-spacing:.14em}
  .gate .panel-head .r{display:none}
  .gate .panel-body{padding:22px 20px;font-size:13px;line-height:1.75}
  .gate .panel-body h2{font-size:21px;margin-bottom:16px}
  .gate .panel-foot button{padding:16px 8px;font-size:10.5px;letter-spacing:.12em}
}
@media (max-height:620px){
  .gate .panel-body{padding-top:20px;padding-bottom:20px}
  .gate .panel-body h2{font-size:20px;margin-bottom:14px}
  .gate .panel-foot button{padding:14px 12px}
}


@media (max-width:480px){
  .sec-head h2{font-size:clamp(30px,9.5vw,120px)}
  .practice-row .head{gap:14px}
  .practice-row .n{min-width:26px}
  .practice-row h3{font-size:19px}
  .practice-row .body p{padding-left:20px}
  .ind-row{flex-wrap:wrap;gap:8px 14px;padding-top:22px;padding-bottom:22px}
  .ind-row .t{font-size:21px}
  .ind-row .m{margin-left:0;flex:1 0 100%;max-width:none;text-align:left}
  .value-row{gap:10px 14px}
  .award-row{gap:10px 14px}
  .post-row{gap:10px 14px}
}

/* Photography */
.photo-band{margin:0;position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:var(--tint)}
.photo-band img{display:block;width:100%;height:clamp(300px,58vh,640px);object-fit:cover;transition:filter .6s ease,transform 1.2s cubic-bezier(.19,1,.22,1)}
.photo-band:hover img{transform:scale(1.02)}
.photo-band .cap{position:absolute;left:32px;bottom:28px;display:flex;align-items:center;gap:14px;padding:10px 14px;background:rgba(255,255,255,.94);color:var(--ink);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;pointer-events:none}
.photo-band .cap .n{color:var(--teal)}
.photo-band.tall img{height:clamp(360px,72vh,760px)}
.photo-inline{margin:44px 0 0;max-width:900px;position:relative;overflow:hidden}
.photo-inline img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:filter .6s ease}
.photo-inline .cap{margin:12px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}
.area-r .photo-inline{margin-top:36px;max-width:760px}
.contact-grid .office-photo{border-bottom:1px solid var(--line);overflow:hidden}
.contact-grid .office-photo img{display:block;width:100%;height:280px;object-fit:cover;transition:filter .6s ease}


/* Deal corner */
.deal-corner{border-bottom:1px solid var(--line)}
.deal-corner .sec-head h2{line-height:.9}
.deals{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.deal{display:flex;flex-direction:column;gap:14px;padding:36px 32px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s ease}
.deal:nth-child(3n){border-right:none}
.deal .k{margin:0;display:flex;justify-content:space-between;gap:16px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.deal h3{margin:6px 0 0;font-weight:600;font-size:clamp(20px,1.8vw,26px);line-height:1.2;letter-spacing:-.015em;color:var(--navy);text-wrap:balance}
.deal p{margin:0;font-size:14px;line-height:1.75;color:var(--grey);flex:1}
.deal .role{flex:0;margin-top:10px;padding-top:14px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-2)}
.deal .more{flex:0;align-self:flex-start;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);border-bottom:1px solid var(--teal-lt);padding-bottom:4px}
.deal:hover .more{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
/* Deal Corner page — one full mandate per row */
.deal-list{border-top:1px solid var(--line)}
.deal-corner .more-head{border-top:1px solid var(--line)}
.deal-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);border-bottom:1px solid var(--line)}
.deal-item:nth-child(even){background:var(--tint)}
.deal-item[id]{scroll-margin-top:var(--hdr)}
.di-meta{padding:52px 32px;border-right:1px solid var(--line)}
.di-meta .sticky{position:sticky;top:calc(var(--hdr) + 24px)}
.di-meta .n{display:block;margin-bottom:24px;font-weight:700;font-size:clamp(56px,6vw,96px);line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--stroke-grey)}
.di-meta .k{margin:0 0 6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.di-meta .sec{margin:0 0 24px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-2)}
.di-meta .client{margin:0;padding-top:16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-3)}
.di-meta .client strong{display:block;margin-top:8px;font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.35;text-transform:none;color:var(--navy)}
.di-body{padding:52px 32px 60px;max-width:900px}
.di-body h3{margin:0 0 24px;font-weight:600;font-size:clamp(24px,2.6vw,38px);line-height:1.15;letter-spacing:-.02em;color:var(--navy);text-wrap:balance}
.di-body p{margin:0 0 16px;font-size:15px;line-height:1.85;color:var(--grey)}
.di-body .di-team{margin:28px 0 20px;padding:18px 22px;border-left:3px solid var(--teal);background:rgba(10,110,130,.06);font-size:14.5px;line-height:1.75;color:var(--ink)}
.di-body .di-team span{display:block;margin-bottom:6px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.di-body .di-close{margin:0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--teal)}
@media (max-width:900px){.deal-item{grid-template-columns:minmax(0,1fr)}.di-meta{border-right:none;border-bottom:1px solid var(--line);padding-bottom:32px}.di-meta .sticky{position:static}.di-meta .n{font-size:56px;margin-bottom:16px}}
@media (max-width:600px){.di-meta,.di-body{padding-left:20px;padding-right:20px}.di-body{padding-top:36px;padding-bottom:44px}}
.deal:hover{background:var(--teal)}
.deal:hover h3,.deal:hover p{color:#fff}
.deal:hover .k{color:var(--teal-pale)}
.deal:hover .role{color:rgba(255,255,255,.75);border-top-color:var(--line-dk)}
.deal-corner .row-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;border-top:none;text-align:left}
.deal-note{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-3)}

/* CTA band */
.cta-band{padding:90px 32px;display:flex;justify-content:space-between;align-items:center;gap:48px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.cta-band h2{margin:0;font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.4vw,64px);letter-spacing:-.03em;line-height:1;max-width:820px;color:var(--navy)}
.cta-band.teal{background:linear-gradient(120deg,var(--teal-dk) 0%,var(--teal) 100%);color:#fff;border-bottom:none}
.cta-band.teal h2{color:#fff}

/* Contact big */
.contact-big{padding:110px 32px 90px;border-bottom:1px solid var(--line)}
.contact-big .big{display:block;font-weight:700;text-transform:uppercase;font-size:clamp(56px,10vw,168px);line-height:.95;letter-spacing:-.03em;color:var(--navy)}
.contact-big .big .o{color:transparent;-webkit-text-stroke:1.5px var(--teal)}
.contact-links{display:flex;gap:48px;flex-wrap:wrap;margin-top:40px;font-family:var(--mono);font-size:12px;letter-spacing:.12em}
.contact-links a{color:var(--ink);border-bottom:1px solid var(--teal);padding-bottom:5px}
.contact-links a.plain{color:var(--grey-2);border-bottom:none}

/* Values / list rows */
.value-row{display:grid;grid-template-columns:100px minmax(0,1fr) minmax(0,2fr);gap:32px;align-items:baseline;padding:30px 32px;border-top:1px solid var(--line);transition:background .3s,padding-left .4s cubic-bezier(.19,1,.22,1)}
.value-row:hover{background:var(--tint);padding-left:56px}
.value-row .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--teal)}
.value-row h3{margin:0;font-weight:600;font-size:clamp(20px,2.2vw,30px);letter-spacing:-.015em;text-transform:uppercase}
.value-row p{margin:0;font-size:14px;line-height:1.75;color:var(--grey);max-width:640px}

/* Sector list */
.sector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));border-top:1px solid var(--line);max-width:900px}
.sector-grid .cell{display:flex;align-items:baseline;gap:16px;padding:16px 4px;border-bottom:1px solid var(--line)}
.sector-grid .cell .n{font-family:var(--mono);font-size:10px;color:var(--grey-3)}
.sector-grid .cell .t{font-size:14px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--navy)}

/* Practice detail sections */
.area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);border-bottom:1px solid var(--line)}
.area-l{border-right:1px solid var(--line);padding:56px 32px}
.area-l .sticky{position:sticky;top:110px}
.area-l h2{margin:16px 0 0;font-weight:600;font-size:clamp(24px,2.4vw,36px);line-height:1.1;letter-spacing:-.015em;text-transform:uppercase;color:var(--navy);text-wrap:balance}
.area-r{padding:56px 32px 64px}
.area-r p.body{margin:0 0 28px;max-width:760px;font-size:15px;line-height:1.85;color:var(--grey)}
.area-r p.tags{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;line-height:2.3;color:var(--teal)}
.area.tint{background:var(--tint)}
.area.tint .big-num{-webkit-text-stroke-color:var(--teal-lt)}

/* Team page */
.partner-sec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);border-bottom:1px solid var(--line)}
.partner-sec .photo-col{border-right:1px solid var(--line)}
.partner-sec .photo-col .sticky{position:sticky;top:70px}
.partner-sec .photo-col img{display:block;width:100%;height:calc(100vh - 70px);object-fit:cover;object-position:top}
.partner-sec .info{padding:64px 32px 84px}
.partner-sec .info .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--teal)}
.partner-sec .info h2{margin:12px 0 6px;font-weight:700;text-transform:uppercase;font-size:clamp(34px,4.4vw,68px);line-height:.98;letter-spacing:-.025em;color:var(--navy)}
.partner-sec .info .role{margin:0 0 36px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--grey-2)}
.partner-sec .info p.bio{margin:0 0 18px;max-width:680px;font-size:14.5px;line-height:1.85;color:var(--grey)}
.spec-row{border-top:1px solid var(--line);padding:22px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,2.4fr);gap:24px}
.spec-row:last-child{border-bottom:1px solid var(--line)}
.spec-row .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.spec-row p{margin:0 0 6px;font-size:13.5px;line-height:1.65}
.spec-row p.mono-list{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;line-height:2.2;color:var(--navy)}

/* Careers dark CTA */
.careers-cta{background:linear-gradient(120deg,var(--teal-dk) 0%,var(--teal) 100%);color:#fff;padding:110px 32px}
.careers-cta h2{margin:0 0 28px;max-width:1100px;font-weight:700;text-transform:uppercase;font-size:clamp(30px,4.6vw,68px);line-height:1;letter-spacing:-.025em}
.careers-cta p{margin:0 0 44px;max-width:620px;font-size:14.5px;line-height:1.8;color:rgba(255,255,255,.85)}
.careers-cta .apply{display:inline-block;background:#fff;color:var(--teal-dk);padding:20px 44px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:background .25s,color .25s}
.careers-cta .apply:hover{background:var(--tint-2);color:var(--teal-dk)}

/* Vision band */
.vision{background:linear-gradient(120deg,var(--teal-dk) 0%,var(--teal) 100%);color:#fff;padding:110px 32px}
.vision .k{margin:0 0 24px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--teal-pale)}
.vision h2{margin:0;max-width:1200px;font-weight:600;font-size:clamp(28px,4.2vw,64px);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--line)}
.contact-grid .col-l{border-right:1px solid var(--line)}
.office{padding:48px 32px;border-bottom:1px solid var(--line)}
.office:last-child{border-bottom:none}
.office .k{margin:0 0 12px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.office .addr{margin:0 0 20px;font-weight:600;font-size:clamp(20px,2vw,28px);line-height:1.35;letter-spacing:-.01em;color:var(--navy)}
.office p.small{margin:0;font-size:14px;line-height:2;color:var(--grey)}
.form-col{padding:48px 32px 64px}
.form-col .hint{margin:0 0 36px;font-size:13px;line-height:1.7;color:var(--grey-2)}
.form-col form{display:flex;flex-direction:column;gap:24px}
.form-col label{display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}
.form-col input,.form-col textarea{border:none;border-bottom:1px solid var(--stroke-grey);background:transparent;padding:10px 0;font-size:16px;font-family:var(--sans);color:var(--ink);outline:none;border-radius:0}
.form-col input:focus,.form-col textarea:focus{border-bottom-color:var(--teal)}
.form-col button{align-self:flex-start;background:var(--teal);color:#fff;border:none;padding:18px 40px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .25s}
.form-col button:hover{background:var(--teal-dk)}

/* Footer */
.site-footer{background:var(--tint);color:var(--grey);border-top:3px solid var(--teal)}
.site-footer .mast{padding:90px 32px 40px;border-bottom:1px solid var(--line);container-type:inline-size}
.site-footer .mast .wordmark{margin:0;font-weight:650;font-size:clamp(64px,11vw,190px);font-size:clamp(28px,calc((100cqw - 72px)/7.1),190px);line-height:.95;letter-spacing:-.03em;color:var(--navy);text-transform:uppercase}
.site-footer .mast .wordmark em{font-style:normal;color:var(--teal)}
.site-footer .mast .sub{margin:20px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-2)}
.site-footer .cols{display:grid;grid-template-columns:1.6fr 1fr 1.4fr;border-bottom:1px solid var(--line)}
.site-footer .cols>div,.site-footer .cols>nav{padding:40px 32px}
.site-footer .cols .about-col{border-right:1px solid var(--line)}
.site-footer .cols .about-col p{margin:0;max-width:420px;font-size:13.5px;line-height:1.8}
.site-footer .cols nav{border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.site-footer .cols nav a,.site-footer a{color:var(--ink)}
.site-footer .cols nav a[aria-current="page"]{color:var(--teal)}
.site-footer a:hover{color:var(--teal)}
.site-footer .offices{font-size:13px;line-height:1.75}
.site-footer .offices .k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.site-footer .offices p{margin:0 0 16px}
.site-footer .legal{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:22px 32px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--grey-2)}
.site-footer .legal a{color:var(--grey)}
.site-footer .legal .links{display:flex;gap:28px;flex-wrap:wrap}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s cubic-bezier(.19,1,.22,1),transform .9s cubic-bezier(.19,1,.22,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.fade-in{opacity:1}.hero .line>span{transform:none}}

@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes mk{to{transform:none}}
@keyframes rv{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Responsive */
@media (max-width:900px){
  .split,.area,.partner-sec,.contact-grid,.linkages,.partners-grid{grid-template-columns:minmax(0,1fr)}
  .deals{grid-template-columns:1fr 1fr}
  .su-home-grid,.su-live-grid{grid-template-columns:minmax(0,1fr)}
  .su-sec-grid,.steps-grid{grid-template-columns:1fr 1fr}
  .su-sec-grid .cell:nth-child(3n){border-right:1px solid var(--line)}
  .su-sec-grid .cell:nth-child(2n),.step:nth-child(2n){border-right:none}
  .step{border-bottom:1px solid var(--line)}
  .su-live-grid .su-crop img{aspect-ratio:3/2}
  .post-row{grid-template-columns:100px 1fr 32px;gap:12px 20px}
  .post-row .t{grid-column:1/3}
  .post-row .arr{grid-column:3;grid-row:1}
  .featured-post,.article-grid,.subscribe-band{grid-template-columns:minmax(0,1fr)}
  .featured-post .fp-img,.article-side{border-right:none;border-bottom:1px solid var(--line)}
  .article-side .sticky{position:static}
  .subscribe-band .sub-actions{justify-self:start}
  .desks{grid-template-columns:minmax(0,1fr)}
  .desk{border-right:none;border-bottom:1px solid var(--line)}
  .desk:last-child{border-bottom:none}
  .award-row{grid-template-columns:70px 1fr;gap:12px 20px}
  .award-row .cat{grid-column:2;justify-self:start}
  .deal:nth-child(3n){border-right:1px solid var(--line)}
  .deal:nth-child(2n){border-right:none}
  .split-l,.area-l,.contact-grid .col-l,.partner-card:not(:last-child){border-right:none;border-bottom:1px solid var(--line)}
  .linkages .linkage:nth-child(odd){border-right:none}
  .linkages .linkage+.linkage{border-top:1px solid var(--line)}
  .split-l .sticky,.area-l .sticky,.partner-sec .photo-col .sticky{position:static}
  .partner-sec .photo-col img{height:70vh}
  .value-row{grid-template-columns:60px 1fr;gap:16px}
  .value-row p{grid-column:1/-1}
  .practice-row .body p{padding-left:32px}
  .spec-row{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr}
  .site-footer .cols .about-col,.site-footer .cols nav{border-right:none;border-bottom:1px solid var(--line)}
}
@media (max-width:600px){
  .deals{grid-template-columns:1fr}
  .su-sec-grid,.steps-grid{grid-template-columns:1fr}
  .su-sec-grid .cell,.step{border-right:none!important;padding-left:20px;padding-right:20px}
  .su-home-grid,.su-showcase{padding-left:20px;padding-right:20px}
  .su-sec-lede{padding-left:20px;padding-right:20px}
  .su-chrome .badge{display:none}
  .su-crop .cap{left:10px;bottom:10px}
  .post-row{padding:24px 20px}
  .post-row:hover{padding-left:20px}
  .filters,.post-empty,.insights-disclaimer,.featured-post .fp-body,.article-side,.article-body,.subscribe-band{padding-left:20px;padding-right:20px}
  .article-head{padding:140px 20px 40px}
  .subscribe-band{padding-top:64px;padding-bottom:64px}
  .desk{padding:32px 20px 36px}
  .hotline-lede,.hotline-note{padding-left:20px;padding-right:20px}
  .award-row{padding:22px 20px}
  .award-row:hover{padding-left:20px}
  .award-strip{padding-left:20px;padding-right:20px}
  .deal{border-right:none!important;padding:28px 20px}
  .deal-corner .row-cta{padding-left:20px;padding-right:20px}
  .photo-band .cap{left:20px;bottom:20px}
  .contact-grid .office-photo img{height:220px}
  :root{--hdr:72px}
  .site-header{padding:0 20px}
  .site-header .logo img{height:50px}
  .hero-main,.page-hero{padding-left:20px;padding-right:20px}
  .page-hero{padding-top:140px}
  .sec-head,.split-l,.split-r,.area-l,.area-r,.cta-band,.contact-big,.office,.form-col,.linkage,.careers-cta,.vision,.partner-sec .info{padding-left:20px;padding-right:20px}
  .practice-row .head,.ind-row,.value-row,.row-cta{padding-left:20px;padding-right:20px}
  .practice-row .body p{padding:0 20px 24px}
  .site-footer .mast,.site-footer .cols>div,.site-footer .cols>nav,.site-footer .legal{padding-left:20px;padding-right:20px}
  .menu-panel nav,.menu-panel .bar,.menu-panel .meta{padding-left:24px;padding-right:24px}
  .gate .panel-body,.gate .panel-head{padding-left:24px;padding-right:24px}
}
