/* ─────────────────────────────────────────────
   Vumart · inner pages (hash routes)
   Uses the tokens and components declared in index.html
   ───────────────────────────────────────────── */
#page-view{padding-bottom:8px}
#page-view[hidden]{display:none}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;font-size:13px;color:var(--text-3);font-weight:600}
.crumbs a:hover{color:var(--text)}
.crumbs span[aria-current]{color:var(--text)}
.page-head{margin:12px 0 22px}
.page-head h1{font-size:32px;font-weight:800;letter-spacing:-.02em}
.page-head p{margin:6px 0 0;color:var(--text-2);max-width:62ch}
.page-head.row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}

/* generic form kit */
.form{display:grid;gap:14px}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:6px}
.field label{font-size:13px;font-weight:700}
.field small{font-size:12px;color:var(--text-3)}
.input,.textarea,.select{width:100%;height:46px;padding:0 14px;border:1.5px solid var(--line-2);border-radius:var(--r-m);background:var(--surface);font:inherit;color:var(--text);transition:border-color .15s,box-shadow .15s}
.textarea{height:auto;min-height:110px;padding:12px 14px;resize:vertical}
.input:focus,.textarea:focus,.select:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 30%,transparent)}
.select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C584D' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text-2);cursor:pointer}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--brand-ink)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:22px}
.card h2{font-size:18px;font-weight:800;margin-bottom:14px}
.btn-block{width:100%}
.empty{display:grid;place-items:center;text-align:center;gap:10px;padding:56px 20px;background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r-l)}
.empty .icon{width:44px;height:44px;color:var(--text-3);stroke-width:1.4}
.empty h2{font-size:20px;font-weight:800}
.empty p{margin:0;color:var(--text-2);max-width:42ch}

/* category */
.cat-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}
.cat-layout>*{min-width:0}
.side{position:sticky;top:16px;display:grid;gap:14px}
.side .card{padding:14px}
.side h3{font-size:14px;font-weight:800;padding:4px 8px 8px}
.side-list{display:grid;gap:2px}
.side-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--r-s);font-size:13.5px;font-weight:600;color:var(--text-2)}
.side-list a:hover{background:var(--surface-2);color:var(--text)}
.side-list a.is-active{background:var(--wash);color:var(--text)}
.side-list a small{font-size:11px;color:var(--text-3)}
.side-promo{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:200px;padding:16px;border-radius:var(--r-m);overflow:hidden;background:var(--tile-yellow)}
.side-promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.side-promo .t{position:relative;display:grid;gap:6px;justify-items:start}
.side-promo .kicker{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#FFCC00;background:rgba(23,21,18,.85);padding:4px 9px;border-radius:999px}
.side-promo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(23,21,18,.88),rgba(23,21,18,0) 65%)}
.side-promo .t{z-index:1}
.side-promo b{font-size:17px;font-weight:800;color:#fff}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m)}
.toolbar .count{font-size:13px;color:var(--text-2);font-weight:600}
.toolbar .count b{color:var(--text)}
.toolbar .ctrls{display:flex;align-items:center;gap:8px}
.toolbar .select{height:38px;width:auto;min-width:190px;font-size:13px;font-weight:600}
.toggle{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1.5px solid var(--line-2);border-radius:var(--r-m);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;background:var(--surface)}
.toggle.is-on{border-color:var(--brand);background:var(--wash);color:var(--text)}
.toggle .dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center}
.toggle.is-on .dot{border-color:var(--brand-ink);background:var(--brand)}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.note{margin:0 0 14px;padding:10px 14px;border-radius:var(--r-s);background:var(--wash);font-size:13px;color:var(--text-2)}
.sub-chips{display:none}

