:root {
  --teal: #008585;
  --black: #080909;
  --white: #ffffff;
  --line: #d9dddd;
  --soft: #f3f5f4;
  --muted: #646a6a;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--white);
  color: var(--black);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.site-header {
  align-items: center;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--line);
  display: flex;
  height: 96px;
  justify-content: space-between;
  padding: 0 5vw;
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand img { height: auto; width: 250px; }
.desktop-nav { align-items: center; display: flex; gap: 34px; }
.desktop-nav a {
  font-size: 13px;
  letter-spacing: .08em;
  padding: 12px 0;
  position: relative;
  text-transform: uppercase;
}
.desktop-nav a::after {
  background: var(--teal);
  bottom: 4px;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
  width: 100%;
}
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); }
.mobile-nav { display: none; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, .65fr);
  min-height: 720px;
}
.hero-copy {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 110px 8vw 110px 8vw;
}
.eyebrow, .section-number {
  color: var(--teal);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .16em;
  margin: 0 0 32px;
  text-transform: uppercase;
}
h1, h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.045em;
  margin: 0;
}
h1 { font-size: clamp(54px, 6.2vw, 100px); line-height: .97; max-width: 1000px; }
h2 { font-size: clamp(42px, 4.6vw, 72px); line-height: 1.02; }
.hero-intro {
  color: #3e4242;
  font-size: 18px;
  line-height: 1.75;
  margin: 44px 0 0;
  max-width: 650px;
}
.hero-actions { align-items: center; display: flex; gap: 30px; margin-top: 48px; }
.button {
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  justify-content: center;
  letter-spacing: .11em;
  padding: 17px 24px;
  text-transform: uppercase;
}
.button-dark { background: var(--black); color: var(--white); }
.button-dark:hover { background: var(--teal); }
.text-link {
  align-items: center;
  border-bottom: 1px solid var(--teal);
  display: inline-flex;
  font-size: 14px;
  gap: 22px;
  padding: 0 0 7px;
}
.decade-mark {
  align-items: center;
  background: var(--black);
  color: var(--white);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 60px 4vw 74px;
}
.ten {
  color: var(--teal);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(160px, 20vw, 330px);
  letter-spacing: -.1em;
  line-height: .72;
  padding-right: .08em;
}
.years { border-top: 1px solid #414545; font-size: 16px; letter-spacing: .06em; line-height: 1.5; margin-top: 52px; padding-top: 22px; text-transform: uppercase; width: 100%; }

.firm-intro, .impact {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 8vw;
  grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr);
  padding: 120px 8vw;
}
.intro-copy > p:first-child { color: var(--black); font-family: Georgia, "Times New Roman", serif; font-size: 30px; line-height: 1.4; margin-top: 0; }
.intro-copy > p:not(:first-child), .section-heading > p, .people-heading > p, .impact > div > p {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}
.intro-copy .text-link { margin-top: 24px; }

