/* =========================================================
ANVIL0 — Shop page visual layer ("Sand & Ink" redesign, wave 2)
Loaded ONLY by shop.html, AFTER css/styles.css and the page's own
inline <style> block (filter-panel/pagination rules). Same pattern
as css/home-v2.css: everything here is scoped under body.shop-v2,
so it cannot leak to any other page. Reuses the exact same design
tokens/fonts as home-v2.css so the two pages read as one system.

Nothing here changes markup, ids, or JS-driven behavior — filters,
sort, pagination, Quick View and Add to Cart all keep working
exactly as before; this file only restyles the existing DOM.
========================================================= */

body.shop-v2{
--hv-ink: #0e0d0c;
--hv-panel: #191715;
--hv-panel-2: #14120f;
--hv-line: #232019;
--hv-line-soft: #2b261d;
--hv-line-btn: #3a352c;
--hv-sand: #c9b494;
--hv-sand-hi: #d8c5a8;
--hv-sand-dark: #17130d;
--hv-paper: #ece7dd;
--hv-text-2: #d6cec1;
--hv-text-3: #b8ad9c;
--hv-text-4: #8d8272;

--hv-display: 'Archivo', 'Arial Narrow', sans-serif;
--hv-body: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--hv-mono: 'JetBrains Mono', 'Courier New', monospace;

/* Legacy variable bridge — recolors any leftover inline
style="...var(--accent...)" (e.g. the shared footer's Privacy Policy
link, and any other var(--accent)-styled inline links on this page)
without touching markup. */
--accent: var(--hv-sand);

background: var(--hv-ink);
background-image: none;
}
body.shop-v2 #main-content,
body.shop-v2 .site-footer{
background: var(--hv-ink);
font-family: var(--hv-body);
color: var(--hv-paper);
}

/* ---------------------------------------------------------------
Announcement bar — identical treatment to home-v2.
--------------------------------------------------------------- */
body.shop-v2 .announce{
background: var(--hv-panel);
border-bottom: 1px solid var(--hv-line);
color: var(--hv-text-3);
font-family: var(--hv-mono);
letter-spacing: 0.14em;
}
body.shop-v2 .announce b{ color: var(--hv-sand); font-weight: 500; }

/* ---------------------------------------------------------------
Header — identical treatment to home-v2. Display/flex/media-query
behavior is left to styles.css so the mobile hamburger toggle and
the i18n language switcher keep working exactly as before.
--------------------------------------------------------------- */
body.shop-v2 .site-header{
background: rgba(14,13,12,0.94);
border-bottom: 1px solid var(--hv-line);
}
body.shop-v2 .logo-word{
font-family: var(--hv-display);
font-weight: 800;
letter-spacing: 0.14em;
color: var(--hv-paper);
}
body.shop-v2 .logo-word b{ color: var(--hv-sand); }
body.shop-v2 .logo small{
font-family: var(--hv-mono);
color: var(--hv-text-4);
}
body.shop-v2 .main-nav a{
font-family: var(--hv-body);
font-weight: 500;
letter-spacing: 0.04em;
text-transform: none;
color: var(--hv-text-3);
}
body.shop-v2 .main-nav a:hover,
body.shop-v2 .main-nav a.active{
color: var(--hv-paper);
border-color: var(--hv-sand);
}
body.shop-v2 .main-nav a .tag{
font-family: var(--hv-mono);
background: var(--hv-line);
color: var(--hv-text-4);
}
body.shop-v2 .nav-icon-btn{
color: var(--hv-text-3);
font-family: var(--hv-mono);
}
body.shop-v2 .nav-icon-btn:hover{ color: var(--hv-paper); }
body.shop-v2 .cart-count{
background: var(--hv-sand);
color: var(--hv-sand-dark);
}

