/* =========================================================
   PAINMED v8 — «Центральная школа коморбидной патологии»
   Дополнения к painmed-v8.css (главная школы + страницы дней)
   ========================================================= */

.block{ padding-block:64px; }
@media (max-width:720px){
  .block{ padding-block:48px; }
}

.nav a.active{ color:var(--ink); }
.nav a.active::after{ right:0; }

/* ---------- компактная шапка ---------- */
.topbar-inner{ height:54px; }
.logo img{ height:29px; }
.btn-top{ padding:9px 18px; }

/* ---------- hero ---------- */
.page-hero .lede{ max-width:560px; }
.hero-sub{
  font-family:var(--serif); font-style:italic; font-size:21px;
  color:var(--wine); margin:-8px 0 16px;
}
.hero-note{
  display:inline-flex; align-items:baseline; gap:10px;
  margin-top:26px; padding:12px 16px;
  background:var(--card); border:1px dashed var(--line-2); border-radius:var(--r-sm);
  font-size:13.5px; color:var(--muted); line-height:1.5; max-width:520px;
}
.hero-note .plus{ color:var(--accent); font-weight:800; }

/* компактный билет */
.page-hero .ticket{ align-self:start; }
.page-hero .ticket-top{ padding:14px 22px 9px; }
.page-hero .ticket-head{ margin-bottom:9px; }
.page-hero .ticket h3{ font-size:19px; margin-bottom:9px; }
.page-hero .ticket-meta{ grid-template-columns:repeat(3,1fr); column-gap:18px; }
.page-hero .tm{ padding:5px 0; }
.page-hero .tm .val{ font-size:13.5px; }
.page-hero .tm-wide{ grid-column:auto; }
.page-hero .ticket-stub{ padding:10px 22px 12px; }
.page-hero .ticket-stub .cap{ margin-bottom:6px; }
.page-hero .cd-grid{ gap:6px; margin-bottom:8px; }
.page-hero .cd-cell{ padding:5px 4px; }
.page-hero .cd-cell .v{ font-size:18px; }
.page-hero .cd-cell .l{ margin-top:4px; font-size:8.5px; }
.page-hero .watch{ padding:10px; font-size:13.5px; }
.watch.wine{ background:var(--wine); box-shadow:0 8px 22px rgba(109,18,28,0.25); }
.watch.wine:hover{ background:#540E16; }

/* ---------- широкая карточка-принцип ---------- */
.principle{
  display:flex; align-items:flex-start; gap:26px;
  margin-top:26px; padding:28px 32px;
  background:var(--mint-2); border:1px dashed var(--line-2); border-radius:var(--r);
}
body.flat .principle{ background:var(--paper-2); }
.principle .cat-ico{ background:var(--card); color:var(--wine); }
.principle h3{ font-family:var(--display); font-weight:700; font-size:21px; letter-spacing:-0.02em; margin-bottom:8px; }
.principle p{ font-size:15px; line-height:1.65; color:var(--ink-soft); max-width:820px; }

/* ---------- маршрут школы ---------- */
.route-list{ border-top:1px dashed var(--line-2); counter-reset:route; }
.route-row{
  display:grid; grid-template-columns:170px 1fr auto;
  gap:26px; align-items:center;
  padding:22px 20px; margin-inline:-20px;
  border-bottom:1px dashed var(--line-2);
  transition:background .25s, box-shadow .25s;
}
.route-row:hover{ background:var(--card); box-shadow:var(--shadow); }
.route-when{ display:flex; flex-direction:column; gap:5px; }
.route-when .d{
  font-family:var(--mono); font-size:14px; font-weight:600;
  color:var(--accent-d); letter-spacing:0.02em; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.route-when .n{
  font-size:10px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--faint);
}
.route-city h3{
  font-family:var(--display); font-weight:700; font-size:24px;
  letter-spacing:-0.02em; line-height:1.25; margin-bottom:4px;
}
.route-city .venue{ font-size:13.5px; color:var(--muted); line-height:1.55; }
.route-city .extra{
  display:inline-flex; margin-top:7px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em;
  color:var(--wine); border:1px solid rgba(109,18,28,0.3); border-radius:3px;
  padding:3px 9px;
}
.route-go{
  display:inline-flex; align-items:center; gap:9px;
  font-size:12px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent-d); white-space:nowrap;
  border:1.5px solid var(--line-2); border-radius:var(--r-pill);
  padding:11px 20px; transition:border-color .2s, background .2s, color .2s;
}
.route-row:hover .route-go{ border-color:var(--accent); background:var(--card); }
.route-go:hover{ border-color:var(--accent); color:var(--accent-d); }

