/* Public catalog pages (templates/_public/page.html): product, section, catalog index.
   On top of landing.css: its tokens (--ink, --muted, --line, --soft), header and footer. */

.pubPage{padding:28px 0 70px;min-width:0}
.pubPage h1{font-size:clamp(1.75rem,3.2vw,2.625rem);letter-spacing:-1.4px;line-height:1.12;margin:8px 0 16px;max-width:860px}
.pubPage h2{font-size:1.375rem;letter-spacing:-.5px}
.pubNote{font-size:.75rem;color:var(--muted);margin:14px 0 0;max-width:620px}
.pubNote a{text-decoration:underline;text-underline-offset:3px}

/* -- Breadcrumbs ------------------------------------------------------------------- */
/* landing.css styles every <nav> as the header menu (and hides it on phones). */
nav.pubCrumbs,nav.pubPager{margin:0;font-weight:400}
nav.pubCrumbs{display:block}
.pubCrumbs ol{display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;list-style:none;font-size:.75rem;color:var(--muted)}
.pubCrumbs li+li:before{content:'›';margin-right:8px;color:#b5b6ba}
.pubCrumbs a:hover{color:var(--ink);text-decoration:underline}
.pubCrumbs [aria-current]{color:var(--ink);overflow-wrap:anywhere}

/* -- Product ----------------------------------------------------------------------- */
.pubProduct{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;margin-top:22px;align-items:start}
.pubProduct__pictures{display:grid;gap:12px}
.pubProduct__pictures img,.pubProduct__noPicture{width:100%;aspect-ratio:4/3;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:white}
.pubProduct__noPicture{background:var(--soft)}
.pubProduct__meta{font-size:.75rem;color:var(--muted);margin:0;overflow-wrap:anywhere}
.pubProduct__main h1{overflow-wrap:anywhere}
.pubProduct__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}

/* -- Facts (components/public_facts.html) ------------------------------------------ */
.pubFacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:0}
.pubFacts__item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:white;min-width:0}
.pubFacts dt{font-size:.6875rem;color:var(--muted)}
.pubFacts dd{margin:3px 0 0;font-size:.875rem;font-weight:500;overflow-wrap:anywhere}
.pubFacts__item--price dd{font-size:1rem;font-weight:600}
.pubFacts--compact{grid-template-columns:1fr;gap:2px}
.pubFacts--compact .pubFacts__item{display:flex;justify-content:space-between;gap:10px;padding:2px 0;border:0;background:none}
.pubFacts--compact dd{margin:0;font-size:.75rem;text-align:right}
.pubFacts--compact .pubFacts__item--price dd{font-size:.8125rem}

/* -- Specs ------------------------------------------------------------------------- */
.pubSpecs{margin-top:48px;max-width:860px}
.pubSpecs dl{margin:14px 0 0}
.pubSpecs dl div{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.875rem}
.pubSpecs dt{color:var(--muted)}
.pubSpecs dd{margin:0;overflow-wrap:anywhere}

/* -- Section ----------------------------------------------------------------------- */
.pubChips{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0;list-style:none}
.pubChips a{display:inline-flex;gap:8px;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;font-size:.8125rem;background:var(--soft)}
.pubChips a:hover{background:#eaeaec}
.pubChips span{color:var(--muted);font-size:.75rem}
.pubPage h2.pubSubtitle{margin:26px 0 0;font-size:1rem;letter-spacing:0}
.pubProduct__meta a{text-decoration:underline;text-underline-offset:2px}
.pubGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:26px}

/* -- Card (components/public_product_card.html) ------------------------------------ */
.pubCard{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:white;min-width:0}
.pubCard__link{display:flex;flex-direction:column;gap:6px}
.pubCard__link:hover .pubCard__name{text-decoration:underline}
.pubCard__picture{display:block;aspect-ratio:4/3;border-radius:8px;background:var(--soft);overflow:hidden}
.pubCard__picture img{width:100%;height:100%;object-fit:contain;background:white}
.pubCard__meta{font-size:.6875rem;color:var(--muted);overflow-wrap:anywhere}
.pubCard__name{margin:0;font-size:.875rem;font-weight:600;line-height:1.35;letter-spacing:0;overflow-wrap:anywhere}

/* -- «Поставщик скрыт» (components/public_hidden_stock.html, public_hidden_list.html) -- */
.pubHidden{margin-top:26px;padding:18px 20px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
.pubHidden__title{margin:0 0 10px;font-size:1rem}
.pubHidden .pubFacts--compact{max-width:420px}
.pubHidden__list{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.pubHidden__item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:white;min-width:0}
.pubHidden__item>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.pubHidden__terms{font-size:.75rem;color:var(--muted)}

/* -- Pager (components/public_pager.html) ------------------------------------------ */
.pubPager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:30px;font-size:.8125rem;color:var(--muted)}

/* -- Catalog index and the landing's «Каталог» block ------------------------------- */
.pubSections{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:26px}
.pubSections__group{padding:22px;border:1px solid var(--line);border-radius:12px}
.pubSections__group h2{font-size:1.0625rem;margin:0 0 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pubSections__icon{flex:none;width:40px;height:40px}
.pubSections__group h2 a:hover,.pubSections__group li a:hover{text-decoration:underline}
.pubSections span{color:var(--muted);font-size:.75rem;font-weight:400}

/* -- «Бренды» (components/public_brand_index.html) ------------------------------- */
.pubLetters{display:flex;flex-wrap:wrap;gap:4px;margin-top:22px}
.pubLetters a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:0 6px;border:1px solid var(--line);border-radius:8px;font-size:.8125rem;background:var(--soft)}
.pubLetters a:hover{background:#eaeaec}
.pubBrands{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:26px}
.pubBrands__group{padding:18px;border:1px solid var(--line);border-radius:12px;scroll-margin-top:16px}
.pubPage .pubBrands__group h2{font-size:1.0625rem;margin:0 0 10px}
.pubBrands__group ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:.875rem}
.pubBrands__group li a:hover{text-decoration:underline}
.pubBrands__group span{color:var(--muted);font-size:.75rem}
.pubSections ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:.8125rem}

