/* ============================================================
   Supplemental styles for app.js rendered markup
   (loaded after style.css)
   ============================================================ */

/* --- Cards (rendered by JS) --- */
.card{background:var(--card);border-radius:16px;overflow:hidden;border:1px solid var(--line);transition:transform .3s, box-shadow .3s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(11,21,24,.08)}
.card-img{position:relative;display:block;aspect-ratio:1;background:var(--bg-2);overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:contain;padding:18px;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.05)}
.card .fav{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);cursor:pointer;z-index:2}
.card .fav.on{color:var(--accent);border-color:var(--accent)}
.card .fav.on svg{fill:var(--accent);stroke:var(--accent)}
.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-cat{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.card-name{font-family:'Fraunces',serif;font-size:17px;font-weight:500;line-height:1.3;margin:0;min-height:44px}
.card-name a{color:var(--ink);text-decoration:none}
.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:8px;gap:10px}
.card-price{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--ink)}
.card-add{background:var(--ink);color:var(--bg);border:0;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}
.card-add:hover{background:var(--accent-dark)}

/* --- Category bento (rendered) --- */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:16px}
.cat{position:relative;display:block;border-radius:20px;overflow:hidden;text-decoration:none;color:#F6F4EF;min-height:260px}
.cat-img{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s}
.cat:hover .cat-img{transform:scale(1.06)}
.cat-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,21,24,.05) 0%,rgba(11,21,24,.75) 100%)}
.cat-body{position:absolute;left:24px;right:24px;bottom:22px;z-index:2}
.cat-num{font-family:'Fraunces',serif;font-size:13px;opacity:.7;margin-bottom:6px;color:#fff}
.cat-body h3{font-family:'Fraunces',serif;font-size:28px;font-weight:500;margin:0 0 6px;color:#fff}
.cat-meta{font-size:13px;opacity:.85;display:flex;justify-content:space-between;align-items:center;color:#fff}
.cat-grid .cat-1{grid-column:span 2;grid-row:span 2}
.cat-grid .cat-2{grid-column:span 2}
@media (max-width:900px){.cat-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.cat-grid .cat-1{grid-column:span 2;grid-row:span 1}.cat-grid .cat-2{grid-column:span 2}}

/* --- Hero card --- */
.hero-card{position:absolute;right:40px;bottom:60px;width:260px;background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px rgba(11,21,24,.18);border:1px solid var(--line);z-index:3}
.hero-card a{text-decoration:none;color:inherit;display:block}
.hc-img{aspect-ratio:1;background-size:cover;background-position:center}
.hc-body{padding:16px}
.hc-cat{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-dark);font-weight:700;margin-bottom:4px}
.hc-name{font-family:'Fraunces',serif;font-size:15px;line-height:1.3;margin-bottom:8px;color:var(--ink)}
.hc-price{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--ink)}
@media (max-width:1100px){.hero-card{display:none}}

/* --- Product detail page --- */
.product-detail{padding-top:60px;padding-bottom:80px}
.pd-breadcrumb{font-size:13px;color:var(--muted);margin-bottom:30px}
.pd-breadcrumb a{color:var(--muted);text-decoration:none}
.pd-breadcrumb a:hover{color:var(--ink)}
.pd-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px}
@media (max-width:1000px){.pd-grid{grid-template-columns:1fr}}
.pd-main{aspect-ratio:1;background:var(--bg-2);border-radius:18px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:16px}
.pd-main img{max-width:92%;max-height:92%;object-fit:contain}
.pd-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.pd-thumbs button{width:80px;height:80px;border-radius:10px;background:var(--bg-2);border:2px solid transparent;overflow:hidden;padding:6px;cursor:pointer}
.pd-thumbs button.on{border-color:var(--accent)}
.pd-thumbs button img{width:100%;height:100%;object-fit:contain}
.pd-cat{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-dark);margin-bottom:14px}
.pd-info h1{font-family:'Fraunces',serif;font-size:clamp(32px,4vw,48px);line-height:1.1;margin:0 0 14px;color:var(--ink)}
.pd-meta{font-size:13px;color:var(--muted);margin-bottom:18px}
.pd-rating{color:var(--accent-dark);font-size:14px;margin-bottom:20px}
.pd-rating span{color:var(--muted);margin-left:6px}
.pd-price-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-bottom:24px}
.pd-price{font-family:'Fraunces',serif;font-size:42px;font-weight:600;color:var(--ink);line-height:1}
.pd-vat{font-size:12px;color:var(--muted);margin-top:8px}
.pd-stock{font-size:13px;margin-bottom:22px;font-weight:600}
.pd-stock.ok{color:#2E7D32}
.pd-stock.no{color:var(--muted)}
.pd-buy{display:flex;gap:12px;align-items:center;margin-bottom:28px}
.pd-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px;background:var(--card)}
.pd-qty button{width:40px;height:40px;border-radius:50%;border:0;background:transparent;font-size:20px;cursor:pointer;color:var(--ink)}
.pd-qty input{width:40px;border:0;background:transparent;text-align:center;font:inherit;font-weight:600;outline:none;color:var(--ink)}
.pd-add{flex:1;justify-content:center}
.pd-wish{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:22px;cursor:pointer;color:var(--ink)}
.pd-wish.on{color:var(--accent);border-color:var(--accent)}
.pd-perks{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2)}
.pd-desc{margin-top:30px}
.pd-desc h3{font-family:'Fraunces',serif;font-size:22px;margin-bottom:12px;color:var(--ink)}
.pd-desc p{font-size:15px;line-height:1.7;color:var(--ink-2);white-space:pre-wrap}

