/* Falcon storefront merchandising.
   Independently versioned so Shop releases never require a mixed core.css or
   Falcon Redesign loader deployment. Every selector is scoped to v4 markup. */

/* Shared feature card, promoted from the homepage into the design system. */
.std-feature { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:0; overflow:hidden; border:1px solid var(--line); border-radius:22px; background:linear-gradient(120deg,var(--surface) 0%,var(--bg-2) 100%); color:var(--ink); text-decoration:none; transition:border-color 350ms,box-shadow 350ms; }
.std-feature:hover { border-color:rgba(212,165,116,0.3); box-shadow:0 30px 70px -30px rgba(0,0,0,0.7); }
.std-feature:focus-visible { outline:3px solid var(--gold-bright); outline-offset:4px; }
.std-feature-media { position:relative; aspect-ratio:4/3; display:grid; place-items:center; overflow:hidden; background:radial-gradient(ellipse 70% 60% at 50% 95%,rgba(212,165,116,0.1),transparent 65%),var(--media-bg); }
.std-feature-media img { width:66%; max-height:86%; object-fit:contain; filter:drop-shadow(0 24px 40px rgba(0,0,0,0.55)); transition:transform 600ms cubic-bezier(.16,1,.3,1); }
.std-feature:hover .std-feature-media img { transform:scale(1.05) translateY(-4px); }
.std-feature-body { padding:clamp(2rem,4vw,3.2rem); display:flex; flex-direction:column; justify-content:center; min-width:0; }
.std-feature-cat { margin:0 0 0.9rem; color:var(--ink-dim); font-size:0.76rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; }
.std-feature-body h3 { margin:0 0 0.8rem; color:var(--ink); font-family:var(--display); font-size:clamp(1.6rem,2.6vw,2.3rem); font-weight:600; letter-spacing:-0.02em; line-height:1.1; }
.std-feature-desc { max-width:42ch; margin:0 0 1.6rem; color:var(--ink-mid); font-size:1rem; line-height:1.6; text-wrap:pretty; }
.std-feature-foot { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:auto; }
.std-shop-feature { margin:0 0 clamp(2rem,4vw,3rem); }

/* Catalog filters are progressive: controls appear only after shop.js binds. */
.std-shop-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; margin:0 0 1.6rem; }
.std-shop-filters { display:none; align-items:center; flex-wrap:wrap; gap:0.55rem; }
[data-falcon-shop-catalog][data-shop-ready="true"] .std-shop-filters { display:flex; }
.std-shop-filter { min-height:44px; padding:0.65rem 1rem; border:1px solid var(--line-2); border-radius:999px; background:var(--surface); color:var(--ink-mid); cursor:pointer; font:600 0.82rem/1 var(--sans); letter-spacing:0.02em; transition:border-color .2s,color .2s,background .2s,box-shadow .2s; }
.std-shop-filter:hover { border-color:rgba(212,165,116,0.52); color:var(--ink); }
.std-shop-filter.is-active { border-color:var(--gold); background:rgba(212,165,116,0.12); color:var(--gold-bright); box-shadow:inset 0 0 0 1px rgba(212,165,116,0.08); }
.std-shop-filter:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; }
.std-shop-count { flex:none; margin:0; color:var(--ink-dim); font-size:0.82rem; white-space:nowrap; }
[data-falcon-shop-catalog][data-shop-visible-count="1"] .std-shop-grid { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
[data-falcon-shop-catalog][data-shop-ready="true"] .std-shop-product:not([hidden]) { opacity:1!important; transform:none!important; translate:none!important; }
.std-shop-product[hidden],.std-shop-empty[hidden],.std-shop-feature[hidden],[data-falcon-category-results][hidden],[data-falcon-category-default][hidden] { display:none!important; }
.std-shop-empty { margin:2rem 0 0; padding:1.2rem 1.3rem; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink-mid); line-height:1.6; }
.std-shop-noscript { margin:1rem 0 0; color:var(--ink-dim); font-size:0.84rem; line-height:1.55; }

/* Home category pills reveal this server-rendered catalog without leaving the
   approved light page. The accepted auto-fill sparse-grid rule above remains
   the sole one-product geometry override. */