/* ---------- темы ---------- */
.topics-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.topic-card{
  position:relative; display:flex; flex-direction:column; gap:12px;
  background:var(--card);
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:26px 26px;
  border:1px solid var(--line-2); box-shadow:var(--shadow);
  padding:26px 28px 22px;
}
.topic-card .chip{ align-self:flex-start; }
.topic-card h3{
  font-family:var(--display); font-weight:700; font-size:21px;
  line-height:1.3; letter-spacing:-0.02em; text-wrap:balance;
}
.topic-card p{ font-size:14.5px; line-height:1.62; color:var(--muted); }
.topic-card .foot{
  margin-top:auto; padding-top:14px; border-top:1px dashed var(--line);
  font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--faint);
}

/* ---------- программа дня ---------- */
.program-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.program-list{ border-top:1px dashed var(--line-2); }
.program-row{
  display:grid; grid-template-columns:150px 1fr auto;
  gap:26px; align-items:baseline;
  padding:22px 20px; margin-inline:-20px;
  border-bottom:1px dashed var(--line-2);
  transition:background .25s, box-shadow .25s;
}
.program-row:hover{ background:var(--card); box-shadow:var(--shadow); }
.program-row .time{
  font-family:var(--mono); font-size:14px; font-weight:600;
  color:var(--accent-d); letter-spacing:0.02em; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.program-row h3{
  font-family:var(--display); font-weight:700; font-size:20px;
  letter-spacing:-0.02em; line-height:1.3; margin-bottom:5px; text-wrap:balance;
}
.program-row .who{
  font-size:13px; font-weight:600; color:var(--wine); line-height:1.55; margin-bottom:5px;
}
.program-row p{ font-size:14px; line-height:1.6; color:var(--muted); max-width:640px; }
.program-row .chip{ white-space:nowrap; }

/* ---------- страница дня ---------- */
.day-hero{ padding-top:34px; padding-bottom:8px; }
.day-hero .kicker{ margin-bottom:16px; }
.day-hero h1{
  font-family:var(--display); font-weight:700;
  font-size:clamp(36px, 3.8vw, 52px);
  line-height:1.08; letter-spacing:-0.03em; margin-bottom:12px; text-wrap:balance;
}
.day-hero h1 em{ font-style:italic; color:var(--accent-d); }
.day-hero .day-sub{
  font-family:var(--serif); font-style:italic; font-size:19px;
  color:var(--wine); margin-bottom:22px;
}
.day-meta{
  display:flex; flex-wrap:wrap; gap:0;
  border-block:1px dashed var(--line-2); margin-bottom:22px;
}
.day-meta .dm{
  display:flex; flex-direction:column; gap:4px;
  padding:14px 26px 14px 0; margin-right:26px;
  border-right:1px dashed var(--line);
}
.day-meta .dm:last-child{ border-right:none; margin-right:0; }
.day-meta .k{
  font-size:10px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--faint);
}
.day-meta .v{ font-size:15px; font-weight:700; letter-spacing:-0.01em; }
.day-hero .actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:6px; }

