/* Gallery lighting, book-like editorial spreads, and touch-first controls. */
:root {
  --ivory: #f6f2e9; --line: #d4cfc0; --muted: #52655c;
  --brass-dark: #805c38; --brass: #e0bd8b;
}
[hidden], #justice-scene canvas[hidden], .scene-controls[hidden] {display:none!important}
.hero {background:#102922}
.hero-architecture {
  position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:linear-gradient(0deg,#091d1be8,transparent 29%,transparent 80%,#091e1cb3),
    linear-gradient(90deg,#102a2429 0%,#0a211e44 38%,#102a24bf 67%,#102b25ed),
    url("assets/chambers.webp") left 53% / cover no-repeat;
}
.hero-lines {opacity:.38}
.hero-watermark {display:none}
.site-header {height:92px; border-color:#edd7b02a;background:linear-gradient(#0a211dc7,transparent)}
.brand strong {line-height:1.12}
.site-header .brand small {font-size:10px;color:#dfd8c5}
.hero-copy h1 {font-weight:500;line-height:1.25;font-size:clamp(68px,6.5vw,104px)}
.hero-copy h1>span:last-child {color:#e6c89d}
.hero-description {color:#e3e7dd;font-size:clamp(15px,1.14vw,18px);line-height:1.95}
.hero-kicker {color:#f3d4a7}.hero-assurance {color:#d3d7c9}
.hero .text-link,.hero-bottom {color:#f0e9db}
.hero-bottom {border-color:#e1cfa640}
.button-brass {background:linear-gradient(110deg,#e8d5ae,#d7af79);border:1px solid #eac892;box-shadow:0 3px 20px #061d1a30}
.hero-actions button span,.practice-cta span,.article-link i {transition:translate .23s ease-out}
.hero-actions button:hover span,.practice-cta:hover span,.article-link:hover i {translate:-3px -2px}
.scene-orbit {border-color:#e5c99755}
.dial-ticks {
  position:absolute;inset:-8px;border-radius:50%;opacity:.57;
  background:repeating-conic-gradient(from 0deg, #f4d299 0deg .45deg, transparent .45deg 6deg);
  mask:radial-gradient(closest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
}
.scene-orbit:after {border-color:#ebd8b440}
.scene-note {display:none}
.scene-caption {color:#f0e1ca;border:1px solid #e8d2a942;background:#102720de;border-radius:30px;padding:6px 13px;font-size:12px;bottom:8px}
.scene-controls button {background:#122a23e8;border-color:#ddc39385;color:#f3d3a5}
.hero-bottom .hero-signature {color:#d7d7bf}
.brand-stamp {display:block;box-sizing:content-box;padding:17px;border:1px solid #b09a741f;outline:1px solid #b09a7466;outline-offset:5px;border-radius:50%;background:#15392f}
.section-side {display:flex;align-items:flex-start;flex-direction:column;justify-content:center}
.about .statement {line-height:1.65}
.section-heading .section-label,.approach-intro .section-label,.faq .section-label {display:flex;align-items:center;gap:12px}
.section-heading .section-label:before,.approach-intro .section-label:before,.faq .section-label:before {content:'';width:30px;height:1px;background:#a58354}
.section-heading>p,.about-bottom p,.steps p,.practice-content,.faq details p {font-size:15px;line-height:2}
.practice {position:relative;border-color:var(--line)}
.practice[open] {background:#ede9dc;box-shadow:inset -3px 0 #a67e4c}
.practice summary {padding-inline:14px}
.practice-icon {display:grid;place-items:center;flex-shrink:0}
.practice-icon svg {width:26px;height:26px}
.practice .plus,.faq summary>span {display:grid;place-items:center;flex:none;border:1px solid #a6977959;border-radius:50%;width:30px;height:30px;line-height:1;font-size:19px}
.practice-content {padding-inline:64px 22px}
.practice-cta {font-size:14px;min-height:44px}
.tags span {font-size:11px}
.expertise-image {border-radius:42% 42% 2px 2px / 20% 20% 2px 2px;isolation:isolate}
.expertise-image:before {content:'';position:absolute;z-index:1;pointer-events:none;inset:12px;border:1px solid #ddc49c70;border-radius:inherit}
.expertise-image>img {filter:grayscale(.78) sepia(.25) brightness(.92)}
.expertise-image:after {background:linear-gradient(transparent 21%,#0e27234d 52%,#0b211df5)}
.folio-category {display:block;color:#f1d7ae;font-size:13px;font-weight:400;margin-bottom:10px}
.image-seal {outline:1px solid #c9ad7d44;outline-offset:4px}
.conviction {background:radial-gradient(ellipse at 35% 0%,#345247,#102f29 65%);isolation:isolate}
.conviction-ring {border-color:#dcc09133}
.conviction-ring:after {border-color:#dcc09126}
.conviction .values {gap:0;border:1px solid #e2d3b43b;padding:0;background:#102c2644}
.values>div {padding:clamp(20px,2.5vw,39px)}
.values>div+div {border-inline-start:1px solid #e2d3b42e}
.values p {font-size:14px;color:#ccd7c9}
.step-number {color:#846743}
.approach {background:#efece1}
.approach-intro>p:not(.section-label) {font-size:16px}
.insights {padding-top:clamp(40px,6vw,90px)}
.insights .section-heading {border-top:0;padding-top:0}
.insight-card {display:flex;flex-direction:column;align-items:stretch;border-block-end:1px solid var(--line);padding-bottom:6px}
.insight-art {width:100%;height:auto;aspect-ratio:1.48}
.article-type,.article-type i {font-size:12px}
.article-link {margin-top:auto;align-items:center;border:0;font-size:13px;min-height:50px}
.article-link i {width:32px;height:32px;display:grid;place-items:center;border:1px solid #ada28d80;border-radius:50%}
.dispute-art {background:radial-gradient(ellipse at 80% 5%,#fff8e8,#c5bba3)}
.contract-art {background:repeating-linear-gradient(90deg,transparent 0 9px,#ffffff07 10px 11px),radial-gradient(ellipse at top right,#537063,#12362f)}
.faq summary {gap:12px;font-size:16px}
.faq details[open] summary {color:var(--brass-dark)}
.faq details p {color:var(--muted)}
.contact {isolation:isolate;background:linear-gradient(110deg,#bda27c,#e9d6b4 62%,#d9bd94)}
.contact:after {content:'';position:absolute;z-index:-1;left:-3%;top:-110%;width:74%;height:280%;border-radius:50%;border:1px solid #75592c3d;box-shadow:0 0 0 24px #c7ac8420,0 0 0 25px #7f62322a,0 0 0 60px #c7ac8410,0 0 0 61px #7f623222;transform:rotate(-32deg);pointer-events:none}
.contact-circle {background:#173a31;color:#fff4dc;border-color:transparent;outline:1px solid #6b755e99;outline-offset:6px}
.footer-links a,.footer-links button {min-height:44px;align-content:center}
dialog {border:1px solid #c6b89e;border-top:4px solid #ac8856}
dialog::backdrop {background:#071d19d4}
body:has(dialog[open]) {overflow:hidden}
:focus-visible {outline:3px solid #a26725;outline-offset:4px}
.hero :focus-visible,.site-header :focus-visible,footer :focus-visible {outline-color:#f1c98e}
dialog :is(button,a) {cursor:pointer}
.cursor-aura.is-reading .cursor-word {opacity:1}
#form-status:empty {margin:0}
@media(prefers-reduced-motion:no-preference) {
  dialog[open] {animation:open-sheet .28s ease-out}
  @keyframes open-sheet {from {opacity:0;translate:0 12px}to {opacity:1;translate:0 0}}
}
@media(min-width:761px) {
  .hero {min-height:clamp(660px,91svh,850px);height:100svh}
  .hero-layout {padding-top:100px}
  .scene-wrap {height:min(64svh,650px);min-height:385px}
  .scene-orbit {width:min(34vw,49svh,462px);height:auto;aspect-ratio:1}
  .hero-bottom {height:80px}
  .hero .scene-controls {left:3%;bottom:1%}
  .insight-card h3 {margin-bottom:14px}
}
@media (min-width:761px) and (max-width:1000px) {
  .hero-copy h1 {font-size:clamp(50px,7vw,69px)}
  .hero-layout {gap:16px}.hero-description {font-size:15px}
  .scene-caption {font-size:10px}.brand-stamp {width:45px;height:45px}
  .values>div {grid-template-columns:1fr}.values>div>span {grid-row:auto}
}
@media(max-width:760px) {
  .hero-architecture {background-image:linear-gradient(0deg,#102922 3%,#102922cc 24%,transparent 53%,#10292255 75%,#0a201bc9),linear-gradient(90deg,#142a212b,#102922b0),url("assets/chambers-small.webp");background-position:32% center}
  .site-header {height:68px}.site-header .brand small {font-size:8px}
  .hero-layout {min-height:0;padding-top:90px;padding-bottom:22px}
  .hero-copy h1 {font-size:clamp(39px,10.4vw,60px);line-height:1.24;letter-spacing:-1.4px}
  .scene-wrap {height:clamp(208px,32svh,305px);margin:0 auto 4px}
  .scene-orbit {width:min(65vw,27svh,245px);top:48%}
  .scene-controls {left:0;bottom:6px;gap:6px}
  .scene-caption {bottom:0;font-size:10px;padding:3px 9px}
  .hero-description {font-size:14px;line-height:1.85;margin:13px auto 0;max-width:36ch;text-wrap:pretty}
  .hero-actions {width:min(100%,430px);margin:15px auto 0}.hero-actions .button,.hero-actions .text-link {font-size:13px}
  .hero-assurance,.hero-kicker,.hero-bottom>span {font-size:11px}.hero-bottom {height:59px}
  .about-grid {gap:25px}.section-side {flex-direction:row;align-items:center;justify-content:flex-start;gap:14px}.section-side .small-rule {display:none}.section-side p br {display:none}.section-side p br:after {content:' '}.brand-stamp {padding:7px;width:24px;height:24px;outline-offset:2px}
  .section-heading>p,.about-bottom p,.steps p,.practice-content,.faq details p {font-size:14px}
  .practice summary {padding-inline:9px;gap:10px}.practice-icon svg {width:22px;height:22px}
  .practice-content {padding-inline:47px 16px}.practice-content .tags {flex-wrap:wrap}
  .expertise-image {height:clamp(240px,65vw,350px)}
  .values>div {padding:18px 15px}.values>div+div {border-inline-start:0;border-top:1px solid #e2d3b42e}
  .steps>li {gap:14px}.article-type,.article-type i {font-size:11px}.insight-grid {gap:30px}
  .insight-art {aspect-ratio:1.65}.article-link {padding:10px 0 3px}.faq summary {font-size:15px}
  .contact-circle {margin-left:6px}.contact-rule {font-size:10px}.footer-bottom {font-size:11px}
  .mobile-nav {inset-block-start:76px;max-height:calc(100dvh - 90px);overflow:auto}
  .mobile-contact-bar>div>span {font-size:10px}.mobile-contact-bar>button {font-size:12px}
  .mobile-contact-bar>a {min-width:40px}
  html {scroll-padding-bottom:92px}
}
@media(max-width:359px) {
  .hero-layout {padding-top:80px}.hero-copy h1 {font-size:38px}
  .hero-actions {gap:8px}.hero-actions .button,.hero-actions .text-link {font-size:12px}
  .site-header .brand small {font-size:8px}.mobile-contact-bar>div>span {display:none}
}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after{scroll-behavior:auto!important}}

/* Give the lower rail its own row as Arabic type scales or the viewport gets shorter. */
@media (min-width:761px) {
  .hero {display:grid;grid-template-rows:1fr auto;height:auto;min-height:100svh;max-height:none}
  .hero-layout {height:auto;min-height:0;padding-block:clamp(106px,13svh,150px) clamp(26px,4svh,48px)}
  .hero-copy {padding-bottom:0}
  .hero-bottom {position:relative;inset:auto;height:auto;min-height:68px;padding-block:10px}
  .hero-bottom .scroll-cue {min-height:44px}
  .hero .scene-wrap {height:clamp(350px,57svh,610px);min-height:0}
}
@media (min-width:761px) and (max-height:800px) {
  .hero-copy h1 {font-size:clamp(48px,min(6.5vw,10.4svh),82px)}
  .hero-kicker {margin-bottom:14px}
  .hero-description {margin-top:16px}
  .hero-actions {margin-top:22px}
  .hero-assurance {margin-top:15px}
}
.contact {border-top:1px solid #c7ac83}
.contact .contact-inner {min-height:clamp(230px,22vw,345px);padding-block:0 clamp(44px,5vw,74px)}
.site-footer {position:relative;background:linear-gradient(115deg,#0b2420,#102e28);color:#f4f0e5}
.site-footer:before {content:"";display:block;height:2px;background:linear-gradient(90deg,transparent,#b48c56 50%,transparent)}
.site-footer .footer-main {
  display:grid;grid-template-columns:minmax(235px,1.2fr) minmax(190px,.95fr) minmax(205px,.75fr);
  align-items:start;gap:clamp(32px,5vw,86px);padding-block:clamp(48px,5vw,80px);
}
.footer-identity .brand {display:inline-flex}
.footer-identity .brand img {width:54px;height:54px}
.footer-identity .brand small {font-size:10px;color:#c7cdbf}
.footer-identity p {margin-top:22px;font-size:clamp(20px,2vw,30px);line-height:1.5;color:#edeadd}
.footer-identity em {font-style:normal;color:#e2c292}
.site-footer h2 {font-weight:500;color:#ead2a9;font-size:15px;line-height:1.6;margin:3px 0 17px}
.footer-navigation>div {display:grid;grid-template-columns:repeat(2,max-content);gap:0 29px}
.footer-navigation a,.site-footer .footer-bottom a,.site-footer .footer-bottom button {
  display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#dae1d7;
}
.footer-navigation a:hover,.site-footer .footer-bottom :is(a,button):hover {color:#f6d09d;text-decoration:underline;text-underline-offset:5px}
.social-links {display:flex;flex-wrap:wrap;gap:8px}
.social-links a {width:45px;height:45px;display:grid;place-items:center;color:#e6c692;border:1px solid #b9a47d70;border-radius:50%;background:#f8e6c204}
@media(hover:hover) {
  .social-links a:hover {background:#e6c692;border-color:#e6c692;color:#102d27}
}
@media(prefers-reduced-motion:no-preference) {
  .social-links a {transition:color .2s,background .2s,transform .2s}
  .social-links a:hover {transform:translateY(-3px)}
}
.site-footer .footer-bottom {display:flex;align-items:center;justify-content:start;gap:22px;border-top:1px solid #d4c8a733;padding-block:15px;color:#becabd;font-size:12px}
.site-footer .footer-bottom button {background:none;padding:0}
.footer-top {margin-inline-start:auto;gap:10px}
.footer-top span {display:grid;place-items:center;width:30px;height:30px;border:1px solid #bbad8866;border-radius:50%;color:#f0d4a8}
@media(min-width:761px) and (max-width:940px) {
  .site-footer .footer-main {grid-template-columns:1fr 1fr;gap:24px 40px}
  .footer-identity {grid-row:span 2}
}
@media(max-width:760px) {
  .hero-bottom {min-height:58px;height:auto;padding-block:9px}
  .hero-bottom .scroll-cue {min-height:44px}
  .contact .contact-inner {min-height:0;align-items:center;padding-bottom:45px}
  .site-footer .footer-main {grid-template-columns:1fr;gap:25px;padding-block:32px 26px}
  .footer-identity {display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #d4c8a72b;padding-bottom:23px}
  .footer-identity p {margin:0;font-size:18px}.footer-identity .brand img {height:42px;width:42px}
  .site-footer h2 {margin:0 0 7px;font-size:14px}
  .footer-navigation>div {grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
  .footer-social {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
  .footer-social h2 {margin:0}
  .site-footer .footer-bottom {display:grid;grid-template-columns:1fr auto;gap:1px 15px;padding:14px 0 calc(14px + env(safe-area-inset-bottom))}
  .site-footer .footer-bottom>span {grid-column:1/-1}
  .site-footer .footer-bottom button {justify-self:start}
  .footer-bottom .footer-top {margin:0}
}
@media(max-width:359px) {.footer-identity p {max-width:95px}.social-links {gap:5px}}
