@font-face{font-family:SiSans;src:url(sans.woff?v=cdef4b924038) format('woff');font-display:swap;font-weight:400}
@font-face{font-family:SiSans;src:url(sans-bold.woff?v=8b2462a5ac5b) format('woff');font-display:swap;font-weight:700}
@font-face{font-family:SiSerif;src:url(serif.woff?v=d29ac4a1e4a7) format('woff');font-display:swap;font-weight:400}
@font-face{font-family:SiSerif;src:url(serif-bold.woff?v=fb13eef965b3) format('woff');font-display:swap;font-weight:700}
:root{--ink:#10232f;--navy:#10232f;--ivory:#f6f3ed;--gold:#b79c72;--text:#4b5458;--line:#dcdcd4;--serif:SiSerif,'Batang',serif;--sans:SiSans,'Malgun Gothic',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:118px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.8;word-break:keep-all}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.055em;line-height:1.48}h1{font-size:clamp(37px,4.2vw,64px)}h2{font-size:clamp(29px,3vw,44px)}h3{font-weight:400}p{color:var(--text)}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.wrap{width:min(1200px,calc(100% - 112px));margin-inline:auto}.section{padding-block:108px}.eyebrow{display:block;font:11px/1.5 var(--sans);letter-spacing:.22em;color:#d0b98f;margin-bottom:26px}.eyebrow.dark{color:#89734f}.skip{position:fixed;top:-80px;left:20px;padding:12px 20px;background:#fff;z-index:99}.skip:focus{top:8px}.design-bar{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 4.4%;font-size:10px;letter-spacing:.03em;color:#505c62;background:#ebe7de}.design-bar a{border-bottom:1px solid #a6aba9}.site-header{display:flex;align-items:center;justify-content:space-between;padding:24px 4.4%;height:112px;background:var(--ivory);gap:32px;border-bottom:1px solid rgba(16,35,47,.1)}.wordmark{flex:none;display:flex;flex-direction:column;gap:6px;line-height:1}.wordmark>span{font:27px/1.3 var(--serif);letter-spacing:.015em}.wordmark b{font-weight:700}.wordmark small{font-size:8px;letter-spacing:.23em}.site-header nav{display:flex;gap:42px;margin-left:auto;margin-right:40px;font-size:13px}.site-header nav a{position:relative;padding-block:10px}.site-header nav a:after{content:'';position:absolute;bottom:2px;left:0;width:0;height:1px;background:var(--gold);transition:width .2s}.site-header nav a:hover:after,.site-header nav a[aria-current]:after{width:100%}.header-cta{display:flex;align-items:center;gap:38px;padding:11px 18px;border:1px solid #7c8a8b;font-size:12px}.menu-toggle{display:none}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:50px;padding:16px 23px;font-size:13px;min-height:52px;transition:background .2s,color .2s}.button-light{background:var(--ivory);color:var(--ink)}.button-light:hover{background:#e7d7bc}.button-dark{background:var(--ink);color:var(--ivory)}.button-dark:hover{background:#304858}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:65px;font-size:13px;border-bottom:1px solid #a4abab;padding-bottom:10px}.text-link:hover{color:#8b7049}.hero{position:relative;min-height:670px;height:calc(100svh - 144px);max-height:860px;background:#101e2a;color:var(--ivory);overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 60%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,31,.48),rgba(8,20,31,.04) 75%)}.hero-copy{position:relative;z-index:1;padding-top:clamp(96px,11vh,154px);padding-bottom:140px}.hero h1{font-size:clamp(42px,4.15vw,65px);line-height:1.5;letter-spacing:-.06em}.hero-copy p{font-size:14px;line-height:1.95;margin-top:28px;color:#d7d8d7}.hero-actions{display:flex;gap:35px;align-items:center;margin-top:38px}.hero-link{font-size:12px;display:flex;gap:28px;align-items:center}.hero-link:hover{color:#d0b98f}.hero-bottom{position:absolute;bottom:30px;left:4.4%;right:4.4%;display:flex;justify-content:space-between;align-items:center;color:#c9cac6;font-size:10px;letter-spacing:.07em}.hero-bottom a{font-size:9px;letter-spacing:.18em}.approach{display:grid;grid-template-columns:1.1fr 1fr;gap:110px}.approach-body .lead{font-family:var(--serif);font-size:25px;line-height:1.6;color:var(--ink);margin-bottom:26px}.approach-body>p:not(.lead){font-size:14px;line-height:2.05}.approach-body .text-link{margin-top:32px}.practice-section{background:#eeeae2;padding-block:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:55px}.practice-list{border-top:1px solid #aeb4b2}.practice-list>a{display:grid;grid-template-columns:65px 1fr 1.35fr 40px;align-items:center;gap:20px;border-bottom:1px solid #c9cdc7;padding:33px 8px;transition:padding .2s,background .2s}.practice-list>a:hover{padding-left:18px;background:rgba(255,255,255,.35)}.area-no{font-size:12px;color:#958160}.practice-list h3{font-family:var(--serif);font-size:25px}.practice-list p{font-size:13px}.area-arrow{text-align:right;font-size:25px;color:#7e8e94}.draft-note{font-size:11px;color:#787e80;line-height:1.8;margin-top:23px}.lawyer-preview{display:grid;grid-template-columns:1.15fr 1fr;gap:100px}.lawyer-name{border-left:1px solid #c6c9c4;padding:18px 0 18px 55px}.small-label{font-size:12px;color:#8b795c}.lawyer-name h3{font:39px/1.6 var(--serif);margin-top:15px}.lawyer-name h3 small{font:12px/1.5 var(--sans);margin-left:15px;letter-spacing:.03em}.education{font-size:14px;margin-top:8px;color:var(--ink)}.lawyer-name>p:not(.education){font-size:13px;line-height:1.9;margin-top:28px}.lawyer-name .text-link{margin-top:30px}.closing{position:relative;overflow:hidden;color:var(--ivory);background:#142b37}.closing:after{content:'';position:absolute;width:290px;height:460px;border:1px solid #b79c7230;right:19%;top:38px;transform:skewY(-19deg);pointer-events:none}.closing-inner{display:grid;grid-template-columns:1fr 1fr;gap:130px;align-items:center;padding-block:80px;position:relative;z-index:1}.closing h2{font-size:39px}.closing p{color:#c9d1d0;font-size:14px;line-height:2}.closing .button{margin-top:30px}.site-footer{background:#f1eee7;padding:50px 4.4% 30px}.footer-top{display:flex;align-items:center;gap:60px;padding-bottom:36px;border-bottom:1px solid #d1d4cc}.footer-top p{font-size:12px;color:#57666a}.footer-top .wordmark>span{font-size:25px}.top-link{font-size:12px;margin-left:auto}.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;font-size:10px;line-height:1.9}.footer-bottom>p:last-child{text-align:right}.sub-hero{padding-top:92px;padding-bottom:70px}.sub-hero h1{font-size:clamp(35px,4vw,57px)}.sub-hero>p{font-size:15px;line-height:1.95;margin-top:26px}.sub-hero .draft-note{font-size:11px}.about-visual{position:relative;height:420px;background:#132433;overflow:hidden}.about-visual img{width:100%;height:100%;object-fit:cover;object-position:center 56%}.about-quote{position:absolute;left:max(56px,calc((100% - 1200px)/2));top:90px;color:var(--ivory)}.about-quote h2{font-size:39px}.principles{display:grid;grid-template-columns:1fr 1fr;gap:100px}.principle-list article{display:flex;gap:30px;border-top:1px solid #c9cdc7;padding-block:26px}.principle-list article>span{font-size:12px;color:#9f875e;margin-top:7px}.principle-list h3{font:24px/1.7 var(--serif)}.principle-list p{font-size:13px;line-height:2;margin-top:12px}.attorney{background:#eeebe4;padding-block:90px}.attorney-grid{display:grid;grid-template-columns:.75fr 1.1fr;gap:115px;align-items:center}.name-panel{position:relative;overflow:hidden;min-height:400px;padding:60px 45px;background:var(--navy);color:var(--ivory)}.name-panel h2{font-size:59px;margin-top:80px}.name-panel>p{font-size:13px;color:#c2cbd0;letter-spacing:.14em;margin-top:12px}.door-line{position:absolute;right:-20px;top:44px;width:160px;height:355px;border:1px solid #b79c7250;transform:skewY(-19deg)}.attorney-bio>p{font-size:14px;line-height:2;margin-top:26px}.credentials{font-size:13px;border-top:1px solid #c3c9c5;margin-top:36px;padding-top:22px}.credentials>div{display:flex;margin-block:9px;gap:36px}.credentials dt{min-width:28px;color:#8f7b5c}.credentials dd{margin:0}.attorney-bio .draft-note{font-size:10px}.area-tabs{display:flex;gap:40px;border-block:1px solid #d0d3cd;padding-block:20px;flex-wrap:wrap}.area-tabs a{font-size:13px}.area-tabs a:hover{color:#98774e}.service{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;padding-block:80px;border-bottom:1px solid var(--line)}.service:last-child{border:0}.service-number{display:block;font:50px/1.2 var(--serif);color:#b49c78;margin-bottom:35px}.service-aside h2{font-size:32px}.service-content h3{font:29px/1.6 var(--serif);letter-spacing:-.045em}.service-content>p{font-size:14px;line-height:2;margin-top:24px}.service-content ul{list-style:none;padding:0;margin:26px 0;font-size:13px}.service-content li{border-top:1px solid var(--line);padding:12px 0}.service-content li:before{content:'·';color:#b0996e;margin-right:16px}details{border-block:1px solid var(--line);padding:20px 0}summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;font-size:13px}summary::-webkit-details-marker{display:none}summary span{font-size:20px;color:#8f7753;line-height:1}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;line-height:2;margin-top:20px}details small{display:block;font-size:11px;color:#798380;margin-top:14px}.service-content .text-link{margin-top:28px}.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:85px;padding-bottom:95px}.contact-info{padding:44px 40px;background:#ebe7de}.contact-info h2,.contact-prep h2{font-size:33px}.contact-info dl{margin-top:37px}.contact-info dl>div{border-top:1px solid #ccd0c6;padding-block:18px}.contact-info dt{font-size:11px;color:#8e7654}.contact-info dd{font-size:14px;margin:6px 0 0}.contact-prep{padding-top:30px}.contact-prep ol{padding:0;list-style:none;margin-top:32px}.contact-prep li{display:flex;gap:26px;padding-block:20px;border-top:1px solid #d1d5cb}.contact-prep li>span{font-size:12px;color:#9e855d;margin-top:3px}.contact-prep h3{font-size:16px}.contact-prep p{font-size:12px;line-height:1.9;margin-top:10px}.faq-section{border-top:1px solid #cbd0c8;padding-top:65px;padding-bottom:95px;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.faq-section h2{font-size:30px}.faq-list details+details{border-top:0}.cards-heading{padding-bottom:58px}.card-showcase{background:#e7e3d9;padding:65px 0 75px}.card-pair{display:grid;grid-template-columns:1fr 1fr;gap:60px}.card-caption{display:block;font-size:11px;color:#76776e;margin-bottom:18px;letter-spacing:.08em}.business-card{aspect-ratio:9/5;position:relative;overflow:hidden;box-shadow:0 14px 28px #142b3715}.card-front{background:#10232f;color:#f6f3ed;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px}.card-brand{text-align:center;position:relative;z-index:1}.card-brand h2{font-size:clamp(23px,2.7vw,39px);letter-spacing:.08em}.card-brand>span{display:block;font-size:8px;letter-spacing:.25em;margin-top:9px}.card-front>p{position:absolute;bottom:11%;font-size:10px;color:#c3c9c9}.card-portal{position:absolute;right:-20%;bottom:-35%;width:56%;height:120%;transform:skewY(-23deg);border:1px solid #b79c724c;background:linear-gradient(135deg,transparent,#b79c7208)}.card-portal:after{content:'';position:absolute;top:0;left:25%;width:1px;height:100%;background:#b79c7220}.card-back{background:#faf8f2;padding:7.5% 8%;color:#142b37}.back-wordmark{font:14px/1.2 var(--serif);margin-bottom:6.5%}.card-back h2{font-size:26px;letter-spacing:.03em;line-height:1.1}.card-back h2>span{font:10px/1 var(--sans);margin-left:10px;letter-spacing:.04em}.card-degree{font-size:10px;margin-top:9px;color:#4c5d62}.card-contact{position:absolute;bottom:11%;left:8%;right:8%;font-size:9px;line-height:1.65}.card-contact p{display:flex;gap:14px;color:#46585d}.card-contact b{font-weight:400;width:7px;color:#9e835c}.back-portal{position:absolute;width:33%;height:145%;right:-15%;bottom:-66%;border:1px solid #b79c7226;transform:rotate(35deg)}.card-spec{display:grid;grid-template-columns:1fr 1fr;gap:90px}.card-spec p{font-size:13px;line-height:2;margin-top:28px}.card-spec h2{font-size:34px}.card-spec dl{margin:0;padding-top:12px}.card-spec dl>div{display:flex;gap:25px;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px}.card-spec dt{width:60px;flex-shrink:0;color:#94815f}.card-spec dd{margin:0}.swatch{display:inline-block;vertical-align:middle;width:11px;height:11px;margin-right:5px;margin-left:8px}.swatch:first-child{margin-left:0}.navy{background:var(--ink)}.ivory{background:var(--ivory);border:1px solid #bbb}.gold{background:var(--gold)}.card-download{border-top:1px solid #cbd0c8;padding-block:40px 75px;display:flex;align-items:center;justify-content:space-between;gap:40px}.card-download h3{font-size:19px}.card-download p{font-size:12px;margin-top:12px;line-height:1.9}
@media(min-width:1600px){.hero-copy{padding-top:155px}.hero{min-height:740px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.site-header nav{gap:26px;margin-right:10px}.approach,.principles,.lawyer-preview{gap:65px}.closing-inner{gap:65px}.practice-list>a{grid-template-columns:45px 1fr 1.2fr 30px}.card-pair{gap:28px}.attorney-grid{gap:65px}.contact-section{gap:50px}.hero h1{font-size:52px}.hero-image{object-position:58% center}.card-back h2{font-size:23px}.card-brand h2{font-size:29px}.card-front>p{font-size:9px}}
@media(max-width:760px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 44px)}.design-bar{padding-inline:22px;height:29px;font-size:9px}.site-header{height:88px;padding:16px 22px;position:relative;gap:16px}.wordmark>span{font-size:23px}.wordmark small{font-size:7px}.header-cta{margin-left:auto;gap:17px;padding:9px 11px;font-size:10px}.menu-toggle{display:flex;order:3;flex-direction:column;justify-content:center;gap:6px;border:0;padding:8px;background:transparent;min-height:40px}.menu-toggle i{height:1px;width:22px;background:var(--ink)}.site-header nav{display:none;position:absolute;inset:88px 0 auto;background:var(--ivory);z-index:5;padding:20px 28px 28px;margin:0;border-bottom:1px solid #aaa;flex-direction:column;gap:9px;box-shadow:0 14px 20px #0c273a15}.site-header nav.open{display:flex}.site-header nav a{padding-block:9px}.site-header nav a:after{display:none}.hero{height:720px;min-height:610px;max-height:calc(100svh - 117px)}.hero-image{object-position:68% center;opacity:.85}.hero-shade{background:linear-gradient(90deg,#0d202ec9,#0d202e1f),linear-gradient(180deg,#0d202e15,transparent 60%,#0b17246e)}.hero-copy{padding-top:83px;padding-bottom:105px}.hero .eyebrow{font-size:9px;letter-spacing:.18em;margin-bottom:30px}.hero h1{font-size:clamp(31px,6.7vw,46px);line-height:1.6;letter-spacing:-.055em}.hero-copy p{font-size:11px;margin-top:24px;line-height:2.1}.hero-actions{margin-top:31px;gap:24px;flex-wrap:wrap}.button{font-size:11px;padding:13px 17px;gap:34px;min-height:46px}.hero-link{font-size:10px;gap:15px}.hero-bottom{bottom:25px;left:22px;right:22px}.hero-bottom a{font-size:8px}.section{padding-block:70px}.eyebrow{font-size:9px;margin-bottom:20px}h2{font-size:29px}.approach{grid-template-columns:1fr;gap:34px}.approach-body .lead{font-size:22px;margin-bottom:19px}.approach-body>p:not(.lead){font-size:13px}.text-link{font-size:11px;gap:50px}.practice-section{padding-block:65px}.section-heading{display:block;margin-bottom:33px}.section-heading .text-link{margin-top:24px}.practice-list>a{grid-template-columns:29px 1fr 23px;gap:12px;padding:25px 0}.practice-list h3{font-size:23px}.practice-list p{grid-column:2;grid-row:2;font-size:10px}.area-arrow{grid-column:3;grid-row:1/3;font-size:21px}.area-no{font-size:10px}.draft-note{font-size:10px}.lawyer-preview{grid-template-columns:1fr;gap:35px}.lawyer-name{padding:24px 0 0;border-left:0;border-top:1px solid #c7ccc4}.lawyer-name h3{font-size:35px}.lawyer-name h3 small{font-size:11px}.education{font-size:12px}.closing-inner{padding-block:58px;grid-template-columns:1fr;gap:30px}.closing h2{font-size:33px}.closing p{font-size:12px}.closing:after{right:-90px;width:235px}.site-footer{padding:38px 22px 25px}.footer-top{gap:22px;flex-wrap:wrap;padding-bottom:28px}.footer-top p{order:3;flex-basis:100%;font-size:11px}.footer-top .wordmark>span{font-size:23px}.top-link{font-size:10px}.footer-bottom{gap:16px;font-size:9px;align-items:flex-end}.sub-hero{padding-top:60px;padding-bottom:46px}.sub-hero h1{font-size:clamp(29px,7.1vw,43px);line-height:1.6}.sub-hero>p{font-size:12px;margin-top:22px}.about-visual{height:330px}.about-visual img{object-position:66% center}.about-quote{top:70px;left:22px}.about-quote h2{font-size:29px}.principles{grid-template-columns:1fr;gap:35px}.principle-list article{gap:24px}.principle-list h3{font-size:22px}.attorney{padding-block:55px}.attorney-grid{grid-template-columns:1fr;gap:40px}.name-panel{min-height:310px;padding:32px}.name-panel h2{margin-top:58px;font-size:55px}.attorney-bio>p{font-size:12px}.credentials{font-size:12px}.area-tabs{gap:20px;padding-block:16px}.area-tabs a{font-size:11px}.service{grid-template-columns:1fr;gap:28px;padding-block:55px}.service-number{display:inline-block;font-size:35px;margin-right:22px;margin-bottom:18px}.service-aside .eyebrow{display:inline-block;margin-bottom:0;font-size:9px}.service-aside h2{font-size:28px}.service-content h3{font-size:24px}.service-content>p{font-size:12px}.service-content li,summary{font-size:12px}.contact-section{grid-template-columns:1fr;gap:38px;padding-bottom:55px}.contact-info{padding:30px 25px}.contact-info h2,.contact-prep h2{font-size:29px}.contact-info dd{font-size:13px}.contact-prep{padding:0 3px}.faq-section{grid-template-columns:1fr;gap:30px;padding-top:40px;padding-bottom:60px}.faq-section h2{font-size:27px}.card-showcase{padding-block:38px 47px}.card-pair{grid-template-columns:1fr;gap:34px;max-width:510px}.card-brand h2{font-size:30px}.card-brand>span{font-size:7px}.card-front>p{font-size:9px}.card-back h2{font-size:25px}.card-back h2>span{font-size:10px}.back-wordmark{font-size:13px}.card-degree{font-size:9px}.card-contact{font-size:8px}.card-spec{grid-template-columns:1fr;gap:25px}.card-spec h2{font-size:29px}.card-spec p{font-size:12px}.card-spec dl>div{gap:15px;font-size:11px}.card-download{align-items:flex-start;flex-direction:column;gap:25px;padding-block:30px 55px}.card-download h3{font-size:17px}.card-download p{font-size:11px}}
@media(max-width:360px){.hero h1{font-size:29px}.hero-copy{padding-top:58px}.hero-actions{gap:17px}.hero-link{font-size:9px}.card-back h2{font-size:22px}.card-contact{bottom:8%}.card-degree{font-size:8px}.card-front>p{font-size:8px}.header-cta{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Full office name: one baseline, with a quiet secondary descriptor. */
.brand-lockup{display:inline-flex;align-items:baseline;gap:.42em;white-space:nowrap;letter-spacing:0}
.brand-main{font-family:var(--serif);font-weight:400;letter-spacing:.015em}
.brand-main b{font-weight:700}
.wordmark .brand-firm{font-family:var(--sans);font-size:.52em;line-height:1.3;font-weight:400;letter-spacing:0;opacity:.9}
.wordmark>.brand-lockup{gap:.28em}
.brand-legal{font-family:var(--sans);font-size:.46em;line-height:1.3;font-weight:400;letter-spacing:.025em;color:inherit;opacity:.86}
.wordmark>.brand-lockup{display:inline-flex}
.card-brand h2.brand-lockup{letter-spacing:0}
.card-brand .brand-main{font-weight:700;letter-spacing:.025em}
.card-brand .brand-legal{font-size:.5em}
.back-wordmark .brand-main{font-weight:700}
.back-wordmark .brand-legal{font-size:max(7.5px,.58em)}
.cards-heading h1>.brand-lockup{font-size:.84em}
@media(max-width:420px){.site-header{gap:12px}.wordmark>.brand-lockup{font-size:22px}.header-cta{gap:12px;padding-inline:10px}.design-bar{font-size:8px}.card-brand h2.brand-lockup{font-size:27px}}
@media(max-width:360px){.wordmark>.brand-lockup{font-size:21px}.card-brand h2.brand-lockup{font-size:25px}}

/* Broad practice areas: concise overview and progressively disclosed detail. */
.practice-intro{font-size:13px;margin-top:23px;line-height:1.9}
.practice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:55px;border-top:0}
.practice-list>a{grid-template-columns:30px minmax(0,1fr) 25px;gap:7px 16px;padding:27px 0;border-top:1px solid #c9cdc7;border-bottom:0}
.practice-list>a:nth-last-child(-n+2){border-bottom:1px solid #c9cdc7}
.practice-list>a:hover{padding-left:8px}
.practice-list h3{font-size:25px;line-height:1.55}
.practice-list p{grid-column:2;grid-row:2;font-size:11px;line-height:1.8}
.practice-list .area-arrow{grid-column:3;grid-row:1/3;font-size:23px}
.open-invitation{display:flex;align-items:center;justify-content:space-between;gap:36px;padding-top:34px;margin-top:27px}
.open-invitation h3{font:23px/1.6 var(--serif);letter-spacing:-.035em}
.open-invitation p{font-size:12px;line-height:1.95;margin-top:13px}
.open-invitation .text-link{flex-shrink:0}
.practice-directory{padding-bottom:90px}
.practice-detail{border:0;border-top:1px solid #c4ccc7;padding:0;scroll-margin-top:32px}
.practice-detail:last-of-type{border-bottom:1px solid #c4ccc7}
.practice-detail>summary{display:grid;grid-template-columns:50px 1fr 1.25fr 25px;align-items:center;gap:20px;padding:29px 8px;transition:background .2s}
.practice-detail>summary:hover{background:#ece9e1}
.practice-detail>summary .detail-no{font-size:12px;color:#958160;line-height:1.8}
.practice-detail>summary strong{font:27px/1.5 var(--serif);letter-spacing:-.035em}
.practice-detail>summary small{font-size:12px;line-height:1.8;color:var(--text)}
.practice-detail>summary .expand-icon{font:24px/1 var(--sans);color:#958160;text-align:center}
.practice-detail[open]>summary>span{transform:none}
.practice-detail[open]>summary>.expand-icon{transform:rotate(45deg)}
.practice-detail[open]>summary{background:#ebe7de}
.practice-expanded{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:42px 36px 48px;background:#f1eee7}
.practice-expanded h2{font-size:27px;line-height:1.65}
.practice-expanded>div>p{font-size:13px;line-height:2;margin-top:23px}
.practice-support ul{padding:0;margin:0;list-style:none}
.practice-support li{font-size:13px;line-height:1.8;padding:13px 0;border-bottom:1px solid #d8dbd3}
.practice-support li:before{content:'·';color:#aa8c5f;margin-right:12px}
.practice-prep{margin-top:22px}
.practice-prep h3{font-size:11px;color:#8f7753}
.practice-prep p{font-size:11px;line-height:1.9;margin-top:8px}
.practice-support .text-link{margin-top:28px}
@media(max-width:1000px){.practice-list{column-gap:32px}.practice-list h3{font-size:23px}.practice-detail>summary{grid-template-columns:34px 1fr 1.2fr 24px;gap:16px}.practice-detail>summary strong{font-size:23px}.practice-detail>summary small{font-size:11px}.practice-expanded{gap:38px;padding-inline:25px}}
@media(max-width:760px){.practice-intro{font-size:11px;margin-top:20px}.practice-list{grid-template-columns:1fr}.practice-list>a{grid-template-columns:26px minmax(0,1fr) 23px;gap:5px 12px;padding:22px 0}.practice-list>a:nth-last-child(2){border-bottom:0}.practice-list h3{font-size:23px}.practice-list p{font-size:10px}.open-invitation{display:block;padding-top:15px;margin-top:26px}.open-invitation h3{font-size:22px}.open-invitation p{font-size:11px}.open-invitation .text-link{margin-top:22px}.practice-directory{padding-bottom:60px}.practice-detail>summary{grid-template-columns:26px minmax(0,1fr) 22px;gap:6px 12px;padding:23px 0}.practice-detail>summary strong{font-size:23px}.practice-detail>summary small{grid-column:2;grid-row:2;font-size:10px}.practice-detail>summary .detail-no{font-size:10px}.practice-detail>summary .expand-icon{grid-column:3;grid-row:1/3;font-size:22px}.practice-detail[open]>summary{padding-inline:10px}.practice-expanded{grid-template-columns:1fr;padding:28px 20px 32px;gap:25px}.practice-expanded h2{font-size:24px}.practice-expanded>div>p{font-size:12px}.practice-support li{font-size:12px}.practice-prep p{font-size:10px}}

/* Homepage presentation: readable type, clear credentials, and a future portrait. */
body { font-size:18px; }
.wrap { width:min(1240px,calc(100% - 112px)); }
h2 { font-size:clamp(34px,3.1vw,46px); }
.eyebrow { font-size:13px; letter-spacing:.18em; margin-bottom:24px; }
.eyebrow.dark { color:#79633f; }
.section { padding-block:104px; }
.approach>*,.lawyer-preview>*,.principles>*,.attorney-grid>*,
.contact-section>*,.faq-section>*,.practice-expanded>* { min-width:0; }
.site-header { height:112px; gap:28px; }
.wordmark { align-items:center; text-align:center; }
.wordmark>.brand-lockup { font-size:32px; }
.wordmark small { font-size:10px; letter-spacing:.2em; margin-inline-end:-.2em; white-space:nowrap; }
.site-header nav { font-size:16px; gap:32px; margin-right:0; white-space:nowrap; }
.header-cta { font-size:15px; gap:24px; padding:11px 17px; white-space:nowrap; }
.button { font-size:16px; min-height:58px; padding:16px 24px; gap:42px; }
.text-link { font-size:16px; line-height:1.7; min-height:44px; align-items:center; gap:38px; }
.text-link>span,.button>span,.header-cta>span { flex-shrink:0; }
.hero { height:auto; min-height:740px; max-height:none; background:#101e2a; }
.hero-copy { padding-top:clamp(88px,8vw,112px); padding-bottom:132px; }
.hero-shade { background:linear-gradient(90deg,rgba(8,20,31,.68),rgba(8,20,31,.08) 82%); }
.hero-credential { display:inline-flex; flex-wrap:wrap; align-items:center; gap:8px 22px; border-left:2px solid #d0b98f; padding-left:20px; margin-bottom:30px; }
.hero-credential strong { font-size:22px; line-height:1.6; color:#eadbc1; font-weight:700; }
.hero-credential>span { font-size:16px; line-height:1.6; color:#f0eee8; }
.hero-credential:hover strong { color:#fff; }
.hero h1 { font-size:clamp(48px,4.7vw,70px); line-height:1.5; }
.hero-copy>p { font-size:18px; line-height:1.95; margin-top:28px; color:#e1e4e2; }
.hero-actions { margin-top:36px; gap:34px; }
.hero-link { font-size:16px; line-height:1.7; min-height:44px; gap:24px; }
.hero-bottom { bottom:30px; left:0; right:0; font-size:13px; }
.hero-bottom a { font-size:13px; letter-spacing:.04em; padding-block:8px; }
@media(min-width:1001px) {
  .hero-bottom { bottom:48px; }
}
.approach { grid-template-columns:1fr 1fr; gap:90px; }
.approach-body .lead { font-size:30px; line-height:1.65; }
.approach-body>p:not(.lead) { font-size:18px; line-height:2; }
.practice-section { padding-block:100px; }
.practice-intro { font-size:18px; margin-top:22px; }
.section-heading { gap:48px; }
.section-heading>.text-link { flex-shrink:0; }
.practice-list { column-gap:48px; }
.practice-list>a { padding-block:30px; }
.practice-list h3 { font-size:29px; }
.practice-list p { font-size:16px; line-height:1.85; }
.area-no { font-size:14px; color:#79633f; }
.open-invitation h3 { font-size:28px; }
.open-invitation p { font-size:17px; line-height:1.9; }
.lawyer-preview { gap:90px; align-items:center; }
.lawyer-name { padding:20px 0 20px 48px; }
.small-label { font-size:15px; color:#79633f; }
.lawyer-name h3 { font-size:48px; margin-top:14px; }
.lawyer-name h3 small { font-size:16px; margin-left:16px; white-space:nowrap; }
.education { font-size:23px; line-height:1.7; margin-top:10px; color:var(--ink); }
.education strong { font-weight:700; }
.lawyer-name>p:not(.education) { font-size:17px; line-height:1.9; margin-top:26px; }
.closing-inner { gap:100px; padding-block:88px; }
.closing h2 { font-size:44px; }
.closing p { font-size:18px; line-height:1.95; }
.site-footer { padding-top:54px; }
.footer-top { gap:44px; }
.footer-top .wordmark>.brand-lockup { font-size:28px; }
html:lang(ko) .footer-top .wordmark small { transform:translateX(2px); }
.footer-top p { font-size:15px; }
.top-link { font-size:14px; padding-block:10px; }
.footer-bottom { font-size:14px; gap:32px; line-height:1.95; }
.sub-hero { padding-top:88px; padding-bottom:70px; }
.sub-hero h1 { font-size:clamp(38px,4.2vw,60px); }
.sub-hero>p { font-size:18px; line-height:1.95; }
.attorney { padding-block:88px; scroll-margin-top:32px; }
.attorney-grid { grid-template-columns:minmax(0,.86fr) minmax(0,1.06fr); gap:clamp(48px,7vw,100px); }
.attorney-portrait { margin:0; position:relative; aspect-ratio:3/4; min-height:500px; display:flex; align-items:center; justify-content:center; padding:52px 36px 76px; overflow:hidden; color:var(--ivory); background:radial-gradient(ellipse at 100% 100%,#314a51 0%,transparent 64%),var(--navy); }
.portrait-frame { position:absolute; inset:24px; border:1px solid #b79c7260; pointer-events:none; }
.portrait-frame:after { content:''; position:absolute; width:64%; height:125%; top:22%; right:-28%; border:1px solid #b79c722e; transform:skewY(-20deg); }
.portrait-placeholder { position:relative; text-align:center; }
.portrait-placeholder .eyebrow { font-size:12px; margin-bottom:32px; color:#d0b98f; }
.portrait-name { font:46px/1.5 var(--serif); letter-spacing:.06em; color:var(--ivory); }
.portrait-name>span { display:block; font:16px/1.8 var(--sans); letter-spacing:.08em; margin-top:8px; color:#d9dfdd; }
.portrait-rule { width:32px; height:1px; background:var(--gold); margin:38px auto 25px; }
.portrait-status { font-size:17px; color:#e5e9e5; }
.portrait-detail { font-size:13px; line-height:1.8; color:#bfc9c9; margin-top:10px; }
.attorney-portrait figcaption { position:absolute; bottom:39px; left:30px; right:30px; text-align:center; font-size:11px; letter-spacing:.22em; color:#d0b98f; }
/* A supplied full-body portrait can replace the placeholder without cropping. */
.attorney-portrait>img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.attorney-portrait.has-photo { display:block; aspect-ratio:auto; min-height:0; padding:0; }
.attorney-portrait.has-photo>img { position:static; width:100%; height:auto; object-fit:contain; }
.attorney-bio h2 { font-size:clamp(30px,2.8vw,42px); line-height:1.55; }
.attorney-degree { border-left:2px solid var(--gold); padding-left:24px; margin-top:34px; }
.attorney-degree>span { display:block; font-size:14px; color:#79633f; margin-bottom:9px; }
.attorney-degree p { font-size:30px; line-height:1.5; letter-spacing:-.03em; color:var(--ink); }
.attorney-degree strong { font-weight:700; }
.attorney-bio>p { font-size:18px; line-height:1.95; margin-top:24px; }
.attorney-bio>.text-link { margin-top:30px; }
.about-visual { height:380px; background:#132433; }
.about-visual:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0d202e6b,transparent); }
.about-quote { top:86px; z-index:1; left:max(56px,calc((100% - 1240px)/2)); }
.about-quote h2 { font-size:44px; }
.principles { gap:90px; }
.principle-list article { gap:28px; padding-block:28px; }
.principle-list article>span { font-size:14px; color:#79633f; }
.principle-list h3 { font-size:29px; }
.principle-list p { font-size:17px; line-height:1.95; }
.practice-detail>summary { grid-template-columns:42px minmax(0,1fr) minmax(0,1.2fr) 26px; padding:30px 10px; gap:20px; }
.practice-detail>summary .detail-no { font-size:14px; color:#79633f; }
.practice-detail>summary strong { font-size:29px; }
.practice-detail>summary small { margin:0; font-size:16px; line-height:1.85; }
.practice-expanded { gap:62px; padding:42px 36px 48px; }
.practice-expanded h2 { font-size:30px; }
.practice-expanded>div>p { font-size:17px; line-height:1.95; }
.practice-support li { font-size:17px; }
.practice-prep h3 { font-size:15px; color:#79633f; }
.practice-prep p { font-size:16px; line-height:1.9; }
.contact-section { gap:72px; }
.contact-info { padding:44px 38px; }
.contact-info h2,.contact-prep h2 { font-size:36px; }
.contact-info dt { font-size:15px; color:#79633f; }
.contact-info dd { font-size:21px; line-height:1.8; overflow-wrap:anywhere; }
.contact-line { display:block; }
.office-address { word-break:keep-all; overflow-wrap:anywhere; }
.address-building { white-space:nowrap; }
@media(min-width:1001px) {
  .contact-info .address-value { container-type:inline-size; }
  .contact-info .address-value .office-address { font-size:min(1em,4.15cqw); white-space:nowrap; }
}
.contact-note { font-size:15px; line-height:1.9; margin-top:24px; }
.contact-number { font-variant-numeric:tabular-nums; white-space:nowrap; letter-spacing:.025em; }
.contact-prep li>span { font-size:14px; color:#79633f; }
.contact-prep h3 { font-size:21px; }
.contact-prep p { font-size:17px; line-height:1.9; }
.faq-section { gap:60px; }
.faq-section h2 { font-size:34px; }
.faq-list summary { font-size:18px; align-items:center; padding-block:4px; }
.faq-list summary>span { flex-shrink:0; }
.faq-list details>p { font-size:17px; line-height:1.95; }
.card-spec p,.card-download p { font-size:16px; }
.card-spec dl>div { font-size:15px; }
.card-caption { font-size:14px; }
.card-person-name { font-weight:inherit; letter-spacing:.14em; }
/* Move the name, role, and degree together 1 mm on the 90 mm card.
   The content width is 84% of the card; preserve the degree's extra 0.5 mm inset. */
.card-back { --card-person-inset:1.32275%; container-type:inline-size; }
/* 0.661375% of the 84%-wide content box is 0.5 mm on the 90 mm card. */
.back-wordmark { transform:translateY(.661375cqw); }
.card-contact { transform:translateY(.661375cqw); }
.card-back h2 { margin-left:var(--card-person-inset); }
.card-degree { margin-left:calc(var(--card-person-inset) + .5972px + .661375%); }
@media(max-width:1100px) { .card-degree { margin-left:calc(var(--card-person-inset) + .4683px + .661375%); } }
@media(max-width:760px) { .card-degree { margin-left:calc(var(--card-person-inset) + .6062px + .661375%); } }
@media(max-width:360px) { .card-degree { margin-left:calc(var(--card-person-inset) + .5293px + .661375%); } }
.card-web { position:absolute; right:9.0667%; bottom:17%; width:16.6667%; margin:0; text-align:center; z-index:1; background:#faf8f2; box-shadow:0 0 0 7px #faf8f2; }
.card-web img { width:100%; height:auto; aspect-ratio:1; }
/* Keep the address 0.5 mm right of the QR center and raise it by 1 mm. */
.card-web figcaption { margin-top:6px; font:clamp(8px,.8vw,11px)/1.4 var(--sans); color:var(--ink); white-space:nowrap; transform:translate(3.333333%,-1.32275cqw); }

@media(max-width:1100px) {
  .wrap { width:calc(100% - 72px); }
  .site-header { gap:20px; padding-inline:36px; }
  .site-header nav { gap:24px; margin-right:0; }
  .wordmark>.brand-lockup { font-size:30px; }
  .header-cta { gap:18px; }
  .approach,.principles,.lawyer-preview { gap:56px; }
  .lawyer-name { padding-left:32px; }
  .lawyer-name h3 { font-size:44px; }
  .education { font-size:21px; }
  .closing-inner { gap:64px; }
  .attorney-grid { gap:48px; }
  .attorney-degree p { font-size:27px; }
  .practice-list { column-gap:36px; }
  .practice-list h3 { font-size:26px; }
  .practice-list>a { gap:8px 12px; }
  .practice-detail>summary { grid-template-columns:32px minmax(0,1fr) minmax(0,1.15fr) 24px; gap:16px; }
  .practice-detail>summary strong { font-size:26px; }
  .practice-expanded { gap:36px; padding-inline:28px; }
  .contact-section { gap:44px; }
  .contact-info { padding:38px 30px; }
  .footer-top { gap:28px; }
  .about-quote { left:36px; }
}
@media(max-width:1000px) {
  .site-header { position:relative; height:96px; }
  .site-header nav { display:none; position:absolute; inset:96px 0 auto; flex-direction:column; gap:8px; margin:0; padding:22px 36px 28px; background:var(--ivory); z-index:5; border-bottom:1px solid #bdc4bf; box-shadow:0 14px 20px #0c273a15; font-size:18px; }
  .site-header nav.open { display:flex; }
  .site-header nav a { padding-block:10px; }
  .site-header nav a:after { display:none; }
  .site-header nav a[aria-current] { font-weight:700; color:#79633f; }
  .header-cta { margin-left:auto; }
  .menu-toggle { display:flex; order:3; flex:none; flex-direction:column; justify-content:center; align-items:center; gap:7px; width:44px; min-height:44px; border:0; padding:9px; background:transparent; }
  .menu-toggle i { width:25px; height:1px; background:var(--ink); }
  .hero { min-height:710px; }
  .hero-copy { padding-top:88px; }
  .hero-credential { flex-direction:column; align-items:flex-start; gap:3px; }
  .open-invitation { align-items:flex-start; flex-direction:column; gap:24px; }
  .contact-section,.faq-section { grid-template-columns:1fr; gap:44px; }
  .contact-prep { padding-top:0; }
  .footer-top p { max-width:250px; }
}
@media(max-width:760px) {
  html { scroll-padding-top:24px; }
  body { font-size:17px; }
  .wrap { width:calc(100% - 44px); }
  h2 { font-size:clamp(31px,6.7vw,38px); }
  .eyebrow { font-size:12px; margin-bottom:21px; }
  .section { padding-block:72px; }
  .site-header { height:88px; padding:16px 22px; gap:16px; }
  .wordmark>.brand-lockup { font-size:28px; }
  .wordmark small { font-size:9px; }
  .site-header nav { inset:88px 0 auto; padding-inline:26px; }
  .header-cta { font-size:14px; padding:10px 13px; gap:18px; }
  .button { font-size:15px; min-height:54px; padding:14px 20px; gap:30px; }
  .text-link { font-size:15px; gap:32px; }
  .hero { height:auto; min-height:690px; max-height:none; }
  .hero-copy { padding-top:64px; padding-bottom:112px; }
  .hero-credential { padding-left:16px; margin-bottom:28px; gap:5px; }
  .hero-credential strong { font-size:20px; }
  .hero-credential>span { font-size:15px; }
  .hero h1 { font-size:clamp(32px,8.7vw,46px); line-height:1.55; }
  .hero-copy>p { font-size:17px; line-height:1.95; margin-top:26px; }
  .hero-actions { margin-top:31px; gap:22px; }
  .hero-link { font-size:15px; gap:16px; }
  .hero-bottom { bottom:24px; left:0; right:0; }
  .hero-bottom a { font-size:12px; }
  .approach,.principles,.lawyer-preview { grid-template-columns:1fr; gap:36px; }
  .approach-body .lead { font-size:26px; }
  .approach-body>p:not(.lead) { font-size:17px; }
  .practice-section { padding-block:72px; }
  .section-heading { margin-bottom:36px; }
  .practice-intro { font-size:17px; }
  .practice-list { grid-template-columns:1fr; }
  .practice-list>a { grid-template-columns:25px minmax(0,1fr) 22px; padding-block:26px; gap:7px 12px; }
  .practice-list h3 { font-size:26px; }
  .practice-list p { font-size:15px; }
  .area-no { font-size:13px; }
  .open-invitation { display:flex; gap:22px; padding-top:24px; }
  .open-invitation h3 { font-size:26px; }
  .open-invitation p { font-size:16px; }
  .open-invitation .text-link { margin-top:0; }
  .lawyer-name { padding:26px 0 0; }
  .small-label { font-size:14px; }
  .lawyer-name h3 { font-size:42px; }
  .lawyer-name h3 small { font-size:15px; margin-left:12px; }
  .education { font-size:21px; }
  .lawyer-name>p:not(.education) { font-size:17px; }
  .closing-inner { grid-template-columns:1fr; padding-block:66px; gap:32px; }
  .closing h2 { font-size:36px; }
  .closing p { font-size:17px; }
  .site-footer { padding:42px 22px 28px; }
  .footer-top { gap:22px; }
  .footer-top .wordmark>.brand-lockup { font-size:26px; }
  .footer-top p { max-width:none; font-size:14px; }
  .top-link { font-size:13px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:18px; font-size:13px; }
  .footer-bottom>p:last-child { text-align:left; font-size:12px; }
  .sub-hero { padding-top:60px; padding-bottom:48px; }
  .sub-hero h1 { font-size:clamp(32px,7.7vw,44px); line-height:1.55; }
  .sub-hero>p { font-size:17px; margin-top:24px; }
  .attorney { padding-block:60px; }
  .attorney-grid { grid-template-columns:1fr; gap:44px; }
  .attorney-portrait { width:100%; max-width:440px; min-height:420px; margin-inline:auto; padding-inline:32px; }
  .portrait-name { font-size:42px; }
  .portrait-rule { margin-top:28px; }
  .portrait-detail { font-size:12px; }
  .attorney-bio h2 { font-size:34px; }
  .attorney-degree { margin-top:28px; padding-left:20px; }
  .attorney-degree p { font-size:28px; }
  .attorney-bio>p { font-size:17px; }
  .about-visual { height:340px; }
  .about-quote { left:22px; top:74px; }
  .about-quote h2 { font-size:36px; }
  .principle-list article { gap:22px; }
  .principle-list article>span { font-size:13px; }
  .principle-list h3 { font-size:26px; }
  .principle-list p { font-size:17px; }
  .practice-detail>summary { grid-template-columns:25px minmax(0,1fr) 22px; gap:7px 12px; padding:25px 0; }
  .practice-detail>summary strong { font-size:26px; }
  .practice-detail>summary small { grid-column:2; grid-row:2; font-size:15px; }
  .practice-detail>summary .detail-no { font-size:13px; }
  .practice-detail>summary .expand-icon { grid-column:3; grid-row:1/3; }
  .practice-expanded { grid-template-columns:1fr; gap:28px; padding:30px 20px 34px; }
  .practice-expanded h2 { font-size:27px; }
  .practice-expanded>div>p,.practice-support li { font-size:16px; }
  .practice-prep h3 { font-size:14px; }
  .practice-prep p { font-size:15px; }
  .contact-info { padding:32px 24px; }
  .contact-info h2,.contact-prep h2 { font-size:32px; }
  .contact-info dt { font-size:14px; }
  .contact-info dd { font-size:20px; }
  .contact-note { font-size:15px; }
  .contact-prep h3 { font-size:20px; }
  .contact-prep p { font-size:16px; }
  .faq-section h2 { font-size:31px; }
  .faq-list summary { font-size:17px; }
  .faq-list details>p { font-size:16px; }
  .card-spec p,.card-download p { font-size:15px; }
  .card-spec dl>div { font-size:14px; }
}
@media(max-width:600px) {
  .header-cta { display:none; }
  .menu-toggle { margin-left:auto; }
}
@media(max-width:420px) {
  .wordmark>.brand-lockup { font-size:25px; }
  .footer-top .wordmark>.brand-lockup { font-size:24px; }
  .hero-credential strong { font-size:19px; }
  .hero-copy>p { font-size:16px; }
  .portrait-frame { inset:18px; }
  .attorney-portrait figcaption { bottom:30px; }
  .portrait-placeholder .eyebrow { font-size:11px; margin-bottom:24px; }
  .portrait-name { font-size:38px; }
  .portrait-status { font-size:16px; }
}

/* Crop the right wall, then at most the right quarter of the door.
   The door occupies x=1060..1410, y=32..768 in the 1536x1024 artwork.
   The shift grows continuously below 1200px. Its image-relative cap is
   (126px of wall + 350px door width / 4) / 1536px = 13.8997395833%.
   The shared photo/shade geometry preserves the doorway's brightness. */
.hero-image,
.about-visual img,
.hero-shade,
.about-visual:after {
  position:absolute;
  inset:0 0 auto auto;
  width:auto;
  max-width:none;
  height:min(130%,200vw);
  aspect-ratio:3 / 2;
  transform:translateX(clamp(0px,calc(240px - 20vw),13.8997395833%));
}
.hero-image,
.about-visual img {
  opacity:1;
  object-fit:contain;
  object-position:right top;
}
.hero-shade,
.about-visual:after {
  /* The shade moves with the photograph, keeping each part equally bright
     at every width instead of darkening the doorway as it moves left. */
  background:linear-gradient(90deg,rgba(8,20,31,.68),rgba(8,20,31,.26) 52%,rgba(8,20,31,.08) 68%);
  pointer-events:none;
}
/* Ease each photograph into its original muted teal background over
   the left half of the wall, reaching full opacity before the doorway. */
.hero-image,
.hero-shade,
.about-visual img,
.about-visual:after {
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%);
}
/* Keep the promise doorway within the centered 1240px content area.
   Blend the last 8% of the photo into its own dark wall colors first;
   the shadow then eases into teal over another 360px outside the photo. */
@media(min-width:1240px) {
  .about-visual:before {
    content:'';
    position:absolute;
    top:0;
    left:calc(50% + 540px);
    width:440px;
    height:130%;
    /* Match the shaded photograph's right edge from ceiling to floor.
       The first 80px sit behind the photo so its mask never meets teal. */
    background:linear-gradient(180deg,#060e17 0%,#0a121c 12.5%,#0b1420 25%,#0a121c 37.5%,#09111a 50%,#0a121b 62.5%,#181c22 75%,#1d2228 100%);
    -webkit-mask-image:linear-gradient(90deg,#000 0px,#000 80px,rgba(0,0,0,.98) 125px,rgba(0,0,0,.88) 185px,rgba(0,0,0,.65) 245px,rgba(0,0,0,.35) 310px,rgba(0,0,0,.12) 370px,rgba(0,0,0,.025) 415px,transparent 440px);
    mask-image:linear-gradient(90deg,#000 0px,#000 80px,rgba(0,0,0,.98) 125px,rgba(0,0,0,.88) 185px,rgba(0,0,0,.65) 245px,rgba(0,0,0,.35) 310px,rgba(0,0,0,.12) 370px,rgba(0,0,0,.025) 415px,transparent 440px);
    pointer-events:none;
  }
  .about-visual img,
  .about-visual:after {
    right:max(0px,calc((100% - 1240px) / 2));
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%,#000 92%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.5) 96%,rgba(0,0,0,.1) 98%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%,#000 92%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.5) 96%,rgba(0,0,0,.1) 98%,transparent 100%);
  }
}
/* Use a centered 1560px boundary for the homepage doorway.
   Its taller photo needs 160px of shadow overlap; another 360px then
   fades the dark wall into the original background without a hard edge. */
@media(min-width:1560px) {
  .hero:before {
    content:'';
    position:absolute;
    top:0;
    left:calc(50% + 620px);
    width:520px;
    height:130%;
    background:linear-gradient(180deg,#060e17 0%,#0a121c 12.5%,#0b1420 25%,#0a121c 37.5%,#09111a 50%,#0a121b 62.5%,#181c22 75%,#1d2228 100%);
    -webkit-mask-image:linear-gradient(90deg,#000 0px,#000 160px,rgba(0,0,0,.98) 205px,rgba(0,0,0,.88) 265px,rgba(0,0,0,.65) 325px,rgba(0,0,0,.35) 390px,rgba(0,0,0,.12) 450px,rgba(0,0,0,.025) 495px,transparent 520px);
    mask-image:linear-gradient(90deg,#000 0px,#000 160px,rgba(0,0,0,.98) 205px,rgba(0,0,0,.88) 265px,rgba(0,0,0,.65) 325px,rgba(0,0,0,.35) 390px,rgba(0,0,0,.12) 450px,rgba(0,0,0,.025) 495px,transparent 520px);
    pointer-events:none;
  }
  .hero-image,
  .hero-shade {
    right:max(0px,calc((100% - 1560px) / 2));
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%,#000 92%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.5) 96%,rgba(0,0,0,.1) 98%,transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 10%,rgba(0,0,0,.5) 25%,rgba(0,0,0,.9) 40%,#000 50%,#000 92%,rgba(0,0,0,.9) 94%,rgba(0,0,0,.5) 96%,rgba(0,0,0,.1) 98%,transparent 100%);
  }
}
.hero-credential,
.hero h1,
.hero-copy>p,
.hero-link,
.about-quote {
  text-shadow:0 1px 3px rgba(8,20,31,.8);
}

/* Shared header spacing. */
.site-header { gap:24px; }
.site-header nav { gap:26px; }
/* English typography uses natural word wrapping and a readable serif. */
html:lang(en) { --serif:Georgia,'Times New Roman',serif; --sans:Arial,'Helvetica Neue',SiSans,sans-serif; }
html:lang(en) body { word-break:normal; }
html:lang(en) h1,html:lang(en) h2 { letter-spacing:-.025em; line-height:1.23; }
html:lang(en) .wordmark { align-items:center; text-align:center; }
html:lang(en) .wordmark>.brand-lockup { font-size:31px; letter-spacing:.08em; }
html:lang(en) .wordmark .brand-main { margin-inline-end:-.015em; }
html:lang(en) .wordmark small { align-self:center; letter-spacing:.21em; margin-inline-end:-.21em; white-space:nowrap; transform:translateX(-2px); }
html:lang(en) .hero h1 { font-size:clamp(45px,4.6vw,68px); line-height:1.18; max-width:880px; }
html:lang(en) .hero-credential { flex-direction:column; align-items:flex-start; gap:5px; }
html:lang(en) .hero-credential strong { font-size:20px; }
html:lang(en) .hero-copy>p { max-width:650px; }
html:lang(en) .hero-bottom { letter-spacing:.03em; }
html:lang(en) .sub-hero h1 { max-width:1050px; }
html:lang(en) .section-heading>div { min-width:0; }
html:lang(en) .section-heading>.text-link { flex:none; }
html:lang(en) .practice-list h3 { font-size:27px; }
html:lang(en) .practice-detail>summary strong { font-size:27px; letter-spacing:-.015em; }
html:lang(en) .practice-expanded h2 { line-height:1.3; }
html:lang(en) .lawyer-name h3 { font-size:40px; }
html:lang(en) .lawyer-name h3 small { display:block; margin:8px 0 18px; }
html:lang(en) .attorney-degree p { font-size:28px; }
html:lang(en) .about-quote { max-width:calc(100% - 44px); }
html:lang(en) .footer-top p { line-height:1.6; }
html:lang(en) .contact-info dd { overflow-wrap:anywhere; }

@media(max-width:1100px) {
  .site-header { gap:20px; }
  .site-header nav { gap:21px; }
}
@media(max-width:1000px) {
  .site-header { display:grid; grid-template-columns:minmax(0,1fr) 44px; grid-template-rows:auto; }
  .site-header>.wordmark { grid-column:1; grid-row:1; justify-self:start; min-width:0; }
  .site-header>.menu-toggle { grid-column:2; grid-row:1; justify-self:end; margin:0; }
  .site-header nav { top:100%; bottom:auto; }
  html:lang(en) .section-heading { align-items:flex-start; flex-direction:column; }
}
@media(max-width:760px) {
  html:lang(en) .hero h1 { font-size:clamp(35px,7.4vw,50px); }
  html:lang(en) .hero-credential strong { font-size:18px; }
  html:lang(en) .hero-copy>p { font-size:17px; }
  html:lang(en) .practice-list h3,html:lang(en) .practice-detail>summary strong { font-size:26px; }
  html:lang(en) .attorney-degree p { font-size:25px; }
  html:lang(en) .closing h2 { font-size:36px; }
}
@media(max-width:600px) {
  .site-header { grid-template-columns:minmax(0,1fr) 32px; height:88px; min-height:88px; padding:16px; gap:8px; }
  .site-header>.menu-toggle { grid-column:2; grid-row:1; justify-self:end; width:32px; padding:4px; margin:0; }
  .site-header>.menu-toggle i { width:24px; }
  .site-header nav { inset:100% 0 auto; }
  html:lang(en) .wordmark>.brand-lockup { font-size:28px; }
  html:lang(en) .hero-copy { padding-top:56px; }
  html:lang(en) .hero h1 { font-size:clamp(34px,7.7vw,44px); }
  html:lang(en) .hero-credential strong { max-width:250px; }
  html:lang(en) .hero-copy>p br { display:none; }
}
@media(max-width:360px) {
  .site-header { padding-inline:14px; gap:6px; }
  .site-header>.wordmark>.brand-lockup { font-size:22px; }
  html:lang(en) .site-header>.wordmark>.brand-lockup { font-size:26px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  a { transition:none; }
}

.contact-note-row { display:flex; align-items:center; gap:12px; margin-top:24px; }
.contact-note-row .contact-note { margin:0; flex:0 1 auto; min-width:0; }
.bizcard-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  min-height:44px;
  padding:8px 13px;
  border:1px solid #4a6067;
  border-radius:3px;
  background:#526970;
  color:#f7f4ed;
  font-size:14px;
  line-height:1.4;
  white-space:nowrap;
}
.bizcard-link:hover { background:#435b62; border-color:#3b5259; }
.bizcard-link:active { background:#3b5259; }
.bizcard-link:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
/* Original JC emblem, firm name and Justice & Challenge slogan as one unit.
   The card artwork stays untouched; this viewport shows only its brand area
   (KO: x=645, y=74, w=915, h=233). The source width comes from the
   current card PNG, including the 1666px-wide English card. */
.wordmark {
  flex-direction:row;
  align-items:center;
  gap:20px;
  text-align:left;
}
.wordmark>.firm-lockup {
  --firm-width:280px;
  position:relative;
  display:block;
  flex:none;
  width:var(--firm-width);
  aspect-ratio:915 / 233;
  overflow:hidden;
  mix-blend-mode:multiply;
}
.firm-lockup>img {
  opacity:0;
  position:absolute;
  left:-70.4918032787%;
  top:-31.7596566524%;
  width:calc(100% * var(--card-width) / 915);
  height:auto;
  max-width:none;
}
.firm-lockup>img.is-ready { opacity:1; }
/* The English card uses the same-sized emblem, shifted right in its source.
   Crop x=725..1560 and retain the Korean source's scale at every breakpoint. */
.wordmark>.firm-lockup-en {
  width:calc(var(--firm-width) * 835 / 915);
  aspect-ratio:835 / 233;
}
.firm-lockup-en>img { left:-86.8263473054%; width:calc(100% * var(--card-width) / 835); }
.wordmark>.office-lockup {
  display:flex;
  align-items:baseline;
  gap:8px;
  border-left:1px solid #b79c7266;
  padding-left:20px;
  white-space:nowrap;
  line-height:1.4;
  letter-spacing:0;
}
.office-name { font:700 30px/1.4 var(--serif); }
.office-description { font:14px/1.4 var(--sans); }
.wordmark>.office-lockup-en { flex-direction:column; align-items:flex-start; gap:5px; }
.office-lockup-en .office-name { font-size:23px; letter-spacing:.025em; }
.office-lockup-en .office-description { font-size:9px; letter-spacing:.12em; }
.footer-top .wordmark { gap:16px; }
.footer-top .wordmark>.firm-lockup { --firm-width:256px; }
.footer-top .wordmark>.office-lockup { padding-left:16px; }
.footer-top .office-name { font-size:28px; }
.footer-top .office-lockup-en .office-name { font-size:21px; }
/* Match the tagline's center to the office description when side by side. */
.footer-top>p { transform:translateY(var(--footer-tagline-offset,0px)); }
@media(max-width:1100px) {
  .wordmark { gap:16px; }
  .wordmark>.firm-lockup { --firm-width:254px; }
  .wordmark>.office-lockup { padding-left:16px; }
  .office-name { font-size:28px; }
  .footer-top { flex-wrap:wrap; }
}
@media(max-width:600px) {
  .site-header { height:auto; min-height:128px; padding-block:12px 16px; }
  .site-header,.footer-top {
    --mobile-firm-width:236px;
    --slogan-center-offset:min(calc(var(--mobile-firm-width) * 132 / 915),14.4262295082%);
  }
  html:lang(en) .site-header,html:lang(en) .footer-top {
    --slogan-center-offset:min(calc(var(--mobile-firm-width) * 127 / 915),15.2095808383%);
  }
  .wordmark,.footer-top .wordmark { flex-direction:column; align-items:flex-start; gap:7px; }
  /* Center the firm artwork in the column reserved beside the menu. */
  .site-header>.wordmark { justify-self:stretch; align-items:center; text-align:center; }
  .site-header>.wordmark>.office-lockup { padding-left:0; justify-content:center; }
  .site-header>.wordmark>.office-lockup-en { align-items:center; }
  .wordmark>.firm-lockup,.footer-top .wordmark>.firm-lockup { --firm-width:var(--mobile-firm-width); max-width:100%; }
  .wordmark>.office-lockup,.footer-top .wordmark>.office-lockup { border-left:0; padding-left:71px; gap:6px; }
  .office-name,.footer-top .office-name { font-size:23px; }
  .office-description { font-size:13px; }
  .wordmark>.office-lockup-en { gap:2px; }
  .office-lockup-en .office-name,.footer-top .office-lockup-en .office-name { font-size:17px; }
  .office-lockup-en .office-description { font-size:8px; letter-spacing:.07em; }
  /* Reserve a separate column for the back-to-top link. */
  .footer-top { display:grid; grid-template-columns:minmax(0,1fr) max-content; gap:22px 12px; }
  .footer-top>.wordmark { grid-column:1; grid-row:1; min-width:0; justify-self:stretch; align-items:center; text-align:center; }
  .footer-top>.wordmark>.office-lockup { padding-left:0; justify-content:center; }
  .footer-top>.wordmark>.office-lockup-en { align-items:center; }
  .footer-top>p { grid-column:1; grid-row:2; text-align:center; }
  .footer-top>.top-link { grid-column:2; grid-row:1; align-self:end; justify-self:end; white-space:nowrap; margin:0; padding-block:6px; }
  /* Both the office name and footer tagline follow the artwork slogan's
     center: x=1234.5 (KO), x=1269.5 (EN).
     Relative left percentages use the available column, so min() also
     follows the artwork when it shrinks on very narrow screens. */
  .site-header>.wordmark>.office-lockup,.footer-top>.wordmark>.office-lockup,
  .footer-top>p {
    position:relative;
    left:var(--slogan-center-offset);
  }
  .site-header>.wordmark>.office-lockup,.footer-top>.wordmark>.office-lockup {
    left:calc(var(--slogan-center-offset) - 1px);
  }
}
@media(max-width:360px) {
  .site-header,.footer-top { --mobile-firm-width:224px; }
  .wordmark>.office-lockup { padding-left:68px; }
  .office-name,.footer-top .office-name { font-size:22px; }
}

/* Keep the header and footer on the same centered, 1240px track as .wrap. */
@media(min-width:1101px) {
  .site-header,.site-footer {
    padding-inline:max(56px,calc((100% - 1240px) / 2));
  }
}

/* Desktop icons center beneath the name, independently of the © prefix. */
.footer-meta { display:grid; grid-template-columns:max-content minmax(0,1fr); align-content:start; gap:8px 0; min-width:0; }
.footer-copyright { display:contents; }
.footer-copyright-prefix { grid-column:1; grid-row:1; white-space:pre; }
.footer-copyright-name { grid-column:2; grid-row:1; text-align:right; }
.footer-social { grid-column:2; grid-row:2; justify-self:center; display:flex; align-items:center; justify-content:center; gap:8px; }
.footer-social a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; flex:none; border-radius:3px; }
.footer-social svg { display:block; flex:none; }
.footer-social a:hover { opacity:.8; }
.footer-social a:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media(max-width:760px) {
  /* Keep the mobile icon group at the right end of the footer rule. */
  .footer-meta { display:flex; align-items:center; justify-content:space-between; width:100%; gap:12px; }
  .footer-copyright { display:block; flex:0 1 auto; min-width:0; font-size:12px; text-align:left; }
  .footer-copyright-name { text-align:left; }
  .footer-social { flex:none; justify-content:flex-end; }
}
