/* CAP v0.3.0 modular extract: core */
/* Craft Art Prints System v0.2.28 — COLLECTIONS RESTORE + CLASSIC FOOTER PASS
   The CAP shell owns only the branded header/footer and shell UI.
   WoodMart + WooCommerce continue to own page, archive, product, cart and checkout presentation. */
:root{
  --caps-ink:#152d39;
  --caps-ink-soft:#314852;
  --caps-wine:#7a3f56;
  --caps-sage:#6f7d70;
  --caps-clay:#bf7a59;
  --caps-blue:#35586a;
  --caps-paper:#fbfaf7;
  --caps-cream:#f2ede4;
  --caps-line:#d8d4cd;
  --caps-dusk:#1e2b31;
  --caps-dusk-2:#263941;
}
/* =========================
   HEADER
   ========================= */
.caps-site-brand{
  display:flex;
  align-items:center;
  gap:15px;
  color:var(--caps-ink)!important;
  text-decoration:none!important;
  min-width:max-content;
}
/* live search */
.caps-search-result{display:grid;grid-template-columns:60px 1fr;gap:12px;padding:11px 13px;border-bottom:1px solid #efebe4;text-decoration:none!important;color:#26343b!important;}
.caps-search-result:hover,.caps-search-result.is-active{background:#f8f5ef;}
.caps-search-thumb{width:60px;height:60px;background:#f4f1eb;display:block;overflow:hidden;}
.caps-search-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.caps-search-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.caps-search-copy strong{font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.caps-search-artist,.caps-search-price{font-size:10.5px;color:#6c777b;margin-top:3px;}
.caps-search-all{display:flex;justify-content:space-between;padding:13px 14px;color:var(--caps-wine)!important;text-decoration:none!important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.caps-search-empty,.caps-search-loading{padding:20px 14px;font-size:12px;color:#697176;}
/* =========================
   ARTIST ARCHIVE TOP — PRESENTATION ONLY
   Native WoodMart/WooCommerce product loop remains untouched below.
   ========================= */
.caps-kicker{
  display:block;
  margin-bottom:12px;
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.17em;
}
.caps-hero-link{
  display:inline-flex;align-items:center;gap:13px;
  width:max-content;
  margin-top:28px;
  padding:13px 17px 12px;
  background:rgba(255,255,255,.94);
  color:var(--caps-ink)!important;
  text-decoration:none!important;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.09em;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.caps-hero-link:hover{transform:translateY(-2px);background:#fff;box-shadow:0 15px 34px rgba(0,0,0,.20);}
.caps-hero-link-arrow{font-size:16px;line-height:1;}
.caps-artwork-anchor{display:block;position:relative;top:-110px;height:1px;visibility:hidden;}
/* =========================
   SINGLE PRODUCT — STACKED PRESENTATION
   WoodMart/WooCommerce keep all native markup and behavior. CAP only changes
   the visual flow: gallery first, purchase summary second.
   ========================= */
/* Artist collections — immediate Woo child categories only. */
/* =========================
   FOOTER
   ========================= */
@media (max-width:960px){.caps-mobile-primary{border-left:4px solid var(--caps-clay);padding-left:12px!important;background:#f7f3ed;}
.caps-mobile-submenu-panel{display:flex;flex-direction:column;padding:4px 0 10px 14px;}
.caps-mobile-submenu-panel a{padding:11px 3px;color:#4d5a60!important;text-decoration:none!important;font-size:13px;}
.caps-mobile-label{margin-top:14px;padding:10px 5px 5px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:#8a8e8e;}}
/* =========================
   v0.2.30 COMPACT ARTIST FILTER BAR
   One tight desktop toolbar; wraps only as needed. Native Woo grid remains authoritative.
   ========================= */
/* =========================
   v0.2.33 VISUAL-FIRST FILTER BAR
   Square 90-degree controls + polished More overflow.
   ========================= */
/* v0.2.34 — instant single-choice filter interaction */
/* v0.2.40 — product copy hierarchy refinement only. */
/* =========================
   v0.2.41 — DIMENSION + DEPTH REFINEMENT
   Presentation only. Keeps the approved CAP structure and native Woo/WoodMart behavior.
   ========================= */
/* Header depth */
/* Artist storefront depth */
/* Native WoodMart artwork cards — artist storefronts only */
/* Stacked product page depth */
/* Footer depth */
/* =========================
   v0.2.45 — DESKTOP FILTER WIDTH + NO-PARTIAL-WRAP REFINEMENT
   Give the artist filter more horizontal room on desktop so the primary
   subject controls and Orientation/Size/Clear remain on one deliberate row.
   At narrower widths, switch cleanly to the established responsive layout
   instead of allowing one or two controls to orphan onto a second line.
   ========================= */
/* =========================
   v0.2.46 — FILTER ROW + MORE PANEL STABILITY
   Desktop uses an explicit five-column filter grid so the tag group and
   Orientation / Size / Clear controls cannot fight for flex width. The More
   panel is anchored to its trigger, stays above the product grid, and scrolls
   internally instead of being visually buried by artwork cards.
   ========================= */
/* Keep the dropdown above native WoodMart cards even when theme wrappers
   establish their own stacking contexts. */
/* =========================
   v0.2.47 — FILTER BAR WIDTH RESTORATION
   Keep the stable v0.2.46 desktop grid and More-panel anchoring, but prevent
   the filter toolbar from shrinking to the width of an enclosing theme/flex
   column. Match the visual span of the artwork grid with a deliberate desktop
   breakout and a non-shrinking basis.
   ========================= */
/* =========================
   v0.2.49 — ADAPTIVE ARTIST HERO + MOBILE FILTER UI
   One hero system with an optional portrait module. Portrait and no-portrait
   artists both resolve to intentional layered compositions, and adding a
   portrait later automatically activates the portrait variant. Desktop filter
   structure from v0.2.48 remains authoritative; mobile gets a dedicated UI.
   ========================= */
/* Artist hero: larger artwork field and more editorial depth. */
@media (min-width:761px){/* Portrait state: the portrait becomes an independent floating plane while
     the biography sits on a second plane. The hero remains the background art. */
/* No portrait is a designed endpoint, not a fallback. The biography becomes
     the floating editorial plane; no empty portrait column is reserved. */}
/* Bring browsing controls into the same visual rhythm as the new hero without
   changing the approved desktop bar structure. */
/* Mobile artist hero: same system, compressed deliberately. */
@media (max-width:760px){/* Dedicated mobile filter UI. Desktop grid rules stay untouched above 760px. */}
/* =========================
   v0.2.50 ARTIST HERO LANGUAGE + CTA CLEARANCE
   Keep the layered overlap/shadow treatment from v0.2.49, but protect the
   title/CTA zone so floating portrait/bio planes never cover the shopping CTA.
   ========================= */
@media (min-width:761px){.caps-hero-link{
    position:relative;
    z-index:7;
  }}
@media (max-width:760px){.caps-hero-link{
    position:relative;
    z-index:7;
  }}
/* v0.2.51 FOUNDATION STABILIZATION */
.caps-mobile-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-top:1px solid #e2ddd4}
.caps-mobile-cart{display:flex!important;align-items:center;justify-content:space-between;text-decoration:none!important}
.caps-mobile-cart span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:var(--caps-clay);color:#fff;font-size:11px;font-weight:800}
.caps-mobile-browse-all{font-weight:800!important;color:var(--caps-wine)!important;background:#f6f1eb}
/* =========================
   v0.2.52 — PRODUCT PURCHASE DENSITY REFINEMENT
   Preserve native WooCommerce/WoodMart product markup and behavior while
   reducing unnecessary vertical space in the stacked purchase summary.
   Also removes only the lower rule beneath the Woo tab labels.
   ========================= */
/* =========================
   v0.2.54 — MOBILE NAVIGATION REFINEMENT
   Mirrors the desktop information architecture while giving mobile a proper,
   calm drawer treatment. Links and Woo/account behavior remain unchanged.
   ========================= */
@media (max-width:960px){.caps-mobile-primary{border-left:0!important;color:var(--caps-wine)!important}
.caps-mobile-submenu-mark{font-size:18px;font-weight:400;color:var(--caps-clay);transition:transform .18s ease}
.caps-mobile-submenu[open]>summary .caps-mobile-submenu-mark{transform:rotate(45deg)}
.caps-mobile-submenu-panel{display:grid!important;grid-template-columns:1fr!important;padding:7px 0 11px 14px!important;border-bottom:1px solid #e5dfd6;background:#faf8f4}
.caps-mobile-submenu-panel a{display:flex!important;align-items:center;justify-content:space-between;gap:14px;min-height:42px;padding:0 10px!important;border-bottom:1px solid #eee9e1;color:#44545b!important;text-decoration:none!important;font-size:13px!important;font-weight:600!important}
.caps-mobile-submenu-panel a:last-child{border-bottom:0}
.caps-mobile-browse-all{margin-top:4px;color:var(--caps-wine)!important;background:transparent!important;font-weight:800!important}
.caps-mobile-utility{display:grid;margin-top:20px;border-top:3px solid var(--caps-ink);border-bottom:1px solid #e5dfd6}
.caps-mobile-utility>.caps-mobile-submenu>summary,.caps-mobile-cart{min-height:54px;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px;padding:0 4px!important;border:0!important;border-bottom:1px solid #e5dfd6!important;background:transparent!important;color:var(--caps-ink)!important;text-decoration:none!important;font-size:14px!important;font-weight:700!important}
.caps-mobile-cart-count{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:24px!important;height:24px!important;padding:0 7px!important;background:var(--caps-clay)!important;color:#fff!important;font-size:11px!important;font-weight:800!important}
.caps-mobile-tools{display:contents!important}}
/* =========================
   v0.2.55 — SCALABLE WOO ARTIST COLLECTIONS RAIL
   Woo product_cat remains authoritative: artist root -> direct child collections.
   ========================= */
/* =========================
   v0.2.57 — FLOATING STICKY ARTWORK FILTER
   Keep the approved gallery-control bar visually detached from the sticky
   header while keeping it available during browsing. The live header/admin
   heights are measured in JS so the gap remains correct as the header compacts.
   ========================= */
/* =========================
   v0.2.58 — RELIABLE MOBILE FILTER PIN
   Native sticky can be defeated by WoodMart/mobile ancestor overflow or
   transform contexts. On mobile JS moves the live filter node to <body> only
   while pinned, leaving a height marker in its original Woo position.
   ========================= */
/* =========================
   v0.2.59 — COMPACT MOBILE SINGLE-ROW FILTER
   Mobile keeps only one slim sticky control visible. All filter choices live
   in one single-column dropdown so browsing does not consume screen real estate.
   Desktop presentation remains unchanged.
   ========================= */
/* =========================
   v0.2.60 — STRICT FILTER BREAKPOINT SEPARATION
   Desktop and mobile filter controls are mutually exclusive. Theme/plugin
   CSS cannot expose the compact mobile trigger on desktop.
   ========================= */
/* =========================
   v0.2.61 — RELIABLE FLOATING FILTER ON ALL BREAKPOINTS
   Desktop and mobile both use the same JS-controlled fixed layer once the
   gallery control reaches its threshold. This escapes WoodMart overflow/
   transform contexts while preserving the approved floating gap and width.
   ========================= */
/* =========================
   v0.2.63 — CANONICAL FLOATING FILTER STATE
   One JS-controlled pin model on all breakpoints. The normal desktop bar may
   use translateX(-50%) to break out of its content column; once moved to body
   that transform must be neutralized or the already-measured viewport left
   edge is shifted a second time.
   ========================= */
/* =========================
   v0.2.66 — ARTIST HERO + BIO EDITORIAL REFINEMENT
   The hero artwork is intentionally left visually clean: no wash, blur,
   translucent plate, or gradient is placed over the image. Readability comes
   from type treatment only. Portrait remains optional and deliberately
   separate from the artwork plane. Bio presentation adapts to short and long
   copy without changing or truncating the artist's words.
   ========================= */
/* =========================
   v0.2.67 — ARTIST HERO / BIO OVERLAP RHYTHM
   Make the hero-to-bio transition intentional on every artist storefront.
   The bio panel now overlaps the hero instead of hovering a few pixels below it.
   ========================= */
/* =========================
   v0.2.68 — FULL-WIDTH MOBILE FILTER AT REST + PINNED
   The compact mobile control must use viewport geometry even before it pins.
   Woo/WoodMart content columns must never reduce it to product-card width.
   ========================= */
nn@media(max-width:760px){n  body.caps-front.caps-artist-storefront .caps-smart-filters.is-mobile-viewport-resting{n    position:absolute!important;n    left:12px!important;n    right:12px!important;n    width:auto!important;n    max-width:none!important;n    margin:0!important;n    transform:none!important;n    box-sizing:border-box!important;n    z-index:940!important;n  }n  body.caps-front.caps-artist-storefront .caps-smart-filters.is-filter-fixed{n    left:12px!important;n    right:12px!important;n    width:auto!important;n    max-width:none!important;n    transform:none!important;n    margin:0!important;n  }n}
nn@media(max-width:980px){n  .caps-site-footer-inner{grid-template-columns:1fr!important;}n  .caps-footer-feature{min-height:auto!important;}n}
n@media(max-width:760px){n  .caps-site-footer{margin-top:48px!important;}n  .caps-site-footer-inner{width:calc(100% - 28px)!important;padding:34px 0 28px!important;gap:14px!important;}n  .caps-footer-feature{padding:28px 24px 26px!important;}n  .caps-footer-feature strong{font-size:29px!important;}n  .caps-footer-main{gap:12px;}n  .caps-footer-brand{display:block!important;padding:22px 20px!important;}n  .caps-footer-address{margin-top:18px!important;padding:16px 0 0!important;border-left:0!important;border-top:1px solid #d3d0c8!important;white-space:normal;}n  .caps-footer-links-grid{grid-template-columns:1fr!important;gap:10px!important;}n  .caps-footer-group{min-height:0!important;padding:21px 20px!important;}n  .caps-site-footer-bottom{padding:18px 18px!important;min-height:0!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}n  .caps-footer-legal{margin-left:0!important;gap:16px!important;}n}
/* =========================
   v0.2.70 — FOOTER COMPOSITION REBUILD
   Replace the tall split-card footer with a compact editorial band + utility row.
   The feature panel no longer stretches to the height of the link stack.
   ========================= */
/* =========================
   v0.2.71 — STABLE MOBILE FILTER HOST + ANCHOR LIFECYCLE
   The mobile filter occupies a real full-width row in document flow. Only the
   pinned state leaves that host. Scrolling back up restores the same live node
   into the host, so it cannot disappear or overlay the first product row.
   ========================= */
/* =========================
   v0.2.72 — NATIVE SHOP ARCHIVE + GLOBAL CATALOG FILTER
   ========================= */
/* v0.2.74 — unified Review & Publish draft shell + designed Shop artist filter */
body.caps-front.caps-managed-surface .main-page-wrapper,
body.caps-front.caps-managed-surface .site-content,
body.caps-front.caps-managed-surface main{position:relative;}
body.caps-front.caps-managed-surface .main-page-wrapper{padding-top:24px;}
body.caps-front.caps-managed-surface .page-title{margin-top:0;}
/* =========================
   v0.2.76 SHOP GALLERY CONTROL REFINEMENT
   Shop-only composition: compact intro + one coherent filter/sort toolbar.
   Artist storefronts and commerce behavior remain unchanged.
   ========================= */
/* =========================
   v0.2.77 SHOP TOOLBAR GEOMETRY
   Keep one gallery-control panel, but protect tag readability and control widths
   by treating tags and utility controls as two coherent zones.
   ========================= */
/* =========================
   v0.2.85 SHOP TOOLBAR WIDE + CENTERED
   Presentation-only repair. Preserve v0.2.84 Shop Clear routing and filter logic.
   ========================= */
/* =========================
   v0.2.86 SHOP TOOLBAR TRUE VIEWPORT CENTER
   Presentation-only correction. The Shop toolbar may live inside a narrower
   Woo/WoodMart content column, so auto margins center it in the wrong box.
   Break the resting toolbar out to the viewport center while preserving the
   fixed/floating lifecycle and all v0.2.84 Clear routing.
   ========================= */
/* =========================
   v0.2.87 SHOP TOOLBAR HERO-ALIGNED GEOMETRY
   Desktop resting geometry is measured against the actual Shop intro element
   by frontend.js. Neutralize the earlier viewport breakout so the toolbar can
   be aligned exactly to the rendered hero rather than an assumed container.
   ========================= */
/* =========================
   v0.2.88 SHOP MOBILE FILTER PANEL
   Mobile-only composition repair. Desktop v0.2.87 hero alignment and
   v0.2.84/.83 Clear routing/lifecycle remain unchanged.
   ========================= */
/* =========================
   v0.2.89 — SHOP MOBILE SINGLE FILTER MENU
   Reuse the proven artist-storefront mobile interaction: one compact FILTER
   trigger opens one vertical menu. Desktop Shop geometry remains unchanged.
   ========================= */
@media (max-width:760px){/* Tags and Artist remain true nested submenus inside the one mobile panel. */}
