/*
 * Nomatic Fresh storefront visual layer.
 *
 * Presentation-only rules for the public catalogue, product, account and
 * address pages. Checkout, cart, confirmation, order detail, Track-POD and
 * Odoo-connected views are intentionally not targeted here.
 */

:root {
  --nf-store-ink: #10233a;
  --nf-store-muted: #62758a;
  --nf-store-blue: #078fe2;
  --nf-store-blue-soft: #eaf6ff;
  --nf-store-green: #238b4c;
  --nf-store-green-soft: #edf9f1;
  --nf-store-line: #d9e8f0;
  --nf-store-surface: #ffffff;
  --nf-store-radius: 8px;
}

/* Shared interaction feedback without replacing the existing links or JS. */
body#index a:focus-visible,
body#category a:focus-visible,
body.page-category a:focus-visible,
body#search a:focus-visible,
body#prices-drop a:focus-visible,
body#new-products a:focus-visible,
body#best-sales a:focus-visible,
body#product a:focus-visible,
#my-account a:focus-visible,
#addresses a:focus-visible,
#address a:focus-visible,
#identity a:focus-visible,
#my-account button:focus-visible,
#addresses button:focus-visible,
#address button:focus-visible,
#identity button:focus-visible {
  outline: 3px solid rgba(7, 143, 226, .34) !important;
  outline-offset: 3px !important;
}

@media (prefers-reduced-motion: no-preference) {
  body#index .nf-tile-card,
  body#category .category-list.category-list-flex .category-container,
  body.page-category .category-list.category-list-flex .category-container,
  body#category .nomatic-list-product,
  body.page-category .nomatic-list-product,
  body#search .nomatic-list-product,
  body#prices-drop .nomatic-list-product,
  body#new-products .nomatic-list-product,
  body#best-sales .nomatic-list-product,
  #my-account .account-modern-links .row > a,
  #my-account .nf-account-language-card,
  #addresses .nomatic-addresses-card,
  #address .nomatic-addresses-card {
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease !important;
  }
}

/* Home: real banners retain their source images, with one stable format. */
body#index.page-index .nf-mobile-home {
  max-width: 1360px !important;
}

body#index.page-index .nf-hero-carousel,
body#index.page-index .nf-hero-carousel .nf-hero-slide,
body#index.page-index .nf-hero-carousel .nf-hero-slide img {
  border-radius: var(--nf-store-radius) !important;
}

body#index.page-index .nf-hero-carousel {
  border-color: var(--nf-store-line) !important;
  box-shadow: 0 12px 28px rgba(27, 69, 97, .10) !important;
}

body#index.page-index .nf-linked-tiles .nf-tile-card {
  border-radius: var(--nf-store-radius) !important;
}

body#index.page-index .nf-linked-tiles .nf-tile-card:active {
  transform: scale(.985) !important;
}

@media (max-width: 1023.98px) {
  body#index.page-index .nf-mobile-home {
    width: 100% !important;
    padding-right: 4px !important;
    padding-left: 4px !important;
  }

  body#index.page-index .nf-home-header {
    padding-top: max(8px, env(safe-area-inset-top)) !important;
  }

  body#index.page-index .nf-hero-carousel {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body#index.page-index .nf-hero-carousel .nf-hero-slide,
  body#index.page-index .nf-hero-carousel .nf-school-hero,
  body#index.page-index .nf-hero-carousel .nf-hours-hero,
  body#index.page-index .nf-hero-carousel .nf-premium-hero {
    min-height: 228px !important;
    height: 228px !important;
    overflow: hidden !important;
  }

  body#index.page-index .nf-hero-carousel .nf-hero-slide img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}

@media (max-width: 390px) {
  body#index.page-index .nf-hero-carousel .nf-hero-slide,
  body#index.page-index .nf-hero-carousel .nf-school-hero,
  body#index.page-index .nf-hero-carousel .nf-hours-hero,
  body#index.page-index .nf-hero-carousel .nf-premium-hero {
    min-height: 208px !important;
    height: 208px !important;
  }
}

@media (min-width: 1024px) {
  body#index.page-index .nf-mobile-home {
    padding-right: 22px !important;
    padding-left: 22px !important;
  }

  body#index.page-index .nf-hero-carousel,
  body#index.page-index .nf-linked-tiles,
  body#index.page-index .nf-for-you,
  body#index.page-index .nf-category-showcase {
    width: 100% !important;
  }
}

