/* PixelCMS Public Typography Scale Contract v1.3.38 */
:root{
  --pxth-font-display:42px;
  --pxth-font-section-title:32px;
  --pxth-font-panel-title:22px;
  --pxth-font-card-title:20px;
  --pxth-font-body:16px;
  --pxth-font-small:14px;
  --pxth-public-heading-font:Kanit,system-ui,sans-serif;
  --pxth-public-body-font:Kanit,system-ui,sans-serif;
  --pxth-body-background:#fff;
  /* Compatibility aliases. */
  --pxth-font-title:var(--pxth-font-section-title);
  --pxth-public-title-size:var(--pxth-font-section-title);
  --pxth-public-body-size:var(--pxth-font-body);
  --title-lg:var(--pxth-font-section-title);
  --text:var(--pxth-font-body);
}
html,body{background-color:var(--pxth-body-background,#fff)}
body{font-family:var(--pxth-public-body-font)}

/* Public font-family compatibility bridge.
   Public Core modules and contract-compliant plugin surfaces must inherit the
   selected font pair instead of retaining a legacy Kanit root declaration. */
html:not([data-edit="1"]) :where(
  main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,
  section[data-section],.custom-section,.custom-block,[data-plugin-block],
  [data-module-block],.pxth-public-scope,.px-shop,.px-product,.px-cart-page,
  .px-checkout-page,.news,.article-page,.article-detail,.pxth-article-page,
  .pxth-article-detail,.pxth-product-detail-page,[data-product-detail],footer
){
  font-family:var(--pxth-public-body-font)!important;
}
html:not([data-edit="1"]) :where(
  main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,
  section[data-section],.custom-section,.custom-block,[data-plugin-block],
  [data-module-block],.pxth-public-scope,.px-shop,.px-product,.news,
  .article-page,.article-detail,.pxth-product-detail-page,[data-product-detail],footer
) :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,
  .panel-title,.card-title,.item-title,.product-title,.product-name,
  .article-title,.news-title,.gallery-title,[data-pxth-title]){
  font-family:var(--pxth-public-heading-font)!important;
}

/* Public roots only. Admin typography is isolated in admin-design-contract.css. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope,footer,.news,.article-page,.article-detail,.pxth-article-page,.pxth-article-detail,.pxth-product-detail-page,.px-product,[data-product-detail]){
  font-family:var(--pxth-public-body-font);
  font-size:var(--pxth-font-body);
}

/* 1. Page / Hero / primary page heading. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope)
  :where(h1,.page-title,.hero-title,.display-title,[data-pxth-typography="display"]){
  font-family:var(--pxth-public-heading-font)!important;
  font-size:var(--pxth-font-display)!important;
}

/* 2. Section / Block heading. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope,footer)
  :where(h2,.section-title,.block-title,.sec-title,.main-title,.footer-title,[data-pxth-title],[data-pxth-typography="section"]){
  font-family:var(--pxth-public-heading-font)!important;
  font-size:var(--pxth-font-section-title)!important;
}

/* 3. System panel / sidebar / widget heading. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope)
  :where(.sidebar-title,.filter-title,.widget-title,.panel-title,.system-title,.facet-title,.category-title,[data-pxth-typography="panel"]){
  font-family:var(--pxth-public-heading-font)!important;
  font-size:var(--pxth-font-panel-title)!important;
}

/* 4. Product / article / news / gallery / card item title. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope)
  :where(h3,h4,.card-title,.item-title,.product-title,.product-name,.article-title,.article-name,.news-title,.news-name,.gallery-title,.gallery-item-title,.testimonial-title,[data-pxth-typography="card"]){
  font-family:var(--pxth-public-heading-font)!important;
  font-size:var(--pxth-font-card-title)!important;
}

/* 5. Body / descriptions / rich text. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope,footer,.article-page,.article-detail,.pxth-product-detail-page,.px-product)
  :where(p,li,dd,dt,blockquote,.description,.desc,.excerpt,.summary,.content-text,.body-text,.copy,.paragraph,.lead,.intro,.detail-text,.pxth-product-short,.pxth-product-short-rich,.pxth-product-full-content,[data-pxth-body],[data-pxth-typography="body"]){
  font-family:var(--pxth-public-body-font)!important;
  font-size:var(--pxth-font-body)!important;
}

/* 6. Meta / caption / dates / SKU. Keep controls and badges out of this rule. */
html:not([data-edit="1"]) :where(main,#pxth-page,#pxth-content,.pxth-page-content,.site-content,.page-content,section[data-section],.custom-section,.custom-block,[data-plugin-block],[data-module-block],.pxth-public-scope,footer)
  :where(.meta,.caption,.copyright,.date,.time,.author,.category-meta,.product-meta,.article-meta,.news-meta,.sku,.eyebrow,[data-pxth-typography="small"]){
  font-family:var(--pxth-public-body-font)!important;
  font-size:var(--pxth-font-small)!important;
}

/* Optional per-block compatibility override. */
html:not([data-edit="1"]) [data-pxth-block-typography-override="1"]{
  --pxth-effective-title-size:var(--pxth-block-title-size,var(--pxth-font-section-title));
  --pxth-effective-body-size:var(--pxth-block-body-size,var(--pxth-font-body));
}
html:not([data-edit="1"]) [data-pxth-block-typography-override="1"] :where(.section-title,.block-title,[data-pxth-title]){font-size:var(--pxth-effective-title-size)!important}
html:not([data-edit="1"]) [data-pxth-block-typography-override="1"] :where(p,li,.description,.excerpt,[data-pxth-body]){font-size:var(--pxth-effective-body-size)!important}


/* Edit-mode preview scale: website typography applies ONLY inside builder areas.
   Admin/editor/gallery/plugin UI must never inherit these public values. */
html[data-edit="1"] .pxth-builder-area :where(h1,.page-title,.hero-title,.display-title,[data-pxth-typography="display"]){font-size:var(--pxth-font-display)!important}
html[data-edit="1"] .pxth-builder-area :where(h2,.section-title,.block-title,.sec-title,.main-title,.footer-title,[data-pxth-title],[data-pxth-typography="section"]){font-size:var(--pxth-font-section-title)!important}
html[data-edit="1"] .pxth-builder-area :where(.sidebar-title,.filter-title,.widget-title,.panel-title,.system-title,.facet-title,.category-title,[data-pxth-typography="panel"]){font-size:var(--pxth-font-panel-title)!important}
html[data-edit="1"] .pxth-builder-area :where(h3,h4,.card-title,.item-title,.product-title,.product-name,.article-title,.article-name,.news-title,.news-name,.gallery-title,.gallery-item-title,.testimonial-title,[data-pxth-typography="card"]){font-size:var(--pxth-font-card-title)!important}
html[data-edit="1"] .pxth-builder-area :where(p,li,dd,dt,blockquote,.description,.desc,.excerpt,.summary,.content-text,.body-text,.copy,.paragraph,.lead,.intro,.detail-text,.pxth-product-short,.pxth-product-short-rich,.pxth-product-full-content,[data-pxth-body],[data-pxth-typography="body"]){font-size:var(--pxth-font-body)!important}
html[data-edit="1"] .pxth-builder-area :where(.meta,.caption,.copyright,.date,.time,.author,.category-meta,.product-meta,.article-meta,.news-meta,.sku,.eyebrow,[data-pxth-typography="small"]){font-size:var(--pxth-font-small)!important}
html[data-edit="1"] .pxth-builder-area [data-pxth-block-typography-override="1"]{--pxth-effective-title-size:var(--pxth-block-title-size,var(--pxth-font-section-title));--pxth-effective-body-size:var(--pxth-block-body-size,var(--pxth-font-body))}
html[data-edit="1"] .pxth-builder-area [data-pxth-block-typography-override="1"] :where(.section-title,.block-title,[data-pxth-title]){font-size:var(--pxth-effective-title-size)!important}
html[data-edit="1"] .pxth-builder-area [data-pxth-block-typography-override="1"] :where(p,li,.description,.excerpt,[data-pxth-body]){font-size:var(--pxth-effective-body-size)!important}

/* PixelCMS Core v1.4.60-b1.5.2 — selected typography must apply to live Builder preview too. */
html[data-edit="1"] .pxth-builder-area[data-builder-area="header"],
html[data-edit="1"] .pxth-builder-area[data-builder-area="body"],
html[data-edit="1"] .pxth-builder-area[data-builder-area="footer"]{
  font-family:var(--pxth-public-body-font)!important;
}
html[data-edit="1"] .pxth-builder-area[data-builder-area="header"] :where(a,p,span,li,button,input,textarea,select,label),
html[data-edit="1"] .pxth-builder-area[data-builder-area="body"] :where(a,p,span,li,button,input,textarea,select,label),
html[data-edit="1"] .pxth-builder-area[data-builder-area="footer"] :where(a,p,span,li,button,input,textarea,select,label){
  font-family:var(--pxth-public-body-font)!important;
}
html[data-edit="1"] .pxth-builder-area[data-builder-area="header"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]),
html[data-edit="1"] .pxth-builder-area[data-builder-area="body"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]),
html[data-edit="1"] .pxth-builder-area[data-builder-area="footer"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]){
  font-family:var(--pxth-public-heading-font)!important;
}
html:not([data-edit="1"]) :where(header,.site-header,.pxth-builder-area[data-builder-area="header"]){font-family:var(--pxth-public-body-font)!important}
html:not([data-edit="1"]) :where(header,.site-header,.pxth-builder-area[data-builder-area="header"]) :where(h1,h2,h3,h4,h5,h6,[data-pxth-title]){font-family:var(--pxth-public-heading-font)!important}

/* Public selected-font authority v1.4.60: common Core text/control surfaces must not retain legacy Kanit declarations. */
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="header"] :where(a,p,span,li,button,input,textarea,select,label,small,strong,em,td,th),
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="body"] :where(a,p,span,li,button,input,textarea,select,label,small,strong,em,td,th),
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="footer"] :where(a,p,span,li,button,input,textarea,select,label,small,strong,em,td,th){
  font-family:var(--pxth-public-body-font)!important;
}
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="header"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]),
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="body"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]),
html:not([data-edit="1"]) .pxth-builder-area[data-builder-area="footer"] :where(h1,h2,h3,h4,h5,h6,.page-title,.hero-title,.section-title,.block-title,.panel-title,.card-title,.item-title,.product-title,.article-title,.news-title,[data-pxth-title]){
  font-family:var(--pxth-public-heading-font)!important;
}
