/* Noble predictive search — Tom Wood topology translated into Noble's system. */
.nf-search-panel{--nf-search-highlight:var(--nf-oat);position:fixed;inset:0;z-index:calc(var(--nf-nav-z) + 30);display:block;padding:0;background:#fff;color:var(--nf-ink);opacity:0;visibility:hidden;pointer-events:none;overflow-y:auto;transition:opacity .22s ease,visibility 0s linear .22s}
.nf-search-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.nf-search-panel__close{position:fixed;z-index:2;top:24px;right:24px;left:auto;width:28px;height:28px;padding:4px;border:0;background:transparent;color:var(--nf-ink)}
.nf-search-panel__close svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.1;vector-effect:non-scaling-stroke}
.nf-search-panel__inner{--nf-search-card-width:220px;--nf-search-card-gap:36px;width:100%;min-height:100vh;padding:120px 20px 56px;display:grid;grid-template-columns:minmax(0,1fr) minmax(732px,1.15fr);grid-template-rows:auto 1fr;column-gap:60px;row-gap:36px;transform:translateY(-10px);opacity:0;transition:transform .42s var(--nf-ease-source),opacity .3s ease}
.nf-search-panel.is-open .nf-search-panel__inner{transform:none;opacity:1}
.nf-search-form{grid-column:1;grid-row:1;position:relative;display:flex;align-items:center;width:100%;max-width:none;border-bottom:1px solid rgba(37,39,32,.14)}
.nf-search-form:focus-within{border-bottom-color:rgba(37,39,32,.32)}
.nf-search-form__field{-webkit-appearance:none;appearance:none;width:100%;min-width:0;border:0;outline:0;background:transparent;padding:0 44px 9px 0;border-radius:0;font:400 18px/1.25 var(--nf-font);letter-spacing:-.02em;color:var(--nf-ink)}
.nf-search-form__field::-webkit-search-cancel-button{display:none}
.nf-search-form__field::placeholder{color:rgba(37,39,32,.45)}
.nf-search-form__submit{position:absolute;right:0;inset-block:0;width:38px;padding:0;border:0;background:transparent;display:grid;place-items:center;color:var(--nf-ink)}
.nf-search-form__submit:disabled{opacity:.25;cursor:default}
.nf-search-form__submit svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.25}
.nf-search-panel__results{display:contents}
.nf-search-panel__results.is-loading{opacity:1}
.nf-search-empty{grid-column:2;grid-row:1 / span 2;display:grid;align-content:start;gap:76px}
.nf-search-empty__heading{margin:0 0 34px;color:rgba(37,39,32,.64);font:500 34px/1 var(--nf-display);letter-spacing:-.045em}
.nf-search-empty__grid{display:grid;grid-template-columns:repeat(3,var(--nf-search-card-width));gap:42px var(--nf-search-card-gap);justify-content:start;margin:0;padding:0}
.nf-predictive-search{display:contents}
.nf-predictive-search__left{grid-column:1;grid-row:2;align-self:start;display:flex;flex-direction:column;gap:30px}
.nf-predictive-search__suggestions{min-width:0}
.nf-predictive-search__right{grid-column:2;grid-row:1 / span 2;align-self:start;display:flex;flex-direction:column;gap:46px;min-width:0}
.nf-predictive-search__products,.nf-predictive-search__pages{min-width:0}
.nf-predictive-search__group-title{margin:0 0 14px;font:500 11px/1 var(--nf-font);text-transform:uppercase;letter-spacing:.01em}
.nf-predictive-search__suggestion-list,.nf-predictive-search__resource-list{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0;padding:0;list-style:none;font-size:14px;line-height:1.25}
.nf-predictive-search__pages .nf-predictive-search__resource-list{gap:9px;font-size:15px}
/* Search text links reuse the exact desktop-navigation underline mechanics:
   1% resting line just outside the left edge -> spring to 102% on hover ->
   on leave, anchor to the right and spring back to 1%, then reset after 350ms. */
.nf-search-directional-link{--nf-menu-line-color:currentColor;position:relative;display:inline-flex;width:max-content;max-width:100%;padding:0 0 3px;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:none}
.nf-search-directional-link:hover,.nf-search-directional-link:focus-visible{color:inherit}
.nf-search-directional-link__line{position:absolute;left:0;right:0;bottom:0}
.nf-predictive-search__suggestion-list mark,.nf-predictive-search__resource-list mark{background:var(--nf-search-highlight);color:inherit;padding:0}
.nf-predictive-search__product-grid{display:grid;grid-template-columns:repeat(3,var(--nf-search-card-width));gap:42px var(--nf-search-card-gap);justify-content:start;margin:0;padding:0;list-style:none}
.nf-predictive-search__empty{grid-column:1;grid-row:2;align-self:start;color:var(--nf-muted);font-size:13px}

/* Search does not own a second product-card skin. It only reserves a stable
   220px card track so the shared Noble card has enough room for its title,
   category, price/action and Material states. The actual card markup, media
   geometry and hover behavior remain the canonical storefront component. */
.nf-search-product-card{width:var(--nf-search-card-width);min-width:0;list-style:none}
.nf-search-panel .nf-search-product-card .nf-product-card{width:100%;min-width:0;padding-bottom:0}

/* Intentional loading state: preserve the Tom Wood two-column composition while
   query work is in flight instead of fading stale results. */