.std-home-category-results { scroll-margin-top:calc(var(--header-h,92px) + 1rem); border-top:1px solid var(--line); }
.std-home-category-results__head { display:flex; align-items:flex-end; justify-content:space-between; gap:clamp(1.25rem,4vw,3rem); margin:0 0 clamp(2rem,4vw,3rem); }
.std-home-category-results__head .std-eyebrow { margin:0 0 .65rem; color:var(--gold-bright); }
.std-home-category-results__head h2 { margin:0; }
.std-home-category-results__head h2:focus { outline:none; }
.std-home-category-results__close { min-height:44px; flex:none; padding:.7rem 1.05rem; border:1px solid var(--line-2); border-radius:999px; background:var(--surface); color:var(--ink-mid); cursor:pointer; font:650 .82rem/1 var(--sans); }
.std-home-category-results__close:hover { border-color:var(--gold); color:var(--ink); }
.std-home-category-results__close:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; }
.std-home-category-results .std-shop-toolbar { justify-content:flex-end; margin-bottom:1.25rem; }
.std-home [data-falcon-shop-categories] .std-category-card.is-active { border-color:#c79a2e; background:#fff8e6; box-shadow:0 0 0 2px rgba(199,154,46,.16),0 22px 42px -34px rgba(22,19,16,.42); }
.std-home [data-falcon-shop-categories] .std-category-all.is-active { color:#74520b; text-decoration:underline; text-underline-offset:.24em; }

/* Real Woo review proof on product and feature cards. */
.std-card-rating { display:inline-flex; align-items:center; gap:0.3rem; align-self:flex-start; margin:0 0 0.9rem; color:var(--gold-bright); font-size:0.78rem; font-weight:650; letter-spacing:0.015em; }
.std-card-rating__star { font-size:0.9rem; line-height:1; }
.std-card-rating__count { color:var(--ink-dim); font-weight:500; }
.std-feature-rating { margin-bottom:1rem; }

/* Rich native Shop/category/tag archives. */
.std-archive-hero .std-lede { max-width:58ch; }
.std-phero.std-archive-hero--taxonomy { padding:clamp(1.75rem,3.5vw,3rem) 0 clamp(1.75rem,3vw,2.5rem); text-align:left; }
.std-phero.std-archive-hero--taxonomy .std-wrap { max-width:1320px; }
.std-phero.std-archive-hero--taxonomy h1 { max-width:18ch; margin:0 0 0.85rem; }
.std-phero.std-archive-hero--taxonomy .std-lede { max-width:62ch; margin:0; color:var(--ink-mid); text-wrap:pretty; }
.std-archive-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:0.55rem; margin:0 0 1.35rem; color:var(--ink-dim); font-size:0.78rem; font-weight:600; letter-spacing:0.05em; }
.std-archive-breadcrumb a { min-height:44px; display:inline-flex; align-items:center; color:var(--ink-mid); text-decoration:none; }
.std-archive-breadcrumb a:hover { color:var(--gold-bright); }
.std-archive-breadcrumb a:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; border-radius:4px; }
.std-shop-promo { display:inline-flex; align-items:center; gap:0.55rem; margin:1.6rem 0 0; padding:0.5rem 1rem; border:1px solid var(--line-2); border-radius:999px; color:var(--ink-mid); font-size:0.84rem; }
.std-shop-promo b { color:var(--gold-bright); font-weight:650; }
.std-shop-promo__spark { width:7px; height:7px; flex:none; border-radius:50%; background:var(--gold); box-shadow:0 0 12px var(--gold-glow); }
.std-archive-catalog { border-top:1px solid var(--line); }
.std-archive-catalog--taxonomy { padding-top:clamp(2.5rem,5vw,4.5rem); }
.std-archive-catalog-head { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin:0 0 clamp(2rem,4vw,3rem); }
.std-archive-catalog-head .std-eyebrow { margin:0 0 0.6rem; color:var(--gold-bright); }
.std-archive-catalog-head h2 { margin:0; font-size:clamp(2rem,4vw,3.25rem); }
.std-archive-count { margin:0 0 0.35rem; color:var(--ink-dim); font-size:0.84rem; white-space:nowrap; }
.std-archive-empty a { color:var(--gold-bright); text-decoration:none; }
.std-archive-pagination { margin:clamp(2rem,4vw,3rem) 0 0; }
.std-archive-pagination ul.page-numbers,.std-archive-pagination .nav-links { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0.45rem; margin:0; padding:0; border:0; list-style:none; }
.std-archive-pagination li { margin:0; border:0; }
.std-archive-pagination a.page-numbers,.std-archive-pagination span.page-numbers { min-width:44px; min-height:44px; display:inline-grid; place-items:center; padding:0.55rem 0.8rem; border:1px solid var(--line-2); border-radius:999px; background:var(--surface); color:var(--ink-mid); text-decoration:none; }
.std-archive-pagination a.page-numbers:hover { border-color:rgba(212,165,116,0.52); color:var(--ink); }
.std-archive-pagination a.page-numbers:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; }
.std-archive-pagination span.page-numbers.current { border-color:var(--gold); background:rgba(212,165,116,0.12); color:var(--gold-bright); }
.std-archive-guide { padding:clamp(4rem,8vw,7rem) 0; border-top:1px solid var(--line); background:linear-gradient(180deg,var(--bg-2),var(--bg)); }
.std-archive-guide__layout { display:grid; grid-template-columns:minmax(220px,0.38fr) minmax(0,0.62fr); align-items:start; gap:clamp(2.5rem,7vw,7rem); }
.std-archive-guide__heading { position:sticky; top:calc(var(--header-h,92px) + 2rem); }
.std-archive-guide__heading .std-eyebrow { margin:0 0 0.65rem; color:var(--gold-bright); }
.std-archive-guide__heading h2 { margin:0; font-size:clamp(2rem,4vw,3.4rem); }
.std-archive-guide__body { max-width:72ch; color:var(--ink-mid); font-size:clamp(1rem,1.35vw,1.08rem); line-height:1.78; }
.std-archive-guide__body > :first-child { margin-top:0; }
.std-archive-guide__body > :last-child { margin-bottom:0; }
.std-archive-guide__body p,.std-archive-guide__body ul,.std-archive-guide__body ol { margin:0 0 1.25rem; }
.std-archive-guide__body h2,.std-archive-guide__body h3 { margin:clamp(2rem,4vw,3rem) 0 0.8rem; color:var(--ink); font-family:var(--display); line-height:1.15; text-wrap:balance; }
.std-archive-guide__body h2 { font-size:clamp(1.6rem,2.8vw,2.25rem); }
.std-archive-guide__body h3 { font-size:clamp(1.3rem,2.2vw,1.75rem); }
.std-archive-guide__body li + li { margin-top:0.5rem; }
.std-archive-guide__body a { color:var(--gold-bright); text-underline-offset:0.18em; }
.std-archive-guide__body a:focus-visible { outline:3px solid var(--gold-bright); outline-offset:3px; border-radius:3px; }
.std-archive-guide__body hr { margin:2rem 0; border:0; border-top:1px solid var(--line); }

