/* TE Global Typography Goldstandard | Lato + Libre Bodoni | public HTML only.
 * Internal font-family aliases are TE Sans and TE Editorial (OFL-compatible conversion).
 * Font families are global. Action BUTTON TEXT properties are also harmonized.
 * Colors, padding, positioning and Product Engine catalogue mechanics stay unchanged.
 * Disabling at Tools > TE Typografie removes this entire stylesheet and script.
 */
:root {
  --te-design-font-sans: "TE Sans", sans-serif;
  --te-design-font-serif: "TE Editorial", serif;
  --te-design-font-catalog: "TE Sans", sans-serif;
  --te-ui-font: "TE Sans", sans-serif;
  --te-detail-copy: "TE Sans", sans-serif;
  --te-detail-serif: "TE Editorial", serif;
  --pv3-serif: "TE Editorial", serif;
  --p4-serif: "TE Editorial", serif;
  --serif: "TE Editorial", serif;
  --te-typography-h1: clamp(34px,4vw,52px);
  --te-typography-h2: clamp(28px,3vw,38px);
  --te-typography-h3: clamp(23px,2.3vw,28px);
  --te-typography-h4: clamp(20px,1.9vw,22px);
  --te-typography-h5: clamp(17px,1.5vw,18px);
  --te-typography-h6: 15px;
}
/* Unreachable triple ID raises specificity above prior CSS !important declarations,
 * even where the old theme and plugins share the same content container.
 * Normal inline font-size / line-height values remain untouched.
 * Decorative icon fonts are excluded (they encode symbols, not text).
 */
html body :not(#te-type-lock-a#te-type-lock-b#te-type-lock-c):not(:is(
  .dashicons,[class^="dashicons-"],[class*=" dashicons-"],
  .fa,.fas,.far,.fab,.fal,.fad,.fa-solid,.fa-regular,.fa-brands,
  .material-icons,.material-symbols-outlined,.material-symbols-rounded,
  [data-te-icon-font="1"],svg,svg *
)) {
  font-family: "TE Sans", sans-serif !important;
}
html body :is(h1,h2,h3):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c#te-heading-wins-sans) {
  font-family: "TE Editorial", serif !important;
}
/* A semantic product/card headline keeps the compact sans-serif catalogue style;
 * the approved card sizes and price sizes are never changed. */
html body :is(
  .te-preview-catalog-area,.te-pe-product-main,.te-pe-family-variants,
  .te-pe-catalog,.te-pe-grid,.te-pe-search-grid,.te-pe-product-card,.te-pe-product-module,
  .te-db-search-results,.te-db-search-grid,.te-db-product-grid,
  .te-product-grid,.te-catalog-grid,.product-grid,.product-card
) :is(h1,h2,h3):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c#te-functional-wins-editorial),
html body :is(.te-pe-product-name,.te-pe-price,.te-pe-old-price,.te-pe-brand,
  .te-db-product-title,.te-db-card-title,.te-pe-family-variant,
  .te-db-card-price,.te-pe-discount-badge):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c#te-functional-wins-editorial) {
  font-family: "TE Sans", sans-serif !important;
}
/* Preserve a dedicated Lato UI on article eyebrows, labels, buttons and logo. */
html body :is(button,input,textarea,select,option,label):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c){
  font-family: "TE Sans", sans-serif !important;
}

/* Editorial-looking elements which are not semantic heading tags */
html body :is(.te-preview-site .serif,.te-preview-site .footer-brand,
 .te-preview-site .footer .te-footer-name,
 .te-db-brand-theme-copy strong,.te-ee-reader-headline,
 .te-release-info-hero .te-release-fallback-h1, .te-db-editorial-title):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c){
 font-family:"TE Editorial",serif!important;
}
/* Functional headings in site navigation, filters, footers and cards use Lato. */
html body :is(.site-header,header.site-header,footer, .te-release-bottom,
 .te-preview-catalog-area, .te-pe-product-main, .te-pe-family-variants,
 .te-db-search-results, .te-db-search-grid, .product-grid,
 .ct-drawer, .te-pe-filter-panel, .te-pe-filter-drawer, .te-db-filter-modal)
 :is(h1,h2,h3):not(#te-type-lock-a#te-type-lock-b#te-type-lock-c#te-functional-wins-editorial) {
 font-family:"TE Sans",sans-serif!important;
}

html body{font-family:"TE Sans",sans-serif!important}

/* TE Button Typography Goldstandard v0.6.14
 * Startseiten-Referenz .te-preview-site .btn (desktop: 10.5/600/.02em/uppercase,
 * mobile <=530px: 10/600/.02em/uppercase). Schriftfamilie TE Sans = Lato.
 * ALL public text action buttons, including Product Engine filter portal appended
 * directly to <body>, must share these values. No changes to dimensions,
 * padding, borders, colors, states, clicks, or form/input data.
 * Unlike the 0.6.13 family-only rule this enforces all visible type properties.
 * Icons, counters, choice labels and select menus retain their UI semantics.
 */