/* переключатель дней */
.day-switch{
  display:grid; grid-template-columns:repeat(6,1fr); gap:10px;
  padding-block:22px;
}
.day-switch a{
  display:flex; flex-direction:column; gap:3px;
  padding:12px 16px;
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--r);
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.day-switch a:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow); }
.day-switch .dn{
  font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:0.14em;
  color:var(--accent-d);
}
.day-switch .dc{ font-family:var(--display); font-weight:700; font-size:14.5px; letter-spacing:-0.01em; color:var(--ink); }
.day-switch a.current{ background:var(--ink); border-color:var(--ink); }
.day-switch a.current .dn{ color:var(--accent-br); }
.day-switch a.current .dc{ color:#fff; }

/* лекторы дня */
.bio-list{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:stretch; }
.bio-card{
  display:flex; gap:20px; align-items:flex-start;
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--r);
  box-shadow:var(--shadow); padding:24px 26px;
}
.bio-card .ava{
  flex:none; width:76px; height:76px; border-radius:var(--r-sm); overflow:hidden;
  background:var(--mint);
  display:flex; align-items:center; justify-content:center;
}
.bio-card .ava img{ width:100%; height:100%; object-fit:cover; }
.bio-card .ava .init{
  font-family:var(--display); font-weight:800; font-size:22px; color:var(--accent-d);
}
.bio-card h3{ font-family:var(--display); font-weight:700; font-size:18.5px; letter-spacing:-0.01em; line-height:1.3; margin-bottom:4px; }
.bio-card .regalia{
  font-size:10.5px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent-d); line-height:1.6; margin-bottom:8px;
}
.bio-card p{ font-size:13.5px; line-height:1.62; color:var(--muted); }

/* prev/next день */
.day-nav{
  display:grid; grid-template-columns:1fr 1fr; gap:22px;
  padding-block:8px 64px;
}
.day-nav a{
  display:flex; flex-direction:column; gap:6px;
  padding:22px 26px;
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--r);
  box-shadow:var(--shadow);
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.day-nav a:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.day-nav a.next{ text-align:right; align-items:flex-end; }
.day-nav a.spacer{ visibility:hidden; pointer-events:none; }
.day-nav .lbl{
  font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--faint);
}
.day-nav .ttl{ font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:-0.01em; color:var(--ink); }
.day-nav .ttl em{ font-style:italic; color:var(--accent-d); }

/* примечание «уточняется» */
.pending-note{
  display:flex; align-items:baseline; gap:10px;
  margin-top:20px; padding:14px 18px;
  background:var(--wine-soft); border:1px dashed rgba(109,18,28,0.3); border-radius:var(--r-sm);
  font-size:13.5px; color:var(--wine); line-height:1.55; max-width:640px;
}

/* ---------- спикеры (главная) ---------- */
.speakers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.speaker-card{
  display:flex; flex-direction:column;
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--r);
  box-shadow:var(--shadow); overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
.speaker-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.speaker-photo{ position:relative; background:var(--mint); aspect-ratio:1/1; flex:none; }
.speaker-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.speaker-photo .role-stamp{
  position:absolute; left:10px; bottom:10px; z-index:2;
  background:var(--card); border:1.5px solid var(--wine); color:var(--wine);
  font-family:var(--mono); font-size:9.5px; font-weight:600; letter-spacing:0.12em;
  padding:4px 8px; border-radius:3px; transform:rotate(-3deg);
}
.speaker-body{ padding:22px 24px 18px; display:flex; flex-direction:column; gap:8px; flex:1; }
.speaker-body h3{ font-family:var(--display); font-weight:700; font-size:21px; letter-spacing:-0.02em; line-height:1.25; }
.speaker-body .regalia{
  font-size:10.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--accent-d); line-height:1.6;
}
.speaker-body p{ font-size:13.5px; line-height:1.6; color:var(--muted); }
.speaker-tags{ display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:12px; border-top:1px dashed var(--line); }
.speaker-tags span{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.03em;
  padding:4px 10px; border-radius:var(--r-pill);
  background:var(--paper); border:1px solid var(--line); color:var(--ink-soft);
}
.speaker-card.pending .speaker-photo{
  display:flex; align-items:center; justify-content:center;
  background:repeating-linear-gradient(-45deg, var(--mint-2) 0 12px, var(--mint) 12px 24px);
}
.speaker-card.pending .speaker-photo .ph{
  font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:var(--muted);
  text-align:center; padding:12px; line-height:1.6;
}
/* компактные карточки региональных спикеров */
.speakers-grid.compact{ grid-template-columns:repeat(4,1fr); margin-top:22px; }
.speakers-grid.compact .speaker-photo{ aspect-ratio:16/9; }
.speakers-grid.compact .speaker-body{ padding:18px 20px 16px; }
.speakers-grid.compact .speaker-body h3{ font-size:17.5px; }

