/*
Theme Name: Tcasso Sounds
Theme URI: https://tcassosounds.com
Author: Tcasso Sounds
Description: Custom dark, editorial water-themed theme for Tcasso Sounds. Built for WooCommerce. Fraunces display type, warm amber accents, animated water canvas, film grain, custom cursor.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 9.0
Text Domain: tcasso
*/

:root{
  --bg:#0a0a0a;--bg-2:#131312;--bg-3:#1a1a18;
  --ink:#f0e9dc;--ink-dim:#a39d92;--ink-faint:#8a857b;
  --accent:#c25e2a;--accent-2:#e88e5a;--accent-gold:#d4a574;
  --line:rgba(240,233,220,0.08);--line-strong:rgba(240,233,220,0.18);
  --serif:"Fraunces",Georgia,serif;--sans:"Inter",-apple-system,sans-serif;
  --pad:clamp(20px,5vw,80px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;margin:0}
body.tcasso-cursor{cursor:none}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;border:none;background:none;color:inherit}

/* FILM GRAIN */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.035;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");mix-blend-mode:overlay}

/* CURSOR */
#tc-cur{width:10px;height:10px;background:var(--accent-2);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);mix-blend-mode:screen;box-shadow:0 0 8px var(--accent);transition:width .2s,height .2s;display:none}
#tc-ring{width:28px;height:28px;border:1px solid rgba(194,94,42,.3);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);display:none}
.tcasso-cursor #tc-cur,.tcasso-cursor #tc-ring{display:block}
.tc-rpl{position:fixed;border-radius:50%;border:1px solid rgba(232,142,90,.2);pointer-events:none;z-index:9997;transform:translate(-50%,-50%) scale(0);animation:tcrip .8s ease-out forwards}
@keyframes tcrip{to{transform:translate(-50%,-50%) scale(1);opacity:0;width:90px;height:90px}}

/* WATER CANVAS */
#tc-wc{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.2}
#page,header,footer,main{position:relative;z-index:1}

/* HEADER */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:18px var(--pad);display:flex;align-items:center;justify-content:space-between;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:rgba(10,10,10,.6);border-bottom:1px solid var(--line);transition:padding .3s}
.site-header.scrolled{padding:12px var(--pad)}
.wordmark{font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:-.01em;font-style:italic;white-space:nowrap}
.wordmark span{font-style:normal;font-weight:300}
.main-nav ul{display:flex;gap:32px;list-style:none;align-items:center;margin:0;padding:0}
.main-nav a{font-size:13px;letter-spacing:.02em;color:var(--ink-dim);position:relative;transition:color .2s}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--ink)}
.main-nav .current-menu-item>a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent)}
.header-right{display:flex;align-items:center;gap:20px}
.cart-link{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-dim);transition:color .2s}
.cart-link:hover{color:var(--ink)}
.cart-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--bg);font-size:11px;font-weight:600}
.menu-toggle{display:none;flex-direction:column;gap:5px;width:26px}
.menu-toggle span{height:1.5px;background:var(--ink-dim);transition:.3s}

/* HERO */
.hero{min-height:100vh;padding:140px var(--pad) 80px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;bottom:30px;left:var(--pad);width:1px;height:60px;background:linear-gradient(to bottom,transparent,var(--ink-dim));animation:tcdrop 2.4s ease-in-out infinite}
@keyframes tcdrop{0%,100%{transform:translateY(0);opacity:.3}50%{transform:translateY(10px);opacity:1}}
.eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-2);margin-bottom:28px;display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--accent-2)}
.hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(56px,11vw,148px);line-height:.95;letter-spacing:-.04em;margin:0 0 36px;max-width:12ch}
.hero h1 em{font-style:italic;font-weight:400;color:var(--accent-2)}
.hero .lede{font-size:clamp(16px,1.6vw,19px);line-height:1.55;color:var(--ink-dim);max-width:52ch;margin-bottom:48px}

