/* =========================================================
   FEDE VALDEZ.WAV — tokens de diseño
   Negro / Blanco / Rojo — tipografía de estudio de audio
   ========================================================= */
:root{
	--fvw-black:      #0a0a0a;
	--fvw-black-soft: #141414;
	--fvw-card:       #1a1a1a;
	--fvw-white:      #f5f5f5;
	--fvw-grey:       #8a8a8a;
	--fvw-red:        #e10600;
	--fvw-red-dim:    #8c0400;

	--fvw-display: Arial, Helvetica, sans-serif;
	--fvw-body:    Arial, Helvetica, sans-serif;
	--fvw-mono:    Arial, Helvetica, sans-serif;
}

/* ---------- Base ---------- */
html{ position:relative; }
body{
	position:relative;
	overflow-x:hidden;
	background-color:var(--fvw-black);
	background-image:
		linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
	background-size:34px 34px;
	color:var(--fvw-white);
	font-family:var(--fvw-body);
	letter-spacing:.01em;
}
/* Luces rojas ambientales, se mueven lento de fondo */
body::before,
body::after{
	content:'';
	position:absolute;
	width:760px; height:760px;
	border-radius:50%;
	background:radial-gradient(circle, var(--fvw-red) 0%, transparent 68%);
	filter:blur(60px);
	mix-blend-mode:screen;
	opacity:.85;
	pointer-events:none;
	z-index:5;
	will-change:transform;
}
body::before{
	top:-220px; left:-220px;
	animation:fvw-glow-a 16s ease-in-out infinite alternate;
}
body::after{
	bottom:-260px; right:-220px;
	background:radial-gradient(circle, var(--fvw-red) 0%, transparent 68%);
	opacity:.75;
	animation:fvw-glow-b 20s ease-in-out infinite alternate;
}
html::before{
	content:'';
	position:absolute;
	top:35%; left:50%;
	width:820px; height:820px;
	margin-left:-410px;
	border-radius:50%;
	background:radial-gradient(circle, var(--fvw-red-dim) 0%, transparent 65%);
	filter:blur(90px);
	mix-blend-mode:screen;
	opacity:.6;
	pointer-events:none;
	z-index:4;
	animation:fvw-glow-c 26s ease-in-out infinite alternate;
}
@keyframes fvw-glow-a{
	0%{ transform:translate(0,0); }
	100%{ transform:translate(180px,150px); }
}
@keyframes fvw-glow-b{
	0%{ transform:translate(0,0); }
	100%{ transform:translate(-160px,-130px); }
}
@keyframes fvw-glow-c{
	0%{ transform:translate(0,0) scale(1); }
	100%{ transform:translate(60px,-90px) scale(1.15); }
}
@media (prefers-reduced-motion: reduce){
	body::before, body::after, html::before{ animation:none; }
}
a{ color:var(--fvw-white); }
a:hover{ color:var(--fvw-red); }

h1,h2,h3,h4,
.site-title,
.storefront-primary-navigation .site-title{
	font-family:var(--fvw-display);
	text-transform:uppercase;
	letter-spacing:.02em;
	color:var(--fvw-white);
}

/* ---------- Header ---------- */
#masthead,
.site-header-cart,
.storefront-primary-navigation{
	background:var(--fvw-black) !important;
	border-bottom:1px solid #262626;
}
.site-title a{
	font-family:var(--fvw-display);
	font-size:1.6rem;
	letter-spacing:.04em;
	color:var(--fvw-white) !important;
}
.site-title a::after{
	content:'';
	display:inline-block;
	width:8px;height:8px;
	background:var(--fvw-red);
	margin-left:6px;
	border-radius:50%;
	vertical-align:middle;
}
.main-navigation ul li a{
	color:var(--fvw-white);
	font-family:var(--fvw-mono);
	font-size:.85rem;
	text-transform:uppercase;
	letter-spacing:.08em;
}
.main-navigation ul li a:hover{ color:var(--fvw-red); }

