.vernalia-shop-main { margin-block:0; }
.vshop { --shop-paper:var(--wp--preset--color--blanco); --shop-ink:var(--wp--preset--color--negro); --shop-soft:var(--wp--preset--color--beige); --shop-accent:var(--wp--preset--color--arcilla); color:var(--shop-ink); font-family:var(--wp--preset--font-family--body); font-size:1rem; padding:clamp(.75rem,1.5vw,1.5rem) clamp(1rem,4vw,5rem) clamp(3rem,6vw,6rem); max-width:1840px; margin-inline:auto; min-width:0; }
.vshop a { color:inherit; }
.vshop svg { width:24px; height:24px; flex:none; }
.vshop h1,.vshop h2,.vshop h3 { font-family:var(--wp--preset--font-family--heading); font-weight:400; color:inherit; }
.vshop__hero { padding-block:0 .5rem; }
.vshop__breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; font-size:.9375rem; }
.vshop__breadcrumbs a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.vshop__hero h1 { font-size:clamp(3rem,6.5vw,6.5rem); line-height:1.02; letter-spacing:-.035em; margin:1.25rem 0 1.5rem; overflow-wrap:anywhere; }
.vshop__hero > p { max-width:58ch; font-size:clamp(1rem,1.25vw,1.2rem); line-height:1.6; margin:0; }
.vshop__categories { margin-block:.5rem clamp(.75rem,1vw,1rem); min-width:0; }
.vshop__rail { display:flex; gap:clamp(.75rem,1.3vw,1.25rem); overflow-x:auto; padding:3px 3px 12px; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:var(--wp--preset--color--salvia) var(--shop-soft); }
.vshop__category { flex:0 0 clamp(190px,19vw,250px); min-width:0; background:var(--shop-soft); border:1px solid transparent; border-radius:22px; padding:1rem; text-decoration:none; scroll-snap-align:start; }
.vshop__category > span { display:flex; align-items:center; justify-content:space-between; gap:.6rem; min-height:44px; margin-bottom:.75rem; font-size:1rem; }
.vshop__category.is-current { border-color:var(--shop-accent); }
.vshop__category:hover { border-color:var(--wp--preset--color--salvia); }
.vshop__category-image { position:relative; aspect-ratio:1.85; display:grid; place-items:center; overflow:hidden; border-radius:14px; background:var(--wp--preset--color--arena); }
.vshop__category:nth-child(3n) .vshop__category-image { background:var(--wp--preset--color--salvia); color:var(--shop-paper); }
.vshop__category:nth-child(4n) .vshop__category-image { background:var(--wp--preset--color--terracota); color:var(--shop-paper); }
.vshop .vshop__category-image > img { position:absolute; inset:0; display:block; width:100%; height:100%; max-height:none; margin:0; object-fit:cover; object-position:50% 50%; }
.vshop__category-image svg { width:42px; height:42px; }
.vshop__layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; align-items:start; }
.vshop__filters { min-width:0; padding:1.25rem; background:var(--shop-soft); border-radius:24px; }
.vshop__filters summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:44px; cursor:pointer; font-size:1.4rem; list-style:none; }
.vshop__filters summary::-webkit-details-marker { display:none; }
.vshop__filters details[open] summary > span { transform:rotate(45deg); }
.vshop__filter-content { padding-top:1rem; }
.vshop__filter-content h2 { border-top:1px solid var(--wp--preset--color--arena); padding-top:1.25rem; font-size:.9rem; letter-spacing:.05em; text-transform:uppercase; margin:0 0 .75rem; }
.vshop__filter-content nav { display:grid; margin-bottom:1.5rem; }
.vshop__filter-content nav a { display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:44px; text-decoration:none; padding:.5rem .65rem; border-radius:12px; line-height:1.4; }
.vshop__filter-content nav a[aria-current],.vshop__filter-content nav a:hover { background:var(--wp--preset--color--arena); }
.vshop__filter-content nav small { font-size:.875rem; }
.vshop__price .price_slider_wrapper { padding-top:1rem; }
.vshop__price .ui-slider { position:relative; height:6px; margin:12px 10px 24px; border-radius:9px; background:var(--wp--preset--color--arena); }
.vshop__price .ui-slider-range { position:absolute; height:100%; background:var(--wp--preset--color--salvia); }
.vshop__price .ui-slider-handle { position:absolute; top:-9px; width:24px; height:24px; margin-left:-12px; background:var(--shop-paper); border:6px solid var(--wp--preset--color--salvia); border-radius:50%; cursor:ew-resize; }
.vshop__price .ui-slider-handle::after { content:""; position:absolute; inset:-16px; }
.vshop .vshop__price.widget_price_filter .price_slider_amount { display:flex; flex-direction:column; align-items:stretch; gap:1rem; text-align:left; line-height:1.5; }
.vshop .vshop__price.widget_price_filter .price_label { order:-1; min-width:0; margin:0; font-size:1rem; text-align:left; overflow-wrap:anywhere; }
.vshop .vshop__price.widget_price_filter .price_slider_amount .button { float:none; margin:0; }
.vshop .vshop__price.widget_price_filter .price_slider_amount .clear { display:none; }
.vshop__price button { width:100%; border:0; border-radius:99px; background:var(--shop-accent); color:var(--shop-paper); min-height:48px; padding:.6rem 1rem; cursor:pointer; }
.vshop__price input { width:100%; min-height:44px; margin-bottom:.5rem; }
.vshop__clear { display:flex; align-items:center; min-height:44px; margin-top:1rem; }
.vshop__results { min-width:0; }
.vshop__toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.vshop__toolbar p { margin:0; }
.vshop__sort { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; min-width:0; max-width:100%; }
.vshop__sort > span { font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; }
.vshop__sort form { margin:0; min-width:0; max-width:100%; }
.vshop__sort select { font:inherit; font-size:1rem; min-height:48px; max-width:100%; border:1px solid var(--wp--preset--color--arena); background:var(--shop-soft); color:var(--shop-ink); border-radius:24px; padding:.6rem 1rem; }
.vshop__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem clamp(.75rem,1.5vw,1.25rem); }
.vshop__product { min-width:0; }
.vshop__media { position:relative; background:var(--shop-soft); border-radius:clamp(20px,2.5vw,36px); overflow:hidden; aspect-ratio: .85; }
.vshop__media > a { display:block; height:100%; }
.vshop__media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 450ms ease; }
.vshop__media > a:hover img { transform:scale(1.025); }
.vshop__media:focus-within { outline:3px solid var(--shop-accent); outline-offset:4px; }
.vshop__sale { position:absolute; top:.8rem; left:.8rem; max-width:calc(100% - 5rem); background:var(--shop-accent); color:var(--shop-paper); border-radius:20px; padding:.4rem .7rem; font-size:.8rem; line-height:1.3; pointer-events:none; }
.vshop__favorite { position:absolute; top:.65rem; right:.65rem; display:grid; place-items:center; width:46px; height:46px; padding:10px; background:var(--shop-paper); color:var(--shop-ink); border:1px solid var(--wp--preset--color--arena); border-radius:50%; cursor:pointer; }
.vshop__favorite[hidden] { display:none; }
.vshop__favorite[aria-pressed="true"] { color:var(--shop-accent); }
.vshop__favorite[aria-pressed="true"] svg { fill:currentColor; }
.vshop__product-copy { padding:.9rem .15rem 0; }
.vshop__product-category { margin:0 0 .35rem; font-size:.875rem; }
.vshop__product-category a { text-decoration:none; }
.vshop__product h2 { overflow-wrap:anywhere; font-size:clamp(1rem,1.5vw,1.5rem); line-height:1.2; margin:0 0 .5rem; }
.vshop__product h2 a { text-decoration:none; }
.vshop__product h2 a:hover { text-decoration:underline; }
.vshop__product-price { font-size:1rem; }
.vshop__product-price ins { color:var(--shop-accent); text-decoration:none; margin-left:.35rem; }
.vshop__empty { padding:2rem; border-radius:24px; background:var(--shop-soft); }
.vshop .woocommerce-pagination { margin-top:2.5rem; }
.vshop .page-numbers { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; }
.vshop .page-numbers li > * { display:grid; place-items:center; min-width:44px; min-height:44px; border-radius:50%; background:var(--shop-soft); }
.vshop .page-numbers .current { background:var(--shop-accent); color:var(--shop-paper); }
@media(min-width:600px) { .vshop__grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:1024px) { .vshop__layout { grid-template-columns:minmax(200px,250px) minmax(0,1fr); } .vshop__grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { .vshop__media img { transition:none; } }

/* Override WooCommerce's later-loaded generic image and slider rules. */
.vshop .vshop__media > a > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vshop .vshop__price.widget_price_filter .price_slider_wrapper .ui-slider { background:var(--wp--preset--color--arena); height:6px; margin:12px 12px 24px; }
.vshop .vshop__price.widget_price_filter .ui-slider .ui-slider-range { background:var(--wp--preset--color--salvia); }
.vshop .vshop__price.widget_price_filter .ui-slider .ui-slider-handle { background:var(--shop-paper); border:6px solid var(--wp--preset--color--salvia); box-sizing:border-box; width:24px; height:24px; top:-9px; margin-left:-12px; }

/* Vernalia ordering control; native select remains the no-JavaScript fallback. */
.vshop__sort { gap:.8rem; }
.vshop__sort > span { color:var(--shop-accent); font-size:.75rem; letter-spacing:.1em; }
.vshop__sort form { flex:1; width:19rem; }
.vshop__sort select[hidden] { display:none; }
.vshop__order-picker { position:relative; font-size:.9375rem; width:100%; }
.vshop__order-picker summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:48px; padding:.7rem 1.15rem; border:1px solid var(--wp--preset--color--arena); border-radius:24px; background:var(--shop-soft); color:var(--shop-ink); cursor:pointer; list-style:none; line-height:1.4; }
.vshop__order-picker summary::-webkit-details-marker { display:none; }
.vshop__order-picker summary::after { content:""; width:12px; height:12px; flex:none; background:var(--shop-accent); clip-path:polygon(0 25%,50% 75%,100% 25%,100% 45%,50% 95%,0 45%); }
.vshop__order-picker[open] summary::after { transform:rotate(180deg); }
.vshop__order-picker summary:hover,.vshop__order-picker[open] summary { border-color:var(--shop-accent); }
.vshop__order-picker summary:focus-visible,.vshop__order-options button:focus-visible { outline:2px solid var(--shop-accent); outline-offset:3px; }
.vshop__order-options { position:absolute; top:calc(100% + .6rem); inset-inline:0; z-index:10; display:grid; gap:.2rem; padding:.5rem; background:var(--shop-soft); border:1px solid var(--wp--preset--color--arena); border-radius:18px; box-shadow:0 12px 28px color-mix(in srgb,var(--shop-ink) 14%,transparent); }
.vshop__order-options button { font:inherit; text-align:left; color:var(--shop-ink); background:transparent; border:0; border-radius:12px; min-height:44px; padding:.65rem .75rem; cursor:pointer; line-height:1.4; }
.vshop__order-options button:hover { background:var(--wp--preset--color--arena); }
.vshop__order-options button[aria-pressed="true"] { color:var(--shop-paper); background:var(--shop-accent); }

