/* DNine storefront search overlay (1.0.61).
   Colours are the store's own brand hex values (the same ones css/app.css uses), so the Light / Dark / Neutral brand palettes
   (App\Support\BrandTheme, served as /brand-theme?f=css/search.css) re-colour this file too. Do not add other hex values. */
.dns{position:fixed;inset:0;z-index:48;visibility:hidden;transition:visibility 0s linear .2s;font-family:Nunito,'Helvetica Neue',Arial,sans-serif;color:#2A1C12}
.dns.open{visibility:visible;transition-delay:0s}
.dns *{box-sizing:border-box}
.dns button{font-family:inherit;cursor:pointer}
.dns-scrim{position:absolute;inset:0;background:rgba(74,18,35,.5);opacity:0;transition:opacity .2s ease}
.dns.open .dns-scrim{opacity:1}
.dns-panel{position:absolute;top:14px;right:clamp(12px,2.5vw,32px);width:min(980px,calc(100vw - 24px));max-height:calc(100dvh - 28px);display:flex;flex-direction:column;gap:10px;opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease}
.dns.open .dns-panel{opacity:1;transform:none}
/* 1.0.68: on a desktop screen the overlay starts below the announcement bar (search.js sets --dns-top while that bar is on screen), so the bar stays readable */
@media (min-width:900px){
  .dns-scrim{top:var(--dns-top,0px)}
  .dns-panel{top:calc(var(--dns-top,0px) + 14px);max-height:calc(100dvh - var(--dns-top,0px) - 28px)}
}

/* search box */
.dns-form{display:flex;align-items:center;gap:8px;background:#FFFCF6;border:1.5px solid #D9CBB6;border-radius:999px;padding:6px 8px 6px 18px;box-shadow:0 10px 30px rgba(42,12,20,.18);margin:0}
.dns-form:focus-within{border-color:#6A1B32}
.dns-ico{flex:0 0 auto;display:grid;place-items:center}
.dns-input{flex:1 1 auto;min-width:0;height:44px;border:0;background:transparent;font:700 16px Nunito,'Helvetica Neue',Arial,sans-serif;color:#2A1C12;outline:none;-webkit-appearance:none;appearance:none}
.dns-input::placeholder{color:#7A6653;font-weight:600}
.dns-input::-webkit-search-cancel-button,.dns-input::-webkit-search-decoration{-webkit-appearance:none;display:none}
.dns-clear{flex:0 0 auto;width:36px;height:36px;border:0;border-radius:999px;background:#EFE6D6;color:#5A1629;font-size:18px;line-height:1;display:grid;place-items:center}
.dns-clear[hidden]{display:none}
.dns-go{flex:0 0 auto;height:44px;padding:0 20px;border:0;border-radius:999px;background:#6A1B32;color:#F7F1E7;font-size:14px;font-weight:800}
.dns-go:hover{background:#3B0E1B}
.dns-close{flex:0 0 auto;height:44px;padding:0 16px;border:1.5px solid #6A1B32;border-radius:999px;background:transparent;color:#5A1629;font-size:13px;font-weight:800}

/* category pills */
.dns-pills{display:flex;gap:8px;flex-wrap:wrap;min-height:38px}
.dns-pills:empty{display:none}
.dns-pill{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;background:#FFFCF6;border:1.5px solid #D9CBB6;color:#5A1629;font-size:13px;font-weight:800;text-decoration:none;box-shadow:0 4px 14px rgba(42,12,20,.12)}
.dns-pill:hover,.dns-pill:focus-visible{background:#6A1B32;border-color:#6A1B32;color:#F7F1E7}

/* results card */
.dns-card{display:grid;grid-template-columns:minmax(0,1fr) 340px;background:#FFFCF6;border-radius:28px;box-shadow:0 18px 44px rgba(42,12,20,.26);overflow:hidden;min-height:400px;max-height:calc(100dvh - 160px)}
.dns-card.no-prev{grid-template-columns:minmax(0,1fr)}
.dns-main{padding:18px 14px 16px;overflow:auto;min-width:0;display:flex;flex-direction:column;gap:6px;overscroll-behavior:contain}
.dns-h{margin:6px 8px 6px;font-family:Fredoka,'Mazzard Soft H',sans-serif;font-weight:600;letter-spacing:-.01em;font-size:20px;line-height:1.1;color:#5A1629}
.dns-h small{font-family:Nunito,'Helvetica Neue',Arial,sans-serif;font-size:12px;font-weight:700;color:#7A6653;margin-left:6px}
.dns-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.dns-row{margin:0;padding:0;border-radius:18px}
.dns-link{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:18px;color:inherit;text-decoration:none}
.dns-row.on>.dns-link{background:#EFE6D6}
.dns-link:focus-visible{outline:2px solid #6A1B32;outline-offset:-2px}
.dns-thumb{width:52px;height:52px;border-radius:14px;overflow:hidden;background:#F7F1E7;display:block}
.dns-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dns-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.dns-name{font-size:15px;font-weight:800;line-height:1.25;color:#2A1C12;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dns-sub{font-size:12.5px;font-weight:700;color:#7A6653;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dns-badge{background:#4A4038;color:#F7F1E7;border-radius:999px;font-size:11px;font-weight:800;padding:4px 10px;white-space:nowrap}
.dns-thumb img[src$=".svg"],.dnsp-img img[src$=".svg"]{object-fit:contain;padding:10%}
.dns-row.unavail .dns-thumb img{filter:grayscale(1);opacity:.55}
.dns-row.unavail .dns-name{color:#7A6653}
.dns-more{margin:8px 8px 2px;align-self:flex-start;display:inline-flex;align-items:center;height:42px;padding:0 22px;border-radius:999px;border:1.5px solid #6A1B32;color:#5A1629;font-size:13px;font-weight:800;text-decoration:none;background:transparent}
.dns-more:hover,.dns-more:focus-visible{background:#6A1B32;color:#F7F1E7}
.dns-recent{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 8px 6px}
.dns-chip{height:34px;padding:0 14px;border-radius:999px;border:1px solid #D9CBB6;background:#F7F1E7;color:#4A2B31;font-size:13px;font-weight:700}
.dns-chip:hover,.dns-chip:focus-visible{border-color:#6A1B32}
.dns-link-btn{background:none;border:0;padding:4px 6px;color:#7A6653;font-size:12px;font-weight:800;text-decoration:underline}
.dns-msg{margin:10px 8px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:#4A2B31}
.dns-msg b{font-family:Fredoka,'Mazzard Soft H',sans-serif;font-weight:600;font-size:20px;color:#5A1629;line-height:1.15}
.dns-msg .dns-chip,.dns-msg .dns-more{margin:0}
.dns-actions{display:flex;gap:8px;flex-wrap:wrap}
.dns-err{background:#FBE9E1;border:1.5px solid #A8461E;color:#7A2E12;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:700;margin:8px}

/* skeleton: same row height as a real row, so nothing jumps */
.dns-sk{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;padding:8px 10px}
.dns-sk i{display:block;border-radius:14px;background:#EFE6D6;animation:dnsPulse 1.2s ease-in-out infinite}
.dns-sk i:first-child{width:52px;height:52px}
.dns-sk span{display:flex;flex-direction:column;gap:8px}
.dns-sk span i{height:12px;border-radius:6px}
.dns-sk span i:last-child{width:55%}
@keyframes dnsPulse{0%,100%{opacity:.55}50%{opacity:1}}
.dns-main[aria-busy="true"] .dns-list.stale{opacity:.5}

/* preview panel */
.dns-side{border-left:1px solid #E4D8C5;background:#FFFCF6;padding:16px;overflow:auto;overscroll-behavior:contain}
.dns-side:empty::before{content:attr(data-hint);display:block;color:#7A6653;font-size:13px;font-weight:700;text-align:center;padding:40px 12px}
.dnsp{display:flex;flex-direction:column;gap:10px}
.dnsp-img{position:relative;aspect-ratio:1/1;border-radius:22px;overflow:hidden;background:#F7F1E7}
.dnsp-img img{width:100%;height:100%;object-fit:cover;display:block}
.dnsp-cat{position:absolute;left:10px;top:10px;background:#FFFCF6;color:#9A6C06;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px}
.dnsp-badge{position:absolute;left:10px;bottom:10px;background:#4A4038;color:#F7F1E7;border-radius:999px;font-size:12px;font-weight:800;padding:5px 11px}
.dnsp.unavail .dnsp-img img{filter:grayscale(1);opacity:.55}
.dnsp-price{font-size:15px;font-weight:800;color:#6A1B32;display:flex;gap:8px;align-items:baseline}
.dnsp-price s{font-size:12px;font-weight:700;color:#7A6653}
.dnsp-name{margin:0;font-family:Fredoka,'Mazzard Soft H',sans-serif;font-weight:600;letter-spacing:-.015em;font-size:24px;line-height:1.1;color:#2A1C12}
.dnsp-short{margin:0;font-size:13px;line-height:1.5;color:#4A2B31;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dnsp-sizes{display:flex;gap:6px;flex-wrap:wrap;border:0;margin:0;padding:0}
.dnsp-size{min-height:36px;padding:0 13px;border-radius:999px;border:1.5px solid #D9CBB6;background:transparent;color:#2A1C12;font-size:12.5px;font-weight:800}
.dnsp-size[aria-pressed="true"]{border-color:#6A1B32;background:#6A1B32;color:#F7F1E7}
.dnsp-size:disabled{opacity:.45;text-decoration:line-through;cursor:not-allowed}
.dnsp-buy{display:flex;gap:10px;align-items:center}
.dnsp-qty{display:inline-flex;align-items:center;border:1.5px solid #D9CBB6;border-radius:999px;height:46px;flex:0 0 auto}
.dnsp-qty button{width:40px;height:100%;border:0;background:transparent;color:#5A1629;font-size:20px;font-weight:800;border-radius:999px}
.dnsp-qty button:disabled{opacity:.35;cursor:not-allowed}
.dnsp-qty output{min-width:26px;text-align:center;font-size:15px;font-weight:800}
.dnsp-add{flex:1 1 auto;height:46px;border:0;border-radius:999px;background:#6A1B32;color:#F7F1E7;font-size:14px;font-weight:800}
.dnsp-add:hover{background:#3B0E1B}
.dnsp-add:disabled{background:#D9CBB6;color:#7A6653;cursor:not-allowed}
.dnsp-err{margin:0;background:#FBE9E1;border:1.5px solid #A8461E;color:#7A2E12;border-radius:12px;padding:8px 12px;font-size:12.5px;font-weight:700}
.dnsp-err[hidden]{display:none}
.dnsp-view{align-self:flex-start;color:#5A1629;font-size:13px;font-weight:800;text-decoration:underline}
.dnsp-inline{padding:4px 10px 14px 74px}
.dnsp-inline .dnsp-img{display:none}
.dnsp-inline .dnsp-name{font-size:18px}

@media (max-width:899px){
  .dns-panel{inset:0;width:100%;max-height:none;height:100dvh;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px));background:#FFFCF6;transform:translateY(12px)}
  .dns-form{box-shadow:none;padding-left:14px}
  .dns-go{display:none}
  .dns-close{border:0;background:#EFE6D6}
  .dns-pills{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
  .dns-pill{flex:0 0 auto;box-shadow:none}
  .dns-card{display:block;flex:1 1 auto;min-height:0;max-height:none;box-shadow:none;border-radius:0;overflow:auto;background:transparent}
  .dns-main{overflow:visible;padding:4px 0 24px}
  .dns-side{display:none}
  .dns-row.on>.dns-link{background:transparent}
  .dns-row.open>.dns-link{background:#EFE6D6}
}
@media (max-width:899px) and (max-height:520px){.dns-pills{display:none}}
@media (prefers-reduced-motion:reduce){.dns,.dns *{transition:none!important;animation:none!important}}
