/* Магазин школы «Чемпион»: витрина, карточка товара, корзина, оформление, правовые страницы.
   Токены — из site.css. Один акцент, одна шкала скруглений, без полос по краю плашек. */

/* ---------- полоса магазина ---------- */
.shopbar{background:var(--surface-2);border-bottom:1px solid var(--line);font-size:14.5px}
.shopbar-in{display:flex;align-items:center;gap:18px;min-height:44px;flex-wrap:wrap}
.shopbar-t{color:var(--ink-3);font-weight:700}
.shopbar a{font-weight:800;text-decoration:none;padding:4px 0;color:var(--ink-2)}
.shopbar a:hover{color:var(--ink)}
.shopbar a.on{color:var(--accent-ink);box-shadow:inset 0 -2px 0 var(--accent)}
.shopbar-seller{margin-left:auto;color:var(--ink-3)}

.cartlink{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-decoration:none;font-size:15px;padding:8px 14px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--surface)}
.cartlink:hover{border-color:var(--ink)}
.cartcount{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:var(--surface-2);font-size:13px;font-weight:800;color:var(--ink-2)}
.cartcount.has{background:var(--accent);color:var(--on-accent)}

/* ---------- хлебные крошки ---------- */
.crumb{font-size:14.5px;color:var(--ink-3);margin-bottom:14px;display:flex;gap:8px;flex-wrap:wrap}
.crumb a{font-weight:700;color:var(--ink-2);text-decoration:none}
.crumb a:hover{color:var(--accent-ink)}

/* ---------- витрина ---------- */
.shop-hero{padding:clamp(22px,3.4vw,44px) 0 clamp(16px,2vw,26px)}
.shop-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}
.shop-hero h1{font-size:clamp(34px,5vw,62px);text-wrap:balance}
.shop-hero .lede{margin-top:16px;color:var(--ink-2);font-size:18px;max-width:52ch}
.seller-line{margin-top:18px;padding:14px 18px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:14.5px;color:var(--ink-2);line-height:1.55}
.seller-line b{color:var(--ink)}
.shop-hero .cta-row{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}

.shop-aside{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);box-shadow:var(--shadow)}
.shop-aside h3{font-size:20px}
.shopcard-mini{display:flex;align-items:center;gap:14px;margin-top:12px;padding:12px 14px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--bg);text-decoration:none;transition:border-color .2s,transform .2s var(--ease)}
.shopcard-mini:hover{border-color:var(--ink);transform:translateY(-2px)}
.shopcard-mini b{display:block;font-size:16px}
.shopcard-mini small{display:block;color:var(--ink-3);font-size:13.5px}
.aside-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px;font-size:14.5px;color:var(--ink-2)}
.aside-list li{padding-left:22px;position:relative}
.aside-list li::before{content:"";position:absolute;left:4px;top:.55em;width:7px;height:7px;border-radius:999px;background:var(--accent)}
.aside-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:14.5px}
.aside-links a{font-weight:800;color:var(--accent-ink);text-decoration:none}
.aside-links a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- товары ---------- */
.goods{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:clamp(14px,2vw,22px);margin-top:32px}
.good{display:flex;flex-direction:column;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .2s,transform .25s var(--ease),box-shadow .25s var(--ease)}
.good:hover{border-color:var(--ink-3);transform:translateY(-3px);box-shadow:var(--shadow)}
.good-art{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:var(--surface-2)}
.good-art img{width:44%;height:auto}
.good-b{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;gap:6px}
.good-b h3{font-size:18px;line-height:1.25}
.good-b h3 a{text-decoration:none}
.good-b h3 a:hover{color:var(--accent-ink)}
.good-sum{color:var(--ink-2);font-size:14.5px}
.good-sizes{color:var(--ink-3);font-size:13.5px;margin-top:auto}
.good-buy{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.good-price{font-weight:800;font-size:19px;font-variant-numeric:tabular-nums}
.btn.added{background:var(--ok);color:#fff}

/* ---------- абонементы ---------- */
.members{display:grid;gap:12px;margin-top:28px}
.member{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r)}
.member-ico{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:12px}
.member-b{display:grid;gap:4px;min-width:0}
.member-b b{font-size:17px;line-height:1.3}
.member-sum{color:var(--ink-2);font-size:14.5px}
.member-spec{color:var(--ink-3);font-size:13.5px}
.member-buy{display:grid;gap:8px;justify-items:end;min-width:140px}
.member-price{font-weight:800;font-size:19px;font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .shop-hero-grid{grid-template-columns:minmax(0,1fr)}
  .member{grid-template-columns:48px minmax(0,1fr);align-items:start}
  .member-ico{width:48px;height:48px}
  .member-buy{grid-column:2;justify-items:start;grid-template-columns:auto auto;align-items:center;justify-items:start}
}

/* ---------- расписание ---------- */
.sch-tools{margin-top:24px}
.sch-panel{padding-top:6px}
.sch-block{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-top:16px}
.sch-block h3{font-size:20px}
.sch-tr{color:var(--ink-3);font-size:14px;margin-top:2px}
.sch-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:15px}
.sch-table th{text-align:left;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:0 10px 8px 0;font-weight:800}
.sch-table td{padding:9px 10px 9px 0;border-top:1px solid var(--line)}
.sch-table td:last-child{color:var(--ink-2)}