/* Category imagery is from the existing Nomatic category asset collection. */
body#category .category-list.category-list-flex .category-container,
body.page-category .category-list.category-list-flex .category-container {
  overflow: hidden !important;
  border: 1px solid var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: var(--nf-store-surface) !important;
  box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
}

body#category .category-list.category-list-flex .category-block > a,
body.page-category .category-list.category-list-flex .category-block > a {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

body#category .category-list.category-list-flex .category-image,
body.page-category .category-list.category-list-flex .category-image {
  background: var(--nf-store-blue-soft) !important;
}

body#category .category-list.category-list-flex .category-name,
body.page-category .category-list.category-list-flex .category-name {
  color: var(--nf-store-ink) !important;
  font-weight: 750 !important;
}

@media (hover: hover) {
  body#category .category-list.category-list-flex .category-container:hover,
  body.page-category .category-list.category-list-flex .category-container:hover {
    border-color: #99cff1 !important;
    box-shadow: 0 10px 24px rgba(27, 69, 97, .10) !important;
    transform: translateY(-2px) !important;
  }
}

body#category .category-list.category-list-flex .category-container:active,
body.page-category .category-list.category-list-flex .category-container:active {
  transform: scale(.985) !important;
}

/* Filters remain the native PrestaShop filters, with a more legible grouping. */
body#category #search_filters,
body.page-category #search_filters,
body#search #search_filters,
body#prices-drop #search_filters,
body#new-products #search_filters,
body#best-sales #search_filters {
  border: 1px solid var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: var(--nf-store-surface) !important;
  box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
}

body#category #search_filters .facet,
body.page-category #search_filters .facet,
body#search #search_filters .facet,
body#prices-drop #search_filters .facet,
body#new-products #search_filters .facet,
body#best-sales #search_filters .facet {
  border-color: #e8f0f4 !important;
}

body#category #search_filters .facet-title,
body.page-category #search_filters .facet-title,
body#search #search_filters .facet-title,
body#prices-drop #search_filters .facet-title,
body#new-products #search_filters .facet-title,
body#best-sales #search_filters .facet-title {
  color: var(--nf-store-ink) !important;
  font-weight: 750 !important;
}

body#category #search_filters .custom-checkbox-wrapper.active .search-link,
body.page-category #search_filters .custom-checkbox-wrapper.active .search-link,
body#search #search_filters .custom-checkbox-wrapper.active .search-link,
body#prices-drop #search_filters .custom-checkbox-wrapper.active .search-link,
body#new-products #search_filters .custom-checkbox-wrapper.active .search-link,
body#best-sales #search_filters .custom-checkbox-wrapper.active .search-link {
  color: var(--nf-store-blue) !important;
  font-weight: 700 !important;
}

/* Catalogue/search list: stock is the visibility rule, so the redundant line is hidden. */
body#category .nomatic-list-product,
body.page-category .nomatic-list-product,
body#search .nomatic-list-product,
body#prices-drop .nomatic-list-product,
body#new-products .nomatic-list-product,
body#best-sales .nomatic-list-product {
  overflow: hidden !important;
  border-color: var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: var(--nf-store-surface) !important;
  box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
}

body#category .nomatic-list-product .nomatic-list-product__availability,
body.page-category .nomatic-list-product .nomatic-list-product__availability,
body#search .nomatic-list-product .nomatic-list-product__availability,
body#prices-drop .nomatic-list-product .nomatic-list-product__availability,
body#new-products .nomatic-list-product .nomatic-list-product__availability,
body#best-sales .nomatic-list-product .nomatic-list-product__availability {
  display: none !important;
}

body#category .nomatic-list-product .nomatic-list-product__title,
body.page-category .nomatic-list-product .nomatic-list-product__title,
body#search .nomatic-list-product .nomatic-list-product__title,
body#prices-drop .nomatic-list-product .nomatic-list-product__title,
body#new-products .nomatic-list-product .nomatic-list-product__title,
body#best-sales .nomatic-list-product .nomatic-list-product__title {
  color: var(--nf-store-ink) !important;
}

body#category .nomatic-list-product .nomatic-list-product__add,
body.page-category .nomatic-list-product .nomatic-list-product__add,
body#search .nomatic-list-product .nomatic-list-product__add,
body#prices-drop .nomatic-list-product .nomatic-list-product__add,
body#new-products .nomatic-list-product .nomatic-list-product__add,
body#best-sales .nomatic-list-product .nomatic-list-product__add {
  border-radius: var(--nf-store-radius) !important;
}