/* ---------- аудитория ---------- */
.audience{ display:flex; flex-wrap:wrap; gap:10px; max-width:900px; }
.audience span{
  font-size:13.5px; font-weight:600; letter-spacing:0.01em;
  padding:9px 18px; border-radius:var(--r-pill);
  background:var(--card); border:1px solid var(--line-2); color:var(--ink-soft);
  transition:border-color .2s, color .2s;
}
.audience span:hover{ border-color:var(--accent); color:var(--accent-d); }

/* ---------- регистрация ---------- */
.reg-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.reg-left .shead{ margin-bottom:28px; }
.reg-perks{ list-style:none; display:flex; flex-direction:column; }
.reg-perks li{
  position:relative; padding:13px 0 13px 32px;
  border-bottom:1px dashed var(--line);
  font-size:15.5px; font-weight:500; color:var(--ink-soft); line-height:1.55;
}
.reg-perks li::before{
  content:'+'; position:absolute; left:0; top:9px;
  font-weight:800; font-size:20px; color:var(--accent);
}
.reg-form{
  position:relative;
  background:var(--card); border:1px solid var(--line-2);
  border-radius:calc(var(--r) + 4px); box-shadow:var(--shadow-lg);
  padding:30px 32px 28px;
}
.reg-form::before{
  content:''; position:absolute; inset:0; border-radius:inherit;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:40px 40px; pointer-events:none;
  -webkit-mask-image:radial-gradient(circle at 85% 0%, #000, transparent 70%);
          mask-image:radial-gradient(circle at 85% 0%, #000, transparent 70%);
}
.reg-form > *{ position:relative; }
.reg-form .stamp{
  position:absolute; top:-13px; right:22px; z-index:2;
  transform:rotate(-5deg);
  background:var(--card); border:1.5px solid var(--wine); color:var(--wine);
  font-family:var(--mono); font-size:9.5px; font-weight:600; letter-spacing:0.12em;
  padding:5px 9px; border-radius:3px;
}
.reg-form h3{ font-family:var(--display); font-weight:700; font-size:23px; letter-spacing:-0.02em; }
.reg-form .sub{ font-size:13px; color:var(--muted); margin:6px 0 22px; }
.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.field label{
  font-size:10.5px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--muted);
}
.field input, .field select{
  font-family:var(--sans); font-size:15px; color:var(--ink);
  background:var(--paper); border:1px solid var(--line-2); border-radius:var(--r-sm);
  padding:13px 15px; outline:none; appearance:none;
  transition:border-color .2s, box-shadow .2s;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2333443E' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center;
}
.field input:focus, .field select:focus{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.field input::placeholder{ color:var(--faint); }
.reg-form .btn-primary{ width:100%; margin-top:6px; }
.reg-legal{
  font-size:11.5px; line-height:1.55; color:var(--faint);
  margin-top:14px; text-align:center;
}
.reg-done{
  display:none; text-align:center; padding:34px 10px 22px;
}
.reg-done .mark{
  width:56px; height:56px; margin:0 auto 18px; border-radius:var(--r-pill);
  background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.reg-done h4{ font-family:var(--display); font-weight:700; font-size:21px; margin-bottom:8px; }
.reg-done p{ font-size:14px; color:var(--muted); line-height:1.6; max-width:320px; margin:0 auto; }
.reg-form.sent form{ display:none; }
.reg-form.sent .reg-done{ display:block; }

/* ---------- FAQ ---------- */
.faq-list{ border-top:1px dashed var(--line-2); max-width:860px; }
.faq-list details{ border-bottom:1px dashed var(--line-2); }
.faq-list summary{
  display:flex; align-items:baseline; gap:18px;
  padding:20px 4px; cursor:pointer; list-style:none;
  font-family:var(--display); font-weight:700; font-size:18px; letter-spacing:-0.01em;
  transition:color .2s;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary:hover{ color:var(--accent-d); }
.faq-list summary .ind{
  margin-left:auto; flex:none;
  font-family:var(--mono); font-weight:500; font-size:18px; color:var(--accent-d);
  transition:transform .25s;
}
.faq-list details[open] summary .ind{ transform:rotate(45deg); }
.faq-list .faq-a{
  padding:0 4px 22px 0; font-size:15px; line-height:1.68; color:var(--muted); max-width:720px;
}

/* ---------- спонсоры ---------- */
.sponsors-row{
  display:grid; grid-template-columns:repeat(5,1fr); gap:14px;
  margin-bottom:22px;
}
.sponsor-logo{
  position:relative; height:104px;
  background:var(--card); border:1px solid var(--line-2); border-radius:var(--r);
  box-shadow:var(--shadow);
  display:flex; align-items:center; justify-content:center; padding:20px 24px;
  transition:transform .25s, box-shadow .25s;
}
.sponsor-logo:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.sponsor-logo img{ max-height:58px; max-width:82%; object-fit:contain; }
.sponsor-note{
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  margin-top:22px; padding:22px 28px;
  background:var(--card); border:1px dashed var(--line-2); border-radius:var(--r);
}
.sponsor-note p{ font-size:14px; line-height:1.6; color:var(--muted); max-width:660px; }
.sponsor-note .benefit-link{ margin-left:auto; white-space:nowrap; }

/* ---------- адаптив ---------- */
@media (max-width:1080px){
  .route-row{ grid-template-columns:130px 1fr; }
  .route-go{ grid-column:2; justify-self:start; }
  .topics-grid{ grid-template-columns:1fr; }
  .speakers-grid{ grid-template-columns:1fr 1fr; }
  .speakers-grid.compact{ grid-template-columns:1fr 1fr; }
  .reg-grid{ grid-template-columns:1fr; gap:44px; }
  .program-row{ grid-template-columns:110px 1fr; }
  .program-row .chip{ grid-column:2; justify-self:start; }
  .day-switch{ grid-template-columns:repeat(3,1fr); }
  .bio-list{ grid-template-columns:1fr; }
  .sponsors-row{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:720px){
  .page-hero .ticket-meta{ grid-template-columns:1fr 1fr; }
  .route-row{ grid-template-columns:1fr; gap:10px; padding:18px 16px; margin-inline:-16px; }
  .route-go{ grid-column:1; }
  .program-row{ grid-template-columns:1fr; gap:8px; padding:18px 16px; margin-inline:-16px; }
  .speakers-grid{ grid-template-columns:1fr; }
  .speakers-grid.compact{ grid-template-columns:1fr; }
  .principle{ flex-direction:column; }
  .day-switch{ grid-template-columns:1fr 1fr; }
  .day-meta .dm{ padding-right:16px; margin-right:16px; }
  .day-nav{ grid-template-columns:1fr; }
  .reg-form{ padding:26px 22px 24px; }
  .sponsor-note .benefit-link{ margin-left:0; }
  .sponsors-row{ grid-template-columns:1fr 1fr; }
  .sponsor-logo{ height:88px; }
}
