/* Afnihi Shop: the storefront pages (templates/shop). Built on tokens.css and the public site's
   layout (site.css); every shop page carries body.storefront.shop. */
.shop [hidden]{display:none!important}
.i-md{width:18px;height:18px}

/* ---- Messages and notices ---- */
.shop-flash{display:grid;gap:8px;padding-top:16px}
.sf-note{display:flex;gap:8px;align-items:flex-start;margin:0 0 14px;padding:10px 12px;border-radius:var(--r-md);background:var(--violet-50);color:var(--ink);font-size:var(--fs-sm);font-weight:600;overflow-wrap:anywhere}
.sf-note .i{flex:none;margin-top:2px;color:var(--violet)}
.shop-flash .sf-note{margin:0}
.sf-success{background:var(--mint-50)}
.sf-success .i{color:var(--mint-800)}
.sf-warning{background:var(--amber-50)}
.sf-warning .i{color:var(--amber-700)}
.sf-error{background:var(--red-50)}
.sf-error .i{color:var(--red)}

/* ---- Shared page frame ---- */
.shop-page{padding-top:clamp(20px,3vw,32px);padding-bottom:var(--section)}
.crumbs ol{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:4px 6px;font-size:var(--fs-sm);color:var(--muted)}
.crumbs li{display:flex;align-items:center;gap:6px;min-width:0}
.crumbs li+li::before{content:"/";color:var(--border-strong)}
.crumbs a{color:var(--text);font-weight:600}
.crumbs [aria-current]{color:var(--ink);font-weight:600;overflow-wrap:anywhere}
.back-link{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:var(--fs-sm)}