/* --- Cart items --- */
.cart-empty{text-align:center;padding:60px 30px;color:var(--muted)}
.cart-empty .ci-icon{font-size:46px;margin-bottom:14px}
.cart-empty h4{font-family:'Fraunces',serif;font-size:22px;margin-bottom:6px;color:var(--ink)}
.cart-empty p{font-size:14px;margin-bottom:20px}
.ship-bar{padding:14px 18px;background:var(--bg-2);border-radius:12px;margin-bottom:18px}
.ship-lbl{font-size:12px;font-weight:600;margin-bottom:8px;color:var(--ink-2)}
.ship-track{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.ship-fill{height:100%;background:var(--accent);transition:width .4s}
.cart-item{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.cart-item img{width:72px;height:72px;object-fit:contain;background:var(--bg-2);border-radius:10px;padding:6px;flex-shrink:0}
.ci-body{flex:1;min-width:0}
.ci-name{font-family:'Fraunces',serif;font-size:14px;line-height:1.3;margin-bottom:4px;color:var(--ink)}
.ci-price{font-size:13px;font-weight:600;color:var(--accent-dark);margin-bottom:8px}
.ci-qty{display:flex;align-items:center;gap:6px}
.ci-qty button{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--ink)}
.ci-qty span{font-size:13px;font-weight:600;min-width:20px;text-align:center}
.ci-rem{margin-left:auto;background:none;border:0;color:var(--muted);font-size:14px;cursor:pointer}
.cf-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px}
.cf-row strong{font-family:'Fraunces',serif;font-size:22px}
.cf-small{font-size:12px;color:var(--muted)}
.cf-checkout{width:100%;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px}
.cf-pay{font-size:12px;color:var(--muted);text-align:center;margin-top:10px}

/* --- Search suggestions --- */
.sug-item{display:flex;gap:12px;padding:10px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);align-items:center}
.sug-item:hover{background:var(--bg-2)}
.sug-item img{width:44px;height:44px;object-fit:contain;background:var(--bg-2);border-radius:8px;padding:4px}
.sn{font-size:13px;font-weight:500;margin-bottom:2px}
.sp{font-size:12px;color:var(--accent-dark);font-weight:600}
.sug-all{display:block;padding:12px 14px;font-size:12px;font-weight:600;color:var(--accent-dark);text-align:center;text-decoration:none;background:var(--bg-2)}

/* --- Flash toast --- */
.flash-toast{position:fixed;left:50%;top:90px;transform:translateX(-50%) translateY(-20px);background:var(--ink);color:var(--bg);padding:14px 22px;border-radius:999px;font-size:13px;font-weight:600;z-index:10000;opacity:0;transition:all .3s;pointer-events:none;box-shadow:0 20px 40px rgba(11,21,24,.2)}
.flash-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* --- Live note body --- */
.live-note .ln-img{width:54px;height:54px;background:var(--bg-2);border-radius:10px;flex-shrink:0;background-size:contain;background-repeat:no-repeat;background-position:center}
.ln-body{font-size:13px;line-height:1.4;color:var(--ink-2)}
.ln-body strong{color:var(--ink)}
.ln-body em{font-style:normal;font-weight:600;color:var(--accent-dark)}
.ln-ago{font-size:11px;color:var(--muted);margin-top:4px}

/* --- Pagination dots --- */
.pagination .dots{display:inline-flex;align-items:center;padding:0 6px;color:var(--muted)}
.pagination button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* --- Side cats --- */
#sideCats{list-style:none;padding:0;margin:0}
#sideCats li a{display:flex;justify-content:space-between;padding:10px 0;font-size:14px;color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--line)}
#sideCats li a:hover,#sideCats li a.active{color:var(--accent-dark);font-weight:600}
#sideCats em{color:var(--muted);font-style:normal;font-size:12px}

/* --- Products meta --- */
.products-meta{margin-bottom:24px;font-size:13px;color:var(--muted)}

/* --- Empty state --- */
.empty{text-align:center;padding:80px 30px;color:var(--muted);font-size:15px}

/* --- Mobile hamburger + drawer --- */
.menu-btn{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;margin-right:10px;flex-shrink:0}
.menu-btn span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s}
.mobile-menu{position:fixed;top:0;left:0;bottom:0;width:78%;max-width:320px;background:var(--card);border-right:1px solid var(--line);padding:80px 24px 30px;transform:translateX(-100%);transition:transform .3s;z-index:9999;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{display:block;padding:14px 4px;font-size:16px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);font-weight:500}
.mobile-menu a:hover{color:var(--accent-dark)}
.mobile-menu-overlay{position:fixed;inset:0;background:rgba(11,21,24,.45);opacity:0;pointer-events:none;transition:opacity .3s;z-index:9998}
.mobile-menu-overlay.open{opacity:1;pointer-events:auto}
@media (max-width:900px){
  .menu-btn{display:flex}
  .nav{display:none}
}

