  :root{
    --ink:#efe6d6; --ink-dim:#b9ac97; --paper:#161009; --surface:#1f170f;
    --line: rgba(239,230,214,0.14); --gold:#c39a5c; --gold-soft: rgba(195,154,92,0.35);
    --amber:#8a4420; --danger:#c05a4a;
    --shadow: 0 30px 60px -25px rgba(0,0,0,0.65);
  }
  @media (prefers-color-scheme: light){
    :root:not([data-theme="dark"]){
      --ink:#211a10; --ink-dim:#5c5140; --paper:#f2ead9; --surface:#e9dfca;
      --line: rgba(33,26,16,0.14); --gold:#96703a; --gold-soft: rgba(150,112,58,0.28);
      --shadow: 0 30px 60px -30px rgba(60,45,20,0.35);
    }
  }
  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Jost',ui-sans-serif,system-ui,sans-serif;
    padding:24px 20px 80px;
  }
  .wrap{max-width:640px;margin:0 auto;}
  .top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
  a.back{color:var(--ink-dim);text-decoration:none;font-size:0.85rem;}
  a.back:hover{color:var(--gold);}
  .cart-icon{
    position:relative; display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; color:var(--ink); flex-shrink:0;
  }
  .cart-icon svg{width:22px;height:22px;}
  .cart-badge{
    position:absolute; top:-2px; right:-4px; background:var(--gold); color:var(--paper);
    font-size:0.66rem; font-weight:600; min-width:17px; height:17px; border-radius:9px;
    display:flex; align-items:center; justify-content:center; padding:0 4px;
    font-family:'Jost',sans-serif;
  }
  h1{
    font-family:'Instrument Serif', Georgia, serif;
    font-size:clamp(2.4rem,7vw,3.2rem);
    margin:18px 0 4px;
  }
  .eyebrow{
    margin:0; font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--gold); font-weight:500;
  }
  .test-banner{
    margin:18px 0; padding:10px 14px; border:1px dashed var(--gold-soft);
    border-radius:4px; font-size:0.82rem; color:var(--ink-dim);
  }
  .card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px;
    padding:22px; margin-top:24px;
  }
  .product-row{display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .product-row + .product-row{margin-top:18px; padding-top:18px; border-top:1px solid var(--line);}
  .product-name{font-family:'Bodoni Moda',Georgia,serif; font-size:1.2rem;}
  .product-meta{color:var(--ink-dim); font-size:0.88rem; margin-top:4px;}
  /* A product left at zero stays visible but recedes, so it reads as
     "not in this order" rather than unavailable. */
  .product-row[data-empty="true"] .product-name,
  .product-row[data-empty="true"] .product-meta{opacity:0.55;}
  .line-total{
    font-size:0.88rem; color:var(--gold); margin-top:6px;
    font-variant-numeric:tabular-nums;
  }
  .catalogue-status{margin:0; color:var(--ink-dim); font-size:0.9rem;}
  .catalogue-status.error{color:var(--danger);}
  .retry-btn{
    margin-top:12px; padding:9px 16px; border:1px solid var(--line); border-radius:4px;
    background:transparent; color:var(--ink); font:inherit; font-size:0.8rem;
    letter-spacing:0.1em; text-transform:uppercase; cursor:pointer;
  }
  .retry-btn:hover{border-color:var(--gold); color:var(--gold);}
  .qty{display:flex; align-items:center; gap:10px;}
  .qty button{
    width:32px; height:32px; border-radius:4px; border:1px solid var(--line);
    background:transparent; color:var(--ink); font-size:1.1rem; cursor:pointer;
  }
  .qty button:hover{border-color:var(--gold); color:var(--gold);}
  .qty span{min-width:20px; text-align:center; font-variant-numeric:tabular-nums;}
  .total-row{
    display:flex; justify-content:space-between; margin-top:18px; padding-top:18px;
    border-top:1px solid var(--line); font-size:1.05rem;
  }
  .total-row strong{font-variant-numeric:tabular-nums;}
  label{display:block; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:6px;}
  input{
    width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:4px;
    background:transparent; color:var(--ink); font:inherit; font-size:0.96rem;
  }
  input:focus{outline:none; border-color:var(--gold);}
  .phone-input{
    display:flex; align-items:stretch; border:1px solid var(--line); border-radius:4px;
    overflow:hidden;
  }
  .phone-input:focus-within{border-color:var(--gold);}
  .phone-prefix{
    display:flex; align-items:center; padding:0 10px; color:var(--ink-dim);
    background:var(--gold-soft); font-size:0.96rem; border-right:1px solid var(--line);
    user-select:none;
  }
  .phone-input input{
    border:none; border-radius:0; flex:1; min-width:0;
  }
  .phone-input input:focus{border:none;}
  .form-row{margin-bottom:16px;}
  .form-row-split{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px;}
  @media (max-width:480px){ .form-row-split{grid-template-columns:1fr;} }
  fieldset{border:none; padding:0; margin:0 0 16px;}
  legend{padding:0; margin-bottom:10px;}
  .method-options{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  @media (max-width:480px){ .method-options{grid-template-columns:1fr;} }
  .method-option{
    display:flex; align-items:center; gap:10px; padding:14px; border:1px solid var(--line);
    border-radius:6px; cursor:pointer; font-size:0.95rem;
  }
  .method-option:has(input:checked){border-color:var(--gold); background:var(--gold-soft);}
  .method-option input{width:auto;}
  .submit-btn{
    width:100%; margin-top:8px; padding:15px 20px; border:1px solid var(--gold);
    border-radius:2px; background:transparent; color:var(--ink); font:inherit;
    font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; cursor:pointer;
    transition:background 0.2s ease, color 0.2s ease;
  }
  .submit-btn:hover{background:var(--gold); color:var(--paper);}
  .submit-btn:disabled{opacity:0.6; cursor:default;}
  .error-box{
    margin-top:14px; padding:12px 14px; border:1px solid var(--danger); border-radius:4px;
    color:var(--danger); font-size:0.88rem; display:none;
  }
  .error-box.show{display:block;}
  .note{font-size:0.8rem; color:var(--ink-dim); margin-top:16px;}

  /* ---------- language switch (EN / NO) ---------- */
  .lang-switch{
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-family:'Jost',ui-sans-serif,sans-serif;
    font-size:0.68rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .lang-switch a{color:var(--ink-dim);text-decoration:none;transition:color 0.2s ease;}
  .lang-switch a:hover{color:var(--gold);}
  .lang-switch .lang-current{color:var(--ink);}
  .lang-switch .lang-sep{color:var(--gold-soft);}
  .topbar-right{
    display:flex;
    align-items:center;
    gap:16px;
  }