/* ---- Catalogue: hero ---- */
.shop-hero{padding:clamp(24px,4vw,44px) 0 clamp(18px,3vw,28px);background:linear-gradient(180deg,var(--violet-50) 0%,#fff 100%)}
.shop-hero h1{font-size:clamp(1.5rem,1rem + 1.8vw,2.125rem);letter-spacing:-.03em;max-width:24ch;margin-bottom:10px}
.shop-hero .lead{max-width:62ch;margin-bottom:0}
.shop-hero .chips{margin:16px 0 0}

/* ---- Catalogue: filters, search, grid ---- */
.shop-list{padding:clamp(16px,2.5vw,24px) 0 8px}
.shop-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;margin-bottom:12px}
.cat-nav{min-width:0;max-width:100%}
.cat-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.cat-chip{display:inline-flex;align-items:center;min-height:32px;max-width:100%;padding:4px 14px;border:1.5px solid var(--border-strong);border-radius:var(--r-pill);background:#fff;color:var(--ink);font-size:var(--fs-sm);font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.cat-chip:hover{text-decoration:none;border-color:var(--ink)}
.cat-chip[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.shop-search{display:flex;align-items:center;gap:6px;flex:0 1 320px;min-width:0;margin-left:auto;padding:3px 3px 3px 12px;background:#fff;border:1.5px solid var(--border-strong);border-radius:var(--r-pill);transition:border .15s,box-shadow .15s}
.shop-search:focus-within{border-color:var(--violet);box-shadow:var(--ring)}
.shop-search>.i{color:var(--muted)}
.shop-search input{flex:1;min-width:0;height:30px;border:0;outline:none;background:transparent;font-size:var(--fs-sm);-webkit-appearance:none;appearance:none}
.storefront .shop-search input:focus-visible{outline:none}
.shop-search .btn{flex:none}
.shop-count{margin:0 0 14px;font-size:var(--fs-sm);color:var(--muted)}
.shop-count b{color:var(--ink)}

.pgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.pcard{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow .2s,border-color .2s}
@media (hover:hover) and (pointer:fine){.pcard:hover{box-shadow:var(--shadow-md);border-color:var(--violet-100)}}
.pcard-media{display:block;aspect-ratio:16/10;background:var(--surface);border-bottom:1px solid var(--border)}
.pcard-media img,.pd-media img{width:100%;height:100%;object-fit:cover}
.pcard-flag{position:absolute;top:10px;left:10px;box-shadow:var(--shadow-sm)}
.pcard-body{display:flex;flex-direction:column;gap:6px;flex:1;padding:14px 16px 16px;overflow-wrap:anywhere}
.pcard-cat{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--violet)}
.pcard-name{font-size:var(--fs-h4);line-height:1.3;margin:0}
.pcard-name a{color:var(--ink)}
.pcard-name a:hover{color:var(--violet);text-decoration:none}
.pcard-sum{font-size:var(--fs-sm);margin:0}
.pcard-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}
.pcard-price{font-size:1.0625rem;font-weight:800;color:var(--ink);letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
.pcard-more{display:inline-flex;align-items:center;gap:4px;min-height:32px;font-size:var(--fs-sm);font-weight:700;color:var(--violet)}
.pcard-more .i{transition:transform .15s}
.pcard-more:hover{text-decoration:none}
.pcard-more:hover .i{transform:translateX(2px)}
.pcard-buy{width:100%;margin-top:6px}
.pcard-hint{margin:0;font-size:var(--fs-xs);color:var(--muted);text-align:center;overflow-wrap:anywhere}

/* Branded stand-in when a product has no image */
.ph{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(120% 90% at 15% 0%,var(--violet-100) 0%,transparent 55%),linear-gradient(135deg,var(--violet-50) 0%,var(--mint-50) 100%)}
.ph svg{width:min(42%,140px);height:auto}

.shop-empty{text-align:center;margin:4px 0 8px;padding:clamp(28px,5vw,48px) 20px;background:#fff;border:1.5px dashed var(--border-strong);border-radius:var(--r-xl)}
.shop-empty-ic{display:inline-grid;place-items:center;width:52px;height:52px;margin-bottom:12px;border-radius:var(--r-lg);background:var(--violet-50);color:var(--violet)}
.shop-empty h2,.shop-empty h3{font-size:1.125rem;margin:0 0 6px}
.shop-empty p{max-width:46ch;margin:0 auto 16px}

/* How ordering works */
.shop-how h2{font-size:var(--fs-h2);margin-bottom:16px}
.shop-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
.shop-steps li{display:flex;gap:10px;align-items:flex-start;min-width:0;padding:14px;background:var(--surface);border-radius:var(--r-lg);font-size:var(--fs-sm)}
.shop-steps li>div{min-width:0}
.shop-steps li>div>b{display:block;margin-bottom:2px;color:var(--ink);font-size:var(--fs-h4)}
.step-n{flex:none;display:grid;place-items:center;width:24px;height:24px;border:1.5px solid var(--violet-100);border-radius:50%;background:#fff;color:var(--violet);font-size:11px;font-weight:800}
.shop-steps li:last-child .step-n{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.shop-fine{max-width:80ch;margin:16px 0 0;font-size:var(--fs-note);color:var(--muted)}

/* ---- Product ---- */
.pd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
.pd-media{aspect-ratio:4/3;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl)}
.pd-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.pd-info{min-width:0}
.pd-info h1{font-size:var(--fs-h1);margin-bottom:8px;overflow-wrap:anywhere}
.pd-info .lead{margin-bottom:16px}
.pd-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 16px}
.pd-amt{font-size:1.625rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums lining-nums}
.pd-per{font-size:var(--fs-sm);color:var(--muted)}
.pd-buy{display:grid;gap:10px;margin:0;padding:14px;background:var(--surface);border-radius:var(--r-lg)}
.pd-buy .btn{width:100%}
.pd-hint{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:var(--fs-sm);color:var(--text);overflow-wrap:anywhere}
.pd-hint .i{flex:none;margin-top:2px;color:var(--violet)}
.pd-hint b{color:var(--ink)}
.pd-notes{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;font-size:var(--fs-sm)}
.pd-notes li{display:flex;gap:8px;align-items:flex-start}
.pd-notes .i{flex:none;margin-top:2px;color:var(--mint-600)}
.pd-desc{max-width:70ch;margin-top:clamp(24px,4vw,40px);padding-top:clamp(20px,3vw,28px);border-top:1px solid var(--border);overflow-wrap:anywhere}
.pd-desc h2{font-size:var(--fs-h2)}
.pd-back{margin:24px 0 0}

/* ---- Tablets ---- */
@media (max-width:959px){
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:899px){
  .pd{grid-template-columns:minmax(0,1fr)}
  .pd-media{max-width:560px}
}

/* ---- Phones ---- */
@media (max-width:640px){
  .shop-hero{padding:20px 0 16px}
  .shop-hero h1{font-size:1.5rem;line-height:1.2}
  .shop-hero .lead{font-size:var(--fs-body)}
  .shop-hero .chips{gap:6px}
  .shop-bar{gap:10px}
  .cat-nav{overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);width:calc(100% + 2 * var(--gutter));max-width:none}
  .cat-nav::-webkit-scrollbar{display:none}
  .cat-chips{flex-wrap:nowrap}
  .cat-chips li{flex:none}
  .cat-chip{white-space:nowrap;min-height:40px}
  .shop-search input{height:38px;font-size:16px}
  .pcard-more{min-height:40px}
  .crumbs a{display:inline-flex;align-items:center;min-height:32px}
  .shop-search{flex:1 1 100%;margin-left:0}
  .pgrid,.shop-steps{grid-template-columns:minmax(0,1fr);gap:14px}
  .pcard-media{aspect-ratio:2/1}
  .pcard-body{padding:14px}
  .pcard-buy{min-height:44px}
  .shop-steps li{padding:14px 12px}
  .pd-media{aspect-ratio:16/10;border-radius:var(--r-lg)}
  .pd-info h1{font-size:1.5rem;line-height:1.2}
  .pd-amt{font-size:1.5rem}
  .pd-buy{padding:12px}
  .pd-buy .btn{min-height:48px}
  .pd-desc h2,.shop-how h2{font-size:1.25rem}
  .pd-back .back-link{min-height:40px}
}
@media (pointer:coarse){
  .shop-search input{height:38px;font-size:16px}
  .cat-chip{min-height:40px}
  .crumbs a{display:inline-flex;align-items:center;min-height:32px}
}