/* Buttons — identical treatment to home-v2, scoped so every other
page's .btn is untouched. */
body.shop-v2 .btn{
font-family: var(--hv-body);
border-radius: 999px;
letter-spacing: 0.02em;
text-transform: none;
transition: background-color .15s ease-out, border-color .15s ease-out, color .15s ease-out;
}
body.shop-v2 .btn-primary{
background: var(--hv-sand);
color: var(--hv-sand-dark);
border: none;
font-weight: 600;
}
body.shop-v2 .btn-primary:hover{ background: var(--hv-sand-hi); }
body.shop-v2 .btn-outline{
background: transparent;
border: 1px solid var(--hv-line-btn);
color: var(--hv-text-2);
}
body.shop-v2 .btn-outline:hover{ border-color: #554d40; color: var(--hv-paper); }
body.shop-v2 .btn-light{
background: var(--hv-paper);
color: var(--hv-ink);
border: none;
font-weight: 600;
}
body.shop-v2 .btn-light:hover{ background: #ffffff; }

/* ---------------------------------------------------------------
Breadcrumb
--------------------------------------------------------------- */
body.shop-v2 .breadcrumb{
font-family: var(--hv-mono);
color: var(--hv-text-4);
border-bottom: 1px solid var(--hv-line);
}
body.shop-v2 .breadcrumb a{ color: var(--hv-text-4); }
body.shop-v2 .breadcrumb a:hover{ color: var(--hv-sand); }
body.shop-v2 .breadcrumb span{ color: var(--hv-text-3); }

/* ---------------------------------------------------------------
Filter rail (left column). Overrides the page's own inline
<style> block (lower specificity: plain class selectors there vs
body.shop-v2 .x here) — no change to layout/structure.
--------------------------------------------------------------- */
body.shop-v2 .filter-panel{
background: var(--hv-panel);
border: 1px solid var(--hv-line);
border-radius: 16px;
}
body.shop-v2 .filter-panel .heading-caption{
font-family: var(--hv-mono);
color: var(--hv-text-3);
text-transform: uppercase;
font-weight: 500;
}
body.shop-v2 .filter-check{
font-family: var(--hv-body);
color: var(--hv-text-2);
border-bottom: 1px solid var(--hv-line);
}
body.shop-v2 .filter-check span.count{ color: var(--hv-text-4); font-family: var(--hv-mono); }
body.shop-v2 .price-range input{
background: var(--hv-ink);
border: 1px solid var(--hv-line-btn);
color: var(--hv-paper);
font-family: var(--hv-mono);
border-radius: 8px;
}
body.shop-v2 .filter-panel-disabled{ opacity: .5; }
body.shop-v2 .filter-soon-note{ color: var(--hv-text-4); font-family: var(--hv-mono); }

/* Ad blocks (both rails) — same "spec plate" content, restyled to
plain rounded panels matching the bento tiles on the homepage
instead of the old copper notched-corner treatment. */
body.shop-v2 .ad-block{
background: var(--hv-panel);
border: 1px solid var(--hv-line);
border-radius: 16px;
clip-path: none;
}
body.shop-v2 .ad-block.hot{
background: var(--hv-sand);
border-color: var(--hv-sand);
}
body.shop-v2 .ad-block.hot .eyebrow,
body.shop-v2 .ad-block.hot .heading-caption,
body.shop-v2 .ad-block.hot p{ color: var(--hv-sand-dark); }
body.shop-v2 .ad-block.hot .eyebrow::before{ background: var(--hv-sand-dark); }
body.shop-v2 .ad-block .eyebrow{
font-family: var(--hv-mono);
color: var(--hv-text-3);
letter-spacing: 0.14em;
}
body.shop-v2 .ad-block .eyebrow::before{ background: var(--hv-sand); }
body.shop-v2 .ad-block .heading-caption{
font-family: var(--hv-display);
color: var(--hv-paper);
text-transform: none;
font-weight: 600;
}
body.shop-v2 .ad-block p{ font-family: var(--hv-body); color: var(--hv-text-3); }
body.shop-v2 .ad-block .tag-muted{ font-family: var(--hv-mono); color: var(--hv-text-4); border-color: var(--hv-line-btn); }
body.shop-v2 .ad-banner-img{
background: var(--hv-panel-2);
border: 1px solid var(--hv-line);
}
body.shop-v2 .ad-block .stars{ color: var(--hv-sand); }

/* Countdown (flash-sale ad-block) — same visual language as the
homepage bento's sale tile countdown. */
body.shop-v2 .ad-block .countdown{ gap: 8px; }
body.shop-v2 .ad-block .countdown .cd-unit{
background: var(--hv-sand-dark);
border: none;
border-radius: 10px;
color: var(--hv-paper);
}
body.shop-v2 .ad-block .countdown .cd-unit small{ color: var(--hv-text-3); font-family: var(--hv-mono); }

/* ---------------------------------------------------------------
Filter row (heading + sort dropdown)
--------------------------------------------------------------- */
body.shop-v2 .filter-row h1{
font-family: var(--hv-display);
font-weight: 800;
letter-spacing: -0.02em;
color: var(--hv-paper);
text-transform: none;
}
body.shop-v2 #shop-results-count{ font-family: var(--hv-mono) !important; color: var(--hv-text-4) !important; }
body.shop-v2 .sort-select{
background: var(--hv-panel);
border: 1px solid var(--hv-line-btn);
color: var(--hv-text-2);
font-family: var(--hv-mono);
border-radius: 999px;
}

/* ---------------------------------------------------------------
Product grid — #shop-grid keeps the exact .card markup rendered by
renderShopGrid()/productCardHTML() in js/main.js (shared with the
homepage catalog), so Add to Cart / Quick View / Favorite keep
working; this only restyles the look and adds "No. 0X" plate
numbering via a CSS counter, matching the homepage catalog.
--------------------------------------------------------------- */
body.shop-v2 #shop-grid{
counter-reset: hv-plate;
}
body.shop-v2 #shop-grid .card{
counter-increment: hv-plate;
background: none;
border: none;
border-radius: 0;
}
body.shop-v2 #shop-grid .card-media{
border-radius: 16px;
background: var(--hv-panel);
}
body.shop-v2 #shop-grid .card:hover .card-media img{ transform: scale(1.03); }
body.shop-v2 #shop-grid .card-media img{ transition: transform .25s ease-out; }
body.shop-v2 #shop-grid .card-body{ background: none; padding: 14px 2px 0; }
body.shop-v2 #shop-grid .card-title{
font-family: var(--hv-display);
font-weight: 600;
font-size: 17px;
letter-spacing: -0.01em;
color: var(--hv-paper);
text-transform: none;
}
body.shop-v2 #shop-grid .card:hover .card-title{ color: #ffffff; }
body.shop-v2 #shop-grid .card-desc{ display: none; }
body.shop-v2 #shop-grid .card-tags::before{
content: 'No. ' counter(hv-plate, decimal-leading-zero) ' \00b7 ';
font-family: var(--hv-mono);
}
body.shop-v2 #shop-grid .card-tags{
font-family: var(--hv-mono);
font-size: 11px;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--hv-text-4);
margin-top: 4px;
display: block;
}
body.shop-v2 #shop-grid .tag{ background: none; padding: 0; color: var(--hv-text-4); }
body.shop-v2 #shop-grid .card-foot{ margin-top: 12px; }
body.shop-v2 #shop-grid .price{ font-family: var(--hv-mono); color: var(--hv-sand); font-size: 14px; }
body.shop-v2 #shop-grid .price-label{ display: none; }
body.shop-v2 #shop-grid .btn-outline{
border: 1px solid var(--hv-line-btn);
color: var(--hv-text-2);
font-family: var(--hv-body);
}
body.shop-v2 #shop-grid .card-badge{
font-family: var(--hv-mono);
background: var(--hv-sand);
color: var(--hv-sand-dark);
border-radius: 999px;
}
body.shop-v2 #shop-grid .card-badge.badge-sale{ background: #c96b4a; color: var(--hv-paper); }
body.shop-v2 #shop-grid .card-badge.badge-new{ background: var(--hv-paper); color: var(--hv-sand-dark); }
body.shop-v2 #shop-grid .card-fav{
background: rgba(14,13,12,0.55);
border: 1px solid var(--hv-line);
}
body.shop-v2 #shop-grid .card-fav svg{ stroke: var(--hv-text-2); }
body.shop-v2 #shop-grid .card-quickview{
background: rgba(14,13,12,0.55);
border: 1px solid var(--hv-line);
color: var(--hv-text-2);
}
body.shop-v2 #shop-grid .card-quickview:hover{ background: var(--hv-sand); border-color: var(--hv-sand); color: var(--hv-sand-dark); }