/* ---------- магазин на главной ---------- */
.shopcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px}
.shopcard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);text-decoration:none;transition:border-color .2s,transform .25s var(--ease),box-shadow .25s var(--ease)}
.shopcard:hover{border-color:var(--ink);transform:translateY(-3px);box-shadow:var(--shadow)}
.sc-art{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:14px}
.sc-b b{display:block;font-family:var(--font-d);font-size:21px;line-height:1.2}
.sc-b span{display:block;color:var(--ink-2);font-size:14.5px;margin-top:4px}
.sc-go{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:20px}
@media (max-width:760px){.shopcards{grid-template-columns:minmax(0,1fr)}}

/* ---------- карточка товара ---------- */
.pdp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(20px,3.4vw,52px);margin-top:22px;align-items:start}
.pdp-art{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:var(--surface-2);border-radius:var(--r);border:1.5px solid var(--line)}
.pdp-art img{width:52%;height:auto}
.pdp-b h1{font-size:clamp(28px,3.6vw,44px);text-wrap:balance}
.pdp-sum{color:var(--ink-2);font-size:17px;margin-top:10px}
.pdp-price{font-family:var(--font-b);font-weight:800;font-size:34px;margin-top:18px;font-variant-numeric:tabular-nums}
.pdp-sizes{color:var(--ink-2);font-size:15px;margin-top:8px}
.pdp-b .cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.pdp-spec{margin:28px 0 0;display:grid;gap:14px}
.pdp-spec dt{font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.pdp-spec dd{margin:4px 0 0;color:var(--ink-2);font-size:16px}
.pdp-legal{margin-top:26px;padding:16px 18px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:14px;color:var(--ink-2)}
.pdp-legal p+p{margin-top:8px}
.pdp-legal a{font-weight:700;color:var(--accent-ink)}
@media (max-width:860px){.pdp{grid-template-columns:minmax(0,1fr)}.pdp-art{aspect-ratio:4/3}}

/* ---------- корзина ---------- */
.cart{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(18px,2.6vw,36px);margin-top:26px;align-items:start}
.cart-lines{display:grid;gap:10px}
.cart-empty{padding:30px 20px;border:1.5px dashed var(--line);border-radius:var(--r);color:var(--ink-2);text-align:center}
.cartline{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto auto;gap:14px;align-items:center;padding:14px 16px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r)}
.cartline-art{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:12px}
.cartline-b{min-width:0}
.cartline-b b{display:block;font-size:16px;line-height:1.3}
.cartline-b a{text-decoration:none}
.cartline-b a:hover{color:var(--accent-ink)}
.cartline-b small{display:block;color:var(--ink-3);font-size:13px;margin-top:2px}
.cartline-qty{display:flex;align-items:center;gap:6px}
.cartline-qty button{width:32px;height:32px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);font-weight:800;cursor:pointer}
.cartline-qty button:hover{border-color:var(--ink)}
.cartline-qty span{min-width:22px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.cartline-sum{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.cartline-del{width:32px;height:32px;border-radius:10px;border:1.5px solid transparent;background:transparent;color:var(--ink-3);font-size:20px;line-height:1;cursor:pointer}
.cartline-del:hover{color:var(--danger);border-color:var(--line)}
.cart-sum{position:sticky;top:92px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,28px);box-shadow:var(--shadow);display:grid;gap:10px}
.cart-sum h3{font-size:20px}
.cart-total{font-family:var(--font-b);font-weight:800;font-size:30px;font-variant-numeric:tabular-nums}
.cart-sum .btn{width:100%}
.btn.is-off{opacity:.45;pointer-events:none}
@media (max-width:860px){.cart{grid-template-columns:minmax(0,1fr)}.cart-sum{position:static}.cartline{grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"a b e" "a q s";row-gap:8px}.cartline-art{grid-area:a}.cartline-b{grid-area:b}.cartline-qty{grid-area:q}.cartline-sum{grid-area:s;text-align:right}.cartline-del{grid-area:e;justify-self:end}}

/* ---------- оформление ---------- */
.checkout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(18px,2.6vw,36px);margin-top:26px;align-items:start}
.co-main{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.6vw,32px);box-shadow:var(--shadow)}
.co-side{position:sticky;top:92px;background:var(--surface-2);border-radius:var(--r);padding:clamp(18px,2.4vw,26px);display:grid;gap:12px}
.co-side h3{font-size:20px}
.co-lines{display:grid;gap:8px}
.co-lines .cartline{grid-template-columns:44px minmax(0,1fr) auto auto;padding:10px;background:var(--surface)}
.co-lines .cartline-art{width:44px;height:44px}
.fs{border:0;padding:0;margin:24px 0 0;min-width:0}
.fs:first-of-type{margin-top:4px}
.fs legend{font-family:var(--font-d);font-weight:700;font-size:19px;padding:0;margin-bottom:12px}
.pay-opt{display:grid;gap:8px}
.pay-radio{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--bg);cursor:pointer}
.pay-radio:has(input:checked){border-color:var(--accent-ink);background:var(--accent-soft)}
.pay-radio input{margin-top:4px;accent-color:var(--accent-ink)}
.pay-radio b{display:block;font-size:16px}
.pay-radio small{display:block;color:var(--ink-2);font-size:13.5px;margin-top:2px}
.paylogos{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.paylogo{display:flex;align-items:center;justify-content:center;height:44px;padding:0 14px;background:var(--surface);border:1.5px solid var(--line);border-radius:10px}
.paylogo img{height:24px;width:auto}
.paylogos-lg .paylogo{height:56px;padding:0 18px}
.paylogos-lg .paylogo img{height:30px}
@media (max-width:860px){.checkout{grid-template-columns:minmax(0,1fr)}.co-side{position:static;order:-1}}

/* ---------- правовые страницы ---------- */
.legalpage{max-width:1180px}
.legalpage h1{font-size:clamp(30px,4vw,52px);text-wrap:balance}
.legal-lead{margin-top:14px;color:var(--ink-2);font-size:16px;max-width:70ch;padding:14px 18px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface)}
.legal-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:clamp(20px,3.2vw,48px);margin-top:32px;align-items:start}
.legal-text h2{font-size:clamp(21px,2.4vw,28px);margin-top:30px}
.legal-text h2:first-child{margin-top:0}
.legal-text p{color:var(--ink-2);margin-top:12px;font-size:16px}
.legal-list{margin:12px 0 0;padding:0 0 0 22px;display:grid;gap:8px;color:var(--ink-2);font-size:16px}
.legal-side{position:sticky;top:92px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,26px)}
.legal-side h3{font-size:19px}
@media (max-width:860px){.legal-grid{grid-template-columns:minmax(0,1fr)}.legal-side{position:static;order:-1}}