@media (hover: hover) {
  body#category .nomatic-list-product:hover,
  body.page-category .nomatic-list-product:hover,
  body#search .nomatic-list-product:hover,
  body#prices-drop .nomatic-list-product:hover,
  body#new-products .nomatic-list-product:hover,
  body#best-sales .nomatic-list-product:hover {
    border-color: #9fd5f4 !important;
    box-shadow: 0 10px 24px rgba(27, 69, 97, .10) !important;
  }
}

/* Product detail: details are a distinct, spaced panel before recommendations. */
body#product #product-details,
body#product .product-details,
body#product .product-additional-info {
  border: 1px solid var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: var(--nf-store-surface) !important;
}

body#product #product-details,
body#product .product-details {
  margin-top: 20px !important;
  padding: 18px !important;
}

body#product .product-accessories,
body#product .nf-product-pack,
body#product .product-discounts {
  margin-top: 24px !important;
}

body#product .product-discounts {
  border: 1px solid #bfe5cb !important;
  border-radius: var(--nf-store-radius) !important;
  background: var(--nf-store-green-soft) !important;
  overflow: hidden !important;
}

/* My Account: the existing links already contain destinations; make the full tile tactile. */
#my-account .account-modern-links .row > a {
  position: relative;
  border-radius: var(--nf-store-radius) !important;
}

#my-account .account-modern-links .row > a:active,
#my-account .nf-account-language-card:active {
  transform: scale(.985) !important;
}

#my-account .account-modern-links .link-item {
  border-color: var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
}

#my-account .nf-account-language-card {
  position: relative !important;
  border-radius: var(--nf-store-radius) !important;
  cursor: pointer !important;
}

/* The proven language chooser script listens to this button. Enlarging its hit
 * area means the whole card opens the existing country/language list. */
#my-account .nf-account-language-card-head {
  pointer-events: none !important;
}

#my-account .nf-country-language-open {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
}

#my-account .nf-country-language-open::after {
  content: "›" !important;
  position: absolute !important;
  top: 50% !important;
  right: 20px !important;
  transform: translateY(-53%) !important;
  color: var(--nf-store-blue) !important;
  font-size: 34px !important;
  font-weight: 300 !important;
  line-height: 1 !important;
}

/* Address cards keep their native edit/delete controls while receiving the app-like press response. */
#addresses .nomatic-addresses-card,
#address .nomatic-addresses-card {
  border-radius: var(--nf-store-radius) !important;
  border-color: var(--nf-store-line) !important;
}

#addresses .nomatic-addresses-card:active,
#address .nomatic-addresses-card:active {
  transform: scale(.985) !important;
  box-shadow: inset 0 1px 3px rgba(16, 35, 58, .11) !important;
}

@media (max-width: 700px) {
  body#category #search_filters,
  body.page-category #search_filters,
  body#search #search_filters,
  body#prices-drop #search_filters,
  body#new-products #search_filters,
  body#best-sales #search_filters {
    border-radius: var(--nf-store-radius) !important;
  }

  body#product #product-details,
  body#product .product-details {
    margin-top: 16px !important;
    padding: 14px !important;
  }
}

/* Public browser navigation follows the app's stable bottom bar. The delivery,
 * payment, confirmation and order pages are deliberately not selected here. */
