/* Inner pages: club, programs, cards, events, gallery, contacts */

.phero h1 { margin: 0; }
.phero .lead { margin-top: 26px; }
.phero .meta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.phero.night .lead { color: #cfc9da; }

/* ---------- club: manifesto ---------- */
.manifesto { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 100px); align-items: center; }
.manifesto .pic { position: relative; border-radius: calc(var(--radius) + 8px); overflow: hidden; aspect-ratio: 1; }
.manifesto .pic img { width: 100%; height: 120%; object-fit: cover; }
.manifesto .pic .badge { position: absolute; left: 18px; bottom: 18px; }
.manifesto p { font-size: 19px; }
.big-quote { font: 700 clamp(26px, 3.4vw, 50px)/1.15 var(--f-display); letter-spacing: -.025em; margin: 0; text-wrap: balance; }
.big-quote .hl { color: var(--teal); }
.sign { display: flex; align-items: center; gap: 16px; margin-top: 36px; }
.sign img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--teal); }
.sign b { display: block; font: 700 18px/1.2 var(--f-display); }
.sign span { font: 500 11px/1 var(--f-mono); letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.founder-text { columns: 2 320px; column-gap: 40px; color: var(--muted); margin-top: 40px; }
@media (max-width: 900px) { .manifesto { grid-template-columns: 1fr; } }

/* ---------- club: starting grid of experts ---------- */
.grid-start { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 40px; position: relative; }
.grid-start::before { content: ""; position: absolute; left: 50%; top: -20px; bottom: -20px; width: 0; border-left: 2px dashed var(--line-2); }
.slot { position: relative; padding: 18px 18px 18px 18px; border: 2px solid var(--line-2); border-bottom: 0; border-radius: 16px 16px 0 0; }
.slot:nth-child(even) { transform: translateY(46%); }
.slot .p { position: absolute; top: -14px; left: 18px; padding: 4px 10px; border-radius: 6px; background: var(--ink); color: var(--bg); font: 700 12px/1 var(--f-mono); letter-spacing: .1em; }
.expert { display: grid; grid-template-columns: 140px 1fr; gap: 20px; align-items: center; width: 100%; background: none; border: 0; text-align: left; cursor: pointer; padding: 0; border-radius: 14px; }
.expert img { width: 140px; aspect-ratio: 1; object-fit: cover; border-radius: 14px; filter: grayscale(.6); transition: filter .4s, transform .5s var(--ease); }
.expert:hover img { filter: none; transform: rotate(-3deg) scale(1.04); }
.expert b { display: block; font: 800 clamp(20px, 2vw, 28px)/1.05 var(--f-display); letter-spacing: -.02em; }
.expert .role { display: block; color: var(--muted); margin: 8px 0 14px; }
.expert .more { font: 600 13px/1 var(--f-mono); letter-spacing: .08em; color: var(--teal); text-transform: uppercase; }
@media (max-width: 760px) {
  .grid-start { grid-template-columns: 1fr; gap: 34px; }
  .grid-start::before { display: none; }
  .slot:nth-child(even) { transform: none; }
  .expert { grid-template-columns: 96px 1fr; }
  .expert img { width: 96px; }
}
.grid-pad { height: 120px; }
@media (max-width: 760px) { .grid-pad { height: 0; } }

/* drawer */
dialog.drawer { margin: 0 0 0 auto; height: 100dvh; max-height: none; width: min(560px, 100vw); border: 0; padding: 0; background: var(--bg-2); color: var(--ink); border-left: 1px solid var(--line); }
dialog.drawer::backdrop { background: rgba(5, 4, 8, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
dialog.drawer[open] { animation: drawer .5s var(--ease); }
@keyframes drawer { from { transform: translateX(100%); } }
.drawer .inner { padding: 28px clamp(20px, 4vw, 40px) 40px; overflow: auto; height: 100%; }
.drawer .close { position: sticky; top: 0; float: right; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--bg-2); cursor: pointer; font-size: 22px; }
.drawer img { width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: top; border-radius: 18px; margin: 20px 0 24px; }
.drawer h3 { font: 800 34px/1 var(--f-display); letter-spacing: -.03em; margin: 0 0 8px; }
.drawer ul { padding: 0; list-style: none; display: grid; gap: 10px; }
.drawer li { padding: 14px 16px 14px 44px; border-radius: 12px; background: var(--bg); position: relative; }
.drawer li::before { content: ""; position: absolute; left: 16px; top: 20px; width: 12px; height: 12px; background: repeating-conic-gradient(var(--teal) 0 25%, transparent 0 50%) 0 0/6px 6px; }

/* partners */
.partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.partner { overflow: hidden; display: flex; flex-direction: column; }
.partner img { aspect-ratio: 16/10; object-fit: cover; width: 100%; transition: transform .8s var(--ease); }
.partner:hover img { transform: scale(1.05); }
.partner .b { padding: 24px; display: grid; gap: 10px; }
.partner time { font: 500 12px/1 var(--f-mono); letter-spacing: .1em; color: var(--teal); }
.partner h3 { font: 700 21px/1.2 var(--f-display); margin: 0; letter-spacing: -.01em; }
.partner p { margin: 0; color: var(--muted); font-size: 15px; }
@media (max-width: 900px) { .partners { grid-template-columns: 1fr; } }

/* ---------- programs: racing line ---------- */
.logic { position: relative; }
.logic svg.line { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.logic svg .bg { fill: none; stroke: var(--line-2); stroke-width: 26; stroke-linecap: round; }
.logic svg .fg { fill: none; stroke: url(#lg); stroke-width: 4; stroke-linecap: round; }
.logic svg .kerb { fill: none; stroke: var(--ink); stroke-width: 26; stroke-dasharray: 10 10; opacity: .08; }
.logic .kart-dot { position: absolute; left: 0; top: 0; width: 56px; height: 56px; margin: -28px 0 0 -28px; z-index: 2; pointer-events: none; }
.steps { position: relative; display: grid; gap: clamp(80px, 14vw, 200px); padding: 60px 0; }
.step { width: min(460px, 100%); position: relative; z-index: 1; }
.step:nth-child(2) { margin-left: auto; }
.step:nth-child(3) { margin-left: 18%; }
.step .ico { width: 84px; height: 84px; border-radius: 22px; background: var(--bg-2); border: 1px solid var(--line); display: grid; place-items: center; margin-bottom: 22px; }
.step .ico img { width: 52px; height: 52px; object-fit: contain; }
.step .k { font: 500 12px/1 var(--f-mono); letter-spacing: .14em; color: var(--teal); }
.step h3 { font: 800 clamp(26px, 3vw, 40px)/1 var(--f-display); letter-spacing: -.03em; margin: 12px 0 14px; }
.step p { color: var(--muted); margin: 0; }
.step .card { padding: 30px; background: var(--glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
@media (max-width: 760px) { .step:nth-child(n) { margin-left: 0; } .logic svg.line, .logic .kart-dot { display: none; } }

/* programs: sticky stacked cards */
.stack { display: grid; gap: 0; }
.prog { position: sticky; top: 96px; min-height: 72vh; display: grid; grid-template-columns: 1fr 1.05fr; border-radius: calc(var(--radius) + 8px); overflow: hidden; background: var(--bg-2); border: 1px solid var(--line); margin-bottom: 40px; transform-origin: 50% 0; box-shadow: 0 -20px 60px -30px rgba(0,0,0,.6); --dim: 0; }
.prog::after { content: ""; position: absolute; inset: 0; background: #0b0a0f; opacity: var(--dim); pointer-events: none; }
.prog .txt { padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: space-between; gap: 30px; }
.prog .no { font: 900 clamp(70px, 10vw, 150px)/.8 var(--f-display); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 1.5px var(--line-2); }
.prog h3 { font: 800 clamp(26px, 3vw, 44px)/1.02 var(--f-display); letter-spacing: -.03em; margin: 0 0 18px; }
.prog p { color: var(--muted); margin: 0; font-size: 17px; max-width: 52ch; }
.prog .pic { position: relative; overflow: hidden; }
.prog .pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.prog .lvl { display: flex; gap: 6px; align-items: center; font: 500 11px/1 var(--f-mono); letter-spacing: .12em; color: var(--muted); text-transform: uppercase; }
.prog .lvl i { width: 18px; height: 6px; border-radius: 3px; background: var(--line-2); }
.prog .lvl i.on { background: var(--teal); }
@media (max-width: 900px) { .prog { grid-template-columns: 1fr; position: relative; top: 0; min-height: 0; } .prog .pic { aspect-ratio: 16/10; order: -1; } }

/* ---------- cards: licences ---------- */
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; perspective: 1200px; align-items: stretch; }
.lic {
  --mx: 50%; --my: 50%;
  position: relative; border-radius: 26px; padding: 30px; display: flex; flex-direction: column; gap: 22px; overflow: hidden; isolation: isolate;
  background: var(--bg-2); border: 1px solid var(--line);
}
.lic::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .0; transition: opacity .3s; background: radial-gradient(600px circle at var(--mx) var(--my), color-mix(in oklab, var(--teal) 22%, transparent), transparent 40%); }
.lic:hover::before { opacity: 1; }
.lic .top { display: flex; justify-content: space-between; align-items: center; }
.lic .lvl { font: 500 11px/1 var(--f-mono); letter-spacing: .16em; color: var(--muted); text-transform: uppercase; }
.lic h3 { font: 800 30px/1 var(--f-display); margin: 0; letter-spacing: -.03em; }
.lic .price { font: 900 clamp(54px, 5.6vw, 82px)/.9 var(--f-display); letter-spacing: -.05em; }
.lic .price small { font: 600 16px/1 var(--f-mono); letter-spacing: 0; color: var(--muted); margin-left: 6px; }
.lic .disc { display: inline-flex; padding: 8px 12px; border-radius: 10px; background: color-mix(in oklab, var(--teal) 16%, transparent); color: var(--teal); font: 700 13px/1.3 var(--f-mono); }
.lic ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; flex: 1; }
.lic li { display: flex; gap: 12px; align-items: start; font-size: 15px; }
.lic li svg { flex: none; width: 18px; height: 18px; margin-top: 3px; color: var(--teal); }
.lic li.off { color: var(--muted); opacity: .45; text-decoration: line-through; }
.lic li.off svg { color: var(--muted); }
.lic .chipline { height: 48px; border-radius: 12px; background: repeating-linear-gradient(90deg, var(--line-2) 0 2px, transparent 2px 7px); opacity: .5; }
.lic.premium { background: linear-gradient(150deg, #2a0f36 0%, #13111a 50%, #0c2f2b 100%); border-color: rgba(179,106,230,.5); color: #f2eff7; --muted: #bdb6cc; }
.lic.premium::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; mix-blend-mode: screen; opacity: .35;
  background: linear-gradient(115deg, transparent 30%, rgba(92,224,208,.5) 45%, rgba(179,106,230,.5) 55%, transparent 70%) var(--mx) 0 / 250% 100%; }
.lic.premium .flag { position: absolute; top: 20px; right: -36px; transform: rotate(45deg); background: var(--teal); color: #071512; font: 700 11px/1 var(--f-mono); letter-spacing: .12em; padding: 8px 40px; }
@media (max-width: 1000px) { .tiers { grid-template-columns: 1fr; } }

.timing { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: #0b0a0f; color: #f2eff7; font-family: var(--f-mono); }
.timing .hd, .timing .r { display: grid; grid-template-columns: 40px minmax(0, 1fr) 90px auto; gap: 18px; align-items: center; padding: 16px 22px; }
.timing .hd { font-size: 11px; letter-spacing: .16em; color: #a7a1b4; background: #13111a; text-transform: uppercase; }
.timing .r { border-top: 1px solid rgba(255,255,255,.07); font-size: 15px; transition: background .2s; }
.timing .r:hover { background: rgba(92,224,208,.06); }
.timing .r .pos { color: #a7a1b4; }
.timing .r .nm { font-family: var(--f-body); font-weight: 600; font-size: 16px; }
.timing .r .pr { font-weight: 700; font-size: 18px; color: #5ce0d0; text-align: right; min-width: 9ch; }
.timing .r .bar { width: 90px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.timing .r .bar i { display: block; height: 100%; background: linear-gradient(90deg, #5ce0d0, #b36ae6); transform-origin: 0 50%; }
@media (max-width: 600px) { .timing .r .bar, .timing .hd .b { display: none; } .timing .hd, .timing .r { grid-template-columns: 36px 1fr auto; gap: 10px; padding: 14px 16px; } }

.compare { width: 100%; border-collapse: collapse; font-size: 15px; }
.compare th, .compare td { padding: 16px 12px; border-bottom: 1px solid var(--line); text-align: center; }
.compare th:first-child, .compare td:first-child { text-align: left; }
.compare thead th { font: 700 14px/1.2 var(--f-display); position: sticky; top: 80px; background: var(--bg); }
.compare td svg { width: 18px; height: 18px; color: var(--teal); }
.compare td.no { color: var(--muted); opacity: .5; }
.table-wrap { overflow-x: auto; }

/* ---------- events ---------- */
.cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.cal .dow { font: 500 11px/1 var(--f-mono); letter-spacing: .14em; color: var(--muted); text-align: center; padding: 8px 0; }
.cal .d { position: relative; aspect-ratio: 1.25; border-radius: 12px; border: 1px solid var(--line); background: var(--bg-2); display: flex; flex-direction: column; justify-content: space-between; padding: 8px 10px; font: 700 16px/1 var(--f-mono); color: var(--muted); }
.cal .d.out { opacity: .3; background: transparent; }
.cal .d.has { color: var(--ink); cursor: pointer; border-color: var(--line-2); transition: .2s; }
.cal .d.has:hover, .cal .d.sel { border-color: var(--teal); background: color-mix(in oklab, var(--teal) 12%, var(--bg-2)); }
.cal .d .dots { display: flex; gap: 4px; flex-wrap: wrap; }
.cal .d .dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); }
.cal .d .dots i.off { background: var(--violet); }
.cal .d .dots i.trip { background: var(--amber); }
.cal .d.today::after { content: "сегодня"; position: absolute; top: 8px; right: 8px; font: 500 9px/1 var(--f-mono); color: var(--teal); letter-spacing: .06em; }
@media (max-width: 600px) { .cal .d { aspect-ratio: 1; padding: 5px; font-size: 13px; } .cal .d .dots i { width: 6px; height: 6px; } .cal .d.today::after { display: none; } }
.legend { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; color: var(--muted); margin-top: 16px; }
.legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 40px 0 26px; }
.filters button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--line-2); background: none; font-weight: 600; font-size: 14px; cursor: pointer; transition: .2s; }
.filters button[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.ev-list { display: grid; gap: 14px; }
.ev { display: grid; grid-template-columns: 110px 260px 1fr auto; gap: 26px; align-items: center; padding: 14px; padding-right: 26px; border-radius: 22px; background: var(--bg-2); border: 1px solid var(--line); transition: border-color .3s, transform .4s var(--ease); scroll-margin-top: 100px; }
.ev:hover { border-color: var(--line-2); }
.ev.flash { border-color: var(--teal); }
.ev.hidden { display: none; }
.ev .day { text-align: center; }
.ev .day b { display: block; font: 900 54px/1 var(--f-display); letter-spacing: -.05em; }
.ev .day span { font: 500 12px/1 var(--f-mono); letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.ev img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 14px; }
.ev h3 { font: 700 clamp(19px, 1.7vw, 24px)/1.15 var(--f-display); letter-spacing: -.015em; margin: 8px 0 8px; }
.ev p { margin: 0; color: var(--muted); font-size: 15px; }
.ev .when { font: 500 13px/1.3 var(--f-mono); color: var(--teal); }
.ev .side { display: grid; gap: 10px; justify-items: end; text-align: right; }
.ev .price { font: 800 22px/1 var(--f-display); white-space: nowrap; }
@media (max-width: 1000px) { .ev { grid-template-columns: 80px 1fr; padding-right: 14px; } .ev img { grid-column: 1 / -1; grid-row: 1; } .ev .day b { font-size: 40px; } .ev .side { grid-column: 1 / -1; justify-items: start; text-align: left; grid-auto-flow: column; justify-content: space-between; align-items: center; } }
.note-card { padding: clamp(24px, 3vw, 40px); display: grid; grid-template-columns: auto 1fr auto; gap: 26px; align-items: center; }
.note-card .ic { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; background: color-mix(in oklab, var(--violet) 20%, transparent); color: var(--violet); }
.note-card .ic svg { width: 30px; height: 30px; }
@media (max-width: 800px) { .note-card { grid-template-columns: 1fr; } }

/* ---------- gallery ---------- */
.masonry { columns: 3 300px; column-gap: 14px; }
.masonry button { display: block; width: 100%; margin: 0 0 14px; padding: 0; border: 0; border-radius: 16px; overflow: hidden; cursor: zoom-in; background: var(--bg-2); position: relative; break-inside: avoid; }
.masonry img { width: 100%; height: auto; transition: transform .8s var(--ease), filter .4s; }
.masonry button:hover img { transform: scale(1.04); }
.masonry button::after { content: attr(data-n); position: absolute; left: 12px; top: 12px; font: 500 11px/1 var(--f-mono); letter-spacing: .1em; color: #fff; padding: 6px 8px; border-radius: 6px; background: rgba(0,0,0,.45); }
dialog.lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100dvh; margin: 0; }
dialog.lightbox::backdrop { background: rgba(5,4,8,.92); }
.lightbox .wrapbox { position: absolute; inset: 0; display: grid; place-items: center; padding: 70px 70px; }
.lightbox img { max-width: 100%; max-height: 100%; border-radius: 12px; object-fit: contain; }
.lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(11,10,15,.6); color: #fff; cursor: pointer; font-size: 22px; }
.lightbox .x { top: 16px; right: 16px; }
.lightbox .prev { left: 16px; top: 50%; margin-top: -26px; }
.lightbox .next { right: 16px; top: 50%; margin-top: -26px; }
.lightbox .cnt { position: absolute; bottom: 20px; left: 0; right: 0; text-align: center; font: 500 12px/1 var(--f-mono); letter-spacing: .14em; color: #a7a1b4; }
@media (max-width: 600px) { .lightbox .wrapbox { padding: 70px 10px; } .lightbox .prev, .lightbox .next { top: auto; bottom: 10px; margin: 0; } }

/* ---------- contacts ---------- */
.contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ctile { padding: 26px; display: grid; gap: 30px; align-content: space-between; min-height: 220px; text-decoration: none; transition: border-color .3s, transform .4s var(--ease); }
a.ctile:hover { border-color: var(--teal); }
.ctile .k { font: 500 11px/1 var(--f-mono); letter-spacing: .16em; color: var(--muted); text-transform: uppercase; }
.ctile .v { font: 700 clamp(16px, 1.3vw, 19px)/1.3 var(--f-display); letter-spacing: -.01em; overflow-wrap: anywhere; }
.ctile svg { width: 26px; height: 26px; color: var(--teal); }
@media (max-width: 1000px) { .contact-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .contact-grid { grid-template-columns: 1fr; } }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 54px 1fr 32px; gap: 14px; align-items: center; padding: 26px 0; font: 700 clamp(18px, 1.7vw, 23px)/1.25 var(--f-display); }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary .t { font: 700 13px/1 var(--f-mono); color: var(--teal); }
.faq-list summary .pm { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; font: 400 20px/1 var(--f-body); transition: transform .3s var(--ease); }
.faq-list details[open] summary .pm { transform: rotate(45deg); background: var(--teal); color: #071512; border-color: var(--teal); }
.faq-list details p { margin: 0 0 26px 68px; color: var(--muted); max-width: 66ch; }
@media (max-width: 700px) { .faq-list details p { margin-left: 0; } }
.two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 90px); }
@media (max-width: 900px) { .two { grid-template-columns: 1fr; } }