@media (max-width:760px) {
  .std-feature { grid-template-columns:1fr; }
  .std-feature-media { aspect-ratio:16/10; }
  .std-feature-body { padding:1.65rem 1.35rem 1.8rem; }
  .std-feature-foot { align-items:flex-start; flex-direction:column; gap:0.7rem; }
  .std-shop-feature { margin-bottom:1.5rem; }
  .std-shop-toolbar { align-items:stretch; flex-direction:column; gap:0.7rem; margin-bottom:1.25rem; }
  [data-falcon-shop-catalog][data-shop-ready="true"] .std-shop-filters { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.55rem; overflow:visible; padding:0; }
  .std-shop-filter { width:100%; min-width:0; padding:0.65rem 0.4rem; font-size:0.74rem; letter-spacing:0.01em; white-space:nowrap; }
  .std-shop-count { width:100%; align-self:flex-start; text-align:left; }
  .std-home-category-results__head { align-items:flex-start; flex-direction:column; gap:1rem; }
  .std-home-category-results__close { width:100%; }
  .std-home-category-results .std-shop-toolbar { margin-bottom:1rem; }
  .std-phero.std-archive-hero--taxonomy { padding:1.5rem 0 1.75rem; }
  .std-phero.std-archive-hero--taxonomy h1 { font-size:clamp(2.35rem,12vw,3.35rem); }
  .std-phero.std-archive-hero--taxonomy .std-lede { font-size:1rem; line-height:1.6; }
  .std-archive-breadcrumb { margin-bottom:0.85rem; }
  .std-archive-catalog--taxonomy { padding-top:2.25rem; }
  .std-archive-catalog-head { align-items:flex-start; flex-direction:column; gap:0.75rem; }
  .std-archive-guide__layout { grid-template-columns:1fr; gap:2rem; }
  .std-archive-guide__heading { position:static; }
}

@media (max-width:380px) {
  .std-shop-filter { padding-inline:0.25rem; font-size:0.68rem; letter-spacing:0; }
}

@media (prefers-reduced-motion:reduce) {
  .std-feature,.std-feature-media img,.std-shop-filter { transition:none!important; }
  .std-feature:hover .std-feature-media img { transform:none!important; }
}
