:root {
  --ink: #202a44;
  --paper: #8a8a92;
  --mist: #ffffff;
  --accent: #8A8A92;
  --serif: "Playfair Display", Georgia, serif;
  --heading: "Playfair Display", Georgia, serif;
  --hero-heading: "Poppins", Helvetica, sans-serif;
  --sans: "DM Sans", Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-snap-type: y proximity; }
body { background: var(--ink); color: var(--paper); font-family: var(--sans); margin: 0; }
a { color: inherit; text-decoration: none; }
p { text-align: justify; }

.hero-section { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; isolation: isolate; min-height: 100svh; overflow: hidden; padding: clamp(1.35rem, 4vw, 3.25rem) clamp(1.25rem, 6vw, 6.5rem) clamp(1.25rem, 3.5vw, 2.75rem); position: relative; }
.hero-backdrop, .hero-overlay, .hero-grain { inset: 0; pointer-events: none; position: absolute; }
.hero-backdrop { --parallax-y: 0px; animation: settle 1.8s ease-out both; background: url("../img/hero.jpg") center 44% / cover; filter: saturate(.65) contrast(.92); transform: translate3d(0, var(--parallax-y), 0) scale(1.045); transition: transform .15s ease-out; will-change: transform; z-index: -3; }
.hero-overlay { background: linear-gradient(115deg, rgba(255, 255, 255, .92), rgba(138, 138, 146, .78) 34%, rgba(91, 105, 127, .68) 68%, rgba(32, 42, 68, .9)); z-index: -2; }
.hero-grain { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; opacity: .12; z-index: -1; }

.site-nav { align-items: flex-start; background: transparent; padding: clamp(2rem, 5vw, 4.5rem) clamp(1.25rem, 6vw, 6.5rem); position: fixed; transition: background .25s ease, padding .25s ease, box-shadow .25s ease; z-index: 2000; }
.site-nav.is-scrolled { background: rgba(32, 42, 68, .97); box-shadow: 0 .35rem 1.5rem rgba(12, 20, 38, .16); padding-bottom: 1.25rem; padding-top: 1.25rem; }
.site-nav-standalone { background: rgba(32, 42, 68, .97); padding-bottom: 1.25rem; padding-top: 1.25rem; }
.navbar-brand img { display: block; width: clamp(16rem, 25vw, 24rem); }
.nav-link { color: var(--ink); font-size: .8rem; font-weight: 600; letter-spacing: .13em; padding: .4rem 0 !important; text-transform: uppercase; transition: color .2s ease; }
.site-nav.is-scrolled .nav-link { color: #fff; }
.site-nav-standalone .nav-link { color: #fff; }
.site-nav.is-scrolled .nav-link:hover, .site-nav.is-scrolled .nav-link.active { color: var(--accent); }
.site-nav-standalone .nav-link:hover, .site-nav-standalone .nav-link.active { color: var(--accent); }
.nav-link:hover, .nav-link.active { color: var(--accent); }
.nav-link-contact { border-bottom: 1px solid rgba(32, 42, 68, .35); margin-left: .75rem; }
.nav-link-contact span { font-size: .9rem; margin-left: .35rem; }
.navbar-toggler { border: 0; padding: .25rem 0; }
.navbar-toggler:focus { box-shadow: none; }
.navbar-toggler-icon { background-image: linear-gradient(var(--ink), var(--ink)), linear-gradient(var(--ink), var(--ink)), linear-gradient(var(--ink), var(--ink)); background-position: center 20%, center 50%, center 80%; background-repeat: no-repeat; background-size: 1.9rem 2px; }
.site-nav.is-scrolled .navbar-toggler-icon { background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff); }
.site-nav-standalone .navbar-toggler-icon { background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff); }

