/* ==========================================================================
   WinQuest Online — Global Custom Styles
   ========================================================================== */

/* Brand Colour Palette
   ------------------------------------------------------------------
   Hot Pink  #FF1F59  — primary brand, CTAs, highlights, tabs
   Dark Navy #061E43  — headings, footer, dark sections
   Gold      #D6A944  — accent, awards, badges
   Off-White #F8F8F8  — light section backgrounds
   Body Text #555F5B  — paragraphs, labels
   ------------------------------------------------------------------ */

:root {
	--nuvio-primary:      #FF1F59;   /* Hot Pink  */
	--nuvio-primary-dark: #d41448;   /* Hover darken ~10% */
	--nuvio-navy:         #061E43;   /* Dark Navy */
	--nuvio-gold:         #D6A944;   /* Gold accent */
	--nuvio-light-bg:     #F8F8F8;   /* Off-white bg */
	--nuvio-text:         #555F5B;   /* Body text */
	--nuvio-white:        #ffffff;
}

/* Buttons */
.nuvio-btn {
	display: inline-block;
	background: var(--nuvio-primary);
	color: var(--nuvio-white);
	padding: 12px 28px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.15s ease;
}

.nuvio-btn:hover {
	background: var(--nuvio-primary-dark);
	color: var(--nuvio-white);
	transform: translateY(-1px);
}

.nuvio-btn--outline {
	background: transparent;
	color: var(--nuvio-primary);
	border: 2px solid var(--nuvio-primary);
}

.nuvio-btn--outline:hover {
	background: var(--nuvio-primary);
	color: var(--nuvio-white);
}

.nuvio-btn--navy {
	background: var(--nuvio-navy);
	color: var(--nuvio-white);
}

.nuvio-btn--navy:hover {
	background: #0a2d5e;
	color: var(--nuvio-white);
}

/* Section spacing */
.nuvio-section {
	padding: 64px 0;
}

/* Card base */
.nuvio-card {
	background: var(--nuvio-white);
	border-radius: 12px;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.07);
	padding: 28px;
	transition: box-shadow 0.2s ease;
}

.nuvio-card:hover {
	box-shadow: 0 6px 28px rgba(255, 31, 89, 0.14);
}

/* Typography helpers */
.nuvio-text-pink  { color: var(--nuvio-primary); }
.nuvio-text-navy  { color: var(--nuvio-navy); }
.nuvio-text-gold  { color: var(--nuvio-gold); }

/* Highlight span (e.g. "All The Courses You Need") */
.nuvio-highlight {
	color: var(--nuvio-primary);
}

/* Remove duplicate Astra footer bar ("...Powered by Astra WordPress Theme").
   The real footer is the custom ElementsKit template (ekit-template-content-footer),
   which is untouched. Precise selector — only hides the Astra below-footer row. */
.site-below-footer-wrap[data-section="section-below-footer-builder"] {
	display: none !important;
}

/* ==========================================================================
   Course card enhancements — SCOPED to product cards / loop carousels only.
   Deliberately no global typography/colour rules (that broke contrast before).
   ========================================================================== */

/* --- Static "Google Reviews" rating badge (injected by nuvio-courses.js) --- */
.nuvio-rating-badge {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 6px 0 10px;
	font-size: 0.86rem;
	line-height: 1;
	color: var(--nuvio-text);
}
.nuvio-rating-badge .nuvio-stars {
	color: var(--nuvio-gold);
	letter-spacing: 1px;
	font-size: 0.95rem;
}
.nuvio-rating-badge strong {
	color: var(--nuvio-navy);
	font-weight: 700;
}
.nuvio-rating-badge .nuvio-gr {
	color: #6b7280;
	font-size: 0.78rem;
}
.nuvio-rating-badge .nuvio-gr::before {
	content: "· ";
	color: #c4c8cf;
}

/* --- Flash highlight when a sub-category targets a card --- */
@keyframes nuvioFlash {
	0%   { box-shadow: 0 0 0 0 rgba(255, 31, 89, 0.55); }
	60%  { box-shadow: 0 0 0 8px rgba(255, 31, 89, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 31, 89, 0); }
}
.swiper-slide.nuvio-flash {
	position: relative;
	z-index: 2;
}
.swiper-slide.nuvio-flash > * {
	border-radius: 14px;
	outline: 2px solid var(--nuvio-primary);
	outline-offset: 2px;
	animation: nuvioFlash 1.1s ease-out 2;
	transition: outline-color .3s ease;
}
@media (prefers-reduced-motion: reduce) {
	.swiper-slide.nuvio-flash > * { animation: none; }
}

/* --- Button polish — SCOPED to course/loop-carousel cards only --- */
.elementor-widget-loop-carousel .elementor-button,
.elementor-widget-loop-grid .elementor-button,
.swiper-slide .product .elementor-button {
	border-radius: 10px;
	letter-spacing: .015em;
	transition: transform .25s cubic-bezier(.22,.61,.36,1),
	            box-shadow .25s cubic-bezier(.22,.61,.36,1);
}
.elementor-widget-loop-carousel .elementor-button:hover,
.elementor-widget-loop-grid .elementor-button:hover,
.swiper-slide .product .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(255, 31, 89, 0.18);
}

/* Hide native WooCommerce star rating inside course cards — we standardised
   on the injected static "Google Reviews" badge, so the native rating
   (only present on products that have real reviews, e.g. Guitar) would
   otherwise duplicate it. Scoped to loop cards only. */
.elementor-widget-loop-carousel .elementor-widget-woocommerce-product-rating,
.elementor-widget-loop-grid .elementor-widget-woocommerce-product-rating,
.swiper-slide .product .woocommerce-product-rating,
.swiper-slide .product .star-rating {
	display: none !important;
}

/* Sub-category chips: pointer cue (they now act on the carousel) */
.e-n-tab-content a.elementor-button[href*="/product/"],
.elementor-tab-content a.elementor-button[href*="/product/"] {
	cursor: pointer;
}

/* Favicon fix — prevents browser 404 noise */
/* (favicon.ico should be placed in theme root and registered in functions.php) */
