/* Shop-only pieces, matched to the shared theme in theme.css. */
body.page-shop .coming-soon-banner { background:#efe5cf; border-bottom:1px solid #d6c39a; color:#4d3c1f; font-size:14px; padding:12px 5%; text-align:center; }
body.page-shop .placeholder-tile { background:radial-gradient(ellipse at 50% 44%,#33352e 0%,#20231f 60%,#191b19 100%); color:#d4c19f; font-family:Barlow,Arial,sans-serif; font-weight:700; font-size:20px; letter-spacing:.18em; }
body.page-shop .placeholder-tile small { color:#b8bdb2; font-weight:500; font-size:11px; letter-spacing:.12em; }
body.page-shop .placeholder-tile.dialog-image { height:215px; border-radius:4px; }
body.page-shop .card .card-kicker { font-size:11px; letter-spacing:1.4px; color:var(--gold); margin-bottom:8px; }
body.page-shop .card-meta span { color:var(--muted); }
body.page-shop .tag-hold { background:#3a2e1b!important; color:#f2e2c3!important; }
body.page-shop .filter-note .reset { padding:12px 0 0; display:inline-flex; align-items:center; gap:10px; }
body.page-shop .requirements { background:#fffdf9; gap:60px; }
body.page-shop .requirements-intro { font-size:15px; }
body.page-shop .requirement-list { gap:28px 36px; }
body.page-shop .requirement-list li { border-top:2px solid #b69863; padding-top:20px; }
body.page-shop .requirement-list strong { font-size:17px; }
body.page-shop .requirement-list span { font-size:15px; }
body.page-shop .inline-link { color:#6c5029; border-color:#b7a37e; }
body.page-shop form label.check { font-size:14px; }
body.page-shop form label.check input { min-height:0; width:20px; height:20px; }
body.page-shop #residency-note { font-size:14px; }
@media (max-width:700px) {
  body.page-shop .requirements { gap:22px; }
  body.page-shop .placeholder-tile.dialog-image { height:165px; }
}

/* Retail catalog patterns: breadcrumbs, category tiles, product cards. */
body.page-shop .card-image { height:200px; background:#fff; }
body.page-shop .ribbon { position:absolute; left:0; top:12px; background:#806032; color:#fff; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:6px 16px 6px 10px; clip-path:polygon(0 0,100% 0,calc(100% - 9px) 100%,0 100%); }
body.page-shop .ribbon-hold { background:#3a2e1b; color:#f2e2c3; }
body.page-shop .card-body { padding:0 0 18px; }
body.page-shop .card-head { background:#22251f; color:#f6f3ec; padding:12px 30px 12px 16px; margin:0 0 14px; clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%); }
body.page-shop .card .card-brand { font-size:16px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; color:#d4c19f; margin:0 0 2px; line-height:1.2; }
body.page-shop .card-head h3 { color:#f6f3ec; font-size:13px; font-weight:500; text-transform:uppercase; letter-spacing:.04em; margin:0; line-height:1.35; }
body.page-shop .card-specs { list-style:none; margin:0 16px 12px; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
body.page-shop .card-specs li { font-size:12px; font-weight:600; color:#414338; background:#f1ece2; border:1px solid #e0d8c8; border-radius:3px; padding:3px 8px; }
body.page-shop .card .card-condition { font-size:12px; color:var(--muted); margin:0 16px 10px; }
body.page-shop .card-condition strong { color:var(--ink); }
body.page-shop .card-meta { margin:auto 16px 0; padding:4px 0 14px; align-items:flex-end; }
body.page-shop .card-price { display:flex; flex-direction:column; }
body.page-shop .card-price strong { font-size:24px; font-weight:800; color:var(--ink); line-height:1.1; }
body.page-shop .card-price s, body.page-shop .dialog-meta s { font-size:13px; color:var(--muted); }
body.page-shop .card-sku { font-size:11px; color:var(--muted); }
body.page-shop .card button { margin:0 16px; width:calc(100% - 32px); background:#806032; border-color:#806032; color:#fff; justify-content:center; gap:14px; text-transform:uppercase; letter-spacing:1px; font-weight:700; }
body.page-shop .card button:hover { background:#664b27; border-color:#664b27; }
body.page-shop .placeholder-tile:not(.dialog-image) { background:linear-gradient(180deg,#f4f1ea,#e6e0d3); color:#7d6a49; }
body.page-shop .placeholder-tile:not(.dialog-image) small { color:#8e897d; }
@media (max-width:700px) {
  body.page-shop .card-image { height:180px; }
}

/* Shop header: sticky search and category strip (replaces the hero). */
body.page-shop header nav { gap:26px; }
body.page-shop .shop-bar { position:sticky; top:0; z-index:20; background:#22251f; padding:12px 5% 10px; border-bottom:1px solid #3a3e35; }
body.page-shop .shop-search { display:flex; max-width:900px; margin:0 auto 10px; }
body.page-shop .shop-search input { flex:1; min-width:0; min-height:48px; border:0; border-radius:4px 0 0 4px; padding:0 16px; font-size:16px; background:#fffdf9; color:var(--ink); }
body.page-shop .shop-search button { flex:0 0 58px; border:0; border-radius:0 4px 4px 0; background:#b69863; color:#191b19; display:flex; align-items:center; justify-content:center; }
body.page-shop .shop-search button:hover { background:#c9ab76; }
body.page-shop .cat-strip { display:flex; flex-wrap:nowrap; width:auto; gap:8px; max-width:900px; margin:0 auto; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; padding:2px; border:0; }
body.page-shop .cat-strip::-webkit-scrollbar { display:none; }
body.page-shop .cat-strip button { flex:0 0 auto; scroll-snap-align:start; min-height:40px; padding:8px 15px; border:1px solid #4d5246; border-radius:999px; background:transparent; color:#ece7da; font-size:13px; font-weight:600; white-space:nowrap; }
body.page-shop .cat-strip button:hover { border-color:#b69863; }
body.page-shop .cat-strip button.active { background:#b69863; border-color:#b69863; color:#191b19; }
body.page-shop .shop-trust { list-style:none; margin:0; padding:10px 5%; display:flex; flex-wrap:wrap; justify-content:center; gap:6px 26px; background:#ede8dd; border-bottom:1px solid var(--line); font-size:13px; color:#4d493d; }
body.page-shop .shop-trust li:not(:last-child)::before { content:'✓'; color:#806032; font-weight:700; margin-right:7px; }
body.page-shop .shop-trust a { color:#6c5029; font-weight:600; border-bottom:1px solid #b7a37e; }

/* Catalog area. */
body.page-shop .shop-main { padding:22px 5% 60px; }
body.page-shop .breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#9a7a45; margin-bottom:14px; }
body.page-shop .breadcrumbs a { color:#c9a96e; border-bottom:1px solid transparent; }
body.page-shop .breadcrumbs a:hover { border-color:currentColor; }
body.page-shop .catalog-layout { grid-template-columns:240px minmax(0,1fr); gap:28px; align-items:start; }
body.page-shop .filters { position:sticky; top:132px; }
body.page-shop .filters-head { display:flex; justify-content:space-between; align-items:center; padding-left:9px; margin-bottom:14px; }
body.page-shop .filters-head h2 { font-size:12px; letter-spacing:1.4px; text-transform:uppercase; color:#d1b47e; margin:0; padding:0; font-weight:600; }
body.page-shop .filters-close, body.page-shop .filters-apply, body.page-shop .filters-toggle { display:none; }
body.page-shop .toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
body.page-shop .item-count { font-size:18px; font-weight:700; color:var(--ink); }
body.page-shop .toolbar-actions { display:flex; gap:10px; align-items:center; }
body.page-shop .sort { width:auto; }
body.page-shop .cards { grid-template-columns:repeat(auto-fill,minmax(min(100%,235px),1fr)); gap:18px; }

/* Tablet and phone: filters become a slide-out drawer. */
@media (max-width:900px) {
  body.page-shop .shop-bar { padding:10px 4% 8px; }
  body.page-shop .shop-main { padding:18px 4% 48px; }
  body.page-shop .catalog-layout { grid-template-columns:1fr; gap:0; }
  body.page-shop .filters { position:fixed; top:0; bottom:0; left:0; z-index:40; width:min(340px,88vw); height:auto; border-radius:0; overflow-y:auto; overscroll-behavior:contain; transform:translateX(-102%); visibility:hidden; transition:transform .25s ease,visibility .25s; padding:18px 18px 24px; display:flex; flex-direction:column; }
  body.page-shop .filters.open { transform:none; visibility:visible; transition:transform .25s ease,visibility 0s; }
  body.page-shop .filters-backdrop { position:fixed; inset:0; z-index:39; background:#0d100cb3; }
  body.page-shop.drawer-open { overflow:hidden; }
  body.page-shop .filters-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; background:transparent; color:#f6f3ec; font-size:28px; }
  body.page-shop .filters-apply { display:flex; margin-top:auto; width:100%; }
  body.page-shop .filters .filter-note { display:block; margin-bottom:18px; }
  body.page-shop #types { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
  body.page-shop .filters .category { border:1px solid #4b5547; padding:8px 12px; }
  body.page-shop .filters label { margin:12px 0 6px; }
  body.page-shop .filters-toggle { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border:1px solid #bfb8aa; border-radius:4px; background:#fffdf9; font-weight:600; font-size:14px; color:var(--ink); }
  body.page-shop .filter-count { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; border-radius:11px; background:#806032; color:#fff; font-size:12px; }
  body.page-shop .sort { font-size:0; gap:0; }
  body.page-shop .sort select { min-height:44px; font-size:14px; max-width:190px; }
}
@media (max-width:600px) {
  body.page-shop .shop-search input { min-height:44px; font-size:16px; }
  body.page-shop .shop-trust { justify-content:flex-start; gap:4px 16px; padding:8px 4%; font-size:12px; }
  body.page-shop .shop-trust li:nth-child(3) { display:none; }
    body.page-shop .toolbar { gap:10px; }
  body.page-shop .item-count { font-size:16px; }
  body.page-shop .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  body.page-shop .card-image { height:120px; }
  body.page-shop .placeholder-tile:not(.dialog-image) { font-size:14px; letter-spacing:.12em; }
  body.page-shop .ribbon { font-size:9px; padding:4px 11px 4px 7px; top:8px; }
  body.page-shop .card-head { padding:9px 18px 9px 10px; margin-bottom:10px; clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%); }
  body.page-shop .card .card-brand { font-size:13px; }
  body.page-shop .card-head h3 { font-size:11px; }
  body.page-shop .card-specs { margin:0 10px 8px; gap:4px; }
  body.page-shop .card-specs li { font-size:10.5px; padding:2px 6px; }
  body.page-shop .card-specs li:nth-child(n+3) { display:none; }
  body.page-shop .card .card-condition { margin:0 10px 6px; font-size:11px; }
  body.page-shop .card-meta { margin:auto 10px 0; padding-bottom:10px; }
  body.page-shop .card-price strong { font-size:19px; }
  body.page-shop .card-sku { display:none; }
  body.page-shop .card button { margin:0 10px; width:calc(100% - 20px); min-height:42px; font-size:11px; padding:8px; letter-spacing:.6px; }
  body.page-shop .card button .arrow { display:none; }
}
@media (max-width:340px) {
  body.page-shop .cards { grid-template-columns:1fr; }
  body.page-shop .card-image { height:150px; }
}

/* Coming-soon notice, services. */
body.page-shop .ribbon-soon { background:#22251f; color:#d4c19f; }
body.page-shop .notice-dialog { width:min(480px,calc(100% - 28px)); text-align:left; }
body.page-shop .notice-dialog h2 { margin-bottom:14px; }
body.page-shop .notice-dialog p:not(.eyebrow) { font-size:15px; color:var(--muted); }
body.page-shop .notice-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
body.page-shop .notice-actions .button { flex:1 1 180px; }
body.page-shop .notice-secondary { background:transparent!important; color:#6c5029!important; border-color:#b7a37e!important; }
body.page-shop .notice-secondary:hover { background:#f1ece2!important; }
body.page-shop .services { background:#fffdf9; border-top:1px solid var(--line); }
body.page-shop .service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
body.page-shop .service-card { border:1px solid #ded7ca; border-top:3px solid #b69863; border-radius:6px; padding:24px; background:#fff; display:flex; flex-direction:column; align-items:flex-start; }
body.page-shop .service-card h3 { font-size:21px; margin-bottom:8px; }
body.page-shop .service-card p { font-size:15px; color:var(--muted); margin-bottom:10px; }
body.page-shop .service-card .service-fee { font-weight:600; color:#6c5029; margin-bottom:18px; }
body.page-shop .service-card .button { margin-top:auto; }
@media (max-width:700px) {
  body.page-shop .service-grid { grid-template-columns:1fr; gap:14px; }
  body.page-shop .service-card { padding:20px; }
  body.page-shop .service-card .button { width:100%; }
  body.page-shop .coming-soon-banner { font-size:13px; padding:10px 4%; text-align:left; }
}
body.page-shop :is(section[id],#inventory) { scroll-margin-top:130px; }
body.page-shop .service-card .service-contact { font-size:14px; margin:-6px 0 18px; }
/* "Can't find it?" request box under the product grid. */
body.page-shop .find-request{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 8px;padding:22px 24px;background:#22251f;color:#f6f3ec;border-radius:6px;border-left:3px solid #b69863}
body.page-shop .find-request h3{font-size:20px;margin:0 0 4px;color:#f6f3ec}
body.page-shop .find-request p{margin:0;font-size:14px;color:#c9ccc2}
body.page-shop .find-request .button{flex:0 0 auto}
@media (max-width:600px){body.page-shop .find-request{flex-direction:column;align-items:stretch;padding:18px}body.page-shop .find-request .button{width:100%}}
/* Type illustration shown until a listing has its own photo. */
body.page-shop .listing-photo{position:relative;margin:0;width:100%;height:100%;background:#fff}
body.page-shop .card-image .listing-photo img{width:100%;height:100%;object-fit:contain;filter:none;padding:10px 10px 22px}
body.page-shop .listing-photo .photo-credit{position:absolute;left:0;right:0;bottom:0;margin:0;padding:3px 8px;font-size:10px;line-height:1.3;color:#6f6a5f;background:#ffffffe0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.page-shop .listing-photo .photo-credit a{color:inherit}
body.page-shop .listing-photo.dialog-image{height:auto;object-fit:initial;margin-bottom:24px}
body.page-shop .listing-photo.dialog-image img{display:block;width:100%;height:240px;object-fit:contain;background:#fff;border-radius:4px}
body.page-shop .listing-photo.dialog-image figcaption .photo-credit{position:static;background:none;padding:6px 0 0;white-space:normal}
body.page-shop .photo-note{margin:6px 0 0;font-size:13px;color:#4f5249;font-style:italic}
@media (max-width:700px){body.page-shop .listing-photo.dialog-image img{height:180px}body.page-shop .card-image .listing-photo img{padding:6px 6px 18px}body.page-shop .listing-photo .photo-credit{font-size:9px;padding:2px 6px}}

/* Shop hero: dark band like the catalog reference, with public-domain product photos. */
body.page-shop .shop-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:40px;padding:44px 5% 48px;background:radial-gradient(ellipse at 78% 40%,#2f322b 0%,#1d201c 55%,#161816 100%);color:#f2eee6;border-bottom:3px solid #98743d;overflow:hidden}
body.page-shop .shop-hero h1{margin:0;font-size:clamp(34px,4.6vw,60px);line-height:1;letter-spacing:-.01em;text-transform:uppercase;color:#fff}
body.page-shop .shop-hero-tag{margin:12px 0 14px;color:#c9a96e;font-weight:800;font-size:clamp(14px,1.4vw,18px);letter-spacing:.06em;text-transform:uppercase}
body.page-shop .shop-hero-copy>p:last-child{margin:0;max-width:560px;color:#cfd2c9;font-size:15px;line-height:1.65}
body.page-shop .shop-hero-art{position:relative;height:230px}
body.page-shop .hero-card{position:absolute;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px;padding:12px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
body.page-shop .hero-card img{width:100%;height:100%;object-fit:contain}
body.page-shop .hc-1{width:46%;height:150px;left:4%;top:8px;transform:rotate(-3deg);z-index:2}
body.page-shop .hc-2{width:70%;height:96px;right:0;top:20px;transform:rotate(2deg);padding:0;overflow:hidden;background:#2b2a2c}
body.page-shop .hc-2 img{object-fit:cover}
body.page-shop .hc-3{width:72%;height:84px;right:6%;bottom:6px;transform:rotate(-1.5deg);z-index:3}
@media (max-width:900px){body.page-shop .shop-hero{grid-template-columns:1fr;gap:0;padding:30px 6% 32px}body.page-shop .shop-hero-art{display:none}}

/* Search help and match labels. */
body.page-shop .search-hint{margin:0 0 16px;padding:12px 16px;background:#fff;border:1px solid #e3dccd;border-left:3px solid #98743d;border-radius:4px;font-size:14px;color:#3d3f39}
body.page-shop .search-hint p{margin:0}
body.page-shop .search-hint p+p,body.page-shop .search-hint .hint-row{margin-top:8px}
body.page-shop .hint-row{display:flex;flex-wrap:wrap;gap:8px}
body.page-shop .hint-link{font:inherit;font-weight:700;color:#7a5a28;background:none;border:0;padding:0;border-bottom:1px solid currentColor;cursor:pointer}
body.page-shop .hint-row .hint-link{border:1px solid #d8cdb7;border-radius:999px;padding:6px 12px;background:#faf7f1;min-height:36px}
body.page-shop .hint-link:hover{color:#4f3a17}
body.page-shop .match-tag{position:absolute;right:8px;top:8px;z-index:2;padding:3px 8px;border-radius:3px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#efe9dd;color:#6b6457}
body.page-shop .match-tag.match-exact{background:#98743d;color:#fff}
