@font-face { font-family:'Favorit Light Expanded'; src:url('/fonts/Favorit-LightExpanded.otf') format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Favorit Bold Expanded'; src:url('/fonts/Favorit-BoldExpanded.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
body.favorit-type { --preview-text-font:'Favorit Light Expanded',Arial,sans-serif; --preview-display-font:'Favorit Bold Expanded',Arial,sans-serif; font-family:var(--preview-text-font); font-weight:300; font-synthesis:none; --preview-heading-weight:700; }
/* Approved portfolio typography: include the labels and controls that have their own font
   declarations in the original stylesheet, not only inherited body copy. */
body.favorit-type :is(.eyebrow,footer,.project-role,.clip-index,.site-header .tagline,.session-timecode,.reference small,.preview-copy p,.contact-direct,.contact-field > span,.contact-options legend,.contact-field input,.contact-field select,.contact-field textarea,.contact-options label,.contact-note,.photography-intro > p:last-child,.photography-case__content p,.photography-case__content span,.vimeo-clean-toggle,.vimeo-clean-time,.project-link,.gallery-heading,.clip-card figcaption,.photo-viewer__close,.docklands-case__top,.docklands-case__action,.docklands-media-placeholder strong) { font-family:var(--preview-text-font); font-weight:300; letter-spacing:.035em; }
body.favorit-type :is(h1,h2,h3,h4,h5,h6,strong,b) { font-family:var(--preview-display-font); font-weight:700; }
body.favorit-type :is(.utility-nav,.back,.contact-submit,.vimeo-clean-start,.video-theater-toggle) { font-family:var(--preview-display-font); font-weight:700; letter-spacing:.035em; }
body.favorit-type .utility-nav { font-size:.68rem; gap:1.15rem; }
body.favorit-type .session-timecode,body.favorit-type .vimeo-clean-time { font-variant-numeric:tabular-nums; }
body.favorit-type :is(.eyebrow,.project-role,.gallery-heading,.photography-case__content p,.photography-case__content span,.docklands-case__top,.docklands-case__action,.reference small,.clip-card figcaption,.project-link) { line-height:1.4; }
body.favorit-type :is(.contact-field input,.contact-field select,.contact-field textarea) { font-size:1rem; line-height:1.4; letter-spacing:0; }
body.favorit-type .contact-options label { font-size:.78rem; line-height:1.4; letter-spacing:.025em; }
body.favorit-type .contact-note { font-size:.78rem; line-height:1.45; letter-spacing:0; }
body.favorit-type :is(.contact-copy > p:not(.eyebrow),.biianco-context__copy > p:last-child,.about-grid div p) { font-family:var(--preview-text-font); font-weight:300; letter-spacing:0; line-height:1.45; }
body.favorit-type .contact-direct { overflow-wrap:anywhere; }
body.favorit-type.about-page .project-intro .about-title { font-family:var(--preview-display-font); font-size:clamp(2.1rem,8vw,8.8rem); line-height:1.08; letter-spacing:.02em; white-space:normal; }
body.favorit-type .wordmark { font-family:'Favorit Bold Expanded',Arial,sans-serif; font-weight:700; letter-spacing:.055em; }
body.favorit-type .reference span { font-family:'Favorit Bold Expanded',Arial,sans-serif; font-size:clamp(1.5rem,min(4.8vw,5.5svh),4.9rem); font-weight:var(--preview-heading-weight); letter-spacing:.025em; line-height:1.04; }
body.favorit-type .reference { gap:.2rem; padding:.12rem 0; }
body.favorit-type .site-header,body.favorit-type .reference-list,body.favorit-type footer { flex-shrink:0; }
body.favorit-type .reference-list { margin:clamp(1.4rem,3svh,2rem) 0 auto; padding:0 0 1rem; }
body.favorit-type footer { margin-top:.75rem; }
body.favorit-type .reference--about span { font-size:clamp(1.5rem,3vw,3.1rem); }
body.favorit-type .preview-copy h1 { font-family:'Favorit Bold Expanded',Arial,sans-serif; font-weight:var(--preview-heading-weight); letter-spacing:.025em; line-height:1.04; font-size:clamp(1.8rem,4.2vw,4rem); }
body.favorit-type :is(.project-intro h1,.photography-intro h1,.contact-intro h1,.about-title) { font-family:'Favorit Bold Expanded',Arial,sans-serif; font-weight:var(--preview-heading-weight); font-size:clamp(2.1rem,8vw,8.8rem); letter-spacing:.02em; line-height:1.04; }
body.favorit-type :is(.photography-case__content h2,.docklands-case h2,.biianco-context__copy h2) { font-family:'Favorit Bold Expanded',Arial,sans-serif; font-weight:var(--preview-heading-weight); letter-spacing:.02em; line-height:1.04; }
body.favorit-type :is(.project-summary > p:last-child,.about-statement p,.biianco-bts > div > p:last-child) { font-family:var(--preview-text-font); font-weight:300; letter-spacing:0; line-height:1.3; }
/* CMS cards use full slugs, not only legacy class names. Keep every
   Photography card aligned in the two-column grid. */
body.favorit-type .photography-cases > .photography-case { grid-column:span 6; min-width:0; }
body.favorit-type :is(.photography-case--nik-andersson,.photography-case--hardt-antoine)::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(15,15,15,.78) 0%,rgba(15,15,15,.08) 75%); }
body.favorit-type .photography-case--nik-andersson img { object-position:center top; }
@media(min-width:641px) and (max-width:1000px) {
  body.favorit-type .utility-nav { position:relative; top:auto; right:auto; justify-content:flex-end; margin-top:1rem; flex-wrap:wrap; }
  body.favorit-type .reference-list { margin-top:1.2rem; }
}
@media(max-width:640px) {
  body.favorit-type .photography-cases > .photography-case { grid-column:auto; }
  body.favorit-type .utility-nav { font-size:.64rem; gap:.85rem 1rem; }
  body.favorit-type .reference span { font-size:clamp(1.5rem,8.1vw,3.2rem); letter-spacing:.022em; }
  body.favorit-type .reference--about span { font-size:1.55rem; }
  body.favorit-type .session-timecode { left:auto; right:1.4rem; transform:none; }
  body.favorit-type .reference-list { margin:2.3rem 0 auto; padding:0 0 1rem; }
  body.favorit-type .reference-stage { padding-bottom:7rem; }
  body.favorit-type .preview-copy h1 { font-size:clamp(1.5rem,7vw,2rem); }
}
