/*
Theme Name: Daghan Studios
Theme URI: https://studio.wpthemeguide.com
Author: Daghan Studios
Author URI: https://studio.wpthemeguide.com
Description: A modern block theme designed specifically for music recording studios. Professional layout featuring studio services, artist portfolio showcase, and booking capabilities. Styled with an Ink Lavender color palette for a chill, creative vibe. Perfect for recording studios, music producers, and audio engineers.
Version: 1.5.0
Requires at least: 6.1
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: studio-productions
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, one-column, music, audio, recording-studio, rtl-language-support, template-editing, threaded-comments, translation-ready, wide-blocks, purple, creative

Daghan Studios is a professional block theme for music recording studios, featuring an Ink Lavender color scheme (rich black, soft purple, light gray) for a subtly different, chill creative aesthetic. Built with the WordPress block editor for easy customization.
*/

/* Import Brandon Grotesque Font from Adobe Typekit */
@import url('https://use.typekit.net/afr3hmf.css');

/* Global Styles - Additional customizations beyond theme.json */

body {
	font-family: 'brandon-grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'brandon-grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

p, a, button, input, textarea, select {
	font-family: 'brandon-grotesque', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

/* Fixed/Sticky Header - Dark Theme */
.site-header {
	position: fixed !important;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 9999;
	background: rgba(10, 10, 10, 0.95) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: none;
	border-bottom: 1px solid #222 !important;
	transition: all 0.3s ease;
	margin: 0 !important;
}

/* Ensure header stays compact */
.site-header > .wp-block-group__inner-container {
	padding: 0 !important;
}

/* Logo Styling */
.site-header .wp-block-site-logo {
	margin: 0 !important;
}

.site-header .wp-block-site-logo img {
	height: 40px;
	width: auto;
}

/* Site Title - Playfair Display (matches hero) */
.site-header .wp-block-site-title {
	margin: 0 !important;
	line-height: 1;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	letter-spacing: -0.02em;
}

.site-header .wp-block-site-title a {
	text-decoration: none;
	font-family: 'Playfair Display', Georgia, serif !important;
}

/* Site Title in Footer - Match Header Playfair Display */
.site-footer .wp-block-site-title {
	margin: 0 !important;
	line-height: 1;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 1.5rem !important;
	font-weight: 400 !important;
	letter-spacing: -0.02em;
}

.site-footer .wp-block-site-title a {
	text-decoration: none;
	font-family: 'Playfair Display', Georgia, serif !important;
}

/* Navigation Styling - Sleek */
.site-header .wp-block-navigation {
	font-weight: 500;
	margin: 0;
}

.site-header .wp-block-navigation__responsive-container {
	gap: 0.5rem;
}

.site-header .wp-block-navigation-item {
	margin: 0;
}

.site-header .wp-block-navigation-item a {
	padding: 0.5rem 1rem;
	border-radius: 6px;
	transition: all 0.2s ease;
	font-size: 0.95rem;
	white-space: nowrap;
}

.site-header .wp-block-navigation-item a:hover {
	background-color: rgba(255, 255, 255, 0.1);
	color: #FFFFFF;
	text-decoration: none;
}

.site-header .wp-block-navigation-item a:focus {
	outline: 2px solid #FFFFFF;
	outline-offset: 2px;
}

/* Add space to body content so it doesn't hide under fixed header */
body.wp-site-blocks {
	padding-top: 70px !important;
}

/* Ensure main content has proper spacing */
main.wp-block-group {
	margin-top: 0 !important;
}

/* Desktop Navigation - Keep all links on one line */
@media (min-width: 783px) {
	.wp-block-navigation__container {
		flex-wrap: nowrap !important;
		white-space: nowrap;
	}

	.wp-block-navigation-item {
		flex-shrink: 0;
	}

	.site-header .wp-block-navigation {
		overflow-x: visible;
	}
}

/* Mobile Menu Improvements - Dropdown Style (like udove site) */
@media (max-width: 782px) {
	.site-header {
		padding: 0.5rem 1rem !important;
	}

	.site-header .wp-block-navigation__responsive-container-open {
		padding: 0.5rem;
		z-index: 1001;
		background: transparent;
		border: none;
		cursor: pointer;
	}

	/* Mobile menu dropdown - sits below header, not overlay */
	.wp-block-navigation__responsive-container {
		position: fixed;
		top: 56px;
		left: 0;
		right: 0;
		background: #0A0A0A;
		box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
		z-index: 9998;
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.3s ease;
		display: block;
	}

	.wp-block-navigation__responsive-container.has-modal-open,
	.wp-block-navigation__responsive-container.is-menu-open {
		max-height: 500px;
		height: auto;
		overflow: visible;
		-webkit-overflow-scrolling: touch;
	}

	.wp-block-navigation__responsive-close {
		width: 100%;
		padding: 0;
		position: relative;
		display: block;
		height: auto;
	}

	.wp-block-navigation__responsive-dialog {
		background: transparent;
		padding: 0;
		box-shadow: none;
		height: auto;
		display: block;
	}

	/* Hide default close button - hamburger will be used to close */
	.wp-block-navigation__responsive-container-close {
		display: none;
	}

	.wp-block-navigation__responsive-container-content {
		padding: 0 !important;
		padding-top: 0 !important;
		background: #0A0A0A;
		display: block;
		height: auto;
		width: 100%;
	}

	.wp-block-navigation__responsive-container-content .wp-block-navigation__container {
		display: flex;
		flex-direction: column;
		gap: 0;
		padding: 0 0 0.5rem 0;
		margin: 0;
		list-style: none;
		height: auto;
		width: 100%;
		align-items: flex-start;
	}

	/* Style menu items - clean dropdown style */
	.wp-block-navigation__responsive-container .wp-block-navigation-item {
		display: block;
		margin: 0;
		border-bottom: 1px solid #222;
		width: 100%;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation-item:last-child {
		border-bottom: none;
	}

	/* Make menu links visible and easy to tap */
	.wp-block-navigation__responsive-container .wp-block-navigation-item__content {
		display: block !important;
		padding: 1rem 2rem !important;
		color: #FFFFFF !important;
		font-size: 1.1rem !important;
		font-weight: 400 !important;
		text-decoration: none !important;
		background: #0A0A0A !important;
		transition: all 0.3s ease !important;
		width: 100% !important;
		text-align: left !important;
		box-sizing: border-box !important;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation-item a {
		padding: 1rem 2rem !important;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation-item__content:hover,
	.wp-block-navigation__responsive-container .wp-block-navigation-item__content:focus {
		background: #1A1A1A;
		color: #FFFFFF;
	}

	.wp-block-navigation__responsive-container .wp-block-navigation-item__label {
		color: inherit;
	}

	/* Allow body to scroll when mobile menu is open */
	body.has-modal-open,
	html.has-modal-open {
		overflow: auto !important;
		position: static !important;
	}

	/* Adjust body padding for fixed header */
	body.wp-site-blocks {
		padding-top: 56px;
	}

	/* Ensure site header stays on top */
	.site-header {
		z-index: 9999;
	}

	/* Hamburger icon styling */
	.wp-block-navigation__responsive-container-open svg {
		fill: #FFFFFF;
	}
}

/* Smooth scrolling for anchor links */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px;
}

/* Portfolio Grid Enhancements */
.wp-block-query.is-portfolio-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 2rem;
}

/* Service Cards - Dark Theme */
.service-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	border: 1px solid #222;
}

.service-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
	border-color: #333;
}

/* Enhanced CTA Buttons */
.wp-block-button__link {
	font-weight: 500 !important;
	letter-spacing: 0.05em !important;
	transition: all 0.3s ease !important;
	box-shadow: none !important;
}

.wp-block-button__link:hover {
	opacity: 0.9 !important;
}

.wp-block-button__link:active {
	opacity: 1 !important;
}

/* Call to Action Sections */
.cta-section {
	position: relative;
	overflow: hidden;
}

/* Smooth Scroll */
html {
	scroll-behavior: smooth;
}

/* Focus Styles for Accessibility - Dark Theme */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
	outline: 2px solid #FFFFFF;
	outline-offset: 2px;
}