/* ---------- Hero de portada ---------- */
.fvw-hero{
	background:linear-gradient(180deg,var(--fvw-black) 0%,var(--fvw-black-soft) 100%);
	padding:5rem 1.5rem 4rem;
	text-align:center;
	border-bottom:1px solid #262626;
	position:relative;
	overflow:hidden;
}
.fvw-hero h1{
	font-size:clamp(2.6rem,7vw,5.2rem);
	line-height:.95;
	margin:0 0 1rem;
	position:relative;
}
.fvw-hero h1 span{ color:var(--fvw-red); }
.fvw-hero p{
	font-family:var(--fvw-mono);
	color:var(--fvw-grey);
	font-size:.95rem;
	text-transform:uppercase;
	letter-spacing:.12em;
	max-width:540px;
	margin:0 auto;
	position:relative;
}

/* ---------- Cómo funciona ---------- */
.fvw-steps{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
	gap:1px;
	background:#262626;
	border:1px solid #262626;
	margin:0 0 1rem;
}
.fvw-step{
	background:var(--fvw-black-soft);
	padding:1.6rem 1.4rem;
	position:relative;
}
.fvw-step-num{
	font-family:var(--fvw-mono);
	color:var(--fvw-red);
	font-size:.8rem;
	display:block;
	margin-bottom:.5rem;
}
.fvw-step h4{
	font-family:var(--fvw-body);
	text-transform:none;
	letter-spacing:0;
	font-size:1rem;
	margin:0 0 .3rem;
}
.fvw-step p{
	font-family:var(--fvw-mono);
	font-size:.75rem;
	color:var(--fvw-grey);
	margin:0;
	line-height:1.5;
}

