/* Motion complements native scrolling and respects reduced-motion preferences. */
body{transition:background-color .55s ease,color .55s ease}
.header,.panel,.subcall{transition:background-color .55s ease,color .55s ease,box-shadow .4s ease}
.reveal{transition:opacity 1s ease,transform 1.15s cubic-bezier(.16,1,.3,1)}
.reveal.pending{opacity:.35;transform:translateY(42px)}
.slide{animation:panel-glide .8s cubic-bezier(.16,1,.3,1) both}
@keyframes panel-glide{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.hero-gallery .hero-image.active{animation:scene-drift 14s ease-in-out alternate infinite}
.hero-gallery.motion-paused .hero-image{animation-play-state:paused}
@keyframes scene-drift{from{scale:1}to{scale:1.045}}
.hero-content .overline{animation:arrival .8s .05s both}
.hero-content h1{animation:arrival 1.15s .13s both}
.hero-content p{animation:arrival 1.15s .25s both}
.hero-actions{animation:arrival 1.15s .37s both}
@keyframes arrival{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.links a{position:relative}
.links a:after{content:'';position:absolute;height:1px;left:0;right:0;bottom:-7px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.links a:hover:after,.links a:focus-visible:after{transform:scaleX(1)}
.case-feature{transition:transform .5s cubic-bezier(.16,1,.3,1)}
.case-feature:hover{transform:translateY(-5px)}
.practice-links button{transition:background .3s,border-color .3s,transform .3s}
.practice-links button:hover{transform:translateY(-2px);border-color:var(--blue)}
dialog[open]{animation:dialog-glide .45s cubic-bezier(.16,1,.3,1)}
@keyframes dialog-glide{from{opacity:0;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.pending{opacity:1;transform:none}.case-feature:hover,.practice-links button:hover{transform:none}.hero-gallery .hero-image{scale:1}}

.principal-intro{max-width:1250px;margin:auto;padding:30px 6% 100px;display:grid;grid-template-columns:minmax(220px,.72fr) 1.28fr;gap:80px;align-items:center}.principal-photo{overflow:hidden;border-radius:12px}.principal-photo img{display:block;width:100%;height:auto;aspect-ratio:768/952;object-fit:cover}.principal-copy>small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.principal-copy h2{font-size:clamp(34px,3.6vw,49px);margin:20px 0 28px}.principal-copy p{font-size:16px;color:var(--muted);max-width:52ch}.principal-copy .principal-name{color:var(--fg);font-size:21px}.principal-name span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.subhero img.daniel-portrait{height:auto;max-height:540px;object-fit:contain;object-position:left;border-radius:12px}@media(max-width:720px){.principal-intro{grid-template-columns:1fr;gap:30px;padding:20px 6% 65px}.principal-photo{max-width:310px}.principal-copy h2{font-size:36px}.subhero img.daniel-portrait{max-width:350px;max-height:none}}

.tabs .indicator{width:20%}.tabs button{font-size:11px;min-width:0}.advisory-start{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:32px 0;border-bottom:1px solid var(--line)}.advisory-start small,.specialist-services>span{font-size:11px;color:var(--muted)}.advisory-start h3{font-size:23px;font-weight:500;letter-spacing:-.025em;margin:10px 0}.advisory-start p{font-size:14px;color:var(--muted);margin:0}.advisory-start>a{white-space:nowrap}.specialist-services{display:flex;align-items:center;gap:28px;padding:25px 0;border-bottom:1px solid var(--line);font-size:13px}.specialist-services a{border-bottom:1px solid var(--blue);padding:8px 0}@media(max-width:720px){.advisory-start{display:block}.advisory-start>a{margin-top:18px}.specialist-services{flex-wrap:wrap;gap:12px 22px}.specialist-services>span{width:100%}.tabs button{font-size:10px;padding:12px 2px}}

/* Shared accordion treatment for service scopes, questions and case studies. */
details{transition:background-color .3s,box-shadow .35s;border-radius:8px;margin:4px 0}
details>summary{padding:22px 54px 22px 16px;border-radius:8px;transition:transform .35s cubic-bezier(.16,1,.3,1),background-color .3s;min-height:64px}
details>summary:after,details[open]>summary:after{content:none}
details>.record-block{padding:0 16px 24px}
.accordion-icon{position:absolute;right:16px;top:50%;width:24px;height:24px;transform:translateY(-50%);border:1px solid var(--line);border-radius:50%;transition:border-color .3s,background-color .3s}
.accordion-icon:before,.accordion-icon:after{content:'';position:absolute;left:6px;right:6px;top:10px;height:1px;background:currentColor;transition:transform .35s,opacity .35s}
.accordion-icon:after{transform:rotate(90deg)}
.accordion-expanded>summary .accordion-icon:after{transform:rotate(0);opacity:0}
.accordion-expanded>summary .accordion-icon{border-color:var(--blue)}
summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(hover:hover){details:hover{background:var(--surface);box-shadow:0 8px 22px #0000000c}details>summary:hover{transform:translateY(-2px)}details>summary:hover .accordion-icon{border-color:var(--blue)}}
@media(prefers-reduced-motion:reduce){details>summary:hover{transform:none}}

.advisory-next{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;padding:40px 0 0}.review-entry{font-size:16px;line-height:1.7;padding:12px 0}.review-entry>span:first-child{display:block;color:var(--muted);font-size:13px;margin-bottom:4px}.review-entry>span:last-child{display:inline-block;margin-left:8px;color:var(--blue)}.specialist-disclosure{min-width:260px;max-width:360px;width:35%;border-bottom:0}.specialist-disclosure>summary{font-size:14px}.specialist-disclosure .record-block a{display:block;font-size:14px;padding:12px 0}.service-direct{font-size:14px;line-height:1.6;display:inline-block;padding:14px 0;border-bottom:1px solid var(--blue)}.service-direct span{margin-left:8px;color:var(--blue)}.service-direct:hover{color:var(--blue)}.links a[aria-current=page]{color:var(--blue)}@media(max-width:720px){.advisory-next{display:block;padding-top:25px}.review-entry{display:block}.specialist-disclosure{width:100%;max-width:none;margin-top:20px}.specialist-disclosure>summary{padding-left:0}.specialist-disclosure>.record-block{padding-left:0}}

@media(min-width:1101px){.header{gap:22px}.header .links{gap:17px;font-size:12px}.header .brand img{width:175px}}

.footer{align-items:center;flex-wrap:wrap}.footer-theme{border-color:var(--line);flex-shrink:0;align-self:center}.footer-theme button{color:var(--fg);min-width:48px;min-height:44px}.footer-theme button[aria-pressed=true]{background:var(--surface)}@media(max-width:720px){.footer-theme{display:inline-flex;margin-top:20px}.header .menu{margin-left:auto}}
/* Sliding glass appearance control. */
.footer-theme{position:relative;isolation:isolate;display:inline-grid;grid-template-columns:1fr 1fr;gap:0;padding:4px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 48%,transparent);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);box-shadow:inset 0 1px 0 #ffffff50,0 4px 16px #00000008;min-width:132px}
.footer-theme:before{content:'';position:absolute;z-index:-1;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2);border-radius:999px;background:linear-gradient(160deg,#ffffffaa,#ffffff28),color-mix(in srgb,var(--surface) 70%,transparent);border:1px solid #ffffff60;box-sizing:border-box;box-shadow:0 2px 7px #00000014,inset 0 1px 0 #ffffffaa;transform:translateX(0);transition:transform .48s cubic-bezier(.22,1,.36,1),background .4s,box-shadow .4s}
body[data-theme=night] .footer-theme:before{transform:translateX(100%);background:linear-gradient(160deg,#ffffff25,#ffffff08);border-color:#ffffff25;box-shadow:0 2px 8px #00000035,inset 0 1px 0 #ffffff30}
.footer-theme button,.footer-theme button[aria-pressed=true],.subpage .footer-theme button[aria-pressed=true]{position:relative;min-height:44px;padding:10px 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);transition:color .3s;white-space:nowrap}
.footer-theme button[aria-pressed=true],.subpage .footer-theme button[aria-pressed=true]{color:var(--fg)}
.footer-theme button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.footer-theme:before{transition:none}}
.nav-group{position:relative}.nav-trigger{display:flex;align-items:center;gap:8px;border:0;background:none;color:inherit;font:inherit;padding:12px 0;min-height:44px}.nav-chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s}.expanded .nav-chevron{transform:rotate(225deg)}
.nav-dropdown{position:absolute;top:100%;left:-20px;width:330px;display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-8px);transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1),opacity .25s,transform .4s;pointer-events:none;z-index:25;background:var(--surface);color:var(--fg);border-radius:12px;box-shadow:0 20px 45px #00000024}
.nav-dropdown-inner{overflow:hidden;min-height:0;padding:0 10px;transition:padding .4s}.nav-group.expanded>.nav-dropdown{grid-template-rows:1fr;opacity:1;transform:translateY(0);pointer-events:auto}.expanded>.nav-dropdown>.nav-dropdown-inner{padding:10px}
.links .nav-dropdown a{display:block;padding:12px 14px;font-size:13px;line-height:1.4;min-height:44px;border-radius:7px;white-space:normal}.links .nav-dropdown a:after{display:none}.links .nav-dropdown a:hover,.links .nav-dropdown a:focus-visible{background:var(--bg);color:var(--fg)}.current-group>.nav-trigger{color:var(--blue)}
.advisory-heading{max-width:800px;margin:20px 0 50px}.advisory-heading h1{font-size:clamp(42px,5vw,68px);font-weight:500;line-height:1.08;letter-spacing:-.05em;margin:0 0 24px}.advisory-heading p{color:var(--muted)}.advisory-directory{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.directory-service{position:relative;display:block;padding:28px 35px 28px 0;border-top:1px solid var(--line);transition:transform .3s}.directory-service h2{font-size:25px;letter-spacing:-.03em;margin:0 0 12px}.directory-service p{font-size:15px;color:var(--muted);margin:0;max-width:42ch}.directory-service>span{position:absolute;right:5px;top:30px;color:var(--blue)}.directory-service:hover{transform:translateY(-3px)}.all-advisory-link{font-size:14px;padding:20px 0;line-height:1.7}.related-services{display:flex;gap:15px;flex-wrap:wrap}
@media(max-width:1100px){.links.open{display:flex;align-items:stretch;flex-direction:column;gap:0;max-height:calc(100svh - 100px);overflow-y:auto}.links>a,.links>button{padding:14px 0;text-align:left;min-height:44px}.nav-trigger{width:100%;justify-content:space-between;padding:14px 0}.nav-dropdown{position:static;width:100%;box-shadow:none;border-radius:8px;transform:none}.nav-group.expanded>.nav-dropdown{margin-bottom:8px}.nav-group{width:100%}}
@media(max-width:720px){.advisory-directory{grid-template-columns:1fr}.advisory-heading{margin-bottom:30px}.all-advisory-link{display:block}.directory-service h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.directory-service:hover{transform:none}}

.service-essentials{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:55px;padding:30px 0;border-top:1px solid var(--line)}.service-essentials h2{font-size:18px;letter-spacing:-.02em;margin:0 0 12px}.service-essentials p{font-size:15px;color:var(--muted);margin:0}.sector-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.sector-list li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}.case-story{max-width:780px;margin:60px auto}.case-story h2{font-size:32px;margin-top:45px}.case-story h3,.case-story h4{font-size:20px;margin-top:28px}.case-story p,.case-story li{color:var(--muted);line-height:1.8}.case-story dt{margin-top:14px;color:var(--muted)}.case-story dd{font-size:23px;margin:4px 0 20px}@media(max-width:720px){.service-essentials{grid-template-columns:1fr;gap:25px;margin-top:35px}.sector-list{grid-template-columns:1fr}.case-story h2{font-size:28px}}