/* -- Supplier (directory/public/supplier.html, components/public_supplier_card.html,
      public_review_list.html) ------------------------------------------------------- */
.pubCompany{max-width:860px;margin-top:22px}
.pubCompany h1{overflow-wrap:anywhere}
.pubCompany__badges,.pubSupplier__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 0;font-size:.8125rem;color:var(--muted)}
.pubBadge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);font-size:.6875rem;font-weight:600}
.pubSource{color:var(--muted);font-size:.75rem}
.pubChips .pubChips__plain{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:9px;font-size:.8125rem;color:var(--ink);background:var(--soft)}
.pubSpecs dt a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.pubSupplier{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:12px;background:white;min-width:0}
.pubSupplier__link:hover .pubSupplier__name{text-decoration:underline}
.pubSupplier__name{margin:0;font-size:.9375rem;font-weight:600;line-height:1.35;letter-spacing:0;overflow-wrap:anywhere}
.pubSupplier__meta{margin:0;font-size:.75rem}
.pubSupplier__offers{margin:0;font-size:.75rem;color:var(--muted)}
.pubReviews{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.pubReviews__item{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:white}
.pubReviews__head{display:flex;gap:10px;align-items:center;margin:0;font-size:.8125rem}
.pubReviews__head time{color:var(--muted);font-size:.75rem}
.pubReviews__text{margin:6px 0 0;font-size:.875rem;white-space:pre-line;overflow-wrap:anywhere}
/* -- Tenders (tenders/public/*, components/public_tender_card.html) ---------------- */
.pubTenderPage{margin-top:22px;max-width:960px}
.pubTenderPage h1{overflow-wrap:anywhere}
.pubTenderPage .pubFacts{margin-top:8px}
.pubMuted{font-size:.75rem;color:var(--muted);margin:2px 0 0}
.pubFacts dd a,.pubTender__customer a{text-decoration:underline;text-underline-offset:3px}
.pubText{white-space:pre-line;font-size:.875rem;line-height:1.55;overflow-wrap:anywhere;margin:12px 0 0}
.pubLines__list{margin:14px 0 0;padding-left:1.4em;display:grid;gap:12px;font-size:.875rem}
.pubLines__name{margin:0;font-weight:500;overflow-wrap:anywhere}
.pubLines__chars{margin:4px 0 0;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
.pubTenders{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:22px}
.pubTender{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--line);border-radius:12px;background:white;min-width:0}
.pubTender__meta,.pubTender__customer{margin:0;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}
.pubTender__title{margin:0;font-size:.9375rem;font-weight:600;line-height:1.35;letter-spacing:0;overflow-wrap:anywhere}
.pubTender__title a:hover{text-decoration:underline}
.pubTender__facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:6px 0 0}
.pubTender__facts dt{font-size:.6875rem;color:var(--muted)}
.pubTender__facts dd{margin:2px 0 0;font-size:.875rem;font-weight:600}
.pubSimilar{margin-top:48px}
.pubPage>h2{margin:40px 0 0}
.pubPage h2+.pubChips{margin-top:12px}

/* -- Brand page (catalog/public/brand_page.html) ------------------------------------ */
.pubBrandHead{display:flex;align-items:center;gap:20px}
.pubBrandHead__logo{width:72px;height:72px;object-fit:contain;flex:none;padding:8px;border:1px solid var(--line);border-radius:12px;background:white}

@media(max-width:760px){
.pubPage{padding:16px 0 48px}
.pubProduct{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:16px}
.pubProduct__pictures{grid-template-columns:repeat(2,minmax(0,1fr))}
.pubProduct__pictures>:only-child{grid-column:1/-1}
.pubProduct__noPicture,.pubCard__picture--empty{display:none}
nav.pubCrumbs{display:block}
nav.pubPager{display:flex}
.pubLetters a{min-width:44px;min-height:44px}
.pubProduct__actions .btn{flex:1 1 100%;min-height:48px}
.pubFacts{grid-template-columns:repeat(2,minmax(0,1fr))}
.pubFacts--compact{grid-template-columns:1fr}
.pubSpecs{margin-top:34px}
.pubSpecs dl div{grid-template-columns:minmax(0,1fr);gap:2px}
.pubGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pubTenders{grid-template-columns:minmax(0,1fr);gap:10px}
.pubBrandHead{gap:12px}
.pubBrandHead__logo{width:52px;height:52px;padding:6px}
.pubCard{padding:10px}
.pubHidden{padding:14px}
.pubHidden__item{flex-direction:column;align-items:stretch}
.pubHidden__item .btn{min-height:44px}
.pubChips a{min-height:44px}
.pubPager .btn{min-height:44px}
}
@media(max-width:420px){.pubGrid{grid-template-columns:minmax(0,1fr)}}
/* stock_as_of on public pages (components.css is not loaded here) */
.stock-as-of{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.stock-as-of--stale{color:var(--tone-attention-text);background:var(--tone-attention-bg);border-radius:4px;padding:0 4px}