/* Enhanced Color Scheme Styling - Dark Theme */
body {
	background-color: #0A0A0A;
	color: #FFFFFF;
}

/* Button Enhancements */
.wp-block-button__link {
	transition: all 0.3s ease;
}

.wp-block-button__link:hover {
	opacity: 0.9;
}

/* Links */
a {
	color: #FFFFFF;
	transition: color 0.2s ease;
}

a:hover {
	color: #AAAAAA;
}

/* Stats Counter - Enhanced */
.stats-counter {
	background: #0A0A0A;
}

/* Testimonial Enhancement */
.testimonial-card {
	background: #111111;
	border: 1px solid #222;
	box-shadow: none;
}

/* CTA Section */
.cta-section {
	background-color: #0A0A0A !important;
	border-top: 1px solid #222;
}

/* Remove any gradient backgrounds */
.has-background-gradient {
	background-image: none !important;
}

/* Remove white bands between sections - Continuous flow */
main.wp-block-group.alignfull {
	padding: 0 !important;
	margin: 0 !important;
}

main.wp-block-group > .wp-block-group,
main.wp-block-group > .wp-block-cover {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Ensure all full-width sections have no gaps */
.wp-block-group.alignfull {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Remove any default WordPress spacing */
.wp-site-blocks > * + * {
	margin-block-start: 0 !important;
}

/* Animation utilities */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animate-fade-in-up {
	animation: fadeInUp 0.6s ease-out;
}

/* Portfolio Image Hover Effects */
.portfolio-item img {
	transition: transform 0.4s ease, filter 0.4s ease;
}

.portfolio-item:hover img {
	transform: scale(1.05);
	filter: brightness(0.9);
}

/* Team Member Cards */
.team-member {
	text-align: center;
	transition: transform 0.3s ease;
}

.team-member:hover {
	transform: translateY(-8px);
}

/* Stats Counter Section */
.stats-counter {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 2rem;
	text-align: center;
}

.stat-item {
	padding: 2rem;
}

.stat-number {
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	line-height: 1.2;
}

/* Testimonial Cards */
.testimonial-card {
	background: var(--wp--preset--color--base);
	padding: 2rem;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

/* Contact Form Enhancements - Modern & Clean */
.contact-form-wrapper {
	max-width: 100%;
}

.contact-form-wrapper .form-row {
	margin-bottom: 1.5rem;
}

.contact-form-wrapper label {
	display: block;
	font-weight: 500;
	font-size: 0.875rem;
	margin-bottom: 0.5rem;
	color: #AAAAAA;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
	width: 100%;
	padding: 1rem 1.25rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #FFFFFF;
	background-color: #111111;
	border: 1px solid #333;
	border-radius: 0;
	transition: all 0.3s ease;
	font-family: inherit;
}

.wpcf7-form input[type="text"]::placeholder,
.wpcf7-form input[type="email"]::placeholder,
.wpcf7-form textarea::placeholder {
	color: #666666;
	font-size: 0.95rem;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: #FFFFFF;
	background-color: #151515;
	box-shadow: none;
}

.wpcf7-form textarea {
	min-height: 150px;
	resize: vertical;
}

.wpcf7-form .form-submit {
	margin-top: 2rem;
}

.wpcf7-form input[type="submit"],
.wpcf7-form button[type="submit"] {
	background-color: #FFFFFF;
	color: #0A0A0A;
	padding: 1rem 2.5rem;
	font-size: 0.875rem;
	font-weight: 500;
	border: none;
	border-radius: 0;
	cursor: pointer;
	transition: all 0.3s ease;
	width: auto;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wpcf7-form input[type="submit"]:hover,
.wpcf7-form button[type="submit"]:hover {
	background-color: #AAAAAA;
	color: #0A0A0A;
}

.wpcf7-form input[type="submit"]:active,
.wpcf7-form button[type="submit"]:active {
	transform: translateY(0);
}

/* Form validation messages */
.wpcf7-not-valid-tip {
	color: #ff6b6b;
	font-size: 0.85rem;
	margin-top: 0.35rem;
	display: block;
}

.wpcf7-form-control-wrap {
	position: relative;
	display: block;
}

.wpcf7-response-output {
	margin: 1.5rem 0 0;
	padding: 1rem 1.25rem;
	border-radius: 0;
	font-size: 0.875rem;
	font-weight: 400;
}

.wpcf7-mail-sent-ok {
	background-color: #111111;
	border: 1px solid #333;
	color: #FFFFFF;
}

.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
	background-color: rgba(255, 107, 107, 0.1);
	border: 2px solid #ff6b6b;
	color: #ff6b6b;
}

.wpcf7-spinner {
	margin-left: 1rem;
	vertical-align: middle;
}

/* Remove default Contact Form 7 styles */
.wpcf7 p {
	margin: 0;
}

.wpcf7 br {
	display: none;
}

/* Make form more compact on mobile */
@media (max-width: 768px) {
	.wpcf7-form input[type="text"],
	.wpcf7-form input[type="email"],
	.wpcf7-form textarea {
		padding: 0.85rem 1rem;
		font-size: 1rem;
	}

	.wpcf7-form input[type="submit"],
	.wpcf7-form button[type="submit"] {
		width: 100%;
		padding: 1rem;
	}
}

/* Mobile Responsive Utilities */
@media (max-width: 768px) {
	.wp-block-query.is-portfolio-grid {
		grid-template-columns: 1fr;
	}

	.stats-counter {
		grid-template-columns: 1fr;
	}

	/* Fix horizontal overflow on all pages */
	body, html {
		overflow-x: hidden !important;
		max-width: 100vw !important;
	}

	/* Prevent any element from extending beyond viewport */
	* {
		max-width: 100% !important;
	}

	/* Contact form fixes */
	.wpcf7-form input[type="text"],
	.wpcf7-form input[type="email"],
	.wpcf7-form textarea {
		max-width: 100% !important;
		box-sizing: border-box !important;
	}

	/* Ensure minimum touch target sizes (44x44px) */
	button,
	.wp-block-button__link,
	input[type="submit"],
	input[type="button"],
	a.wp-block-button__link {
		min-height: 44px !important;
		min-width: 44px !important;
		padding: 12px 24px !important;
	}

	/* Make navigation buttons larger for touch */
	.wp-block-navigation__responsive-container-open {
		min-width: 44px !important;
		min-height: 44px !important;
		padding: 8px !important;
	}

	/* Ensure text is readable on mobile (minimum 14px) */
	p, li, span, a {
		font-size: 1rem !important;
		line-height: 1.6 !important;
	}

	/* Pricing page - ensure text readability */
	.has-small-font-size,
	.has-contrast-3-color {
		font-size: 0.9375rem !important;
	}
}

/* Print Styles */
@media print {
	.wp-block-navigation,
	.wp-block-buttons {
		display: none;
	}
}

/* ========================================
   HERO SECTION - Split Layout
   ======================================== */

/* Hero split container */
.hero-split {
	padding-top: 120px !important; /* Account for fixed header + breathing room */
	padding-bottom: 40px !important;
}

/* Hero columns - align items */
.hero-columns {
	align-items: center !important;
}

/* Text column - vertically center content */
.hero-text-column {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Image column */
.hero-image-column {
	padding: 40px 0 !important;
	position: relative;
	overflow: hidden;
}

/* Statement image - square */
.hero-statement-image {
	margin: 0 !important;
}

.hero-statement-image img {
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: center;
	aspect-ratio: 1 / 1;
}

/* Mobile responsive - stack layout */
@media (max-width: 781px) {
	.hero-split {
		padding-top: 100px;
	}

	.hero-columns {
		flex-direction: column-reverse !important;
	}

	.hero-columns .wp-block-column {
		flex-basis: 100% !important;
	}

	.hero-text-column {
		padding: 3rem 1.5rem !important;
	}

	.hero-image-column {
		width: 100%;
	}
}

/* ========================================
   PAGE HERO - Inner Pages
   ======================================== */

.page-hero {
	padding-top: 140px !important;
	padding-bottom: 80px !important;
}

/* Space between hero and content below */
.page-hero + .wp-block-group {
	margin-top: 60px !important;
}

@media (max-width: 781px) {
	.page-hero {
		padding-top: 120px !important;
		padding-bottom: 60px !important;
	}
}

/* Image placeholders - subtle styling */
.studio-image-placeholder img,
.work-image-placeholder img,
.about-portrait-placeholder img {
	background-color: #151515;
	transition: opacity 0.3s ease;
}

.studio-image-placeholder:hover img,
.work-image-placeholder:hover img {
	opacity: 0.85;
}

/* Ensure smooth transitions */
* {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* ========================================
   AUDIO CROSSFADE COMPONENT
   Dry/Wet mixing fader for before/after
   ======================================== */

.audio-crossfade-container {
	background: #111;
	border: 1px solid #222;
	padding: 2rem;
	margin-bottom: 2rem;
}

.audio-crossfade-container.is-ready {
	opacity: 1;
}

/* Header with title */
.crossfade-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 1.5rem;
}

.crossfade-title {
	font-size: 1.125rem;
	font-weight: 400;
	color: #FFFFFF;
	margin: 0 0 0.25rem 0;
	font-family: 'Playfair Display', Georgia, serif;
}

.crossfade-subtitle {
	font-size: 0.75rem;
	color: #666;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin: 0;
}

/* Play button */
.crossfade-play-btn {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #FFFFFF;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s ease;
	flex-shrink: 0;
}

.crossfade-play-btn:hover {
	background: #E5E5E5;
	transform: scale(1.05);
}

.crossfade-play-btn:disabled {
	background: #333;
	cursor: not-allowed;
}

.crossfade-play-btn svg {
	width: 24px;
	height: 24px;
	fill: #0A0A0A;
}

/* Play icon */
.crossfade-play-btn .icon-play {
	display: block;
}

.crossfade-play-btn .icon-pause {
	display: none;
}

.crossfade-play-btn.is-playing .icon-play {
	display: none;
}

.crossfade-play-btn.is-playing .icon-pause {
	display: block;
}

/* Progress bar */
.crossfade-progress {
	height: 4px;
	background: #222;
	cursor: pointer;
	margin-bottom: 1.5rem;
	position: relative;
	overflow: hidden;
}

.crossfade-progress-bar {
	height: 100%;
	background: #FFFFFF;
	width: 0%;
	transition: width 0.1s linear;
}

.crossfade-time {
	font-size: 0.75rem;
	color: #666;
	text-align: right;
	margin-top: 0.5rem;
	font-variant-numeric: tabular-nums;
}

/* Fader section */
.crossfade-fader-section {
	margin-top: 1.5rem;
}

.crossfade-labels {
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.75rem;
}

.label-dry,
.label-wet {
	font-size: 0.6875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: opacity 0.2s ease;
}

.label-dry {
	color: #666;
}

.label-wet {
	color: #FFFFFF;
}

/* Custom range slider / fader */
.crossfade-slider {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 8px;
	background: linear-gradient(to right, #333 0%, #333 var(--fader-position, 50%), #FFFFFF var(--fader-position, 50%), #FFFFFF 100%);
	border-radius: 0;
	outline: none;
	cursor: pointer;
}

.crossfade-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 24px;
	height: 32px;
	background: #FFFFFF;
	border: 2px solid #0A0A0A;
	border-radius: 2px;
	cursor: grab;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
	transition: transform 0.1s ease;
}

.crossfade-slider::-webkit-slider-thumb:hover {
	transform: scale(1.1);
}

.crossfade-slider::-webkit-slider-thumb:active {
	cursor: grabbing;
	transform: scale(1.05);
}

.crossfade-slider::-moz-range-thumb {
	width: 24px;
	height: 32px;
	background: #FFFFFF;
	border: 2px solid #0A0A0A;
	border-radius: 2px;
	cursor: grab;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.crossfade-slider::-moz-range-track {
	height: 8px;
	background: transparent;
}

/* Fader description */
.crossfade-description {
	text-align: center;
	margin-top: 1rem;
	font-size: 0.75rem;
	color: #666;
}

/* Hidden audio elements */
.audio-crossfade-container audio {
	display: none;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.audio-crossfade-container {
		padding: 1.5rem;
	}

	.crossfade-header {
		flex-direction: column;
		gap: 1rem;
	}

	.crossfade-play-btn {
		width: 48px;
		height: 48px;
	}

	.crossfade-play-btn svg {
		width: 20px;
		height: 20px;
	}

	.crossfade-slider::-webkit-slider-thumb {
		width: 20px;
		height: 28px;
	}
}

/* Multiple crossfaders in a grid */
.crossfade-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
	gap: 1.5rem;
}

@media (max-width: 768px) {
	.crossfade-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   SCROLL FADER - Custom scrollbar styled as mixing console fader
   ========================================================================== */

/* Hide default scrollbar when fader is active */
html.has-scroll-fader {
	scrollbar-width: none; /* Firefox */
	-ms-overflow-style: none; /* IE/Edge */
}

html.has-scroll-fader::-webkit-scrollbar {
	display: none; /* Chrome/Safari/Opera */
}

/* Fader container */
.scroll-fader {
	position: fixed;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 9999;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.scroll-fader.is-ready {
	opacity: 1;
	pointer-events: auto;
}

/* Fader track - the channel strip */
.fader-track {
	position: relative;
	width: 12px;
	height: 60vh;
	max-height: 400px;
	min-height: 200px;
	background: linear-gradient(
		to bottom,
		#1a1a1a 0%,
		#252525 50%,
		#1a1a1a 100%
	);
	border: 1px solid #333;
	border-radius: 2px;
	box-shadow:
		inset 0 2px 4px rgba(0, 0, 0, 0.5),
		0 0 10px rgba(0, 0, 0, 0.3);
	cursor: pointer;
}

/* Track groove / center line */
.fader-track::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 8px;
	bottom: 8px;
	width: 2px;
	transform: translateX(-50%);
	background: linear-gradient(
		to bottom,
		#111 0%,
		#222 50%,
		#111 100%
	);
	border-radius: 1px;
}

/* Track notches / tick marks */
.fader-track::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: 10%;
	bottom: 10%;
	background-image: repeating-linear-gradient(
		to bottom,
		transparent 0px,
		transparent 18px,
		#333 18px,
		#333 19px
	);
	pointer-events: none;
}

/* Fader knob / cap */
.fader-knob {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, -50%);
	width: 28px;
	height: 40px;
	background: linear-gradient(
		to bottom,
		#f5f5f5 0%,
		#e0e0e0 20%,
		#d0d0d0 50%,
		#c0c0c0 80%,
		#b0b0b0 100%
	);
	border: 1px solid #999;
	border-radius: 3px;
	cursor: grab;
	box-shadow:
		0 2px 8px rgba(0, 0, 0, 0.4),
		inset 0 1px 0 rgba(255, 255, 255, 0.8),
		inset 0 -1px 0 rgba(0, 0, 0, 0.1);
	transition: transform 0.1s ease, box-shadow 0.1s ease;
}

/* Knob grip lines */
.fader-knob::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 16px;
	height: 20px;
	background-image: repeating-linear-gradient(
		to bottom,
		transparent 0px,
		transparent 2px,
		#888 2px,
		#888 3px
	);
	opacity: 0.6;
}

/* Knob center indicator line */
.fader-knob::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 20px;
	height: 2px;
	background: #666;
	border-radius: 1px;
}

/* Knob hover state */
.fader-knob:hover {
	transform: translate(-50%, -50%) scale(1.05);
	box-shadow:
		0 4px 12px rgba(0, 0, 0, 0.5),
		inset 0 1px 0 rgba(255, 255, 255, 0.8),
		inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}

/* Knob active/dragging state */
.fader-knob.is-active,
.fader-knob:active {
	cursor: grabbing;
	transform: translate(-50%, -50%) scale(1.02);
	background: linear-gradient(
		to bottom,
		#ffffff 0%,
		#f0f0f0 20%,
		#e0e0e0 50%,
		#d0d0d0 80%,
		#c0c0c0 100%
	);
	box-shadow:
		0 2px 6px rgba(0, 0, 0, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.9),
		inset 0 -1px 0 rgba(0, 0, 0, 0.1),
		0 0 15px rgba(255, 255, 255, 0.1);
}

/* Fader labels */
.fader-labels {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #555;
	pointer-events: none;
}

.fader-label-top {
	order: -1;
	margin-bottom: 8px;
}

.fader-label-bottom {
	margin-top: 8px;
}

/* When dragging, prevent text selection */
.scroll-fader.is-dragging {
	user-select: none;
}

/* Mobile adjustments */
@media (max-width: 768px) {
	.scroll-fader {
		right: 10px;
	}

	.fader-track {
		width: 10px;
		height: 50vh;
		max-height: 300px;
		min-height: 150px;
	}

	.fader-knob {
		width: 24px;
		height: 34px;
	}

	.fader-labels {
		display: none;
	}
}

/* Hide on very small screens where it would be intrusive */
@media (max-width: 480px) {
	.scroll-fader {
		display: none;
	}

	/* Restore default scrollbar on small screens */
	html.has-scroll-fader {
		scrollbar-width: auto;
		-ms-overflow-style: auto;
	}

	html.has-scroll-fader::-webkit-scrollbar {
		display: block;
	}
}

/* Focus state for keyboard accessibility */
.fader-knob:focus {
	outline: none;
	box-shadow:
		0 2px 8px rgba(0, 0, 0, 0.4),
		inset 0 1px 0 rgba(255, 255, 255, 0.8),
		inset 0 -1px 0 rgba(0, 0, 0, 0.1),
		0 0 0 2px rgba(255, 255, 255, 0.3);
}

/* Optional: Animate knob position smoothly when not dragging */
.scroll-fader:not(.is-dragging) .fader-knob {
	transition: top 0.1s ease-out, transform 0.1s ease, box-shadow 0.1s ease;
}