/* BUTTONS */
.btn,.woocommerce a.button,.woocommerce button.button,.woocommerce .button,.woocommerce #respond input#submit{display:inline-flex;align-items:center;gap:14px;padding:18px 32px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;transition:all .3s;cursor:pointer;border:none}
.btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce .button:hover{background:var(--accent);color:var(--ink);transform:translateY(-2px)}
.btn .arr{display:inline-block;transition:transform .3s}
.btn:hover .arr{transform:translateX(4px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* SECTIONS */
.section{padding:120px var(--pad);border-top:1px solid var(--line);position:relative}
.section.bg2{background:var(--bg-2)}
.sec-head{display:grid;grid-template-columns:1fr 2fr;gap:60px;margin-bottom:80px;align-items:end}
.sec-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5vw,64px);line-height:1.05;letter-spacing:-.03em;max-width:18ch;margin:0}
.sec-head h2 em{font-style:italic;color:var(--accent-2)}
.sec-head .sub{font-size:17px;color:var(--ink-dim);line-height:1.6;max-width:52ch}
.wband{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 40% at 70% 30%,rgba(194,94,42,.04) 0%,transparent 70%),radial-gradient(ellipse 50% 50% at 20% 80%,rgba(212,165,116,.03) 0%,transparent 60%)}

/* CATALOG CARDS */
.cats-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cat-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:5/4;padding:36px;background:var(--bg-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:border-color .3s,transform .3s}
.cat-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.cat-card .num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:80px;line-height:1;color:var(--accent);opacity:.7}
.cat-card h3{font-family:var(--serif);font-weight:300;font-size:clamp(36px,4vw,60px);line-height:1;letter-spacing:-.03em;margin:0}
.cat-meta-row{display:flex;justify-content:space-between;align-items:end;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.arr-lnk{font-size:20px;color:var(--ink-dim);transition:transform .3s,color .3s}
.cat-card:hover .arr-lnk{transform:translateX(6px);color:var(--accent-2)}
.wring{position:absolute;border-radius:50%;border:1px solid rgba(194,94,42,.05);pointer-events:none;transition:border-color .5s}
.cat-card:hover .wring{border-color:rgba(194,94,42,.18)}

/* PAGE HEAD */
.page-head{padding:160px var(--pad) 80px;border-bottom:1px solid var(--line);position:relative}
.page-head h1{font-family:var(--serif);font-weight:300;font-size:clamp(56px,10vw,140px);line-height:.95;letter-spacing:-.04em;margin:0 0 24px;max-width:14ch}
.page-head h1 em{font-style:italic;color:var(--accent-2)}
.page-head .sub{font-size:18px;color:var(--ink-dim);max-width:56ch;line-height:1.55}

/* ───────── WOOCOMMERCE ───────── */
.woocommerce-page .content-area,.shop-wrap{padding:40px var(--pad) 120px;position:relative}
.woocommerce ul.products{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:40px;margin:0;padding:0}
.woocommerce ul.products li.product{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:border-color .3s,transform .3s;margin:0 !important;width:auto !important;float:none !important;padding:0}
.woocommerce ul.products li.product:hover{border-color:var(--line-strong);transform:translateY(-4px)}
.woocommerce ul.products li.product a img{margin:0;border-radius:0;aspect-ratio:1;object-fit:cover}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:-.02em;padding:20px 24px 4px;color:var(--ink)}
.woocommerce ul.products li.product .price{display:block;font-family:var(--serif);font-size:20px;color:var(--ink);padding:0 24px;margin-bottom:12px}
.woocommerce ul.products li.product .price del{color:var(--ink-faint);font-size:15px;margin-right:8px}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .button{margin:0 24px 24px;font-size:12px;padding:12px 22px;background:transparent;border:1px solid var(--line-strong);color:var(--ink)}
.woocommerce ul.products li.product .button:hover{background:var(--ink);color:var(--bg)}
.woocommerce ul.products li.product .onsale{background:var(--accent);color:var(--ink);border-radius:999px;min-height:auto;min-width:auto;padding:4px 12px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;top:12px;right:12px;left:auto;margin:0}

/* SINGLE PRODUCT */
.single-product div.product{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:140px var(--pad) 120px;position:relative}
.single-product div.product .woocommerce-product-gallery{width:100% !important;margin:0}
.single-product div.product .woocommerce-product-gallery img{border-radius:14px;border:1px solid var(--line)}
.single-product div.product .product_title{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5vw,64px);line-height:1;letter-spacing:-.03em;margin:0 0 16px}
.single-product div.product p.price{font-family:var(--serif);font-size:32px;color:var(--ink);margin-bottom:24px}
.single-product div.product p.price del{color:var(--ink-faint);font-size:22px;margin-right:10px}
.single-product div.product p.price ins{text-decoration:none}
.single-product .woocommerce-product-details__short-description{color:var(--ink-dim);line-height:1.7;margin-bottom:28px}
.single-product .cart .quantity{display:none}
.single-product .single_add_to_cart_button{width:100%;justify-content:center}
.woocommerce-tabs{grid-column:1/-1;margin-top:40px}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;margin-right:8px}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--accent);border-color:var(--accent)}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{color:var(--ink)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-color:var(--line)}