:root {
  --te-button-font-size:10.5px;
  --te-button-font-weight:600;
  --te-button-letter-spacing:.02em;
  --te-button-line-height:16.5px;
  --te-button-text-transform:uppercase;
}
@media(max-width:530px){
  :root{--te-button-font-size:10px;--te-button-line-height:15px}
}
/* High specificity wins over legacy plugin/theme inline and important styles;
 * :not(#id#id#id) is valid and always true for ordinary HTML nodes.
 * Explicit classes include buttons implemented as <a> (not just <button>).
 */
html body :is(
  a.btn,a.button,a.wp-block-button__link,a[class*="-button"],a[class*="-btn"],a[class*="-cta"],
  .te-db-mag-button,.te-db-preset-button,.te-pe-filter-open,.te-pe-filter-reset,
  .te-pe-filter-apply,.te-pe-filter-chip,.te-pe-product-pagination__button,
  .te-pe-buy-button,.te-pe-product-action,.te-pe-secondary-offer__button,
  .te-pe-consent__button,.te-ee-reader-product-cta,
  button:not([aria-label]):not([title]):not(.te-pe-filter-drawer__backdrop):not(.tool-button):not([class*="icon"]):not([class*="toggle"]):not(:has(svg)),
  input[type="submit"],input[type="button"],input[type="reset"],
  [role="button"]:not([aria-label]):not(:has(svg))
):not(#te-button-lock-a#te-button-lock-b#te-button-lock-c):not(:is(
  #wpadminbar *,[class*="dashicons"],.screen-reader-text,
  .te-pe-filter-drawer__backdrop,.te-pe-filter-drawer__head button,
  .site-search button,.ct-toggle-close,.ct-header-trigger,
  [class*="icon-only"],[class*="sr-only"]
)) {
  font-family:"TE Sans",sans-serif!important;
  font-size:var(--te-button-font-size)!important;
  font-weight:var(--te-button-font-weight)!important;
  letter-spacing:var(--te-button-letter-spacing)!important;
  line-height:var(--te-button-line-height)!important;
  text-transform:var(--te-button-text-transform)!important;
  font-style:normal!important;
}
/* Action-label descendants can have legacy bold or tracking rules of their own.
 * Keep arrow/svg icon font and numerical filter counter sizes untouched.
 */
html body :is(
  a.btn,a.button,a.wp-block-button__link,a[class*="-button"],a[class*="-btn"],a[class*="-cta"],
  .te-db-mag-button,.te-db-preset-button,.te-pe-filter-open,.te-pe-filter-reset,
  .te-pe-filter-apply,.te-pe-filter-chip,.te-pe-product-pagination__button,
  .te-pe-buy-button,.te-pe-product-action,.te-pe-secondary-offer__button,
  button:not([aria-label]):not([title]):not(:has(svg))
) :is(span,strong,b,em):not(#te-button-lock-a#te-button-lock-b#te-button-lock-c):not([class*="icon"]):not([class*="count"]):not([aria-hidden="true"]){
 font-family:"TE Sans",sans-serif!important;font-size:inherit!important;
 font-weight:600!important;letter-spacing:inherit!important;text-transform:inherit!important;
}
/* A filter selection is not a CTA: readable mixed-case labels, but Lato only. */
html body :is(.te-pe-filter-form summary,.te-pe-filter-option,.te-pe-filter-switch,
  .te-pe-price-filter label,.te-pe-sort select,.te-pe-filter-drawer__head span):not(#te-button-lock-a#te-button-lock-b#te-button-lock-c),
html body :is(.te-pe-filter-form summary,.te-pe-filter-option,.te-pe-filter-switch,
  .te-pe-price-filter label,.te-pe-sort select,.te-pe-filter-drawer__head span)
 :is(span,small):not(#te-button-lock-a#te-button-lock-b#te-button-lock-c){
 font-family:"TE Sans",sans-serif!important;
}


/* Nested inline formatting inside a heading must NEVER revert to Lato just
 * because the broad public-text rule also matches <strong>/<em>/<span>.
 * Inherit from the actual H1/H2/H3 element, so editorial headings use
 * Libre Bodoni and functional headings/cards keep Lato. Icon fonts excluded. */
html body :is(h1,h2,h3) :is(span,strong,b,em,i,small,a,mark,u):not(#te-heading-lock-a#te-heading-lock-b#te-heading-lock-c):not(:is(
  .dashicons,[class^="dashicons-"],[class*=" dashicons-"],
  .fa,.fas,.far,.fab,.fal,.fad,.fa-solid,.fa-regular,.fa-brands,
  .material-icons,.material-symbols-outlined,.material-symbols-rounded,
  [data-te-icon-font="1"], [aria-hidden="true"]
)) {font-family:inherit!important;}

/* Unified editorial heading roles: the catalog section title is not a product name.
   Keep h3 product names, filters and all other functional headings TE Sans. */
html body .te-pe-product-module .te-pe-product-module__head .te-pe-product-module__heading:not(#te-editorial-module-h-a#te-editorial-module-h-b#te-editorial-module-h-c#te-editorial-module-h-d#te-editorial-module-h-e){
    font-family:"TE Editorial",serif!important;
}