@media (max-width: 767px) {
  body#index,
  body#category,
  body.page-category,
  body#search,
  body#prices-drop,
  body#new-products,
  body#best-sales,
  body#product,
  body#my-account,
  body#addresses,
  body#address,
  body#identity {
    padding-bottom: max(88px, calc(72px + env(safe-area-inset-bottom))) !important;
  }

  /* The navigation is injected by the theme on the public pages. Anchor it
   * to the viewport, never to a scrolling home module. */
  body#index .nf-global-bottom-nav,
  body#category .nf-global-bottom-nav,
  body.page-category .nf-global-bottom-nav,
  body#search .nf-global-bottom-nav,
  body#prices-drop .nf-global-bottom-nav,
  body#new-products .nf-global-bottom-nav,
  body#best-sales .nf-global-bottom-nav,
  body#product .nf-global-bottom-nav,
  body#my-account .nf-global-bottom-nav,
  body#addresses .nf-global-bottom-nav,
  body#address .nf-global-bottom-nav,
  body#identity .nf-global-bottom-nav {
    position: fixed !important;
    top: auto !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    display: grid !important;
    width: 100vw !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 2147483000 !important;
    min-height: 72px !important;
    height: calc(72px + env(safe-area-inset-bottom)) !important;
    padding: 4px 8px max(7px, env(safe-area-inset-bottom)) !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    border-top-color: var(--nf-store-line) !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 -10px 26px rgba(27, 69, 97, .10) !important;
  }

  body#category .nf-global-bottom-nav a,
  body.page-category .nf-global-bottom-nav a,
  body#search .nf-global-bottom-nav a,
  body#prices-drop .nf-global-bottom-nav a,
  body#new-products .nf-global-bottom-nav a,
  body#best-sales .nf-global-bottom-nav a,
  body#product .nf-global-bottom-nav a,
  body#my-account .nf-global-bottom-nav a,
  body#addresses .nf-global-bottom-nav a,
  body#address .nf-global-bottom-nav a,
  body#identity .nf-global-bottom-nav a {
    min-width: 0 !important;
    min-height: 60px !important;
    border-radius: var(--nf-store-radius) !important;
    font-size: 11px !important;
    font-weight: 750 !important;
  }

  body#category .nf-global-bottom-nav i,
  body.page-category .nf-global-bottom-nav i,
  body#search .nf-global-bottom-nav i,
  body#prices-drop .nf-global-bottom-nav i,
  body#new-products .nf-global-bottom-nav i,
  body#best-sales .nf-global-bottom-nav i,
  body#product .nf-global-bottom-nav i,
  body#my-account .nf-global-bottom-nav i,
  body#addresses .nf-global-bottom-nav i,
  body#address .nf-global-bottom-nav i,
  body#identity .nf-global-bottom-nav i {
    font-size: 25px !important;
  }
}

/* Final Nomatic storefront shell. The active theme's header is rendered by
 * the nf-site components rather than PrestaShop's stock header. Keeping this
 * here (last in the visual sheet) lets the public storefront use the same
 * calm, app-like hierarchy without replacing markup or JavaScript. */
body#index .nf-site-header,
body#category .nf-site-header,
body.page-category .nf-site-header,
body#search .nf-site-header,
body#prices-drop .nf-site-header,
body#new-products .nf-site-header,
body#best-sales .nf-site-header,
body#product .nf-site-header,
#my-account .nf-site-header,
#addresses .nf-site-header,
#address .nf-site-header,
#identity .nf-site-header {
  border-bottom: 1px solid var(--nf-store-line) !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(16, 35, 58, .06) !important;
}

body#index .nf-site-shell,
body#category .nf-site-shell,
body.page-category .nf-site-shell,
body#search .nf-site-shell,
body#prices-drop .nf-site-shell,
body#new-products .nf-site-shell,
body#best-sales .nf-site-shell,
body#product .nf-site-shell,
#my-account .nf-site-shell,
#addresses .nf-site-shell,
#address .nf-site-shell,
#identity .nf-site-shell {
  width: min(1360px, calc(100vw - 40px)) !important;
  padding-top: 18px !important;
}

body#index .nf-site-location,
body#category .nf-site-location,
body.page-category .nf-site-location,
body#search .nf-site-location,
body#prices-drop .nf-site-location,
body#new-products .nf-site-location,
body#best-sales .nf-site-location,
body#product .nf-site-location,
#my-account .nf-site-location,
#addresses .nf-site-location,
#address .nf-site-location,
#identity .nf-site-location {
  min-height: 52px !important;
  padding: 7px 10px !important;
  border: 1px solid #cae7f8 !important;
  border-radius: var(--nf-store-radius) !important;
  background: #f3faff !important;
}

body#index .nf-site-location > .material-icons:first-child,
body#category .nf-site-location > .material-icons:first-child,
body.page-category .nf-site-location > .material-icons:first-child,
body#search .nf-site-location > .material-icons:first-child,
body#prices-drop .nf-site-location > .material-icons:first-child,
body#new-products .nf-site-location > .material-icons:first-child,
body#best-sales .nf-site-location > .material-icons:first-child,
body#product .nf-site-location > .material-icons:first-child,
#my-account .nf-site-location > .material-icons:first-child,
#addresses .nf-site-location > .material-icons:first-child,
#address .nf-site-location > .material-icons:first-child,
#identity .nf-site-location > .material-icons:first-child {
  background: var(--nf-store-blue) !important;
}

body#index .nf-site-search,
body#category .nf-site-search,
body.page-category .nf-site-search,
body#search .nf-site-search,
body#prices-drop .nf-site-search,
body#new-products .nf-site-search,
body#best-sales .nf-site-search,
body#product .nf-site-search,
#my-account .nf-site-search,
#addresses .nf-site-search,
#address .nf-site-search,
#identity .nf-site-search {
  height: 52px !important;
  border-color: #cddfea !important;
  border-radius: var(--nf-store-radius) !important;
  background: #fff !important;
  box-shadow: none !important;
}

