/* =========================================================
   Novus Global Style System
   Shared typography + UI consistency for all pages
   ========================================================= */

: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-radius:20px;
}

html, body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji" !important;
  color: var(--novus-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Headline scale matched to the approved index page */
/* Default internal page titles */
main h1{
  font-size: 32px !important;
  line-height: 1.12 !important;
  letter-spacing: -0.4px !important;
  font-weight: 700 !important;
}

/* Homepage / hero titles only */
.hero h1,
.heroTitle,
.hero-title{
  font-size: clamp(32px, 3.2vw, 38px) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.45px !important;
  font-weight: 700 !important;
}

main h2,
.sectionHead h2{
  font-size: 18px !important;
  line-height: 1.25 !important;
  letter-spacing: -0.3px !important;
  font-weight: 600 !important;
}

main h3{
  letter-spacing: -0.2px;
}

/* Body copy scale */
main p,
main .lead,
main .sub,
main details p{
  font-size: 14.5px !important;
  line-height: 1.7 !important;
}

main .sub,
main .text-slate-400,
main .text-slate-500,
main .text-slate-600{
  color: var(--novus-muted2);
}

main ul li,
main ol li,
main .bullets li{
  font-size: 12.5px !important;
  line-height: 1.55 !important;
}

/* Small uppercase labels / kickers */
main .kicker,
main [class*="uppercase"],
main .text-indigo-400{
  font-size: 11px !important;
  letter-spacing: .18em !important;
  font-weight: 600 !important;
}

/* Shared card feel */
.panel,
.card,
.featured,
main .rounded-2xl,
main details{
  border-color: rgba(255,255,255,.10);
}

/* Buttons */
.btn,
.siteCta,
.cartBtn,
.add,
.addMini,
.viewAll,
a[href="catalog.html"].rounded-xl{
  font-family: inherit !important;
  font-weight: 800 !important;
}

/* Header/nav consistency */
header nav,
.siteNav,
.wrap nav{
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 650 !important;
}

header a,
footer a{
  text-decoration: none;
}

/* Footer disclosure cleanup: single caret on the right */
footer details summary > svg,
footer details summary > i,
footer details summary > span[class*="text-teal-300"]{
  display:none !important;
}
footer details summary > span{
  display:inline !important;
}
footer details summary{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
}
footer details summary::after{
  content:"▾";
  margin-left:auto;
  opacity:.7;
}
footer details[open] summary::after{
  content:"▴";
}

/* Mission typography boost, used on index and safe elsewhere */
section[aria-label="Novus mission statement"] .sectionHead h2{
  font-size: 24px !important;
  letter-spacing: -0.5px !important;
  font-weight: 900 !important;
}
section[aria-label="Novus mission statement"] .sectionHead .sub{
  font-size: 13px !important;
}
section[aria-label="Novus mission statement"] .panel .lead{
  font-size: 15px !important;
  line-height: 1.75 !important;
  max-width: 72ch;
}

@media (max-width: 980px){
  main h1{
    font-size: 26px !important;
  }
  .hero h1,
  .heroTitle,
  .hero-title{
    font-size: 38px !important;
  }
}

@media (max-width: 640px){
  main h1{
    font-size: 24px !important;
  }
  .hero h1,
  .heroTitle,
  .hero-title{
    font-size: 34px !important;
  }
  main p,
  main .lead,
  main .sub,
  main details p{
    font-size: 14px !important;
  }
}


/* ===== Title Size Calibration =====
   Internal page titles slightly larger; homepage hero reduced. */
main h1{
  font-size: 32px !important;
  line-height: 1.12 !important;
  letter-spacing: -0.4px !important;
  font-weight: 700 !important;
}
.hero h1,
.heroTitle,
.hero-title{
  font-size: clamp(32px, 3.2vw, 38px) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.45px !important;
  font-weight: 700 !important;
}
@media (max-width: 640px){
  main h1{ font-size: 30px !important; }
  .hero h1, .heroTitle, .hero-title{ font-size: 32px !important; }
}

/* ===== Order Form link/count ===== */
.order-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);font-size:11px;font-weight:900;color:#fff;}
.order-count:empty{display:none;}
