@font-face{font-family:"Open Sans";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/open-sans-400-italic.ttf") format("truetype")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/open-sans-400.ttf") format("truetype")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/open-sans-500.ttf") format("truetype")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/open-sans-600.ttf") format("truetype")}
@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/open-sans-700.ttf") format("truetype")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/oswald-400.ttf") format("truetype")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/oswald-500.ttf") format("truetype")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/oswald-600.ttf") format("truetype")}
@font-face{font-family:"Oswald";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/oswald-700.ttf") format("truetype")}

/* Oswald for headings, Open Sans for reading and interface text. */
:root,body{
  --sans:'Open Sans',Arial,sans-serif!important;
  --serif:'Oswald','Arial Narrow',sans-serif!important;
  --editorial:'Oswald','Arial Narrow',sans-serif!important;
  --portfolio-sans:'Open Sans',Arial,sans-serif!important;
  --portfolio-serif:'Oswald','Arial Narrow',sans-serif!important;
}
body,body :is(div,section,article,p,a,button,input,textarea,select,option,li,dt,dd,figcaption,label,small,th,td,blockquote,span,strong,b,em,code,pre){font-family:var(--sans)!important}
body :is(h1,h2,h3,h4,h5,h6),body :is(h1,h2,h3,h4,h5,h6) *{font-family:var(--editorial)!important;letter-spacing:0!important;font-style:normal}
body :is(h1,h2,h3,h4,h5,h6){font-weight:400}
.page-case .native-section-title h2,.page-case .case-intro h1{line-height:1.2}
.page-case .native-card h3{line-height:1.3}
.page-case .wordmark{font-family:var(--editorial)!important;letter-spacing:-.02em}
[data-portfolio-source="home"] :is(h1,h2,h3).framer-text,
[data-portfolio-source="home"] :is(h1,h2,h3).framer-text *{font-family:var(--editorial)!important;letter-spacing:0!important}
[data-portfolio-source="home"] .framer-9c129d h1{font-size:clamp(2rem,17cqw,6.1rem)!important;line-height:1.14!important}
/* CookPal's product uses Arial; portfolio exhibit labels keep the site pair. */
.cookpal-system :is(.cp-type-display,.cp-type-heading,.cp-type-body),
.cookpal-system .cp-demo,.cookpal-system .cp-demo *{font-family:Arial,Helvetica,sans-serif!important}
.cookpal-system .cp-type-display{font-weight:700}
.cookpal-system :is(.cp-type-heading,.cp-type-body){font-weight:400}
.cookpal-system .cp-demo h4{font-weight:600}
.cookpal-system .cp-type-scale small{font-weight:400}

/* Editorial headings use the actual bold face; embedded product specimens
   retain their documented typography. Include Framer's nested text spans. */
.page-case :is(h1,h2,h3,h4,h5,h6):not(.product-device *):not(.cp-demo *),
[data-portfolio-source] :is(h1,h2,h3,h4,h5,h6),
[data-portfolio-source] :is(h1,h2,h3,h4,h5,h6) *{font-weight:700!important}