.expertise { background: var(--soft); padding: 120px 8vw; }
.section-heading {
  align-items: end;
  display: grid;
  gap: 8vw;
  grid-template-columns: 1.25fr .75fr;
  margin-bottom: 76px;
}
.section-heading > p { margin: 0; max-width: 420px; }
.practice-list { border-top: 1px solid #bfc5c4; }
.practice-row {
  align-items: center;
  border-bottom: 1px solid #bfc5c4;
  display: grid;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(20px, 2.15vw, 34px);
  gap: 28px;
  grid-template-columns: 50px minmax(0, 1fr);
  padding: 25px 4px;
  transition: color .15s ease, padding .15s ease;
}
.practice-row:hover { color: var(--teal); padding-left: 12px; }
.practice-index { color: var(--teal); font-family: Arial, sans-serif; font-size: 11px; letter-spacing: .12em; }
.practice-name { justify-self: start; min-width: 0; text-align: left; }

.recognition {
  background: var(--black);
  color: var(--white);
  display: grid;
  gap: 8vw;
  grid-template-columns: .85fr 1.15fr;
  padding: 120px 8vw;
}
.section-number-light { color: #6fc4c4; }
.recognition-items { border-top: 1px solid #404343; }
.recognition-items article { border-bottom: 1px solid #404343; padding: 34px 0; }
.recognition-year { color: #6fc4c4; font-size: 12px; letter-spacing: .14em; margin: 0 0 15px; text-transform: uppercase; }
.recognition-items h3 { font-family: Georgia, "Times New Roman", serif; font-size: 30px; font-weight: 400; margin: 0 0 10px; }
.recognition-items article > p:last-child { color: #b7bbbb; line-height: 1.6; margin: 0; }
.recognition-subtitle { color: #b7bbbb; line-height: 1.6; margin: 0 0 22px; }
.recognition-awards { list-style: none; margin: 0; padding: 0; }
.recognition-awards li {
  border-top: 1px solid #303333;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  line-height: 1.35;
  padding: 16px 0 16px 24px;
  position: relative;
}
.recognition-awards li::before { color: #6fc4c4; content: "•"; left: 0; position: absolute; }
.recognition-badges {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 30px;
  max-width: 720px;
}
.recognition-badges img {
  aspect-ratio: 1;
  filter: brightness(0) invert(1);
  height: auto;
  object-fit: contain;
  opacity: .96;
  width: 100%;
}

.people { padding: 120px 8vw; }
.people-grid { display: grid; gap: 30px; grid-template-columns: repeat(3, 1fr); }
.portrait { aspect-ratio: 4 / 5; background: var(--soft); display: flex; overflow: hidden; }
.portrait img { height: 100%; object-fit: cover; object-position: center top; transition: transform .4s ease; width: 100%; }
.portrait:hover img { transform: scale(1.015); }
.portrait img[alt="Sarah Tiong Wei Shin"],
.profile-image img[alt="Sarah Tiong Wei Shin"] { transform: scale(1.25); }
.portrait:hover img[alt="Sarah Tiong Wei Shin"] { transform: scale(1.27); }
.portrait span { align-items: center; color: var(--teal); display: flex; font-family: Georgia, "Times New Roman", serif; font-size: 84px; justify-content: center; width: 100%; }
.person-meta { align-items: start; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding: 23px 0 20px; }
.person-meta h3 { font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 400; margin: 0 0 7px; }
.person-meta p { color: var(--muted); font-size: 12px; letter-spacing: .11em; margin: 0; text-transform: uppercase; }
.person-email { color: var(--teal); font-size: 18px; padding: 6px; }

.impact { background: var(--soft); }
.impact > div { max-width: 760px; }
.impact > div > p { max-width: 680px; }
.impact .text-link { margin-top: 20px; }

.contact {
  background: var(--white);
  color: var(--black);
  display: grid;
  gap: 8vw;
  grid-template-columns: 1fr 1fr;
  padding: 110px 8vw;
}
.contact .section-number-light { color: var(--teal); }
.contact-details { align-self: end; border-top: 1px solid var(--line); display: grid; gap: 50px; grid-template-columns: 1.15fr .85fr; padding-top: 26px; }
.contact address { font-size: 15px; font-style: normal; line-height: 1.75; }
.contact-details > div { color: var(--teal); display: flex; flex-direction: column; gap: 12px; font-size: 14px; }

footer {
  align-items: center;
  background: var(--white);
  display: grid;
  font-size: 12px;
  gap: 40px;
  grid-template-columns: 1fr auto auto;
  padding: 50px 5vw;
}
footer img { width: 210px; }
footer p { color: var(--muted); line-height: 1.4; margin: 0; }
.footer-links { align-items: center; display: flex; gap: 28px; line-height: 1.4; }
.footer-links a { border-bottom: 1px solid transparent; color: var(--muted); }
.footer-links a:hover, .footer-links a:focus-visible { border-color: var(--teal); color: var(--black); }

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .mobile-nav { display: block; position: relative; }
  .mobile-nav summary { cursor: pointer; font-size: 12px; letter-spacing: .12em; list-style: none; text-transform: uppercase; }
  .mobile-nav nav { background: var(--white); border: 1px solid var(--line); display: flex; flex-direction: column; min-width: 220px; padding: 16px; position: absolute; right: 0; top: 35px; }
  .mobile-nav nav a { border-bottom: 1px solid var(--line); font-size: 13px; padding: 12px 4px; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 650px; padding-left: 6vw; padding-right: 6vw; }
  .decade-mark { min-height: 380px; padding-left: 6vw; padding-right: 6vw; }
  .ten { font-size: 230px; }
  .firm-intro, .impact, .recognition, .contact { grid-template-columns: 1fr; padding-left: 6vw; padding-right: 6vw; }
  .section-heading { align-items: start; grid-template-columns: 1fr; }
  .people-grid { grid-template-columns: 1fr 1fr; }
  .contact-details { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .site-header { height: 78px; padding: 0 22px; }
  .brand img { width: 190px; }
  .hero-copy { min-height: 610px; padding: 80px 24px; }
  h1 { font-size: 52px; }
  .hero-intro { font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .decade-mark { min-height: 330px; padding: 50px 24px; }
  .ten { font-size: 190px; }
  .firm-intro, .impact, .expertise, .recognition, .people, .contact { padding: 84px 24px; }
  .practice-row { font-size: 21px; gap: 12px; grid-template-columns: 36px minmax(0, 1fr); padding: 21px 0; }
  .people-grid { grid-template-columns: 1fr; }
  .contact-details { grid-template-columns: 1fr; }
  footer { align-items: start; gap: 24px; grid-template-columns: 1fr; padding: 38px 24px; }
  footer img { width: 190px; }
  .footer-links { flex-wrap: wrap; gap: 12px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Interior pages */
.inner-hero {
  border-bottom: 1px solid var(--line);
  padding: 135px 8vw 110px;
}
.inner-hero h1 { font-size: clamp(58px, 7vw, 108px); max-width: 1050px; }
.inner-hero > p:last-child { color: var(--muted); font-size: 18px; line-height: 1.7; margin: 40px 0 0; max-width: 700px; }
.firm-story {
  display: grid;
  gap: 8vw;
  grid-template-columns: .7fr 1.3fr;
  padding: 110px 8vw;
}
.firm-story > div { max-width: 760px; }
.lead-copy, .profile-introduction { font-family: Georgia, "Times New Roman", serif; font-size: 31px; line-height: 1.45; margin: 0 0 30px; }
.firm-story > div > p:last-child, .profile-copy { color: var(--muted); font-size: 16px; line-height: 1.8; }
.values-grid { background: var(--soft); display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 8vw; }
.values-grid article { border-left: 1px solid var(--line); padding: 80px 45px; }
.values-grid article:last-child { border-right: 1px solid var(--line); }
.values-grid span { color: var(--teal); font-size: 11px; letter-spacing: .12em; }
.values-grid h2 { font-size: 42px; margin: 42px 0 22px; }
.values-grid p { color: var(--muted); line-height: 1.7; }
.expertise-page-list { padding: 30px 8vw 110px; }
.expertise-page-list article { align-items: start; border-bottom: 1px solid var(--line); display: grid; gap: 35px; grid-template-columns: 45px 1fr 1fr; padding: 36px 0; }
.expertise-page-list article > span { color: var(--teal); font-size: 11px; letter-spacing: .12em; padding-top: 9px; }
.expertise-page-list h2 { font-size: clamp(25px, 3vw, 42px); }
.expertise-page-list p { color: var(--muted); line-height: 1.7; margin: 5px 0 0; max-width: 520px; }
.profile-hero {
  align-items: center;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: clamp(60px, 8vw, 130px);
  grid-template-columns: minmax(300px, 430px) minmax(0, 1fr);
  margin: 0 auto;
  max-width: 1500px;
  padding: 100px 8vw 110px;
}
.profile-image {
  align-items: center;
  aspect-ratio: 4 / 5;
  background: var(--soft);
  box-shadow: 24px 24px 0 rgba(0, 133, 133, .08);
  display: flex;
  justify-content: center;
  overflow: hidden;
  width: 100%;
}
.profile-image img { height: 100%; object-fit: cover; object-position: center top; width: 100%; }
.profile-image span { color: var(--teal); font-family: Georgia, "Times New Roman", serif; font-size: clamp(120px, 18vw, 260px); }
.profile-title { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: 30px 0; }
.profile-title h1 { font-size: clamp(60px, 7vw, 110px); }
.profile-role { color: var(--muted); font-size: 13px; letter-spacing: .14em; margin: 27px 0 38px; text-transform: uppercase; }
.profile-body { display: grid; gap: 9vw; grid-template-columns: 1.25fr .75fr; padding: 110px 8vw; }
.profile-aside { border-top: 1px solid var(--line); }
.profile-aside > div { border-bottom: 1px solid var(--line); padding: 28px 0; }
.profile-aside h2 { font-family: Arial, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.profile-aside ul { list-style: none; margin: 23px 0 0; padding: 0; }
.profile-aside li { color: var(--muted); font-size: 14px; line-height: 1.55; margin: 0 0 12px; }
.profile-accordion-section { background: var(--soft); padding: 110px 8vw 120px; }
.profile-accordion-intro { display: grid; gap: 8vw; grid-template-columns: .55fr 1.45fr; margin: 0 auto 62px; max-width: 1340px; }
.profile-accordion-intro > p:last-child { font-family: Georgia, "Times New Roman", serif; font-size: clamp(27px, 3vw, 43px); line-height: 1.28; margin: 0; max-width: 940px; }
.profile-accordion-list { background: #e9eceb; margin: 0 auto; max-width: 1340px; padding: 34px; }
.profile-accordion { background: var(--white); margin-bottom: 18px; }
.profile-accordion:last-child { margin-bottom: 0; }
.profile-accordion summary { align-items: center; color: var(--teal); cursor: pointer; display: flex; font-family: Georgia, "Times New Roman", serif; font-size: clamp(24px, 2.4vw, 35px); justify-content: space-between; list-style: none; min-height: 104px; padding: 26px 32px; }
.profile-accordion summary::-webkit-details-marker { display: none; }
.profile-accordion summary::marker { content: ""; }
.profile-accordion summary:hover, .profile-accordion summary:focus-visible { color: var(--black); }
.profile-accordion summary:focus-visible { outline: 2px solid var(--teal); outline-offset: -5px; }
.profile-accordion-icon { flex: 0 0 24px; height: 24px; position: relative; width: 24px; }
.profile-accordion-icon::before, .profile-accordion-icon::after { background: currentColor; content: ""; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); transition: transform .2s ease; }
.profile-accordion-icon::before { height: 3px; width: 22px; }
.profile-accordion-icon::after { height: 22px; width: 3px; }
.profile-accordion[open] .profile-accordion-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.profile-accordion-content { border-top: 1px solid var(--line); padding: 42px 32px 48px; }
.profile-longform { columns: 2; column-gap: 70px; }
.profile-longform p { break-inside: avoid; color: #3f4444; font-size: 16px; line-height: 1.78; margin: 0 0 24px; }
.profile-practice-grid { display: grid; gap: 0 48px; grid-template-columns: repeat(2, 1fr); list-style: none; margin: 0; padding: 0; }
.profile-practice-grid li { align-items: baseline; border-bottom: 1px solid var(--line); display: grid; font-size: 17px; gap: 24px; grid-template-columns: 28px 1fr; line-height: 1.5; padding: 22px 0; }
.profile-practice-grid li span, .profile-recognition-list article > span, .profile-publication-list article > span { color: var(--teal); font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.profile-fact-list { display: grid; gap: 0 48px; grid-template-columns: repeat(2, 1fr); }
.profile-fact-list p { border-bottom: 1px solid var(--line); color: #3f4444; line-height: 1.6; margin: 0; padding: 21px 0; }
.profile-recognition-list, .profile-publication-list { display: grid; gap: 54px; grid-template-columns: repeat(2, 1fr); }
.profile-recognition-list article, .profile-publication-list article { border-top: 1px solid var(--black); padding-top: 24px; }
.profile-recognition-list h3, .profile-publication-list h3 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(27px, 3vw, 42px); font-weight: 400; letter-spacing: -.035em; line-height: 1.08; margin: 20px 0; }
.profile-recognition-list p, .profile-publication-list p { color: var(--muted); font-size: 15px; line-height: 1.75; margin: 0; }
.profile-recognition-list .chambers-editorial { border-top: 1px solid var(--line); color: var(--black); margin-top: 27px; padding-top: 24px; }
.chambers-commentary { background: var(--soft); margin-top: 28px; padding: 26px 28px 8px; }
.chambers-commentary > span { color: var(--teal); display: block; font-size: 10px; font-weight: 600; letter-spacing: .13em; margin-bottom: 22px; text-transform: uppercase; }
.chambers-commentary blockquote { border-left: 2px solid var(--teal); color: var(--black); font-family: Georgia, "Times New Roman", serif; font-size: 19px; font-style: italic; line-height: 1.55; margin: 0 0 22px; padding-left: 20px; }
.profile-source-link { border-bottom: 1px solid var(--teal); display: inline-flex; font-size: 12px; font-weight: 600; gap: 18px; letter-spacing: .1em; margin-top: 27px; padding-bottom: 7px; text-transform: uppercase; }
.profile-source-link:hover, .profile-source-link:focus-visible { color: var(--teal); }
.profile-contact { background: var(--black); color: var(--white); padding: 100px 8vw; }
.profile-contact h2 { margin-bottom: 45px; max-width: 900px; }
.button-light { background: var(--white); color: var(--black); }
.button-light:hover { background: var(--teal); color: var(--white); }

/* Pro bono and public interest */
.public-interest-hero > p:last-child { max-width: 790px; }
.case-introduction {
  align-items: center;
  display: grid;
  gap: 7vw;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  padding: 110px 8vw 125px;
}
.case-introduction-copy h2 { margin-bottom: 38px; }
.case-lead {
  color: #3e4242;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  line-height: 1.55;
  margin: 0 0 36px;
  max-width: 700px;
}
.case-citation { font-size: 13px; line-height: 1.7; margin: 0; }
.case-citation a { border-bottom: 1px solid var(--teal); display: inline; padding-bottom: 5px; }
.case-citation span { color: var(--teal); margin-left: 8px; }
.case-feature-image, .case-narrative figure, .case-gallery figure { margin: 0; }
.case-feature-image img { aspect-ratio: 4 / 3; height: 100%; object-fit: cover; width: 100%; }
.case-feature-image figcaption, .case-narrative figcaption, .case-gallery figcaption {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .05em;
  line-height: 1.5;
  padding-top: 12px;
}
.case-narrative {
  align-items: center;
  background: var(--soft);
  display: grid;
  gap: 8vw;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
  padding: 120px 8vw;
}
.case-narrative article { max-width: 760px; }
.case-narrative h2 { font-size: clamp(38px, 4vw, 62px); margin-bottom: 36px; }
.case-narrative article > p:not(.section-number) { color: var(--muted); font-size: 16px; line-height: 1.85; }
.case-narrative figure img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.remedies-section { padding: 120px 8vw; }
.remedies-heading { display: grid; gap: 7vw; grid-template-columns: .8fr 1.2fr; margin-bottom: 75px; }
.remedies-heading .section-number { grid-column: 1 / -1; margin-bottom: -10px; }
.remedies-heading > p:last-child { align-self: end; color: var(--muted); font-size: 16px; line-height: 1.8; margin: 0; max-width: 500px; }
.remedy-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); }
.remedy-grid article { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 300px; padding: 42px 34px; }
.remedy-grid article > span { color: var(--teal); font-size: 11px; letter-spacing: .14em; }
.remedy-grid h3 { font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 400; margin: 52px 0 22px; }
.remedy-grid p { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 0; }
.case-outcome {
  background: var(--black);
  color: var(--white);
  display: grid;
  gap: 8vw;
  grid-template-columns: 1.25fr .75fr;
  padding: 120px 8vw;
}
.case-outcome h2 { font-size: clamp(42px, 4.6vw, 70px); margin-bottom: 42px; }
.case-outcome > div:first-child > p:not(.section-number) { color: #c0c4c4; font-size: 16px; line-height: 1.85; max-width: 820px; }
.outcome-facts { border-top: 1px solid #414545; }
.outcome-facts article { border-bottom: 1px solid #414545; padding: 30px 0; }
.outcome-facts strong { color: #6fc4c4; display: block; font-family: Georgia, "Times New Roman", serif; font-size: 52px; font-weight: 400; line-height: 1; }
.outcome-facts span { color: #b7bbbb; display: block; font-size: 13px; line-height: 1.6; margin-top: 12px; }
.case-gallery { display: grid; gap: 28px; grid-template-columns: 1.35fr .65fr; padding: 120px 8vw; }
.case-gallery img { height: 100%; object-fit: cover; width: 100%; }
.gallery-wide { grid-row: span 2; }
.gallery-wide img { aspect-ratio: 4 / 3; }
.case-gallery > figure:not(.gallery-wide) img { aspect-ratio: 4 / 3; }
.gallery-note { align-self: end; border-top: 1px solid var(--line); padding-top: 28px; }
.gallery-note > p:last-child { color: var(--muted); font-size: 15px; line-height: 1.75; margin: 0; }
.coverage-section { background: var(--soft); display: grid; gap: 8vw; grid-template-columns: .75fr 1.25fr; padding: 120px 8vw; }
.coverage-heading > p:last-child { color: var(--muted); font-size: 15px; line-height: 1.8; max-width: 470px; }
.coverage-list { border-top: 1px solid #bfc5c4; }
.coverage-row { align-items: center; border-bottom: 1px solid #bfc5c4; display: grid; gap: 24px; grid-template-columns: 115px minmax(0, 1fr); padding: 23px 0; width: 100%; }
.coverage-row:hover strong, .coverage-row:focus-visible strong { color: var(--teal); }
.coverage-date { color: var(--teal); font-size: 10px; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.coverage-row strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 22px; font-weight: 400; margin-bottom: 6px; transition: color .15s ease; }
.coverage-row em { color: var(--muted); display: block; font-size: 12px; font-style: normal; line-height: 1.55; }
.coverage-row > span { min-width: 0; }

/* Formal public-interest case report */
.case-report-hero { border-bottom: 1px solid var(--line); padding: 115px 8vw 92px; }
.case-report-hero h1 { font-size: clamp(42px, 5.4vw, 82px); line-height: 1.05; max-width: 1320px; }
.case-report-hero h1 em { color: var(--teal); font-weight: 400; }
.case-report-citation { align-items: center; border-bottom: 1px solid var(--teal); color: var(--teal); display: inline-flex; font-size: 13px; font-weight: 600; gap: 18px; letter-spacing: .1em; margin-top: 42px; padding-bottom: 7px; text-transform: uppercase; }
.case-report { margin: 0 auto; max-width: 1500px; padding: 0 8vw; }
.case-report-opening { font-size: 16px; line-height: 1.85; margin-left: auto; max-width: 900px; padding: 100px 0; }
.case-report-opening p { color: var(--muted); margin: 0 0 25px; }
.case-report-opening .case-report-lead { color: var(--black); font-family: Georgia, "Times New Roman", serif; font-size: clamp(26px, 2.7vw, 40px); line-height: 1.45; margin-bottom: 35px; }
.case-report-opening a, .case-report-copy a { border-bottom: 1px solid var(--teal); color: var(--teal); }
.case-report-feature { margin: 0 0 120px; }
.case-report-feature img { aspect-ratio: 16 / 8.5; object-fit: cover; width: 100%; }
.case-report-feature figcaption, .case-report-pair figcaption { color: var(--muted); font-size: 12px; line-height: 1.5; padding-top: 12px; }
.case-report-section { border-top: 1px solid var(--line); display: grid; gap: 8vw; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); padding: 100px 0 115px; }
.case-report-label span { color: var(--teal); display: block; font-size: 11px; letter-spacing: .15em; margin-bottom: 28px; }
.case-report-label h2 { font-size: clamp(38px, 4.2vw, 62px); }
.case-report-copy { color: var(--muted); font-size: 16px; line-height: 1.85; }
.case-report-copy > p { margin: 0 0 25px; }
.case-order-list { counter-reset: order; list-style: none; margin: 42px 0 50px; padding: 0; }
.case-order-list li { border-top: 1px solid var(--line); color: #343838; counter-increment: order; display: grid; gap: 28px; grid-template-columns: 42px 1fr; padding: 22px 0; }
.case-order-list li:last-child { border-bottom: 1px solid var(--line); }
.case-order-list li::before { color: var(--teal); content: counter(order, decimal-leading-zero); font-size: 11px; font-weight: 600; letter-spacing: .12em; padding-top: 4px; }
.case-report-pair { display: grid; gap: 28px; grid-template-columns: 1fr 1fr; margin-bottom: 120px; }
.case-report-pair figure { margin: 0; }
.case-report-pair img { aspect-ratio: 4 / 3; height: 100%; max-height: 490px; object-fit: cover; width: 100%; }
.counsel-list > div { border-top: 1px solid var(--line); padding: 25px 0; }
.counsel-list > div:last-child { border-bottom: 1px solid var(--line); }
.counsel-list h3 { color: var(--black); font-size: 12px; letter-spacing: .12em; margin: 0 0 12px; text-transform: uppercase; }
.counsel-list p { margin: 0; }
.case-report-contact { background: var(--black); color: var(--white); display: grid; gap: 8vw; grid-template-columns: .65fr 1.35fr; padding: 105px 8vw; }
.case-report-contact h2 { color: var(--white); font-size: clamp(38px, 4.2vw, 66px); max-width: 900px; }
.case-contact-people { display: grid; gap: 28px; grid-template-columns: 1fr 1fr; margin-top: 46px; }
.case-contact-people article { border-top: 1px solid #404343; padding-top: 25px; }
.case-contact-people h3 { color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 26px; font-weight: 400; margin: 0; }
.case-contact-people p { color: #b7bbbb; margin: 12px 0 28px; }

.legal-hero {
  background: var(--soft);
  border-bottom: 1px solid var(--line);
  padding: 115px 8vw 90px;
}
.legal-hero h1 { font-size: clamp(54px, 6.4vw, 96px); }
.legal-page { margin: 0 auto; max-width: 1040px; padding: 90px 8vw 120px; }
.legal-page p, .legal-page li, .legal-page address { color: #3f4444; font-size: 16px; line-height: 1.85; }
.legal-page p { margin: 0 0 25px; }
.legal-page h2 {
  align-items: baseline;
  border-top: 1px solid var(--line);
  column-gap: .16em;
  display: grid;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3.2vw, 42px);
  grid-template-columns: auto minmax(0, 1fr);
  line-height: 1.2;
  margin: 70px 0 28px;
  padding-top: 30px;
}
.legal-page h2 span { font-family: inherit; font-size: inherit; letter-spacing: inherit; }
.legal-page .legal-number { color: var(--teal); }
.legal-page .legal-heading-text { color: var(--black); }
.legal-page ol { margin: 0 0 28px; padding-left: 24px; }
.legal-page li { margin-bottom: 8px; padding-left: 8px; }
.legal-page a { border-bottom: 1px solid var(--teal); color: var(--teal); }
.legal-page address { font-style: normal; margin-top: 24px; }

@media (max-width: 980px) {
  .profile-hero { gap: 65px; grid-template-columns: minmax(260px, 380px) 1fr; padding-left: 6vw; padding-right: 6vw; }
  .profile-title h1 { font-size: clamp(52px, 7vw, 78px); }
  .profile-body, .firm-story { grid-template-columns: 1fr; padding-left: 6vw; padding-right: 6vw; }
  .profile-accordion-section { padding-left: 6vw; padding-right: 6vw; }
  .profile-accordion-intro { grid-template-columns: 1fr; }
  .profile-longform { columns: 1; }
  .values-grid { grid-template-columns: 1fr; padding: 0 6vw; }
  .values-grid article, .values-grid article:last-child { border-left: 0; border-right: 0; border-top: 1px solid var(--line); padding-left: 0; padding-right: 0; }
  .case-introduction, .case-narrative, .case-outcome, .coverage-section { grid-template-columns: 1fr; padding-left: 6vw; padding-right: 6vw; }
  .case-feature-image { max-width: 760px; }
  .case-narrative figure { max-width: 650px; }
  .remedies-section, .case-gallery { padding-left: 6vw; padding-right: 6vw; }
  .remedy-grid { grid-template-columns: repeat(2, 1fr); }
  .case-gallery { grid-template-columns: 1fr 1fr; }
  .gallery-wide { grid-column: 1 / -1; grid-row: auto; }
  .case-report-hero, .case-report, .case-report-contact { padding-left: 6vw; padding-right: 6vw; }
  .case-report-section, .case-report-contact { grid-template-columns: 1fr; }
  .case-report-label { max-width: 600px; }
}

@media (max-width: 640px) {
  .inner-hero, .firm-story, .expertise-page-list, .profile-body, .profile-contact { padding-left: 24px; padding-right: 24px; }
  .profile-hero { gap: 58px; grid-template-columns: 1fr; padding: 70px 24px 85px; }
  .profile-image { max-width: 360px; }
  .profile-title { padding: 0; }
  .inner-hero { padding-bottom: 80px; padding-top: 95px; }
  .expertise-page-list article { gap: 15px; grid-template-columns: 32px 1fr; }
  .expertise-page-list article p { grid-column: 2; }
  .profile-accordion-section { padding: 78px 20px 88px; }
  .profile-accordion-intro { gap: 0; margin-bottom: 40px; }
  .profile-accordion-intro > p:last-child { font-size: 27px; line-height: 1.35; }
  .profile-accordion-list { padding: 14px; }
  .profile-accordion { margin-bottom: 12px; }
  .profile-accordion summary { font-size: 23px; min-height: 78px; padding: 20px; }
  .profile-accordion-icon { flex: 0 0 22px; height: 22px; margin-left: 18px; width: 22px; }
  .profile-accordion-content { padding: 28px 20px 34px; }
  .profile-longform p { font-size: 15px; line-height: 1.75; }
  .profile-practice-grid, .profile-fact-list, .profile-recognition-list, .profile-publication-list { grid-template-columns: 1fr; }
  .profile-practice-grid { gap: 0; }
  .profile-practice-grid li { font-size: 15px; gap: 16px; grid-template-columns: 25px 1fr; padding: 18px 0; }
  .profile-fact-list { gap: 0; }
  .profile-fact-list p { font-size: 15px; }
  .profile-recognition-list, .profile-publication-list { gap: 38px; }
  .profile-recognition-list h3, .profile-publication-list h3 { font-size: 29px; }
  .chambers-commentary { padding: 24px 20px 6px; }
  .chambers-commentary blockquote { font-size: 18px; padding-left: 16px; }
  .legal-hero { padding: 85px 24px 65px; }
  .legal-hero h1 { font-size: 46px; line-height: 1.02; }
  .legal-page { padding: 65px 24px 85px; }
  .legal-page h2 { column-gap: .14em; font-size: 29px; margin-top: 55px; padding-top: 24px; }
  .case-introduction, .case-narrative, .remedies-section, .case-outcome, .case-gallery, .coverage-section { padding: 78px 24px; }
  .case-introduction { gap: 48px; grid-template-columns: 1fr; }
  .case-lead { font-size: 21px; }
  .case-citation { font-size: 12px; }
  .case-narrative { gap: 48px; grid-template-columns: 1fr; }
  .remedies-heading { gap: 28px; grid-template-columns: 1fr; margin-bottom: 50px; }
  .remedies-heading .section-number { grid-column: auto; margin-bottom: 0; }
  .remedy-grid { grid-template-columns: 1fr; }
  .remedy-grid article { min-height: 0; padding: 35px 28px; }
  .remedy-grid h3 { margin-top: 32px; }
  .case-outcome { gap: 55px; grid-template-columns: 1fr; }
  .case-gallery { gap: 42px; grid-template-columns: 1fr; }
  .gallery-wide { grid-column: auto; }
  .coverage-section { gap: 52px; grid-template-columns: 1fr; }
  .coverage-row { gap: 16px; grid-template-columns: 82px minmax(0, 1fr); padding: 21px 0; }
  .coverage-row strong { font-size: 19px; }
  .case-report-hero { padding: 80px 24px 70px; }
  .case-report-hero h1 { font-size: 39px; overflow-wrap: anywhere; }
  .case-report-citation { align-items: flex-start; font-size: 11px; line-height: 1.5; }
  .case-report { padding: 0 24px; }
  .case-report-opening { padding: 70px 0; }
  .case-report-opening .case-report-lead { font-size: 26px; }
  .case-report-feature { margin-bottom: 80px; }
  .case-report-feature img { aspect-ratio: 4 / 3; }
  .case-report-section { gap: 45px; padding: 75px 0 85px; }
  .case-report-copy { font-size: 15px; line-height: 1.78; }
  .case-order-list li { gap: 14px; grid-template-columns: 30px 1fr; padding: 19px 0; }
  .case-report-pair { grid-template-columns: 1fr; margin-bottom: 80px; }
  .case-report-pair img { max-height: none; }
  .case-report-contact { gap: 52px; padding: 80px 24px; }
  .case-contact-people { grid-template-columns: 1fr; }
}

/* Mobile fidelity pass: retain the proportions and hierarchy of the desktop site */
@media (max-width: 640px) {
  html, body { max-width: 100%; overflow-x: hidden; }

  .site-header { height: 82px; padding: 0 20px; }
  .brand img { width: 188px; }
  .mobile-nav summary {
    font-size: 0;
    height: 38px;
    position: relative;
    width: 38px;
  }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary::marker { content: ""; }
  .mobile-nav summary::before {
    background: var(--black);
    box-shadow: 0 6px 0 var(--black), 0 12px 0 var(--black);
    content: "";
    height: 1px;
    left: 8px;
    position: absolute;
    top: 12px;
    transition: transform .2s ease, box-shadow .2s ease, top .2s ease;
    width: 22px;
  }
  .mobile-nav[open] summary::before {
    box-shadow: none;
    top: 18px;
    transform: rotate(45deg);
  }
  .mobile-nav[open] summary::after {
    background: var(--black);
    content: "";
    height: 1px;
    left: 8px;
    position: absolute;
    top: 18px;
    transform: rotate(-45deg);
    width: 22px;
  }
  .hero {
    grid-template-columns: minmax(0, 1fr) 96px;
    min-height: 620px;
  }
  .hero-copy {
    min-height: 620px;
    padding: 72px 22px;
  }
  .hero-copy h1 { font-size: clamp(36px, 10.5vw, 44px); line-height: 1.02; }
  .hero-intro { font-size: 15px; line-height: 1.65; margin-top: 30px; }
  .hero-actions { gap: 22px; margin-top: 36px; }
  .hero-actions .button { font-size: 9px; padding: 14px 12px; }
  .hero-actions .text-link { font-size: 12px; gap: 14px; }
  .decade-mark {
    justify-content: center;
    min-height: 620px;
    padding: 40px 10px;
  }
  .ten { font-size: 74px; line-height: .8; }
  .years {
    font-size: 8px;
    line-height: 1.5;
    margin-top: 34px;
    padding-top: 15px;
    text-align: center;
  }

  .firm-intro, .impact, .expertise, .recognition, .people, .contact {
    padding-bottom: 72px;
    padding-top: 72px;
  }
  .firm-intro h2, .impact h2, .recognition h2, .contact h2,
  .section-heading h2 { font-size: 42px; }
  .intro-copy > p:first-child { font-size: 27px; }
  .section-heading { gap: 28px; margin-bottom: 52px; }
  .practice-row { font-size: 20px; line-height: 1.18; }
  .recognition-items h3 { font-size: 27px; }
  .recognition-badges { gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 360px; }
  .recognition-awards li { font-size: 18px; }

  .people-grid { gap: 46px; }
  .portrait { aspect-ratio: 4 / 5; }
  .person-meta h3 { font-size: 24px; }

  .inner-hero { padding-bottom: 76px; padding-top: 86px; }
  .inner-hero h1 { font-size: 50px; line-height: 1; }
  .inner-hero > p:last-child { font-size: 16px; margin-top: 30px; }
  .firm-story { padding-bottom: 78px; padding-top: 78px; }
  .lead-copy, .profile-introduction { font-size: 28px; }
  .values-grid article { padding-bottom: 62px; padding-top: 62px; }

  .profile-hero { padding-bottom: 78px; padding-top: 66px; }
  .profile-image { max-width: 340px; }
  .profile-title h1 { font-size: 52px; line-height: 1; }
  .profile-body, .profile-contact { padding-bottom: 78px; padding-top: 78px; }

  .case-report-hero { padding-bottom: 72px; padding-top: 82px; }
  .case-report-hero h1 { font-size: clamp(36px, 10.2vw, 42px); line-height: 1.04; }
  .case-report-opening { padding-bottom: 74px; padding-top: 74px; }
  .case-report-opening .case-report-lead { font-size: 27px; line-height: 1.43; }
  .case-report-feature { margin-bottom: 82px; }
  .case-report-section { gap: 34px; padding-bottom: 86px; padding-top: 78px; }
  .case-report-label {
    align-items: start;
    display: grid;
    gap: 12px;
    grid-template-columns: 30px minmax(0, 1fr);
  }
  .case-report-label span { margin: 10px 0 0; }
  .case-report-label h2 { font-size: 38px; line-height: 1.04; }
  .case-report-copy { font-size: 15px; line-height: 1.8; }
  .case-order-list { margin-bottom: 42px; margin-top: 34px; }
  .case-report-pair { gap: 38px; grid-template-columns: 1fr; margin-bottom: 84px; }
  .case-report-pair figcaption { font-size: 10px; }
  .case-report-feature img,
  .case-report-pair img {
    aspect-ratio: auto;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  .case-report-contact { padding-bottom: 78px; padding-top: 78px; }
  .case-report-contact { background: #080909 !important; color: #ffffff !important; }
  .case-report-contact .section-number-light { color: #6fc4c4 !important; }
  .case-report-contact h2 { font-size: 40px; line-height: 1.05; }
  .case-contact-people { gap: 12px; grid-template-columns: 1fr 1fr; }
  .case-contact-people article { min-width: 0; }
  .case-contact-people h3 { font-size: 21px; line-height: 1.12; }
  .case-contact-people p { font-size: 11px; }
  .case-contact-people .button {
    font-size: 8px;
    letter-spacing: .07em;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding: 13px 8px;
  }

  .coverage-section { padding-bottom: 78px; padding-top: 78px; }
  .coverage-heading h2 { font-size: 40px; }
  .coverage-list { min-width: 0; width: 100%; }
  .coverage-row { display: grid; gap: 16px; grid-template-columns: 82px minmax(0, 1fr); width: 100%; }
  .coverage-row strong { font-size: 18px; line-height: 1.25; }

  .legal-hero { padding-bottom: 68px; padding-top: 82px; }
  .legal-page { padding-bottom: 82px; padding-top: 68px; }
  .legal-page h2 { font-size: 29px; line-height: 1.15; }

  footer {
    align-items: center;
    column-gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 40px 24px;
    row-gap: 26px;
  }
  footer img { grid-column: 1 / -1; width: 190px; }
  .footer-links { grid-column: 1; gap: 10px 18px; }
  footer > p { grid-column: 2; max-width: 130px; text-align: right; }
}