.vshop__category-controls { display:flex; justify-content:flex-end; gap:.5rem; margin-bottom:.35rem; }
.vshop__category-controls[hidden] { display:none; }
.vshop__category-controls button { display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid var(--wp--preset--color--arena); border-radius:50%; color:var(--shop-ink); background:var(--shop-soft); cursor:pointer; }
.vshop__category-controls button:hover:not(:disabled) { background:var(--shop-accent); color:var(--shop-paper); }
.vshop__category-controls button:disabled { opacity:.35; cursor:default; }
.vshop__category-controls button:focus-visible { outline:2px solid var(--shop-accent); outline-offset:3px; }

/* Remove WooCommerce's form margin so the label aligns with the control itself. */
.vshop .vshop__sort form.woocommerce-ordering { margin:0; float:none; }
.vshop .vshop__sort { align-items:center; }
.vshop .vshop__sort > span { display:flex; align-items:center; min-height:48px; margin:0; line-height:1; }

/* Native WooCommerce attribute, rating and active-filter widgets. */
.vshop__facet { min-width:0; margin-top:1.5rem; }
.vshop .vshop__facet ul { display:grid; gap:.25rem; margin:0; padding:0; list-style:none; }
.vshop .vshop__facet li { display:flex; flex-wrap:wrap; align-items:center; gap:0 .5rem; min-width:0; margin:0; padding:0; float:none; }
.vshop .vshop__facet li a { display:flex; align-items:center; flex:1; min-width:0; min-height:44px; padding:.5rem .65rem; border-radius:12px; line-height:1.4; overflow-wrap:anywhere; text-decoration:none; }
.vshop .vshop__facet li.chosen a,.vshop .vshop__facet li a:hover { background:var(--wp--preset--color--arena); }
.vshop .vshop__facet .count { flex:none; font-size:.875rem; padding-inline-end:.65rem; }
.vshop .vshop__facet a:focus-visible,.vshop .vshop__filters a:focus-visible,.vshop .vshop__filters button:focus-visible,.vshop .vshop__price.widget_price_filter .ui-slider-handle:focus-visible { outline:2px solid var(--shop-accent); outline-offset:3px; }

/* Match category rows, including the attribute count, despite WooCommerce defaults. */
.vshop .vshop__facet .woocommerce-widget-layered-nav-list { gap:0; margin:0; padding:0; }
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li { position:relative; display:flex; flex-wrap:nowrap; align-items:center; gap:1rem; margin:0; padding:0; border-radius:12px; }
/* WooCommerce clearfix pseudo-elements become unwanted flex items and add two gaps. */
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li::before,.vshop .vshop__facet .woocommerce-widget-layered-nav-list li::after { content:none; display:none; }
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li a { position:static; display:flex; flex:1; align-items:center; min-width:0; min-height:44px; margin:0; padding:.5rem .65rem; background:transparent; line-height:1.4; }
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li a::after { content:""; position:absolute; inset:0; border-radius:inherit; }
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li:has(a:hover),.vshop .vshop__facet .woocommerce-widget-layered-nav-list li.chosen { background:var(--wp--preset--color--arena); }
.vshop .vshop__facet .woocommerce-widget-layered-nav-list li .count { margin:0; padding:0 .65rem 0 0; line-height:1.4; }

.vshop__product-category,.vshop__product-price { overflow-wrap:anywhere; }
