/* A4 Master V38, screen adaptation 2026-11-03.
   This final layer owns typography roles; geometry stays in page styles.
   Tracking is relative to each master size, never inherited from the logo. */
:root {
 --font-regular:"GT Walsheim Regular",Arial,sans-serif;
 --font-medium:"GT Walsheim Medium",Arial,sans-serif;
 --font-mono:"Courier New",Courier,monospace;
 --logo-tracking:.144em;
 --logo-leading:1.1346153846;
 --chapter-tracking:.0769230769em; /* 1pt / 13pt */
 --caps-tracking:.125em; /* 1pt / 8pt */
 --caps-leading:1.125;
 --label-tracking:.0666666667em; /* .5pt / 7.5pt */
 --mono-tracking:0em;
 --sans-tracking:0em;
 --type-body-size:16px;
 --type-body-leading:18.7px; /* Established browser scale; master defines hierarchy. */
 --type-small-size:13px;
 --type-small-leading:14.625px; /* 8/9 */
 --editorial-title-size:20px;
 --editorial-title-leading:23.0769231px; /* Master 13/15, adapted to browser body size. */
 --space-half-line:calc(var(--type-body-leading) / 2);
 --space-line:var(--type-body-leading);
 --space-two-lines:calc(2 * var(--type-body-leading));
}
main { --type-title-size:var(--editorial-title-size); --type-title-leading:var(--editorial-title-leading); }
html body #portraits .portrait-card-heading .portrait-title-link {
 font:inherit !important; letter-spacing:inherit !important; color:inherit;
}
html body #header .site-brand.title,html body #header .site-brand.title span {
 font-family:var(--font-medium) !important; font-weight:500 !important;
 letter-spacing:var(--logo-tracking) !important; line-height:var(--logo-leading) !important;
}
html body :is(main,#portrait,#buero,#kontakt,#werkliste,#engagement) :is(.office-subtitle,.portrait-chapter-copy > h2,.focus-story-copy h2,
 .portrait-block-heading h2,.focus-spread-chapter h2,.einblick-heading-small,
 .related-heading,.related-projects > h2,.legal-layout h2) {
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:12px !important; line-height:16.5px !important; /* 8/11 */
 letter-spacing:var(--caps-tracking) !important; text-transform:uppercase;
 margin-bottom:0;
}
html body :is(main,#werkliste,#engagement,#presse) :is(.sortable-heading .sort-button,.focus-column-label) {
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:14px !important; line-height:15.75px !important;
 letter-spacing:var(--caps-tracking) !important; text-transform:uppercase;
}
html body #journal .journal-entry .newstitle,
html body #portraits .portrait-card .portrait-card-heading h2,
html body #buero .office-chapter-title,
html body :is(main,#portrait) .einblick-heading-large {
 font-family:var(--font-medium) !important; font-weight:500 !important;
 font-size:var(--editorial-title-size) !important; line-height:var(--editorial-title-leading) !important;
 letter-spacing:var(--chapter-tracking) !important; text-transform:uppercase;
}
html body #team .flexbox .team-name {
 -webkit-hyphens:none; hyphens:none;
 word-break:normal; overflow-wrap:anywhere;
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:var(--editorial-title-size) !important; line-height:var(--editorial-title-leading) !important;
 letter-spacing:var(--chapter-tracking) !important;
}
html body #journal .journal-entry .newstitle,
html body #portraits .portrait-card .portrait-card-heading,
html body #team .flexbox .team-name {
 margin-top:var(--space-half-line); margin-bottom:0;
 padding-top:0; padding-bottom:var(--space-half-line); min-height:0;
}
html body #portrait .focus-narrative-headline .focus-lead,
html body #buero .office-quote > :first-child {
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:21px !important; line-height:24px !important;
 letter-spacing:0 !important; text-transform:none;
}
html body :is(main,#werkliste,#portrait,#buero) .worklist-meta-row > :first-child,html body :is(main,#buero) .office-facts dt {
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:12px !important; line-height:14.4px !important;
 letter-spacing:var(--label-tracking) !important; text-transform:uppercase;
}
html body :is(main,#werkliste,#portrait,#buero) .worklist-meta-row > :nth-child(2),
html body :is(main,#werkliste,#portrait,#buero) .worklist-meta-row > :nth-child(2) :is(p,a,span),
html body :is(main,#buero) .office-facts dd,html body :is(main,#buero) .office-facts dd :is(p,a,span) {
 font-family:var(--font-mono) !important; font-weight:400 !important;
 font-size:13px !important; line-height:14.625px !important;
 letter-spacing:0 !important; text-transform:none;
}
/* Text links keep the surrounding text role; navigation stays sans-serif. */
html body :is(#journal,#team) :is(.journal-actions,.team-contact) { margin-top:var(--space-line); }
html body :is(#journal,#team) :is(.journal-link,.team-contact a),
html body :is(#journal,#team) :is(.journal-link,.team-contact a) > span,
html body #journal .journal-actions .journal-action {
 font-family:var(--font-mono) !important; font-weight:400 !important;
 font-size:var(--type-body-size) !important; line-height:var(--type-body-leading) !important;
 letter-spacing:0 !important; text-transform:none;
}
/* Journal links and team contacts use the project-table typography. */
html body #journal .journal-actions .journal-action,
html body #journal .journal-actions .journal-link,
html body #journal .journal-actions .journal-link > span:not(.ui-arrow),
html body #team .team-contact .team-contact-link,
html body #team .team-contact .team-contact-link > span:not(.ui-arrow) {
 font-family:var(--font-mono) !important; font-weight:400 !important;
 font-size:13px !important; line-height:14.625px !important;
 letter-spacing:0 !important; text-transform:none;
}
html body #team .team-contact { display:flex; flex-direction:column; align-items:flex-start; }
html body #journal .journal-actions .journal-link > .ui-arrow,
html body #team .team-contact .team-contact-link > .ui-arrow {
 width:11px; height:11px; flex:0 0 11px;
 margin-top:0;
}
html body :is(#kontakt,#kooperation,#buero,#portrait,#werkliste,#engagement,main)
 :is(.content-text,.newstext,.office-copy,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy) a,
html body :is(#kontakt,#kooperation,#buero,#portrait,#werkliste,#engagement,main)
 :is(.content-text,.newstext,.office-copy,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy) a > :is(span,p) {
 font-family:inherit !important; font-size:inherit !important;
 line-height:inherit !important; letter-spacing:inherit !important; font-weight:inherit !important;
}
html body main :is(.journal-link,.utility-arrow-link) > span:not(.ui-arrow) {
 font-family:inherit !important; font-size:inherit !important; line-height:inherit !important;
}
html body :is(main,#home,#referenzen,#portrait,#buero) :is(.home-item figcaption,.home-caption,.office-gallery-meta,
 .portrait-figure figcaption,.office-quote-credit) {
 font-family:var(--font-mono) !important; font-weight:400 !important;
 font-size:13px !important; line-height:14.625px !important;
 letter-spacing:0 !important; text-transform:none;
}
html body main :is(.home-item figcaption,.home-caption,.office-gallery-meta,.portrait-figure figcaption) { padding-top:var(--space-half-line); }
html body main :is(.content-text,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy) > p {
 margin-top:0; margin-bottom:0; padding-bottom:var(--space-line);
}
html body main :is(.content-text,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy) > p:last-child { padding-bottom:0; }
html body main .content-text > :is(h2,h3):not(:first-child) { margin-top:var(--space-two-lines); }
html body #buero .office-quote-credit { margin-top:var(--space-half-line); }
/* Footer uses the master's 8/11 rhythm, independently of the logo. */
html body .site-footer,html body .site-footer :is(p,a,a > span) {
 font-family:var(--font-regular) !important; font-weight:400 !important;
 font-size:13px !important; line-height:17.875px !important;
 letter-spacing:.125em !important; text-transform:uppercase;
}

/* Master spacing: one owner for paragraph and link-list rhythm.
   Keep page geometry and the approved 6/6px list, 4/2px facts-table
   padding in editorial-pass.css; these are optical screen adjustments. */
html body main :is(.newstext,.portrait-card-summary,.office-section-content) > p {
 margin:0;
 padding:0 0 var(--space-line);
}
html body main :is(.newstext,.portrait-card-summary,.office-section-content) > p:last-child {
 padding-bottom:0;
}
html body main :is(.journal-actions,.team-contact) {
 margin-top:var(--space-line);
 margin-bottom:0;
 padding-top:0;
 padding-bottom:0;
 gap:0;
}
html body main .journal-actions .journal-action + .journal-action {
 margin-top:0;
}
html body main .team-contact p {
 margin:0;
 padding-top:0;
 padding-bottom:0;
}
html body main .office-section { margin-bottom:var(--space-two-lines); }
html body main .office-section:last-child { margin-bottom:0; }
html body main .office-legal { margin-top:var(--space-two-lines); }
/* A subtitle and its copy form a single block, as in the master. */
html body #team .former-team-title { margin-bottom:0; }
/* Two clear lines before a new subtitle, without adding the preceding
   paragraph's one-line spacing a second time. */
html body main :is(.content-text,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy,.office-section-content) > :is(h2,h3):not(:first-child) {
 margin-top:var(--space-two-lines);
}
html body main :is(.content-text,.worklist-detail-text,.focus-story-copy,.portrait-chapter-copy,.office-section-content) > p:has(+ :is(h2,h3)) {
 padding-bottom:0;
}
