/* Cast & Cozy — scroll reveal (safe no-JS fallback: fully visible until html.cc-js is present) */
html.cc-js .cc-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .8s ease, transform .8s ease;
	will-change: opacity, transform;
}
html.cc-js .cc-reveal.cc-in-view {
	opacity: 1;
	transform: none;
}
html.cc-js .cc-reveal-stagger.cc-in-view .cc-reveal-child:nth-child(1) { transition-delay: .05s; }
html.cc-js .cc-reveal-stagger.cc-in-view .cc-reveal-child:nth-child(2) { transition-delay: .15s; }
html.cc-js .cc-reveal-stagger.cc-in-view .cc-reveal-child:nth-child(3) { transition-delay: .25s; }

/* Hover polish on Flatsome content blocks */
body.home .featured-box,
body.home .ux-banner,
.product-category {
	transition: transform .35s ease, box-shadow .35s ease;
}
body.home .featured-box:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 30px rgba(20, 15, 10, 0.12);
}
.product-category:hover,
body.home .row .ux-banner:hover {
	box-shadow: 0 20px 40px rgba(10, 8, 6, 0.28);
}

/* Animated gold shimmer for eyebrow / accent text */
.cc-gold-shimmer {
	background: linear-gradient(90deg, #d4af6a 0%, #f3e2b8 25%, #d4af6a 50%, #f3e2b8 75%, #d4af6a 100%);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: cc-shimmer 6s linear infinite;
}
@keyframes cc-shimmer {
	0% { background-position: 0% center; }
	100% { background-position: 200% center; }
}

/* Section title underline flourish */
body.home .flatsome-title.title-uppercase .title-text,
body.home h2.uppercase {
	position: relative;
}

/* Dice FAB */
#cc-dice-fab {
	position: fixed;
	right: 22px;
	bottom: 22px;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #1a1714;
	border: 2px solid #d4af6a;
	color: #f3e2b8;
	font-size: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 9998;
	box-shadow: 0 8px 20px rgba(0,0,0,0.25);
	animation: cc-dice-idle 3.2s ease-in-out infinite;
	transition: transform .2s ease, box-shadow .2s ease;
}
#cc-dice-fab:hover {
	transform: scale(1.08) rotate(-8deg);
	box-shadow: 0 12px 26px rgba(0,0,0,0.32);
}
@keyframes cc-dice-idle {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}

/* Dice modal */
.cc-dice-modal {
	position: fixed;
	inset: 0;
	background: rgba(10, 8, 6, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease;
}
.cc-dice-modal.cc-open {
	opacity: 1;
	pointer-events: auto;
}
.cc-dice-modal-inner {
	background: #1a1714;
	border: 1px solid #d4af6a;
	border-radius: 14px;
	padding: 36px 30px;
	max-width: 320px;
	width: 90%;
	text-align: center;
	position: relative;
	transform: translateY(16px) scale(.96);
	transition: transform .3s ease;
}
.cc-dice-modal.cc-open .cc-dice-modal-inner {
	transform: translateY(0) scale(1);
}
.cc-dice-close {
	position: absolute;
	top: 8px;
	right: 14px;
	background: none;
	border: none;
	color: #d4af6a;
	font-size: 22px;
	cursor: pointer;
	line-height: 1;
}
.cc-dice-face {
	width: 84px;
	height: 84px;
	margin: 0 auto 16px;
	border: 2px solid #d4af6a;
	border-radius: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 34px;
	font-weight: 700;
	color: #f3e2b8;
	transform: rotate(45deg);
}
.cc-dice-face span {
	transform: rotate(-45deg);
	display: block;
}
.cc-dice-face.cc-rolling {
	animation: cc-dice-spin .5s linear infinite;
}
@keyframes cc-dice-spin {
	0% { transform: rotate(45deg) scale(1); }
	50% { transform: rotate(225deg) scale(1.08); }
	100% { transform: rotate(405deg) scale(1); }
}
.cc-dice-result {
	color: #e8e0d2;
	margin: 0 0 18px;
	font-size: 15px;
	line-height: 1.5;
}
.cc-dice-cta {
	display: inline-block;
	border: 1px solid #d4af6a;
	color: #f3e2b8 !important;
	padding: 8px 20px;
	border-radius: 99px;
	text-decoration: none !important;
	font-size: 13px;
	letter-spacing: .5px;
	text-transform: uppercase;
	transition: background .25s ease, color .25s ease;
}
.cc-dice-cta:hover {
	background: #d4af6a;
	color: #1a1714 !important;
}

/* Back to top */
#cc-back-to-top {
	position: fixed;
	left: 22px;
	bottom: 22px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid rgba(0,0,0,0.12);
	color: #1a1714;
	font-size: 18px;
	cursor: pointer;
	z-index: 9997;
	box-shadow: 0 6px 16px rgba(0,0,0,0.15);
	opacity: 0;
	transform: translateY(10px);
	pointer-events: none;
	transition: opacity .3s ease, transform .3s ease;
}
#cc-back-to-top.cc-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

@media (max-width: 600px) {
	#cc-dice-fab { right: 14px; bottom: 14px; width: 50px; height: 50px; font-size: 22px; }
	#cc-back-to-top { left: 14px; bottom: 14px; }
}