body#index .nf-site-search input[type="text"],
body#category .nf-site-search input[type="text"],
body.page-category .nf-site-search input[type="text"],
body#search .nf-site-search input[type="text"],
body#prices-drop .nf-site-search input[type="text"],
body#new-products .nf-site-search input[type="text"],
body#best-sales .nf-site-search input[type="text"],
body#product .nf-site-search input[type="text"],
#my-account .nf-site-search input[type="text"],
#addresses .nf-site-search input[type="text"],
#address .nf-site-search input[type="text"],
#identity .nf-site-search input[type="text"] {
  height: 50px !important;
  font-size: 16px !important;
}

body#index .nf-site-search button,
body#category .nf-site-search button,
body.page-category .nf-site-search button,
body#search .nf-site-search button,
body#prices-drop .nf-site-search button,
body#new-products .nf-site-search button,
body#best-sales .nf-site-search button,
body#product .nf-site-search button,
#my-account .nf-site-search button,
#addresses .nf-site-search button,
#address .nf-site-search button,
#identity .nf-site-search button {
  width: 54px !important;
  height: 52px !important;
  border-radius: 0 7px 7px 0 !important;
  background: var(--nf-store-blue) !important;
}

@media (min-width: 768px) {
  body#index .nf-site-cats,
  body#category .nf-site-cats,
  body.page-category .nf-site-cats,
  body#search .nf-site-cats,
  body#prices-drop .nf-site-cats,
  body#new-products .nf-site-cats,
  body#best-sales .nf-site-cats,
  body#product .nf-site-cats,
  #my-account .nf-site-cats,
  #addresses .nf-site-cats,
  #address .nf-site-cats,
  #identity .nf-site-cats {
    width: min(1360px, calc(100vw - 40px)) !important;
    min-height: 50px !important;
    margin: 0 auto 14px !important;
    padding: 4px 8px !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    border: 1px solid var(--nf-store-line) !important;
    border-radius: var(--nf-store-radius) !important;
    background: #fff !important;
    box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
  }

  body#index .nf-site-cats a,
  body#category .nf-site-cats a,
  body.page-category .nf-site-cats a,
  body#search .nf-site-cats a,
  body#prices-drop .nf-site-cats a,
  body#new-products .nf-site-cats a,
  body#best-sales .nf-site-cats a,
  body#product .nf-site-cats a,
  #my-account .nf-site-cats a,
  #addresses .nf-site-cats a,
  #address .nf-site-cats a,
  #identity .nf-site-cats a {
    height: 40px !important;
    padding: 0 14px !important;
    border-radius: 6px !important;
    color: var(--nf-store-ink) !important;
    font-size: 12px !important;
    font-weight: 750 !important;
  }

  body#index .nf-site-cats a:hover,
  body#category .nf-site-cats a:hover,
  body.page-category .nf-site-cats a:hover,
  body#search .nf-site-cats a:hover,
  body#prices-drop .nf-site-cats a:hover,
  body#new-products .nf-site-cats a:hover,
  body#best-sales .nf-site-cats a:hover,
  body#product .nf-site-cats a:hover,
  #my-account .nf-site-cats a:hover,
  #addresses .nf-site-cats a:hover,
  #address .nf-site-cats a:hover,
  #identity .nf-site-cats a:hover {
    color: var(--nf-store-blue) !important;
    background: var(--nf-store-blue-soft) !important;
  }

  body#index .nf-site-cats i,
  body#category .nf-site-cats i,
  body.page-category .nf-site-cats i,
  body#search .nf-site-cats i,
  body#prices-drop .nf-site-cats i,
  body#new-products .nf-site-cats i,
  body#best-sales .nf-site-cats i,
  body#product .nf-site-cats i,
  #my-account .nf-site-cats i,
  #addresses .nf-site-cats i,
  #address .nf-site-cats i,
  #identity .nf-site-cats i {
    color: var(--nf-store-blue) !important;
  }

  body#index .nf-site-main,
  body#category .nf-site-main,
  body.page-category .nf-site-main,
  body#search .nf-site-main,
  body#prices-drop .nf-site-main,
  body#new-products .nf-site-main,
  body#best-sales .nf-site-main,
  body#product .nf-site-main,
  #my-account .nf-site-main,
  #addresses .nf-site-main,
  #address .nf-site-main,
  #identity .nf-site-main {
    padding-bottom: 16px !important;
  }
}

