/**
 * Child-Theme Layout — uses --nf-* tokens from theme-tokens.css
 * (no SCSS build required for these rules)
 */

/*
 * Typography scale (harmonized FO)
 * xs 0.8125rem — controls / utilities
 * sm 0.875rem  — secondary UI (newsletter, pagination, meta)
 * md 0.9375rem — nav / soft emphasis
 * base 1rem    — body (theme-tokens)
 */
:root {
  --nf-fs-xs: 0.8125rem;
  --nf-fs-sm: 0.875rem;
  --nf-fs-md: 0.9375rem;
}

h1 {
  font-size: 1.4rem !important;
}

.h6 {
  font-weight: 500 !important;
}

/* Breadcrumb */
.breadcrumb,
.breadcrumb__wrapper .breadcrumb {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

/* Header */
.header {
  background-color: var(--nf-header-bg-custom) !important;
  border-top-color: var(--nf-header-accent-color) !important;
  color: var(--nf-header-color-custom) !important;
}

.header .dropdown-menu a {
  color: var(--nf-dropdown-link-color) !important;
}

/* Account / header dropdowns: keep readable text on white panel
   (header-bottom link color is light and would otherwise win) */
.header .dropdown-menu,
.header .header-bottom .dropdown-menu,
.header .header-top .dropdown-menu,
.header .header-layout__top .dropdown-menu {
  background-color: #ffffff;
  color: var(--nf-dropdown-link-color);
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

.header .dropdown-menu a,
.header .dropdown-menu .dropdown-item,
.header .header-bottom .dropdown-menu a,
.header .header-bottom .dropdown-menu .dropdown-item,
.header .header-top .dropdown-menu a,
.header .header-top .dropdown-menu .dropdown-item,
.header .header-layout__top .dropdown-menu a,
.header .header-layout__top .dropdown-menu .dropdown-item {
  color: var(--nf-dropdown-link-color) !important;
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.header .dropdown-menu a:hover,
.header .dropdown-menu .dropdown-item:hover,
.header .dropdown-menu a:focus,
.header .dropdown-menu .dropdown-item:focus,
.header .header-bottom .dropdown-menu a:hover,
.header .header-bottom .dropdown-menu .dropdown-item:hover {
  color: var(--nf-primary, #22405e) !important;
  background-color: rgba(0, 0, 0, 0.04);
}

.header .dropdown-menu i,
.header .header-bottom .dropdown-menu i,
.header .header-top .dropdown-menu i,
.header .header-block .dropdown-menu i {
  color: var(--nf-dropdown-link-color) !important;
  font-size: 1.1rem !important;
  line-height: 1;
}

.header i:hover {
  color: var(--nf-header-i-hover-color) !important;
}

.header .header-block i {
  color: var(--nf-header-i-hover-color) !important;
}

.header .header-block__badge {
  color: var(--nf-header-block-badge-color);
}

.header .header-block--active {
  color: var(--nf-header-block-active-color) !important;
}

.header .header-top {
  background-color: var(--nf-header-bg-top-custom) !important;
  --header-top-border-bottom: 1px solid var(--bs-gray-600);
  color: var(--nf-header-color-top-custom) !important;
  /* Utility bar: smaller than body so Contact / currency / language stay light */
  font-size: var(--nf-fs-xs);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.35;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

.header .header-top a,
.header .header-top .contact-link,
.header .header-top .form-select {
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: var(--nf-header-color-top-custom) !important;
}

.header .header-top i,
.header .header-top .material-icons {
  color: var(--nf-header-color-top-custom) !important;
}

.header .header-top .form-select {
  padding-top: 0.1rem;
  padding-bottom: 0.1rem;
  min-height: 0;
  background-size: 12px 10px;
  background-color: transparent;
}

/* Language / currency / search — compact utilities in any header zone */
.header .form-select.js-language-selector,
.header .form-select.js-currency-selector,
.header #language-selector,
.header #currency-selector {
  font-size: var(--nf-fs-xs);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.35;
  padding-top: 0.15rem;
  padding-bottom: 0.15rem;
  padding-left: 0.35rem;
  min-height: 0;
  height: auto;
  background-size: 12px 10px;
}

.header .search-widgets,
.header .search-widgets .js-search-input,
.header #search_widget .js-search-input {
  font-size: var(--nf-fs-sm);
  line-height: 1.35;
}

.header .search-widgets .js-search-input {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

.header .search-widgets .material-icons.search,
.header .search-widgets .material-icons.clear {
  font-size: 1.15rem;
}

.header .header-bottom {
  background-color: var(--nf-header-bg-bottom-custom) !important;
  color: var(--nf-header-color-bottom-custom) !important;
  --header-bottom-border-bottom: 1px solid transparent;
}

/* Logo fills its Bootstrap column (share of 12 via header-logo-columns) */
.header .header-bottom .logo .navbar-brand {
  display: block;
  width: 100%;
  max-width: none;
  max-height: max(50px, 10vh);
  padding: 0;
}

.header .header-bottom .logo .navbar-brand .logo,
.header .header-bottom .logo img.logo {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: inherit;
  object-fit: contain;
  object-position: left center;
}

.header .header-bottom,
.header .main-menu,
.header .container,
.header .row {
  overflow: visible;
}

.header .header-bottom a,
.header .header-bottom .header-block__action-btn,
.header .header-bottom .header-block__title {
  color: var(--nf-header-color-bottom-custom) !important;
}

.header a {
  color: var(--nf-header-color-custom) !important;
}

.header .header-block__action-btn,
.header .contact-link {
  color: var(--nf-header-color-custom);
}

/* Account / cart labels — slightly larger than utility bar, still below body size */
.header .header-block__action-btn {
  font-size: var(--nf-fs-sm);
  font-weight: 500;
  letter-spacing: 0.015em;
  line-height: 1.3;
  padding-block: 0.4rem;
}

.header .header-block__title {
  font-size: inherit;
  font-weight: inherit;
}

.header .header-block__icon {
  font-size: 1.25rem;
  line-height: 1;
}

/* Header layout presets (nfitemplateeditor) */
.header-layout__top {
  min-width: 0;
}

.header-layout__top > * {
  flex: 0 0 auto;
}

/* Keep utility widgets in one horizontal strip */
.header-layout__top .currency-selector__wrapper,
.header-layout__top .language-selector__wrapper,
.header-layout__top .contact-link,
.header-layout__top .header-block,
.header-layout__top #_desktop_user_info,
.header-layout__top #_desktop_cart,
.header-layout__top #_desktop_currency_selector,
.header-layout__top #_desktop_language_selector,
.header-layout__top #_desktop_contact_link {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}

.header.header-layout--compact .header-top {
  display: none !important;
}

/* Compact / actions-right: let main menu grow, actions stay end-aligned */
.header.header-layout--compact .header-layout__top .main-menu,
.header.header-layout--actions-right .header-layout__top .main-menu {
  flex: 1 1 auto;
  min-width: 0;
}

.header.header-layout--compact .header-layout__top,
.header.header-layout--actions-right .header-layout__top {
  gap: 0.35rem 0.75rem;
}

/*
 * ps_contactinfo on displayTop uses the footer widget (not nav.tpl).
 * Reset footer layout so "Store information" aligns with Cart / Sign in.
 */
.header-layout__top .block-contact.footer__block {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center;
  width: auto !important;
  max-width: none !important;
  margin: 0;
  padding: 0;
  float: none;
}

.header-layout__top .block-contact .footer__block__toggle,
.header-layout__top .block-contact .footer__block__content {
  display: none !important;
}

.header-layout__top .block-contact .footer__block__title {
  display: inline-flex !important;
  align-items: center;
  margin: 0;
  padding: 0.4rem 0.5rem;
  font-size: var(--nf-fs-sm);
  font-weight: 500;
  letter-spacing: 0.015em;
  line-height: 1.3;
}

/* Breadcrumb — horizontal inset via --nf-breadcrumb-pad-x (set in tokens / JS when bg ≠ body) */
.breadcrumb__wrapper {
  margin-block: 0.5rem !important;
  margin-inline: var(--nf-breadcrumb-pad-x, 0px) !important;
  padding-inline: var(--nf-breadcrumb-pad-x, 0px) !important;
  background-color: var(--nf-breadcrumb-bg) !important;
  border-top: 1px solid var(--nf-border-color) !important;
  border-bottom: 1px solid var(--nf-border-color) !important;
}

/* Home slider ratio */
@media (min-width: 768px) {
  .ratio-homeSlider {
    --bs-aspect-ratio: calc(9 / 30 * 100%) !important;
  }
}

/* Footer */
.footer {
  --footer-background-color: var(--nf-footer-background-color) !important;
  --footer-text-color: var(--nf-footer-text-color) !important;
  border: 1px solid var(--nf-footer-border-color);
}

.footer a,
.footer .footer-links,
.footer .footer-columns {
  color: inherit !important;
}

.copyright a {
  color: var(--nf-copyright-link-color) !important;
}

.footer,
.footer .footer__block__title,
.footer a,
.footer p,
.footer .footer-links,
.footer .footer-columns,
.footer .block-contact {
  font-size: var(--nf-fs-sm);
  line-height: 1.45;
}

.footer .footer__block__title {
  font-weight: 600;
  font-size: var(--nf-fs-sm);
}

/* Newsletter area (avoid remapping Bootstrap grays) */
#blockEmailSubscription_displayFooterBefore,
.block_newsletter {
  background-color: var(--nf-newsletter-bg-color);
}

.email-subscription,
.email-subscription .form-control,
.email-subscription .btn,
.email-subscription__content__infos,
.email-subscription__content__infos p {
  font-size: var(--nf-fs-sm);
  line-height: 1.45;
}

/* Label: parent theme uses 1.25rem — override with matching specificity */
.email-subscription .email-subscription__label,
.email-subscription p.email-subscription__label {
  font-size: var(--nf-fs-sm) !important;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.45;
}

.email-subscription .form-control {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.email-subscription .btn {
  font-weight: 500;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

/* Pagination */
.pagination,
.pagination .page-link,
.pagination--custom-number,
.pagination-container {
  font-size: var(--nf-fs-sm);
  line-height: 1.35;
}

.pagination .page-link {
  padding: 0.35rem 0.65rem;
}

.pagination .page-link i {
  font-size: 1.1rem;
}

.total-products,
.total-products p,
.products-selection .total-products p {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

/* Category tree & sidebar / content panels */
.category-tree,
.left-block,
#left-column .left-block,
#left-column .bg-light,
#search_filters,
.search-filters,
.search-filters-modules,
.block-reassurance,
#left-column .card,
#right-column .card {
  background-color: var(--nf-panel-background-color) !important;
}

.category-tree {
  border-color: var(--nf-border-color) !important;
  border-width: 2px !important;
  border-radius: 6px !important;
  border-style: solid !important;
  padding: 0.75rem;
}

.category-tree__item a {
  color: var(--nf-category-tree-link-color);
  font-size: var(--nf-fs-sm);
  font-weight: 400 !important;
  line-height: 1.4;
}

.category-tree__item a:hover {
  /* Follow brand primary; token override still wins when set */
  color: var(--nf-category-tree-link-hover-color, var(--nf-primary));
  text-decoration: underline;
}

.ps_categorytree {
  --indent-step: 0.75rem;
}

.ps_categorytree li[data-depth="0"] > .category-tree__item__header { padding-inline-start: calc(0 * var(--indent-step)); }
.ps_categorytree li[data-depth="1"] > .category-tree__item__header { padding-inline-start: calc(1 * var(--indent-step)); }
.ps_categorytree li[data-depth="2"] > .category-tree__item__header { padding-inline-start: calc(2 * var(--indent-step)); }
.ps_categorytree li[data-depth="3"] > .category-tree__item__header { padding-inline-start: calc(3 * var(--indent-step)); }
.ps_categorytree li[data-depth="4"] > .category-tree__item__header { padding-inline-start: calc(4 * var(--indent-step)); }
.ps_categorytree li[data-depth="5"] > .category-tree__item__header { padding-inline-start: calc(5 * var(--indent-step)); }
.ps_categorytree li[data-depth="6"] > .category-tree__item__header { padding-inline-start: calc(6 * var(--indent-step)); }

.ps_categorytree li:last-child {
  padding-bottom: 0.6rem;
}

.ps_categorytree .category-tree__item__link.is-current,
.ps_categorytree li.is-current > .category-tree__item__header .category-tree__item__link {
  font-weight: 700 !important;
}

/* Homepage: breadcrumb is disabled — keep space under header (displayTop) */
body.page-index #left-column,
body#index #left-column {
  padding-top: 1.5rem;
}

@media (max-width: 767px) {
  #left-column .category-tree {
    display: none !important;
  }

  body.page-index #left-column,
  body#index #left-column {
    padding-top: 0;
  }
}

.bg-light {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
}

/* Main menu layout */
.header-top-right {
  min-width: 0;
}

.header-center .main-menu,
.main-menu.col,
.main-menu.col-xl {
  position: relative;
  overflow: visible;
}

.js-menu-desktop .main-menu__tree,
.js-menu-desktop .main-menu__tree__item {
  position: static;
}

.main-menu .js-menu-desktop .main-menu__tree__item > .menu-container {
  position: absolute;
  top: 100%;
  max-width: 100%;
  margin-top: 0;
  display: none;
  z-index: 1050;
}

.js-menu-desktop .main-menu__tree__item:hover > .menu-container,
.js-menu-desktop .main-menu__tree__item.is-open > .menu-container,
.js-menu-desktop .menu-container:hover {
  display: block;
}

.main-menu .js-menu-desktop .menu-container::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: var(--bridge-height, 16px);
  top: calc(-1 * var(--bridge-height, 16px));
  pointer-events: auto;
}

.header,
.header-bottom,
.main-menu {
  overflow: visible;
}

.header-center,
.main-menu.col {
  min-width: 0;
}

#top-menu {
  display: flex;
  flex-wrap: wrap;
  max-width: 100%;
}

.main-menu {
  background-color: var(--nf-header-bg-bottom-custom) !important;
  color: var(--nf-header-color-bottom-custom);
}

.main-menu__tree {
  margin-top: 0.1rem;
  margin-bottom: 0.1rem;
}

.main-menu__tree__link {
  padding-top: 0.3rem !important;
  padding-bottom: 0.3rem !important;
  font-size: var(--nf-fs-md);
  line-height: 2.1;
}

.main-menu__tree__link [data-depth="0"] {
  color: var(--nf-header-color-bottom-custom) !important;
  font-weight: 600 !important;
}

.menu-container {
  border: 1px solid var(--nf-border-color);
  border-radius: 6px;
  padding: 0.5rem;
  /* White panel so submenu links (--nf-menu-submenu-link-color) stay readable */
  background-color: #ffffff;
  color: var(--nf-menu-submenu-link-color);
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

.menu-container a[data-depth="0"],
.menu-container a[data-depth="1"],
.menu-container a[data-depth="2"],
.menu-container a[data-depth="3"],
.menu-container a[data-depth="4"] {
  color: var(--nf-menu-submenu-link-color) !important;
  font-size: var(--nf-fs-sm);
  font-weight: 500 !important;
  line-height: 1.45;
}

.menu-container a:hover {
  color: var(--nf-primary, #22405e) !important;
}

/* Product listing */
.products-selection {
  background-color: var(--nf-products-selection-bg-color);
  padding: 6px;
  border-radius: 6px;
}

.products-sort-order {
  background-color: var(--nf-product-background-color);
  border: none;
}

.products-selection .sort-by,
.products-selection .sort-by span,
.products-sort-order .select-title,
.products-sort-order .dropdown-item {
  font-size: var(--nf-fs-xs);
  font-weight: 400;
  letter-spacing: 0.015em;
  line-height: 1.35;
}

.products-sort-order .select-title {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.products-selection .sort-by .material-icons,
.products-sort-order .select-title .material-icons {
  font-size: 1.1rem;
  line-height: 1;
}

.thumbnail-container {
  padding: 1rem;
}

/* Product gallery: isolate from homepage .carousel slider height rules */
.page-product .product__images .product__carousel.carousel,
.page-product .product__images .carousel {
  --slider-img-height: auto;
  position: relative;
}

.page-product .product__images .carousel .carousel-inner,
.page-product .product__images .carousel .carousel-item {
  height: auto;
}

.page-product .product__images .carousel .carousel-item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Thumbnails strip (Hummingbird-style + legacy class aliases) */
.page-product .product__thumbnails,
.page-product .thumbnails__container {
  display: block;
  margin-top: 1rem;
}

.page-product .product__thumbnails-list,
.page-product .thumbnails__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 768px) {
  .page-product .product__thumbnails-list,
  .page-product .thumbnails__list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
  }
}

.page-product .product__thumbnail-item {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-product .product__thumbnail,
.page-product .thumbnails__list .thumbnail {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 2px solid transparent;
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
}

.page-product .product__thumbnail.active,
.page-product .thumbnails__list .thumbnail.active {
  border-color: var(--nf-primary, var(--bs-primary));
}

.page-product .product__thumbnail-image,
.page-product .product__thumbnail img,
.page-product .thumbnails__list .thumbnail img {
  display: block;
  width: 100%;
  height: auto;
}

.product__col {
  border-left: 1px solid var(--nf-border-color) !important;
}

/* Buy box / description box: surface token + tpl padding (p-3/p-md-4) */
.page-product .product__buybox,
.page-product .product__infos-box {
  background-color: var(--nf-product-background-color);
  border: 1px solid var(--nf-border-color);
  border-radius: 6px;
}

.products.row {
  align-items: stretch;
}

.products.row > .product-miniature {
  display: flex;
  flex-direction: column;
  align-self: stretch;
}

.products .card {
  border-color: var(--nf-border-color);
  border-width: 1px;
  border-style: solid;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  align-items: stretch;
}

.products .product-miniature {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.products .product-miniature__image-container,
.products .thumbnail-container {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  flex: 0 0 auto;
}

.products .product-miniature__image-container img,
.products .thumbnail-container img,
.products .product-miniature__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.products .product-miniature__infos,
.products .product-miniature .card-body {
  position: relative;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  flex: 1 1 auto;
  text-align: left;
  width: 100%;
  /* Room for absolute "Vorschau" / quickview bar so the title never covers it */
  padding-top: 2.75rem;
  overflow: visible;
}

.products .product-miniature__quickview {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  margin: 0;
  padding: 0.35rem 0.5rem;
  background-color: var(--nf-panel-background-color, #fff);
  box-sizing: border-box;
}

.products .product-miniature:hover .product-miniature__quickview {
  transform: translateY(-100%);
  z-index: 5;
}

.products .product-miniature__quickview_button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.25rem;
  padding: 0.35rem 0.5rem;
  font-size: var(--nf-fs-sm, 0.875rem);
  line-height: 1.3;
}

.products .product-miniature__infos__top {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0.35rem 0.5rem 0.25rem;
  background-color: var(--nf-panel-background-color, #fff);
  box-sizing: border-box;
}

.products .product-miniature__title {
  color: var(--nf-product-miniature-title);
  margin: 0;
  padding-top: 0;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  width: 100%;
  box-sizing: border-box;
}

.products .product-miniature__product_reference {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  align-content: flex-start;
  gap: 0.25rem 0.5rem;
  margin-top: 0.5rem;
  padding: 0.35rem 0.5rem;
  width: 100%;
  box-sizing: border-box;
}

.products .product-miniature .btn.btn-outline-primary {
  font-size: var(--nf-fs-xs);
  font-weight: 500;
  letter-spacing: 0.015em;
  line-height: 1.35;
  padding: 0.35rem 0.75rem;
}

.products .product-miniature__product_reference,
.products .product-miniature__product_reference_label,
.products .product-miniature__product_reference_value,
.products .product-miniature__product_reference__value,
.products .product-miniature__description_short,
.products .product-miniature__description_short p,
.products .product-miniature .product-price-and-shipping {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

.products .product-miniature__product_reference_label {
  padding: 0;
  font-weight: 600;
}

.products .product-miniature__product_reference_value,
.products .product-miniature__product_reference__value,
.products .product-miniature__description_short {
  padding: 0;
}

.products .product-miniature__description_short {
  margin-top: 0.35rem;
  padding: 0.35rem 0.5rem 0.75rem;
  width: 100%;
  align-self: flex-start;
  text-align: left;
}

.products .product-miniature__infos__bottom {
  margin-top: auto;
  width: 100%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.products .product-miniature__prices {
  width: 100%;
  min-height: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  box-sizing: border-box;
}

.products .product-miniature__price--empty {
  visibility: hidden;
}

/* Reserve space for qty + cart OR "See details" so mixed rows stay even */
.products .product-miniature__actions {
  width: 100%;
  margin-top: 0.75rem;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.products .product-miniature__cart-form {
  width: 100%;
  margin: 0;
}

.products .product-miniature__details-btn {
  width: 100%;
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.products .product__description-short {
  border-top-color: var(--nf-border-color) !important;
  border-top-style: solid !important;
  border-top-width: 1px !important;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}

/* Product page tabs block */
.page-product .product__infos-box {
  margin-top: 1.5rem;
}

.page-product .product__infos .accordion-body,
.page-product .product__description.accordion-body {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0.5rem !important;
}

.page-product .product__description-short {
  margin-bottom: 1.5rem;
  padding-bottom: 0.25rem;
}

/* Modules */
.block-reassurance {
  border-width: 2px;
  border-style: dashed;
  border-color: var(--nf-border-color);
  border-radius: 6px;
  margin-top: 1rem;
  padding: 0.8rem;
}

/* Mobile */
#menu-mobile {
  background-color: var(--nf-header-bg-bottom-custom);
  color: var(--nf-header-color-bottom-custom);
}

#menu-mobile a,
#menu-mobile .main-menu__tree__link {
  color: var(--nf-header-color-bottom-custom) !important;
  font-size: var(--nf-fs-md);
}

/*
 * Cross-page typography & color harmony
 * Covers listing, product, cart, checkout, account, CMS, facets
 */

/* Page titles */
.page-header h1,
.page-content h1,
#js-product-list-header,
.page-product .product__name,
.page-product h1.h1 {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--nf-body-color, #000);
}

.section-title,
.h2.section-title {
  font-size: 1.25rem !important;
  font-weight: 600;
  line-height: 1.35;
  color: var(--nf-body-color, #000);
}

/* Breadcrumb colors */
.breadcrumb a,
.breadcrumb__wrapper a {
  color: var(--nf-category-tree-link-color, #333);
}

.breadcrumb a:hover {
  color: var(--nf-primary, #22405e);
}

.breadcrumb .breadcrumb-item.active,
.breadcrumb [aria-current="page"] {
  color: var(--nf-body-color, #000);
  font-weight: 500;
}

/* Left column / facets / brands */
.left-block__title,
.left-block__title__link,
.search-filters-title,
.search-filters-modules-title,
#search_filters .facet .facet-title,
#search_filters .js-search-filters-clear-all,
.facet .facet-title {
  font-size: var(--nf-fs-sm);
  font-weight: 600;
  line-height: 1.4;
  color: var(--nf-body-color, #000);
}

.left-block a,
.search-filters-link,
.search-filters-label,
.facet .facet-label,
.facet .facet-label a,
.facet .magnitude {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
  color: var(--nf-category-tree-link-color, #333);
  font-weight: 400;
}

.facet .facet-label a:hover,
.left-block a:hover {
  color: var(--nf-primary, #22405e);
}

/* Category / listing meta */
.category-cover + .block-category,
.block-category .category-description,
.block-category p,
.active-filter,
.active-filter a {
  font-size: var(--nf-fs-sm);
  line-height: 1.45;
  color: var(--nf-body-color, #000);
}

.products-sort-order .dropdown-menu {
  background-color: #ffffff;
}

.products-sort-order .dropdown-item {
  color: var(--nf-dropdown-link-color, #1d1d1d) !important;
}

.products-sort-order .dropdown-item:hover,
.products-sort-order .dropdown-item:focus {
  color: var(--nf-primary, #22405e) !important;
  background-color: rgba(0, 0, 0, 0.04);
}

/* Product miniature price / flags */
.products .product-miniature .price,
.products .product-miniature .product-price-and-shipping .price,
.products .product-miniature__pricing {
  font-size: var(--nf-fs-sm);
  font-weight: 600;
  color: var(--nf-body-color, #000);
}

.products .product-miniature__regular-price,
.products .product-miniature .regular-price {
  font-size: var(--nf-fs-xs);
  font-weight: 400;
  color: #6c757d;
}

.products .product-flags .product-flag {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* Product detail */
.page-product .product__tax-info,
.page-product .product__unit-price,
.page-product .product__discount,
.page-product .product__reference,
.page-product .product-reference,
.page-product .product-quantities,
.page-product .product-minimal-quantity,
.page-product .product-availability,
.page-product .product-variants .control-label,
.page-product .product-variants label {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
  color: #495057;
}

.page-product .product__prices {
  font-size: 1.15rem;
  color: var(--nf-body-color, #000);
}

.page-product .product__current-price {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--nf-body-color, #000);
}

.page-product .product__infos .accordion-button,
.page-product .info__title .accordion-button {
  font-size: 1.05rem !important;
  font-weight: 600;
  color: var(--nf-body-color, #000);
}

.page-product .product__description-short,
.page-product .product__description-short p,
.page-product .product__description,
.page-product .product__description p,
.page-product .accordion-body {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--nf-body-color, #000);
}

.page-product .product-add-to-cart .btn,
.page-product .add-to-cart {
  font-size: var(--nf-fs-sm);
  font-weight: 500;
}

/* Cart & checkout */
.cart-overview,
.cart-summary,
.cart-detailed-totals,
.checkout-step,
.checkout-step__title,
.cart-summary__label,
.cart-summary__value,
.cart-summary__line,
.product-line,
.product-line-grid,
.product-line__product,
.cart-item {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
  color: var(--nf-body-color, #000);
}

.cart-summary .card-header,
.cart-summary__container .card-header,
.checkout-step .step-title,
.checkout-step h1,
.cart-grid h1 {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--nf-body-color, #000);
}

.cart-summary .product-name a,
.product-line-grid-body .label a,
.cart-item .product-line-info a {
  font-size: var(--nf-fs-sm);
  font-weight: 600;
  color: var(--nf-product-miniature-title, var(--nf-primary));
}

.cart-total,
.cart-summary__totals .value,
.cart-detailed-totals .value {
  font-weight: 600;
  color: var(--nf-body-color, #000);
}

.cart-empty,
.no-items,
#content-hook_order_confirmation {
  font-size: var(--nf-fs-sm);
  color: var(--nf-body-color, #000);
}

/* Customer account / auth / forms */
.page-customer-account .page-header h1,
.page-authentication .page-header h1,
.page-identity h1,
.page-addresses h1 {
  font-size: 1.4rem;
}

.customer-link__link span,
.customer-link a span {
  font-size: var(--nf-fs-sm) !important;
  line-height: 1.35;
}

.customer-link__link i,
.customer-link a i {
  font-size: 1.5rem !important;
}

.login-form,
.register-form,
.forgot-password,
.contact-form,
.page-customer-account form,
.page-authentication form {
  font-size: var(--nf-fs-sm);
  color: var(--nf-body-color, #000);
}

.form-control,
.form-select,
.form-label,
label.form-control-label,
.custom-checkbox label,
.custom-radio label {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}

.form-control,
.form-select {
  color: var(--nf-body-color, #000);
  background-color: #ffffff;
}

.form-control::placeholder {
  color: #6c757d;
  opacity: 1;
}

.form-text,
.form-control-comment,
.help-block,
.register-form .form-control-comment {
  font-size: var(--nf-fs-xs);
  color: #6c757d;
}

/* CMS / content pages */
.page-cms #content,
.page-cms .page-content,
.page-cms .cms-box,
.page-stores .page-content {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--nf-body-color, #000);
}

.page-cms h2,
.page-stores h2 {
  font-size: 1.2rem;
  font-weight: 600;
}

.page-cms h3 {
  font-size: 1.05rem;
  font-weight: 600;
}

/* Contact page */
.page-contact .contact-rich,
.page-contact .contact-form,
.contact-rich h4,
.contact-rich .block {
  font-size: var(--nf-fs-sm);
  line-height: 1.45;
  color: var(--nf-body-color, #000);
}

.contact-rich h4 {
  font-size: var(--nf-fs-sm);
  font-weight: 600;
}

/* Block reassurance / secondary modules */
.block-reassurance,
.block-reassurance span,
.block-reassurance p,
.block-reassurance li {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
  color: var(--nf-body-color, #000);
}

/* Homepage slider captions — keep hierarchy below hero brand */
.carousel .display-1,
.carousel h2.display-1 {
  font-size: clamp(1.35rem, 3vw, 2rem) !important;
  font-weight: 700;
  line-height: 1.2;
}

.carousel .caption-description,
.carousel p {
  font-size: var(--nf-fs-sm);
  line-height: 1.45;
}

/* Buttons globally (FO) — align with control scale */
.btn {
  font-size: var(--nf-fs-sm);
  font-weight: 500;
  line-height: 1.35;
}

.btn-sm {
  font-size: var(--nf-fs-xs);
}

/* Alert / flash messages */
.alert {
  font-size: var(--nf-fs-sm);
  line-height: 1.4;
}