/* --- Facet lists (color/size) --- */
.facet-list{list-style:none;padding:0;margin:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.facet-list .muted{color:var(--muted);font-size:13px;padding:4px 0}
.facet-list button.facet{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;text-align:left;transition:all .15s}
.facet-list button.facet:hover{border-color:var(--ink)}
.facet-list button.facet.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.facet-list button.facet em{margin-left:auto;font-style:normal;color:var(--muted);font-size:11px}
.facet-list button.facet.active em{color:rgba(246,244,239,.6)}
.facet .sw{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.15);display:inline-block;flex-shrink:0}
.sw-sort{background:#0B1518}
.sw-krom{background:linear-gradient(135deg,#e6e8eb,#b4b8bd)}
.sw-gull{background:linear-gradient(135deg,#e8c76e,#b3863c)}
.sw-messing{background:linear-gradient(135deg,#c9a878,#8a6a3e)}
.sw-rose{background:linear-gradient(135deg,#e8b6a0,#c07a5c)}
.sw-grå{background:linear-gradient(135deg,#b9b9ba,#777)}
.sw-hvit{background:#fff}
.sw-eik{background:linear-gradient(135deg,#d9b780,#9a6f3d)}
.sw-betong{background:linear-gradient(135deg,#b8b6b0,#6d6b64)}
.sw-morkeik{background:linear-gradient(135deg,#6b4c2a,#3d2b17)}
.sw-valnott{background:linear-gradient(135deg,#7a5230,#4a2e18)}
.sw-terracotta{background:linear-gradient(135deg,#c4613a,#8b3a1f)}
.sw-oliven{background:linear-gradient(135deg,#7a8a4a,#4f5c2e)}
.sw-plomme{background:linear-gradient(135deg,#8b4068,#5c2245)}
.sw-beige{background:linear-gradient(135deg,#e0cdb5,#bda88a)}
.sw-majorbrown{background:linear-gradient(135deg,#6a4b3a,#3e2a1e)}
.sw-terrazzo{background:linear-gradient(135deg,#d5cdc2,#a89e90)}
.sw-solv{background:linear-gradient(135deg,#d4d6d8,#a8abaf)}

/* --- Price range inputs --- */
.price-range{display:flex;gap:8px}
.price-range input,#sortSelect{flex:1;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;width:100%}

/* --- Mobile fixes (under 480px) --- */
@media (max-width:480px){
  .card-body{padding:14px 14px 14px;gap:6px}
  .card-name{font-size:15px;min-height:40px}
  .card-price{font-size:17px}
  .card-foot{flex-direction:column;align-items:stretch;gap:8px}
  .card-add{padding:10px 12px;text-align:center;font-size:13px}
  .pd-buy{display:grid;grid-template-columns:auto 1fr auto;gap:10px}
  .pd-wish{width:48px;height:48px;font-size:18px}
  .pd-add{padding-left:10px;padding-right:10px}
  .pd-qty button{width:36px;height:36px}
  .pd-qty input{width:32px}
}

/* --- Mobile filter drawer --- */
.filter-toggle{display:none;align-items:center;gap:10px;width:100%;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;margin-bottom:18px;text-align:left}
.filter-toggle svg{flex-shrink:0;color:var(--ink)}
.filter-toggle .filter-count{margin-left:auto;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;min-width:22px;text-align:center}
.filter-overlay{display:none;position:fixed;inset:0;background:rgba(11,21,24,.5);z-index:9998}
.filter-overlay.open{display:block}
.filter-drawer-head{display:none;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line);background:var(--card)}
.filter-drawer-head strong{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--ink)}
.filter-close{background:none;border:0;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;padding:0}
.filter-close:hover{background:var(--bg-2);color:var(--ink)}
.filter-drawer-foot{display:none;background:var(--card);padding:14px 20px;border-top:1px solid var(--line)}
.filter-apply{width:100%;padding:14px;font-size:14px;font-weight:600}

@media (max-width:900px){
  .filter-toggle{display:flex}
  .filter-drawer-head{display:flex;position:sticky;top:0;z-index:2}
  .filter-drawer-foot{display:block;position:sticky;bottom:0;z-index:2;margin-top:auto}
  .side-filters{position:fixed!important;top:0;left:0;width:88%;max-width:380px;height:100vh;height:100dvh;background:var(--card);z-index:9999;transform:translateX(-100%);transition:transform .3s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0;max-height:none;border-right:1px solid var(--line);box-shadow:0 0 40px rgba(0,0,0,.15);display:block;gap:0}
  .side-filters.open{transform:translateX(0)}
  .side-filters .filter-box{padding:18px 20px;border-radius:0;border:0;border-bottom:1px solid var(--line);margin:0;background:transparent}
}