/* product page */
.pdp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start}
.pdp-media{position:sticky;top:16px;display:grid;gap:10px}
.pdp-media .main{position:relative;aspect-ratio:1;border-radius:var(--r-l);background:var(--img-well);display:grid;place-items:center;overflow:hidden}
.pdp-media .main img{width:82%;height:82%;object-fit:contain;mix-blend-mode:multiply}
.pdp-media .main .disc{position:absolute;left:14px;top:14px;background:var(--accent);color:#fff;font-size:13px;font-weight:800;padding:5px 10px;border-radius:999px}
.pdp-media .main .out{position:absolute;left:14px;top:14px;background:var(--surface);color:var(--text-2);font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;border:1px solid var(--line)}
.pdp-media .main .wish{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:50%;background:var(--surface);display:grid;place-items:center;color:var(--text-2);box-shadow:var(--shadow)}
.pdp-media .main .wish.is-on{color:var(--accent)}
.pdp-media .main .wish.is-on .icon{fill:var(--accent)}
.pdp-info{display:grid;gap:18px}
.pdp-info .cat{font-size:13px;font-weight:700;color:var(--text-3)}
.pdp-info .cat a:hover{color:var(--text)}
.pdp-info h1{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.pdp-meta{display:flex;flex-wrap:wrap;gap:8px}
.pdp-meta span{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--surface-2);font-size:12.5px;font-weight:700;color:var(--text-2)}
.pdp-meta .icon{width:14px;height:14px}
.pdp-meta .ok{color:var(--ok)}
.pdp-meta .no{color:var(--accent)}
.price-box{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:18px 20px;border-radius:var(--r-l);background:var(--wash)}
.price-box .lbl{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.price-box .now{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1}
.price-box .now small{font-size:18px;margin-left:2px}
.price-box .was{font-size:15px;color:var(--old);text-decoration:line-through;font-weight:600;margin-left:8px}
.price-box .save{font-size:13px;font-weight:700;color:var(--accent);margin-top:6px}
.price-box .box{text-align:right;font-size:13px;color:var(--text-2);font-weight:600}
.price-box .box b{display:block;font-size:20px;font-weight:800;color:var(--text)}
.buy{display:block}
.pdp-ctl{display:block}
.buy .btn-lg{height:52px;font-size:16px}
.buy .btn-lg .icon{width:20px;height:20px}
.qty.qty-wide{width:100%;height:52px;border-radius:var(--r-m)}
.qty.qty-wide button{width:64px;font-size:22px}
.qty.qty-wide output{font-size:18px}
.perks{display:grid;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}
.perks li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--text-2)}
.perks .icon{width:18px;height:18px;color:var(--brand-ink);flex:none;margin-top:1px}
:root[data-theme="dark"] .perks .icon{color:var(--brand)}
.perks b{color:var(--text)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-top:8px}
.tabs button{padding:10px 14px;font-size:14px;font-weight:700;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button.is-active{color:var(--text);border-color:var(--brand)}
.tabpanes{display:grid}
.tabpane{grid-area:1/1;padding:16px 0 0;color:var(--text-2);font-size:14.5px;line-height:1.6}
.tabpane[hidden]{display:block;visibility:hidden;pointer-events:none}
.spec{width:100%;border-collapse:collapse;font-size:14px}
.spec th,.spec td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.spec th{width:38%;font-weight:700;color:var(--text-3)}
.spec td{color:var(--text)}

/* cart */
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:20px;align-items:start}
.lines{display:grid;gap:10px}
.line{display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m)}
.line .img{width:84px;height:84px;border-radius:var(--r-s);background:var(--img-well);display:grid;place-items:center;overflow:hidden}
.line .img img{width:80%;height:80%;object-fit:contain;mix-blend-mode:multiply}
.line .info{display:grid;gap:4px;min-width:0}
.line .info a{font-weight:700;font-size:14.5px}
.line .info a:hover{text-decoration:underline}
.line .info span{font-size:12.5px;color:var(--text-3);font-weight:600}
.line .unit{font-size:13px;color:var(--text-2);font-weight:600}
.line .side-ctl{display:grid;gap:8px;justify-items:end;align-content:center}
.line .total{font-size:18px;font-weight:800}
.line .rm{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--text-3)}
.line .rm:hover{color:var(--accent)}
.line .rm .icon{width:14px;height:14px}
.summary{position:sticky;top:16px;display:grid;gap:12px}
.summary .rowl{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--text-2)}
.summary .rowl.total{padding-top:12px;border-top:1px solid var(--line);font-size:18px;font-weight:800;color:var(--text)}
.summary .promo{display:flex;gap:8px}
.summary .promo .input{height:42px}
.summary .promo .btn{height:42px}
.free-bar{display:grid;gap:6px;font-size:12.5px;color:var(--text-2)}
.free-bar .track{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.free-bar .fill{height:100%;background:var(--brand);border-radius:3px;transition:width .3s}

/* checkout */
.co-layout{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}
.co-layout .card+.card{margin-top:16px}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{display:grid;gap:2px;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:var(--r-m);cursor:pointer;font-size:13px;font-weight:700;background:var(--surface)}
.slot small{font-size:11.5px;color:var(--text-3);font-weight:600}
.slot input{position:absolute;opacity:0;pointer-events:none}
.slot.is-on{border-color:var(--brand);background:var(--wash)}
.slot.is-off{opacity:.45;cursor:not-allowed}
.pay{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--brand);background:var(--wash);border-radius:var(--r-m);font-size:14px;font-weight:700}
.pay .icon{width:22px;height:22px}
.pay small{display:block;font-size:12px;color:var(--text-2);font-weight:600}
.mini-lines{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:4px;scrollbar-width:none}
.mini-lines::-webkit-scrollbar,.sub-chips::-webkit-scrollbar{display:none}
.mini-line{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;font-size:13px}
.mini-line .img{width:44px;height:44px;border-radius:8px;background:var(--img-well);display:grid;place-items:center;overflow:hidden}
.mini-line img{width:80%;height:80%;object-fit:contain;mix-blend-mode:multiply}
.mini-line b{font-weight:700;display:block}
.mini-line span{color:var(--text-3);font-weight:600}
.success{max-width:640px;margin:20px auto;text-align:center;display:grid;justify-items:center;gap:14px;padding:44px 28px}
.success .ok-ring{width:72px;height:72px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center}
.success .ok-ring .icon{width:34px;height:34px;stroke-width:3}
.success h1{font-size:28px;font-weight:800}
.success p{margin:0;color:var(--text-2)}
.success .num{font-size:14px;font-weight:800;background:var(--surface-2);padding:8px 14px;border-radius:999px}

