/*
Theme Name: Studio Platform Child
Theme URI: https://metavative.com
Description: Dark cinematic child theme for Peter's Studio Music Production Platform — full-width premium studio branding, two-column animated hero and glassmorphic marketplace UI on top of Twenty Twenty-Five.
Author: Metavative
Author URI: https://metavative.com
Template: twentytwentyfive
Version: 0.4.4
Text Domain: studio-child
*/

/* ============================================================ Tokens ============================================================ */
:root{
	--sp-bg:#08090d; --sp-bg-2:#0b0d13; --sp-panel:#0e1017;
	--sp-surface:rgba(255,255,255,0.04); --sp-surface-2:rgba(255,255,255,0.07);
	--sp-border:rgba(255,255,255,0.09); --sp-border-2:rgba(255,255,255,0.15);
	--sp-text:#eef0f5; --sp-muted:#9aa0ae; --sp-faint:#6b7080;
	--sp-gold:#f0b429; --sp-gold-2:#ffd15c; --sp-violet:#7c5cff; --sp-green:#34d399;
	--sp-glow:rgba(240,180,41,0.35);
	--sp-radius:16px; --sp-radius-lg:22px;
	--sp-font-display:'Space Grotesk', system-ui, sans-serif;
	--sp-font-body:'Inter', system-ui, -apple-system, sans-serif;
	--sp-maxw:1200px;
}

/* ============================================================ Global dark canvas ============================================================ */
html{ scroll-behavior:smooth; }
body, .wp-site-blocks{ background:var(--sp-bg) !important; color:var(--sp-text); font-family:var(--sp-font-body); -webkit-font-smoothing:antialiased; }
body{ overflow-x:hidden; }
h1,h2,h3,h4,.wp-block-heading{ font-family:var(--sp-font-display); color:var(--sp-text); letter-spacing:-0.02em; text-wrap:balance; }
a{ color:var(--sp-gold-2); }
p{ color:var(--sp-text); }

/* ---- Custom header ---- */
header.wp-block-template-part{ position:sticky; top:0; z-index:30; border-bottom:1px solid var(--sp-border); background:rgba(8,9,13,0.72) !important; backdrop-filter:saturate(140%) blur(12px); }
footer.wp-block-template-part{ background:#05060a !important; border-top:1px solid var(--sp-border); }
.wp-block-template-part{ color:var(--sp-text); }

.sp-brand{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--sp-font-display); font-weight:700; font-size:1.12rem; letter-spacing:-.01em; color:var(--sp-text) !important; text-decoration:none; }
.sp-brand-dot{ width:12px; height:12px; border-radius:50%; background:radial-gradient(circle at 30% 30%,var(--sp-gold-2),var(--sp-gold)); box-shadow:0 0 12px var(--sp-glow); }