/* ---------------------------------------------------------------
Pagination note
--------------------------------------------------------------- */
body.shop-v2 #shop-pagination-note{ font-family: var(--hv-mono) !important; color: var(--hv-text-4) !important; }
body.shop-v2 .pagination a{
border: 1px solid var(--hv-line-btn);
color: var(--hv-text-3);
font-family: var(--hv-mono);
border-radius: 999px;
}
body.shop-v2 .pagination a.active{ background: var(--hv-sand); border-color: var(--hv-sand); color: var(--hv-sand-dark); }

/* ---------------------------------------------------------------
Quick View modal (js/main.js opens .qv-overlay/.qv-modal on Quick
View click — global markup, appended under <body>, so it is
covered by this page's palette while shop-v2 is active).
--------------------------------------------------------------- */
body.shop-v2 .qv-overlay{ background: rgba(14,13,12,0.88); }
body.shop-v2 .qv-modal{
background: var(--hv-panel);
border: 1px solid var(--hv-line);
border-radius: 20px;
}
body.shop-v2 .qv-close{
background: rgba(14,13,12,0.55);
border: 1px solid var(--hv-line);
color: var(--hv-paper);
}
body.shop-v2 .qv-close:hover{ background: var(--hv-sand); border-color: var(--hv-sand); color: var(--hv-sand-dark); }
body.shop-v2 .qv-media{ background: var(--hv-panel-2); }
body.shop-v2 .qv-eyebrow{ font-family: var(--hv-mono); color: var(--hv-text-4); }
body.shop-v2 .qv-title{ font-family: var(--hv-display); color: var(--hv-paper); font-weight: 700; }
body.shop-v2 .qv-rating{ color: var(--hv-text-3); font-family: var(--hv-body); }
body.shop-v2 .qv-rating .stars{ color: var(--hv-sand); }
body.shop-v2 .qv-desc{ font-family: var(--hv-body); color: var(--hv-text-3); }
body.shop-v2 .qv-price-row .price{ font-family: var(--hv-mono); color: var(--hv-sand); }
body.shop-v2 .qv-price-row .old{ color: var(--hv-text-4); }

/* ---------------------------------------------------------------
Footer — identical treatment to home-v2.
--------------------------------------------------------------- */
body.shop-v2 .site-footer{ border-top: 1px solid var(--hv-line); }
body.shop-v2 .site-footer .heading-caption{
font-family: var(--hv-mono);
font-size: 10px;
letter-spacing: 0.14em;
color: var(--hv-paper);
text-transform: uppercase;
}
body.shop-v2 .site-footer p,
body.shop-v2 .site-footer ul a{ font-family: var(--hv-body); color: var(--hv-text-3); }
body.shop-v2 .site-footer ul a:hover{ color: var(--hv-sand); }
body.shop-v2 .site-footer .footer-bottom p{
font-family: var(--hv-mono);
font-size: 10px;
letter-spacing: 0.1em;
color: var(--hv-text-4);
}
body.shop-v2 .site-footer .logo-word{ color: var(--hv-paper); }
body.shop-v2 .site-footer .footer-pay span{ border-color: var(--hv-line-btn); color: var(--hv-text-4); font-family: var(--hv-mono); }
body.shop-v2 .social-row a{ border-color: var(--hv-line-btn); }
body.shop-v2 .social-row svg{ stroke: var(--hv-text-3); }

