/* ®WISE STOREFRONT: shared, site-wide refinements. Additive only. */

html { scroll-behavior: smooth; }
::selection { background: #db1215; color: #fff; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Keyboard focus that is always visible, without changing mouse behaviour. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid #db1215; outline-offset: 3px;
}

/* "Hot" is meaningless when nearly every product carries it. */
.wsf-hide-hot .woocommerce-badge.featured { display: none !important; }

/* Footer: replaces the demo logo and the generic card strip. */
.wsf-footer-logo { display: block; width: 200px; max-width: 100%; height: auto; }
.wsf-footer-wordmark { font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.wsf-secure { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #5d5a55; white-space: nowrap; }
.wsf-secure svg { color: #db1215; flex: none; }
.wsf-secure strong { color: #111; font-weight: 700; }

/* Product cards: soft tinted tile, photo blends into it, gentle zoom on hover. */
ul.products li.product .product-thumbnail { background: #f6f2eb; border-radius: 20px; }
ul.products li.product .product-thumbnail img { mix-blend-mode: multiply; transition: transform .8s cubic-bezier(.2, .75, .2, 1); }
@media (hover: hover) { ul.products li.product:hover .product-thumbnail > a > img { transform: scale(1.05); } }
ul.products li.product .woocommerce-loop-product__title { font-weight: 600; letter-spacing: -.01em; }
ul.products li.product .price { font-weight: 700; }

/* A row of empty stars with "(0)" reads as "nobody has bought this"; show stars once there is a rating. */
.ecomus-rating:not(:has(.user-rating)) { display: none; }

/* Product page: delivery / payment / returns summary. */
.wsf-pdp-info { margin: 22px 0 6px; padding: 6px 18px; border: 1px solid #ebe5db; border-radius: 18px; background: #fdfbf7; }
.wsf-pdp-info ul { list-style: none; margin: 0; padding: 0; }
.wsf-pdp-info li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; }
.wsf-pdp-info li + li { border-top: 1px solid #ebe5db; }
.wsf-pdp-info svg { width: 24px; height: 24px; flex: none; margin-top: 1px; color: #111; }
.wsf-pdp-info strong { display: block; font-size: 14px; font-weight: 700; color: #111; }
.wsf-pdp-info span { display: block; font-size: 13px; line-height: 1.5; color: #5d5a55; margin-top: 2px; }
.wsf-pdp-info a { color: #111; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.wsf-pdp-info a:hover { color: #db1215; }

/* Smooth cross-page fade in browsers that support cross-document view transitions (others ignore this). */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .2s; animation-timing-function: cubic-bezier(.2, .75, .2, 1); }
@media (prefers-reduced-motion: reduce) {
	::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

/* Footer copyright was #7a7a7a on white (4.29:1); WCAG AA needs 4.5:1. */
.elementor-element-3107caa9 > p, .elementor-element-3107caa9 > p a { color: #595959; }

/* Short intro line under the title of a "vibe" page. */
.wsf-archive-intro { max-width: 58ch; margin: 10px auto 0; padding-inline: 16px; text-align: center; font-size: 16px; line-height: 1.55; color: #3f3b36; }

/* Phones: the main add-to-cart button sits under the bottom navigation at first paint, so keep the sticky bar visible from the start. */
@media (max-width: 767px) {
	body.single-product .ecomus-sticky-add-to-cart { transform: translateY(0) !important; }
	body.single-product { padding-bottom: 72px; }
}

/* Free-delivery progress bar (cart page and slide-out cart). */
.wsf-fsbar { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #ebe5db; border-radius: 14px; background: #fdfbf7; }
.wsf-fsbar__text { margin: 0 0 8px; font-size: 14px; font-weight: 600; line-height: 1.35; color: #111; }
.wsf-fsbar__track { height: 8px; border-radius: 999px; background: #ebe5db; overflow: hidden; }
.wsf-fsbar__fill { display: block; height: 100%; border-radius: inherit; background: #db1215; transition: width .5s cubic-bezier(.2, .75, .2, 1); }
.wsf-fsbar.is-done .wsf-fsbar__fill { background: #1a7f45; }
.widget_shopping_cart_content .wsf-fsbar { margin: 12px 0; }
@media (prefers-reduced-motion: reduce) { .wsf-fsbar__fill { transition: none; } }

/* Bundle deal messages and small delivery notes. */
.wsf-bundle-note { margin: 10px 0; padding: 9px 14px; border-radius: 12px; background: #fff3d6; color: #5a3d00; font-size: 14px; line-height: 1.4; }
.wsf-bundle-note strong { color: #3d2900; }
.wsf-bundle-note--cart { margin-bottom: 16px; }
.wsf-note { margin: 6px 0 0; font-size: 13px; line-height: 1.45; color: #5d5a55; }

/* WhatsApp chat button. Green is darkened from the brand colour so white text and icon pass WCAG contrast. */
.wsf-wa { position: fixed; bottom: 24px; z-index: 99990; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 56px; height: 56px; padding: 0 14px; border-radius: 999px; background: #0f7d43; color: #fff !important; text-decoration: none !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .22); transition: transform .2s ease, box-shadow .2s ease; }
.wsf-wa--right { right: 20px; }
.wsf-wa--left { left: 20px; }
.wsf-wa:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0, 0, 0, .28); }
.wsf-wa svg { flex: none; }
.wsf-wa__label { font-size: 15px; font-weight: 700; padding-right: 4px; }
.wsf-wa-inline { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: #0f7d43; color: #fff !important; font-weight: 700; text-decoration: none !important; }
.wsf-wa-inline svg { width: 22px; height: 22px; }
@media (max-width: 1023px) {
	.wsf-wa { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
	.wsf-wa__label { display: none; }
	.wsf-wa.has-label { padding: 0; width: 56px; }
}
@media (max-width: 767px) {
	.wsf-wa--right { right: 14px; }
	.wsf-wa--left { left: 14px; }
	.wsf-wa--product { bottom: calc(160px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) { .wsf-wa { transition: none; } .wsf-wa:hover { transform: none; } }
@media print { .wsf-wa { display: none; } }