/* account */
.auth{max-width:460px;margin:0 auto}
.auth .tabs{margin:0 0 18px}
.auth .tabs button{flex:1;text-align:center}
.auth .links{display:flex;justify-content:space-between;font-size:13px;color:var(--text-2)}
.auth .links a{font-weight:700;color:var(--text)}

/* campaigns / blog / articles */
.camp-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.camp-card{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;transition:transform .2s,box-shadow .2s}
.camp-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.camp-card .img{aspect-ratio:16/8;overflow:hidden;position:relative}
.camp-card .img img{width:100%;height:100%;object-fit:cover}
.camp-card .img .kicker{position:absolute;left:12px;top:12px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:#171512;color:#FFCC00;padding:4px 9px;border-radius:999px}
.camp-card .body{padding:14px 16px 16px;display:grid;gap:6px}
.camp-card h3{font-size:16px;font-weight:800}
.camp-card p{margin:0;font-size:13.5px;color:var(--text-2)}
.camp-card .date{font-size:12px;font-weight:700;color:var(--text-3)}
.article{max-width:760px;margin:0 auto}
.article .hero{aspect-ratio:16/8;border-radius:var(--r-l);overflow:hidden;margin:18px 0 22px}
.article .hero img{width:100%;height:100%;object-fit:cover}
.article h1{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.article .meta{display:flex;gap:16px;margin:12px 0 0;font-size:13px;color:var(--text-3);font-weight:600}
.article .body{font-size:16px;line-height:1.7;color:var(--text-2)}
.article .body h2{font-size:22px;font-weight:800;color:var(--text);margin:28px 0 10px}
.article .body p{margin:0 0 16px}
.article .body ul{margin:0 0 16px;padding-left:20px;list-style:disc}
.article .body li{margin-bottom:6px}
.prose{max-width:760px;font-size:15.5px;line-height:1.7;color:var(--text-2)}
.prose h2{font-size:20px;font-weight:800;color:var(--text);margin:26px 0 8px}
.prose p{margin:0 0 14px}
.prose ul{margin:0 0 14px;padding-left:20px;list-style:disc}
.prose li{margin-bottom:6px}
.prose b{color:var(--text)}
.info-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}
.info-card{display:grid;gap:8px;padding:18px;border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line)}
.info-card .ic{width:40px;height:40px;border-radius:50%;background:var(--wash);display:grid;place-items:center;color:var(--brand-ink)}
:root[data-theme="dark"] .info-card .ic{color:var(--brand)}
.info-card b{font-size:15px;font-weight:800}
.info-card span{font-size:13.5px;color:var(--text-2)}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.about-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center;padding:28px;border-radius:var(--r-xl);background:var(--wash);margin-bottom:26px}
.about-hero img{border-radius:var(--r-l);aspect-ratio:4/3;object-fit:cover;width:100%}
.about-hero h2{font-size:26px;font-weight:800;letter-spacing:-.01em;margin-bottom:10px}
.about-hero p{margin:0 0 14px;color:var(--text-2)}
.search-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.search-cats .chip,.sub-chips .chip{display:inline-flex;align-items:center}