@media (max-width: 767px) {
  body#index .nf-site-shell,
  body#category .nf-site-shell,
  body.page-category .nf-site-shell,
  body#search .nf-site-shell,
  body#prices-drop .nf-site-shell,
  body#new-products .nf-site-shell,
  body#best-sales .nf-site-shell,
  body#product .nf-site-shell,
  #my-account .nf-site-shell,
  #addresses .nf-site-shell,
  #address .nf-site-shell,
  #identity .nf-site-shell {
    width: 100% !important;
    padding: 12px 16px 0 !important;
  }

  body#index .nf-site-logo img,
  body#category .nf-site-logo img,
  body.page-category .nf-site-logo img,
  body#search .nf-site-logo img,
  body#prices-drop .nf-site-logo img,
  body#new-products .nf-site-logo img,
  body#best-sales .nf-site-logo img,
  body#product .nf-site-logo img,
  #my-account .nf-site-logo img,
  #addresses .nf-site-logo img,
  #address .nf-site-logo img,
  #identity .nf-site-logo img {
    width: min(244px, 64vw) !important;
    height: 62px !important;
  }

  body#index .nf-site-location,
  body#category .nf-site-location,
  body.page-category .nf-site-location,
  body#search .nf-site-location,
  body#prices-drop .nf-site-location,
  body#new-products .nf-site-location,
  body#best-sales .nf-site-location,
  body#product .nf-site-location,
  #my-account .nf-site-location,
  #addresses .nf-site-location,
  #address .nf-site-location,
  #identity .nf-site-location {
    min-height: 48px !important;
    padding: 5px 8px !important;
    background: #fff !important;
    border-color: transparent !important;
  }

  body#index .nf-site-location small,
  body#category .nf-site-location small,
  body.page-category .nf-site-location small,
  body#search .nf-site-location small,
  body#prices-drop .nf-site-location small,
  body#new-products .nf-site-location small,
  body#best-sales .nf-site-location small,
  body#product .nf-site-location small,
  #my-account .nf-site-location small,
  #addresses .nf-site-location small,
  #address .nf-site-location small,
  #identity .nf-site-location small {
    display: none !important;
  }

  body#index .nf-site-location strong,
  body#category .nf-site-location strong,
  body.page-category .nf-site-location strong,
  body#search .nf-site-location strong,
  body#prices-drop .nf-site-location strong,
  body#new-products .nf-site-location strong,
  body#best-sales .nf-site-location strong,
  body#product .nf-site-location strong,
  #my-account .nf-site-location strong,
  #addresses .nf-site-location strong,
  #address .nf-site-location strong,
  #identity .nf-site-location strong {
    margin-top: 0 !important;
    font-size: 19px !important;
  }

  body#index .nf-site-search,
  body#category .nf-site-search,
  body.page-category .nf-site-search,
  body#search .nf-site-search,
  body#prices-drop .nf-site-search,
  body#new-products .nf-site-search,
  body#best-sales .nf-site-search,
  body#product .nf-site-search,
  #my-account .nf-site-search,
  #addresses .nf-site-search,
  #address .nf-site-search,
  #identity .nf-site-search {
    height: 54px !important;
    border-radius: 8px !important;
    background: #f8fbfd !important;
  }

  body#index .nf-site-search input[type="text"],
  body#category .nf-site-search input[type="text"],
  body.page-category .nf-site-search input[type="text"],
  body#search .nf-site-search input[type="text"],
  body#prices-drop .nf-site-search input[type="text"],
  body#new-products .nf-site-search input[type="text"],
  body#best-sales .nf-site-search input[type="text"],
  body#product .nf-site-search input[type="text"],
  #my-account .nf-site-search input[type="text"],
  #addresses .nf-site-search input[type="text"],
  #address .nf-site-search input[type="text"],
  #identity .nf-site-search input[type="text"] {
    height: 52px !important;
  }
}

/* Public storefront shell.  These rules deliberately scope the app-like
 * presentation to browseable pages, leaving cart, checkout and order flows
 * entirely to their established templates and integrations. */
body#index.page-index,
body#category,
body.page-category,
body#search,
body#prices-drop,
body#new-products,
body#best-sales,
body#product,
#my-account,
#addresses,
#address,
#identity {
  background: #f7fbfe !important;
  color: var(--nf-store-ink) !important;
}

