/* weekend.css — «Учёба · Школы выходного дня»: the board (weekend-schools.html) and a school's page
   (weekend-schools/_entry.html). Phone first, then wider. Colours, type and the dark theme come from styles.css.
   The page's one move is the weekend as a timetable: Saturday and Sunday from 9 to 19, each city a row, each
   school where its lessons are. A child's age ticked above it dims every school that would not take them — CSS
   (:has) on the platform's own age boxes, no script; the list under the board is filtered by the platform. */

.we { --line: rgba(var(--ink), .12); --band: #121211; --band-txt: #EDEAE3; --band-mut: #A9A59D; --band-soft: #CFCBC3;
  --band-line: rgba(237, 234, 227, .14); --band-grid: rgba(237, 234, 227, .09); --nl: #9A5B13; --city: 150px; }
:root.dark .we { --band: #1F1F23; --nl: #E0A35A; }
:where(.we) :is(h1, h2, h3, p, ul, ol, blockquote, address, dl, dd) { margin: 0; padding: 0; }
:where(.we) :is(ul, ol) { list-style: none; }
.we a:hover { color: inherit; }
.we [hidden] { display: none !important; }
.we-ic { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.we-kick { font: 500 12px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); }
.we-h2 { margin-top: 10px; font-size: clamp(28px, 4.6vw, 44px); line-height: 1.08; font-weight: 500; letter-spacing: -.03em; text-wrap: balance; }
.we-link { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 500; color: var(--acc); }
.we-link:hover { color: var(--acc) !important; text-decoration: underline; text-underline-offset: 4px; }
.we-old { color: var(--nl); }

/* ════════════════ The board page ════════════════ */
.we-hero { display: grid; gap: 28px; padding-top: 40px; padding-bottom: 28px; }
.we-hero h1 { margin-top: 14px; font-size: clamp(46px, 9.4vw, 104px); line-height: .96; font-weight: 500; letter-spacing: -.045em; }
.we-lead { max-width: 40ch; margin-top: 20px; font-size: clamp(17px, 2vw, 22px); line-height: 1.42; font-weight: 300; color: var(--txt2); text-wrap: pretty; }
.we-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--txt); align-self: end; }
.we-figs div { padding: 14px 8px 0 0; }
.we-figs b { display: block; font-size: clamp(32px, 4.4vw, 56px); line-height: 1; font-weight: 500; letter-spacing: -.04em; white-space: nowrap; }
.we-figs div > span { display: block; margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--txt2); }

