  /* ---------- School shop ---------- */
  .shop-teaser{background:linear-gradient(180deg,var(--paper),var(--bg));}
  .shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  @media (max-width:900px){.shop-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.shop-grid{grid-template-columns:1fr;}}
  .shop-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; display:flex; flex-direction:column; min-width:0; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
  .shop-card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--gold);}
  .shop-art{position:relative; aspect-ratio:1/1; background:radial-gradient(circle at 50% 40%, #fff 0%, #E9EEF8 100%); display:grid; place-items:center;}
  :root[data-theme="dark"] .shop-art{background:radial-gradient(circle at 50% 40%, #223056 0%, #121C3A 100%);}
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .shop-art{background:radial-gradient(circle at 50% 40%, #223056 0%, #121C3A 100%);} }
  .shop-art svg{width:78%; height:78%; filter:drop-shadow(0 12px 14px rgba(15,32,71,.22));}
  .shop-art img.crest{position:absolute; object-fit:contain; pointer-events:none;}
  .shop-price-tag{position:absolute; left:12px; top:12px; background:var(--navy); color:#fff; font:700 .82rem 'Sora',sans-serif; padding:6px 12px; border-radius:999px; font-variant-numeric:tabular-nums;}
  .shop-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:10px; flex:1;}
  .shop-body h4{font-size:1.05rem;}
  .shop-body p{font-size:.88rem; color:var(--ink-soft);}
  .shop-sizes{display:flex; flex-wrap:wrap; gap:6px;}
  .shop-sizes button{min-width:40px; height:34px; padding:0 10px; border-radius:9px; border:1.5px solid var(--line); background:var(--bg); color:var(--fg); font:600 .82rem 'Inter',sans-serif;}
  .shop-sizes button:hover{border-color:var(--navy);}
  .shop-sizes button.on{background:var(--navy); border-color:var(--navy); color:#fff;}
  .shop-buy{margin-top:auto; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .shop-err{font-size:.78rem; color:var(--red); min-height:1em;}
  .qty{display:inline-flex; align-items:center; border:1.5px solid var(--line); border-radius:999px; overflow:hidden; background:var(--bg);}
  .qty button{width:34px; height:34px; border:0; background:transparent; color:var(--fg); font-size:1.05rem; font-weight:700;}
  .qty button:hover{background:var(--paper);}
  .qty span{min-width:28px; text-align:center; font-weight:700; font-variant-numeric:tabular-nums;}
  .shop-note{margin-top:30px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:760px){.shop-note{grid-template-columns:1fr;}}
  .shop-note div{background:var(--card); border:1px solid var(--line); border-radius:var(--radius-md); padding:18px 20px;}
  .shop-note b{display:block; font-family:'Sora',sans-serif; font-size:.95rem; margin-bottom:4px;}
  .shop-note span{font-size:.86rem; color:var(--ink-soft);}
  .shop-bar{position:fixed; left:50%; transform:translateX(-50%); bottom:calc(18px + env(safe-area-inset-bottom,0px)); z-index:95; display:none; align-items:center; gap:14px; background:var(--navy-deep); color:#fff; border:1.5px solid var(--gold); border-radius:999px; padding:10px 10px 10px 22px; box-shadow:0 18px 40px -14px rgba(0,0,0,.55); max-width:calc(100% - 100px);}
  .shop-bar.show{display:flex;}
  .shop-bar b{font-variant-numeric:tabular-nums;}
  .shop-bar .btn{padding:10px 20px;}
  .sheet-back{position:fixed; inset:0; z-index:300; background:rgba(9,17,40,.55); backdrop-filter:blur(3px); display:none; align-items:flex-end; justify-content:center;}
  .sheet-back.open{display:flex;}
  .sheet{background:var(--bg); color:var(--fg); width:min(640px,100%); max-height:92vh; overflow-y:auto; border-radius:24px 24px 0 0; padding:24px max(20px,env(safe-area-inset-left,0px)) calc(28px + env(safe-area-inset-bottom,0px)); box-shadow:0 -20px 50px -20px rgba(0,0,0,.5);}
  @media (min-width:700px){ .sheet-back{align-items:center;} .sheet{border-radius:24px; max-height:88vh;} }
  .sheet-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px;}
  .sheet-head h3{font-size:1.25rem;}
  .line{display:grid; grid-template-columns:1fr auto; gap:6px 14px; padding:14px 0; border-top:1px solid var(--line);}
  .line b{font-size:.95rem;} .line .sub{font-size:.8rem; color:var(--ink-soft);}
  .line .amt{font-weight:700; text-align:right; font-variant-numeric:tabular-nums;}
  .line .ctl{display:flex; align-items:center; gap:12px; grid-column:1 / -1;}
  .line .rm{background:none; border:0; color:var(--red); font-weight:600; font-size:.82rem; padding:4px 0;}
  .sum{display:flex; justify-content:space-between; align-items:baseline; padding:16px 0; border-top:2px solid var(--fg); font-family:'Sora',sans-serif;}
  .sum b{font-size:1.4rem; font-variant-numeric:tabular-nums;}
  .opt-row{display:grid; gap:10px; margin-bottom:18px;}
  .opt{display:flex; gap:12px; align-items:flex-start; border:1.5px solid var(--line); border-radius:12px; padding:12px 14px; cursor:pointer;}
  .opt input{margin-top:4px; accent-color:var(--navy);}
  .opt b{display:block; font-size:.92rem;} .opt span{font-size:.82rem; color:var(--ink-soft);}
  .opt:has(input:checked){border-color:var(--navy); background:color-mix(in srgb, var(--navy) 6%, transparent);}
  .empty-basket{text-align:center; padding:36px 10px; color:var(--ink-soft);}