/* ---------- реквизиты ---------- */
.req-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.req-card{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.4vw,28px)}
.req-card h2{font-size:22px}
.req-table{display:grid;gap:0;margin-top:12px;font-size:15px}
.req-table>div{display:grid;grid-template-columns:minmax(120px,34%) minmax(0,1fr);gap:14px;padding:10px 0;border-top:1px solid var(--line)}
.req-table>div:first-child{border-top:0}
.req-table dt{color:var(--ink-3);font-weight:700;font-size:14px;margin:0}
.req-table dd{margin:0;font-weight:600;word-break:break-word}
.req-table a{color:var(--accent-ink);font-weight:700}
.seller-box{display:grid;gap:6px}
.foot-sellers{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:8px;font-size:13.5px;color:var(--ink-3);line-height:1.5}
.foot-sellers b{color:var(--ink-2)}
@media (max-width:860px){.req-grid{grid-template-columns:minmax(0,1fr)}}

/* ---------- запись ---------- */
.zgrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(20px,4vw,56px);align-items:start;margin-top:24px}
.zbox{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,36px);box-shadow:var(--shadow)}
.zside{position:sticky;top:92px;background:var(--accent-soft);border-radius:var(--r);padding:clamp(18px,2.4vw,28px)}
.zside h3{font-size:22px}
.zside .points{grid-template-columns:1fr;margin-top:14px}
@media (max-width:900px){.zgrid{grid-template-columns:minmax(0,1fr)}.zside{position:static;order:-1}}