.nf-search-skeleton__suggestions{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:1px}
.nf-search-skeleton__line,
.nf-search-skeleton-card__media,
.nf-search-skeleton-card__row span,
.nf-search-skeleton-card__category{position:relative;display:block;overflow:hidden;background:rgba(37,39,32,.07)}
.nf-search-skeleton__line::after,
.nf-search-skeleton-card__media::after,
.nf-search-skeleton-card__row span::after,
.nf-search-skeleton-card__category::after{content:"";position:absolute;inset:0;transform:translateX(-110%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:nf-search-skeleton 1.05s ease-in-out infinite}
.nf-search-skeleton__line{width:112px;height:12px;border-radius:2px}
.nf-search-skeleton__line--2{width:86px}.nf-search-skeleton__line--3{width:128px}.nf-search-skeleton__line--4{width:74px}
.nf-search-skeleton-card{min-width:0;list-style:none}
.nf-search-skeleton-card__media{aspect-ratio:.8691437802907916/1;border-radius:8px}
.nf-search-skeleton-card__row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px}
.nf-search-skeleton-card__row span:first-child{width:58%;height:10px;border-radius:2px}
.nf-search-skeleton-card__row span:last-child{width:28%;height:10px;border-radius:2px}
.nf-search-skeleton-card__category{width:34%;height:8px;margin-top:5px;border-radius:2px}
@keyframes nf-search-skeleton{to{transform:translateX(110%)}}

/* Submitted search results reuse the canonical Shop archive shell 1:1.
   Search owns only the compact query heading and the no-results message. */
body.search-results .nf-site-header{background:#fff;color:var(--nf-ink)}
.nf-search-results-page .nf-shop__catalogue{padding-top:36px}
.nf-search-results-page__header{display:flex;justify-content:center;width:100%;padding:0 0 28px;text-align:center}
.nf-search-results-page__header h1{margin:0;font:500 24px/1.12 var(--nf-display);letter-spacing:-.035em}
.nf-search-results-page__header h1 span,.nf-search-results-page__header h1 strong{display:block;font:inherit}
.nf-search-results-page__header h1 strong{margin-top:6px;font-family:var(--nf-font);font-weight:400;letter-spacing:-.02em}
.nf-search-results-page__resources{display:block;width:100%;padding:0 0 34px;border-bottom:1px solid rgba(37,39,32,.12)}
.nf-search-results-page__resource-group h2{margin:0 0 14px;font:500 11px/1 var(--nf-font);text-transform:uppercase;letter-spacing:.01em}
.nf-search-results-page__resource-group ul{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:0;padding:0;list-style:none}
.nf-search-results-page__resource-group li{font:400 15px/1.25 var(--nf-font);letter-spacing:-.02em}
.nf-search-results-page__resource-group .nf-search-directional-link{display:inline-flex}
.nf-search-results-page__no-results{width:100%;padding:30px 0 54px;border-top:1px solid var(--nf-ink);font-size:17px;line-height:1.5}

@media (max-width:1279px){
  .nf-search-results-page .nf-shop__catalogue{padding-top:34px}
  .nf-search-panel__inner{--nf-search-card-width:220px;--nf-search-card-gap:32px;grid-template-columns:minmax(0,1fr) minmax(472px,1fr);column-gap:40px}
  .nf-search-empty__heading{font-size:28px}
  .nf-search-empty__grid,.nf-predictive-search__product-grid{grid-template-columns:repeat(2,var(--nf-search-card-width));column-gap:var(--nf-search-card-gap)}
}
@media (min-width:810px) and (max-width:959px){
  .nf-search-panel__inner{grid-template-columns:minmax(0,1fr) minmax(220px,1fr)}
  .nf-search-empty__grid,.nf-predictive-search__product-grid{grid-template-columns:var(--nf-search-card-width)}
}
@media (max-width:809px){
  .nf-search-results-page .nf-shop__catalogue{padding-top:30px}
  .nf-search-results-page__header{padding-bottom:22px}
  .nf-search-results-page__header h1{font-size:22px}
  .nf-search-results-page__no-results{padding:26px 0 44px;font-size:15px}
  .nf-search-panel__close{top:18px;right:16px;left:auto;width:26px;height:26px}
  .nf-search-panel__inner{--nf-search-card-width:auto;--nf-search-card-gap:20px;min-height:auto;padding:92px 16px 36px;display:block}
  .nf-search-form{margin-bottom:34px}
  .nf-search-form__field{font-size:17px}
  .nf-search-panel__results{display:block}
  .nf-search-empty{display:grid;gap:48px}
  .nf-search-empty__heading{font-size:25px;margin-bottom:22px}
  .nf-search-empty__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px var(--nf-search-card-gap)}
  .nf-predictive-search{display:grid;gap:42px}
  .nf-predictive-search__empty{grid-column:1;grid-row:auto}
  .nf-predictive-search__left,.nf-predictive-search__right{grid-column:1;grid-row:auto}
  .nf-predictive-search__left{display:flex;flex-direction:column;gap:30px}
  .nf-predictive-search__right{display:flex;flex-direction:column;gap:38px}
  .nf-predictive-search__products,.nf-predictive-search__pages{display:block}
  .nf-predictive-search__product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px var(--nf-search-card-gap)}
  .nf-search-results-page__resources{grid-template-columns:1fr;gap:28px;padding-bottom:28px}
}

@media (max-width:430px){
  .nf-search-panel__inner{--nf-search-card-gap:18px}
}
@media (prefers-reduced-motion:reduce){
  .nf-search-panel,.nf-search-panel__inner,.nf-search-panel .nf-product-card__image{transition:none!important}.nf-search-skeleton__line::after,.nf-search-skeleton-card__media::after,.nf-search-skeleton-card__row span::after,.nf-search-skeleton-card__category::after{animation:none!important}
}
