/*
Theme Name: Elwick Audio
Theme URI: https://elwickaudio.com/
Author: Elwick Audio
Description: A premium, page-builder-free WordPress/WooCommerce theme for Elwick Audio. Built for plugins, instruments, software and digital products.
Version: 1.0.7
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: elwick-audio
*/

:root {
  --elwick-bg: #0d0f10;
  --elwick-bg-soft: #151819;
  --elwick-panel: #191d1e;
  --elwick-text: #f3f1ec;
  --elwick-muted: #9ca3a5;
  --elwick-border: rgba(255,255,255,.11);
  --elwick-accent: #D9953D;
  --elwick-accent-hover: #E3A04A;
  --elwick-accent-soft: rgba(217,149,61,.14);
  --elwick-light: #f4f1eb;
  --elwick-dark: #111313;
  --elwick-radius: 3px;
  --elwick-max: 1240px;
  --elwick-gap: clamp(1.25rem, 3vw, 2.5rem);
  --elwick-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--elwick-bg); color:var(--elwick-text); font-family:var(--elwick-font); font-size:16px; line-height:1.65; }
img { max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--elwick-accent); }
.entry-content a, .page-content a, .woocommerce .woocommerce-breadcrumb a, .woocommerce-product-details__short-description a, .product_meta a { color:var(--elwick-accent); }
.entry-content a:hover, .page-content a:hover, .woocommerce .woocommerce-breadcrumb a:hover, .woocommerce-product-details__short-description a:hover, .product_meta a:hover { color:var(--elwick-accent-hover); }
button, input, select, textarea { font:inherit; }
.container { width:min(calc(100% - 40px), var(--elwick-max)); margin-inline:auto; }
.screen-reader-text { position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* Header */
.site-header { position:sticky; top:0; z-index:1000; background:rgba(13,15,16,.94); backdrop-filter:blur(14px); border-bottom:1px solid var(--elwick-border); }
.header-inner { min-height:78px; display:flex; align-items:center; gap:28px; }
.site-branding { display:flex; align-items:center; flex:0 0 auto; }
.elwick-logo { display:inline-flex; align-items:center; gap:13px; }
.elwick-mark { width:29px; height:29px; display:block; }
.elwick-logo-copy { line-height:1; }
.elwick-name { display:block; font-size:20px; letter-spacing:.28em; font-weight:650; }
.elwick-sub { display:block; margin-top:7px; font-size:8px; letter-spacing:.55em; padding-left:2px; color:#b9bec0; }
.main-navigation { margin-left:auto; }
.main-navigation ul { display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.main-navigation a { font-size:13px; letter-spacing:.06em; color:#d6d8d7; }
.header-actions { display:flex; align-items:center; gap:18px; margin-left:18px; }
.header-icon { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border:1px solid var(--elwick-border); border-radius:50%; }
.header-icon svg { width:15px; height:15px; }
.menu-toggle { display:none; border:0; background:none; color:inherit; cursor:pointer; }

/* General */
.site-main { min-height:60vh; }
.section { padding:clamp(64px,8vw,112px) 0; }
.section-tight { padding:48px 0; }
.eyebrow { margin:0 0 14px; color:var(--elwick-accent); font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
h1,h2,h3,h4 { margin:0 0 18px; line-height:1.1; font-weight:600; letter-spacing:-.025em; }
h1 { font-size:clamp(42px,7vw,82px); }
h2 { font-size:clamp(30px,4vw,52px); }
h3 { font-size:clamp(22px,2.5vw,30px); }
p { margin:0 0 1.2em; }
.lead { max-width:690px; color:#b8bdbe; font-size:clamp(18px,2vw,22px); }
.muted { color:var(--elwick-muted); }
.rule { height:1px; background:var(--elwick-border); border:0; margin:0; }

.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { display:inline-flex!important; align-items:center; justify-content:center; min-height:48px; padding:0 24px!important; border:1px solid transparent!important; border-radius:2px!important; background:var(--elwick-accent)!important; color:#17110a!important; font-size:12px!important; font-weight:750!important; letter-spacing:.13em; text-transform:uppercase; cursor:pointer; transition:.2s ease; }
.button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background:var(--elwick-accent-hover)!important; color:#17110a!important; transform:translateY(-1px); }
.button--outline { background:transparent!important; color:var(--elwick-text)!important; border-color:var(--elwick-border)!important; }
.button--outline:hover { border-color:rgba(255,255,255,.3)!important; background:rgba(255,255,255,.04)!important; }

/* Hero */
.hero { position:relative; overflow:hidden; min-height:670px; display:flex; align-items:center; background:radial-gradient(circle at 75% 45%, rgba(217,149,61,.11), transparent 32%), var(--elwick-bg); }
.hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(13,15,16,.98) 0%,rgba(13,15,16,.82) 48%,rgba(13,15,16,.18) 100%); }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:60px; }
.hero-copy { max-width:730px; }
.hero h1 span { display:block; color:#bfc6c7; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.hero-visual { min-height:470px; display:flex; align-items:center; justify-content:center; }
.signal-orbit { width:min(100%,520px); aspect-ratio:1; position:relative; border:1px solid rgba(255,255,255,.09); border-radius:50%; }
.signal-orbit::before,.signal-orbit::after { content:""; position:absolute; inset:14%; border:1px solid rgba(255,255,255,.07); border-radius:50%; }
.signal-orbit::after { inset:28%; border-color:rgba(217,149,61,.25); }
.signal-wave { position:absolute; left:10%; right:10%; top:50%; height:100px; transform:translateY(-50%); }
.signal-wave svg { width:100%; height:100%; }

/* Cards / products */
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:32px; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.product-card { border:1px solid var(--elwick-border); background:var(--elwick-panel); transition:.25s ease; }
.product-card:hover { border-color:rgba(255,255,255,.25); transform:translateY(-2px); }
.product-card__image { aspect-ratio:1.25; display:flex; align-items:center; justify-content:center; padding:28px; background:linear-gradient(135deg,#111415,#202627); }
.product-card__image img { width:100%; height:100%; object-fit:contain; }
.product-card__body { padding:24px; }
.product-card__meta { color:var(--elwick-muted); font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.product-card h3 { margin:8px 0 6px; font-size:24px; }
.product-card__price { color:var(--elwick-accent); font-size:15px; }

.feature-band { background:var(--elwick-light); color:#121414; }
.feature-band .muted { color:#5e6566; }
.feature-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:70px; }
.feature-art { min-height:450px; background:#d9d7d1; display:flex; align-items:center; justify-content:center; }
.feature-art img { max-height:420px; object-fit:contain; }

/* Page / Woo */
.page-header { padding:74px 0 46px; border-bottom:1px solid var(--elwick-border); }
.breadcrumbs { margin-bottom:16px; color:var(--elwick-muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.content-area { padding:60px 0 100px; }

.woocommerce .woocommerce-breadcrumb { color:var(--elwick-muted); font-size:11px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:30px; }
.woocommerce .woocommerce-breadcrumb a { color:#d9dcdb; }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:0; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto!important; float:none!important; margin:0!important; padding:0; border:1px solid var(--elwick-border); background:var(--elwick-panel); overflow:hidden; }
.woocommerce ul.products li.product a img { margin:0; aspect-ratio:1.25; object-fit:contain; background:#111415; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding:20px 22px 3px; font-size:21px; color:#f3f1ec; }
.woocommerce ul.products li.product .price { padding:0 22px 20px; color:var(--elwick-accent); font-size:14px; }
.woocommerce ul.products li.product .button { margin:0 22px 22px!important; }
.woocommerce span.onsale { background:var(--elwick-accent); color:#0d1011; min-width:auto; min-height:auto; padding:7px 11px; border-radius:0; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }

/* Single product */
.single-product div.product { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); gap:clamp(35px,6vw,90px); }
.single-product div.product .woocommerce-product-gallery { width:auto!important; float:none!important; margin:0!important; }
.single-product div.product .summary { width:auto!important; float:none!important; margin:0!important; }
.single-product div.product .woocommerce-product-gallery__image { background:#111415; border:1px solid var(--elwick-border); }
.single-product .product_title { font-size:clamp(38px,5vw,64px); }
.single-product .price { color:var(--elwick-accent); font-size:20px; margin-bottom:20px; }
.single-product .woocommerce-product-details__short-description { color:#b6bcbc; font-size:17px; }
.single-product form.cart { display:flex; gap:10px; margin-top:28px; }
.single-product form.cart .quantity .qty { height:48px; width:72px; border:1px solid var(--elwick-border); background:#151819; color:#fff; padding:0 10px; }
.single-product .product_meta { padding-top:20px; margin-top:25px; border-top:1px solid var(--elwick-border); color:var(--elwick-muted); font-size:12px; }
.woocommerce-tabs { margin-top:80px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding:0; margin:0 0 25px; border-bottom:1px solid var(--elwick-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:transparent; border:0; margin:0 28px 0 0; padding:0 0 15px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background:transparent; border-bottom:2px solid var(--elwick-accent); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color:#dfe2e1; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }

/* Forms */
.woocommerce form .form-row label { color:#b8bcbc; font-size:11px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:7px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce input.input-text, .woocommerce textarea { min-height:48px; border:1px solid var(--elwick-border); border-radius:2px; background:#151819; color:#f4f4f1; padding:10px 13px; }
.woocommerce form .form-row textarea { min-height:120px; }
.woocommerce form .form-row input:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus { outline:1px solid rgba(217,149,61,.6); }
.woocommerce-info,.woocommerce-message,.woocommerce-error { background:#151819!important; color:#dfe2e1!important; border-top-color:var(--elwick-accent)!important; }

/* Cart / checkout */
.woocommerce-cart .cart-collaterals .cart_totals, .woocommerce-checkout #order_review, .woocommerce-checkout #customer_details, .woocommerce form.checkout_coupon, .woocommerce form.login { border:1px solid var(--elwick-border); background:#151819; padding:26px; }
.woocommerce table.shop_table { border:1px solid var(--elwick-border); border-collapse:collapse; background:#111415; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color:var(--elwick-border); color:#dfe2e1; padding:16px; }
.woocommerce table.shop_table th { color:#aeb4b5; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-size:24px; }
.woocommerce #payment { background:#151819; border:1px solid var(--elwick-border); border-radius:0; }
.woocommerce #payment div.payment_box { background:#202425; color:#c9cdcc; }
.woocommerce #payment div.payment_box::before { border-bottom-color:#202425; }

/* Footer */
.site-footer { border-top:1px solid var(--elwick-border); padding:58px 0 28px; background:#0a0c0d; }
.footer-grid { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:40px; }
.footer-brand p { max-width:330px; color:#8e9698; margin-top:20px; }
.footer-title { margin:0 0 15px; color:#a9afb0; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.footer-links { list-style:none; padding:0; margin:0; }
.footer-links li { margin-bottom:8px; }
.footer-links a { color:#d2d5d4; font-size:13px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:48px; padding-top:20px; border-top:1px solid var(--elwick-border); color:#727a7c; font-size:11px; }

@media (max-width: 980px) {
  .main-navigation { display:none; position:absolute; left:0; right:0; top:78px; padding:20px; background:#0d0f10; border-bottom:1px solid var(--elwick-border); }
  .main-navigation.is-open { display:block; }
  .main-navigation ul { flex-direction:column; align-items:flex-start; gap:16px; }
  .menu-toggle { display:inline-flex; margin-left:auto; }
  .header-actions { margin-left:0; }
  .hero-grid,.feature-grid,.single-product div.product { grid-template-columns:1fr; }
  .hero { min-height:auto; padding:90px 0; }
  .hero-visual { min-height:340px; }
  .product-grid,.woocommerce ul.products { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px) {
  .container { width:min(calc(100% - 28px), var(--elwick-max)); }
  .header-inner { min-height:68px; }
  .main-navigation { top:68px; }
  .elwick-name { font-size:17px; }
  .elwick-mark { width:25px;height:25px; }
  .header-actions { gap:8px; }
  .header-actions .account-icon { display:none; }
  .product-grid,.woocommerce ul.products { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px 18px; }
  .footer-bottom { flex-direction:column; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .single-product div.product { display:block; }
  .single-product div.product .summary { margin-top:35px!important; }
  .woocommerce-cart .cart-collaterals .cart_totals { width:100%; }
}

/* Single-product layout: premium full-width hero media with a horizontal thumbnail strip. */
.single-product .elwick-product-media {
  width:100%;
  margin:0;
}
.single-product .elwick-product-media .woocommerce-product-gallery {
  width:100%!important;
  float:none!important;
  margin:0!important;
  display:block;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-viewport {
  width:100%;
  height:auto!important;
  aspect-ratio:16/9;
  min-height:0;
  background:#111415;
  border:1px solid var(--elwick-border);
  overflow:hidden;
}
.single-product .elwick-product-media .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
  margin:0!important;
  height:100%;
}
.single-product .elwick-product-media .woocommerce-product-gallery__image,
.single-product .elwick-product-media .woocommerce-product-gallery__image a {
  width:100%;
  height:100%;
  display:block;
  background:#111415;
}
.single-product .elwick-product-media .woocommerce-product-gallery__image img {
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs {
  display:flex!important;
  flex-wrap:nowrap;
  gap:10px;
  width:100%;
  height:auto!important;
  margin:12px 0 0!important;
  padding:0 0 3px!important;
  list-style:none;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:thin;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li {
  flex:0 0 132px;
  width:132px!important;
  height:82px!important;
  float:none!important;
  margin:0!important;
  padding:0!important;
  list-style:none;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li img {
  display:block;
  width:100%!important;
  height:100%!important;
  aspect-ratio:16/10;
  object-fit:cover;
  background:#111415;
  border:1px solid var(--elwick-border);
  opacity:.58;
  cursor:pointer;
  transition:opacity .2s ease,border-color .2s ease,transform .2s ease;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
  opacity:1;
  border-color:var(--elwick-accent);
}
.single-product .elwick-product-summary {
  width:100%;
  max-width:none;
  margin:clamp(42px,6vw,76px) 0 0;
}
.single-product .elwick-product-summary .summary {
  width:100%!important;
  float:none!important;
  margin:0!important;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:clamp(32px,6vw,90px);
  align-items:start;
}
.single-product .elwick-product-summary .product_title {
  grid-column:1;
  grid-row:1;
  max-width:900px;
  margin-top:0;
}
.single-product .elwick-product-summary .price {
  grid-column:1;
  grid-row:2;
}
.single-product .elwick-product-summary .woocommerce-product-details__short-description {
  grid-column:2;
  grid-row:1 / span 2;
  max-width:none;
  margin-top:0;
}
.single-product .elwick-product-summary form.cart {
  grid-column:2;
  grid-row:3;
  margin-top:24px;
}
.single-product .elwick-product-summary .product_meta {
  grid-column:1;
  grid-row:3;
}
.single-product .elwick-product-below {
  width:100%;
  margin-top:clamp(60px,8vw,100px);
}

@media (max-width:900px) {
  .single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li {
    flex-basis:112px;
    width:112px!important;
    height:70px!important;
  }
  .single-product .elwick-product-summary .summary {
    column-gap:32px;
  }
}

@media (max-width:700px) {
  .single-product .elwick-product-media .woocommerce-product-gallery .flex-viewport {
    aspect-ratio:16/10;
  }
  .single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs {
    gap:8px;
    margin-top:8px!important;
  }
  .single-product .elwick-product-media .woocommerce-product-gallery .flex-control-thumbs li {
    flex-basis:96px;
    width:96px!important;
    height:60px!important;
  }
  .single-product .elwick-product-summary {
    margin-top:48px;
  }
  .single-product .elwick-product-summary .summary {
    display:block;
  }
  .single-product .elwick-product-summary .woocommerce-product-details__short-description {
    margin-top:24px;
  }
  .single-product .elwick-product-summary form.cart {
    margin-top:24px;
  }
  .single-product .elwick-product-below {
    margin-top:55px;
  }
}

/* Final product-page structure: the media showcase is full-width on desktop.
 * The product information beneath it is the only two-column section. */
@media (min-width: 701px) {
  .single-product div.product {
    display:block!important;
    width:100%;
  }
  .single-product .elwick-product-media,
  .single-product .elwick-product-summary,
  .single-product .elwick-product-below {
    width:100%;
    grid-column:auto;
  }
}


/* High-resolution product media. Never upscale/crop plugin screenshots in the hero. */
.single-product .elwick-product-media .woocommerce-product-gallery__image img {
  image-rendering: auto;
  image-rendering: -webkit-optimize-contrast;
  backface-visibility: hidden;
}
.single-product .elwick-product-media .woocommerce-product-gallery .flex-viewport img {
  max-width: none;
  width: 100%;
  height: 100%;
}

.elwick-free-price { color: var(--elwick-accent); font-weight: 700; letter-spacing: .04em; }

/* Elwick digital software library */
.elwick-download-library {
  margin: clamp(44px, 7vw, 86px) 0 0;
  padding: clamp(28px, 4vw, 44px);
  border: 1px solid var(--elwick-border);
  background: #111415;
}
.elwick-download-library__header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:28px;
  padding-bottom:24px;
  border-bottom:1px solid var(--elwick-border);
}
.elwick-download-library__header h2,
.elwick-account-library-intro h2 { margin:0 0 10px; }
.elwick-download-library__header .muted,
.elwick-account-library-intro .muted { max-width:700px; margin:0; }
.elwick-download-library__grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.elwick-download-card {
  display:grid;
  grid-template-columns:minmax(120px,180px) minmax(0,1fr);
  border:1px solid var(--elwick-border);
  background:#151819;
  min-width:0;
}
.elwick-download-card__media {
  min-height:150px;
  background:#0d0f10;
  border-right:1px solid var(--elwick-border);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.elwick-download-card__image { width:100%; height:100%; object-fit:cover; margin:0!important; }
.elwick-download-card__body { padding:22px; min-width:0; }
.elwick-download-card__body h3 { margin:0 0 7px; font-size:22px; }
.elwick-download-card__body h3 a { color:var(--elwick-text); }
.elwick-download-card__file { color:#d2d5d4; margin:0 0 12px; font-size:13px; }
.elwick-download-card__meta { color:var(--elwick-muted); font-size:11px; margin:5px 0; }
.elwick-download-card__button { margin-top:18px; width:100%; }
.elwick-account-library-intro {
  margin:0 0 30px;
  padding:28px 0 26px;
  border-bottom:1px solid var(--elwick-border);
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info { margin-top:20px; }
.woocommerce-account .woocommerce-MyAccount-content .download-file a.button,
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-MyAccount-downloads-file {
  background:var(--elwick-accent)!important;
  color:#17110a!important;
  border:0!important;
  border-radius:2px!important;
  padding:10px 16px!important;
  font-size:10px!important;
  font-weight:750!important;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.woocommerce-account .woocommerce-MyAccount-content .download-file a.button:hover,
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-MyAccount-downloads-file:hover { background:var(--elwick-accent-hover)!important; }

@media (max-width:800px) {
  .elwick-download-library__header { align-items:flex-start; flex-direction:column; }
  .elwick-download-library__grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .elwick-download-library { padding:22px; }
  .elwick-download-card { grid-template-columns:1fr; }
  .elwick-download-card__media { min-height:160px; border-right:0; border-bottom:1px solid var(--elwick-border); }
}
