.home .hero { background-image: linear-gradient(90deg, rgba(9,14,24,.54), rgba(9,14,24,.24)), url('assets/modern-boardroom-city.png'); }
/* Quiet motion cues used throughout the site. */
@media (prefers-reduced-motion: no-preference) {
  .home .hero h1,
  .home .hero p,
  .home .hero .hero-link { animation: cilg-hero-enter 750ms cubic-bezier(.2,.7,.2,1) both; }
  .home .hero p { animation-delay: 120ms; }
  .home .hero .hero-link { animation-delay: 240ms; }
  @keyframes cilg-hero-enter {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .motion-reveal { opacity: 0; transform: translateY(20px); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1); }
  .motion-reveal.motion-visible { opacity: 1; transform: translateY(0); }
  .practice-grid > a { transition: transform 220ms ease, box-shadow 220ms ease, background 220ms ease, border-color 220ms ease; }
  .practice-grid > a:hover,
  .practice-grid > a:focus-visible { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(18,27,56,.12); background: #fff; border-color: var(--gold); z-index: 1; }
  .profile { transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease; }
  .profile:hover,
  .profile:focus-within { border-color: var(--gold); }
  .profile:focus-within { z-index: 1; transform: scale(1.025); box-shadow: 0 18px 40px rgba(18,27,56,.16); }
}
@media (hover: none) and (prefers-reduced-motion: no-preference) {
  .practice-grid > a:active { transform: translateY(-2px); background: #fff; border-color: var(--gold); }
  .profile:active { transform: scale(1.01); border-color: var(--gold); }
}
@media (prefers-reduced-motion: reduce) {
  .home .hero h1, .home .hero p, .home .hero .hero-link { animation: none; }
  .motion-reveal { opacity: 1; transform: none; }
}
.home .hero h1 { font-size: clamp(37.8px, 3.69vw, 68.4px); }
.home .hero p { font-size: clamp(18.9px, 1.935vw, 32.4px); }
@media (max-width: 760px) {
  .home .hero h1 { font-size: 39.6px; }
  .home .hero p { font-size: 20.7px; }
}
.site-footer .footer-brand-image { position: relative; display: block; width: 100%; max-width: 420px; aspect-ratio: 1820 / 300; overflow: hidden; }
.site-footer .footer-brand-image img { position: absolute; width: 112.472527%; height: 365%; max-width: none; left: -5.989011%; top: -135.333333%; }
html[lang="km"] .profile-page h1,
html[lang="km"] .profile-page h2 { line-height: 1.5; }
html[lang="km"] body:has(.team-intro) .page-heading h1,
html[lang="km"] .team-intro h2 { line-height: 1.5; }
html[lang="km"] .home .hero h1 { line-height: 1.4; }
.home .intro > .eyebrow { font-size: 18px; }
.home .intro .experience-stat { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: baseline; align-self: start; min-width: 0; margin-top: -9px; padding-left: clamp(22px, 3vw, 46px); }
.home .experience-plus, .home .experience-number { grid-row: 1; color: var(--blue); font-family: Georgia, 'Times New Roman', serif; white-space: nowrap; }
.home .experience-plus { grid-column: 1; font-size: clamp(47px, 5.8vw, 90px); font-weight: 400; line-height: 1; margin-right: .04em; }
.home .experience-number { grid-column: 2; font-size: clamp(86px, 11vw, 172px); font-weight: 700; line-height: .95; letter-spacing: -.075em; font-variant-numeric: tabular-nums; }
.home .experience-label { grid-column: 2; grid-row: 2; justify-self: start; position: relative; max-width: 100%; margin: 22px 0 0; padding-top: 16px; color: var(--ink); font-size: clamp(16px, 1.35vw, 20px); font-weight: 600; letter-spacing: .04em; line-height: 1.35; }
.home .experience-label::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--gold); transform: scaleX(var(--line-progress, 1)); transform-origin: left center; }
.partners-section { padding: 76px 7% 90px; background: #fff; }
.partners-about { scroll-margin-top: 24px; }
.partners-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
.partners-heading h2 { font-size: clamp(36px, 3.5vw, 48px); margin: 0; }
.partners-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; list-style: none; padding: 0; margin: 0; }
.partners-about .partners-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.partner-card { display: grid; place-items: center; height: 155px; padding: 10px; background: transparent; transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1); }
.partners-about .partner-card { height: 176px; }
.partner-card img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transition: transform 220ms ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .partner-card:hover { transform: translateY(-5px); }
  .partner-card:hover img { transform: scale(1.04); }
}
@media (prefers-reduced-motion: no-preference) {
  .partners-grid > .motion-reveal { transition-delay: var(--stagger, 0ms); }
  .partners-grid > .motion-reveal.motion-visible:hover { transition-delay: 0ms; }
}
@media (max-width: 1080px) {
  .partners-grid, .partners-about .partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .partners-section { padding: 54px 6% 62px; }
  .partners-heading { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 28px; }
  .partners-grid, .partners-about .partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .partner-card, .partners-about .partner-card { height: 135px; padding: 10px; }
}
.partner-carousel { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 10px; }
.partner-carousel-viewport { overflow-x: auto; overflow-y: hidden; min-width: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.partner-carousel-viewport::-webkit-scrollbar { display: none; }
.partner-carousel-viewport:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.partners-about .partners-grid { display: flex; width: max-content; gap: 12px; padding: 6px 2px 24px; }
.partners-about .partner-card { flex: 0 0 clamp(150px, 14vw, 180px); height: 132px; padding: 10px; }
.partners-about .partner-card img { max-width: min(100%, 150px); max-height: 108px; }
.partner-carousel-control { width: 44px; height: 44px; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: #fff; cursor: pointer; transition: background 220ms ease, transform 220ms ease, opacity 220ms ease; }
.partner-carousel-control svg { width: 20px; height: 20px; }
.partner-carousel-control:hover:not(:disabled) { background: var(--blue); }
@media (prefers-reduced-motion: no-preference) {
  .partner-carousel-control:hover:not(:disabled) { transform: scale(1.07); }
}
.partner-carousel-control:disabled { opacity: .3; cursor: default; }
@media (max-width: 760px) {
  .partner-carousel { grid-template-columns: 36px minmax(0, 1fr) 36px; gap: 5px; }
  .partner-carousel-control { width: 36px; height: 36px; }
  .partner-carousel-control svg { width: 18px; height: 18px; }
  .partners-about .partner-card { flex-basis: 126px; height: 112px; padding: 10px; }
  .partners-about .partner-card img { max-width: min(100%, 112px); max-height: 88px; }
}
@media (prefers-reduced-motion: no-preference) {
  .home .experience-stat.count-ready { opacity: 0; transform: translateY(18px); transition: opacity 700ms ease, transform 700ms ease; }
  .home .experience-stat.count-ready.count-visible { opacity: 1; transform: translateY(0); }
}
@media (max-width: 760px) {
  .home .intro .experience-stat { margin: -6px 0 8px; padding-left: 16px; }
  .home .experience-number { font-size: clamp(86px, 24vw, 136px); }
  .home .experience-plus { font-size: clamp(47px, 13vw, 75px); }
  .home .experience-label { margin-top: 14px; }
}
.service-category { padding: 54px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.service-category-heading { display: grid; grid-template-columns: 55px minmax(0, 1fr); gap: 24px; margin-bottom: 35px; }
.service-category-heading h2 { font-size: clamp(30px, 3.5vw, 44px); margin-bottom: 16px; }
.service-category-heading p { color: #626877; margin: 0; }
.service-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 50px; padding-left: 79px; }
.service-group { min-width: 0; border-top: 2px solid var(--gold); padding-top: 24px; }
.service-group h3 { font-size: 27px; color: var(--blue); margin-bottom: 18px; line-height: 1.25; }
.service-group ul { list-style: none; padding: 0; margin: 0; }
.service-group li { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .service-category { padding: 36px 0; }
  .service-category-heading { grid-template-columns: 32px minmax(0, 1fr); gap: 16px; }
  .service-groups { grid-template-columns: minmax(0, 1fr); padding-left: 0; gap: 32px; }
}
.site-footer { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(0, 1.8fr); gap: 36px 64px; align-items: start; }
.site-footer .footer-brand { display: flex; align-items: center; gap: 18px; font-family: Georgia, "Times New Roman", serif; font-size: 24px; line-height: 1.35; }
.footer-brand img { width: 64px; height: 64px; object-fit: contain; flex-shrink: 0; }
.footer-brand span { max-width: 260px; }
.footer-contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 32px; font-style: normal; }
.site-footer .footer-contact { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.65; min-width: 0; }
.footer-contacts > .footer-contact:first-child { grid-column: 1 / -1; }
.site-footer .footer-contact div { text-align: left; font-size: inherit; }
.footer-contact > span, .footer-contact > div { min-width: 0; overflow-wrap: anywhere; }
.footer-icon { width: 22px; height: 22px; flex-shrink: 0; color: #d8b65b; margin-top: 3px; }
.footer-label { display: block; color: #c7cbda; font-size: 14px; margin-bottom: 3px; }
.site-footer .footer-bottom { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; text-align: left; border-top: 1px solid #ffffff26; padding-top: 22px; }
.site-footer .footer-bottom small { margin: 0; }
.site-footer a:hover { color: #ead59c; }
@media (max-width: 760px) {
  .site-footer { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .footer-contacts { grid-template-columns: minmax(0, 1fr); }
  .site-footer .footer-brand { font-size: 22px; }
  .footer-brand img { width: 56px; height: 56px; }
}
.about-overview { padding: 80px 7%; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr); gap: 64px; align-items: center; }
.about-overview h1 { font-size: clamp(44px, 5vw, 72px); margin-bottom: 28px; letter-spacing: -1.5px; }
.about-overview-copy > p:last-child { font-size: 19px; line-height: 1.85; color: #596174; margin-bottom: 0; }
.about-reception { margin: 0; border-bottom: 4px solid var(--gold); }
.about-reception img { display: block; width: 100%; height: auto; }
.about-reasons { padding: 80px 7% 90px; background: var(--navy); color: white; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr); gap: 64px; align-items: start; }
.about-reasons h2 { font-size: clamp(36px, 4vw, 52px); margin: 0; }
.about-reasons-list { list-style: none; padding: 0; margin: 0; }
.about-reasons-list li { display: flex; align-items: baseline; gap: 24px; padding: 25px 0; border-bottom: 1px solid #ffffff30; font-size: 20px; line-height: 1.6; }
.about-reasons-list li:first-child { padding-top: 0; }
.reason-number { color: #ddbf72; font-size: 14px; flex-shrink: 0; }
@media (prefers-reduced-motion: no-preference) {
  .about-reasons-list .reveal-pending { opacity: 0; transform: translateY(18px); }
  .about-reasons-list .reveal-visible { animation: about-reveal 650ms ease both; }
  @keyframes about-reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 760px) {
  .about-overview, .about-reasons { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 50px 6%; }
  .about-overview-copy > p:last-child { font-size: 17px; }
  .about-reasons-list li { font-size: 18px; gap: 18px; }
}
.contact-detail-link { display: inline-block; padding: 7px 0; min-height: 44px; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 5px; }
.contact-detail-link:hover, .contact-detail-link:focus-visible { color: var(--blue); }
.brand {
  display: block;
  overflow: hidden;
}

.brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.profile-photo {
  aspect-ratio: 2 / 3;
  margin: 0 0 25px;
  overflow: hidden;
  background: #edf0f5;
  border-bottom: 3px solid var(--gold);
}

.profile-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.profile-practice {
  font-size: 15px !important;
  line-height: 1.7;
}

.profile-practice strong {
  display: block;
  margin-bottom: 7px;
  color: var(--ink);
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.profile-grid {
  align-items: stretch;
  gap: 28px;
  grid-template-columns: repeat(3, minmax(0, 360px));
  justify-content: center;
}

.profile {
  position: relative;
  z-index: 0;
  padding: 20px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: 0 8px 24px rgba(18, 27, 56, 0.06);
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.profile > .eyebrow {
  color: var(--blue) !important;
  font-size: 12px !important;
}

.profile:hover {
  z-index: 1;
  transform: scale(1.025);
  box-shadow: 0 18px 40px rgba(18, 27, 56, 0.16);
}

.profile-full-link {
  display: inline-flex;
  align-items: center;
  margin-top: 12px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--gold);
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.7px;
}

.profile-full-link::after {
  position: absolute;
  inset: 0;
  content: "";
}

.profile:has(.profile-full-link) {
  cursor: pointer;
}

.lawyer-hero {
  position: relative;
  min-height: 670px;
  overflow: hidden;
  color: #fff;
  background: linear-gradient(90deg, rgba(10, 22, 63, 0.96) 0%, rgba(24, 52, 128, 0.82) 50%, rgba(26, 62, 150, 0.62) 100%), url("assets/phnom-penh-blue.webp") center / cover;
}

.lawyer-hero::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 4px;
  background: var(--gold);
  content: "";
}

.lawyer-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(280px, 390px) minmax(0, 760px);
  align-items: end;
  justify-content: center;
  gap: clamp(45px, 7vw, 115px);
  min-height: 670px;
  padding: 70px 7% 0;
}

.lawyer-portrait {
  align-self: end;
  margin: 0;
  box-shadow: 28px 28px 0 rgba(183, 148, 54, 0.92);
}

.lawyer-portrait img {
  display: block;
  width: 100%;
  max-height: 570px;
  object-fit: cover;
  object-position: center top;
}

.lawyer-identity {
  align-self: center;
  padding: 65px 0;
}

.profile-back {
  display: inline-block;
  margin-bottom: 55px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  padding-bottom: 5px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  letter-spacing: 1px;
}

.lawyer-kicker {
  margin-bottom: 18px;
  color: #e6cf8f;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.lawyer-identity h1 {
  margin-bottom: 26px;
  font-size: clamp(58px, 7vw, 104px);
  letter-spacing: -3px;
}

.lawyer-identity h1.long-name {
  font-size: clamp(47px, 5.4vw, 80px);
  letter-spacing: -2px;
}

.lawyer-roles {
  margin-bottom: 38px;
  padding-left: 22px;
  border-left: 2px solid var(--gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 2vw, 25px);
  line-height: 1.35;
}

.lawyer-roles p {
  margin-bottom: 7px;
}

.lawyer-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 22px 48px;
  font-style: normal;
}

.lawyer-contact a {
  display: block;
  min-height: 44px;
  padding: 6px 0;
  font-size: 16px;
  border-bottom: 1px solid #ffffff60;
  cursor: pointer;
  overflow-wrap: anywhere;
  transition: color 180ms ease, border-color 180ms ease;
}

.lawyer-contact a:hover,
.lawyer-contact a:focus-visible {
  color: #ead59c;
  border-bottom-color: #ead59c;
}

.lawyer-contact a:active {
  color: #fff;
  border-bottom-color: #fff;
}

.lawyer-contact span {
  display: block;
  margin-bottom: 3px;
  color: #d5dcf3;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.lawyer-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.8fr);
  gap: clamp(65px, 9vw, 140px);
  max-width: 1440px;
  margin: 0 auto;
  padding: 105px 7%;
}

.lawyer-overview h2 {
  max-width: 720px;
  margin-bottom: 42px;
  font-size: clamp(38px, 4vw, 57px);
}

.lawyer-overview > p:not(.eyebrow) {
  max-width: 830px;
  color: #525a6b;
  font-size: 17px;
  line-height: 1.85;
}

.lawyer-overview > .overview-lead {
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  line-height: 1.6;
}

.lawyer-facts {
  align-self: start;
  padding: 38px;
  border-top: 4px solid var(--gold);
  background: #f2f4f8;
}

.lawyer-facts section + section {
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px solid #d2d7e2;
}

.lawyer-facts h2 {
  margin-bottom: 18px;
  font-size: 24px;
}

.practice-list,
.lawyer-details ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.practice-list li {
  padding: 9px 0;
  border-bottom: 1px solid #d9dde6;
  font-size: 15px;
  line-height: 1.45;
}

.credential p {
  margin: 0;
  color: #5e6677;
  font-size: 15px;
}

.lawyer-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: #d8dce5;
  border-top: 1px solid #d8dce5;
  border-bottom: 1px solid #d8dce5;
}

.lawyer-details article {
  padding: clamp(48px, 6vw, 88px) 10%;
  background: #fff;
}

.lawyer-details > article:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.lawyer-details h2 {
  margin-bottom: 30px;
  font-size: clamp(31px, 3vw, 43px);
}

.lawyer-details h3 {
  margin: 30px 0 12px;
  color: var(--blue);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.lawyer-details li {
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
  line-height: 1.55;
}

.lawyer-details li strong,
.lawyer-details li span {
  display: block;
}

.lawyer-details li span {
  color: #697183;
  font-size: 14px;
}

.profile .profile-photo {
  width: calc(100% + 40px);
  margin: -20px -20px 25px;
}

.profile-photo-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 14%;
  background: linear-gradient(145deg, #f1f3f8, #e7eaf2);
}

.profile-photo-placeholder img {
  width: min(62%, 190px);
  height: auto;
  object-fit: contain;
  opacity: 0.9;
}

.profile-photo-placeholder span {
  color: #6d7690;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-align: center;
  text-transform: uppercase;
}

@media (max-width: 760px) {
  .profile-grid {
    grid-template-columns: minmax(0, 420px);
  }

  .profile:hover {
    transform: scale(1.015);
  }

  .lawyer-hero,
  .lawyer-hero-inner {
    min-height: auto;
  }

  .lawyer-hero-inner {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 42px 6% 0;
  }

  .lawyer-portrait {
    grid-row: 2;
    width: min(82%, 350px);
    margin: 0 auto;
    box-shadow: 16px 16px 0 rgba(183, 148, 54, 0.92);
  }

  .lawyer-portrait img {
    max-height: 480px;
  }

  .lawyer-identity {
    grid-row: 1;
    padding: 0 0 45px;
  }

  .profile-back {
    margin-bottom: 38px;
  }

  .lawyer-identity h1 {
    font-size: 56px;
    letter-spacing: -1.5px;
  }

  .lawyer-identity h1.long-name {
    font-size: 44px;
    letter-spacing: -1px;
  }

  .lawyer-roles {
    font-size: 18px;
  }

  .lawyer-contact {
    gap: 16px 34px;
  }

  .lawyer-profile-layout {
    grid-template-columns: 1fr;
    gap: 55px;
    padding: 65px 6%;
  }

  .lawyer-overview h2 {
    margin-bottom: 30px;
    font-size: 38px;
  }

  .lawyer-overview > .overview-lead {
    font-size: 20px;
  }

  .lawyer-facts {
    padding: 30px 24px;
  }

  .lawyer-details {
    grid-template-columns: 1fr;
  }

  .lawyer-details article {
    padding: 50px 6%;
  }
}

/* News and publication previews. */
.news-home, .news-collection { padding: 80px 7% 90px; background: #fff; }
.news-home { border-bottom: 1px solid var(--line); }
.news-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 38px; }
.news-heading .eyebrow { margin-bottom: 14px; }
.news-heading h2 { font-size: clamp(34px, 3.5vw, 48px); margin: 0; line-height: 1.3; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; }
.news-card { position: relative; min-width: 0; background: #fff; border: 1px solid var(--line); border-bottom: 2px solid var(--gold); box-shadow: 0 8px 24px rgba(18,27,56,.06); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1), box-shadow 220ms ease; }
.news-card-image { aspect-ratio: 16 / 10; position: relative; overflow: hidden; background: var(--navy); }
.news-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 500ms ease; }
.news-status { display: inline-block; background: #fff; color: var(--navy); padding: 7px 12px; font-size: 13px; font-weight: 600; line-height: 1.5; }
.news-card-image .news-status { position: absolute; bottom: 14px; left: 14px; }
.news-card-copy { padding: 26px 24px 28px; }
.news-category { color: var(--blue); font-size: 14px; font-weight: 600; margin-bottom: 13px; }
.news-card h3 { font-size: clamp(25px,2.3vw,32px); line-height: 1.3; margin-bottom: 16px; }
.news-card-copy > p:last-child { color: #626877; font-size: 16px; margin-bottom: 0; }
.news-page-heading { padding: 72px 7% 56px; background: #f3f4f7; }
.news-page-heading h1 { font-size: clamp(44px,5vw,72px); line-height: 1.3; margin-bottom: 20px; }
.news-feature { margin: 60px 7% 0; display: grid; grid-template-columns: 1.1fr 1fr; background: var(--navy); color: #fff; box-shadow: 0 8px 24px rgba(18,27,56,.1); }
.news-feature-image { min-height: 350px; }
.news-feature-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.news-feature-copy { padding: clamp(30px,4vw,60px); align-self: center; }
.news-feature-copy .news-status { background: #d9be73; margin-bottom: 30px; }
.news-feature-copy .eyebrow { color: #d9be73; margin-bottom: 16px; }
.news-feature-copy h2 { font-size: clamp(30px,3.2vw,46px); line-height: 1.3; margin-bottom: 24px; }
.news-feature-copy > p:last-child { color: #d9deeb; margin: 0; }
html[lang="km"] .news-card h3, html[lang="km"] .news-feature h2, html[lang="km"] .news-page-heading h1, html[lang="km"] .news-heading h2 { line-height: 1.6; letter-spacing: 0; }
.header nav { gap: clamp(18px,2.7vw,40px); font-size: clamp(18px,1.7vw,22px); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .news-card:hover { transform: translateY(-5px) scale(1.015); box-shadow: 0 18px 40px rgba(18,27,56,.16); z-index: 1; }
  .news-card:hover .news-card-image img { transform: scale(1.035); }
}
@media (min-width:761px) and (max-width:1100px) {
  .header { height:108px; padding:20px 6%; }
  .header .brand { width:62px; height:62px; }
  .menu-toggle { display:flex; align-items:center; gap:14px; color:inherit; background:none; border:1px solid #ffffff50; padding:8px 12px; cursor:pointer; font-size:15px; }
  .header nav { display:none; position:absolute; top:108px; left:0; right:0; background:var(--navy); padding:20px 6% 28px; gap:10px; align-items:stretch; font-size:23px; }
  .header nav.open { display:flex; flex-direction:column; }
  .language-switch { margin:12px 0 0; padding:17px 0 0; border-left:0; border-top:1px solid #ffffff33; font-size:14px; }
}
@media (max-width:760px) {
  .news-home,.news-collection { padding:54px 6% 62px; }
  .news-heading { align-items:flex-start; flex-direction:column; gap:20px; margin-bottom:30px; }
  .news-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
  .news-page-heading { padding:46px 6%; }
  .news-feature { margin:36px 6% 0; grid-template-columns:minmax(0,1fr); }
  .news-feature-image { min-height:0; aspect-ratio:16/10; }
  .news-feature-copy { padding:30px 24px; }
  .header nav { gap:10px; font-size:23px; }
}

/* Individual publication templates */
.news-card-link { display:block; height:100%; color:inherit; text-decoration:none; }
.news-card-link:focus-visible, a.news-feature:focus-visible { outline:3px solid var(--gold); outline-offset:6px; }
a.news-feature { text-decoration:none; }
.article-hero { background:linear-gradient(90deg,rgba(13,28,69,.95),rgba(13,28,69,.78)),url('assets/phnom-penh-blue.webp') center/cover; color:#fff; padding:64px 7% 70px; }
.article-hero-inner { max-width:960px; }
.article-back { display:inline-block; font-size:16px; text-decoration:underline; text-underline-offset:5px; }
.article-hero .article-back { color:#fff; margin-bottom:44px; }
.article-hero .eyebrow { color:#d9be73; }
.article-hero h1 { font-size:clamp(38px,5vw,68px); line-height:1.15; margin:16px 0 24px; }
.article-hero .lead { color:#e0e5ef; max-width:760px; font-size:20px; margin-bottom:26px; }
.article-layout { display:grid; grid-template-columns:minmax(0,2.4fr) minmax(220px,1fr); gap:clamp(30px,5vw,80px); padding:70px 7% 90px; align-items:start; }
.article-content { min-width:0; }
.article-cover { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.article-body { padding-top:40px; max-width:760px; }
.article-body h2 { font-size:clamp(28px,3vw,40px); line-height:1.35; margin:14px 0 24px; }
.article-body p { font-size:18px; line-height:1.8; }
.article-placeholder { margin:30px 0 0; display:grid; gap:14px; }
.article-placeholder span { display:block; height:8px; background:#eef0f4; border-radius:4px; }
.article-placeholder span:last-child { width:65%; }
.article-sidebar { padding:28px; border-top:3px solid var(--gold); background:#f5f6f9; }
.article-sidebar h2 { font-size:26px; line-height:1.4; margin:16px 0; }
.article-sidebar p { font-size:16px; line-height:1.8; }
.article-sidebar .article-note { border-top:1px solid var(--line); padding-top:22px; color:#626877; }
.article-sidebar .article-back { color:var(--blue); line-height:1.6; }
html[lang="km"] .article-hero h1,html[lang="km"] .article-body h2,html[lang="km"] .article-sidebar h2 { line-height:1.65; letter-spacing:0; }
@media(max-width:760px) { .article-hero { padding:42px 6% 48px; } .article-hero .article-back { margin-bottom:30px; } .article-layout { grid-template-columns:minmax(0,1fr); padding:36px 6% 60px; gap:36px; } .article-body { padding-top:28px; } }

/* Publication connections and suggested reading */
.article-related { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.article-related h3 { font-family:inherit; font-size:18px; font-weight:600; line-height:1.5; margin:0 0 22px; }
.related-person { display:grid; grid-template-columns:64px minmax(0,1fr); gap:14px; align-items:start; margin-top:22px; }
.related-person img { display:block; width:64px; height:80px; object-fit:cover; object-position:center 20%; }
.related-person a { color:var(--blue); font-weight:600; font-size:17px; line-height:1.5; text-decoration:underline; text-underline-offset:4px; }
.article-sidebar .related-person p { font-size:14px; line-height:1.65; margin:7px 0 0; color:#626877; }
.related-services { padding:0; margin:0; list-style:none; }
.related-services li + li { margin-top:16px; }
.related-services a { color:var(--blue); font-size:16px; line-height:1.7; text-underline-offset:4px; }
.article-related a:hover { color:#876314; }
.article-related a:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.suggested-reading { padding:0 7% 90px; }
.suggested-reading .news-heading { border-top:1px solid var(--line); padding-top:44px; }
.suggested-reading .news-grid { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1200px; gap:24px; }
.suggested-reading .news-card-image { aspect-ratio:16/9; }
.suggested-reading .news-card-copy { padding:20px; }
.suggested-reading .news-card h3 { font-size:clamp(23px,2vw,28px); margin-bottom:12px; }
html[lang="km"] .article-related h3,html[lang="km"] .suggested-reading h2 { line-height:1.65; letter-spacing:0; }
@media(max-width:760px) { .suggested-reading { padding:0 6% 60px; } .suggested-reading .news-grid { grid-template-columns:minmax(0,1fr); } }

/* Published welcome letter */
.article-body .article-salutation { font-family:Georgia,'Times New Roman',serif; font-size:clamp(23px,2.4vw,30px); color:var(--blue); margin-bottom:28px; }
.article-body .article-signature { margin-top:42px; padding-top:24px; border-top:1px solid var(--line); }
.article-body .article-signature p { margin:0 0 12px; }
.article-body .article-signature strong { color:var(--blue); font-size:22px; }
.article-body .article-signature .article-position { color:#626877; font-size:16px; }
html[lang="km"] .article-body .article-salutation { line-height:1.65; }

/* Investment publication and four-article listing */
.investment-article > p:first-child { font-size:clamp(20px,2vw,24px); line-height:1.65; color:var(--blue); }
.investment-article h2 { margin-top:46px; }
.investment-article .article-disclaimer { margin-top:34px; color:#626877; font-size:16px; }
.investment-article .article-sources { border-top:1px solid var(--line); margin-top:28px; padding-top:24px; font-size:16px; }
.investment-article .article-sources a { color:var(--blue); text-underline-offset:3px; overflow-wrap:anywhere; }

/* Publication pagination keeps the three-column card dimensions. */
.news-pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:clamp(14px,2vw,28px); margin-top:48px; }
.news-pagination button { appearance:none; border:0; background:transparent; color:#8d681a; font:inherit; font-size:clamp(18px,2vw,24px); line-height:1.5; min-width:36px; min-height:44px; padding:4px; cursor:pointer; transition:color .2s ease, transform .2s ease; }
.news-pagination button:hover { color:var(--navy); transform:translateY(-2px); }
.news-pagination button[aria-current="page"] { color:#6b7280; cursor:default; }
.news-pagination button[aria-current="page"]:hover { transform:none; }
.news-pagination button:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media(max-width:760px) { .news-pagination { gap:12px; margin-top:34px; } }

/* Footer page navigation */
.site-footer .footer-nav { display: flex; flex-wrap: wrap; gap: 12px 26px; align-items: center; font-size: 14px; text-align: left; }
.site-footer .footer-nav a { padding: 4px 0; transition: color .2s; }
@media (max-width: 760px) { .site-footer .footer-bottom { align-items: flex-start; } .site-footer .footer-nav { width: 100%; gap: 10px 22px; } }

.profile-view-controls{display:flex;flex-wrap:wrap;gap:12px;padding:32px 7% 0}.profile-view-controls button{border:1px solid #ccd0da;background:white;color:var(--blue);padding:10px 20px;cursor:pointer}.profile-view-controls button[aria-pressed="true"]{background:var(--blue);color:white;border-color:var(--blue)}.lawyer-profile-layout.profile-single-view{grid-template-columns:minmax(0,1fr)}[hidden]{display:none!important}