body#index.page-index #header,
body#category #header,
body.page-category #header,
body#search #header,
body#prices-drop #header,
body#new-products #header,
body#best-sales #header,
body#product #header,
#my-account #header,
#addresses #header,
#address #header,
#identity #header {
  background: #fff !important;
  border-bottom: 1px solid var(--nf-store-line) !important;
  box-shadow: 0 5px 18px rgba(16, 35, 58, .06) !important;
}

body#index.page-index #header .header-top,
body#category #header .header-top,
body.page-category #header .header-top,
body#search #header .header-top,
body#prices-drop #header .header-top,
body#new-products #header .header-top,
body#best-sales #header .header-top,
body#product #header .header-top {
  min-height: 84px !important;
}

body#index.page-index #header .top-menu,
body#category #header .top-menu,
body.page-category #header .top-menu,
body#search #header .top-menu,
body#prices-drop #header .top-menu,
body#new-products #header .top-menu,
body#best-sales #header .top-menu,
body#product #header .top-menu {
  min-height: 52px !important;
  background: #078fe2 !important;
  box-shadow: none !important;
}

body#index.page-index #header .top-menu a,
body#category #header .top-menu a,
body.page-category #header .top-menu a,
body#search #header .top-menu a,
body#prices-drop #header .top-menu a,
body#new-products #header .top-menu a,
body#best-sales #header .top-menu a,
body#product #header .top-menu a {
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

body#index.page-index .breadcrumb,
body#category .breadcrumb,
body.page-category .breadcrumb,
body#search .breadcrumb,
body#prices-drop .breadcrumb,
body#new-products .breadcrumb,
body#best-sales .breadcrumb,
body#product .breadcrumb,
#my-account .breadcrumb,
#addresses .breadcrumb,
#address .breadcrumb,
#identity .breadcrumb {
  margin-bottom: 18px !important;
  padding: 12px 0 !important;
  background: transparent !important;
}

body#index.page-index .page-content,
body#category .page-content,
body.page-category .page-content,
body#search .page-content,
body#prices-drop .page-content,
body#new-products .page-content,
body#best-sales .page-content,
body#product .page-content,
#my-account .page-content,
#addresses .page-content,
#address .page-content,
#identity .page-content {
  border: 1px solid var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: #fff !important;
  box-shadow: 0 10px 26px rgba(27, 69, 97, .06) !important;
}

/* The site already renders the real banners and catalogue data.  Only their
 * containing surfaces change, so existing links, modules and analytics stay
 * connected. */
body#index.page-index .nf-home-section,
body#index.page-index .nf-for-you,
body#index.page-index .nf-category-showcase,
body#index.page-index .nf-home-products-section {
  margin-top: 28px !important;
  padding: 0 !important;
}

body#index.page-index .nf-home-section-title,
body#index.page-index .nf-for-you h2,
body#index.page-index .nf-category-showcase h2,
body#index.page-index .nf-home-products-section h2,
body#category h1,
body.page-category h1,
body#search h1,
body#prices-drop h1,
body#new-products h1,
body#best-sales h1,
body#product h1,
#my-account h1,
#addresses h1,
#address h1,
#identity h1 {
  color: var(--nf-store-ink) !important;
  font-weight: 780 !important;
  letter-spacing: 0 !important;
}

body#index.page-index .nf-product-card,
body#index.page-index .product-miniature,
body#category .product-miniature,
body.page-category .product-miniature,
body#search .product-miniature,
body#prices-drop .product-miniature,
body#new-products .product-miniature,
body#best-sales .product-miniature {
  overflow: hidden !important;
  border: 1px solid var(--nf-store-line) !important;
  border-radius: var(--nf-store-radius) !important;
  background: #fff !important;
  box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
}

body#index.page-index .nf-product-card .product-title,
body#index.page-index .product-miniature .product-title,
body#category .product-miniature .product-title,
body.page-category .product-miniature .product-title,
body#search .product-miniature .product-title,
body#prices-drop .product-miniature .product-title,
body#new-products .product-miniature .product-title,
body#best-sales .product-miniature .product-title {
  color: var(--nf-store-ink) !important;
  font-weight: 680 !important;
}

body#index.page-index .nf-product-card .price,
body#index.page-index .product-miniature .price,
body#category .product-miniature .price,
body.page-category .product-miniature .price,
body#search .product-miniature .price,
body#prices-drop .product-miniature .price,
body#new-products .product-miniature .price,
body#best-sales .product-miniature .price {
  color: var(--nf-store-ink) !important;
  font-weight: 760 !important;
}

