/* Shoppable video slides: portrait, hover to play with sound toggle. */
.charcuteried-shoppable__slide { position: relative; }
.charcuteried-shoppable .charcuteried-shoppable__frame { display: block; width: 100%; height: auto; min-height: 0; padding: 0; border: 0; background: #111; cursor: pointer; position: relative; aspect-ratio: 9 / 16; overflow: hidden; border-radius: 12px; }
.charcuteried-shoppable .charcuteried-shoppable__frame::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top, rgba(11, 16, 20, 0.95) 0%, rgba(11, 16, 20, 0.6) 35%, rgba(11, 16, 20, 0.15) 60%, transparent 100%); border-radius: 12px; z-index: 1; }
.charcuteried-shoppable__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccq-video-ctrls--shoppable {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	z-index: 5 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}

.ccq-video-ctrls--shoppable .ccq-video-ctrl,
.charcuteried-shoppable .charcuteried-shoppable__sound-toggle,
button.charcuteried-shoppable__sound-toggle,
.charcuteried-shoppable button.charcuteried-shoppable__sound-toggle:not(.unset) {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	max-width: 32px !important;
	max-height: 32px !important;
	border-radius: 50% !important;
	background: rgba(11, 16, 20, 0.7) !important;
	background-color: rgba(11, 16, 20, 0.7) !important;
	backdrop-filter: blur(6px) !important;
	-webkit-backdrop-filter: blur(6px) !important;
	color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.4) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
	transition: background-color 200ms ease, transform 200ms ease !important;
	line-height: 1 !important;
}

.ccq-video-ctrls--shoppable .ccq-video-ctrl:hover,
button.charcuteried-shoppable__sound-toggle:hover {
	background: rgba(11, 16, 20, 0.9) !important;
	transform: scale(1.08) !important;
}

.charcuteried-shoppable .ccq-sound-icon {
	width: 14px !important;
	height: 14px !important;
	color: #ffffff !important;
	stroke: #ffffff !important;
}