/* audio preview player */
.tc-preview{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 10px;background:var(--bg);border:1px solid var(--line);border-radius:999px;margin:0 0 24px;max-width:480px}
.tc-preview audio{flex:1;height:38px}

/* CART / CHECKOUT */
.woocommerce-cart .content-area,.woocommerce-checkout .content-area,.woocommerce-account .content-area{padding:160px var(--pad) 120px;position:relative}
.woocommerce table.shop_table{border:1px solid var(--line);border-radius:14px;background:var(--bg-2);border-collapse:separate}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-top:1px solid var(--line);color:var(--ink-dim)}
.woocommerce-cart table.cart img{width:64px;border-radius:8px}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-checkout #order_review{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;padding:24px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.select2-container--default .select2-selection--single{background:var(--bg);border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);padding:12px 16px}
.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--bg-2);border-top-color:var(--accent);color:var(--ink-dim)}
.woocommerce-message::before,.woocommerce-info::before{color:var(--accent)}

/* FOOTER */
.site-footer{padding:80px var(--pad) 40px;border-top:1px solid var(--line);display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;position:relative}
.site-footer .wordmark{font-size:26px;margin-bottom:10px;display:block;font-style:italic}
.site-footer .about-blurb{color:var(--ink-dim);max-width:36ch;font-size:14px}
.footer-col h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;font-weight:500}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li{margin-bottom:8px}
.footer-col a{font-size:14px;color:var(--ink-dim);transition:color .2s}
.footer-col a:hover{color:var(--ink)}
.footer-bottom{grid-column:1/-1;margin-top:32px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-faint)}

/* REVEAL */
.rev{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}
.rev.in{opacity:1;transform:translateY(0)}

@media(max-width:820px){
  .main-nav ul{display:none}
  .main-nav.open ul{display:flex;position:fixed;inset:64px 0 0 0;background:var(--bg);flex-direction:column;padding:40px var(--pad);gap:28px;align-items:flex-start;border-top:1px solid var(--line)}
  .main-nav.open ul a{font-size:24px;font-family:var(--serif);color:var(--ink)}
  .menu-toggle{display:flex}
  .cats-grid,.sec-head{grid-template-columns:1fr}
  .single-product div.product{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr}
}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px}
.about-stat{text-align:center;padding:40px 20px;border:1px solid var(--line);border-radius:18px;background:var(--bg-2)}
.about-stat-num{font-family:var(--serif);font-style:italic;font-size:clamp(48px,6vw,80px);font-weight:300;color:var(--accent-2);line-height:1;margin-bottom:8px}
.about-stat-label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}
.social-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border:1px solid var(--line-strong);border-radius:999px;font-size:13px;color:var(--ink-dim);transition:all .25s}
.social-btn:hover{color:var(--ink);border-color:var(--accent);background:rgba(194,94,42,.06)}
@media(max-width:820px){.about-stats{grid-template-columns:1fr}}k
/* FOCUS STATES */
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 2px solid var(--accent-2);
  outline-offset: 2px;
}
/* Hide SKU and quantity on product pages */
/* Hide SKU, quantity, payment buttons */
.sku_wrapper, 
.product_meta .sku_wrapper,
p.sku_wrapper,
.wc-block-components-product-sku,
table.woocommerce-product-attributes tr.sku_wrapper { display: none !important; }

.wp-block-woocommerce-product-button .wc-block-components-product-button,
.woocommerce-variation-add-to-cart .woocommerce-PaymentRequestButton,
.woocommerce_after_add_to_cart_button,
#payment_request_button_separator,
.wcpay-payment-request-wrapper,
.payment_request_button_container { display: none !important; }

/* Fix Add to Cart button colour */
.single_add_to_cart_button,
.woocommerce a.single_add_to_cart_button {
  background: var(--ink) !important;
  color: var(--bg) !important;
  border-radius: 999px !important;
  border: none !important;
}
.single_add_to_cart_button:hover,
.woocommerce a.single_add_to_cart_button:hover {
  background: var(--accent) !important;
  color: var(--ink) !important;
}
.quantity { display: none !important; }
.wcmp-player-title { display: none; }