/* responsive */
@media (max-width:1240px){.grid-5{grid-template-columns:repeat(4,1fr)}}
@media (max-width:1024px){
  .cat-layout{grid-template-columns:1fr}
  .side{position:static}
  .side .card:first-child{display:none}
  .side-promo{display:none}
  .sub-chips{display:flex;gap:8px;max-width:100%;overflow-x:auto;scrollbar-width:none;margin:0 0 14px;padding-bottom:2px}
  .sub-chips .chip{flex:none;height:34px;display:inline-flex;align-items:center}
  .sub-chips::-webkit-scrollbar{display:none}
  .grid-5{grid-template-columns:repeat(3,1fr)}
  .pdp{grid-template-columns:1fr;gap:20px}
  .pdp-media{position:static}
  .cart-layout,.co-layout{grid-template-columns:1fr}
  .summary{position:static}
  .camp-list,.info-cards{grid-template-columns:1fr 1fr}
  .two-col,.about-hero{grid-template-columns:1fr}
}
@media (max-width:760px){
  .page-head{margin:10px 0 16px}
  .page-head h1{font-size:24px}
  .page-head.row{flex-direction:column;align-items:flex-start;gap:8px}
  .crumbs{margin-top:12px}
  .toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:10px}
  .toolbar .ctrls{justify-content:space-between}
  .toolbar .select{flex:1;min-width:0}
  .grid-5{grid-template-columns:1fr 1fr;gap:10px}
  .form .row2{grid-template-columns:1fr}
  .card{padding:16px;border-radius:var(--r-m)}
  .pdp-info h1{font-size:22px}
  .price-box{grid-template-columns:1fr;padding:14px 16px}
  .price-box .box{text-align:left}
  .price-box .now{font-size:28px}
  .line{grid-template-columns:64px 1fr;gap:10px}
  .line .img{width:64px;height:64px}
  .line .side-ctl{grid-column:1/-1;grid-template-columns:auto 1fr auto;align-items:center;justify-items:stretch}
  .line .side-ctl .total{text-align:right}
  .slots{grid-template-columns:1fr 1fr}
  .camp-list,.info-cards{grid-template-columns:1fr}
  .article h1{font-size:26px}
  .article .body{font-size:15px}
  .success{padding:28px 16px}
  .success h1{font-size:22px}
}