@media (min-width: 768px) {
  body#index.page-index .nf-mobile-home,
  body#index.page-index #content-wrapper,
  body#category #content-wrapper,
  body.page-category #content-wrapper,
  body#search #content-wrapper,
  body#prices-drop #content-wrapper,
  body#new-products #content-wrapper,
  body#best-sales #content-wrapper,
  body#product #content-wrapper,
  #my-account #content-wrapper,
  #addresses #content-wrapper,
  #address #content-wrapper,
  #identity #content-wrapper {
    max-width: 1360px !important;
  }

  body#index.page-index .nf-hero-carousel {
    margin-top: 22px !important;
    padding: 0 !important;
    background: #fff !important;
  }

  body#index.page-index .nf-linked-tiles {
    gap: 14px !important;
  }

  body#index.page-index .nf-linked-tiles .nf-tile-card {
    min-height: 142px !important;
    border: 1px solid var(--nf-store-line) !important;
    box-shadow: 0 5px 16px rgba(27, 69, 97, .05) !important;
  }
}

@media (max-width: 767px) {
  body#index.page-index,
  body#category,
  body.page-category,
  body#search,
  body#prices-drop,
  body#new-products,
  body#best-sales,
  body#product,
  #my-account,
  #addresses,
  #address,
  #identity {
    background: #fff !important;
  }

  body#index.page-index #header,
  body#category #header,
  body.page-category #header,
  body#search #header,
  body#prices-drop #header,
  body#new-products #header,
  body#best-sales #header,
  body#product #header,
  #my-account #header,
  #addresses #header,
  #address #header,
  #identity #header {
    box-shadow: none !important;
  }

  body#index.page-index #header .header-top,
  body#category #header .header-top,
  body.page-category #header .header-top,
  body#search #header .header-top,
  body#prices-drop #header .header-top,
  body#new-products #header .header-top,
  body#best-sales #header .header-top,
  body#product #header .header-top {
    min-height: 62px !important;
  }

  body#index.page-index #header .top-menu,
  body#category #header .top-menu,
  body.page-category #header .top-menu,
  body#search #header .top-menu,
  body#prices-drop #header .top-menu,
  body#new-products #header .top-menu,
  body#best-sales #header .top-menu,
  body#product #header .top-menu {
    display: none !important;
  }

  body#index.page-index .nf-mobile-home {
    padding: 0 12px 94px !important;
  }

  body#index.page-index .nf-hero-carousel {
    margin-top: 14px !important;
    border-radius: 8px !important;
  }

  body#index.page-index .nf-linked-tiles {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding: 2px 1px 8px !important;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  body#index.page-index .nf-linked-tiles .nf-tile-card {
    flex: 0 0 min(72vw, 272px) !important;
    min-height: 124px !important;
    scroll-snap-align: start;
    border: 1px solid var(--nf-store-line) !important;
    box-shadow: 0 4px 12px rgba(27, 69, 97, .05) !important;
  }

  body#index.page-index .nf-for-you,
  body#index.page-index .nf-category-showcase,
  body#index.page-index .nf-home-products-section {
    margin-top: 22px !important;
  }

  body#index.page-index .nf-home-section-title,
  body#index.page-index .nf-for-you h2,
  body#index.page-index .nf-category-showcase h2,
  body#index.page-index .nf-home-products-section h2,
  body#category h1,
  body.page-category h1,
  body#search h1,
  body#prices-drop h1,
  body#new-products h1,
  body#best-sales h1,
  body#product h1,
  #my-account h1,
  #addresses h1,
  #address h1,
  #identity h1 {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }

  body#category .category-list.category-list-flex,
  body.page-category .category-list.category-list-flex {
    gap: 10px !important;
  }

  body#category .category-list.category-list-flex .category-container,
  body.page-category .category-list.category-list-flex .category-container {
    min-height: 82px !important;
    box-shadow: none !important;
  }

  body#category .nomatic-list-product,
  body.page-category .nomatic-list-product,
  body#search .nomatic-list-product,
  body#prices-drop .nomatic-list-product,
  body#new-products .nomatic-list-product,
  body#best-sales .nomatic-list-product {
    box-shadow: none !important;
  }

  body#index.page-index .page-content,
  body#category .page-content,
  body.page-category .page-content,
  body#search .page-content,
  body#prices-drop .page-content,
  body#new-products .page-content,
  body#best-sales .page-content,
  body#product .page-content,
  #my-account .page-content,
  #addresses .page-content,
  #address .page-content,
  #identity .page-content {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}
