.shop{padding:clamp(2.4rem, 8vh, 5.5rem) 0 clamp(4rem, 10vh, 8rem)}
.shop-lead{font-size:clamp(1.15rem, 1rem + .4vw, 1.4rem);color:var(--ink-soft);max-width:42ch;margin:0 0 1.1rem;line-height:1.4}
.shop-note{color:var(--mute);max-width:52ch;margin:0 0 1.8rem}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;margin:1.6rem 0 2rem}
.plan-card{
  text-align:left;background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:1.15rem;padding:1.4rem 1.35rem 1.3rem;
  cursor:pointer;width:100%
}
.plan-card.is-selected{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.plan-card h2,.plan-card h3{font-size:clamp(1.7rem, 1rem + 1.6vw, 2.3rem);margin:.15rem 0 .55rem}
.plan-card .price{font:300 clamp(2.1rem, 1.1rem + 2vw, 3rem)/1 "Outfit", Helvetica, sans-serif;letter-spacing:-.04em}
.plan-card .price-sub{color:var(--mute);margin:.45rem 0 .8rem}
.plan-card p{color:var(--ink-soft);margin:0 0 .55rem;max-width:36ch}
.plan-card .benefit-list{margin-top:.15rem;margin-bottom:.7rem}
.plan-card .benefit-list li{max-width:36ch}
.qty-box{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:1.2rem 0}
.qty-box button{
  width:44px;height:44px;border-radius:var(--radius-btn);border:1px solid var(--ink);
  background:transparent;color:var(--ink);font:500 1.3rem/1 "Outfit", sans-serif;cursor:pointer
}
.qty-box input{
  width:4.2rem;min-height:44px;text-align:center;border:1px solid var(--line);
  background:#fff;font:500 1.1rem/1 "Source Sans 3", sans-serif
}
.summary{border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1.5rem;max-width:40rem}
.summary dl{display:grid;grid-template-columns:1fr auto;gap:.45rem 1.2rem;margin:0}
.summary dt{color:var(--mute)}
.summary dd{margin:0;text-align:right}
.summary .total{font:300 1.8rem/1 "Outfit", Helvetica, sans-serif;letter-spacing:-.03em}
.demo-flag{
  display:inline-flex;align-items:center;min-height:1.7rem;padding:0 .6rem;margin:0 0 1rem;
  border:1px solid var(--ink);border-radius:999px;
  font:500 .88rem/1 "Source Sans 3", sans-serif;letter-spacing:.02em
}
.sample-id{border:1px solid var(--line);border-radius:1.15rem;padding:1.1rem 1.15rem;margin:1.2rem 0;max-width:36rem}
.sample-id p{margin:0 0 .4rem}
.promo-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1.1rem 0}
.promo-row input{min-height:48px;padding:0 .8rem;border:1px solid var(--line);background:#fff;font:inherit;width:min(16rem,100%)}
.promo-msg{color:var(--mute);margin:.35rem 0 0}
.dl-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0}
.os-choice{
  display:inline-flex;align-items:center;gap:.55rem;min-height:52px;padding:0 1.15rem;
  border:1px solid var(--ink);border-radius:var(--radius-btn);background:transparent;color:var(--ink);
  font:500 1.05rem/1 "Source Sans 3", sans-serif;cursor:pointer
}
.os-choice img{width:1.1rem;height:1.1rem}
.os-choice .os-apple{width:auto;height:1.25rem}
.os-choice.is-ready .os-apple{filter:invert(1)}
.os-choice.is-ready{background:var(--ink);color:var(--paper)}
.key-panel{border:1px solid var(--line);border-radius:1.15rem;padding:1.2rem 1.25rem;margin:1.4rem 0;max-width:40rem}
.key-code{font:300 1.8rem/1 "Outfit", Helvetica, sans-serif;letter-spacing:.06em;margin:.35rem 0 .7rem}
.shop-steps{display:flex;flex-wrap:wrap;gap:.45rem .8rem;margin:0 0 1.5rem;color:var(--mute);font-size:.92rem}
.shop-steps [aria-current="step"]{color:var(--ink)}
@media (max-width:700px){
  .plan-grid{grid-template-columns:1fr}
}
@media (max-width:380px){
  .plan-card .price{font-size:1.55rem}
}
