/*
 * Norske Tools - DIN typeface registration and typography rules.
 *
 * Four real faces are registered so the browser never synthesises a weight.
 * Bold text loads DIN-Bold.otf and slider text loads DIN-Black.otf rather than
 * faux-bolding DIN-Regular.
 *
 * Shipped as .otf with format("opentype"): no woff2 tooling exists on the
 * build machine and the brief permits OTF where conversion is not available.
 *
 * Weight map: Regular 400, Medium 500 (registered, not applied), Bold 700,
 * Black 900.
 */

@font-face {
	font-family: "DIN";
	src: url("../fonts/DIN-Regular.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "DIN";
	src: url("../fonts/DIN-Medium.otf") format("opentype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "DIN";
	src: url("../fonts/DIN-Bold.otf") format("opentype");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "DIN";
	src: url("../fonts/DIN-Black.otf") format("opentype");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

/* ---------------------------------------------------------------- base ---
 * Body and all standard non-bold text: DIN Regular 400.
 */
:root {
	--nt-font: "DIN", sans-serif;
}

body,
button,
input,
select,
textarea,
.nt-footer,
.nt-postcontent,
.nt-postnav,
.nt-desc__body,
.nt-card-name,
.nt-testi-body p,
.nt-testi-person b,
.nt-testi-label,
.nt-pp,
.nt-acct,
.nt-acct-h,
.nt-acct-main input,
.nt-pshare,
.nt-fad-hero p,
.nt-fad-map-note,
#nt-fad-q,
#nt-fad-loc,
#nt-fad-list li,
.elementor-form .elementor-field-textual,
.nt-searchbar input[type="search"] {
	font-family: var(--nt-font);
}

body {
	font-weight: 400;
}

/* -------------------------------------------------------- bold headings ---
 * All headings, plus the nt-* section headings that used Paytone One.
 */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.nt-feature h2,
.nt-testi h2,
.nt-fad-hero h1,
.nt-fad-results h2,
.nt-specs-title,
.nt-bcard h3,
.nt-posthero h1,
.nt-crumbstrip-in {
	font-family: var(--nt-font);
	font-weight: 700;
}

/* -------------------------------------------------------------- buttons ---
 * Every button surface, including the WooCommerce and Elementor button
 * classes and the site's own CTA and dealer buttons.
 */
button,
.button,
input[type="submit"],
input[type="button"],
.elementor-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.nt-hbtn,
.nt-fbtn,
.nt-fbtn-dark,
.nt-fbtn-accent,
.nt-acct-btn,
.nt-cta,
.nt-btn-dealer,
.nt-desc__toggle,
.nt-bcard-more {
	font-family: var(--nt-font);
	font-weight: 700;
}

/* ------------------------------------------------- menu and navigation ---
 * The header menu must visibly use DIN, not a fallback.
 */
.nt-nav,
.nt-nav a,
.nt-nav-item,
.nt-nav-actions,
.nt-acct-menu,
.nt-header a,
nav a,
.elementor-nav-menu a,
.menu-item a {
	font-family: var(--nt-font);
	font-weight: 700;
}

/* ------------------------------------------------------ category titles ---
 * Product category tiles and the WooCommerce archive/category headings.
 */
.nt-ptile-bar span,
.nt-ptile-bar span:first-child,
.woocommerce-products-header__title,
.woocommerce-loop-category__title,
.product-category h2,
.woocommerce .term-description h2 {
	font-family: var(--nt-font);
	font-weight: 700;
}

/* ------------------------------- product headings and emphasised content ---
 */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title,
.elementor-widget-woocommerce-product-title .elementor-heading-title,
.nt-specs-table th,
.nt-desc__body strong,
.nt-desc__body b {
	font-family: var(--nt-font);
	font-weight: 700;
}

/* --------------------------------------------------------------- sliders ---
 * Slider headings and slider body copy use the heaviest face, DIN Black 900,
 * and are shown in capitals. The capitals come from text-transform so no
 * stored content is altered.
 *
 * Call-to-action controls inside a slider stay on the button rule at 700,
 * because they are buttons first.
 */
.nt-slide h1,
.nt-slide h2,
.nt-slide h2.nt-slide-title,
.nt-slide .nt-slide-title,
.nt-slide p,
.nt-feature h2,
.nt-feature p,
.nt-feature-slide h2,
.nt-feature-slide p {
	font-family: var(--nt-font);
	font-weight: 900;
	text-transform: uppercase;
}

.nt-slide .nt-cta,
.nt-feature .nt-cta {
	font-family: var(--nt-font);
	font-weight: 700;
	text-transform: uppercase;
}

/* ------------------------------------------- migrated shortcode overrides ---
 * The nt-* shortcode files print their own CSS and one inline style attribute,
 * and they must not be edited. Two of those sources win on load order or
 * specificity, so !important is used here and only here:
 *
 *  - nt-login.php prints a <style> block in the body, after this stylesheet.
 *  - nt-header-footer.php sets a font on a style attribute, which no
 *    stylesheet rule can outrank.
 */

/* Blog list, post hero and pagination: printed in the head, so no !important
   is needed, these selectors simply were not covered above. */
.nt-bpag a,
.nt-bpag span,
.nt-posthero-date,
.nt-postnav {
	font-family: var(--nt-font);
}

.nt-login-wrap,
.nt-login-form input[type="text"],
.nt-login-form input[type="password"],
.nt-login-btn {
	font-family: var(--nt-font) !important;
}

.nt-login-btn {
	font-weight: 700 !important;
}

/* Footer column heading carries font-family and font-weight:800 inline. 800
   would resolve to the Black face, so the weight is pinned to Bold. */
.nt-footer [style*="Open Sans"] {
	font-family: var(--nt-font) !important;
	font-weight: 700 !important;
}
