@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("fonts/dm-sans-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500 600;
  font-display: swap;
  src: url("fonts/playfair-display-latin.woff2") format("woff2");
}

@font-face {
  font-family: "Playfair Display";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/playfair-display-italic-latin.woff2") format("woff2");
}

.icon-sprite { display: none; }
svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
svg:not(.icon-sprite) { display: inline-block; flex: 0 0 auto; height: 24px; width: 24px; }
.header-call svg { height: 17px; width: 17px; }
.button svg { height: 18px; width: 18px; }
.text-link svg { height: 17px; width: 17px; }
.menu-close svg, .mobile-menu nav svg { height: 24px; width: 24px; }
.qr-frame img { display: block; height: 132px; width: 132px; }

:root {
  --ink: #111b2a;
  --navy: #142237;
  --navy-light: #203451;
  --red: #b21f33;
  --red-dark: #8f1728;
  --cream: #f5f1e9;
  --warm: #eae4da;
  --paper: #fffdfa;
  --muted: #69717c;
  --line: rgba(17, 27, 42, 0.14);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
main { overflow: hidden; }

.site-header {
  align-items: center;
  background: rgba(255, 253, 250, 0.96);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  height: 88px;
  padding: 0 clamp(24px, 4.5vw, 76px);
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 50;
  backdrop-filter: blur(12px);
}
.brand { align-items: flex-end; display: flex; gap: 13px; justify-self: start; line-height: 1.08; letter-spacing: .04em; text-transform: uppercase; }
.brand img { height: 58px; object-fit: contain; width: 45px; }
.brand span { display: flex; flex-direction: column; font-family: var(--serif); font-size: 14px; transform: translateY(-7px); }
.brand strong { color: var(--red); font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: .18em; margin-bottom: 5px; }
.desktop-nav { align-items: center; display: flex; gap: clamp(22px, 2.8vw, 44px); transform: translateX(-18px); }
.desktop-nav a { font-size: 14px; font-weight: 500; position: relative; }
.desktop-nav a::after { background: var(--red); bottom: -8px; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; width: 100%; }
.desktop-nav a:hover::after { transform: scaleX(1); }
.desktop-nav a.is-active { color: var(--red); }
.desktop-nav a.is-active::after { transform: scaleX(1); }
.header-call { align-items: center; color: var(--red); display: flex; font-size: 14px; font-weight: 600; gap: 9px; justify-self: end; letter-spacing: .02em; }
.menu-button { background: none; border: 0; color: var(--ink); cursor: pointer; display: block; justify-self: end; margin-left: 22px; padding: 8px; }
.menu-button svg { display: block; height: 25px; width: 25px; }

.mobile-menu {
  background: var(--navy);
  color: #fff;
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: center;
  opacity: 0;
  padding: 64px 28px;
  pointer-events: none;
  position: fixed;
  transform: translateX(100%);
  transition: opacity .3s, transform .3s;
  width: 100%;
  z-index: 100;
}
.mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: translateX(0); }
.menu-close { background: none; border: 0; color: #fff; position: absolute; right: 24px; top: 28px; }
.mobile-menu nav { display: flex; flex-direction: column; margin-bottom: 40px; }
.mobile-menu nav a { align-items: center; border-bottom: 1px solid rgba(255,255,255,.16); display: flex; font-family: var(--serif); font-size: clamp(25px, 6vw, 33px); justify-content: space-between; padding: 12px 0; }
.mobile-menu nav a.is-active { color: #e7b5bd; }

.hero {
  background: var(--cream);
  display: grid;
  grid-template-columns: 84px minmax(0, 1.55fr) minmax(340px, .7fr);
  min-height: 760px;
  padding-top: 88px;
}
.hero-rail { align-items: center; border-right: 1px solid var(--line); display: flex; justify-content: center; }
.hero-rail span { color: var(--muted); font-size: 11px; letter-spacing: .22em; transform: rotate(-90deg); text-transform: uppercase; white-space: nowrap; }
.hero-content { align-self: center; max-width: 880px; padding: 100px clamp(40px, 7vw, 118px); }
.eyebrow { align-items: center; color: var(--red); display: flex; font-size: 12px; font-weight: 600; gap: 12px; letter-spacing: .2em; margin: 0 0 25px; text-transform: uppercase; }
.eyebrow::before { background: currentColor; content: ""; height: 1px; width: 34px; }
.eyebrow.light { color: #e7b5bd; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 500; line-height: 1.07; letter-spacing: -.035em; }
.hero h1 { font-size: clamp(52px, 6.5vw, 92px); margin: 0 0 34px; }
.hero h1 em { color: var(--red); font-weight: 500; }
.hero-copy { color: #46505c; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.6; max-width: 650px; }
.hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 30px; margin-top: 42px; }
.button { align-items: center; display: inline-flex; font-size: 13px; font-weight: 600; gap: 12px; justify-content: center; letter-spacing: .08em; min-height: 54px; padding: 0 24px; text-transform: uppercase; transition: all .2s ease; }
.button-primary { background: var(--red); color: #fff; }
.button-primary:hover { background: var(--red-dark); transform: translateY(-2px); }
.button-light { background: var(--paper); color: var(--ink); }
.button-light:hover { background: #fff; transform: translateY(-2px); }
.text-link { align-items: center; display: inline-flex; font-size: 13px; font-weight: 600; gap: 5px; letter-spacing: .08em; text-transform: uppercase; }
.text-link:hover svg { transform: translateX(4px); }
.text-link svg { transition: transform .2s; }
.hero-trust { border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 30px; margin-top: 72px; padding-top: 22px; }
.hero-trust span { align-items: center; color: var(--muted); display: flex; font-size: 12px; gap: 7px; letter-spacing: .03em; text-transform: uppercase; }
.hero-trust svg { color: var(--red); height: 15px; width: 15px; }
.hero-panel { background: var(--navy); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; min-height: 672px; overflow: hidden; padding: clamp(40px, 5vw, 78px); position: relative; }
.hero-panel::before { border: 1px solid rgba(255,255,255,.09); border-radius: 50%; content: ""; height: 460px; position: absolute; right: -230px; top: 90px; width: 460px; }
.quote-mark { color: var(--red); font-family: var(--serif); font-size: 104px; height: 66px; line-height: 1; }
.hero-panel blockquote { font-family: var(--serif); font-size: clamp(27px, 2.7vw, 42px); line-height: 1.25; margin: 0 0 30px; max-width: 470px; position: relative; }
.hero-panel blockquote .quote-sign { color: #e58a35; font-style: normal; font-size: 1.12em; line-height: 0; }
.hero-panel blockquote .quote-open { margin-right: .08em; }
.hero-panel blockquote .quote-close { margin-left: .08em; }
.hero-panel p { color: #b8c0ca; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.hero-monogram { bottom: 8px; color: rgba(255,255,255,.025); font-family: var(--serif); font-size: 220px; line-height: 1; position: absolute; right: -15px; }

.section { padding: clamp(90px, 10vw, 150px) clamp(24px, 7vw, 112px); scroll-margin-top: 85px; }
.intro { display: grid; gap: clamp(50px, 10vw, 150px); grid-template-columns: .85fr 1.15fr; }
.intro h2, .section-heading h2, .portrait h2, .contact h2 { font-size: clamp(39px, 4.8vw, 66px); margin-bottom: 28px; }
.intro-copy { max-width: 760px; }
.lead { font-family: var(--serif); font-size: clamp(21px, 2.2vw, 28px); line-height: 1.45; }
.intro-copy > p:not(.lead), .portrait-copy > p:not(.lead) { color: var(--muted); }
.intro-facts { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 50px; padding-top: 28px; }
.intro-facts div { display: flex; flex-direction: column; gap: 5px; }
.intro-facts strong { align-items: flex-end; color: var(--red); display: flex; font-family: var(--serif); font-size: 31px; font-weight: 500; line-height: 1; min-height: 31px; }
.intro-facts .fact-zh { font-size: 22px; line-height: 1; }
.intro-facts span { color: var(--muted); font-size: 12px; letter-spacing: .05em; line-height: 1.4; min-height: 31px; text-transform: uppercase; }

.practice { background: #f0ece5; }
.section-heading { align-items: end; display: grid; gap: 25px; grid-template-columns: 1fr .48fr; margin-bottom: 68px; }
.section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.section-heading h2 { margin-bottom: 0; max-width: 820px; }
.section-heading > p:last-child { color: var(--muted); margin: 0; }
.practice-grid { display: grid; gap: 16px; grid-template-columns: 1.15fr 1fr 1fr; }
.practice-card { background: var(--paper); min-height: 400px; overflow: hidden; padding: clamp(26px, 2.4vw, 38px); position: relative; }
.practice-card.featured { background: var(--navy); color: #fff; }
.practice-card.phase-one { background: #1d3553; }
.practice-card.phase-two { background: #3f6670; color: #fff; }
.practice-card.phase-three { background: #8b5e52; color: #fff; }
.practice-card.phase-one p, .practice-card.phase-two p, .practice-card.phase-three p { color: rgba(255,255,255,.8); }
.practice-card.phase-two .plain-list, .practice-card.phase-three .plain-list { border-color: rgba(255,255,255,.2); }
.practice-card.phase-two .plain-list li, .practice-card.phase-three .plain-list li { border-color: rgba(255,255,255,.18); color: #f2f4f6; }
.practice-card h3 { font-family: var(--serif); font-size: 31px; font-weight: 500; margin-bottom: 18px; margin-top: 0; }
.practice-card p { color: var(--muted); font-size: 16px; }
.practice-card.featured p { color: #bbc3ce; }
.practice-card ul { list-style: none; margin: 32px 0 0; padding: 0; }
.practice-card .phase-list { border-top: 1px solid rgba(255,255,255,.12); padding-top: 12px; }
.practice-card li { align-items: flex-start; border-top: 1px solid rgba(255,255,255,.12); display: flex; font-size: 14px; gap: 9px; padding: 10px 0; }
.practice-card li svg { color: #d55163; height: 15px; margin-top: 3px; min-width: 15px; }
.practice-card details { border-top: 1px solid var(--line); margin-top: 36px; padding-top: 16px; }
.practice-card summary { align-items: center; cursor: pointer; display: flex; font-size: 12px; font-weight: 600; justify-content: space-between; letter-spacing: .08em; list-style: none; text-transform: uppercase; }
.practice-card summary::-webkit-details-marker { display: none; }
.practice-card summary svg { height: 16px; transition: transform .2s; }
.practice-card details[open] summary svg { transform: rotate(90deg); }
.practice-card .detail-list { columns: 2; margin-top: 16px; }
.practice-card .detail-list li { border-color: var(--line); display: block; font-size: 12px; padding: 7px 0; }
.practice-card .plain-list { border-top: 1px solid var(--line); margin-top: 30px; padding-top: 12px; }
.practice-card .plain-list li { border-bottom: 1px solid var(--line); color: var(--muted); display: block; font-size: 14px; padding: 10px 0; }
.secondary-practice { border-top: 1px solid #d5cfc5; display: grid; gap: 60px; grid-template-columns: .75fr 1.25fr; margin-top: 70px; padding-top: 52px; }
.secondary-practice h3 { font-family: var(--serif); font-size: clamp(27px, 2.7vw, 38px); font-weight: 500; margin: 0; max-width: 520px; }
.secondary-practice-grid { max-width: 620px; }
.secondary-practice-grid > div, .secondary-practice-grid > details { background: rgba(255,255,255,.55); padding: 28px; }
.secondary-practice-grid summary, .secondary-practice-grid h4 { font-family: var(--serif); font-size: 24px; font-weight: 500; list-style: none; margin: 0; }
.secondary-practice-grid summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; }
.secondary-practice-grid summary::-webkit-details-marker { display: none; }
.secondary-practice-grid summary svg { height: 17px; transition: transform .2s; }
.secondary-practice-grid details[open] summary svg { transform: rotate(90deg); }
.secondary-practice-grid ul { columns: 2; color: var(--muted); font-size: 13px; list-style: none; margin: 20px 0 0; padding: 0; }
.secondary-practice-grid li { border-top: 1px solid var(--line); padding: 7px 0; }
.secondary-practice-grid p { color: var(--muted); font-size: 15px; margin: 16px 0 0; }
.card-note { border-top: 1px solid var(--line); font-size: 13px !important; margin-top: 40px; padding-top: 20px; }

.portrait { align-items: start; column-gap: clamp(50px, 9vw, 130px); display: grid; grid-template-columns: .72fr 1.28fr; row-gap: 34px; }
.portrait-label { grid-column: 1 / -1; margin-bottom: 0; }
.portrait-image-wrap { background: var(--cream); box-sizing: border-box; margin: 0 auto; max-width: 510px; padding: 0; position: relative; width: 100%; }
.portrait-accent { display: none; }
.portrait-image { display: block; height: auto; object-fit: cover; width: 100%; }
@media (min-width: 761px) {
  .portrait-image-wrap { margin: 14px auto 0; }
}
.portrait-caption { background: var(--navy); bottom: -24px; color: #fff; display: flex; flex-direction: column; left: 30px; min-width: 230px; padding: 18px 24px; position: absolute; }
.portrait-caption strong { font-family: var(--serif); font-size: 19px; font-weight: 500; }
.portrait-caption span { color: #adb7c4; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.portrait-copy { max-width: 800px; }
.cv-grid { border-top: 1px solid var(--line); display: grid; gap: 40px; grid-template-columns: 1fr 1fr; margin-top: 44px; padding-top: 36px; }
.cv-grid svg { color: var(--red); height: 25px; stroke-width: 1.5; width: 25px; }
.cv-grid h3 { font-family: var(--serif); font-size: 20px; font-weight: 500; margin: 12px 0; }
.cv-grid ul { color: var(--muted); font-size: 14px; margin: 0; padding-left: 18px; }
.academic-distinction { display: flex; flex-direction: column; gap: 1px; margin-top: 7px; }
.academic-distinction .summa { color: var(--red); font-size: 13px; font-weight: 700; letter-spacing: .11em; }
.academic-distinction .best-degree { color: var(--navy); font-weight: 700; }
.memberships { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 35px; }
.memberships span { background: var(--cream); color: #525b66; font-size: 10px; letter-spacing: .08em; padding: 8px 12px; text-transform: uppercase; }

.faq { background: var(--navy); color: #fff; display: grid; gap: clamp(55px, 9vw, 130px); grid-template-columns: .72fr 1.28fr; }
.faq-heading { max-width: 570px; }
.faq-heading h2 { font-size: clamp(39px, 4.8vw, 66px); margin-bottom: 28px; }
.faq-heading > p:last-child { color: #b8c0ca; max-width: 470px; }
.faq-list { border-top: 1px solid rgba(255,255,255,.18); }
.faq-list details { border-bottom: 1px solid rgba(255,255,255,.18); }
.faq-list summary { align-items: center; cursor: pointer; display: grid; font-family: var(--serif); font-size: clamp(19px, 1.8vw, 26px); gap: 18px; grid-template-columns: 30px 1fr auto; line-height: 1.3; list-style: none; padding: 28px 0; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: #d55163; font-family: var(--sans); font-size: 11px; letter-spacing: .12em; }
.faq-list summary svg { color: #d55163; height: 20px; transition: transform .2s; width: 20px; }
.faq-list details[open] summary svg { transform: rotate(90deg); }
.faq-list details p { color: #bbc3ce; margin: -5px 38px 28px 48px; max-width: 720px; }

.contact-heading { margin-bottom: 60px; max-width: 800px; }
.contact-heading > p:last-child { color: var(--muted); max-width: 600px; }
.contact-grid { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); background: var(--line); border: 1px solid var(--line); }
.contact-card { background: var(--paper); display: flex; flex-direction: column; min-height: 255px; padding: 32px; position: relative; transition: background .2s, color .2s; }
a.contact-card:hover { background: var(--red); color: #fff; }
.contact-card > svg:first-child { color: var(--red); height: 27px; margin-bottom: 38px; stroke-width: 1.5; width: 27px; }
a.contact-card:hover > svg:first-child { color: #fff; }
.contact-card > span { color: var(--muted); font-size: 10px; letter-spacing: .14em; margin-bottom: 6px; text-transform: uppercase; }
a.contact-card:hover > span { color: rgba(255,255,255,.7); }
.contact-card strong { font-family: var(--serif); font-size: clamp(17px, 1.5vw, 23px); font-weight: 500; line-height: 1.4; }
.contact-card > svg:last-child { bottom: 27px; height: 18px; position: absolute; right: 27px; width: 18px; }
.contact-card.static p { color: var(--muted); font-size: 12px; margin-top: 10px; }lin
.secure-transfer-note { align-items: center; background: var(--navy); color: #fff; display: flex; gap: 18px; margin-top: 28px; padding: 24px 32px; }
.secure-transfer-note svg { color: #d55163; flex: 0 0 auto; height: 25px; stroke-width: 1.5; width: 25px; }
.secure-transfer-note p { font-family: var(--serif); font-size: clamp(16px, 1.5vw, 20px); line-height: 1.45; margin: 0; }
.arrival { align-items: center; background: var(--cream); display: grid; gap: 50px; grid-template-columns: 1fr 1fr auto; margin-top: 28px; padding: 35px 40px; }
.arrival h3 { font-family: var(--serif); font-size: 22px; font-weight: 500; margin: 0 0 5px; }
.arrival p { color: var(--muted); font-size: 15px; margin: 0; }
.arrival span { color: var(--red); font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.digital-contact { border: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; margin-top: 28px; }
.vcard-link, .qr-contact { align-items: center; display: flex; min-height: 190px; padding: 28px 34px; }
.vcard-link { border-right: 1px solid var(--line); position: relative; transition: background .2s, color .2s; }
.vcard-link:hover { background: var(--navy); color: #fff; }
.vcard-link > svg:first-child, .qr-contact-copy > svg { color: var(--red); height: 32px; margin-right: 22px; min-width: 32px; stroke-width: 1.5; width: 32px; }
.vcard-link span, .qr-contact-copy span { display: flex; flex-direction: column; }
.vcard-link small, .qr-contact-copy small { color: var(--red); font-size: 10px; font-style: normal; font-weight: 600; letter-spacing: .14em; margin-bottom: 3px; text-transform: uppercase; }
.vcard-link strong, .qr-contact-copy strong { font-family: var(--serif); font-size: clamp(20px, 1.8vw, 26px); font-weight: 500; line-height: 1.3; }
.vcard-link em, .qr-contact-copy em { color: var(--muted); font-size: 12px; font-style: normal; margin-top: 6px; }
.vcard-link:hover em { color: #b8c0ca; }
.vcard-download-icon { height: 19px; margin-left: auto; min-width: 19px; width: 19px; }
.qr-contact { gap: 28px; justify-content: space-between; }
.qr-contact-copy { align-items: center; display: flex; }
.qr-frame { background: var(--paper); border: 1px solid var(--line); display: flex; flex: 0 0 auto; padding: 5px; }
.qr-frame svg { display: block; height: 132px; width: 132px; }

footer { align-items: center; background: #0c1522; color: #abb4bf; display: flex; justify-content: space-between; min-height: 130px; padding: 28px clamp(24px, 7vw, 112px); }
.footer-brand { align-items: center; display: flex; gap: 18px; }
.footer-brand img { background: #fff; height: 77px; object-fit: contain; padding: 4px; width: 50px; }
.footer-brand span { display: flex; flex-direction: column; font-size: 11px; }
.footer-brand strong { color: #fff; font-family: var(--serif); font-size: 15px; font-weight: 500; }
.footer-links { align-items: center; display: flex; font-size: 11px; gap: 20px; }
.footer-links a:hover { color: #fff; }
.inline-link { color: var(--red); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.inline-link:hover { color: var(--navy); }

.legal-page { margin: 0 auto; max-width: 900px; min-height: 100vh; overflow: visible; padding: 90px 28px 120px; }
.legal-page h1 { font-size: clamp(44px, 7vw, 68px); margin-bottom: 70px; }
.legal-page h2 { font-size: 25px; margin: 42px 0 12px; }
.legal-page p { color: #4e5864; }
.legal-page a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.legal-page .back-link { display: inline-block; font-size: 12px; margin-bottom: 70px; }

@media (max-width: 1100px) {
  .hero { grid-template-columns: 58px 1fr minmax(310px, .58fr); }
  .hero-content { padding-left: 50px; padding-right: 50px; }
  .hero-panel { padding: 45px; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .digital-contact { grid-template-columns: 1fr; }
  .vcard-link { border-bottom: 1px solid var(--line); border-right: 0; }
}

@media (max-width: 900px) {
  .desktop-nav { display: none; transform: none; }
  .site-header { grid-template-columns: 1fr auto auto; }
}

@media (max-width: 760px) {
  .site-header { height: 74px; padding: 0 20px; }
  .brand img { height: 48px; width: 37px; }
  .brand span { font-size: 12px; }
  .header-call { display: none; }
  .hero { display: block; min-height: 0; padding-top: 74px; }
  .hero-rail { display: none; }
  .hero-content { padding: 78px 24px 65px; }
  .hero h1 { font-size: clamp(36px, 11.2vw, 48px); }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 22px; }
  .hero-actions .button { width: 100%; }
  .hero-trust { gap: 14px 22px; margin-top: 50px; }
  .hero-panel { min-height: 460px; padding: 38px 24px; }
  .hero-panel blockquote { font-size: 30px; }
  .section { padding: 85px 24px; }
  .intro, .portrait, .faq { grid-template-columns: 1fr; }
  .intro { gap: 22px; }
  .intro-facts { gap: 18px; }
  .intro-facts strong { font-size: 25px; }
  .intro-facts .fact-zh { font-size: 19px; }
  .intro-facts span { font-size: 10px; line-height: 1.4; }
  .section-heading { display: block; margin-bottom: 45px; }
  .section-heading > p:last-child { margin-top: 24px; }
  .practice-grid { display: block; }
  .practice-card { margin-bottom: 12px; min-height: 0; padding: 32px 26px 38px; }
  .secondary-practice { display: block; margin-top: 48px; padding-top: 38px; }
  .secondary-practice-grid { grid-template-columns: 1fr; margin-top: 30px; }
  .portrait { gap: 34px; }
  .portrait-image-wrap { max-width: 330px; padding: 0; }
  .portrait-copy { margin-top: 41px; }
  .cv-grid { grid-template-columns: 1fr; }
  .faq { gap: 40px; }
  .faq-list summary { gap: 12px; grid-template-columns: 26px 1fr auto; padding: 24px 0; }
  .faq-list details p { margin: -2px 32px 25px 38px; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-card { min-height: 210px; }
  .secure-transfer-note { align-items: flex-start; padding: 22px 24px; }
  .arrival { align-items: start; grid-template-columns: 1fr; padding: 30px 24px; }
  .vcard-link { border-bottom: 1px solid var(--line); border-right: 0; min-height: 150px; padding: 26px 24px; }
  .qr-contact { align-items: flex-start; flex-direction: column; min-height: 0; padding: 26px 24px; }
  .qr-contact-copy > svg { display: none; }
  .qr-frame svg { height: 132px; width: 132px; }
  footer { align-items: flex-start; flex-direction: column; gap: 28px; }
  .footer-links { align-items: flex-start; flex-wrap: wrap; }
}

@media (min-width: 761px) and (max-height: 1000px) {
  .hero { min-height: 650px; }
  .hero-content { padding-bottom: 58px; padding-top: 58px; }
  .hero h1 { font-size: clamp(48px, 5vw, 72px); margin-bottom: 26px; }
  .hero-copy { font-size: clamp(16px, 1.25vw, 19px); }
  .hero-actions { margin-top: 30px; }
  .hero-trust { margin-top: 42px; }
  .hero-panel { justify-content: center; min-height: 562px; padding-bottom: 40px; padding-top: 40px; }
  .hero-panel blockquote { font-size: clamp(25px, 2.3vw, 35px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
@media (min-width: 761px) {
  .hero-panel {
    justify-content: center;
  }
}
@media (min-width: 761px) and (max-height: 1000px) {
  .hero {
    min-height: 100vh;
  }
}
.hero-panel::before {
  width: min(360px, calc(100% - 60px));
  height: auto;
  aspect-ratio: 1;
  top: 70px;
  right: 30px;
}

.hero-monogram {
  right: 24px;
  bottom: 18px;
  font-size: clamp(140px, 12vw, 190px);
}
@media (max-width: 760px) {
  .hero-panel {
    min-height: 400px;
  }

  .hero-panel::before {
    width: 240px;
    height: auto;
    aspect-ratio: 1;
    top: 38px;
    right: 22px;
  }

  .hero-monogram {
    font-size: 105px;
    right: 20px;
    bottom: 14px;
  }
}
.practice-card .phase-list li,
.practice-card .plain-list li {
  font-size: 15px;
  line-height: 1.55;
}
/* Weitere Tätigkeitsgebiete und Lebenslauf */
.secondary-practice-grid ul,
.secondary-practice-grid p,
.cv-grid ul {
  font-size: 15px;
}

/* Anreise */
.arrival p {
  font-size: 15px;
  line-height: 1.6;
}

/* Kleine Erklärtexte */
.contact-card.static p,
.vcard-link em,
.qr-contact-copy em {
  font-size: 13px;
}

/* Kleine Bezeichnungen */
.intro-facts span,
.memberships span,
.contact-card > span,
.arrival span,
.vcard-link small,
.qr-contact-copy small {
  font-size: 11px;
}

/* Fusszeile */
.footer-brand span,
.footer-links {
  font-size: 12px;
}
.arrival-with-photo {
  align-items: stretch;
  gap: 50px;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.8fr);
  padding: 0;
}

.arrival-copy {
  align-self: center;
  padding: 38px 0 38px 40px;
}

.arrival-transit {
  border-top: 1px solid var(--line);
  margin-top: 28px;
  padding-top: 22px;
}

.former-location-route {
  border-top: 1px solid var(--line);
  margin-top: 22px;
  padding-top: 18px;
}

.former-location-route p {
  margin-top: 6px;
}

.arrival-visuals {
  align-self: center;
  display: grid;
  gap: 12px;
  width: 80%;
  max-width: 420px;
  justify-self: center;
}

.arrival-photo {
  cursor: zoom-in;
  display: block;
  height: 154px;
  overflow: hidden;
  position: relative;
}

.arrival-photo img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
  width: 100%;
}

.arrival-photo:hover img {
  transform: scale(1.02);
}

.arrival-photo::after {
  background: linear-gradient(180deg, transparent 60%, rgba(12, 21, 34, 0.8));
  content: "";
  inset: 0;
  position: absolute;
}

.arrival-photo span {
  bottom: 14px;
  color: white;
  font-size: 10px;
  left: 16px;
  letter-spacing: 0.1em;
  position: absolute;
  text-transform: uppercase;
  z-index: 1;
}

.route-photo img { object-position: center 48%; }

@media (max-width: 760px) {
  .arrival-with-photo {
    gap: 0;
    grid-template-columns: 1fr;
    padding: 0;
  }

  .arrival-copy {
    padding: 30px 24px;
  }

  .arrival-visuals {
    margin: 0 auto 26px;
    max-width: 420px;
    width: 82%;
  }

  .arrival-photo {
    height: 135px;
  }
}
.location-panorama {
  display: block;
  height: 110px;
  margin: 0;
  max-height: 110px;
  min-height: 0;
  overflow: hidden;
  width: 100%;
}

.location-panorama img {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center 70%;
  width: 100%;
}

/* Strafverteidigung: ruhige Linien und gleichmaessiger Textsatz */
.practice-card .phase-list,
.practice-card .plain-list {
  border-top: 0 !important;
  padding-top: 15px;
  position: relative;
}

.practice-card .phase-list::before,
.practice-card .plain-list::before {
  background: rgba(255,255,255,.32);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.practice-card .phase-list li:first-child {
  border-top: 0;
}

.practice-card .plain-list li {
  border-top: 0;
}

@media (min-width: 761px) {
  .secondary-practice {
    grid-template-columns: 1fr 1fr;
  }

  .secondary-practice h3 {
    max-width: 620px;
    text-wrap: balance;
  }
}

.secondary-practice-grid li:nth-child(3),
.secondary-practice-grid li:last-child {
  border-bottom: 1px solid var(--line);
}

/* Akzentfarbe im Bereich "Was jetzt wichtig ist" */
.faq .eyebrow,
.faq-list summary span,
.faq-list summary svg {
  color: #e58a35;
}

.practice-card.phase-one .phase-list li:last-child {
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.practice-card h3 {
  margin-bottom: 22px;
}

.practice-card h3 + p {
  margin-top: 0;
}

.practice-card.phase-two h3,
.practice-card.phase-three h3 {
  line-height: 1.14;
}

.practice-card.phase-one .phase-list::before {
  background: #496784;
}

.practice-card.phase-two .plain-list::before {
  background: #71909a;
}

.practice-card.phase-three .plain-list::before {
  background: #b38376;
}

@media (max-width: 760px) {
  .secondary-practice-grid ul {
    column-gap: 32px;
    columns: auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: repeat(3, auto);
  }

  .secondary-practice-grid li:nth-child(1) { grid-column: 1; grid-row: 1; }
  .secondary-practice-grid li:nth-child(2) { grid-column: 1; grid-row: 2; }
  .secondary-practice-grid li:nth-child(3) { grid-column: 1; grid-row: 3; }
  .secondary-practice-grid li:nth-child(4) { grid-column: 2; grid-row: 1; }
  .secondary-practice-grid li:nth-child(5) { grid-column: 2; grid-row: 2; }
}

.practice-card.phase-one > p,
.practice-card.phase-two > p,
.practice-card.phase-three > p {
  hyphens: auto;
  text-align: justify;
  text-wrap: pretty;
}

@media (max-width: 760px) {
  .practice-card.phase-one > p,
  .practice-card.phase-two > p,
  .practice-card.phase-three > p {
    text-align: left;
  }
}

@media (max-width: 760px) {
  .location-panorama {
    height: 75px;
    max-height: 75px;
  }
}

@media (max-width: 760px) {
  .header-call {
    align-items: center;
    border: 1px solid rgba(178,31,51,.35);
    border-radius: 50%;
    display: flex;
    font-size: 0;
    gap: 0;
    height: 36px;
    justify-content: center;
    width: 36px;
  }

  .header-call svg {
    height: 18px;
    width: 18px;
  }

  .menu-button {
    margin-left: 10px;
  }
}