.hero-content { align-self: center; padding: 3rem 0; position: relative; transform: translateY(clamp(7rem, 18vh, 13rem)); }
.hero-eyebrow { display: none; }
.hero-content h1 { color: var(--ink); font-family: var(--hero-heading); font-size: clamp(3.7rem, 8vw, 7.8rem); font-weight: 500; letter-spacing: -.045em; line-height: .84; margin: 0; }
.hero-logo { display: block; filter: drop-shadow(0 .4rem 1rem rgba(32, 42, 68, .28)); height: auto; margin: 0 auto 2.25rem; max-width: min(56rem, 92vw); width: clamp(28rem, 52vw, 56rem); }
.hero-intro { display: none; }
.hero-cta { align-items: center; background: var(--ink); color: #fff; display: inline-flex; font-size: .65rem; font-weight: 600; gap: 1rem; letter-spacing: .15em; padding: .92rem 1.2rem; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.hero-cta:hover { background: #10182b; color: #fff; transform: translateY(-2px); }
.hero-cta span { font-size: 1rem; line-height: 0; }
.hero-locations { color: #fff; font-size: clamp(.9rem, 1.6vw, 1.3rem); font-weight: 600; letter-spacing: .15em; margin: 1.8rem auto 0; text-align: center; text-shadow: 0 1px 8px rgba(32, 42, 68, .5); text-transform: uppercase; transform: translateY(1.25rem); }
.hero-locations i { font-style: normal; margin: 0 .35rem; opacity: .8; }
.hero-awards-marquee { margin: 2.75rem auto 0; max-width: min(82rem, 98vw); overflow: hidden; mask-image: linear-gradient(to right, transparent, #000 .5%, #000 99.5%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, #000 .5%, #000 99.5%, transparent); }
.awards-marquee-track { animation: awards-marquee-scroll 22s linear infinite; display: flex; width: max-content; }
.hero-awards-marquee .award-card { aspect-ratio: 1.2 / 1; flex: 0 0 clamp(9rem, 15.4vw, 12.5rem); min-height: 0; padding: 0; }
.hero-awards-marquee .award-card img { height: 100%; max-width: 100%; object-fit: contain; transform: scale(1.08); width: 100%; }
.award-card { align-items: center; aspect-ratio: 1.5 / 1; background: transparent; border: none; display: flex; justify-content: center; min-height: 13rem; padding: clamp(1.25rem, 2.5vw, 2rem); }
.award-card img { display: block; height: 100%; max-height: 12rem; max-width: 100%; object-fit: contain; width: 100%; }
@keyframes awards-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.hero-footer { align-items: center; color: var(--ink); display: flex; font-size: .61rem; justify-content: flex-end; letter-spacing: .15em; position: relative; text-transform: uppercase; }
.hero-footer i { font-style: normal; margin: 0 .35rem; opacity: .5; }
.scroll-note { left: 50%; position: absolute; transform: translateX(-50%); }
.scroll-note b { font-size: 1.5rem; font-weight: 400; margin-left: 0; }
.scroll-note::before { content: ""; display: block; }
.hero-social { display: flex; gap: .5rem; }
.hero-social a { align-items: center; border: 1px solid rgba(32, 42, 68, .32); border-radius: 50%; display: flex; font-size: .56rem; height: 1.65rem; justify-content: center; letter-spacing: 0; transition: background .2s ease, color .2s ease; width: 1.65rem; }
.hero-social a:hover { background: var(--ink); color: var(--paper); }
.about-section { background: var(--ink); color: #fff; min-height: min(100svh, 58rem); overflow: hidden; padding: clamp(5.5rem, 10vw, 10rem) clamp(1.25rem, 6vw, 6.5rem); }
.hero-section, .about-section, .values-section, .lawyers-section, .expertise-section, .article-section, .contact-section, .article-detail-page, .site-footer-main { scroll-snap-align: start; }
.about-section, .values-section, .lawyers-section, .expertise-section, .article-section, .contact-section { scroll-margin-top: clamp(5.5rem, 9vw, 7rem); }
.about-container, .lawyers-container, .expertise-container, .article-container, .footer-container, .detail-container, .contact-container { margin: 0 auto; max-width: 90rem; }
.about-copy { padding-right: clamp(1rem, 5vw, 6rem); }
.section-kicker { align-items: center; color: var(--accent); display: flex; font-size: clamp(.68rem, 1vw, .82rem); font-weight: 600; gap: .8rem; letter-spacing: .18em; margin: 0 0 1.5rem; text-transform: uppercase; }
.section-kicker::before { background: var(--accent); content: ""; display: block; height: 1px; width: 2.25rem; }
.about-section .section-kicker, .about-page-intro .section-kicker { color: #fff; }
.about-section .section-kicker::before, .about-page-intro .section-kicker::before { background: #fff; }
.about-copy h2 { color: #fff; font-family: var(--heading); font-size: clamp(2.7rem, 5.5vw, 5.7rem); font-weight: 500; letter-spacing: -.045em; line-height: .94; margin: 0; }
.about-text { color: #fff; font-size: clamp(.92rem, 1.25vw, 1.08rem); line-height: 1.8; margin: 2rem 0 1.7rem; max-height: 22rem; max-width: 39rem; overflow-y: auto; padding-right: 1.25rem; scrollbar-color: var(--paper) transparent; scrollbar-width: thin; text-align: justify; }
.about-text p { margin: 0 0 1rem; }
.about-text p:last-child { margin-bottom: 0; }
.about-text::-webkit-scrollbar { width: .35rem; }
.about-text::-webkit-scrollbar-track { background: transparent; }
.about-text::-webkit-scrollbar-thumb { background: var(--paper); border-radius: 1rem; }
.about-cta { align-items: center; border-bottom: 1px solid rgba(255, 255, 255, .55); color: #fff; display: inline-flex; font-size: .64rem; font-weight: 600; gap: .75rem; letter-spacing: .14em; margin: 0 0 2rem; padding-bottom: .45rem; text-transform: uppercase; transition: border-color .2s ease, color .2s ease; }
.about-cta:hover { border-color: var(--accent); color: var(--accent); }
.about-cta span { font-size: 1rem; line-height: 0; }
.about-signature { align-items: center; color: #fff; display: flex; gap: 1rem; }
.signature-logo { display: block; height: 3.5rem; object-fit: contain; width: 5.5rem; }
.signature-mark { align-items: center; border: 1px solid rgba(138, 138, 146, .5); border-radius: 50%; display: flex; font-family: var(--serif); font-size: 1.05rem; height: 3.5rem; justify-content: center; width: 3.5rem; }
.about-signature strong, .about-signature small { display: block; }
.about-signature strong { font-size: .78rem; letter-spacing: .04em; }
.about-signature small { color: #fff; font-size: .63rem; letter-spacing: .1em; margin-top: .35rem; text-transform: uppercase; }
.about-image-wrap { margin-left: auto; max-width: 38rem; padding: 2rem 2rem 0 0; position: relative; }
.about-image-wrap::before { border: 1px solid rgba(138, 138, 146, .28); content: ""; inset: 0 0 2rem 2rem; position: absolute; }
.about-image { aspect-ratio: 1 / 1.08; display: block; filter: saturate(.72) contrast(.94); object-fit: cover; position: relative; width: 100%; }
.values-section { background: #fff; color: var(--ink); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 5vw, 5rem); }
.values-container { margin: 0 auto; max-width: 90rem; }
.values-heading { margin-bottom: clamp(3rem, 6vw, 5rem); }
.values-heading h2 { color: var(--ink); font-family: var(--heading); font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 500; letter-spacing: -.045em; line-height: .94; margin: 0; }
.values-heading > div:last-child > p { color: rgba(32, 42, 68, .68); font-size: clamp(.85rem, 1.2vw, 1.05rem); line-height: 1.65; margin: 0; max-width: 30rem; }
.value-card { background: var(--value-background); color: var(--value-text); display: flex; flex-direction: column; min-height: 20rem; overflow: hidden; padding: clamp(1.5rem, 2.5vw, 2.25rem); position: relative; }
.value-card img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.value-card-image::after { background: linear-gradient(180deg, transparent 30%, rgba(32, 42, 68, .82)); content: ""; inset: 0; position: absolute; }
.value-number { font-size: .68rem; font-weight: 600; letter-spacing: .15em; }
.value-card-copy { margin-top: auto; position: relative; z-index: 1; }
.values-section .value-card-copy { margin-top: 1.5rem; }
.about-page-values .value-card-copy { margin-top: 0; }
.value-card-image .value-card-copy { color: #fff; }
.value-card h3 { color: inherit; font-family: var(--heading); font-size: clamp(1.5rem, 2.1vw, 2rem); font-weight: 500; line-height: 1.05; margin: 0 0 1rem; min-height: 4.2rem; }
.value-card p { color: inherit; font-size: .85rem; line-height: 1.7; margin: 0; opacity: .78; }
.about-page { background: var(--ink); color: #fff; min-height: 100svh; }
.about-page-intro { padding: clamp(10rem, 15vw, 13rem) clamp(1.25rem, 6vw, 6.5rem) clamp(5rem, 9vw, 9rem); }
.about-page-values h2 { color: #fff; font-family: var(--serif); font-size: clamp(3rem, 5.4vw, 6rem); font-weight: 500; letter-spacing: -.045em; line-height: .94; margin: 0; max-width: 58rem; }
.about-page-grid { align-items: center; display: grid; gap: clamp(2rem, 7vw, 7rem); grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr); }
.about-page-copy { color: #fff; font-size: clamp(.92rem, 1.2vw, 1.1rem); line-height: 1.8; max-width: 38rem; }
.about-page-copy p { margin: 0 0 1.25rem; }
.about-page-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; margin: 2rem 0; }
.about-page-action-primary, .about-page-action-secondary { align-items: center; display: inline-flex; font-size: .64rem; font-weight: 600; gap: .75rem; letter-spacing: .14em; padding: .95rem 1.15rem; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.about-page-action-primary { background: #fff; color: var(--ink); }
.about-page-action-primary:hover { background: var(--accent); color: #fff; transform: translateY(-2px); }
.about-page-action-secondary { border: 1px solid rgba(255, 255, 255, .45); color: #fff; }
.about-page-action-secondary:hover { border-color: var(--accent); color: var(--accent); }
.about-page-image-wrap { margin-left: auto; max-width: 38rem; padding: 2rem 2rem 0 0; position: relative; }
.about-page-image-wrap::before { border: 1px solid rgba(138, 138, 146, .28); content: ""; inset: 0 0 2rem 2rem; position: absolute; }
.about-page-image-wrap img { aspect-ratio: 1 / 1.08; display: block; filter: saturate(.72) contrast(.94); object-fit: cover; position: relative; width: 100%; }
.about-page-values { background: #fff; padding: clamp(5rem, 9vw, 9rem) clamp(1.25rem, 6vw, 6.5rem); scroll-margin-top: clamp(7rem, 12vw, 10rem); }
.about-page-values h2 { color: var(--ink); }
@media (max-width: 767.98px) { .about-page-intro { padding-top: 11rem; } .about-page-grid { grid-template-columns: 1fr; } }
.join-us-title { color: #fff; font-family: var(--serif); font-size: clamp(2.4rem, 4.6vw, 4rem); font-weight: 500; letter-spacing: -.03em; line-height: 1.05; margin: 0 0 1.5rem; }
.join-us-perks { background: #fff; color: var(--ink); padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 6vw, 6.5rem); }
.join-us-perk { border-top: 1px solid rgba(32, 42, 68, .16); padding-top: 1.75rem; }
.join-us-perk-index { color: var(--accent); font-family: var(--serif); font-size: .95rem; letter-spacing: .1em; }
.join-us-perk h3 { color: var(--ink); font-family: var(--serif); font-size: clamp(1.15rem, 1.6vw, 1.4rem); font-weight: 500; margin: 1rem 0 .6rem; }
.join-us-perk p { color: rgba(32, 42, 68, .7); font-size: .85rem; line-height: 1.7; margin: 0; }
.teams-page { background: #fff; color: var(--ink); min-height: 100svh; }
.teams-intro { background: var(--ink); color: #fff; overflow: hidden; padding: clamp(10rem, 15vw, 13rem) clamp(1.25rem, 6vw, 6.5rem) clamp(4rem, 7vw, 6rem); position: relative; }
.teams-intro-backdrop { background-position: center; background-size: cover; inset: 0; position: absolute; z-index: 0; }
.teams-intro-overlay { background: rgba(32, 42, 68, .82); inset: 0; position: absolute; z-index: 1; }
.teams-intro > .container-fluid { position: relative; z-index: 2; }
.teams-heading { align-items: end; display: flex; gap: 2rem; justify-content: space-between; }
.teams-heading h1 { color: #fff; font-family: var(--serif); font-size: clamp(3rem, 6vw, 6.4rem); font-weight: 500; letter-spacing: -.045em; line-height: .92; margin: 0; }
.teams-heading p { color: rgba(255, 255, 255, .74); font-size: clamp(.9rem, 1.2vw, 1.05rem); line-height: 1.7; margin: 0 0 .4rem; max-width: 25rem; }
.teams-directory { padding: clamp(3.5rem, 7vw, 7rem) clamp(1.25rem, 6vw, 6.5rem) clamp(5rem, 9vw, 9rem); }
.team-filters { align-items: center; border-bottom: 1px solid rgba(32, 42, 68, .16); display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) minmax(10rem, 14rem) auto; margin-bottom: clamp(2.5rem, 5vw, 4rem); padding-bottom: 1.4rem; }
.team-search { align-items: center; background: #f3f4f6; display: flex; gap: .7rem; padding: .85rem 1rem; }
.team-search span { color: var(--paper); font-size: 1.3rem; line-height: 1; }
.team-search input, .team-filters select { background: transparent; border: 0; color: var(--ink); font: inherit; font-size: .78rem; min-width: 0; outline: none; width: 100%; }
.team-filters select { border-bottom: 1px solid rgba(32, 42, 68, .28); cursor: pointer; padding: .85rem .2rem; }
.team-filter-reset { color: var(--ink); font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.team-filter-reset:hover { color: var(--accent); }
.team-empty { color: var(--paper); margin: 2rem 0; }
@media (max-width: 767.98px) { .teams-intro { padding-top: 9.5rem; } .teams-heading { align-items: start; flex-direction: column; } .team-filters { grid-template-columns: 1fr; } .team-filter-reset { padding-top: .5rem; } }
.articles-page { background: #fff; color: var(--ink); min-height: 100svh; }
.articles-intro { background: #f2f3f5; padding: clamp(10rem, 15vw, 13rem) clamp(1.25rem, 6vw, 6.5rem) clamp(4rem, 7vw, 6rem); }
.articles-heading { align-items: end; display: flex; gap: 2rem; justify-content: space-between; }
.articles-heading h1 { color: var(--ink); font-family: var(--serif); font-size: clamp(3rem, 6vw, 6.4rem); font-weight: 500; letter-spacing: -.045em; line-height: .92; margin: 0; }
.articles-heading p { color: rgba(32, 42, 68, .68); font-size: clamp(.9rem, 1.2vw, 1.05rem); line-height: 1.7; margin: 0 0 .4rem; max-width: 27rem; }
.articles-directory { padding: clamp(3.5rem, 7vw, 7rem) clamp(1.25rem, 6vw, 6.5rem) clamp(5rem, 9vw, 9rem); }
.article-filters { align-items: center; border-bottom: 1px solid rgba(32, 42, 68, .16); display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) minmax(10rem, 14rem) auto; margin-bottom: clamp(2.5rem, 5vw, 4rem); padding-bottom: 1.4rem; }
.article-search { align-items: center; background: #f3f4f6; display: flex; gap: .7rem; padding: .85rem 1rem; }
.article-search span { color: var(--paper); font-size: 1.3rem; line-height: 1; }
.article-search input, .article-filters select { background: transparent; border: 0; color: var(--ink); font: inherit; font-size: .78rem; min-width: 0; outline: none; width: 100%; }
.article-filters select { border-bottom: 1px solid rgba(32, 42, 68, .28); cursor: pointer; padding: .85rem .2rem; }
.article-filter-reset { color: var(--ink); font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.article-filter-reset:hover { color: var(--accent); }
.articles-card { border: 1px solid rgba(32, 42, 68, .14); color: var(--ink); display: block; height: 100%; overflow: hidden; transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease; }
.articles-card:hover { border-color: var(--accent); box-shadow: 0 1.25rem 2rem rgba(32, 42, 68, .1); color: var(--ink); transform: translateY(-.35rem); }
.articles-card-image { align-items: end; background: var(--ink); display: flex; height: clamp(12rem, 19vw, 16rem); justify-content: flex-end; overflow: hidden; padding: 1.25rem; }
.articles-card-image img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.articles-card-image:has(img) { position: relative; }
.articles-card-image:has(img)::after { background: linear-gradient(180deg, transparent, rgba(32, 42, 68, .5)); content: ""; inset: 0; position: absolute; }
.articles-card-image span { color: rgba(255, 255, 255, .9); font-family: var(--serif); font-size: 3rem; line-height: 1; position: relative; z-index: 1; }
.articles-card-copy { display: flex; flex-direction: column; min-height: 16rem; padding: 1.45rem; }
.articles-card-copy > p { color: var(--accent); font-size: .6rem; font-weight: 600; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.articles-card-copy > p i { color: var(--paper); font-style: normal; margin: 0 .35rem; }
.articles-card h2 { color: var(--ink); font-family: var(--serif); font-size: clamp(1.35rem, 1.8vw, 1.75rem); font-weight: 500; line-height: 1.08; margin: .9rem 0; }
.articles-card-copy > div { color: rgba(32, 42, 68, .7); font-size: .82rem; line-height: 1.65; }
.articles-card-copy > span { color: var(--ink); font-size: .61rem; font-weight: 600; letter-spacing: .12em; margin-top: auto; padding-top: 1.25rem; text-transform: uppercase; }
.articles-card-copy > span i { color: var(--accent); font-size: .95rem; font-style: normal; margin-left: .3rem; }
.article-empty { color: var(--paper); margin: 2rem 0; }
.article-pagination { margin-top: 3.5rem; }
.article-pagination .pagination { gap: .4rem; justify-content: center; }
.article-pagination .page-link { border-color: rgba(32, 42, 68, .18); color: var(--ink); }
.article-pagination .page-item.active .page-link { background: var(--ink); border-color: var(--ink); }
@media (max-width: 767.98px) { .articles-intro { padding-top: 9.5rem; } .articles-heading { align-items: start; flex-direction: column; } .article-filters { grid-template-columns: 1fr; } .article-filter-reset { padding-top: .5rem; } }
.lawyers-section { background: #fff; color: var(--ink); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 5vw, 5rem); }
.lawyers-heading { margin-bottom: clamp(3.5rem, 6vw, 5.5rem); }
.lawyers-intro { color: rgba(32, 42, 68, .68); margin: .25rem 0 0; max-width: 42rem; }
.lawyer-card { color: inherit; display: block; min-width: 0; text-decoration: none; }
.lawyer-photo-wrap { background: var(--paper); overflow: hidden; }
.lawyer-photo { aspect-ratio: 1 / 1.12; display: block; object-fit: cover; transition: transform .5s ease; width: 100%; }
.lawyer-card:hover .lawyer-photo { transform: scale(1.025); }
.lawyer-card h3 { color: var(--ink); font-family: var(--heading); font-size: clamp(1.15rem, 1.6vw, 1.45rem); font-weight: 500; margin: 1.15rem 0 .35rem; }
.lawyer-card > p { color: var(--paper); font-size: .82rem; margin: 0; }
.lawyer-card::after { color: var(--accent); content: "View profile ↗"; display: block; font-size: .62rem; letter-spacing: .12em; margin-top: .85rem; opacity: 0; text-transform: uppercase; transform: translateY(.35rem); transition: opacity .25s ease, transform .25s ease; }
.lawyer-card:hover::after { opacity: 1; transform: translateY(0); }
.lawyers-carousel .owl-nav { display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1.5rem; }
.lawyers-carousel .owl-nav button.owl-prev, .lawyers-carousel .owl-nav button.owl-next { align-items: center; background: transparent; border: 1px solid rgba(32, 42, 68, .22); color: var(--ink); display: flex; font-size: 1.15rem; height: 2.75rem; justify-content: center; margin: 0; transition: background .2s ease, border-color .2s ease, color .2s ease; width: 2.75rem; }
.lawyers-carousel .owl-nav button:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.expertise-section { background: var(--ink); color: #fff; overflow: hidden; padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 5vw, 5rem); }
.expertise-intro { color: rgba(138, 138, 146, .9); margin: 0 0 .2rem; max-width: 42rem; }
.expertise-card { background: rgba(138, 138, 146, .08); border: 1px solid rgba(138, 138, 146, .34); height: 22rem; overflow: hidden; position: relative; transition: background .3s ease, border-color .3s ease, transform .3s ease; }
.expertise-card::after { background: linear-gradient(180deg, rgba(18, 28, 52, .34) 8%, rgba(18, 28, 52, .88) 66%, rgba(18, 28, 52, .99)); content: ""; inset: 0; opacity: 0; position: absolute; transition: opacity .3s ease; }
.expertise-card.has-image::after { opacity: 1; }
.expertise-card:hover { background: rgba(138, 138, 146, .16); border-color: var(--accent); transform: translateY(-.35rem); }
.expertise-card-image { height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform .5s ease; width: 100%; }
.expertise-card:hover .expertise-card-image { transform: scale(1.06); }
.expertise-card-content { display: flex; flex-direction: column; height: 100%; padding: clamp(1.25rem, 2.2vw, 1.75rem); position: relative; z-index: 1; }
.expertise-number { color: var(--accent); font-size: .68rem; letter-spacing: .15em; }
.expertise-card.has-image .expertise-number { color: #fff; }
.expertise-card h3 { color: #fff; font-family: var(--heading); font-size: clamp(1.3rem, 1.8vw, 1.75rem); font-weight: 500; line-height: 1.08; margin: 1rem 0 .65rem; max-width: 15rem; min-height: 0; }
.expertise-card p { color: rgba(138, 138, 146, .88); display: -webkit-box; font-size: .8rem; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-height: 1.55; margin: 0; max-width: 19rem; overflow: hidden; }
.expertise-card.has-image p { color: rgba(255, 255, 255, .92); }
.expertise-explore { background: transparent; border: 0; color: var(--accent); font-size: .63rem; letter-spacing: .13em; line-height: 1.2; margin-top: auto; padding: .9rem 0 0; text-align: left; text-transform: uppercase; }
.expertise-card.has-image .expertise-explore { color: #fff; }
.expertise-explore span { font-size: 1rem; margin-left: .35rem; }
.expertise-modal .modal-content { background: #fff; border: 0; border-radius: 0; color: var(--ink); overflow: hidden; position: relative; }
.expertise-modal-close { align-items: center; background: var(--ink); border: 0; color: #fff; display: flex; font-size: 1.6rem; height: 3rem; justify-content: center; line-height: 1; position: absolute; right: 1rem; top: 1rem; width: 3rem; z-index: 2; }
.expertise-modal-image-wrap { background: var(--ink); height: clamp(12rem, 30vw, 20rem); }
.expertise-modal-image { display: block; height: 100%; object-fit: cover; width: 100%; }
.expertise-modal-content { padding: clamp(2rem, 5vw, 4.5rem); }
.expertise-modal-label { color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.expertise-modal h2 { color: var(--ink); font-family: var(--heading); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; line-height: .98; margin: 1rem 0 1.75rem; }
.expertise-modal-description { color: rgba(32, 42, 68, .78); font-size: 1rem; line-height: 1.8; }
.expertise-modal-description p:last-child, .expertise-modal-description ul:last-child, .expertise-modal-description ol:last-child { margin-bottom: 0; }
.expertise-carousel .owl-nav { display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1.5rem; }
.expertise-carousel .owl-nav button.owl-prev, .expertise-carousel .owl-nav button.owl-next { align-items: center; background: transparent; border: 1px solid rgba(138, 138, 146, .42); color: #fff; display: flex; font-size: 1.15rem; height: 2.75rem; justify-content: center; margin: 0; transition: background .2s ease, border-color .2s ease; width: 2.75rem; }
.expertise-carousel .owl-nav button:hover { background: var(--accent); border-color: var(--accent); }
.article-section { background: #fff; color: var(--ink); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.25rem, 5vw, 5rem); }
.article-intro { color: rgba(32, 42, 68, .68); margin: 0 0 .2rem; max-width: 39rem; }

.expertise-heading, .article-heading { margin-bottom: clamp(3rem, 6vw, 5rem); }
.lawyers-section .section-kicker, .expertise-section .section-kicker, .article-section .section-kicker { margin-bottom: 1.35rem; }
.lawyers-section h2, .expertise-section h2, .article-section h2 { font-family: var(--heading); font-size: clamp(2.8rem, 5vw, 5.4rem); font-weight: 500; letter-spacing: -.045em; line-height: .94; margin: 0; }
.lawyers-section h2, .article-section h2 { color: var(--ink); }
.expertise-section h2 { color: #fff; }
.lawyers-intro, .expertise-intro, .article-intro { font-size: clamp(.85rem, 1.2vw, 1.05rem); line-height: 1.65; }
.article-card { background: #fff; border: 1px solid rgba(32, 42, 68, .15); color: inherit; display: block; height: 100%; overflow: hidden; text-decoration: none; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.article-card:hover { border-color: var(--accent); box-shadow: 0 1rem 2.5rem rgba(32, 42, 68, .1); color: inherit; transform: translateY(-.35rem); }
.article-visual { align-items: flex-end; display: flex; height: 13rem; justify-content: space-between; overflow: hidden; padding: 1.35rem; position: relative; }
.article-visual::after { background: url("../img/hero.jpg") center / cover; content: ""; inset: 0; opacity: .18; position: absolute; transition: transform .5s ease; }
.article-card:hover .article-visual::after { transform: scale(1.08); }
.article-visual span, .article-visual b { position: relative; z-index: 1; }
.article-visual span { color: #fff; font-size: .68rem; letter-spacing: .15em; }
.article-visual b { color: rgba(255, 255, 255, .9); font-family: var(--serif); font-size: 3rem; font-weight: 500; line-height: .7; }
.article-visual-one { background: #202a44; }
.article-visual-two { background: #58647b; }
.article-visual-three { background: #8a8a92; }
.article-visual-four { background: #35425e; }
.article-visual-five { background: #6f7482; }
.article-visual-six { background: #202a44; }
.article-card-body { display: flex; flex-direction: column; min-height: 14rem; padding: 1.5rem 1.5rem 1.35rem; }
.article-meta { color: var(--accent); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.article-card h3 { color: var(--ink); font-family: var(--heading); font-size: clamp(1.35rem, 1.8vw, 1.7rem); font-weight: 500; line-height: 1.08; margin: 1rem 0 1.5rem; }
.article-read { color: var(--ink); font-size: .62rem; letter-spacing: .13em; margin-top: auto; text-transform: uppercase; }
.article-read i { color: var(--accent); font-size: 1rem; font-style: normal; margin-left: .35rem; }
.contact-section { background: var(--ink); color: #fff; isolation: isolate; overflow: hidden; padding: clamp(5.5rem, 10vw, 9.5rem) clamp(1.25rem, 5vw, 5rem); position: relative; }
.contact-backdrop { background-position: center; background-size: cover; filter: saturate(.7) contrast(.95); inset: 0; position: absolute; z-index: -2; }
.contact-section::before { background: linear-gradient(180deg, rgba(18, 24, 42, .9), rgba(18, 24, 42, .94)); content: ""; inset: 0; position: absolute; z-index: -1; }
.contact-content { margin: 0 auto; max-width: 46rem; position: relative; text-align: center; z-index: 1; }
.contact-kicker { justify-content: center; margin: 0 auto 1.5rem; width: fit-content; }
.contact-content h2 { color: #fff; font-family: var(--heading); font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 500; letter-spacing: -.02em; line-height: 1.1; margin: 0 0 2rem; }
.contact-divider { align-items: center; display: flex; gap: 1rem; margin: 0 auto 2.25rem; max-width: 18rem; }
.contact-divider-line { background: rgba(255, 255, 255, .25); flex: 1; height: 1px; }
.contact-divider-icon { color: var(--accent); flex-shrink: 0; height: 1.5rem; width: 1.5rem; }
.contact-phone { align-items: center; border: 1px solid rgba(255, 255, 255, .28); border-radius: 3rem; color: #fff; display: inline-flex; gap: 1rem; margin: 0 auto 2.5rem; padding: .8rem 1.8rem .8rem .8rem; text-align: left; transition: background .2s ease, border-color .2s ease; }
.contact-phone:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .5); color: #fff; }
.contact-phone-icon { align-items: center; background: rgba(255, 255, 255, .1); border-radius: 50%; color: var(--accent); display: flex; flex-shrink: 0; height: 2.75rem; justify-content: center; width: 2.75rem; }
.contact-phone-icon svg { height: 1.15rem; width: 1.15rem; }
.contact-phone-copy { display: flex; flex-direction: column; gap: .2rem; }
.contact-phone-copy small { color: rgba(255, 255, 255, .65); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }
.contact-phone-copy strong { font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 500; }
.contact-meta { align-items: center; color: rgba(255, 255, 255, .78); display: flex; flex-wrap: wrap; font-size: .82rem; gap: .75rem 2rem; justify-content: center; margin: 0 0 clamp(3rem, 6vw, 4.5rem); }
.contact-meta-item { align-items: center; color: inherit; display: inline-flex; gap: .5rem; transition: color .2s ease; }
.contact-meta-item svg { color: var(--accent); flex-shrink: 0; height: 1rem; width: 1rem; }
a.contact-meta-item:hover { color: #fff; }
.contact-offices { border-top: 1px solid rgba(255, 255, 255, .16); display: grid; gap: clamp(1.75rem, 4vw, 3rem); grid-template-columns: repeat(2, 1fr); padding-top: clamp(2rem, 4vw, 2.75rem); text-align: left; }
.contact-office h3 { color: #fff; font-family: var(--serif); font-size: clamp(1.05rem, 1.5vw, 1.3rem); font-weight: 500; margin: 0 0 .6rem; }
.contact-office address { color: rgba(255, 255, 255, .7); font-size: .8rem; font-style: normal; line-height: 1.75; margin: 0; }
.site-footer-main { background: #111b33; border-top: 1px solid rgba(255, 255, 255, .18); box-shadow: 0 -1.25rem 2.5rem rgba(8, 15, 31, .18); color: #fff; padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 5rem) 1.5rem; }
.footer-contact-grid { --bs-gutter-x: clamp(2rem, 7vw, 8rem); }
.footer-office { display: flex; flex-direction: column; font-size: clamp(.9rem, 1.15vw, 1.05rem); font-style: normal; gap: .25rem; line-height: 1.65; margin: 0; }
.footer-office strong { color: #fff; font-size: clamp(1rem, 1.3vw, 1.2rem); font-weight: 600; margin-bottom: .8rem; }
.footer-office span, .footer-office a { color: rgba(255, 255, 255, .78); }
.footer-office a { transition: color .2s ease; width: fit-content; }
.footer-office a:hover { color: #fff; }
.footer-social-links { gap: .25rem; }
.footer-bottom { align-items: center; border-top: 1px solid rgba(255, 255, 255, .32); color: rgba(255, 255, 255, .8); display: flex; font-size: clamp(.72rem, .9vw, .9rem); justify-content: space-between; margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 1.5rem; }
.footer-nav { display: flex; flex-wrap: wrap; gap: clamp(1.25rem, 2.5vw, 2.75rem); }
.footer-nav a { color: #fff; transition: color .2s ease; }
.footer-nav a:hover { color: var(--accent); }
.placeholder-anchors { display: none; }

.lawyer-detail-page { background: var(--ink); color: #fff; min-height: 100svh; }
.detail-header { align-items: center; display: flex; justify-content: space-between; padding: clamp(1.35rem, 4vw, 3.25rem) clamp(1.25rem, 6vw, 6.5rem); }
.detail-brand img { display: block; filter: brightness(0) invert(1); width: clamp(9.5rem, 17vw, 14.5rem); }
.detail-back { color: #fff; font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; transition: color .2s ease; }
.detail-back:hover { color: var(--accent); }
.detail-back span { font-size: 1rem; margin-right: .5rem; }
.detail-main { align-items: center; display: flex; min-height: calc(100svh - 8.5rem); padding: 2rem clamp(1.25rem, 6vw, 6.5rem) 5rem; }
.detail-main .detail-layout { column-gap: clamp(2rem, 4vw, 5rem); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.detail-main .detail-layout > .detail-profile,
.detail-main .detail-layout > .detail-content,
.detail-main .detail-layout > .detail-meta,
.detail-main .detail-layout > .detail-cta { max-width: none; width: 100%; }
.detail-main .detail-profile { grid-column: 1; grid-row: 1; }
.detail-main .detail-content { grid-column: 2; grid-row: 1; }
.detail-main .detail-profile, .detail-main .detail-content { text-align: left; }
.detail-main .detail-meta { margin: 2rem 0 0; width: 100%; }
.detail-meta-left { display: grid; gap: 1.75rem; grid-template-columns: minmax(0, 1fr); padding: 0 clamp(1.25rem, 2.5vw, 2rem) 2rem; }
.detail-meta-below { border-top: 1px solid rgba(255, 255, 255, .18); margin-top: 2.25rem !important; padding-top: 1.75rem; }
.detail-meta-grid { display: grid; gap: 2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-profile-card, .detail-bio-card { background: rgba(255, 255, 255, .055); border: 1px solid rgba(255, 255, 255, .16); box-shadow: 0 1.5rem 3.5rem rgba(8, 15, 31, .18); }
.detail-profile-card { overflow: hidden; }
.detail-bio-card { padding: clamp(1.5rem, 4vw, 3.5rem); }
.detail-contact-row { align-items: flex-start; display: flex; flex-direction: column; gap: .8rem; padding: 1.25rem clamp(1.25rem, 2.5vw, 2rem) 0; }
.detail-main .detail-cta { align-items: center; background: transparent; border: 1px solid rgba(255, 255, 255, .45); color: #fff; display: inline-flex; flex: 0 0 auto; font-size: .62rem; gap: .45rem; justify-content: center; letter-spacing: .1em; margin: 0; padding: .7rem .8rem; text-transform: uppercase; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.detail-main .detail-cta:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-2px); }
.detail-photo-wrap { background: var(--paper); max-width: none; overflow: hidden; width: 100%; }
.detail-photo { aspect-ratio: 1 / 1.2; display: block; object-fit: cover; width: 100%; }
.lawyer-detail-page .section-kicker { margin-bottom: 1.25rem; }
.lawyer-detail-page h1 { color: #fff; font-family: var(--serif); font-size: clamp(1.8rem, 3.4vw, 3.2rem); font-weight: 500; letter-spacing: -.03em; line-height: 1; margin: 0; max-width: 48rem; }
.detail-gelar { color: #fff; display: block; font-size: clamp(.85rem, 1vw, 1rem); letter-spacing: .04em; margin-top: .6rem; }
.detail-role { align-items: flex-start; color: var(--accent); display: flex; flex-direction: column; font-size: clamp(.8rem, 1vw, .95rem); gap: .35rem; letter-spacing: .16em; margin: 0; min-width: 0; text-transform: uppercase; }
.detail-role-email { color: #fff; font-size: clamp(.75rem, .9vw, .88rem); letter-spacing: .08em; text-transform: none; }
.detail-bio { color: #fff; font-size: clamp(.88rem, 1.15vw, 1rem); line-height: 1.8; margin: 2rem 0 0; max-width: none; text-align: justify; }
.detail-bio p { margin: 0 0 1.2rem; text-align: justify; text-indent: 1.25rem; }
.detail-bio p:last-child { margin-bottom: 0; }
.detail-meta span, .detail-meta strong { display: block; }
.detail-meta span { color: var(--accent); font-size: .62rem; letter-spacing: .15em; margin-bottom: .65rem; text-transform: uppercase; }
.detail-meta strong { color: #fff; font-size: .85rem; font-weight: 400; line-height: 1.7; }
.detail-rich-content { color: #fff; font-size: .85rem; line-height: 1.7; text-align: left; }
.detail-rich-content p, .detail-rich-content ul, .detail-rich-content ol { margin: 0 0 .55rem; }
.detail-rich-content p:last-child, .detail-rich-content ul:last-child, .detail-rich-content ol:last-child { margin-bottom: 0; }
.detail-rich-content ul, .detail-rich-content ol { padding-left: 1.2rem; }
.article-detail-page { background: #fff; color: var(--ink); min-height: 100svh; }
.article-detail-main { padding: 3rem 1.25rem 7rem; }
.article-detail-container { max-width: 72rem; }
.article-detail-page .section-kicker { margin-bottom: 1.5rem; }
.article-detail-page h1 { color: var(--ink); font-family: var(--serif); font-size: clamp(3rem, 7vw, 7rem); font-weight: 500; letter-spacing: -.05em; line-height: .92; margin: 0; max-width: 68rem; }
.article-detail-excerpt { color: rgba(32, 42, 68, .72); font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.65; margin: 2rem 0 0; max-width: 43rem; }
.article-detail-rule { background: rgba(32, 42, 68, .18); height: 1px; margin: 3rem 0 2.5rem; }
.article-content { color: rgba(32, 42, 68, .86); font-size: clamp(.95rem, 1.2vw, 1.08rem); line-height: 1.9; max-width: 47rem; }
.article-content p { margin: 0 0 1.5rem; }
.article-detail-page .hero-cta { margin-top: 1.5rem; }

@keyframes settle { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-backdrop { animation: none; transition: none; transform: scale(1.045); }
}

@media (max-width: 991.98px) {
  .navbar-collapse { background: transparent; margin-top: 1rem; padding: 1.1rem 1.25rem; }
  .navbar-collapse.show, .navbar-collapse.collapsing { background: rgba(32, 42, 68, .98); border-radius: .75rem; box-shadow: 0 .5rem 2rem rgba(12, 20, 38, .25); }
  .site-nav.is-scrolled .navbar-collapse { background: rgba(32, 42, 68, .98); }
  .navbar-collapse.show .nav-link, .navbar-collapse.collapsing .nav-link { color: #fff; }
  .navbar-collapse.show .nav-link:hover, .navbar-collapse.show .nav-link.active,
  .navbar-collapse.collapsing .nav-link:hover, .navbar-collapse.collapsing .nav-link.active { color: var(--accent); }
  .site-nav.menu-open .navbar-toggler-icon { background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff), linear-gradient(#fff, #fff); }
  .nav-link-contact { margin-left: 0; width: fit-content; }
}

@media (max-width: 575.98px) {
  .hero-section { padding: 1.35rem 1.25rem 1.25rem; }
  .hero-backdrop { background-position: 53% center; }
  .hero-content { padding-bottom: 4rem; transform: translateY(clamp(6rem, 22vh, 11rem)); }
  .hero-content h1 { font-size: clamp(2.6rem, 14vw, 4.2rem); }
  .hero-logo { margin: 0 auto 1.5rem; max-width: 80vw; width: clamp(14rem, 68vw, 22rem); }
  .hero-intro { margin: 1.75rem auto; }
  .hero-footer { align-items: flex-end; }
  .scroll-note { display: none; }
  .about-section, .lawyers-section, .expertise-section, .article-section { padding: 5rem 1.25rem; }
  .about-copy { padding-right: 0; }
  .about-copy h2, .lawyers-section h2, .expertise-section h2, .article-section h2 { font-size: clamp(2.7rem, 13vw, 4.2rem); }
  .about-text { margin: 1.5rem 0 2rem; max-height: 18rem; }
  .about-image-wrap { margin-top: 1rem; padding: 1rem 1rem 0 0; }
  .about-image-wrap::before { inset: 0 0 1rem 1rem; }
  .lawyers-heading, .expertise-heading, .article-heading { margin-bottom: 3rem; }
  .lawyers-intro { margin-top: 0; }
  .lawyer-card h3 { margin-top: .9rem; }
  .expertise-card { min-height: 19rem; }
  .expertise-card h3 { margin-top: 3.5rem; }
  .article-visual { height: 11rem; }
  .article-card-body { min-height: 12rem; }
  .contact-phone { align-items: flex-start; border-radius: 1.25rem; padding: 1rem; text-align: left; }
  .contact-meta { gap: .6rem 1.25rem; }
  .contact-offices { grid-template-columns: 1fr; text-align: center; }
  .site-footer-main { padding: 4.5rem 1.25rem 1.25rem; }
  .footer-brand-column { padding-right: 0; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 1rem; line-height: 1.5; }
  .detail-header { align-items: flex-start; flex-direction: column; gap: 1.75rem; }
  .detail-main { min-height: 0; padding: 1rem 1.25rem 4rem; }
  .detail-main .detail-layout { column-gap: 0; display: grid; grid-template-columns: 1fr; row-gap: 2rem; }
  .detail-main .detail-profile, .detail-main .detail-content { grid-column: 1; grid-row: auto; }
  .detail-main .detail-cta { align-self: flex-start; }
  .detail-main .detail-meta { margin: 1.5rem 0 0; }
  .detail-meta-grid { grid-template-columns: 1fr; }
  .detail-photo-wrap { max-width: none; }
  .lawyer-detail-page h1 { font-size: clamp(1.6rem, 8vw, 2.6rem); }
  .detail-rule { margin: 2rem 0 1.5rem; }
  .article-detail-main { padding: 1rem 1.25rem 5rem; }
  .article-detail-page h1 { font-size: clamp(2.7rem, 13vw, 4.5rem); }
  .article-detail-excerpt { margin-top: 1.5rem; }
  .article-detail-rule { margin: 2rem 0; }
}