.firm-intro{padding:clamp(70px,8vw,125px) var(--gutter);background:var(--paper);scroll-margin-top:85px}
.firm-shell{max-width:1360px;margin-inline:auto;border-top:1px solid var(--line);padding-top:45px}
.firm-heading{max-width:1050px;margin-bottom:50px}
.firm-heading h2{font-family:var(--serif);font-size:clamp(2.8rem,4.6vw,5.5rem);line-height:1.06;letter-spacing:-.035em;font-weight:400;color:var(--forest-2);margin:24px 0 0;overflow-wrap:anywhere}
.firm-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr);gap:clamp(35px,6vw,90px);align-items:start}
.firm-story p{font-size:1rem;line-height:1.9;color:var(--muted);margin:0 0 22px;max-width:760px}
.firm-story p:first-child{font-size:1.16rem;color:#684553}
.firm-story .arrow-link{margin-top:14px;color:var(--forest-2)}
.firm-note{background:var(--ivory);border-inline-start:3px solid var(--bronze);padding:clamp(25px,3vw,42px);min-width:0}
.firm-note blockquote{margin:22px 0;font-family:var(--serif);font-size:clamp(1.8rem,2.7vw,3rem);line-height:1.2;color:var(--forest-2);overflow-wrap:anywhere}
.firm-note p{font-size:.9rem;line-height:1.85;color:var(--muted)}
.firm-signature{border-top:1px solid var(--line);padding-top:22px;margin-top:26px;display:flex;flex-direction:column;gap:4px}
.firm-signature strong{font-family:var(--serif);font-size:1.65rem;font-weight:400;color:var(--forest-2)}
.firm-signature span{font-size:.73rem;color:var(--muted)}
.firm-signature .firm-name{font-size:.7rem;line-height:1.7;margin-top:7px}
.firm-contact-link{margin-top:25px;display:inline-block;font-size:.8rem;color:var(--forest-2);text-decoration:underline;text-underline-offset:5px;line-height:1.8}
.firm-service-details{margin-top:38px;border-block:1px solid var(--line-light);padding-block:8px}
.firm-service-details summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding-block:20px;font-size:1rem;font-weight:600;min-height:60px}
.firm-service-details summary::-webkit-details-marker{display:none}
.firm-service-details summary:after{content:'+';font-size:1.5rem;font-weight:400}
.firm-service-details[open] summary:after{content:'−'}
.firm-service-details>p{color:rgba(255,255,255,.8);max-width:850px;font-size:.9rem;margin:0 0 24px}
.firm-support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 45px;padding:5px 0 28px}
.firm-support-grid h3{font-size:1rem;color:var(--sand-light);margin:0 0 10px}
.firm-support-grid p{font-size:.9rem;line-height:1.8;color:rgba(255,255,255,.8);margin:0}
.firm-virtual{padding:18px 20px;border-inline-start:2px solid var(--bronze);background:rgba(255,250,251,.06);line-height:1.8!important}
html[dir=rtl] .firm-heading h2{line-height:1.5;letter-spacing:0;font-size:clamp(2.4rem,4vw,4.5rem)}
html[dir=rtl] .firm-note blockquote{line-height:1.7;letter-spacing:0;font-size:clamp(1.6rem,2.2vw,2.4rem)}
html[dir=rtl] .firm-note .kicker{letter-spacing:0;line-height:1.6}
html[lang=zh-Hans] .firm-heading h2{font-size:clamp(2.4rem,4vw,4.5rem)}
@media(max-width:850px){.firm-layout{grid-template-columns:minmax(0,1fr)}.firm-heading{margin-bottom:30px}.firm-note{max-width:760px}.firm-support-grid{gap:26px}}
@media(max-width:520px){.firm-intro{padding-block:65px}.firm-shell{padding-top:30px}.firm-heading h2{font-size:2.7rem;line-height:1.15}.firm-story p:first-child{font-size:1.04rem}.firm-note blockquote{font-size:2rem}.firm-support-grid{grid-template-columns:minmax(0,1fr)}.firm-service-details summary{font-size:.95rem}}
