@font-face {
  font-family: "Noto Serif SC Site";
  src: url("/assets/fonts/noto-serif-sc-site.woff2") format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "ZCOOL KuaiLe Site";
  src: url("/assets/fonts/zcool-kuaile-buttons.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+4E3A, U+4FE1, U+548C, U+57FA, U+8D35;
}

:root {
  color-scheme: light;
  font-family: "Noto Serif SC Site", "Source Han Serif SC", "思源宋体 CN", "Noto Serif CJK SC", SimSun, serif;
  color: #202832;
  background: #f2f4f6;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --paper: #f2f4f6;
  --surface: #fafbfc;
  --surface-strong: #fefefd;
  --ink: #202832;
  --muted: #626c78;
  --accent: #315f9e;
  --accent-dark: #173f78;
  --accent-red: #9b2633;
  --vermilion: #b33b2e;
  --accent-gold: #b28a32;
  --line: #d4dbe3;
  --soft: #eceff3;
  --focus: #315f9e;
  --shadow-soft: 0 16px 40px rgb(28 47 72 / 8%);
  --shadow-card: 0 8px 24px rgb(28 47 72 / 7%);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 320px; margin: 0; color: var(--ink); background: var(--paper); }
body, button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; display: block; }
h1, h2, h3, p, figure, dl, dd { margin-top: 0; }
figure, dl, dd { margin-right: 0; margin-left: 0; }
button:active, a:active { transform: translateY(1px); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
::selection { color: #fff; background: var(--accent); }

.skip-link { position: fixed; left: 16px; top: 10px; z-index: 100; padding: 9px 13px; color: #fff; background: var(--accent-dark); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.site-shell { width: min(100% - 56px, 1160px); margin-inline: auto; }

.site-header { position: sticky; top: 0; z-index: 30; height: 76px; overflow: visible; background: linear-gradient(125deg, #0e2c50 0%, #184a7a 54%, #123960 100%); border-bottom: 0; box-shadow: 0 10px 28px rgb(15 42 73 / 18%), inset 0 1px 0 rgb(255 255 255 / 12%); }
.site-header::before { content: ""; position: absolute; inset: auto 0 -1px; z-index: 1; height: 1px; background: #c6a85e; }
.site-header::after { content: ""; position: absolute; inset: 0; z-index: 0; background: repeating-linear-gradient(118deg, rgb(255 255 255 / 0%) 0 13px, rgb(255 255 255 / 5%) 13px 14px, rgb(255 255 255 / 0%) 14px 28px); opacity: .48; pointer-events: none; }
.header-inner { position: relative; z-index: 2; height: 100%; display: flex; align-items: center; justify-content: flex-start; gap: 32px; }
.brand { order: 1; display: flex; align-items: center; gap: 12px; flex: none; }
.brand-seal { position: relative; width: 40px; height: 40px; display: grid; place-items: center; color: #f8f3e5; background: rgb(255 255 255 / 7%); border: 1px solid rgb(219 193 126 / 88%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 7%); font-size: 21px; font-weight: 800; }
.brand-seal::after { content: none; }
.brand strong { color: #f7f8fa; text-shadow: 0 1px 1px rgb(0 0 0 / 16%); font-size: clamp(17px, 1.55vw, 21px); font-weight: 800; letter-spacing: .04em; }
.primary-nav { order: 2; display: flex; align-items: center; gap: 36px; margin-left: auto; }
.primary-nav a { position: relative; display: flex; align-items: center; gap: 7px; padding: 9px 0; color: rgb(245 248 252 / 76%); font-size: 14px; font-weight: 600; white-space: nowrap; }
.primary-nav a::before, .home-portals a::before, .footer-label::before { content: ""; display: block; flex: none; background: currentColor; -webkit-mask: var(--site-icon) center / contain no-repeat; mask: var(--site-icon) center / contain no-repeat; }
.primary-nav a::before { width: 17px; height: 17px; }
.primary-nav a[href="/about/"], .home-portals a[href="/about/"] { --site-icon: url("/assets/icons/building.svg"); }
.primary-nav a[href="/listen/"], .home-portals a[href="/listen/"] { --site-icon: url("/assets/icons/chat.svg"); }
.primary-nav a[href="/contact/"], .home-portals a[href="/contact/"] { --site-icon: url("/assets/icons/call.svg"); }
.primary-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: #d1ad57; transition: right .16s ease; }
.primary-nav a:hover, .primary-nav a.is-current { color: #ffffff; }
.primary-nav a:hover::after, .primary-nav a.is-current::after { right: 0; }
.language-switcher { order: 3; display: flex; align-items: center; flex: none; margin-left: -20px; border: 1px solid rgb(255 255 255 / 30%); }
.language-switcher button { min-width: 32px; height: 30px; padding: 0 7px; color: rgb(245 248 252 / 82%); background: transparent; border: 0; border-left: 1px solid rgb(255 255 255 / 18%); font-family: Arial, sans-serif; font-size: 11px; font-weight: 700; cursor: pointer; }
.language-switcher button:first-child { border-left: 0; }
.language-switcher button:hover { color: #ffffff; background: rgb(255 255 255 / 10%); }
.language-switcher button[aria-pressed="true"] { color: #102f55; background: #d1ad57; }
.nav-toggle { order: 4; display: none; min-height: 38px; padding: 0 14px; color: #f7f8fa; background: rgb(255 255 255 / 7%); border: 1px solid rgb(255 255 255 / 32%); cursor: pointer; }

.home-main { overflow-x: clip; padding-top: 0; padding-bottom: 32px; }
.home-image { width: min(100% - 56px, 1120px); margin: 0 auto; padding: 10px; background: var(--surface-strong); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.home-image img { width: 100%; height: auto; object-fit: contain; }
.home-title { width: min(100% - 40px, 760px); display: flex; align-items: center; justify-content: center; gap: 18px; margin: 28px auto 0; color: var(--accent-dark); font-size: clamp(22px, 3vw, 34px); font-weight: 800; line-height: 1.25; letter-spacing: .09em; text-align: center; text-shadow: 0 1px 0 rgb(255 255 255 / 90%); white-space: nowrap; }
.home-title::before, .home-title::after { content: ""; height: 1px; flex: 1; background: linear-gradient(90deg, transparent, var(--accent-gold)); }
.home-title::after { background: linear-gradient(90deg, var(--accent-gold), transparent); }
.home-portals { width: min(100% - 56px, 800px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 18px; }
.home-portals a { position: relative; min-height: 86px; display: flex; align-items: center; flex-direction: column; justify-content: center; gap: 0; padding: 8px 14px 20px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); font-weight: 700; text-align: center; transition: color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease; }
.home-portals a::before { display: none; }
.home-entry-script, .home-entry-label { font-size: clamp(20px, 2.2vw, 25px); line-height: 1.2; }
.home-entry-script { color: var(--vermilion); font-weight: 800; }
.home-portals a::after { content: ""; position: absolute; left: 50%; bottom: 14px; width: 30px; height: 2px; background: linear-gradient(90deg, var(--accent) 0 62%, var(--accent-gold) 62% 83%, var(--accent-red) 83% 100%); transform: translateX(-50%); }
.home-portals a + a { border-left: 1px solid var(--line); }
.home-portals a:hover { color: var(--accent-dark); background: var(--surface-strong); box-shadow: 0 13px 30px rgb(28 47 72 / 11%); transform: translateY(-2px); }
.consultation-ticker { width: 100%; margin: 0 auto 32px; overflow: hidden; contain: paint; color: #f9fbfd; background: var(--accent-dark); border-top: 1px solid #294f80; border-bottom: 1px solid #294f80; box-shadow: var(--shadow-card); }
.consultation-ticker-track { width: max-content; display: flex; animation: consultation-ticker 24s linear infinite; }
.consultation-ticker-group { display: flex; align-items: center; flex: none; }
.consultation-ticker a { position: relative; display: block; padding: 13px 58px; font-size: 14px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.consultation-ticker a::after { content: ""; position: absolute; right: 0; top: 50%; width: 34px; height: 1px; background: #d1ad57; transform: translate(50%, -50%); }
.consultation-ticker:hover .consultation-ticker-track, .consultation-ticker:focus-within .consultation-ticker-track { animation-play-state: paused; }
@keyframes consultation-ticker { to { transform: translateX(-50%); } }
.address-bar { position: relative; width: min(100% - 56px, 1120px); min-height: 86px; display: grid; grid-template-columns: 1fr; align-content: center; justify-items: center; row-gap: 7px; margin: 16px auto 0; padding: 18px 58px; background: rgb(250 251 252 / 78%); border: 1px solid var(--line); text-align: center; }
.address-bar::before { content: ""; position: absolute; left: 28px; top: 50%; width: 21px; height: 21px; background: var(--accent-gold); -webkit-mask: url("/assets/icons/location.svg") center / contain no-repeat; mask: url("/assets/icons/location.svg") center / contain no-repeat; transform: translateY(-50%); }
.address-bar strong, .address-phone { font-size: 15px; line-height: 1.7; }
.address-bar strong { font-weight: 600; }
.address-phone { width: fit-content; color: inherit; font-style: normal; font-weight: 700; }
.mobile-only-break { display: none; }

.page-main { position: relative; min-height: calc(100dvh - 76px); overflow: hidden; padding-top: 44px; padding-bottom: clamp(82px, 9vw, 128px); }
.about-main { padding-top: 44px; }
.page-main::before, .page-main::after { content: none; }
.page-main > * { position: relative; z-index: 1; }
.about-copy, .listen-copy, .publish-intro, .contact-heading, .simple-heading { max-width: 920px; padding: clamp(30px, 5vw, 58px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.about-copy h1, .listen-copy h1, .publish-intro h1, .contact-heading h1, .simple-heading h1 { position: relative; margin-bottom: 32px; padding-bottom: 24px; font-size: clamp(42px, 6vw, 72px); font-weight: 800; line-height: 1.15; letter-spacing: -.035em; }
.about-copy h1::after, .listen-copy h1::after, .publish-intro h1::after, .contact-heading h1::after, .simple-heading h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 112px; height: 3px; background: linear-gradient(90deg, var(--accent) 0 62%, var(--accent-gold) 62% 83%, var(--accent-red) 83% 100%); }
.section-title-accent { color: var(--vermilion); }
.about-copy p, .listen-copy p, .publish-intro p { max-width: 850px; margin-bottom: 17px; color: var(--muted); font-size: 17px; line-height: 2; }
.about-copy p, .listen-copy p, .publish-intro p, .team-bio, .lawyer-detail p, .practice-list p, .service-section p, .article-body p { text-indent: 2em; }
main p + p { margin-top: 30px; }
.about-copy h1 { font-size: clamp(30px, 3.6vw, 44px); }
.listen-copy h1 { font-size: clamp(34px, 4.2vw, 52px); }
.license-image { width: min(100%, 620px); margin: 34px auto 0; padding: 10px; background: var(--surface-strong); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.license-image img { width: 100%; height: auto; max-height: 400px; object-fit: contain; }
.about-copy > .license-image, .listen-copy > .listen-image { margin: 0 auto 36px; }
.about-entries { width: min(100% - 56px, 920px); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 36px; }
.about-entries a { position: relative; min-height: 210px; display: grid; place-items: center; padding: 35px 35px 52px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); font-size: clamp(20px, 2.2vw, 25px); font-weight: 800; text-align: center; transition: color .16s ease, background .16s ease, transform .16s ease; }
.about-entries a::after, .listen-entries a::after { content: ""; position: absolute; left: 50%; bottom: 31px; width: 54px; height: 2px; background: linear-gradient(90deg, var(--accent-gold) 0 74%, var(--accent-red) 74% 100%); transform: translateX(-50%); }
.about-entries a + a { border-left: 1px solid var(--line); }
.about-entries a:hover { transform: translateY(-2px); }

.back-link { width: fit-content; display: block; margin: 0 0 30px auto; padding: 8px 13px; color: #fff; background: #80611f; border: 1px solid #80611f; box-shadow: 0 4px 0 #5d4515; font-size: 12px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.back-link:hover { color: #fff; background: #6f531a; border-color: #6f531a; }
.team-links { display: grid; gap: 34px; margin-top: 28px; }
.team-profile { display: grid; grid-template-columns: minmax(250px, 340px) minmax(0, 1fr); align-items: start; gap: clamp(42px, 7vw, 88px); padding: clamp(24px, 4vw, 42px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.team-profile:first-child { padding-top: clamp(24px, 4vw, 42px); border-top: 1px solid var(--line); }
.team-profile figure { position: relative; margin-bottom: 0; padding: 8px 0 0 8px; }
.team-profile figure::before { content: ""; position: absolute; inset: 0 auto auto 0; width: 46px; height: 46px; border-top: 2px solid var(--accent-red); border-left: 2px solid var(--accent-gold); }
.team-profile figure a { display: block; }
.team-profile img { width: 100%; height: auto; border: 1px solid var(--line); object-fit: contain; }
.team-profile-copy { padding-top: 12px; }
.team-profile h2 { margin-bottom: 9px; font-size: clamp(30px, 3.8vw, 44px); font-weight: 800; line-height: 1.35; }
.team-profile h2 a { color: var(--ink); transition: color .16s ease; }
.team-profile h2 a:hover { color: var(--accent-dark); }
.team-role { margin-bottom: 28px; color: var(--accent-dark); font-size: 17px; font-weight: 800; }
.team-bio { margin-bottom: 18px; color: var(--muted); font-size: 16px; line-height: 2; }
.team-detail-link { display: inline-block; margin-top: 5px; padding-bottom: 4px; color: var(--accent-dark); border-bottom: 1px solid currentColor; font-size: 13px; font-weight: 800; }

.lawyer-detail { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr); align-items: start; gap: clamp(52px, 8vw, 100px); padding: clamp(26px, 5vw, 58px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.lawyer-detail figure { margin-bottom: 0; border: 1px solid var(--line); box-shadow: 9px 9px 0 rgb(178 138 50 / 11%); }
.lawyer-detail figure img { width: 100%; height: auto; object-fit: contain; }
.lawyer-detail h1 { margin-bottom: 13px; font-size: clamp(38px, 5vw, 62px); font-weight: 800; line-height: 1.25; }
.lawyer-detail h2 { margin-bottom: 34px; color: var(--accent-dark); font-size: 20px; font-weight: 700; }
.lawyer-detail p { margin-bottom: 20px; color: var(--muted); font-size: 17px; line-height: 2; }

.practice-page { max-width: 920px; padding: clamp(30px, 5vw, 58px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.consultation-panel { max-width: 920px; padding: clamp(30px, 5vw, 58px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.consultation-panel h1 { position: relative; margin: 0 0 34px; padding-bottom: 18px; color: var(--ink); font-size: clamp(30px, 4vw, 46px); font-weight: 800; line-height: 1.25; }
.consultation-panel h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 86px; height: 2px; background: linear-gradient(90deg, var(--accent) 0 68%, var(--accent-gold) 68% 86%, var(--accent-red) 86% 100%); }
.consultation-services { display: grid; gap: 22px; }
.consultation-service { position: relative; padding: 25px 28px 24px 34px; background: var(--surface-strong); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.consultation-service::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; background: var(--accent-gold); }
.consultation-service:nth-child(2)::before { background: var(--accent-red); }
.consultation-service p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.75; text-indent: 0; }
.consultation-service p + p { margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }
.consultation-service a { color: var(--accent-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.practice-section-title { position: relative; margin: 0 0 26px; padding-bottom: 15px; color: var(--ink); font-size: clamp(30px, 3.5vw, 38px); font-weight: 800; line-height: 1.2; }
.practice-section-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 76px; height: 2px; background: linear-gradient(90deg, var(--accent) 0 68%, var(--accent-gold) 68% 86%, var(--accent-red) 86% 100%); }
.practice-list { display: grid; grid-template-columns: 1fr; gap: 18px; margin: 0; padding: 0; background: transparent; box-shadow: none; }
.practice-list article { min-height: 0; padding: 0; background: transparent; }
.practice-list h2 { margin-bottom: 6px; font-size: 21px; font-weight: 800; }
.practice-list p { margin-bottom: 0; color: var(--muted); font-size: 15px; line-height: 1.9; }
.service-section { max-width: none; margin-top: 34px; padding: 30px 0 0; background: transparent; border: 0; border-top: 1px solid var(--line); box-shadow: none; }
.service-section h2 { margin-bottom: 26px; }
.service-section .practice-section-title { color: var(--vermilion); }
.service-section h3 { margin: 30px 0 16px; font-size: 22px; font-weight: 800; }
.service-section p, .service-section li { color: var(--muted); font-size: 16px; line-height: 2; }
.service-section p strong { color: var(--ink); }
.service-section ol { margin: 0; padding-left: 28px; }

.listen-image { width: min(100%, 720px); margin: 34px auto 0; padding: 10px; background: var(--surface-strong); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.listen-image img { width: 100%; height: auto; }
.listen-entries { width: min(100% - 56px, 920px); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.listen-entries a { position: relative; min-height: 180px; display: flex; align-items: center; flex-direction: column; justify-content: center; gap: 4px; padding: 26px 30px 42px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); font-weight: 800; text-align: center; transition: color .16s ease, background .16s ease, transform .16s ease; }
.listen-entry-script, .listen-entry-label { font-size: clamp(28px, 3vw, 36px); line-height: 1.15; }
.listen-entry-script { color: var(--vermilion); font-family: "ZCOOL KuaiLe Site", "Noto Serif SC Site", serif; font-weight: 400; }
.listen-entries a + a { border-left: 1px solid var(--line); }
.listen-entries a:hover { transform: translateY(-2px); }
.about-entries a, .listen-entries a { color: #f7f8fa; background: var(--accent-dark); border-color: #295183; box-shadow: 0 10px 24px rgb(23 63 120 / 16%); }
.about-entries a:hover, .listen-entries a:hover { color: #ffffff; background: #214f85; }
.listen-entries .listen-entry-script { color: #ffffff; }

.publish-intro { margin-bottom: 18px; }
.publish-intro p { margin-bottom: 10px; line-height: 1.8; }
.publish-intro p + p { margin-top: 10px; }
.two-column-publish { display: grid; grid-template-columns: 1fr 1fr; padding: 0 30px 28px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.mobile-column-tabs { display: none; }
.two-column-publish > article { min-width: 0; padding-top: 28px; }
.two-column-publish > article:first-of-type { padding-right: 48px; }
.two-column-publish > article + article { padding-left: 48px; border-left: 1px solid var(--line); }
.two-column-publish h2 { position: relative; margin-bottom: 24px; padding-bottom: 15px; color: var(--accent-dark); font-size: clamp(28px, 3.4vw, 38px); font-weight: 800; }
.two-column-publish h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 68px; height: 2px; background: linear-gradient(90deg, var(--accent-gold) 0 76%, var(--accent-red) 76% 100%); }
.column-status { min-height: 140px; display: grid; place-items: center; color: var(--muted); font-size: 14px; text-align: center; }
.column-status[hidden] { display: none; }
.column-feed { display: grid; }
.column-feed a { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.column-feed a:first-child { border-top: 1px solid var(--line); }
.column-feed figure { aspect-ratio: 4 / 3; margin-bottom: 0; overflow: hidden; background: var(--soft); }
.column-feed img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.column-feed a:hover img { transform: scale(1.02); }
.column-feed time { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; }
.column-feed h3 { margin-bottom: 0; font-size: 17px; font-weight: 700; line-height: 1.65; }
.column-feed a:hover h3 { color: var(--accent-dark); }
.column-more { width: fit-content; display: block; margin: 22px auto 0; padding: 8px 22px; color: #fff; background: var(--accent-dark); border: 1px solid var(--accent-dark); font-size: 13px; font-weight: 700; text-align: center; }
.column-more:hover { background: #214f85; }
.column-more[hidden] { display: none; }

.all-articles-heading { margin-bottom: 18px; }
.all-articles-panel { max-width: 920px; padding: clamp(22px, 4vw, 38px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.all-article-feed { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.all-article-card { min-width: 0; display: grid; grid-template-columns: 132px minmax(0, 1fr); align-items: center; gap: 18px; padding: 16px; background: var(--surface-strong); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
.all-article-card figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--soft); }
.all-article-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.all-article-card:hover img { transform: scale(1.02); }
.all-article-card time { display: block; margin-bottom: 6px; color: var(--muted); font-size: 11px; }
.all-article-card h2 { margin: 0; font-size: 16px; font-weight: 800; line-height: 1.55; }
.all-article-card p { margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; text-indent: 0; }
.article-pagination { display: grid; grid-template-columns: 88px minmax(120px, 1fr) 88px; align-items: center; gap: 12px; margin-top: 28px; }
.article-pagination[hidden] { display: none; }
.article-pagination a { min-height: 38px; display: grid; place-items: center; color: #fff; background: var(--accent-dark); border: 1px solid var(--accent-dark); font-size: 12px; font-weight: 700; }
.article-pagination a:hover { background: #214f85; }
.article-pagination a[aria-disabled="true"] { color: var(--muted); background: var(--soft); border-color: var(--line); pointer-events: none; }
.article-pagination span { color: var(--muted); font-size: 12px; text-align: center; }

.contact-heading dl { margin: 24px 0 0; }
.contact-heading dl div { display: grid; grid-template-columns: 72px 1fr; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.contact-heading dt { color: var(--accent-dark); font-weight: 700; }
.contact-heading dd { margin-bottom: 0; color: var(--muted); line-height: 1.8; }
.contact-form-wrap { max-width: 920px; padding-top: 20px; }
.contact-panel .contact-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.contact-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 18px; }
.contact-form label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; }
.contact-form label:nth-child(4) { grid-column: 1 / -1; }
.contact-form input, .contact-form textarea { width: 100%; padding: 9px 11px; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--line); border-radius: 0; }
.contact-form input:disabled, .contact-form textarea:disabled { background: var(--soft); opacity: 1; }
.contact-form button { min-height: 40px; grid-column: 1 / -1; color: var(--muted); background: var(--soft); border: 1px solid var(--line); font-size: 12px; cursor: not-allowed; }

.article-detail { max-width: 820px; padding: clamp(24px, 4vw, 46px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.detail-loading { min-height: 420px; display: grid; place-items: center; color: var(--muted); }
.detail-error { padding: 50px; text-align: center; border: 1px solid var(--line); }
.detail-error h1 { margin-bottom: 16px; font-size: 38px; font-weight: 800; }
.detail-error p { color: var(--muted); line-height: 1.8; }
.detail-error a { display: inline-block; margin-top: 16px; color: var(--accent-dark); border-bottom: 1px solid currentColor; font-weight: 700; }
.detail-header { margin-bottom: 26px; text-align: center; }
.detail-category { display: inline-block; margin-bottom: 10px; color: var(--accent-dark); font-size: 11px; font-weight: 700; }
.detail-header h1 { margin-bottom: 12px; font-size: clamp(15px, 1.6vw, 17px); font-weight: 800; line-height: 1.55; }
.detail-summary { max-width: 680px; margin: 0 auto 12px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.detail-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 16px; color: var(--muted); font-size: 10px; }
.detail-cover, .detail-video { width: 100%; max-height: 600px; margin-bottom: 28px; object-fit: contain; }
.detail-audio { width: min(100%, 720px); margin: 0 auto 28px; }
.detail-media-empty { min-height: 150px; display: grid; place-items: center; margin-bottom: 28px; color: var(--muted); border: 1px solid var(--line); }
.article-body { max-width: 700px; margin: 0 auto; font-size: 12px; line-height: 1.7; }
.article-body h2 { margin: 1.6em 0 .55em; font-size: 17px; font-weight: 800; }
.article-body h3 { margin: 1.4em 0 .5em; font-size: 15px; font-weight: 800; }
.article-body p { margin-bottom: .8em; }
.article-body p + p { margin-top: .8em; }
.article-body a { color: var(--accent-dark); border-bottom: 1px solid currentColor; }
.article-body blockquote { margin: 18px 0; padding-left: 16px; color: var(--muted); border-left: 2px solid var(--accent); }

.site-footer { position: relative; background: #e9edf1; border-top: 1px solid var(--line); }
.site-footer::before { content: ""; position: absolute; inset: -2px auto auto 0; width: 190px; height: 3px; background: linear-gradient(90deg, var(--accent) 0 74%, var(--accent-gold) 74% 90%, var(--accent-red) 90% 100%); }
.footer-main { min-height: 160px; display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: clamp(32px, 6vw, 72px); padding-top: 42px; padding-bottom: 42px; }
.footer-main > div:first-child { display: none; }
.footer-main strong { display: block; margin-bottom: 14px; color: var(--accent-dark); font-size: 20px; font-weight: 800; }
.footer-main p { margin-bottom: 6px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.footer-label { position: relative; display: block; margin-bottom: 16px; padding-bottom: 9px; color: var(--ink); font-size: 13px; font-weight: 800; }
.footer-label { display: flex; align-items: center; gap: 8px; }
.footer-label::before { width: 16px; height: 16px; color: var(--accent-dark); }
.footer-main > div:nth-child(2) .footer-label { --site-icon: url("/assets/icons/navigation.svg"); }
.footer-main > div:nth-child(3) .footer-label { --site-icon: url("/assets/icons/call.svg"); }
.footer-label::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38px; height: 2px; background: linear-gradient(90deg, var(--accent-gold) 0 72%, var(--accent-red) 72% 100%); }
.footer-nav { display: grid; gap: 10px; }
.footer-nav a { width: fit-content; color: var(--muted); font-size: 13px; }
.footer-nav a:hover { color: var(--accent-dark); }
.footer-contact { display: grid; gap: 10px; }
.footer-contact p { margin: 0; }
.footer-contact a { color: var(--accent-dark); }
.footer-contact a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-bottom { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--muted); border-top: 1px solid var(--line); font-size: 11px; }
.filing-placeholder { white-space: nowrap; }

@media (max-width: 1100px) {
  html[lang="en-GB"] .site-header, html[lang="fr-FR"] .site-header { height: 66px; }
  html[lang="en-GB"] .nav-toggle, html[lang="fr-FR"] .nav-toggle { display: block; }
  html[lang="en-GB"] .primary-nav, html[lang="fr-FR"] .primary-nav { position: fixed; left: 0; right: 0; top: 66px; display: none; padding: 8px 28px 18px; background: linear-gradient(135deg, #102f55, #17466f); border-bottom: 1px solid rgb(178 138 50 / 65%); box-shadow: 0 16px 28px rgb(15 42 73 / 18%); }
  html[lang="en-GB"] .primary-nav.is-open, html[lang="fr-FR"] .primary-nav.is-open { display: grid; }
  html[lang="en-GB"] .primary-nav a, html[lang="fr-FR"] .primary-nav a { padding: 13px 2px; border-bottom: 1px solid rgb(255 255 255 / 16%); }
  html[lang="en-GB"] .primary-nav a::after, html[lang="fr-FR"] .primary-nav a::after { display: none; }
  html[lang="en-GB"] .language-switcher, html[lang="fr-FR"] .language-switcher { width: fit-content; margin-left: auto; }
  html[lang="en-GB"] .language-switcher button, html[lang="fr-FR"] .language-switcher button { min-width: 32px; height: 30px; }
}

@media (max-width: 820px) {
  .site-header { height: 66px; }
  .nav-toggle { display: block; }
  .primary-nav { position: fixed; left: 0; right: 0; top: 66px; display: none; padding: 8px 28px 18px; background: linear-gradient(135deg, #102f55, #17466f); border-bottom: 1px solid rgb(178 138 50 / 65%); box-shadow: 0 16px 28px rgb(15 42 73 / 18%); }
  .primary-nav.is-open { display: grid; }
  .primary-nav a { padding: 13px 2px; border-bottom: 1px solid rgb(255 255 255 / 16%); }
  .primary-nav a::after { display: none; }
  .language-switcher { width: fit-content; margin-left: auto; }
  .language-switcher button { min-width: 32px; height: 30px; }
  .team-links { gap: 58px; }
  .team-profile { grid-template-columns: minmax(220px, 290px) minmax(0, 1fr); gap: 40px; }
  .lawyer-detail { grid-template-columns: minmax(260px, .7fr) 1.3fr; gap: 45px; }
  .two-column-publish > article:first-of-type { padding-right: 28px; }
  .two-column-publish > article + article { padding-left: 28px; }
  .column-feed a { grid-template-columns: 92px 1fr; gap: 15px; }
}

@media (max-width: 640px) {
  .site-shell { width: min(100% - 32px, 1160px); }
  .header-inner { gap: 7px; }
  .brand { min-width: 0; gap: 9px; flex: 1 1 auto; overflow: hidden; }
  .brand strong { font-size: 15px; }
  html[lang="en-GB"] .brand strong, html[lang="fr-FR"] .brand strong { min-width: 0; overflow: hidden; font-size: 12px; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
  .brand-seal { width: 32px; height: 32px; flex: none; font-size: 17px; }
  .language-switcher { margin-left: auto; }
  .language-switcher button, html[lang="en-GB"] .language-switcher button, html[lang="fr-FR"] .language-switcher button { min-width: 25px; height: 28px; padding: 0 3px; font-size: 9px; }
  .nav-toggle { flex: none; min-height: 34px; padding: 0 7px; font-size: 11px; }
  .home-main { padding-top: 0; padding-bottom: 26px; }
  .home-image { width: min(100% - 32px, 1120px); }
  .home-title { width: min(100% - 24px, 760px); gap: 9px; margin-top: 20px; font-size: clamp(19px, 5.5vw, 22px); letter-spacing: .035em; }
  .home-portals { width: min(100% - 56px, 800px); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 14px; }
  .home-portals a { min-height: 62px; gap: 1px; padding: 5px 2px 15px; }
  .home-entry-script, .home-entry-label { font-size: 13px; }
  .home-portals a::after { bottom: 12px; width: 26px; }
  .home-portals a + a { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
  .consultation-ticker { width: 100%; margin: 0 auto 20px; }
  .consultation-ticker a { padding: 11px 42px; font-size: 12px; }
  .mobile-only-break { display: block; }
  .address-bar { width: min(100% - 24px, 1120px); gap: 6px; padding: 14px 12px; text-align: center; }
  .address-bar::before { display: none; }
  .address-bar strong, .address-phone { font-size: clamp(11px, 3.2vw, 13px); }
  .address-bar strong { white-space: nowrap; letter-spacing: -.03em; }
  html[lang="en-GB"] .address-bar strong, html[lang="fr-FR"] .address-bar strong { letter-spacing: 0; white-space: normal; }
  .page-main { padding-top: 24px; padding-bottom: 80px; }
  .about-main { padding-top: 24px; }
  .about-copy, .listen-copy { padding: 16px; }
  .about-copy h1, .listen-copy h1, .publish-intro h1, .contact-heading h1, .simple-heading h1 { margin-bottom: 25px; font-size: 42px; }
  .about-copy h1, .listen-copy h1 { margin-bottom: 16px; padding-bottom: 14px; font-size: 28px; }
  .about-copy p, .listen-copy p, .publish-intro p { font-size: 15px; line-height: 1.95; }
  .about-copy p, .listen-copy p { margin-bottom: 10px; line-height: 1.75; }
  main p + p { margin-top: 26px; }
  .about-copy p + p, .listen-copy p + p { margin-top: 18px; }
  .license-image, .listen-image { width: min(100%, 520px); padding: 6px; }
  .about-copy > .license-image, .listen-copy > .listen-image { margin: 0 auto 26px; }
  .about-copy > .license-image, .listen-copy > .listen-image { width: min(100%, 240px); margin-bottom: 16px; }
  .about-entries, .listen-entries { width: min(100% - 32px, 920px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
  .about-entries a, .listen-entries a { min-height: 88px; padding: 16px 8px 25px; font-size: clamp(16px, 4.7vw, 20px); line-height: 1.35; }
  .about-entries a, .listen-entries a { min-height: 66px; padding: 8px 6px 16px; font-size: 13px; }
  .listen-entries a { gap: 0; }
  .listen-entry-script, .listen-entry-label { font-size: 13px; }
  .about-entries a::after, .listen-entries a::after { bottom: 14px; width: 28px; }
  .about-entries a + a, .listen-entries a + a { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
  .team-links { gap: 50px; }
  .team-profile { grid-template-columns: 1fr; gap: 28px; padding-top: 32px; }
  .team-profile figure { max-width: 340px; }
  .team-profile-copy { padding-top: 0; }
  .team-profile h2 { font-size: 31px; }
  .team-role { margin-bottom: 22px; font-size: 15px; }
  .team-bio { font-size: 15px; line-height: 1.95; }
  .team-heading { padding: 16px; }
  .team-heading .back-link { margin-bottom: 12px; }
  .team-heading h1 { margin-bottom: 0; padding-bottom: 12px; font-size: 26px; }
  .team-heading h1::after { width: 72px; }
  .team-links { gap: 14px; margin-top: 10px; }
  .team-profile, .team-profile:first-child { grid-template-columns: 70px minmax(0, 1fr); align-items: start; column-gap: 14px; row-gap: 5px; padding: 14px; }
  .team-profile-copy { display: contents; }
  .team-profile figure { width: 70px; max-width: none; grid-column: 1; grid-row: 1 / 3; padding: 4px 0 0 4px; }
  .team-profile:nth-child(even) { grid-template-columns: minmax(0, 1fr) 70px; }
  .team-profile:nth-child(even) figure { grid-column: 2; }
  .team-profile h2 { align-self: end; grid-column: 2; grid-row: 1; margin: 0; font-size: 19px; line-height: 1.4; }
  .team-profile:nth-child(even) h2, .team-profile:nth-child(even) .team-role { grid-column: 1; text-align: right; }
  .team-role { align-self: start; grid-column: 2; grid-row: 2; margin: 0; font-size: 13px; }
  .team-bio { grid-column: 1 / -1; margin: 9px 0 0; font-size: 13px; line-height: 1.75; }
  .team-profile .team-bio + .team-bio { margin-top: 8px; }
  .team-detail-link { grid-column: 1 / -1; margin-top: 5px; font-size: 12px; }
  .team-profile figure::before { width: 25px; height: 25px; }
  .lawyer-detail { grid-template-columns: 1fr; gap: 38px; }
  .lawyer-detail figure { max-width: 420px; }
  .lawyer-detail h1 { font-size: 38px; }
  .lawyer-detail p { font-size: 15px; }
  .practice-page { padding: 16px; }
  .consultation-panel { padding: 16px; }
  .consultation-panel h1 { margin-bottom: 22px; padding-bottom: 12px; font-size: 25px; }
  .consultation-services { gap: 12px; }
  .consultation-service { padding: 17px 14px 16px 19px; }
  .consultation-service p { font-size: 12px; line-height: 1.65; }
  .consultation-service p + p { margin-top: 8px; padding-top: 8px; }
  .practice-page > .back-link { margin-bottom: 12px; }
  .practice-section-title { margin-bottom: 16px; padding-bottom: 11px; font-size: 24px; }
  .practice-section-title::after { width: 66px; }
  .practice-list { grid-template-columns: 1fr; gap: 12px; margin: 0; padding: 0; background: transparent; box-shadow: none; }
  .practice-list article, .practice-list article:last-child { min-height: 0; display: grid; grid-template-columns: 1fr; align-items: start; gap: 3px; grid-column: auto; padding: 0; border: 0; }
  .practice-list h2 { margin: 0; font-size: 14px; line-height: 1.4; }
  .practice-list p { font-size: 12px; line-height: 1.55; }
  .service-section { display: grid; grid-template-columns: 1fr; gap: 6px; margin-top: 22px; padding: 20px 0 0; }
  .service-section h2 { grid-column: auto; margin-bottom: 10px; font-size: 24px; }
  .service-section p { margin: 0; font-size: 12px; line-height: 1.65; }
  .service-section p + p { margin-top: 0; }
  .service-section p:last-child { grid-column: auto; }
  .publish-intro { margin-bottom: 14px; }
  .publish-intro h1 { margin-bottom: 14px; }
  .publish-intro p { margin-bottom: 8px; line-height: 1.72; }
  .publish-intro p + p { margin-top: 8px; }
  .two-column-publish { width: min(100% - 32px, 1160px); grid-template-columns: 1fr; padding: 0; background: transparent; border: 0; box-shadow: none; }
  .mobile-column-tabs { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 10px; border: 1px solid var(--line); }
  .mobile-column-tabs button { min-height: 46px; padding: 8px 10px; color: var(--muted); background: var(--surface); border: 0; border-bottom: 3px solid transparent; font-size: 15px; font-weight: 800; cursor: pointer; }
  .mobile-column-tabs button + button { border-left: 1px solid var(--line); }
  .mobile-column-tabs button[aria-selected="true"] { color: var(--accent-dark); border-bottom-color: var(--accent); }
  .two-column-publish > article { min-height: 220px; padding: 16px 14px 12px; background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-card); }
  .two-column-publish > article:first-of-type { padding-right: 14px; }
  .two-column-publish > article + article { padding-left: 14px; border-left: 1px solid var(--line); }
  .two-column-publish[data-mobile-tabs-ready] > article:not(.is-active) { display: none; }
  .two-column-publish h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .column-feed a { grid-template-columns: 96px minmax(0, 1fr); gap: 13px; padding: 14px 0; }
  .column-feed a:first-child { border-top: 0; }
  .column-feed figure { aspect-ratio: 4 / 3; }
  .column-feed h3 { font-size: 15px; line-height: 1.6; }
  .column-more { margin-top: 16px; padding: 7px 20px; font-size: 12px; }
  .all-articles-heading { margin-bottom: 14px; }
  .all-articles-panel { padding: 14px; }
  .all-article-feed { grid-template-columns: 1fr; gap: 10px; }
  .all-article-card { grid-template-columns: 96px minmax(0, 1fr); gap: 13px; padding: 10px; }
  .all-article-card h2 { font-size: 14px; }
  .all-article-card p { font-size: 11px; line-height: 1.55; }
  .article-pagination { grid-template-columns: 76px 1fr 76px; gap: 8px; margin-top: 20px; }
  .article-pagination a { min-height: 36px; }
  .contact-main { padding-bottom: 28px; }
  .contact-heading dl { margin-top: 16px; }
  .contact-heading dl div { grid-template-columns: 40px minmax(0, 1fr); gap: 8px; padding: 8px 0; font-size: 12px; }
  .contact-heading dd { line-height: 1.55; }
  .contact-form-wrap { padding-top: 12px; }
  .contact-panel .contact-form { margin-top: 10px; padding-top: 10px; }
  .contact-form { grid-template-columns: 1fr; gap: 9px; }
  .contact-form label { gap: 4px; font-size: 12px; }
  .contact-form input, .contact-form textarea { padding: 7px 9px; font-size: 12px; }
  .contact-form textarea { min-height: 62px; resize: vertical; }
  .contact-form button { min-height: 36px; }
  .contact-form label:nth-child(4), .contact-form button { grid-column: auto; }
  .article-detail { padding: 16px; }
  .detail-header { margin-bottom: 20px; text-align: left; }
  .detail-summary { margin-left: 0; }
  .detail-meta { justify-content: flex-start; }
  .detail-header h1 { font-size: 15px; line-height: 1.5; }
  .detail-summary { font-size: 11px; line-height: 1.6; }
  .article-body { font-size: 11px; line-height: 1.6; }
  .article-body h2 { font-size: 15px; }
  .article-body h3 { font-size: 13px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 30px 20px; padding-top: 38px; padding-bottom: 38px; }
  .footer-bottom { min-height: 74px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 8px; }
  .filing-placeholder { white-space: normal; }
}

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