.charcuteried-shoppable__frame.is-sound-on .charcuteried-shoppable__sound-toggle,
.charcuteried-shoppable__frame.is-sound-on [data-charcuteried-sound-toggle] {
	background: var(--ccc-primary, #1e2934) !important;
	background-color: var(--ccc-primary, #1e2934) !important;
	border-color: rgba(255, 255, 255, 0.7) !important;
}

.charcuteried-shoppable [data-charcuteried-sound-toggle] .ccq-sound-icon--unmuted {
	display: none !important;
}

.charcuteried-shoppable__frame.is-sound-on [data-charcuteried-sound-toggle] .ccq-sound-icon--muted {
	display: none !important;
}

.charcuteried-shoppable__frame.is-sound-on [data-charcuteried-sound-toggle] .ccq-sound-icon--unmuted {
	display: block !important;
}

.charcuteried-shoppable__play {
	display: none !important;
}
.charcuteried-shoppable__caption { margin: .5rem 0 0; font-size: .9rem; }
.charcuteried-shoppable .charcuteried-shoppable__product { display: grid; grid-template-columns: minmax(0, 1fr); align-items: baseline; gap: 4px 12px; left: 14px; right: 14px; bottom: 14px; margin: 0; padding: 0; border-radius: 0; background: transparent !important; position: absolute; z-index: 2; }
.charcuteried-shoppable__name { font: 600 19px/1.2 var(--ccc-font-heading, serif) !important; color: #ffffff !important; text-shadow: 0 2px 6px rgba(0, 0, 0, 0.6); margin: 0; }
.charcuteried-shoppable__price { font: 500 14px/1.2 var(--ccc-font-body, sans-serif) !important; color: rgba(255, 255, 255, 0.9) !important; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); text-align: left; }
.charcuteried-shoppable__price .woocommerce-Price-amount { color: #ffffff !important; font-weight: 600; }
body .charcuteried-shoppable .charcuteried-shoppable__product :is(.button, a.button) { grid-column: 1 / -1; justify-self: start; margin-top: 10px; min-height: 38px !important; padding: 0 22px !important; border-radius: var(--ccc-radius, 4px) !important; background: #ffffff !important; background-color: #ffffff !important; color: var(--ccc-primary, #1e2934) !important; border: 1px solid #ffffff !important; font: 700 12px/1 var(--ccc-font-body, sans-serif) !important; letter-spacing: var(--ccc-caps-spacing, 0.14em) !important; text-transform: uppercase !important; display: inline-flex !important; align-items: center !important; box-shadow: 0 3px 12px rgba(0, 0, 0, 0.35) !important; transition: background-color 200ms ease, color 200ms ease, transform 200ms ease !important; }
body .charcuteried-shoppable .charcuteried-shoppable__product :is(.button, a.button):hover { background: #f1f5f9 !important; background-color: #f1f5f9 !important; color: #0b1014 !important; border-color: #f1f5f9 !important; transform: translateY(-1px) !important; }

/* Marquee: a continuous uppercase ticker with primary background, white text and no dots. */
.charcuteried-marquee { overflow: hidden; background: var(--ccc-primary, #1e2934); color: #ffffff; padding: 14px 0; }
.charcuteried-marquee__track { display: inline-flex; white-space: nowrap; animation: charcuteried-marquee var(--charcuteried-marquee-speed, 30s) linear infinite; text-transform: uppercase; font: 600 13px/1.2 var(--ccc-font-body, sans-serif); letter-spacing: 0.14em; color: #ffffff; }
.charcuteried-marquee[data-direction="right"] .charcuteried-marquee__track { animation-direction: reverse; }
.charcuteried-marquee:hover .charcuteried-marquee__track { animation-play-state: paused; }
.charcuteried-marquee__item { padding: 0 2.5rem; color: #ffffff; }
.charcuteried-marquee__item a { color: #ffffff; text-decoration: none; }
.charcuteried-marquee__dot { display: none !important; }
@keyframes charcuteried-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.charcuteried-marquee__track { animation: none; }
}

/* Review cards in the carousel reuse the product-card shell. */
.ccq-review-card { padding: 1rem; }
.ccq-review-card .entry-comment { margin: .5rem 0; }
.ccq-review-product { margin: .5rem 0 0; font-size: .9rem; }

/* Slick track laid out as a centred, spaced row (two or three cards fit without sliding). */
.charcuteried-shoppable.ccq-slider-wrapper { max-width: 900px; margin-inline: auto; }
.charcuteried-shoppable .slick-list { overflow: visible !important; }
.charcuteried-shoppable .slick-track { display: flex !important; justify-content: center; gap: clamp(16px, 2vw, 32px); width: 100% !important; transform: none !important; }
.charcuteried-shoppable .slick-track .slider-item { flex: 1 1 0 !important; width: auto !important; max-width: 420px; float: none !important; min-width: 0; }
.charcuteried-shoppable .slick-arrow, .charcuteried-shoppable .slick-dots { display: none !important; }
@media (max-width: 767px) { .charcuteried-shoppable .slick-track { flex-direction: column; align-items: center; } .charcuteried-shoppable .slick-track .slider-item { width: 100% !important; flex: 0 0 auto !important; } }
/* Four clips fill the container width; two or three centre. */
.charcuteried-shoppable.ccq-slider-wrapper { max-width: none; padding-inline: 0; }
.charcuteried-shoppable .slick-track .slider-item { max-width: 340px; }
@media (max-width: 767px) { .charcuteried-shoppable .slick-track .slider-item { max-width: 420px; } }
/* Cards can be narrow: name, price and button stack instead of overflowing. */
.charcuteried-shoppable .charcuteried-shoppable__product { grid-template-columns: minmax(0, 1fr); }
.charcuteried-shoppable__price { text-align: left; }
.charcuteried-shoppable__name { overflow-wrap: anywhere; }
/* The cards run edge to edge of the grid, lined up with the heading above. */
.charcuteried-shoppable.ccq-slider-wrapper, .charcuteried-shoppable .slick-list, .charcuteried-shoppable .slick-track { width: 100% !important; max-width: none !important; margin-inline: 0 !important; padding-inline: 0 !important; }
.charcuteried-shoppable .slick-track { justify-content: stretch; }
.charcuteried-shoppable .slick-track .slider-item { max-width: none; flex: 1 1 0 !important; }
@media (max-width: 767px) { .charcuteried-shoppable .slick-track .slider-item { max-width: none; } }
.charcuteried-shoppable .slick-track::before, .charcuteried-shoppable .slick-track::after { display: none !important; content: none !important; }
/* On phones the track is a column: cards keep their own height (must come after the desktop flex rule). */
@media (max-width: 767px) { .charcuteried-shoppable .slick-track .slider-item { flex: 0 0 auto !important; width: 100% !important; } }

/* Breathing room around the video row: space above the heading and below the cards. */
.elementor-widget-charcuteried-shoppable-video { padding-bottom: clamp(48px, 6vw, 96px); }
.elementor-widget-heading.ccq-wrap:has(+ .elementor-widget-charcuteried-shoppable-video) { padding-top: clamp(32px, 4vw, 64px); padding-bottom: 20px; }