/* ---------- Grilla de tienda ---------- */
ul.products{ display:grid !important; gap:1.5rem; }
ul.products li.product{
	background:var(--fvw-card);
	border:1px solid #262626;
	border-radius:6px;
	padding:1rem;
	position:relative;
	transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
ul.products li.product:hover{
	border-color:var(--fvw-red);
	transform:translateY(-3px);
	box-shadow:0 8px 28px -8px rgba(225,6,0,.35);
}
ul.products li.product::before{
	content:counter(fvw-track,decimal-leading-zero);
	counter-increment:fvw-track;
	position:absolute;
	top:.7rem; right:.9rem;
	font-family:var(--fvw-mono);
	font-size:.7rem;
	color:#3a3a3a;
	letter-spacing:.05em;
}
ul.products{ counter-reset:fvw-track; }
ul.products li.product .woocommerce-loop-product__title{
	font-family:var(--fvw-body);
	font-weight:700;
	color:var(--fvw-white);
	font-size:1rem;
	margin:.75rem 0 .25rem;
}
ul.products li.product .price{
	font-family:var(--fvw-mono);
	color:var(--fvw-red) !important;
	font-weight:700;
}
ul.products li.product img{ border-radius:4px; }

/* Botón comprar */
.button,
a.button,
.single_add_to_cart_button,
.add_to_cart_button{
	background:var(--fvw-red) !important;
	color:var(--fvw-white) !important;
	font-family:var(--fvw-mono) !important;
	text-transform:uppercase;
	letter-spacing:.08em;
	border:none !important;
	border-radius:4px !important;
	padding:.75rem 1.4rem !important;
	transition:background .2s ease;
}
.button:hover,
a.button:hover,
.single_add_to_cart_button:hover{
	background:var(--fvw-red-dim) !important;
}

/* ---------- Reproductor de preview (grilla) ---------- */
.fvw-player{
	display:flex;
	align-items:center;
	gap:.6rem;
	background:var(--fvw-black-soft);
	border:1px solid #2a2a2a;
	border-radius:5px;
	padding:.5rem .7rem;
	margin-bottom:.5rem;
}
.fvw-play-btn{
	width:32px;height:32px;flex:0 0 32px;
	border-radius:50%;
	background:var(--fvw-red);
	border:none;
	color:var(--fvw-white);
	display:flex;align-items:center;justify-content:center;
	cursor:pointer;
	font-size:.7rem;
}
.fvw-play-btn .fvw-pause-icon{ display:none; }
.fvw-player.is-playing .fvw-play-icon{ display:none; }
.fvw-player.is-playing .fvw-pause-icon{ display:inline; }

.fvw-bars{
	display:flex;
	align-items:flex-end;
	gap:2px;
	height:18px;
}
.fvw-bars span{
	width:3px;
	background:var(--fvw-grey);
	height:20%;
	border-radius:1px;
	transition:background .2s ease;
}
.fvw-player.is-playing .fvw-bars span{
	background:var(--fvw-red);
	animation:fvw-eq 0.9s ease-in-out infinite;
}
.fvw-player.is-playing .fvw-bars span:nth-child(1){ animation-delay:0s; }
.fvw-player.is-playing .fvw-bars span:nth-child(2){ animation-delay:.15s; }
.fvw-player.is-playing .fvw-bars span:nth-child(3){ animation-delay:.3s; }
.fvw-player.is-playing .fvw-bars span:nth-child(4){ animation-delay:.1s; }
.fvw-player.is-playing .fvw-bars span:nth-child(5){ animation-delay:.25s; }
@keyframes fvw-eq{
	0%,100%{ height:20%; }
	50%{ height:100%; }
}
@media (prefers-reduced-motion: reduce){
	.fvw-player.is-playing .fvw-bars span{ animation:none; height:60%; }
}

.fvw-meta{ margin-left:auto; display:flex; gap:.4rem; }
.fvw-tag{
	font-family:var(--fvw-mono);
	font-size:.65rem;
	color:var(--fvw-grey);
	border:1px solid #333;
	border-radius:3px;
	padding:.1rem .4rem;
}

/* ---------- Reproductor grande (ficha de producto) ---------- */
.fvw-player--single{
	flex-wrap:wrap;
	padding:1rem 1.2rem;
	margin:1rem 0 1.5rem;
}
.fvw-player--single .fvw-waveform{
	flex:1 1 auto;
	height:34px;
	background:repeating-linear-gradient(90deg,#333 0 2px,transparent 2px 6px);
	border-radius:3px;
	position:relative;
	overflow:hidden;
}
.fvw-player--single .fvw-progress{
	position:absolute; left:0; top:0; bottom:0;
	width:0%;
	background:linear-gradient(90deg,var(--fvw-red-dim),var(--fvw-red));
	opacity:.55;
}
.fvw-time{
	font-family:var(--fvw-mono);
	font-size:.75rem;
	color:var(--fvw-grey);
	min-width:38px;
}
.fvw-preview-note{
	flex:1 0 100%;
	font-family:var(--fvw-mono);
	font-size:.7rem;
	color:var(--fvw-grey);
	margin:.6rem 0 0;
}

/* ---------- Sección Spotify ---------- */
.fvw-spotify-section{
	position:relative;
	z-index:1;
	padding:3rem 1.5rem 2.5rem;
	text-align:center;
	border-top:1px solid #262626;
	background:var(--fvw-black-soft);
}
.fvw-spotify-title{
	font-size:1.4rem;
	margin-bottom:1.2rem;
}
.fvw-spotify-title::before{
	content:'';
	display:inline-block;
	width:10px;height:10px;
	background:var(--fvw-red);
	border-radius:50%;
	margin-right:8px;
	vertical-align:middle;
}
.fvw-spotify-embed{
	max-width:640px;
	margin:0 auto;
	border-radius:12px;
	overflow:hidden;
}
.fvw-spotify-embed iframe{ display:block; border:0; }

/* ---------- Footer ---------- */
#colophon,
.site-footer{
	background:var(--fvw-black) !important;
	border-top:1px solid #262626;
	color:var(--fvw-grey);
}
#colophon a{ color:var(--fvw-white); }

/* ---------- Carrito / Checkout ---------- */
.woocommerce form .form-row label,
.woocommerce-checkout label,
.woocommerce-billing-fields label,
.woocommerce-additional-fields label{
	color:var(--fvw-white) !important;
}

.woocommerce form .input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout input[type="number"],
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.select2-container .select2-selection,
.select2-container .select2-selection--single{
	background:var(--fvw-card) !important;
	border:1px solid #333 !important;
	color:var(--fvw-white) !important;
	border-radius:4px !important;
}
.select2-container .select2-selection__rendered{ color:var(--fvw-white) !important; }
.woocommerce-checkout ::placeholder{ color:var(--fvw-grey) !important; opacity:1; }
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus{
	border-color:var(--fvw-red) !important;
	outline:none;
}

/* Botón "Pasar al pago" (carrito) y "Realizar el pedido" (checkout) */
.wc-proceed-to-checkout .checkout-button,
.woocommerce #payment #place_order,
#place_order,
a.checkout-button,
.checkout-button{
	background:var(--fvw-red) !important;
	color:var(--fvw-white) !important;
	font-family:var(--fvw-mono) !important;
	text-transform:uppercase;
	letter-spacing:.08em;
	border:none !important;
	border-radius:4px !important;
}
.wc-proceed-to-checkout .checkout-button:hover,
.woocommerce #payment #place_order:hover,
#place_order:hover,
a.checkout-button:hover{
	background:var(--fvw-red-dim) !important;
}

/* Caja de opciones de pago (Mercado Pago, etc.) */
.woocommerce-checkout-payment,
ul.wc_payment_methods,
ul.payment_methods{
	background:var(--fvw-black-soft) !important;
	border:1px solid #262626 !important;
	border-radius:6px;
}
.woocommerce-checkout-payment li.wc_payment_method,
ul.payment_methods li{
	border-top:1px solid #262626 !important;
}
.woocommerce-checkout-payment label,
.payment_methods label{
	color:var(--fvw-white) !important;
}

/* Tablas de carrito / resumen de pedido */
.woocommerce table.shop_table,
.woocommerce-checkout-review-order-table{
	background:var(--fvw-black-soft) !important;
	border:1px solid #262626 !important;
	color:var(--fvw-white) !important;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
	border-color:#262626 !important;
	color:var(--fvw-white) !important;
}

/* ---------- Carrito / Checkout con BLOQUES (WooCommerce moderno) ---------- */
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart{
	color:var(--fvw-white);
}
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-address-form input,
.wc-block-components-combobox input,
.wc-block-components-textarea textarea,
select.wc-block-components-country-input,
select.wc-block-components-state-input{
	background:var(--fvw-card) !important;
	border:1px solid #333 !important;
	color:var(--fvw-white) !important;
	border-radius:4px !important;
}
.wc-block-components-text-input label,
.wc-block-components-checkbox label,
.wc-block-components-radio-control label,
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__description,
.wc-block-checkout__form label,
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-step__description{
	color:var(--fvw-white) !important;
}
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus{
	border-color:var(--fvw-red) !important;
	box-shadow:none !important;
}
.wc-block-components-panel,
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper,
.wc-block-checkout__payment-method,
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option-layout{
	background:var(--fvw-black-soft) !important;
	border-color:#262626 !important;
	color:var(--fvw-white) !important;
}
.wc-block-components-totals-item,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value{
	color:var(--fvw-white) !important;
}

/* Botón "Ir a pagar" / "Realizar el pedido" versión bloques */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wc-block-components-button{
	background:var(--fvw-red) !important;
	color:var(--fvw-white) !important;
	font-family:var(--fvw-mono) !important;
	text-transform:uppercase;
	letter-spacing:.08em;
	border:none !important;
	border-radius:4px !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wp-block-woocommerce-proceed-to-checkout-block a:hover,
.wc-block-components-button:hover{
	background:var(--fvw-red-dim) !important;
}