.sp-header{ max-width:var(--sp-maxw); margin-inline:auto; padding:0 2rem; height:72px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.sp-nav{ display:flex; gap:1.9rem; align-items:center; margin-left:auto; }
.sp-nav a{ color:var(--sp-muted); font-size:.94rem; text-decoration:none; transition:color .2s ease; }
.sp-nav a:hover{ color:var(--sp-text); }
.sp-header-actions{ display:flex; align-items:center; gap:1rem; }
.sp-header .sp-cart{ position:relative; display:inline-grid !important; place-items:center; width:44px !important; height:44px !important; flex:0 0 44px; box-sizing:border-box; border-radius:12px; border:1px solid var(--sp-border-2); background:var(--sp-surface) !important; color:var(--sp-text) !important; transition:background .2s ease, border-color .2s ease; overflow:visible; }
.sp-header .sp-cart:hover{ background:var(--sp-surface-2) !important; border-color:var(--sp-gold); }
.sp-header .sp-cart svg{ width:20px !important; height:20px !important; display:block; }
.sp-header .sp-cart-count{ position:absolute; top:-7px; right:-7px; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:linear-gradient(135deg,var(--sp-gold),var(--sp-gold-2)); color:#1a1400; font-size:.68rem; font-weight:700; font-family:var(--sp-font-display); display:grid; place-items:center; line-height:1; }
.sp-header .sp-cart-count.is-empty{ display:none; }
.sp-header-cta{ padding:.62rem 1.15rem !important; font-size:.9rem !important; }
@media (max-width:860px){ .sp-nav{ display:none; } .sp-header{ padding-inline:1.25rem; } }
@media (max-width:520px){ .sp-header-cta{ display:none !important; } }

/* ---- Custom footer ---- */
.sp-footer{ max-width:var(--sp-maxw); margin-inline:auto; padding:4rem 2rem 2rem; }
.sp-footer-top{ display:grid; grid-template-columns:1.4fr 2fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid var(--sp-border); }
.sp-footer-brand p{ color:var(--sp-muted); font-size:.94rem; max-width:340px; margin:1rem 0 1.2rem; }
.sp-mini-eq{ display:flex; align-items:flex-end; gap:3px; height:26px; margin-bottom:1.2rem; }
.sp-mini-eq span{ width:4px; border-radius:3px; background:linear-gradient(180deg,var(--sp-gold-2),rgba(240,180,41,.25)); animation:sp-eq 1.5s ease-in-out infinite; }
.sp-social{ display:flex; gap:.6rem; }
.sp-social a{ width:38px; height:38px; display:grid; place-items:center; border-radius:10px; border:1px solid var(--sp-border); background:var(--sp-surface); color:var(--sp-muted); transition:all .2s ease; }
.sp-social a:hover{ color:var(--sp-gold-2); border-color:var(--sp-gold); transform:translateY(-2px); }
.sp-social svg{ width:18px; height:18px; }
.sp-footer-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.sp-footer-col h4{ font-family:var(--sp-font-display); font-size:.82rem; text-transform:uppercase; letter-spacing:.16em; color:var(--sp-faint); margin:0 0 1rem; }
.sp-footer-col a{ display:block; color:var(--sp-muted); text-decoration:none; font-size:.94rem; padding:.35rem 0; transition:color .2s ease; }
.sp-footer-col a:hover{ color:var(--sp-gold-2); }
.sp-footer-bottom{ display:flex; align-items:center; justify-content:space-between; padding-top:1.6rem; flex-wrap:wrap; gap:.8rem; color:var(--sp-faint); font-size:.85rem; }
.sp-footer-made strong{ color:var(--sp-text); }
@media (max-width:820px){ .sp-footer-top{ grid-template-columns:1fr; gap:2rem; } }
@media (max-width:520px){ .sp-footer-cols{ grid-template-columns:1fr 1fr; } }

/* ---- Dissolve Twenty Twenty-Five's width cage on the homepage ---- */
.home main.has-global-padding,
.home .wp-block-post-content.has-global-padding{ padding-left:0 !important; padding-right:0 !important; }
.home .wp-block-post-content > *{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
.home main{ margin-top:0 !important; padding-top:0 !important; }
/* Kill the wrapper group's inline top/bottom padding so the hero sits flush under the header. */
.home main > .wp-block-group{ padding-top:0 !important; padding-bottom:0 !important; }
.home .wp-block-post-title,.home .entry-header{ display:none !important; }

/* ============================================================ Band / inner system ============================================================ */
.sp-band{ width:100%; position:relative; }
.sp-inner{ max-width:var(--sp-maxw); margin-inline:auto; padding-inline:2rem; }
.sp-section{ padding-block:6rem; }
.sp-section-pad{ padding-block:5rem; }
.sp-section h2{ font-size:clamp(1.9rem,4vw,3rem); text-align:center; margin:.6rem 0 .6rem; }
.sp-sub{ text-align:center; color:var(--sp-muted); max-width:640px; margin:0 auto 3rem; font-size:1.06rem; }
.eyebrow{ display:inline-block; text-transform:uppercase; letter-spacing:.28em; font-size:.72rem; font-weight:600; color:var(--sp-gold); font-family:var(--sp-font-body); }
.sp-center{ text-align:center; }
.sp-grad{ background:linear-gradient(120deg,var(--sp-gold-2),var(--sp-gold) 42%,#fff 92%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ============================================================ Buttons ============================================================ */
.sp-btn,.woocommerce a.button,.woocommerce button.button,.woocommerce #respond input#submit,.woocommerce input.button,.sp-package .button,button.button,a.button{
	display:inline-flex; align-items:center; gap:.55rem; font-family:var(--sp-font-display); font-weight:600; font-size:1rem;
	padding:.9rem 1.6rem; border-radius:999px; border:0; cursor:pointer; text-decoration:none; line-height:1;
	transition:transform .18s ease, box-shadow .25s ease, background .25s ease;
}
.sp-btn svg{ width:18px; height:18px; }
.sp-btn--primary,.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt{
	background:linear-gradient(135deg,var(--sp-gold),var(--sp-gold-2)); color:#1a1400 !important; box-shadow:0 10px 30px -8px var(--sp-glow);
}
.sp-btn--primary:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{ transform:translateY(-2px); box-shadow:0 16px 42px -8px var(--sp-glow); }
.sp-btn--ghost{ background:var(--sp-surface); color:var(--sp-text) !important; border:1px solid var(--sp-border-2); }
.sp-btn--ghost:hover{ background:var(--sp-surface-2); transform:translateY(-2px); }
.sp-btn:focus-visible{ outline:2px solid var(--sp-gold-2); outline-offset:3px; }

/* ============================================================ HERO ============================================================ */
.sp-hero{ overflow:hidden; }
.sp-hero-bg{ position:absolute; inset:0; z-index:0;
	background:
		radial-gradient(1100px 560px at 22% -10%, rgba(124,92,255,.20), transparent 60%),
		radial-gradient(900px 620px at 92% 30%, rgba(240,180,41,.14), transparent 55%),
		linear-gradient(180deg,#0a0b11 0%, #08090d 100%);
}
.sp-hero-bg::after{ content:""; position:absolute; inset:0;
	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:60px 60px; -webkit-mask-image:radial-gradient(circle at 30% 30%,#000,transparent 72%); mask-image:radial-gradient(circle at 30% 30%,#000,transparent 72%);
}
.sp-hero-grid{ position:relative; z-index:3; display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:center; padding-block:5.5rem 5rem; }
.sp-hero-copy{ text-align:left; }
.sp-rating{ display:flex; align-items:center; gap:.6rem; margin:1.1rem 0 .3rem; color:var(--sp-muted); font-size:.92rem; }
.sp-rating .sp-stars{ color:var(--sp-gold); letter-spacing:2px; }
.sp-hero h1{ font-size:clamp(2.5rem,5.4vw,4.6rem); font-weight:700; line-height:1.03; margin:.6rem 0 1.1rem; }
.sp-lead{ font-size:clamp(1.02rem,1.5vw,1.22rem); color:#c7ccd8; max-width:560px; margin:0 0 2rem; }
.sp-hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.sp-stats{ display:flex; gap:2.2rem; margin-top:2.6rem; }
.sp-stats > div{ display:flex; flex-direction:column; }
.sp-stats strong{ font-family:var(--sp-font-display); font-size:1.7rem; color:#fff; line-height:1; }
.sp-stats span{ color:var(--sp-faint); font-size:.82rem; margin-top:.3rem; }
.sp-stats > div + div{ padding-left:2.2rem; border-left:1px solid var(--sp-border); }

/* --- Studio-session (DAW) card --- */
.sp-hero-visual{ position:relative; }
.sp-daw{
	position:relative; z-index:2; background:linear-gradient(180deg,rgba(20,22,30,.92),rgba(12,13,19,.92));
	border:1px solid var(--sp-border-2); border-radius:var(--sp-radius-lg); padding:1.25rem; backdrop-filter:blur(10px);
	box-shadow:0 40px 80px -30px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.05);
}
.sp-daw-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.sp-live{ display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; color:var(--sp-green); font-weight:600; letter-spacing:.02em; }
.sp-live i{ width:8px; height:8px; border-radius:50%; background:var(--sp-green); box-shadow:0 0 10px var(--sp-green); animation:sp-blink 1.6s ease-in-out infinite; }
@keyframes sp-blink{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }
.sp-daw-tag{ font-size:.72rem; color:var(--sp-faint); background:var(--sp-surface); border:1px solid var(--sp-border); padding:.25rem .6rem; border-radius:999px; }
.sp-daw-art{
	height:168px; border-radius:14px; margin-bottom:1rem; position:relative; overflow:hidden;
	background:radial-gradient(120% 120% at 20% 0%, rgba(124,92,255,.35), transparent 55%), radial-gradient(120% 120% at 90% 100%, rgba(240,180,41,.35), transparent 55%), #0a0b11;
	display:flex; align-items:center; justify-content:center;
}
.sp-daw-eq{ display:flex; align-items:center; gap:4px; height:80px; padding-inline:1rem; }
.sp-daw-eq span, .sp-foot-bars span{
	width:5px; border-radius:4px; background:linear-gradient(180deg,var(--sp-gold-2),rgba(240,180,41,.2));
	animation:sp-eq 1.5s ease-in-out infinite; transform-origin:center;
}
.sp-daw-eq span{ min-height:8px; }
@keyframes sp-eq{ 0%,100%{ transform:scaleY(.35); } 50%{ transform:scaleY(1); } }
.sp-daw-meta{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.9rem; }
.sp-daw-meta strong{ display:block; font-family:var(--sp-font-display); font-size:1.05rem; color:#fff; }
.sp-daw-meta span{ color:var(--sp-muted); font-size:.82rem; }
.sp-daw-price{ font-family:var(--sp-font-display); font-weight:700; color:var(--sp-gold-2); font-size:1.15rem; }
.sp-progress{ height:6px; border-radius:999px; background:var(--sp-surface-2); overflow:hidden; }
.sp-progress i{ display:block; height:100%; width:62%; border-radius:999px; background:linear-gradient(90deg,var(--sp-gold),var(--sp-gold-2)); animation:sp-prog 4s ease-in-out infinite alternate; }
@keyframes sp-prog{ from{ width:48%; } to{ width:74%; } }
.sp-daw-status{ margin-top:.7rem; font-size:.78rem; color:var(--sp-faint); }

/* Floating status chips */
.sp-float{
	position:absolute; z-index:4; display:inline-flex; align-items:center; gap:.5rem;
	background:rgba(14,16,23,.92); border:1px solid var(--sp-border-2); border-radius:12px; padding:.6rem .8rem;
	font-size:.82rem; font-weight:600; color:var(--sp-text); box-shadow:0 20px 40px -20px rgba(0,0,0,.9); backdrop-filter:blur(8px);
}
.sp-float svg{ width:16px; height:16px; }
.sp-float--paid{ top:-18px; left:-26px; animation:sp-float 5s ease-in-out infinite; }
.sp-float--paid svg{ stroke:var(--sp-green); }
.sp-float--sent{ bottom:-16px; right:-20px; animation:sp-float 5.6s ease-in-out infinite .4s; }
.sp-float--sent svg{ stroke:var(--sp-gold); }
@keyframes sp-float{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }

/* Full-width waveform footer of the hero */
.sp-hero-foot{ position:relative; z-index:1; height:90px; margin-top:-10px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); }
.sp-foot-bars{ display:flex; align-items:flex-end; justify-content:center; gap:4px; height:90px; opacity:.5; }
.sp-foot-bars span{ flex:1; max-width:8px; min-height:6px; height:100%; }

/* ============================================================ Trust ============================================================ */
.sp-trust{ background:var(--sp-bg-2); border-top:1px solid var(--sp-border); border-bottom:1px solid var(--sp-border); }
.sp-trust-inner{ display:flex; gap:2.6rem; align-items:center; justify-content:center; flex-wrap:wrap; padding-block:1.7rem; color:var(--sp-faint); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; }

/* ============================================================ Process ============================================================ */
.sp-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.sp-stepcard{ position:relative; background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:var(--sp-radius); padding:1.8rem 1.4rem; transition:transform .3s ease, border-color .3s ease, background .3s ease; }
.sp-stepcard:hover{ transform:translateY(-6px); border-color:var(--sp-border-2); background:var(--sp-surface-2); }
.sp-ico{ width:52px; height:52px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg,rgba(240,180,41,.18),rgba(124,92,255,.14)); border:1px solid var(--sp-border-2); margin-bottom:1rem; }
.sp-ico svg{ width:24px; height:24px; stroke:var(--sp-gold-2); }
.sp-stepcard .sp-num{ position:absolute; top:1.2rem; right:1.3rem; font-family:var(--sp-font-display); font-weight:700; color:var(--sp-faint); font-variant-numeric:tabular-nums; }
.sp-stepcard h3{ font-size:1.12rem; margin:0 0 .4rem; }
.sp-stepcard p{ color:var(--sp-muted); font-size:.95rem; margin:0; }

/* ============================================================ Features ============================================================ */
.sp-feature-band{ background:linear-gradient(180deg,#0a0c12,#08090d); border-top:1px solid var(--sp-border); border-bottom:1px solid var(--sp-border); }
.sp-features{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.sp-feature{ padding:1.6rem; background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:var(--sp-radius); transition:transform .3s ease, border-color .3s ease; }
.sp-feature:hover{ transform:translateY(-5px); border-color:var(--sp-border-2); }
.sp-feature .sp-ico{ margin-bottom:1rem; }
.sp-feature .sp-ico svg{ stroke:var(--sp-gold); }
.sp-feature h3{ font-size:1.1rem; margin:0 0 .5rem; }
.sp-feature p{ color:var(--sp-muted); margin:0; font-size:.95rem; }

/* ============================================================ Packages ============================================================ */
.sp-packages{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; align-items:stretch; margin-top:.5rem; }
.sp-package{ position:relative; display:flex; flex-direction:column; overflow:hidden; background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02)); border:1px solid var(--sp-border); border-radius:var(--sp-radius-lg); padding:2rem 1.75rem; backdrop-filter:blur(6px); transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.sp-package:hover{ transform:translateY(-8px); border-color:var(--sp-border-2); box-shadow:0 30px 60px -30px rgba(0,0,0,.8); }
.sp-package--featured{ border-color:rgba(240,180,41,.5); box-shadow:0 20px 60px -20px var(--sp-glow); background:linear-gradient(180deg,rgba(240,180,41,.10),rgba(255,255,255,.02)); }
.sp-package--featured::before{ content:"Most popular"; position:absolute; top:1.1rem; right:-2.5rem; background:linear-gradient(135deg,var(--sp-gold),var(--sp-gold-2)); color:#1a1400; font-family:var(--sp-font-display); font-weight:700; font-size:.66rem; letter-spacing:.05em; padding:.32rem 2.7rem; transform:rotate(45deg); }
.sp-package h3{ font-size:1.35rem; margin:0 0 .2rem; }
.sp-price{ font-family:var(--sp-font-display); font-size:2.6rem; font-weight:700; margin:.4rem 0 .2rem; color:#fff; font-variant-numeric:tabular-nums; }
.sp-price .woocommerce-Price-amount{ color:#fff; }
.sp-tagline{ color:var(--sp-muted); min-height:2.6em; margin:0 0 1rem; }
.sp-package ul{ list-style:none; padding:0; margin:1rem 0 1.6rem; flex:1; }
.sp-package ul li{ position:relative; padding:.5rem 0 .5rem 1.9rem; color:#d4d8e2; border-bottom:1px solid rgba(255,255,255,.05); font-size:.95rem; }
.sp-package ul li:last-child{ border-bottom:0; }
.sp-package ul li::before{ content:""; position:absolute; left:0; top:.72rem; width:18px; height:18px; border-radius:50%; background:rgba(240,180,41,.15) center/11px no-repeat; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f0b429' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); }
.sp-package .button{ width:100%; justify-content:center; }
.sp-package:not(.sp-package--featured) .button{ background:var(--sp-surface-2); color:var(--sp-text) !important; border:1px solid var(--sp-border-2); }
.sp-package:not(.sp-package--featured) .button:hover{ background:rgba(255,255,255,.1); transform:translateY(-2px); }

/* ============================================================ Testimonials ============================================================ */
.sp-quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.sp-quote{ background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:var(--sp-radius); padding:1.8rem; }
.sp-quote .sp-stars{ color:var(--sp-gold); letter-spacing:2px; margin-bottom:.8rem; }
.sp-quote p{ color:#d4d8e2; font-size:1.02rem; line-height:1.6; margin:0 0 1.1rem; }
.sp-author{ display:flex; align-items:center; gap:.7rem; }
.sp-avatar{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-family:var(--sp-font-display); font-weight:700; color:#1a1400; background:linear-gradient(135deg,var(--sp-gold),var(--sp-violet)); }
.sp-author strong{ display:block; color:var(--sp-text); font-size:.95rem; }
.sp-author span{ color:var(--sp-faint); font-size:.82rem; }

/* ============================================================ CTA ============================================================ */
.sp-cta{ padding-block:5.5rem; }
.sp-cta-inner{ max-width:820px; margin:0 auto; text-align:center; border-radius:26px; padding:3.5rem 2rem; background:linear-gradient(135deg,rgba(124,92,255,.16),rgba(240,180,41,.12)); border:1px solid var(--sp-border-2); }
.sp-cta h2{ font-size:clamp(1.8rem,4vw,2.7rem); margin:0 0 .8rem; }
.sp-cta p{ color:#c7ccd8; margin:0 0 1.8rem; font-size:1.08rem; }

/* ============================================================ Reveal ============================================================ */
.sp-reveal,.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.sp-reveal.sp-in,.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal,.sp-reveal{ opacity:1; transform:none; } .sp-daw-eq span,.sp-foot-bars span,.sp-live i,.sp-progress i,.sp-float{ animation:none !important; } }

/* ============================================================ WooCommerce on dark ============================================================ */
.woocommerce,.woocommerce-page,.woocommerce-account,.woocommerce-cart,.woocommerce-checkout{ color:var(--sp-text); }
.woocommerce .woocommerce-info,.woocommerce .woocommerce-message,.woocommerce-info,.woocommerce-message{ background:var(--sp-surface); border-top:3px solid var(--sp-gold); color:var(--sp-text); }
.woocommerce table.shop_table,.woocommerce-cart table.cart,.woocommerce table.shop_table_responsive{ background:var(--sp-surface); border-radius:var(--sp-radius); border:1px solid var(--sp-border); color:var(--sp-text); }
.woocommerce table.shop_table th,.woocommerce table.shop_table td{ border-color:var(--sp-border) !important; color:var(--sp-text); }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce .select2-container--default .select2-selection--single,.woocommerce input[type="text"],.woocommerce input[type="email"],.woocommerce input[type="password"],.woocommerce input[type="tel"],.woocommerce textarea,.woocommerce select{ background:var(--sp-bg-2); border:1px solid var(--sp-border-2); color:var(--sp-text); border-radius:10px; padding:.7rem .85rem; }
.woocommerce form .form-row label,.woocommerce-account label{ color:var(--sp-muted); }
.woocommerce .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
.woocommerce .woocommerce-MyAccount-navigation li{ background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:10px; margin-bottom:.5rem; }
.woocommerce .woocommerce-MyAccount-navigation li.is-active{ border-color:var(--sp-gold); }
.woocommerce .woocommerce-MyAccount-navigation li a{ display:block; padding:.7rem 1rem; color:var(--sp-text); text-decoration:none; }
.woocommerce-account .woocommerce-MyAccount-content{ background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:var(--sp-radius); padding:1.75rem; }
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{ background:var(--sp-surface); border:1px solid var(--sp-border); border-radius:var(--sp-radius); padding:1rem; color:var(--sp-text); }
.woocommerce ul.products li.product .price,.woocommerce div.product p.price,.woocommerce div.product span.price{ color:var(--sp-gold-2); }

/* ============================================================ WooCommerce Blocks: Cart & Checkout (dark) ============================================================ */
.wp-block-woocommerce-checkout,.wp-block-woocommerce-cart,.wc-block-checkout,.wc-block-cart{ color:var(--sp-text); }

/* Step headings & copy */
.wc-block-components-title,.wc-block-components-checkout-step__title,.wc-block-components-checkout-step__heading,.wc-block-components-checkout-step__heading-content h2,.wc-block-components-order-summary .wc-block-components-title{ color:var(--sp-text) !important; font-family:var(--sp-font-display); }
.wc-block-components-checkout-step__description{ color:var(--sp-muted) !important; }

/* Text inputs & textareas */
.wc-block-components-text-input input,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea,
.wc-block-checkout textarea{
	background:var(--sp-bg-2) !important; border:1px solid var(--sp-border-2) !important; color:var(--sp-text) !important; border-radius:10px !important;
}
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus{ border-color:var(--sp-gold) !important; box-shadow:0 0 0 1px var(--sp-gold) !important; outline:none !important; }

/* Floating labels — kill the white notch, tint on focus */
.wc-block-components-text-input label,
.wc-block-components-checkout-step label,
.wc-block-components-combobox label,
.wc-block-components-select label{ color:var(--sp-muted) !important; background:transparent !important; }
.wc-block-components-text-input.is-active label{ color:var(--sp-gold-2) !important; }

/* Selects / comboboxes (country, state) */
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-combobox .components-form-token-field__input-container,
.wc-block-components-combobox input,
.wc-block-components-combobox-control input,
.wc-block-components-country-input input,
.wc-block-components-state-input input{
	background:var(--sp-bg-2) !important; border:1px solid var(--sp-border-2) !important; color:var(--sp-text) !important; border-radius:10px !important;
}
.wc-blocks-components-select__container{ border-color:var(--sp-border-2) !important; }
.components-form-token-field__suggestions-list,.wc-block-components-combobox-control ul{ background:var(--sp-panel) !important; color:var(--sp-text) !important; border:1px solid var(--sp-border-2) !important; }
.components-form-token-field__suggestion.is-selected{ background:var(--sp-gold) !important; color:#1a1400 !important; }

/* Kill Chrome autofill white */
.wc-block-checkout input:-webkit-autofill,
.wc-block-checkout input:-webkit-autofill:hover,
.wc-block-checkout input:-webkit-autofill:focus{
	-webkit-box-shadow:0 0 0 1000px var(--sp-bg-2) inset !important;
	-webkit-text-fill-color:var(--sp-text) !important;
	caret-color:var(--sp-text) !important;
}

/* Order summary sidebar */
.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wc-block-components-sidebar{ background:var(--sp-surface) !important; border:1px solid var(--sp-border) !important; border-radius:var(--sp-radius) !important; }
.wc-block-components-order-summary-item{ border-color:var(--sp-border) !important; }
.wc-block-components-order-summary-item__description .wc-block-components-product-name,
.wc-block-components-product-name,.wc-block-components-order-summary-item__quantity{ color:var(--sp-text) !important; }
.wc-block-components-order-summary-item__individual-prices,.wc-block-components-product-metadata{ color:var(--sp-muted) !important; }
.wc-block-components-order-summary-item__image img,.wc-block-components-order-summary-item__image{ border-radius:8px; }

/* Totals */
.wc-block-components-totals-item__label{ color:var(--sp-muted) !important; }
.wc-block-components-totals-item__value,.wc-block-formatted-money-amount,.wc-block-components-product-price{ color:var(--sp-text) !important; }
.wc-block-components-totals-footer-item,.wc-block-components-totals-item.wc-block-components-totals-footer-item{ border-top:1px solid var(--sp-border) !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ color:var(--sp-gold-2) !important; font-family:var(--sp-font-display); }

/* Panels (coupons), dividers */
.wc-block-components-panel,.wc-block-components-totals-coupon,.wc-block-components-totals-wrapper{ border-color:var(--sp-border) !important; }
.wc-block-components-panel__button,.wc-block-components-totals-coupon-link{ color:var(--sp-text) !important; }
.wc-block-components-panel__button svg{ fill:var(--sp-muted); }

/* Payment method radios */
.wc-block-components-radio-control__option{ border:1px solid var(--sp-border) !important; border-radius:10px !important; background:var(--sp-surface) !important; color:var(--sp-text) !important; margin-bottom:.5rem; }
.wc-block-components-radio-control__option-checked,.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked{ border-color:var(--sp-gold) !important; box-shadow:0 0 0 1px var(--sp-gold); }
.wc-block-components-radio-control__label{ color:var(--sp-text) !important; }

/* Checkboxes */
.wc-block-components-checkbox .wc-block-components-checkbox__mark{ }
.wc-block-components-checkbox__label{ color:var(--sp-muted) !important; }

/* Place order button */
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wc-block-components-button.wc-block-components-button.contained{
	background:linear-gradient(135deg,var(--sp-gold),var(--sp-gold-2)) !important; color:#1a1400 !important; border-radius:999px !important; font-family:var(--sp-font-display) !important; font-weight:600 !important;
}
.wc-block-components-checkout-place-order-button:hover{ box-shadow:0 12px 30px -10px var(--sp-glow) !important; }

/* Links & misc */
.wc-block-checkout a,.wc-block-components-checkout-step a,.wc-block-cart a{ color:var(--sp-gold-2); }
.wc-block-components-address-card{ background:var(--sp-surface) !important; border-color:var(--sp-border) !important; color:var(--sp-text) !important; }
.wc-block-checkout__add-note .wc-block-components-textarea{ background:var(--sp-bg-2) !important; }

/* ============================================================ Responsive ============================================================ */
@media (max-width:1000px){
	.sp-hero-grid{ grid-template-columns:1fr; gap:2.5rem; padding-block:4rem 3rem; }
	.sp-hero-visual{ max-width:460px; }
	.sp-float--paid{ left:0; }
	.sp-float--sent{ right:0; }
	.sp-steps,.sp-features,.sp-quotes{ grid-template-columns:1fr 1fr; }
	.sp-packages{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; }
}
@media (max-width:600px){
	.sp-inner{ padding-inline:1.25rem; }
	.sp-steps,.sp-features,.sp-quotes{ grid-template-columns:1fr; }
	.sp-section{ padding-block:4rem; }
	.sp-stats{ gap:1.3rem; }
	.sp-stats > div + div{ padding-left:1.3rem; }
	.sp-stats strong{ font-size:1.35rem; }
}