/* The child's age: the platform's own facet boxes, so a shared link (?f.Возраст=7) opens already chosen. */
.we-ages { display: grid; gap: 12px; padding-bottom: 32px; }
.we-ages-q { font-size: 16px; font-weight: 500; }
.we-chips { display: flex; gap: 4px; margin: 0 -18px; padding: 0 18px; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.we-chips::-webkit-scrollbar { display: none; }
.we-age { position: relative; flex: 0 0 44px; display: block; cursor: pointer; }
.we-age input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.we-age span { display: grid; place-items: center; height: 44px; border-radius: 12px; background: var(--s1); font: 500 15px var(--mono); color: var(--txt2); transition: background .2s, color .2s; }
.we-age small { display: none; }
.we-age:hover span { background: rgba(var(--accr), .1); color: var(--acc); }
.we-age input:checked + span { background: var(--acc); color: #FFFFFF; }
.we-age input:focus-visible + span { outline: 2px solid var(--acc); outline-offset: 2px; }
.we-age[data-gally-none] span { opacity: .4; }
.we-ages-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; min-height: 24px; font-size: 15px; color: var(--txt2); }
.we-ages-foot b { font-weight: 500; color: var(--txt); }
.we-reset { font-size: 15px; font-weight: 500; color: var(--acc); }
.we-reset:hover { text-decoration: underline; text-underline-offset: 4px; }

/* The board: a dark band. On a phone one day at a time (two radio tabs, no script), schools by the hour they
   begin; from 900px Saturday and Sunday side by side, a city a row. */
.we-bd { padding: 32px 0 36px; background: var(--band); color: var(--band-txt); }
.we-bd .we-kick { color: var(--band-mut); }
.we-bd-head { display: grid; gap: 14px; }
.we-bd-head h2 { margin-top: 10px; font-size: clamp(28px, 4.6vw, 44px); line-height: 1.08; font-weight: 500; letter-spacing: -.03em; }
.we-bd-head > p { max-width: 52ch; font-size: 16px; line-height: 1.55; color: var(--band-soft); }
.we-bd a { color: inherit; }
.we-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 22px; padding: 4px; border-radius: 16px; background: rgba(237, 234, 227, .08); }
.we-tab { position: relative; display: block; cursor: pointer; }
.we-tab input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.we-tab span { display: flex; justify-content: center; align-items: baseline; gap: 6px; height: 40px; line-height: 40px; border-radius: 12px; font-size: 15px; color: var(--band-soft); transition: background .2s, color .2s; }
.we-tab small { font: 500 12px var(--mono); opacity: .65; }
.we-tab input:checked + span { background: var(--band-txt); color: #121211; font-weight: 500; }
.we-tab input:focus-visible + span { outline: 2px solid var(--acc); outline-offset: 2px; }
.we-hours { position: relative; height: 16px; font: 400 11px/16px var(--mono); color: var(--band-mut); }
.we-hours span { position: absolute; top: 0; transform: translateX(-50%); }
.we-hours span:first-child { transform: none; }
.we-hours span:last-child { transform: translateX(-100%); }
.we-phone .we-hours { margin-top: 18px; }
.we-day { margin-top: 8px; }
.we-bd:has(#we-sun:checked) .we-day.is-sat, .we-bd:has(#we-sat:checked) .we-day.is-sun { display: none; }
.we-slot { display: block; padding: 12px 0 14px; border-top: 1px solid var(--band-line); transition: opacity .25s; }
.we-slot-top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.we-slot b { font-size: 17px; line-height: 1.25; font-weight: 500; }
.we-slot .we-kick { color: var(--band-mut); white-space: nowrap; }
.we-slot:hover b { color: #B5ACFF; }
.we-track { position: relative; display: block; height: 10px; margin-top: 10px; border-radius: 5px; background: repeating-linear-gradient(90deg, var(--band-line) 0 1px, transparent 1px 10%); }
.we-track i { position: absolute; top: 0; bottom: 0; left: var(--l, 0); width: var(--w, 100%); border-radius: 5px; background: rgba(var(--accr), .9); }
.we-track i.is-extra { background: rgba(var(--accr), .35); }
.we-track i.is-open { left: 0; width: 100%; background: transparent; border: 1px dashed rgba(237, 234, 227, .45); }
.we-slot-line { display: block; margin-top: 8px; font: 400 12px/1.45 var(--mono); color: var(--band-soft); }

.we-board { display: none; position: relative; margin-top: 40px; }
.we-cols { position: absolute; inset: 44px 0 0; display: grid; grid-template-columns: var(--city) minmax(0, 1fr) minmax(0, 1fr); column-gap: 28px; pointer-events: none; }
.we-cols i { background: repeating-linear-gradient(90deg, var(--band-grid) 0 1px, transparent 1px 10%); }
.we-cols i::after { content: ""; float: right; width: 1px; height: 100%; background: var(--band-grid); }
.we-board-head { display: grid; grid-template-columns: var(--city) minmax(0, 1fr) minmax(0, 1fr); column-gap: 28px; padding-bottom: 12px; }
.we-board-head b { display: block; margin-bottom: 8px; font: 500 13px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.we-city { position: relative; display: grid; grid-template-columns: var(--city) minmax(0, 1fr) minmax(0, 1fr); column-gap: 28px; grid-auto-flow: row dense; padding: 8px 0; border-top: 1px solid var(--band-line); }
.we-city-name { grid-column: 1; grid-row: 1; padding-top: 13px; font: 500 13px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.we-lane { position: relative; height: 46px; margin: 3px 0; transition: opacity .25s; }
.we-lane.is-sat { grid-column: 2; }
.we-lane.is-sun { grid-column: 3; }
.we-lane.is-none { grid-column: 2 / 4; height: auto; }
.we-bk { position: absolute; top: 0; bottom: 0; left: var(--l, 0); width: var(--w, 100%); display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 0 10px; border-radius: 8px; background: rgba(var(--accr), .8); color: #FFFFFF; white-space: nowrap; overflow: hidden; transition: background .2s; }
.we-bd a.we-bk { color: #FFFFFF; }
.we-bd a.we-bk:hover { background: rgba(var(--accr), 1); }
.we-bk b { overflow: hidden; text-overflow: ellipsis; font-size: 14px; line-height: 1.15; font-weight: 500; }
.we-bk i { overflow: hidden; text-overflow: ellipsis; font: 400 11px/1.35 var(--mono); color: rgba(255, 255, 255, .8); }
.we-bk.is-extra { z-index: 0; padding: 0 6px; background: rgba(var(--accr), .3); }
.we-bk.is-extra i { color: var(--band-soft); }
.we-bd a.we-bk.is-open { left: 0; width: 100%; background: transparent; border: 1px dashed rgba(237, 234, 227, .4); color: var(--band-txt); }
.we-bd a.we-bk.is-open:hover { background: rgba(237, 234, 227, .06); border-color: rgba(237, 234, 227, .7); }
.we-bk.is-open i { color: var(--band-soft); }
.we-lane-none { padding: 13px 0; font-size: 15px; line-height: 1.45; color: var(--band-mut); }
.we-lane-none a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(237, 234, 227, .3); }
.we-unknown { display: none; margin-top: 18px; font-size: 14px; line-height: 1.5; color: var(--band-mut); }

/* The age dims what will not take the child: everything goes quiet, and a lane or a slot carrying the ticked
   age (its classes a1…a17, from the school's ages) comes back. Several ages — any of them brings it back. */
.we:has(.we-age input:checked) :is(.we-lane, .we-slot) { opacity: .24; }
.we:has(.we-age input:checked) .we-unknown { display: block; }
.we:has(.we-age input[value="1"]:checked) :is(.we-lane, .we-slot).a1,
.we:has(.we-age input[value="2"]:checked) :is(.we-lane, .we-slot).a2,
.we:has(.we-age input[value="3"]:checked) :is(.we-lane, .we-slot).a3,
.we:has(.we-age input[value="4"]:checked) :is(.we-lane, .we-slot).a4,
.we:has(.we-age input[value="5"]:checked) :is(.we-lane, .we-slot).a5,
.we:has(.we-age input[value="6"]:checked) :is(.we-lane, .we-slot).a6,
.we:has(.we-age input[value="7"]:checked) :is(.we-lane, .we-slot).a7,
.we:has(.we-age input[value="8"]:checked) :is(.we-lane, .we-slot).a8,
.we:has(.we-age input[value="9"]:checked) :is(.we-lane, .we-slot).a9,
.we:has(.we-age input[value="10"]:checked) :is(.we-lane, .we-slot).a10,
.we:has(.we-age input[value="11"]:checked) :is(.we-lane, .we-slot).a11,
.we:has(.we-age input[value="12"]:checked) :is(.we-lane, .we-slot).a12,
.we:has(.we-age input[value="13"]:checked) :is(.we-lane, .we-slot).a13,
.we:has(.we-age input[value="14"]:checked) :is(.we-lane, .we-slot).a14,
.we:has(.we-age input[value="15"]:checked) :is(.we-lane, .we-slot).a15,
.we:has(.we-age input[value="16"]:checked) :is(.we-lane, .we-slot).a16,
.we:has(.we-age input[value="17"]:checked) :is(.we-lane, .we-slot).a17 { opacity: 1; }

/* Every school, north to south: who runs it, when, from what age, what it asks, and what its own pages show
   of this year. The platform filters it by the age above and counts honestly. */
.we-all { padding-top: 56px; }
.we-all-head { display: grid; gap: 14px; margin-bottom: 20px; }
.we-all-head > p { max-width: 50ch; font-size: 16px; line-height: 1.55; color: var(--txt2); }
.we-rhead { display: none; }
.we-row { position: relative; border-top: 1px solid var(--line); }
.we-rlink { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px 16px; padding: 18px 44px 18px 0; color: var(--txt); }
.we-rcity { grid-column: 1 / -1; font: 500 12px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--mut); }
.we-rname { grid-column: 1 / -1; }
.we-rname b { display: block; font-size: 19px; line-height: 1.25; font-weight: 500; letter-spacing: -.01em; transition: color .2s; }
.we-rname span { display: block; margin-top: 3px; font-size: 14px; line-height: 1.4; color: var(--txt2); }
.we-rlink:hover .we-rname b { color: var(--acc); }
.we-rwhen { margin-top: 6px; font: 500 14px/1.45 var(--mono); }
.we-rwhen small, .we-rfee small { display: block; font: 400 12px/1.4 var(--mono); color: var(--mut); }
.we-rage { margin-top: 6px; align-self: start; }
.we-rtrack { position: relative; display: block; height: 22px; background: linear-gradient(rgba(var(--ink), .1), rgba(var(--ink), .1)) 0 50% / 100% 2px no-repeat; }
.we-rbar { position: absolute; top: 2px; left: var(--a, 0); width: var(--w, 100%); min-width: 44px; height: 18px; border-radius: 9px; background: var(--txt); color: var(--bg); font: 500 11px/18px var(--mono); text-align: center; white-space: nowrap; }
.we-rword { font: 500 13px/22px var(--mono); color: var(--txt2); }
.we-rfee b { display: block; font-size: 16px; line-height: 1.3; font-weight: 500; }
.we-rfee > span { font-size: 15px; color: var(--txt2); }
.we-rstate { font-size: 14px; line-height: 1.4; color: var(--txt2); }
.we-rstate.is-old { color: var(--nl); }
.we-row .x-fav { position: absolute; top: 14px; right: 0; }
.we-nothing { padding: 28px 0; font-size: 16px; color: var(--txt2); border-top: 1px solid var(--line); }

/* Who is not here, and why — the same check, said once. */
.we-out { display: grid; gap: 24px; margin-top: 72px; padding-top: 36px; border-top: 1px solid var(--line); }
.we-out-side > p { margin-top: 14px; max-width: 46ch; font-size: 16px; line-height: 1.55; color: var(--txt2); }
.we-out-side a { color: var(--acc); }
.we-out-list { display: grid; gap: 0 32px; }
.we-out-list li { display: grid; grid-template-columns: minmax(0, 1fr); padding: 10px 0; border-top: 1px solid var(--line); font-size: 15px; line-height: 1.45; }
.we-out-list b { font-weight: 500; }
.we-out-list span { font: 400 12px/1.6 var(--mono); color: var(--mut); }
.we-out-list em { font-style: normal; color: var(--txt2); }

.we-also { display: grid; gap: 12px; padding-top: 64px; }
.we-also a { display: grid; gap: 10px; padding: 24px; border-radius: 20px; background: var(--s1); color: var(--txt); transition: background .2s; }
.we-also a:hover { background: rgba(var(--accr), .07); }
.we-also b { font-size: 20px; line-height: 1.25; font-weight: 500; letter-spacing: -.015em; }
.we-also a > span:last-child { font-size: 15px; font-weight: 500; color: var(--acc); }

.we-src { display: grid; gap: 18px; margin-top: 64px; padding: 32px 0 72px; border-top: 1px solid var(--line); }
.we-src p { max-width: 62ch; font-size: 15px; line-height: 1.6; color: var(--txt2); }
.we-src p a { color: var(--acc); }
.we-src-list { display: grid; gap: 8px; align-content: start; }
.we-src-list a { font: 400 13px/1.5 var(--mono); color: var(--txt2); overflow-wrap: anywhere; }
.we-src-list a:hover { color: var(--acc); }

/* ════════════════ A school's page ════════════════ */
.we-crumbs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 24px; }
.we-crumbs a { color: var(--mut); }
.we-crumbs a:hover { color: var(--acc); }
.we-s-hero { display: grid; gap: 28px; padding-top: 28px; padding-bottom: 48px; }
.we-s-hero h1 { margin-top: 14px; font-size: clamp(44px, 8.6vw, 96px); line-height: 1; font-weight: 500; letter-spacing: -.045em; text-wrap: balance; }
.we-sub { max-width: 38ch; margin-top: 18px; font-size: clamp(17px, 2vw, 23px); line-height: 1.4; font-weight: 300; color: var(--txt2); text-wrap: pretty; }
.we-chipset { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.we-chip { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 14px; border-radius: 17px; background: var(--s1); font-size: 14px; line-height: 1.3; color: var(--txt2); }
.we-chip b { font-weight: 500; color: var(--txt); }
.we-s-state { margin-top: 16px; font: 500 12px/1.5 var(--mono); letter-spacing: .04em; color: var(--mut); }
.we-s-state.is-old { color: var(--nl); }
.we-fee { align-self: end; padding: 24px; border-radius: 24px; background: var(--s1); }
.we-fee-sum { display: block; margin-top: 12px; font-size: clamp(40px, 6vw, 60px); line-height: 1; font-weight: 500; letter-spacing: -.04em; }
.we-fee-word { display: block; margin-top: 12px; font-size: 26px; line-height: 1.15; font-weight: 500; letter-spacing: -.02em; }
.we-fee > p:not(.we-kick) { margin-top: 12px; font-size: 15px; line-height: 1.5; color: var(--txt2); text-wrap: pretty; }
.we-fee-row { display: flex; gap: 10px; margin-top: 20px; }
.we-btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 24px; background: var(--txt); color: var(--bg); font-size: 15px; font-weight: 500; text-align: center; transition: background .2s, color .2s; }
.we .we-btn:hover { background: var(--acc); color: #FFFFFF; }
:root.dark .we .we-btn:hover { color: #0F0F10; }
.we-fee-row .x-fav { width: 48px; height: 48px; }

.we-wd { padding: 40px 0 44px; background: var(--band); color: var(--band-txt); }
.we-wd .we-kick { color: var(--band-mut); }
.we-wd-head { display: grid; gap: 14px; }
.we-wd-head h2 { margin-top: 10px; font-size: clamp(28px, 4.6vw, 44px); line-height: 1.08; font-weight: 500; letter-spacing: -.03em; text-wrap: balance; }
.we-wd-head > p { max-width: 56ch; font-size: 16px; line-height: 1.55; color: var(--band-soft); }
.we-wd .we-hours { margin: 32px 0 6px; }
.we-wlanes { display: grid; }
.we-wlane { display: grid; gap: 6px; padding: 14px 0 16px; border-top: 1px solid var(--band-line); }
.we-wlane-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.we-wlane-who b { font-size: 17px; line-height: 1.3; font-weight: 500; }
.we-wlane-who span { font: 500 14px var(--mono); color: var(--band-txt); }
.we-wlane-who small { font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--band-mut); }
.we-wlane .we-track { height: 12px; margin-top: 4px; }
.we-wlane .we-track i.is-club { background: rgba(var(--accr), .4); }
.we-wlane > p:not(.we-wlane-who) { max-width: 70ch; font-size: 15px; line-height: 1.5; color: var(--band-soft); }
.we-wd-foot { display: grid; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--band-line); font-size: 15px; line-height: 1.55; color: var(--band-soft); }
.we-wd-foot b { font-weight: 500; color: var(--band-txt); }

.we-exam { display: grid; gap: 20px; padding: 56px 0; border-bottom: 1px solid var(--line); }
.we-exam blockquote { font-size: clamp(22px, 3vw, 34px); line-height: 1.25; letter-spacing: -.02em; text-wrap: balance; }
.we-exam blockquote + p { margin-top: 16px; font-size: 16px; line-height: 1.55; color: var(--txt2); }
.we-two { display: grid; gap: 16px; padding-top: 56px; }
.we-card { display: flex; flex-direction: column; padding: 28px 24px; border-radius: 24px; background: var(--s1); }
.we-card h3 { margin-top: 12px; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.12; font-weight: 500; letter-spacing: -.025em; text-wrap: balance; }
.we-steps { counter-reset: st; margin-top: 22px; }
.we-steps li { position: relative; padding: 0 0 18px 44px; }
.we-steps li::before { counter-increment: st; content: "0" counter(st); position: absolute; left: 0; top: 3px; font: 500 14px var(--mono); color: var(--acc); }
.we-steps b { display: block; font-size: 18px; line-height: 1.3; font-weight: 500; }
.we-steps p { margin-top: 4px; font-size: 16px; line-height: 1.5; color: var(--txt2); }
.we-card address { margin-top: 18px; font: 400 15px/1.6 var(--mono); font-style: normal; color: var(--txt2); white-space: pre-line; }
.we-card > p { margin-top: 14px; font-size: 16px; line-height: 1.55; color: var(--txt2); }
.we-card > p.we-who { color: var(--txt); }
.we-card .we-link { margin-top: auto; padding-top: 22px; }
.we-know { display: grid; gap: 24px; padding: 56px 0; border-bottom: 1px solid var(--line); }
.we-know ul { display: grid; gap: 0 48px; }
.we-know li { padding: 20px 0 22px; border-top: 1px solid var(--line); }
.we-know li b { display: block; font-size: 18px; line-height: 1.3; font-weight: 500; }
.we-know li p { margin-top: 6px; font-size: 16px; line-height: 1.55; color: var(--txt2); }
.we-near { padding-top: 56px; }
.we-near-row { display: grid; gap: 12px; margin-top: 28px; }
.we-ncard { display: flex; flex-direction: column; min-height: 160px; padding: 22px; border-radius: 20px; background: var(--s1); color: var(--txt); transition: background .2s; }
.we-ncard:hover { background: rgba(var(--accr), .07); }
.we-ncard b { display: block; margin-top: 10px; font-size: 22px; line-height: 1.18; font-weight: 500; letter-spacing: -.02em; }
.we-ncard em { margin-top: auto; padding-top: 16px; font: 500 13px var(--mono); font-style: normal; color: var(--txt2); }
.we-ncard.is-all { background: var(--txt); color: var(--bg); }
.we-ncard.is-all .we-kick, .we-ncard.is-all em { color: var(--bg); opacity: .75; }
.we-ncard.is-all:hover { background: var(--acc); color: #FFFFFF; }

@media (min-width: 720px) {
  .we-chips { margin: 0; padding: 0; }
  .we-also { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .we-two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .we-two > :only-child { grid-column: 1 / -1; }
  .we-near-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we-know ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we-out-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .we-card { padding: 32px; }
}
@media (min-width: 900px) {
  .we-phone { display: none; }
  .we-board { display: block; }
}
@media (min-width: 1100px) {
  .wrap.we-hero { grid-template-columns: minmax(0, 1fr) 440px; column-gap: 64px; align-items: end; padding-top: 56px; padding-bottom: 40px; }
  .we-ages { grid-column: 1 / -1; }
  .we-chips { display: grid; grid-template-columns: repeat(17, minmax(0, 1fr)); overflow: visible; }
  .we-age { flex: none; }
  .we-ages { padding-bottom: 44px; }
  .we-bd { padding: 64px 0 72px; }
  .we-bd-head, .we-wd-head { grid-template-columns: minmax(0, 1fr) 460px; column-gap: 64px; align-items: end; }
  .we { --city: 170px; }
  .we-all { padding-top: 88px; }
  .we-all-head { grid-template-columns: minmax(0, 1fr) 460px; column-gap: 64px; align-items: end; margin-bottom: 28px; }
  .we-rhead { display: grid; grid-template-columns: 130px minmax(0, 1fr) 190px 200px 180px 190px; gap: 24px; padding: 0 44px 12px 0; font: 500 11px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); }
  .we-rlink { grid-template-columns: 130px minmax(0, 1fr) 190px 200px 180px 190px; gap: 24px; align-items: center; }
  .we-rcity, .we-rname { grid-column: auto; }
  .we-rwhen, .we-rage { margin-top: 0; align-self: center; }
  .we-row .x-fav { top: 50%; transform: translateY(-50%); }
  .we-row .x-fav:hover { transform: translateY(-50%) scale(1.06); }
  .we-out { grid-template-columns: 360px minmax(0, 1fr); column-gap: 64px; margin-top: 96px; padding-top: 44px; }
  .we-out-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .we-also { padding-top: 88px; gap: 24px; }
  .we-src { grid-template-columns: 360px minmax(0, 1fr); column-gap: 64px; margin-top: 88px; padding: 40px 0 96px; }
  .wrap.we-s-hero { grid-template-columns: minmax(0, 1fr) 420px; column-gap: 64px; align-items: end; padding-top: 40px; padding-bottom: 64px; }
  .we-fee { padding: 28px 28px 24px; }
  .we-wd { padding: 64px 0 72px; }
  .we-wlane { grid-template-columns: 260px minmax(0, 1fr); column-gap: 28px; align-items: center; padding: 16px 0; }
  .we-wlane .we-track { grid-column: 2; grid-row: 1; margin-top: 0; }
  .we-wlane > p:not(.we-wlane-who) { grid-column: 2; }
  .we-wlane-who { grid-column: 1; grid-row: 1 / span 2; flex-direction: column; align-self: start; }
  .we-wd .we-hours { margin-left: 288px; }
  .we-exam { grid-template-columns: 360px minmax(0, 1fr); column-gap: 64px; padding: 88px 0; }
  .we-two { padding-top: 88px; gap: 24px; }
  .we-know { grid-template-columns: 360px minmax(0, 1fr); column-gap: 64px; padding: 88px 0; }
  .we-near { padding-top: 88px; }
  .we-near-row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
}