/* ---------- порядок заказа на витрине ---------- */
.way{margin-top:0}

/* ---------- доработки ---------- */
.legalpage .legal-text h2,.legalpage h1{max-width:none}
.paylogos{margin:14px 0 10px}
.co-main .fs{margin-bottom:8px}
.way4{grid-template-columns:repeat(4,minmax(0,1fr))}
.way4 h3{font-size:22px}
.way4 p{max-width:26ch}
@media (max-width:960px){.way4{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.way4::before{display:none}}
@media (max-width:620px){.way4{grid-template-columns:minmax(0,1fr);gap:30px}.way4 li{padding:4px 0 0 82px}.way4::before{display:block;left:27px;right:auto;top:0;bottom:0;width:3px;height:auto;background:repeating-linear-gradient(180deg,var(--accent) 0 14px,transparent 14px 24px)}}

/* ---------- узкие экраны ---------- */
@media (max-width:760px){
  .shopbar-in{gap:6px 14px;min-height:auto;padding-block:9px}
  .shopbar-t,.shopbar-seller{display:none}
  .shopbar a{font-size:14px}
}
@media (max-width:620px){
  .goods{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .good-b{padding:12px 12px 14px;gap:4px}
  .good-b h3{font-size:15px}
  .good-sum{font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .good-sizes{font-size:12px}
  .good-buy{flex-direction:column;align-items:stretch;gap:8px}
  .good-price{font-size:17px}
  .good-buy .btn{width:100%}
  .pdp-price{font-size:28px}
  .cartline{padding:12px}
}
.legalpage h1{color:var(--ink)}
.co-side h3{margin-top:6px}

/* ---------- фотографии: портрет руководителя и горизонтальные кадры ---------- */
.dir-box .photo{aspect-ratio:4/5;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
@media (max-width:860px){.dir-box .photo{aspect-ratio:4/3}}
/* все кадры — горизонтальные */
.bento{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none}
.b-team{grid-column:1/3;grid-row:auto;aspect-ratio:16/9}
.b-q{grid-column:3/4;grid-row:auto}
.b-a{grid-column:1/2;grid-row:auto;aspect-ratio:4/3}
.b-b{grid-column:2/3;grid-row:auto;aspect-ratio:4/3}
.b-c{grid-column:3/4;grid-row:auto;aspect-ratio:4/3}
.b-d{grid-column:1/2;grid-row:auto;aspect-ratio:4/3}
.b-n{grid-column:2/4;grid-row:auto}
@media (max-width:760px){
  .bento{grid-template-columns:minmax(0,1fr)}
  .b-team,.b-q,.b-a,.b-b,.b-c,.b-d,.b-n{grid-column:1/2;grid-row:auto}
  .b-team,.b-a,.b-b,.b-c,.b-d{aspect-ratio:4/3}
}
