/* The shared shop has its own warm paper palette in both course themes. */
.shop-example{--shop-ink:#243e38;--shop-muted:#65706a;--shop-line:#deded3;min-width:0;overflow:hidden;border:1px solid var(--rule-firm);border-radius:12px;background:#fffcf5;color:var(--shop-ink);font:400 .9rem/1.5 "Bricolage Grotesque",system-ui,sans-serif;box-shadow:0 16px 40px var(--shadow)}
.shop-example *{box-sizing:border-box}
.shop-demo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 24px;background:#243e38;color:#fff3d6;border-bottom:3px solid #c5a464;font:500 .8rem/1.5 "JetBrains Mono",monospace;letter-spacing:.055em;text-transform:uppercase}
.shop-demo > span{font-size:.65rem;letter-spacing:.1em;color:#d8dfd2}
.shop-header{display:flex;align-items:center;gap:28px;padding:24px 30px;border-bottom:1px solid var(--shop-line)}
.shop-brand{font-size:1.12rem;font-weight:700;letter-spacing:-.03em;white-space:nowrap}
.shop-brand > span{font-family:Georgia,serif;font-size:1.5rem;vertical-align:-2px;margin-right:4px;color:#9b742b}
.shop-menu{display:flex;gap:20px;margin-left:auto;color:var(--shop-muted);font-size:.72rem}
.shop-bag{display:flex;align-items:center;gap:7px;font-size:.75rem;white-space:nowrap}
.shop-bag svg{width:20px;height:22px}
.shop-bag > b{display:grid;place-items:center;border-radius:50%;width:21px;height:21px;background:#243e38;color:#fffaf0;font-size:.65rem}
.shop-marker{display:inline-grid;place-items:center;flex:none;width:19px;height:19px;border:1px solid #b5a274;border-radius:50%;background:#faf0d6;color:#655122;font:500 .57rem/1 "JetBrains Mono",monospace;vertical-align:middle}
.shop-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.shop-breadcrumb{padding:19px 30px 0;color:var(--shop-muted);font-size:.65rem;display:flex;flex-wrap:wrap;gap:9px}
.shop-breadcrumb > span{color:#a5aaa1}
.shop-product{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:36px;padding:24px 30px 36px;align-items:center}
.shop-gallery{position:relative;min-width:0;margin:0;padding:18px 18px 0;background:#eeeadd;border:1px solid #e2dece;border-radius:5px}
.shop-gallery > .shop-marker{position:absolute;top:10px;left:10px;z-index:1}
.shop-gallery img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;mix-blend-mode:multiply}
.shop-gallery figcaption{text-align:center;font:italic .77rem/1.5 Spectral,Georgia,serif;color:#576357;padding:10px 0 17px}
.shop-summary{min-width:0}
.shop-edition{font:400 .57rem/1.5 "JetBrains Mono",monospace;letter-spacing:.13em;text-transform:uppercase;color:#7f6a3f;margin:0 0 13px}
.shop-title{display:flex;align-items:flex-start;gap:9px}
.shop-title h3{font:600 clamp(1.65rem,3vw,2.3rem)/1.06 Spectral,Georgia,serif;letter-spacing:-.04em;color:#243e38;margin:0;text-wrap:initial}
.shop-title .shop-marker{margin-top:5px}
.shop-rating{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.68rem;margin-top:16px;color:#5d6a62}
.shop-stars{color:#967128;letter-spacing:.06em}
.shop-rating > b{color:#243e38;font-size:.75rem}
.shop-description{font:400 .91rem/1.65 Spectral,Georgia,serif;color:#58665f;margin:20px 0}
.shop-price{display:flex;align-items:center;gap:10px}
.shop-price strong{font:600 2rem/1.1 "Bricolage Grotesque",system-ui,sans-serif;letter-spacing:-.04em}
.shop-price strong > span{font-size:1.1rem;letter-spacing:0}
.shop-format{font-size:.7rem;margin:8px 0 22px;color:#687069}
.shop-format > span{padding:0 5px}
.shop-stock{display:flex;align-items:center;gap:10px;border-top:1px solid var(--shop-line);padding-top:18px;font-size:.75rem;color:#3d6946}
.shop-stock i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#59815e;margin-right:8px;vertical-align:2px}
.shop-purchase{display:flex;gap:10px;align-items:stretch;margin-top:17px}
.shop-quantity{display:flex;align-items:center;gap:18px;padding:12px 15px;border:1px solid #c6cfc3;border-radius:4px;font-size:.72rem}
.shop-quantity b{font-weight:500}
.shop-purchase button{display:flex;justify-content:center;align-items:center;gap:22px;flex:1;min-width:0;padding:13px 18px;min-height:48px;border:1px solid #243e38;border-radius:4px;background:#243e38;color:#fffaf0;opacity:1;font:500 .83rem/1.4 "Bricolage Grotesque",system-ui,sans-serif;cursor:default}
.shop-purchase button > span{font-size:1.15rem}
.shop-caption{font-size:.61rem;line-height:1.5;color:#72796e;margin:12px 0 0}
.shop-notes{padding:18px 24px;background:#e9ecdf;border-top:3px solid #b5a274}
.shop-notes-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:10px}
.shop-notes-heading > strong{font-size:.95rem;font-weight:700;color:#243e38}
.shop-notes-heading > span{font-size:.78rem;color:#495a4f}
.shop-notes ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px 18px;list-style:none;margin:0;padding:0}
.shop-notes li{display:flex;align-items:flex-start;gap:9px;margin:0;padding:6px 0;background:none;border:0;border-radius:0}
.shop-notes .shop-marker{width:22px;height:22px;background:#243e38;border-color:#243e38;color:#fff3d6;font-size:.65rem}
.shop-notes li > div{min-width:0}
.shop-notes li b{display:block;font-size:.82rem;font-weight:700;line-height:1.4;color:#243e38}
.shop-notes li p{font:400 .85rem/1.4 "Bricolage Grotesque",system-ui,sans-serif;color:#43564a;margin:3px 0 0}
/* Give the shopping example enough room wherever it is embedded. */
.storefront-study{scroll-margin-top:140px;grid-template-columns:minmax(0,1fr);gap:26px}
.home-page .system-map-grid{grid-template-columns:minmax(0,1fr);gap:30px}
.home-page .descent{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:22px;height:auto}
.home-page .descent-head,.home-page .descent-foot{grid-column:1/-1;margin:0}
.home-page .descent-head{font-size:.6rem;line-height:1.7;letter-spacing:.08em}
.home-page .layer{grid-template-columns:1fr;gap:8px;padding:14px}
.home-page .layer-name{font-size:.83rem}
.home-page .layer-where{font-size:.72rem}
.home-page .miss{display:none}
.home-page .descent-foot{padding-top:14px;font-size:.81rem}
.home-page .parts-wrap{margin:0;padding:0;border:0;background:none}
.home-page .optimization-cue{position:static;align-self:flex-start;margin:0 0 14px;padding:0;box-shadow:none;border:0;background:none;border-radius:0;flex-wrap:wrap}
.home-page .optimization-cue::before{display:none}
.home-page .optimization-cue span{color:var(--gold)}
@media (max-width:800px){
  .shop-header{padding:20px;gap:18px;flex-wrap:wrap}
  .shop-menu{display:none}
  .shop-bag{margin-left:auto}
  .shop-product{gap:25px;padding:22px}
  .shop-breadcrumb{padding:17px 22px 0}
  .shop-gallery{padding:10px 10px 0}
  .shop-title h3{font-size:1.8rem}
}
@media (max-width:620px){
  .home-page .descent{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:12px}
  .home-page .layer{padding:12px 10px}
  .shop-demo{padding:13px 16px;font-size:.76rem}.shop-demo > span{display:none}
  .shop-header{padding:16px;gap:12px}
  .shop-brand{font-size:.95rem}
  .shop-bag{font-size:.68rem;gap:5px}
  .shop-bag svg{width:17px}
  .shop-product{grid-template-columns:minmax(0,1fr);padding:18px;gap:24px}
  .shop-gallery img{aspect-ratio:1.25/1}
  .shop-breadcrumb{padding:16px 18px 0;font-size:.6rem}
  .shop-title h3{font-size:2rem}
  .shop-notes{padding:16px 18px}
  .shop-notes ol{grid-template-columns:1fr;gap:6px}
  .shop-notes li{gap:9px;padding:5px 0}
}
@media (max-width:380px){
  .shop-header{gap:8px;padding:14px}
  .shop-brand{font-size:.86rem}
  .shop-brand > span{font-size:1.2rem}
  .shop-bag{gap:4px}
  .shop-bag svg{display:none}
  .shop-notes ol{grid-template-columns:1fr}
}
