/* Shared visual system: keeps the editorial homepage language consistent on every page. */
:root { --page-white:#fff; --page-tint:#faf9f7; --shadow-soft:0 16px 44px rgba(17,27,46,.09); }
html { scroll-behavior:smooth; zoom:.9; }
/* Desktop baseline: previous 90% site scale × the requested 80% view.
   Browser zoom remains available; mobile keeps its existing readable scale. */
@media screen and (min-width: 901px) {
  html { zoom: .72; }
}

body > nav { background:var(--page-white)!important; border-bottom:1px solid var(--v7-gold, #a49250)!important; box-shadow:0 5px 20px rgba(17,27,46,.04); }
body > nav > :first-child > span:first-child, body > nav .nd > a, body > nav > div:nth-child(2) > a { color:var(--navy)!important; }
body > nav a { transition:color .2s ease,background .2s ease,transform .2s ease; }
body > nav > div:nth-child(2) > a:hover, body > nav .nd > a:hover { color:var(--gold)!important; }
body > nav > a:last-child:hover { background:var(--gold); color:#fff!important; }
a[style*="background:var(--navy)"], button[style*="background:var(--navy)"] { color:var(--gold)!important; }

.inner-page { background:var(--page-tint); }
.inner-page main, .inner-page > div:not(.page-hero):not(.profile-hero) { background:var(--page-white); }

/* Interior heroes echo the homepage's composed navy panel and image pairing. */
.page-hero { min-height:500px!important; border-bottom:4px solid var(--gold); box-shadow:inset 0 -1px 0 rgba(255,255,255,.12); }
.page-hero::after { content:''; position:absolute; z-index:1; inset:0 auto 0 0; width:48%; background:linear-gradient(90deg,rgba(17,27,46,.98),rgba(17,27,46,.88) 74%,rgba(17,27,46,0)); pointer-events:none; }
.page-hero > div:last-child { z-index:2!important; }
.page-hero h1 { text-shadow:0 2px 18px rgba(0,0,0,.14); }
.page-hero h1::after { content:''; display:block; width:82px; height:2px; margin-top:28px; background:var(--gold); }
.page-hero--solid { min-height:390px!important; background:var(--navy)!important; border-bottom:4px solid var(--gold); }
.page-hero--solid::after { display:none; }
.profile-hero { background:linear-gradient(112deg,var(--navy) 0%,#263652 72%,#314462 100%)!important; border-bottom:4px solid var(--gold); }
.profile-hero img { box-shadow:none; }

.inner-page > div:not(.page-hero):not(.profile-hero) { border-color:var(--border)!important; }
.inner-page [style*="border-radius:6px"], .inner-page [style*="border-radius:8px"] { box-shadow:0 8px 24px rgba(17,27,46,.045); }
.inner-page [style*="background:#fff"] { transition:transform .2s ease,box-shadow .2s ease; }
.inner-page [style*="background:#fff"]:hover { box-shadow:var(--shadow-soft); }
.inner-page footer { background:var(--navy)!important; border-top:4px solid var(--gold)!important; }

/* Official association marks shown beside the membership information. */
.membership-logo-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:14px; margin:0 0 32px; }
.membership-logo-strip--kanzlei { grid-template-columns:repeat(auto-fit,minmax(158px,1fr)); margin-bottom:38px; }
.membership-logo-tile { min-width:0; min-height:112px; padding:16px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:6px; box-shadow:0 6px 18px rgba(17,27,46,.045); transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.membership-logo-tile img { display:block; width:auto; height:auto; max-width:100%; max-height:74px; object-fit:contain; }
.membership-logo-tile:hover { border-color:var(--v7-gold, #a49250); box-shadow:0 10px 26px rgba(17,27,46,.08); transform:translateY(-2px); }
.membership-logo-tile:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }

/* Team cards use a calm editorial rhythm: portrait and profile read as one unit. */
#team-grid, #team-teaser { grid-template-columns:repeat(2, minmax(0, 1fr))!important; }
#team-grid > a, #team-teaser > div { display:grid!important; grid-template-columns:42% 58%; min-height:340px; }
#team-grid > a > div:first-child, #team-teaser > div > div:first-child { height:auto!important; min-height:340px; }
#team-grid > a > div:first-child img, #team-teaser > div > div:first-child img { height:100%!important; }
#team-grid > a > div:nth-child(2), #team-teaser > div > div:nth-child(2) { padding:34px 32px!important; }

/* A light, brand-led hero: navy appears in carefully placed architectural details. */
.home-hero { background:#fff!important; padding:0 28px 22px; }
.home-hero-brand { max-width:1440px; margin:0 auto; padding:38px 0 30px; display:flex; flex-direction:column; align-items:center; gap:12px; }
.home-hero-brand > span { font-family:var(--serif); font-size:38px; font-weight:600; line-height:1; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); }
.home-hero-brand > div { width:min(460px, 48vw); display:flex; align-items:center; gap:15px; }
.home-hero-brand i { display:block; height:1px; flex:1; background:var(--gold); opacity:.72; }
.home-hero-brand em { font-family:var(--serif); font-size:22px; font-style:normal; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }
.home-hero-split { position:relative; display:grid!important; grid-template-columns:43fr 57fr!important; min-height:570px; margin-top:0!important; overflow:hidden!important; border-top:1px solid var(--border); border-bottom:1px solid var(--border); border-radius:5px; }
.home-hero-image { position:relative; top:auto; right:auto; width:auto; height:auto; overflow:hidden!important; border-radius:0; border-left:10px solid var(--navy); }
.home-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.home-hero-copy { position:relative; z-index:auto; top:auto; left:auto; width:auto; min-height:0; padding:78px 78px 70px 88px!important; background:#fff!important; border-radius:0; box-shadow:none; border-left:8px solid var(--navy); display:flex; flex-direction:column; justify-content:center; }
.home-hero-copy h1 { font-size:64px!important; line-height:1.06!important; margin-bottom:30px!important; }
.home-hero-copy h1 span:first-child { color:var(--navy)!important; }
.home-hero-copy p { max-width:390px!important; color:var(--muted)!important; }
.home-hero-eyebrow { font-family:var(--sans); font-size:22px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:54px; }
.home-hero-cta { display:inline-flex; align-items:center; gap:14px; margin-top:52px; color:var(--navy)!important; font-family:var(--sans); font-size:22px; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; padding-bottom:10px; border-bottom:1px solid var(--v7-gold, #a49250); }
.home-hero-cta span { color:var(--gold); font-size:22px; line-height:.6; transition:transform .2s ease; }
.home-hero-cta:hover { color:var(--gold); }
.home-hero-cta:hover span { transform:translateX(5px); }

/* Homepage navigation and hero follow the bright asymmetric editorial composition. */
.homepage { min-width:0!important; background:#fff; }
.homepage .home-nav-accent { position:absolute; z-index:101; top:0; right:0; left:46%; height:52px; padding:0 58px 0 88px; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; background:transparent; color:var(--navy); font-family:var(--sans); font-size:22px; letter-spacing:.015em; transform:translateY(10px); }
.homepage .home-nav-accent > a:first-child { grid-column:1 / 4; justify-self:center; }
.homepage .home-nav-accent > a:nth-child(2) { grid-column:4 / 6; justify-self:center; }
.homepage .home-nav-accent a { display:inline-flex; align-items:center; gap:8px; color:inherit; text-decoration:none; transition:color .2s ease; }
.homepage .home-nav-accent a:hover { color:var(--gold); }
.homepage .home-nav-accent svg { flex:0 0 auto; color:var(--gold); }
.homepage .home-nav-accent a svg { width:14.2px; height:14.2px; }
.homepage .home-nav-language { grid-column:6; justify-self:center; display:inline-flex; align-items:center; gap:7px; color:var(--navy); transform:translateX(18px); }
.homepage .home-nav-language svg { width:10.45px; height:10.45px; }
.homepage > nav { position:absolute!important; z-index:20; top:0; right:0; left:46%; height:125px!important; padding:0 58px 0 88px!important; background:#faf9f7!important; border:0!important; box-shadow:none!important; justify-content:flex-end!important; }
.homepage > nav > :first-child, .homepage > nav > a:last-child { display:none!important; }
.homepage > nav > div:nth-child(2) { width:100%; height:100%; margin-left:0; padding-bottom:27px; display:grid!important; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0!important; align-items:end!important; }
.homepage > nav > div:nth-child(2) > * { justify-self:center; }
.homepage > nav .nd { display:flex; align-items:flex-end; line-height:1; }
.homepage > nav .nd > a, .homepage > nav > div:nth-child(2) > a { display:block; font-family:var(--sans)!important; font-size:22px!important; font-weight:400; line-height:1!important; letter-spacing:0!important; text-transform:none!important; }
.homepage .home-hero { padding:0!important; }
.homepage .home-hero-split { max-width:none!important; width:100%; min-height:678px; margin:0!important; display:grid!important; grid-template-columns:46% 54%!important; overflow:hidden!important; border:0; border-radius:0; }
.homepage .home-hero-copy { min-height:678px; padding:46px 74px 62px!important; background:var(--navy)!important; border:0; border-radius:0; box-shadow:none; justify-content:flex-start; }
.homepage .home-hero-brand { width:max-content; max-width:100%; margin-right:auto; margin-left:auto; padding:0; align-self:center; align-items:stretch; gap:6px; transform:translate(-35px,-17px) scale(1.232); transform-origin:center top; }
.homepage .home-hero-brand > span { font-size:42px; letter-spacing:.12em; white-space:nowrap; text-align:center; color:#fff; }
.homepage .home-hero-brand > div { width:100%; max-width:100%; margin:0; align-self:stretch; justify-content:center; }
.homepage .home-hero-brand i { background:var(--gold); }
.homepage .home-hero-brand em { text-align:center; }
.homepage .home-hero-content { transform:translateY(-30px); }
.homepage .home-hero-copy h1 { max-width:680px; margin:90px 0 38px!important; font-family:var(--serif); font-size:80.5px!important; font-weight:400; line-height:1.05!important; color:#fff!important; }
.homepage .home-hero-copy h1 .home-hero-highlight { color:var(--gold)!important; }
.homepage .home-hero-copy p { max-width:560px!important; font-family:var(--serif)!important; line-height:1.5!important; color:#fff!important; }
.homepage .home-hero-copy p.home-hero-subtitle { margin:0!important; font-family:'Libre Baskerville',Georgia,serif!important; font-size:30.36px!important; font-weight:400!important; font-variant-numeric:lining-nums tabular-nums; letter-spacing:.025em; line-height:1.5!important; }
.homepage .home-hero-cta { width:100%; max-width:575px; justify-content:flex-start; gap:34px; margin-top:60px; padding-bottom:16px; border-bottom:1px solid var(--gold); color:#fff!important; font-family:var(--sans); font-size:22px; font-weight:400; letter-spacing:.14em; line-height:1.2; text-transform:uppercase; transform:translateY(20px); }
.homepage .home-hero-cta span { color:var(--gold); font-size:28px; }
.homepage .home-hero-cta:hover { color:var(--gold)!important; }
.homepage .home-hero-image { position:relative; z-index:21; width:auto; height:calc(100% - 125px); margin-top:125px; border:0; border-radius:0; align-self:stretch; }
.homepage .home-hero-image img { object-position:center; }
.homepage .home-hero-image::after { display:none; }
.homepage .home-hero-teaser { max-width:none!important; width:100%; grid-template-columns:minmax(0, 1fr)!important; background:#fff; border-top:1px solid var(--border); }
.homepage .home-practice-links { background:#fff!important; padding:0!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; grid-template-rows:121px 106px; }
.homepage .home-practice-links > .home-practice-card { min-height:0; margin-top:0; padding:0 30px!important; display:flex!important; align-items:center; justify-content:center; gap:22px; transition:filter .2s ease,transform .2s ease; }
.homepage .home-practice-links > .home-practice-card:nth-child(1) { grid-column:1; grid-row:1 / 3; }
.homepage .home-practice-links > .home-practice-card:nth-child(2) { grid-column:2; grid-row:1; }
.homepage .home-practice-links > .home-practice-card:nth-child(3) { grid-column:2; grid-row:2; border-top:1px solid var(--border); border-right:1px solid rgba(26,39,64,.25); }
.homepage .home-practice-links > .home-practice-card:nth-child(1),
.homepage .home-practice-links > .home-practice-card:nth-child(2),
.homepage .home-practice-links > .home-practice-card:nth-child(3) { background:#faf9f7; }
.homepage .home-practice-links > .home-practice-card div span:first-child { color:var(--navy)!important; }
.homepage .home-practice-links > .home-practice-card div span:last-child { display:none!important; }
.homepage .home-practice-links > .home-practice-card div span:first-child { white-space:nowrap; }
.homepage .home-practice-links > .home-practice-card:hover { filter:brightness(1.05); transform:translateY(-2px); }
.home-practice-footer { position:relative; z-index:1; grid-column:3; grid-row:1 / 3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; margin:0; padding:28px 42px; background:var(--navy); border-top:0; box-shadow:none; }
.home-practice-address-group { display:flex; align-items:center; justify-content:center; gap:12px; color:var(--gold); text-decoration:none; transform:translateX(-15px); }
.home-practice-location { display:grid; place-items:center; width:54px; height:54px; flex:0 0 54px; color:var(--gold); text-decoration:none; transition:color .2s ease,transform .2s ease; }
.home-practice-location svg { width:46px; height:46px; }
.home-practice-address-group:hover .home-practice-location { color:var(--gold); transform:translateY(-2px); }
.home-practice-address { color:#fff; font-family:var(--serif); font-size:23.75px; line-height:1.4; }
.home-practice-contact { width:100%; max-width:330px; display:inline-flex; align-items:center; justify-content:center; gap:17.5px; padding:16.25px 25px; background:var(--gold); color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; transform:none; transition:background .2s ease,color .2s ease,transform .2s ease; }
.home-practice-contact:hover { background:var(--navy); color:var(--gold); transform:translateY(-2px); }

.home-gerichtsfenster { padding:24px clamp(28px,6vw,96px); background:var(--navy); border-top:1px solid var(--v7-gold, #a49250); border-bottom:1px solid var(--v7-gold, #a49250); }
.home-gerichtsfenster > a { --bf-logo-width:272px; max-width:1320px; min-height:116px; margin:0 auto; display:grid; grid-template-columns:272px 1fr auto; gap:46px; align-items:center; color:#fff; text-decoration:none; }
.home-gerichtsfenster .bf-shared-logo { width:272px; transition:transform .2s ease; }
.home-gerichtsfenster-copy { min-width:0; padding-left:46px; display:flex; flex-direction:column; border-left:1px solid rgba(255,255,255,.18); }
.home-gerichtsfenster-copy small { color:var(--gold); font-family:var(--sans); font-size:22px; letter-spacing:.15em; text-transform:uppercase; }
.home-gerichtsfenster-copy strong { margin-top:7px; font-family:var(--serif); font-size:32px; font-weight:500; line-height:1; }
.home-gerichtsfenster-cta { padding-bottom:7px; display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--gold); font-family:var(--sans); font-size:22px; letter-spacing:.1em; text-transform:uppercase; }
.home-gerichtsfenster-cta b { color:var(--gold); font-size:22px; font-weight:400; transition:transform .2s ease; }
.home-gerichtsfenster > a:hover .bf-shared-logo { transform:translateY(-2px); }
.home-gerichtsfenster > a:hover .home-gerichtsfenster-cta b { transform:translateX(5px); }

/* One complete viewport for the homepage practice-area presentation. */
.practice-viewport { height:111.112vh; min-height:0; padding:63px clamp(44px,6.5vw,110px) 37px; overflow:hidden; background:#faf9f7; color:var(--navy); }
.practice-viewport-inner { width:100%; max-width:1460px; height:100%; margin:0 auto; display:grid; grid-template-rows:auto minmax(0,1fr); }
.practice-intro { padding:0 4px 26px; display:grid; grid-template-columns:minmax(480px,.9fr) minmax(0,1.1fr); grid-template-rows:auto auto auto; column-gap:72px; align-items:end; }
.practice-kicker { grid-column:1; margin-bottom:14px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.04em; text-transform:uppercase; }
.practice-intro h2 { grid-column:1; margin:0; color:#080808; font-family:var(--serif); font-size:max(22px, clamp(48px,4.1vw,68px)); font-weight:400; line-height:1.04; }
.practice-title-line { grid-column:1; width:68px; height:4px; margin-top:20px; background:var(--gold); }
.practice-intro p { grid-column:2; grid-row:1 / 4; width:100%; max-width:750px; margin:0 0 3px; color:#193052; font-family:var(--sans); font-size:22px; font-weight:300; line-height:1.55; text-align:justify; text-align-last:left; transform:translateY(-34px); }
.practice-stage { min-height:0; display:grid; grid-template-columns:310px minmax(0,1fr); overflow:hidden; border:1px solid var(--gold); border-radius:10px; background:#fff; }
.practice-tabs { min-height:0; padding:44px 34px 48px 30px; display:flex; flex-direction:column; background:var(--navy-mid); }
.practice-tab-list { display:flex; flex-direction:column; }
.practice-tab { min-height:104px; padding:24px 18px 24px 30px; border:0; border-bottom:1px solid rgba(255,255,255,.72); border-left:4px solid transparent; background:transparent; color:rgba(255,255,255,.9); cursor:pointer; font-family:var(--serif); font-size:25px; line-height:1.25; text-align:left; transition:color .2s ease,border-color .2s ease,background .2s ease,padding-left .2s ease; }
.practice-tab:first-child { border-top:0; }
.practice-tab:last-child { border-bottom:0; }
.practice-tab.is-active { border-left-color:var(--gold); color:var(--gold); }
.practice-tab:hover { padding-left:36px; border-left-color:var(--v7-gold, #a49250); color:var(--gold); }
.practice-tab.is-active:hover { border-left-color:var(--gold); }
.practice-tab:focus-visible { outline:2px solid var(--gold); outline-offset:-4px; color:var(--gold); }
.practice-request { margin-top:auto; display:inline-flex; align-items:center; gap:10px; color:#fff; font-family:var(--sans); font-size:22px; letter-spacing:.02em; text-decoration:none; text-transform:uppercase; transition:color .2s ease; }
.practice-request span { color:var(--gold); font-size:27px; line-height:1; transition:transform .2s ease; }
.practice-request:hover { color:var(--gold); }
.practice-request:hover span { transform:translateX(6px); }
.practice-panels { min-width:0; min-height:0; }
.practice-panel { width:100%; height:100%; display:none; grid-template-columns:minmax(0,1fr) minmax(300px,36%); }
.practice-panel.is-active { display:grid; }
.practice-panel-copy { min-width:0; padding:38px clamp(34px,4vw,62px) 34px; display:flex; flex-direction:column; }
.practice-panel-kicker { margin-bottom:18px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; text-transform:uppercase; }
.practice-panel h3 { margin:0 0 18px; color:#080808; font-family:var(--serif); font-size:max(22px, clamp(32px,2.5vw,42px)); font-weight:400; line-height:1.08; }
.practice-panel-copy > p:not(.practice-contact-person) { max-width:610px; margin:0 0 22px; color:#193052; font-family:var(--sans); font-size:22px; font-weight:300; line-height:1.6; }
.practice-services { display:grid; grid-template-columns:1fr; margin:0 0 22px; }
.practice-services span { padding:12px 0 11px; border-top:1px solid var(--gold); color:#101928; font-family:var(--sans); font-size:22px; line-height:1.3; }
.practice-contact-person { margin:auto 0 20px; color:#193052; font-family:var(--sans); font-size:22px; line-height:1.4; }
.practice-contact-person a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.practice-more { width:max-content; display:inline-flex; align-items:center; gap:24px; padding:16px 26px; background:linear-gradient(100deg,var(--v7-gold, #a49250),var(--v7-gold, #a49250)); color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; transition:background .2s ease,color .2s ease,transform .2s ease; }
.practice-more span { font-size:22px; line-height:.6; transition:color .2s ease,transform .2s ease; }
.practice-more:hover { background:var(--navy); color:var(--gold); transform:translateY(-2px); }
.practice-more:hover span { color:var(--gold); transform:translateX(5px); }
.practice-panel-image { min-width:0; min-height:0; overflow:hidden; border-left:1px solid var(--gold); }
.practice-panel-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; }

/* A full follow-up viewport for the firm's two particularly complex focus areas. */
.focus-viewport { height:111.112vh; padding:0 clamp(48px,5.4vw,92px); display:flex; align-items:center; overflow:hidden; background:#faf9f7; color:var(--navy); }
.focus-viewport-inner { width:100%; max-width:1510px; margin:0 auto; display:grid; grid-template-columns:minmax(380px,31%) minmax(0,69%); gap:62px; align-items:center; }
.focus-intro { align-self:start; padding-top:12px; }
.focus-kicker { margin-bottom:26px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.17em; text-transform:uppercase; }
.focus-intro h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:max(22px, clamp(51px,4vw,67px)); font-weight:400; line-height:1.08; }
.focus-title-line { width:78px; height:4px; margin-top:42px; background:var(--gold); }
.focus-cards { min-height:660px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid var(--gold); border-radius:9px; overflow:hidden; background:#fff; }
.focus-card { min-width:0; padding:68px 54px 50px; display:flex; flex-direction:column; }
.focus-card + .focus-card { border-left:1px solid var(--gold); }
.focus-card-kicker { margin-bottom:34px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.focus-card h3 { margin:0; color:var(--navy); font-family:var(--serif); font-size:max(22px, clamp(31px,2.25vw,40px)); font-weight:400; line-height:1.16; }
.focus-card-line { width:60px; height:2px; margin:24px 0 29px; background:var(--gold); }
.focus-card p { margin:0 0 34px; color:#5f6470; font-family:var(--sans); font-size:22px; font-weight:300; line-height:1.65; }
.focus-card .focus-team { margin-bottom:30px; }
.focus-team a { color:var(--navy); font-weight:500; text-decoration:none; }
.focus-team a:hover { color:var(--gold); }
.focus-detail { margin-top:auto; display:inline-flex; align-items:center; justify-content:space-between; gap:24px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.focus-detail span { font-size:23px; line-height:1; transition:transform .2s ease; }
.focus-detail:hover span { transform:translateX(6px); }

/* The four lawyers are presented as compact portrait/profile pairs in one viewport. */
.attorneys-viewport { height:111.112vh; padding:48px clamp(48px,4.8vw,82px) 54px; overflow:hidden; background:#faf9f7; color:var(--navy); }
.attorneys-inner { width:100%; max-width:1510px; height:100%; margin:0 auto; display:grid; grid-template-rows:auto minmax(0,1fr); }
.attorneys-heading { margin-bottom:40px; }
.attorneys-kicker { margin-bottom:15px; color:var(--gold); font-family:var(--sans); font-size:22px; font-weight:500; letter-spacing:.25em; text-transform:uppercase; }
.attorneys-heading h2 { margin:0; color:var(--navy); font-family:var(--serif); font-size:max(22px, clamp(45px,3.7vw,62px)); font-weight:400; line-height:1.08; }
.attorneys-grid { min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); column-gap:40px; row-gap:34px; }
.attorney-card { min-width:0; min-height:0; display:grid; grid-template-columns:48% 52%; overflow:visible; border:1px solid var(--v7-gold, #a49250); border-radius:0; background:rgba(255,255,255,.36); }
.attorney-photo { min-width:0; min-height:0; margin:-14px 0 16px 22px; display:block; overflow:hidden; border:1px solid var(--v7-gold, #a49250); background:#fff; }
.attorney-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 18%; transition:transform .35s ease; }
.attorney-card:hover .attorney-photo img { transform:scale(1.018); }
.attorney-copy { min-width:0; padding:25px 32px 0 40px; display:flex; flex-direction:column; }
.attorney-copy h3 { margin:0 0 12px; color:var(--navy); font-family:var(--serif); font-size:max(22px, clamp(27px,2vw,36px)); font-weight:400; line-height:1.05; white-space:nowrap; }
.attorney-copy p { margin:0 0 8px; color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:300; line-height:1.4; }
.attorney-copy .attorney-role { font-weight:500; }
.attorney-contact { margin-top:auto; padding-bottom:17px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.attorney-contact > a:first-child { color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:500; text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:4px; }
.linkedin-link { width:27px; height:27px; flex:0 0 27px; display:grid; place-items:center; border:2px solid var(--navy); border-radius:3px; color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:600; line-height:1; text-decoration:none; }
.attorney-profile { margin:0 -32px 0 -40px; padding:15px 32px 17px 40px; display:inline-flex; align-items:center; justify-content:flex-end; gap:18px; border-top:1px solid var(--v7-gold, #a49250); color:var(--navy); font-family:var(--sans); font-size:22px; font-weight:500; text-decoration:none; }
.attorney-profile span { color:var(--gold); font-size:22px; transition:transform .2s ease; }
.attorney-profile:hover { color:var(--gold); }
.attorney-profile:hover span { transform:translateX(5px); }

/* Contact is a light, calm closing section with two unmistakable ways to get in touch. */
.contact-section { background:#f5f3ef!important; padding-top:82px!important; }
.contact-title, .contact-call-title { color:var(--navy)!important; }
.contact-form label { color:var(--muted)!important; }
.contact-form input, .contact-form select, .contact-form textarea { background:#fff!important; border-color:var(--border)!important; }
.contact-direct { padding-top:4px; }
.contact-photo { margin-bottom:26px!important; border:1px solid var(--border); box-shadow:var(--shadow-soft); }
.contact-photo img { aspect-ratio:16 / 9; object-fit:cover; object-position:center; }
.contact-call-title { margin-bottom:15px!important; font-size:38px!important; }
.contact-phone { display:flex!important; align-items:center!important; gap:18px!important; padding:12px 0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.contact-phone span:first-child { display:block; width:auto; padding:0; border:0; white-space:nowrap; }
.contact-phone span:nth-child(2) { display:block!important; height:1px; flex:1; background:var(--v7-gold, #a49250)!important; }
.contact-phone a { display:inline-block; margin:0; color:var(--navy)!important; font-family:'Libre Baskerville', Georgia, serif!important; font-size:23px!important; font-weight:400; letter-spacing:.025em; line-height:1.25; text-decoration:none; white-space:nowrap; }
.contact-phone a:hover { color:var(--gold)!important; }
.review-badge { display:flex; align-items:center; gap:14px; width:max-content; max-width:100%; margin-top:38px; padding:13px 16px; background:#fff; border:1px solid var(--border); color:var(--navy); text-decoration:none; box-shadow:0 7px 18px rgba(17,27,46,.05); }
.review-badge-mark { display:grid; place-items:center; width:28px; height:28px; flex:0 0 auto; border-radius:50%; background:var(--gold); color:#fff; font-size:22px; font-weight:600; }
.review-badge > span:nth-child(2) { display:flex; flex-direction:column; gap:2px; }
.review-badge small { font-family:var(--sans); font-size:22px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.review-badge strong { font-family:var(--sans); font-size:22px; font-weight:500; color:var(--navy); }
.review-badge b { margin-left:8px; color:var(--gold); font-size:22px; font-weight:400; }
.review-badge:hover { border-color:var(--gold); transform:translateY(-1px); }

@media (max-width:900px) {
  body { min-width:0!important; }
  body > nav { height:auto!important; min-height:82px; padding:18px 24px!important; }
  body > nav > div:nth-child(2) { display:none!important; }
  body > nav > :first-child span:first-child { font-size:22px!important; }
  .page-hero { min-height:440px!important; }
  .page-hero::after { width:100%; background:linear-gradient(90deg,rgba(17,27,46,.94),rgba(17,27,46,.68)); }
  .page-hero > div:last-child { padding-left:28px!important; padding-right:28px!important; }
  .page-hero h1 { font-size:52px!important; }
  #praxisbereiche { padding-left:24px!important; padding-right:24px!important; }
  #praxisbereiche > div > div:last-child,
  #praxisbereiche article { grid-template-columns:1fr!important; }
  #praxisbereiche aside { padding:24px!important; }
  #praxisbereiche aside a { margin-top:28px!important; }
  #praxisbereiche article img { height:340px!important; }
  #team-grid, #team-teaser { grid-template-columns:1fr!important; }
  #team-grid > a, #team-teaser > div { grid-template-columns:38% 62%; min-height:290px; }
  #team-grid > a > div:first-child, #team-teaser > div > div:first-child { min-height:290px; }
  .contact-layout { grid-template-columns:1fr!important; gap:46px!important; }
  .home-hero { padding:0 14px 16px; }
  .home-hero-brand { padding:28px 0 22px; }
  .home-hero-brand > span { font-size:27px; }
  .home-hero-brand > div { width:min(340px, 84vw); }
  .home-hero-brand em { font-size:22px; }
  .home-hero-split { min-height:0; margin-top:0!important; display:flex!important; flex-direction:column-reverse; }
  .home-hero-image { position:relative; top:auto; right:auto; width:100%; height:360px; border:0; border-radius:5px 5px 0 0; }
  .home-hero-copy { position:relative; top:auto; left:auto; width:100%; min-height:470px; padding:70px 34px!important; border-left:4px solid var(--navy); border-radius:0 0 5px 5px; box-shadow:none; }
  .home-hero-copy h1 { font-size:56px!important; }
  .home-hero-eyebrow { margin-bottom:34px; }
  .home-hero-cta { margin-top:38px; }
  .homepage .home-nav-accent { left:0; height:40px; padding:0 24px; gap:20px; font-size:22px; }
  .homepage > nav { position:relative!important; top:0; left:auto; right:auto; height:auto; min-height:82px; margin-top:40px; padding:18px 24px!important; background:#fff!important; border-bottom:1px solid var(--v7-gold, #a49250)!important; }
  .homepage > nav > :first-child { display:inline-flex!important; }
  .homepage .home-hero-split { min-height:0; display:flex!important; flex-direction:column-reverse; }
  .homepage .home-hero-copy { min-height:520px; padding:46px 34px 64px!important; }
  .homepage .home-hero-brand { transform:none; }
  .homepage .home-hero-content { transform:none; }
  .homepage .home-hero-brand > span { font-size:29px; letter-spacing:.1em; }
  .homepage .home-hero-copy h1 { margin:52px 0 28px!important; font-size:52px!important; }
  .homepage .home-hero-subtitle { font-size:22px!important; }
  .homepage .home-hero-cta { margin-top:44px; }
  .homepage .home-hero-eyebrow { margin-top:54px; }
  .homepage .home-hero-image { height:360px; margin-top:0; }
  .homepage .home-practice-links { grid-template-columns:1fr!important; grid-template-rows:none; padding-top:0!important; }
  .homepage .home-practice-links > .home-practice-card,
  .homepage .home-practice-links > .home-practice-card:nth-child(1),
  .homepage .home-practice-links > .home-practice-card:nth-child(2),
  .homepage .home-practice-links > .home-practice-card:nth-child(3) { grid-column:1; grid-row:auto; min-height:130px; margin-top:0; }
  .homepage .home-practice-footer { grid-column:1; grid-row:auto; gap:24px; padding:34px 24px; }
  .home-gerichtsfenster { padding:30px 24px; }
  .home-gerichtsfenster > a { --bf-logo-width:211px; min-height:0; grid-template-columns:1fr; gap:22px; justify-items:start; }
  .home-gerichtsfenster .bf-shared-logo { width:211px; }
  .home-gerichtsfenster-copy { padding:20px 0 0; border-top:1px solid rgba(255,255,255,.18); border-left:0; }
  .home-gerichtsfenster-copy strong { font-size:28px; }
  .practice-viewport { height:auto; min-height:100vh; padding:52px 20px; overflow:visible; }
  .practice-intro { padding-bottom:30px; display:block; }
  .practice-intro h2 { font-size:43px; }
  .practice-intro p { font-size:22px; text-align:left; transform:none; }
  .practice-title-line { margin-bottom:22px; }
  .practice-intro p br { display:none; }
  .practice-stage { grid-template-columns:1fr; overflow:visible; }
  .practice-tabs { padding:24px; }
  .practice-tab-list { display:grid; grid-template-columns:1fr; }
  .practice-tab { min-height:0; padding:18px; }
  .practice-request { margin-top:28px; }
  .practice-panel { height:auto; grid-template-columns:1fr; }
  .practice-panel-copy { padding:36px 26px; }
  .practice-panel h3 br { display:none; }
  .practice-services { grid-template-columns:1fr; }
  .practice-contact-person { margin-top:16px; }
  .practice-panel-image { height:420px; border-top:1px solid var(--gold); border-left:0; }
  .focus-viewport { height:auto; min-height:100vh; padding:64px 20px; overflow:visible; }
  .focus-viewport-inner { grid-template-columns:1fr; gap:42px; transform:none; }
  .focus-intro { padding-top:0; }
  .focus-intro h2 { font-size:46px; }
  .focus-cards { min-height:0; grid-template-columns:1fr; }
  .focus-card { padding:42px 28px; }
  .focus-card + .focus-card { border-top:1px solid var(--gold); border-left:0; }
  .attorneys-viewport { height:auto; min-height:100vh; padding:58px 20px; overflow:visible; }
  .attorneys-inner { height:auto; }
  .attorneys-heading h2 { font-size:43px; }
  .attorneys-grid { grid-template-columns:1fr; grid-template-rows:none; }
  .attorney-card { min-height:350px; grid-template-columns:42% 58%; }
  .attorney-photo { margin:0; border-top:0; border-bottom:0; border-left:0; }
  .attorney-copy { padding:26px 22px 0; }
  .attorney-copy h3 { white-space:normal; }
  .attorney-profile { margin:0 -22px; padding-right:22px; padding-left:22px; }

  /* Responsive layout for the original profile and firm-page templates. */
  .legacy-profile-page .profile-hero { padding:42px 24px 0!important; }
  .legacy-profile-page .profile-hero > div > div:first-child { font-size:22px!important; margin-bottom:24px!important; }
  .legacy-profile-header-grid { grid-template-columns:1fr!important; gap:30px!important; align-items:start!important; }
  .legacy-profile-header-grid > div:first-child { max-width:280px; }
  .legacy-profile-header-grid > div:last-child { padding-bottom:42px!important; }
  .legacy-profile-header-grid h1 { font-size:50px!important; }
  .legacy-profile-header-grid > div:last-child > div:last-child { flex-wrap:wrap; }
  .legacy-profile-body-grid { grid-template-columns:minmax(0,1fr)!important; gap:42px!important; padding:52px 24px!important; }
  .legacy-profile-career-grid { grid-template-columns:minmax(0,1fr)!important; gap:38px!important; }
  .legacy-profile-sidebar { position:static!important; width:100%; }
  .legacy-profile-page section ul { grid-template-columns:minmax(0,1fr)!important; }
  .membership-logo-strip, .membership-logo-strip--kanzlei { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .membership-logo-tile { min-height:96px; padding:13px; }
  .membership-logo-tile img { max-height:62px; }

  .legacy-kanzlei-page > .page-hero { min-height:0!important; padding:54px 24px!important; }
  .legacy-kanzlei-page > div:nth-of-type(2) { padding:52px 24px!important; }
  .kanzlei-intro-grid { grid-template-columns:minmax(0,1fr)!important; gap:42px!important; }
  .kanzlei-milestone-grid { grid-template-columns:minmax(0,1fr)!important; gap:18px!important; }
  .kanzlei-membership-grid { grid-template-columns:minmax(0,1fr)!important; }
  .kanzlei-membership-grid article { padding:26px!important; }
  .kanzlei-review-summary { padding:28px!important; flex-direction:column; align-items:flex-start!important; gap:24px!important; }
  .kanzlei-review-summary > div > div:last-child { flex-wrap:wrap; }
  .kanzlei-review-summary > a { white-space:normal!important; text-align:center; }
  .kanzlei-review-grid { grid-template-columns:minmax(0,1fr)!important; }
  .kanzlei-cta-inner { flex-direction:column; align-items:flex-start!important; gap:28px; }
  .legacy-kanzlei-page footer { padding:32px 24px!important; flex-direction:column; align-items:flex-start!important; gap:20px; }
}
