/* Venci visual system: a restrained layer shared by the storefront and account pages. */
:root {
  color-scheme: dark;
  --bg: #09090c;
  --panel: #111116;
  --panel2: #17171e;
  --line: #2a2931;
  --muted: #aaa7b2;
  --text: #f5f3f8;
  --purple: #8e62ed;
  --purple2: #b59af3;
  --blue: #7185ff;
  --green: #72d6b4;
  --focus-ring: 0 0 0 3px #9970f43a;
}

html { scroll-behavior: smooth; }
body { color: var(--text); background-color: var(--bg); }
::selection { color: white; background: #6845b5; }
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #b69af5;
  outline-offset: 3px;
}
button:disabled, [aria-disabled="true"] { cursor: not-allowed; }

/* Storefront */
.announcement { background: #111116; color: #d0cdd5; border-color: #24232a; }
.announcement .pulse { background: #a78be8; box-shadow: none; }
.topbar { background: #09090cf0; border-color: #25242b; }
.hero {
  border-color: #302c38;
  border-radius: 18px;
  background: linear-gradient(115deg, #111116 0%, #121119 64%, #171323 100%);
  box-shadow: 0 20px 65px #0003, inset 0 1px #ffffff08;
}
.hero:before { background: radial-gradient(ellipse, #7755a51b, transparent 68%); }
.hero h1 span, .section-heading h2 span, .feature-copy h2 span, .faq h2 span { color: var(--purple2); }
.hero h1 #heroTitleMain { color: #f3f0f7; }
.hero h1 #heroTitleAccent { color: var(--purple2); }
.hero-copy > p, .section-heading p, .community-copy p, .faq > div > p { color: #b7b3be; }
.hero-product-art {
  border-color: #383440;
  border-radius: 14px;
  box-shadow: 0 18px 44px #0006;
}
.hero-product-art:after { background: linear-gradient(180deg, transparent 38%, #08080be8 100%); }
.hero-product-art > img { object-position: center 48%; }
.hero-product-art figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.hero-summary article, .product-card, .community-divider, .newsletter {
  border-color: #302d36;
  background-color: #101014;
}
.hero-summary article { border-radius: 11px; }
.summary-icon { color: #c6b2f4; background: #211b2a; }
.btn-primary {
  border-color: #9874e7;
  background: #7954d3;
  box-shadow: 0 5px 18px #6942c52a;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.btn-primary:hover { background: #8965e0; border-color: #b39aed; box-shadow: 0 8px 24px #6942c540; }
.btn:active, .product-add:active, .account-btn:active { transform: translateY(1px) scale(.985); }
.btn-quiet { border: 1px solid #393640; border-radius: 8px; background: #111116; }
.btn-quiet:hover { background: #19171f; border-color: #56505f; }
.catalog { padding-top: 76px; }
.section-heading h2, .community-copy h2, .faq h2 { letter-spacing: -.045em; }
.catalog-toolbar { border-bottom-color: #2a2830; }
.category-tab { color: #a9a5b0; }
.category-tab.selected { color: #f2edf9; border-bottom-color: #a68ae8; }
.sort-trigger, .sort-menu, .search, .language-control { border-color: #35313b; background: #111116; }
.sort-option[aria-selected="true"], .sort-option:hover { background: #26212f; }
.product-grid { gap: 16px; }
.product-card {
  border-radius: 13px;
  background: #101014;
  box-shadow: 0 8px 24px #0003;
  transition: transform .24s cubic-bezier(.2,.75,.25,1), border-color .24s ease, box-shadow .24s ease;
}
.product-card:hover, .product-card.pointer-active {
  transform: translateY(-3px);
  border-color: #51465f;
  box-shadow: 0 14px 30px #0006;
}
.product-card.pointer-active { transform: translateY(-3px); }
.product-card:before { display: none; }
.product-image { background: #17161b; }
.product-cover { transition: transform .32s cubic-bezier(.2,.75,.25,1), filter .32s ease; }
.product-card:hover .product-cover, .product-card.pointer-active .product-cover { transform: scale(1.025); filter: saturate(1.04); }
.product-name { color: #f3f0f6; }
.product-short { color: #aaa6b0; }
.price { color: #e5dafa; }
.product-add { border-color: #4a3d60; background: #1a1720; color: #e7ddf7; transition: background .18s, border-color .18s, transform .18s; }
.product-add:not(:disabled):hover { border-color: #856ab2; background: #26202f; }
.product-add:disabled { color: #a09ca6; background: #19181d; border-color: #302e34; }
.community-divider { border-radius: 14px; box-shadow: inset 0 1px #ffffff06; }
.community-mark { background: #201a29; }
.faq-list details, .faq-list details:first-child { border-color: #302d36; }
.faq-list summary { min-height: 54px; color: #e3dfe8; font-size: 13px; }
.faq-list details p { max-width: 64ch; color: #afabb5; font-size: 12px; }
.newsletter { border-radius: 13px; background: linear-gradient(105deg, #15121c, #101014 72%); }
.footer { border-color: #29272e; background: #0c0c0f; }
.footer-bottom { border-color: #29272e; }
.cart-drawer { background: #111116; border-color: #36313d; }
.cart-summary { background: #101014; border-color: #302d36; }
.checkout-discord-note { color: #aaa5b0; }
.checkout-status { margin: 10px 0 0; color: #d9b783; font-size: 11px; line-height: 1.45; }
.cart-trigger { position: relative; min-width: 42px; justify-content: center; overflow: visible !important; }
.cart-trigger > svg { flex: 0 0 auto; }
.cart-trigger .cart-count { top: -2px; right: -5px; left: auto; z-index: 2; }
.venci-brand > img:first-child { flex: 0 0 auto; object-fit: contain; }
.modal-card { border-color: #3b3544; background: #121116; }
.toast { border-color: #51465f; background: #211c29; }
.demo-banner { display: none; }

/* Refined storefront presentation */
.hero { min-height: 418px; height: auto; padding-block: 42px; }
.hero-product-art { overflow: hidden; background: #111018; }
.hero-product-art:after { opacity: .28; }
.hero-product-art figcaption { display: none; }
.hero-product-art > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-summary { gap: 12px; }
.hero-summary article { min-height: 70px; padding: 14px 16px; }
.hero-summary article b { font-size: 17px; letter-spacing: -.025em; }
.hero-summary article small { color: #a9a5b1; }
.catalog { padding-top: 64px; }
.section-heading { margin-bottom: 24px; }
.product-grid { align-items: stretch; gap: 14px; }
.product-card { overflow: hidden; border-radius: 12px; box-shadow: 0 5px 18px #0002; }
.product-card:hover, .product-card.pointer-active { transform: translateY(-2px); box-shadow: 0 10px 24px #0004; }
.product-image { height: 164px; }
.product-art { overflow: hidden; }
.product-cover { object-fit: cover; }
.product-badge { border: 1px solid #c4a3f255; background: #15111feF; color: #dfcbff; box-shadow: none; backdrop-filter: blur(8px); }
.product-wish { border: 1px solid #ffffff24; background: #111018d9; box-shadow: none; }
.product-info { padding: 15px 14px 14px; }
.product-category { color: #bca2e9; letter-spacing: .12em; }
.product-name { font-size: 14px; line-height: 1.35; }
.product-short { min-height: 3.2em; line-height: 1.55; }
.price-row { min-height: 32px; align-items: center; }
.delivery-note { color: #9692a0; }
.product-add { min-height: 40px; border-radius: 8px; font-size: 11px; }
.product-add:disabled { background: #17161b; color: #b1acba; border-color: #302d36; }
@media (max-width: 800px) {
  .hero { min-height: 390px; padding-block: 32px; }
  .product-image { height: 150px; }
}
@media (max-width: 600px) {
  .hero { min-height: 0; padding-block: 28px 52px; }
  .hero-summary article { min-height: 62px; }
  .product-image { height: 132px; }
  .product-info { padding: 10px 9px; }
}
@media (max-width: 420px) {
  .product-image { height: 122px; }
}

/* PIX checkout: clear order summary and a focused payment step */
.payment-shell { width: min(960px, calc(100% - 36px)); margin-top: 44px; }
.payment-card { padding: clamp(26px, 4.2vw, 46px); border-radius: 16px; box-shadow: 0 24px 70px #0005; }
.payment-card h1 { margin-top: 12px; }
.payment-card .intro { max-width: 58ch; }
.payment-card .order-summary { padding: 17px 18px; margin: 26px 0; border: 1px solid #2b2931; border-radius: 11px; background: #0d0c10; grid-template-columns: minmax(120px, .8fr) minmax(220px, 2fr) minmax(100px, .7fr); }
.payment-card .order-summary b { line-height: 1.5; }
.payment-card .order-summary .total b { font-size: 22px; }
.payment-card .pix-layout { grid-template-columns: minmax(210px, 250px) minmax(0, 1fr); gap: clamp(24px, 4vw, 42px); }
.payment-card .qr-frame { width: min(100%, 250px); padding: 12px; border: 1px solid #e8e5ec; box-shadow: 0 12px 30px #0003; }
.payment-card .pix-copy h2 { letter-spacing: -.03em; }
.payment-card .pix-copy > p { max-width: 54ch; }
.payment-card textarea { min-height: 88px; max-height: 124px; border-color: #34313c; background: #0a090d; color: #ddd8e6; }
.payment-card .primary { background: #8052df; box-shadow: 0 5px 16px #8052df2b; }
.payment-card .primary:hover { background: #9167e8; box-shadow: 0 8px 22px #8052df42; }
.payment-card .payment-status { margin-top: 24px; min-height: 52px; border-radius: 9px; background: #17131d; }
.payment-card .payment-status.paid { color: #b9f0dc; }
.payment-card .payment-status.failed { border-color: #57343d; background: #201318; color: #ffc3cb; }
.payment-card .safe-note { margin-top: 22px; }
.payment-shell .back-link { color: #c4b2e4; transition: color .16s ease; }
.payment-shell .back-link:hover { color: #fff; }
@media (max-width: 700px) {
  .payment-shell { width: min(100% - 24px, 560px); margin-top: 22px; }
  .payment-card { padding: 25px 19px; }
  .payment-card .order-summary { grid-template-columns: 1fr 1fr; gap: 14px; }
  .payment-card .order-summary .total { grid-column: 1 / -1; text-align: left; }
  .payment-card .pix-layout { grid-template-columns: 1fr; gap: 20px; }
  .payment-card .qr-frame { width: min(230px, 78vw); }
  .payment-card .step { text-align: center; }
  .payment-card .pix-copy h2 { text-align: center; }
}

/* Account and login */
.auth-page, .account-page { background-color: #09090c; }
.auth-card, .affiliate-card { border-color: #302d36; background: linear-gradient(155deg, #141218, #0f0e12 78%); box-shadow: 0 24px 70px #0006; }
.auth-top { border-color: #29272e; background: #09090cf2; }
.auth-kicker i { background: #a68ae8; box-shadow: none; }
.auth-submit { background: #7954d3; box-shadow: 0 7px 20px #6942c52a; }
.auth-submit:hover { filter: brightness(1.08); }
.account-shop-btn.primary { background: #7954d3; }

/* Admin */
.admin-body { background: #09090c; color: #f2eff5; }
.admin-sidebar { background: #0e0d12; border-color: #29262f; }
.admin-main { background: #09090c; }
.admin-topbar { background: #09090cf2; border-color: #29262f; }
.side-link.selected { color: #eee8f5; background: #211a2b; box-shadow: inset 2px 0 #9c7bd7; }
.admin-primary { background: #7954d3; border-color: #9471df; }
.admin-primary:hover { background: #8965e0; }
.stat-card, .welcome-card, .quick-card, .admin-panel, .admin-card { border-color: #302d36; background-color: #111116; }
.admin-body :where(input, select, textarea) { border-color: #393540; }
.admin-body :where(input, select, textarea):focus { outline: none; border-color: #9b7bd4; box-shadow: var(--focus-ring); }

@media (max-width: 900px) {
  .wrap { width: min(100% - 40px, 720px); }
  .hero { gap: 24px; }
  .product-grid { gap: 12px; }
  .account-layout { gap: 28px; }
}
@media (max-width: 600px) {
  .wrap { width: calc(100% - 30px); }
  .announcement { gap: 6px; font-size: 9px; letter-spacing: .025em; }
  .topbar { padding-inline: 12px; }
  .header-actions { gap: 7px; }
  .hero { padding-inline: 20px; border-radius: 14px; }
  .hero h1 { font-size: clamp(38px, 10vw, 49px); }
  .hero-actions { gap: 8px; }
  .hero-actions .btn { min-height: 42px; padding-inline: 12px; }
  .hero-summary { gap: 7px; }
  .hero-summary article { min-width: 0; padding-inline: 7px; }
  .hero-summary small { line-height: 1.35; }
  .catalog { padding-top: 56px; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .product-info { padding: 11px 10px; }
  .product-name { font-size: 13px; line-height: 1.3; }
  .product-short { min-height: 2.8em; font-size: 10px; }
  .product-add { min-height: 39px; }
  .community-divider { gap: 12px; padding: 17px; }
  .faq { gap: 20px; }
  .faq-list summary { font-size: 12px; }
  .footer-main { gap: 22px 16px; }
  .footer-bottom { font-size: 9px; }
  .footer-disclaimer { text-align: left; }
  .admin-sidebar { padding-inline: 12px; }
  .admin-content { padding: 20px 16px 34px; }
}
@media (max-width: 420px) {
  .brand.venci-brand { font-size: 17px; }
  .brand.venci-brand > img:first-child { width: 34px; height: 34px; }
  .account-btn { padding-inline: 9px; }
  .hero-summary { grid-template-columns: 1fr; }
  .hero-summary article { min-height: 68px; }
  .product-image { height: 128px; }
  .product-short { display: none; }
  .price-row { flex-wrap: wrap; gap: 5px 8px; }
  .community-divider { align-items: flex-start; flex-wrap: wrap; }
  .community-divider > .btn { margin-left: 58px; }
  .admin-shell { display: block; }
  .admin-sidebar { position: static; width: auto; min-height: 0; }
  .side-nav { display: flex; overflow-x: auto; gap: 6px; padding-bottom: 8px; }
  .side-link { flex: 0 0 auto; }
  .sidebar-caption, .sidebar-bottom { display: none; }
  .admin-topbar { position: sticky; top: 0; z-index: 10; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
