/* ---------- 1. lock link colours so :visited never repaints them ---------- */
.cv-card-name,.cv-card-name:link,.cv-card-name:visited,.cv-card-name:active{color:#1B2A4A}
.cv-card-name:hover,.cv-card-name:focus{color:#B4884A}
.cv-card-btn,.cv-card-btn:link,.cv-card-btn:visited,.cv-card-btn:active{color:#fff;background:#B4884A}
.cv-card-btn:hover,.cv-card-btn:focus{color:#fff;background:#1B2A4A}
.cv-card-price,.cv-card-price ins,.cv-card-price ins *,.cv-card-price bdi{color:#1B2A4A}
.cv-card-price del,.cv-card-price del *{color:#9A9384}
.cv-card-cat{color:#9A9384}
.woocommerce ul.products li.product a:link .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:visited .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title{color:#1B2A4A}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title{color:#B4884A}
.woocommerce ul.products li.product .price,.woocommerce ul.products li.product .price ins,.woocommerce ul.products li.product .price bdi{color:#1B2A4A}
.woocommerce ul.products li.product .price del,.woocommerce ul.products li.product .price del bdi{color:#9A9384}
.woocommerce ul.products li.product .button:link,.woocommerce ul.products li.product .button:visited{color:#fff}
#cv-header .elementor-item:link,#cv-header .elementor-item:visited{color:#1B2A4A}
#cv-header .elementor-item:hover,#cv-header .elementor-item.elementor-item-active{color:#B4884A}
#cv-footer a:link,#cv-footer a:visited,#cv-footer a:link .elementor-icon-list-text,#cv-footer a:visited .elementor-icon-list-text{color:#5C6270}
#cv-footer a:hover,#cv-footer a:hover .elementor-icon-list-text{color:#B4884A}
.cv-menu-link:link,.cv-menu-link:visited{color:#1B2A4A}
.cv-menu-link.cv-sub:link,.cv-menu-link.cv-sub:visited{color:#5C6270}
.woocommerce-breadcrumb a:link,.woocommerce-breadcrumb a:visited{color:#7C8189}
.woocommerce-breadcrumb a:hover{color:#B4884A}
.elementor-widget-solace-extra-product-categories a:link,.elementor-widget-solace-extra-product-categories a:visited{color:#8A8F86}
.elementor-widget-text-editor a:link,.elementor-widget-text-editor a:visited{color:#B4884A}
.elementor-widget-solace-extra-woocommerce-related-products a:link,.elementor-widget-solace-extra-woocommerce-related-products a:visited{color:#1B2A4A}
.cv-search-sugg a:link,.cv-search-sugg a:visited{color:#5C6270}

/* ---------- 2. header lockup ---------- */
#cv-header .elementor-widget-solace-extra-site-logo,#cv-header .elementor-site-logo,#cv-header .elementor-site-logo img{display:block;margin:0}
#cv-header .elementor-widget-heading{margin-bottom:0}
#cv-header .elementor-heading-title{white-space:nowrap}

/* ---------- 3. hero slider ---------- */
.cv-hero-slider,.cv-hero-slider .elementor-widget-container,.cv-hero-slider .elementor-image-carousel-wrapper,.cv-hero-slider .swiper,.cv-hero-slider .elementor-image-carousel{width:100%;margin:0}
.cv-hero-slider .swiper-slide{display:block}
.cv-hero-slider .swiper-slide figure,.cv-hero-slider .swiper-slide a{display:block;margin:0}
.cv-hero-slider .swiper-slide img,.cv-hero-slider .swiper-slide-image{width:100%!important;height:auto!important;display:block;max-width:100%}
.cv-hero-slider .elementor-swiper-button{color:#fff;font-size:26px;text-shadow:0 2px 10px rgba(0,0,0,.45);opacity:.85;transition:opacity .2s ease}
.cv-hero-slider .elementor-swiper-button:hover{opacity:1}
.cv-hero-slider .swiper-pagination-bullet{opacity:1;transition:all .3s ease}
.cv-hero-slider .swiper-pagination-bullet-active{width:22px;border-radius:99px}
@media(max-width:1024px){.cv-hero-slider .elementor-swiper-button{font-size:20px}}

/* ---------- 4. tighter top on WooCommerce pages ---------- */
.woocommerce .nv-index-posts.nv-shop,.woocommerce-page .nv-index-posts.nv-shop{margin-top:22px!important;margin-bottom:36px!important}
.cv-sitebuilder-product .nv-index-posts.nv-shop{margin-top:14px!important;margin-bottom:0!important}
.cv-sitebuilder-product .nv-bc-count-wrap{margin-bottom:8px!important}
.cv-sitebuilder-product .woocommerce-breadcrumb{margin-bottom:0!important}

/* ---------- 5. four-column grid everywhere WooCommerce lists products ---------- */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:22px!important;margin:0 0 30px!important;padding:0!important}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:auto!important;max-width:none!important;margin:0!important;float:none!important;clear:none!important}
.elementor-widget-solace-extra-woocommerce-related-products ul.products{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1024px){.woocommerce ul.products,.woocommerce-page ul.products,.elementor-widget-solace-extra-woocommerce-related-products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}}
@media(max-width:767px){.woocommerce ul.products,.woocommerce-page ul.products,.elementor-widget-solace-extra-woocommerce-related-products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}}

/* ---------- 6. product gallery lightbox ---------- */
#solace-main-image{cursor:zoom-in}
.cv-lb{position:fixed;inset:0;z-index:100005;background:rgba(16,19,24,.94);display:none;align-items:center;justify-content:center;padding:56px 64px;font-family:Jost,system-ui,sans-serif}
.cv-lb.cv-open{display:flex}
.cv-lb-stage{position:relative;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cv-lb-img{max-width:88vw;max-height:82vh;object-fit:contain;display:block;cursor:zoom-in;transition:transform .35s cubic-bezier(.22,.61,.36,1);transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none}
.cv-lb-img.cv-zoomed{transform:scale(2.3);cursor:zoom-out;transition:transform .25s ease-out}
.cv-lb-btn{position:absolute;width:46px;height:46px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);transition:background .2s ease;z-index:2}
.cv-lb-btn:hover{background:rgba(255,255,255,.32)}
.cv-lb-close{top:20px;right:24px}
.cv-lb-prev{left:24px;top:50%;transform:translateY(-50%)}
.cv-lb-next{right:24px;top:50%;transform:translateY(-50%)}
.cv-lb-cap{position:absolute;left:0;right:0;bottom:20px;text-align:center;color:#EDE7DD;font-size:11px;letter-spacing:.18em;text-transform:uppercase;pointer-events:none}
.cv-lb-hint{position:absolute;left:0;right:0;top:22px;text-align:center;color:rgba(237,231,221,.62);font-size:10px;letter-spacing:.16em;text-transform:uppercase;pointer-events:none}
.cv-lb.cv-is-zoomed .cv-lb-hint,.cv-lb.cv-is-zoomed .cv-lb-cap{opacity:0}
.cv-lb-strip{position:absolute;left:0;right:0;bottom:52px;display:flex;justify-content:center;gap:8px;pointer-events:auto}
.cv-lb-strip img{width:46px;height:62px;object-fit:cover;cursor:pointer;opacity:.5;border:1px solid transparent;transition:all .2s ease}
.cv-lb-strip img:hover{opacity:.85}
.cv-lb-strip img.cv-on{opacity:1;border-color:#B4884A}
.cv-lb.cv-is-zoomed .cv-lb-strip{opacity:0;pointer-events:none}
@media(max-width:767px){
.cv-lb{padding:16px 8px}
.cv-lb-img{max-width:96vw;max-height:74vh}
.cv-lb-btn{width:40px;height:40px;font-size:19px}
.cv-lb-close{top:12px;right:12px}
.cv-lb-prev{left:8px}.cv-lb-next{right:8px}
.cv-lb-strip{bottom:44px;gap:6px}
.cv-lb-strip img{width:38px;height:52px}
.cv-lb-hint{display:none}
}
