/*
Theme Name: Novus Peptides
Theme URI: https://novuspeptides.com
Description: Child theme of Extendable carrying the Novus Peptides design system — deep navy ground, indigo brand, teal nav accent. Palette, typography and layout are set in theme.json; this file carries chrome and WooCommerce styling that blocks can't express.
Author: Novus Peptides
Template: extendable
Version: 1.1.0
Requires at least: 6.5
Tested up to: 6.8
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: novus-child
*/

/* =========================================================
   Novus design tokens — lifted verbatim from novus-global.css
   so the store and the static site stay in agreement.
   ========================================================= */
:root{
  --novus-bg0:#060914;
  --novus-bg1:#070b1a;
  --novus-stroke: rgba(255,255,255,.10);
  --novus-text: rgba(255,255,255,.92);
  --novus-muted: rgba(255,255,255,.72);
  --novus-muted2: rgba(255,255,255,.58);
  --novus-brand:#6c5ce7;
  --novus-brand2:#4cc9f0;
  --novus-accent:#00d5c9;      /* nav active + underline */
  --novus-cta:#4f46e5;
  --novus-cta-hover:#6366f1;
  --novus-radius:20px;
  --novus-header-bg: rgba(2,6,23,.82);
  --novus-header-line: rgba(30,41,59,.6);
}

/* ---------- Ground ---------- */
body{
  background: var(--novus-bg0);
  color: var(--novus-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ---------- Type scale (matches the static site) ---------- */
main h1{ font-size:32px; line-height:1.12; letter-spacing:-.4px; font-weight:700; }
main h2{ font-size:18px; line-height:1.25; letter-spacing:-.3px; font-weight:600; }
main h3{ letter-spacing:-.2px; }
main p{ font-size:14.5px; line-height:1.7; }
main li{ font-size:12.5px; line-height:1.55; }

@media (max-width:980px){ main h1{ font-size:26px; } }
@media (max-width:640px){
  main h1{ font-size:24px; }
  main p{ font-size:14px; }
}

/* ---------- Header / nav ---------- */
.novus-header,
.wp-block-template-part.site-header{
  position:sticky; top:0; z-index:40;
  background: var(--novus-header-bg);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border-bottom:1px solid var(--novus-header-line);
  box-shadow:0 20px 40px -10px rgba(67,56,202,.4);
}
.novus-header .wp-block-site-logo img{ height:66px; width:auto; }

.novus-header .wp-block-navigation a{
  position:relative;
  color: var(--novus-text) !important;
  text-decoration:none;
  font-size:14px; font-weight:500; line-height:1;
  padding-bottom:4px;
  transition:color .2s ease;
}
.novus-header .wp-block-navigation a:hover,
.novus-header .wp-block-navigation .current-menu-item > a{
  color: var(--novus-accent) !important;
}
/* animated underline, same easing as the static nav */
.novus-header .wp-block-navigation a::after{
  content:""; position:absolute; left:0; bottom:0;
  height:1px; width:100%; border-radius:999px;
  background: var(--novus-accent);
  transform:scaleX(0); transform-origin:left;
  transition:transform .5s ease-out;
}
.novus-header .wp-block-navigation a:hover::after,
.novus-header .wp-block-navigation .current-menu-item > a::after{ transform:scaleX(1); }

/* ---------- Buttons ---------- */
.wp-block-button__link,
.wc-block-components-button,
button.single_add_to_cart_button,
a.button, button.button, .woocommerce a.button{
  background: var(--novus-cta) !important;
  color:#fff !important;
  border:1px solid rgba(129,140,248,.3) !important;
  border-radius:12px !important;
  font-weight:700 !important;
  box-shadow:0 10px 25px -5px rgba(79,70,229,.4);
  transition:background .2s ease;
}
.wp-block-button__link:hover,
.wc-block-components-button:hover,
button.single_add_to_cart_button:hover,
a.button:hover, .woocommerce a.button:hover{
  background: var(--novus-cta-hover) !important;
}

/* ---------- Product grid ---------- */
ul.products li.product,
.wc-block-grid__product,
.wp-block-woocommerce-product-template li{
  background: var(--novus-bg1);
  border:1px solid var(--novus-stroke);
  border-radius: var(--novus-radius);
  padding:14px;
  transition:border-color .2s ease, transform .2s ease;
}
ul.products li.product:hover,
.wc-block-grid__product:hover{
  border-color: rgba(99,102,241,.55);
  transform: translateY(-2px);
}
ul.products li.product img,
.wc-block-grid__product-image img{
  border-radius:14px;
  background: rgba(2,6,23,.35);
}
.woocommerce ul.products li.product .price,
.wc-block-grid__product-price{
  color: var(--novus-brand2) !important;
  font-weight:700;
}

/* ---------- Single product ---------- */
.woocommerce div.product .product_title{ font-size:32px; letter-spacing:-.4px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color: var(--novus-brand2);
  font-weight:700;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background: var(--novus-bg1);
  border:1px solid var(--novus-stroke);
  border-radius:12px 12px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  border-color: rgba(99,102,241,.55);
}
/* Strength dropdown on variable products */
.woocommerce div.product form.cart .variations select{
  background: var(--novus-bg1);
  color: var(--novus-text);
  border:1px solid var(--novus-stroke);
  border-radius:12px;
  padding:10px 12px;
}

/* ---------- Panels, cards, tables ---------- */
.wp-block-group.has-background,
.woocommerce-info, .woocommerce-message, .woocommerce-error{
  border-radius: var(--novus-radius);
  border:1px solid var(--novus-stroke);
  background: var(--novus-bg1);
  color: var(--novus-text);
}
.woocommerce table.shop_table{
  border:1px solid var(--novus-stroke);
  border-radius: var(--novus-radius);
  background: var(--novus-bg1);
}
.woocommerce table.shop_table th{ color: var(--novus-muted); }

/* ---------- RUO line ---------- */
.novus-ruo{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  color: var(--novus-muted2);
}

/* ---------- Footer ---------- */
.novus-footer,
.wp-block-template-part.site-footer{
  background: var(--novus-bg1);
  border-top:1px solid var(--novus-stroke);
  color: var(--novus-muted);
}
.novus-footer a{ color: var(--novus-muted); text-decoration:none; }
.novus-footer a:hover{ color: var(--novus-accent); }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
}

/* ---------- Footer disclosure block ---------- */
.novus-disclosure{
  border:1px solid var(--novus-stroke);
  border-radius: var(--novus-radius);
  background: rgba(2,6,23,.45);
  padding:22px 24px;
  margin-bottom:36px;
}
.novus-disclosure-title{
  color: var(--novus-brand2);
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.novus-detail{
  border-top:1px solid var(--novus-stroke);
  padding:12px 0 4px;
}
.novus-detail summary{
  cursor:pointer; list-style:none;
  display:flex; align-items:center; gap:12px;
  font-size:13px; font-weight:600; color: var(--novus-text);
}
.novus-detail summary::-webkit-details-marker{ display:none; }
.novus-detail summary::after{ content:"▾"; margin-left:auto; opacity:.7; }
.novus-detail[open] summary::after{ content:"▴"; }
.novus-detail p{ color: var(--novus-muted); margin-top:8px; }

.novus-footer h3{ color: var(--novus-muted2); letter-spacing:.14em; text-transform:uppercase; }
.novus-footer ul{ list-style:none; padding-left:0; }
.novus-footer ul li{ margin:6px 0; }
.novus-header-cta .wp-block-button__link{ padding:9px 16px; font-size:12px; }
