/* Публичная часть — стили согласованного прототипа (prototype/index.template.html).
   Токены — tokens.css, шрифты — fonts.css, базовые компоненты — components.css.
   Владелец — агент B. */
:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 64px); -webkit-text-size-adjust:100%}
body{margin:0; background:var(--bg); color:var(--text); font:400 16px/24px var(--font-sans)}
img{max-width:100%}
button{font:inherit; color:inherit}
:focus-visible{outline:2px solid var(--focus); outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1280px; margin:0 auto; padding:0 var(--space-4)}
@media (min-width:768px){ .wrap{padding:0 var(--space-8)} }

/* ===== Компоненты из bundle.css дизайн-системы ===== */
.eb-display{font-family:var(--font-display);text-transform:uppercase;font-weight:400;color:var(--heading);margin:0;letter-spacing:.01em}
.eb-label{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;margin:0}
.eb-caption{font:400 12px/16px var(--font-sans);color:var(--text-muted);margin:0}
.eb-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-6);font:700 16px/24px var(--font-sans);border:2px solid transparent;border-radius:0;cursor:pointer;text-decoration:none}
.eb-btn--primary{background:var(--accent);color:var(--on-accent)}
.eb-btn--primary:hover{background:var(--heading);color:var(--bg)}
.eb-btn--secondary{background:transparent;color:var(--link);border-color:var(--link)}
.eb-btn--secondary:hover{background:var(--link);color:var(--bg)}
.eb-btn--ghost{background:transparent;color:var(--link);padding:0 var(--space-2);text-decoration:underline;text-underline-offset:3px}
.eb-btn[disabled]{background:var(--surface-muted);color:var(--text-muted);border-color:transparent;cursor:not-allowed}
.eb-btn--block{width:100%}
.eb-band{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;background:var(--band);color:var(--on-band);padding:var(--space-2) var(--space-4)}
.eb-band__title{font:400 24px/28px var(--font-display);text-transform:uppercase;letter-spacing:.02em}
.eb-band__sub{font:400 14px/20px var(--font-display);text-transform:uppercase;letter-spacing:.04em;opacity:.9}
.eb-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 10px;border-radius:var(--radius-pill);font:700 12px/16px var(--font-sans);letter-spacing:.02em;border:1px solid currentColor;white-space:nowrap}
.eb-chip--open{color:var(--success)} .eb-chip--low{color:var(--warning)} .eb-chip--full{color:var(--danger)} .eb-chip--closed{color:var(--text-muted)}
.eb-stepper{display:inline-flex;align-items:center;border:1px solid var(--field-border);border-radius:var(--radius-2);background:var(--surface)}
.eb-stepper button{width:44px;height:44px;border:0;background:transparent;color:var(--link);font:700 20px/1 var(--font-sans);cursor:pointer}
.eb-stepper button:disabled{color:var(--text-muted);opacity:.5;cursor:not-allowed}
.eb-stepper output{min-width:32px;text-align:center;font:700 18px/1 var(--font-sans);font-variant-numeric:tabular-nums}
.eb-field{display:grid;gap:var(--space-2)}
.eb-field__label{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text)}
.eb-field__input{width:100%;min-height:48px;padding:0 var(--space-3);font:400 16px/24px var(--font-sans);color:var(--text);background:var(--surface);border:1px solid var(--field-border);border-radius:var(--radius-2)}
textarea.eb-field__input{padding:var(--space-3);min-height:80px;resize:vertical}
.eb-field__hint{font:400 14px/20px var(--font-sans);color:var(--text-muted);margin:0}
.eb-field--error .eb-field__input{border-color:var(--danger);border-width:2px}
.eb-field--error .eb-field__hint{color:var(--danger)}
.eb-ticket{display:grid;grid-template-columns:1fr auto;background:var(--eb-white);color:var(--eb-black);border:1px solid var(--hairline);max-width:620px;width:100%}
.eb-ticket__head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:linear-gradient(160deg,var(--kv-top),var(--kv-mid) 55%,var(--kv-bottom));color:var(--eb-white)}
.eb-ticket__head img{height:40px;width:auto}
.eb-ticket__body{padding:var(--space-4);display:grid;gap:var(--space-2);min-width:0;align-content:start}
.eb-ticket__film{font:400 28px/30px var(--font-display);text-transform:uppercase;color:var(--eb-ink-blue);margin:0}
.eb-ticket__seats{font:700 20px/26px var(--font-sans);margin:0}
.eb-ticket__qr{padding:var(--space-4);border-left:1px dashed var(--eb-gray);display:grid;justify-items:center;align-content:center;gap:var(--space-2)}
.eb-ticket__qr svg{width:156px;height:156px;display:block}
.eb-ticket__code{font:700 16px/20px var(--font-sans);letter-spacing:.08em;font-variant-numeric:tabular-nums}
.eb-ticket__note{grid-column:1/-1;padding:var(--space-3) var(--space-4);border-top:1px solid var(--eb-hairline);font:400 14px/20px var(--font-sans);color:var(--eb-gray)}
.eb-ticket .t-muted{color:var(--eb-gray)}
@media (max-width:480px){.eb-ticket{grid-template-columns:1fr}.eb-ticket__qr{border-left:0;border-top:1px dashed var(--eb-gray)}}

/* ===== Шапка-приглашение ===== */
.hero{position:relative;overflow:hidden;color:var(--eb-white);
  background:linear-gradient(170deg,var(--kv-top) 0%,var(--kv-mid) 52%,var(--kv-bottom) 100%)}
/* световой луч, как в ключевом визуале */
.hero::before{content:"";position:absolute;inset:-40% -10% auto auto;width:70%;height:180%;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 48%,rgba(123,209,240,.10) 56%,transparent 70%);
  transform:rotate(8deg);pointer-events:none}
.hero__top{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding-top:var(--space-4)}
.hero__en{height:34px;width:auto}
@media (min-width:768px){.hero__en{height:44px}}
.lang{display:inline-flex;border:1px solid rgba(255,255,255,.7)}
.lang button{min-width:44px;min-height:36px;border:0;background:transparent;color:var(--eb-white);font:700 14px/1 var(--font-sans);letter-spacing:.06em;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--eb-white);color:var(--kv-mid)}
.hero__main{position:relative;display:grid;justify-items:center;text-align:center;gap:var(--space-4);padding-top:var(--space-6);padding-bottom:var(--space-8)}
.hero__logo{width:min(300px,72vw);height:auto}
.hero__dates{font:400 56px/56px var(--font-display);letter-spacing:.01em;margin:0}
@media (min-width:768px){.hero__dates{font-size:80px;line-height:80px}}
.hero__venue{font:700 16px/24px var(--font-sans);margin:0}
.hero__addr{font:400 14px/20px var(--font-sans);margin:0;color:var(--eb-sky-soft)}
.hero__invite{display:inline-flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;justify-content:center;margin-top:var(--space-2);
  padding:var(--space-2) var(--space-4);border:1px solid rgba(255,255,255,.55)}
.hero__invite b{font:400 20px/24px var(--font-display);letter-spacing:.03em;text-transform:uppercase}
.hero__intro{max-width:560px;margin:0;font:400 16px/24px var(--font-sans);color:var(--eb-white)}

/* ===== Навигация по дням ===== */
.days{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--hairline);
  padding-top:env(safe-area-inset-top,0px);margin-top:calc(-1 * env(safe-area-inset-top,0px))}
.days__row{display:flex;gap:var(--space-2);overflow-x:auto;padding-top:var(--space-2);padding-bottom:var(--space-2);scrollbar-width:none}
.days__row::-webkit-scrollbar{display:none}
.days a{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px;min-height:44px;padding:var(--space-2) var(--space-3);
  text-decoration:none;color:var(--link);border:1px solid var(--hairline)}
.days a b{font:400 22px/26px var(--font-display)}
.days a span{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.days a.is-active{background:var(--accent);border-color:var(--accent)}
.days a.is-active b,.days a.is-active span{color:var(--on-accent)}

/* ===== Сетка постеров ===== */
.day{margin-top:var(--space-8)}
.day__grid--few{max-width:720px}
.day__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-4);padding:var(--space-4) 0 0}
@media (min-width:768px){.day__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1024px){.day__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-8) var(--space-6)}}
@media (min-width:1440px){.day__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.card{display:grid;gap:var(--space-2);align-content:start;text-align:left;padding:0;border:0;background:transparent;cursor:pointer;color:var(--text)}
.card__poster{position:relative;outline:3px solid transparent;outline-offset:3px;transition:outline-color .15s}
.card:hover .card__poster{outline-color:var(--hairline)}
.card.is-selected .card__poster{outline-color:var(--accent)}
.card__badge{position:absolute;left:0;bottom:0;background:var(--accent);color:var(--on-accent);font:700 13px/18px var(--font-sans);padding:6px 10px}
.card__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}
.card__time{font:400 28px/28px var(--font-display);color:var(--link)}
.card__title{font:700 15px/20px var(--font-sans);text-transform:uppercase;margin:0;overflow-wrap:anywhere}
.card.is-full .card__title{color:var(--text-muted)}
.card__row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.card .eb-chip{white-space:normal}
.eb-field__note{font:italic 400 14px/20px var(--font-sans);text-transform:none;letter-spacing:0;color:var(--text-muted)}
.hero__scope{font:400 28px/32px var(--font-display);text-transform:uppercase;letter-spacing:.02em;margin:0;padding:var(--space-2) var(--space-4);background:rgba(255,255,255,.14);border-left:4px solid var(--eb-sky)}

/* ===== Постер-заглушка (заменяется постером из каталога) ===== */
.poster{container-type:inline-size;position:relative;aspect-ratio:2/3;overflow:hidden;color:var(--eb-white);display:flex;flex-direction:column;justify-content:space-between;
  padding:var(--space-3);background:var(--eb-navy)}
.poster::after{content:"";position:absolute;inset:0;pointer-events:none}
.poster > *{position:relative;z-index:1}
.poster__prog{font:700 10px/13px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;opacity:.9;max-width:92%;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.poster__titles{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:.3em;overflow:hidden;padding:var(--space-2) 6px var(--space-2) 0}
.poster__title{font-family:var(--font-display);font-weight:400;font-size:24px;line-height:1.12;text-transform:uppercase;letter-spacing:.01em;margin:0;hyphens:none;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.poster__title--ev{font-size:15px;opacity:.95}
.poster__plus{font-family:var(--font-display);font-size:15px;line-height:1;color:var(--eb-sky)}
.poster__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-2);font:400 14px/16px var(--font-display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.poster__date{font:400 26px/26px var(--font-display)}
.poster--lg .poster__prog{font-size:12px;line-height:16px}
.poster--lg{padding:var(--space-4)}
/* реальный постер */
.poster--img{padding:0;background:var(--eb-deep)}
.poster--img::after{display:none}
.poster__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.poster--card .poster__img{object-fit:contain;background:#000}
.poster__inset{position:absolute;right:8px;bottom:8px;width:38%;aspect-ratio:2/3;object-fit:cover;border:3px solid var(--eb-white);z-index:2}
.poster__event{position:absolute;left:0;right:0;top:0;z-index:2;background:var(--eb-blue);color:var(--eb-white);font:400 15px/18px var(--font-display);letter-spacing:.04em;text-transform:uppercase;padding:6px 10px}
.poster--lg .poster__event{font-size:20px;line-height:24px;padding:8px 12px}
.age{display:inline-flex;align-items:center;padding:1px 8px;border:1px solid var(--text-muted);border-radius:var(--radius-pill);font:700 12px/16px var(--font-sans);color:var(--text-muted)}
.film{display:grid;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--hairline)}
.film__head{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);align-items:start}
.film__thumb{width:64px;aspect-ratio:2/3;object-fit:cover;border:1px solid var(--hairline)}
.film__title{font:400 24px/26px var(--font-display);text-transform:uppercase;color:var(--heading);margin:0}
.film__meta{font:400 14px/20px var(--font-sans);color:var(--text-muted);margin:0}
.film__syn{margin:0;max-width:62ch}
.event-note{margin:0;padding:var(--space-3);background:var(--surface-muted);font:700 14px/20px var(--font-sans)}
/* палитры по программам */
.poster--main{background:linear-gradient(165deg,var(--kv-top),var(--kv-mid) 60%,var(--kv-bottom))}
.poster--main::after{background:linear-gradient(118deg,transparent 40%,rgba(255,255,255,.18) 52%,transparent 64%)}
.poster--doc{background:var(--eb-blue)}
.poster--doc::after{background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(255,255,255,.07) 22px 23px)}
.poster--ru{background:var(--eb-navy)}
.poster--ru::after{background:radial-gradient(120% 60% at 110% 105%,rgba(123,209,240,.35),transparent 60%)}
.poster--su{background:var(--eb-deep)}
.poster--su::after{background:linear-gradient(90deg,transparent 0 12px,rgba(123,209,240,.25) 12px 16px,transparent 16px),
  linear-gradient(90deg,transparent calc(100% - 16px),rgba(123,209,240,.25) calc(100% - 16px) calc(100% - 12px),transparent calc(100% - 12px))}
.poster--cer{background:linear-gradient(180deg,var(--kv-top),var(--kv-mid) 45%,var(--kv-bottom))}
.poster--cer::after{background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.28) 46%,rgba(123,209,240,.12) 55%,transparent 70%)}

/* ===== Модальное окно фильма ===== */
.modal{position:fixed;inset:0;z-index:50;display:none}
.modal.is-open{display:block}
.modal__backdrop{position:absolute;inset:0;background:rgba(5,55,126,.72)}
.modal__panel{position:absolute;inset:0;background:var(--bg);overflow-y:auto;overscroll-behavior:contain;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.modal__close{position:sticky;top:0;z-index:3;display:flex;justify-content:flex-end;padding:var(--space-2);pointer-events:none}
.modal__close button{pointer-events:auto;width:48px;height:48px;border:0;background:var(--surface);color:var(--text);font:400 28px/1 var(--font-sans);cursor:pointer;border:1px solid var(--hairline)}
.modal__grid{display:grid;gap:var(--space-6);padding:0 var(--space-4) var(--space-8);margin-top:-56px}
.modal__poster{max-width:220px;width:52%;justify-self:center}
.modal__info{display:grid;gap:var(--space-4);align-content:start}
.modal__title{font:400 36px/38px var(--font-display);text-transform:uppercase;color:var(--heading);margin:0;letter-spacing:.01em}
.modal__en{font:400 14px/20px var(--font-sans);color:var(--text-muted);margin:0;text-transform:uppercase;letter-spacing:.03em}
.modal__annot{margin:0;max-width:60ch}
.annot-ph{color:var(--text-muted);font-style:italic}
.sess{border:1px solid var(--hairline);background:var(--surface)}
.sess__head{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:center;padding:var(--space-4);border-bottom:1px solid var(--hairline)}
.sess__when{font-family:var(--font-display);color:var(--heading);line-height:1}
.sess__date{font-size:40px;display:block}
.sess__time{font-size:26px;color:var(--link)}
.sess__where{font:400 14px/20px var(--font-sans);color:var(--text-muted);margin:0}
.sess__where b{color:var(--text);font-weight:700}
.sess__body{display:grid;gap:var(--space-4);padding:var(--space-4)}
.sess__pick{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.sess__body > .eb-chip{justify-self:start}
.sess__actions{display:grid;gap:var(--space-2)}
@media (max-width:767px){.sess__actions{position:sticky;bottom:0;background:var(--surface);padding:var(--space-3) 0 calc(var(--space-3) + env(safe-area-inset-bottom,0px));margin-bottom:calc(-1 * var(--space-4))}}
.warn{display:flex;gap:var(--space-2);padding:var(--space-3);border-left:4px solid var(--warning);background:var(--surface-muted);font:400 14px/20px var(--font-sans);margin:0}
.warn b{color:var(--warning)}
@media (min-width:768px){
  .modal__panel{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(960px,calc(100vw - 64px));max-height:calc(100% - 64px);
    border:1px solid var(--hairline);padding:0}
  .modal__grid{grid-template-columns:320px 1fr;gap:var(--space-8);padding:0 var(--space-8) var(--space-8)}
  .modal__poster{width:100%;max-width:none;justify-self:stretch;position:sticky;top:var(--space-4);align-self:start}
}

/* ===== Нижняя панель заявки ===== */
.basket{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:2px solid var(--accent);
  padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(110%);visibility:hidden;transition:transform .2s,visibility .2s}
.basket.is-shown{transform:none;visibility:visible}
.basket__in{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);max-width:1280px;margin:0 auto}
.basket__sum{margin:0;font:700 16px/22px var(--font-sans)}
.basket__sum span{display:block;font:400 14px/20px var(--font-sans);color:var(--text-muted)}
body.has-basket main{padding-bottom:110px}

/* ===== Экраны оформления ===== */
.screen{max-width:640px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-12)}
.screen--wide{max-width:720px}
.back{display:inline-flex;align-items:center;min-height:44px;color:var(--link);font:700 14px/20px var(--font-sans);text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}
.screen h1{font:400 36px/38px var(--font-display);text-transform:uppercase;color:var(--heading);margin:var(--space-4) 0 var(--space-2);letter-spacing:.01em}
.screen .lead{margin:0 0 var(--space-6);color:var(--text-muted)}
.sec-title{font:400 24px/28px var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--heading);margin:var(--space-8) 0 var(--space-3)}
.rows{border-top:1px solid var(--hairline)}
.row{display:grid;grid-template-columns:64px 1fr;gap:var(--space-2) var(--space-4);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--hairline)}
.row__when{font-family:var(--font-display);color:var(--heading);line-height:1}
.row__when b{display:block;font-weight:400;font-size:28px}
.row__when span{font-size:18px;color:var(--link)}
.row__title{font:700 15px/20px var(--font-sans);text-transform:uppercase;margin:0}
.row__side{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}
@media (min-width:560px){.row{grid-template-columns:72px 1fr auto}.row__side{grid-column:auto}}
.form{display:grid;gap:var(--space-6)}
.form__two{display:grid;gap:var(--space-6)}
@media (min-width:560px){.form__two{grid-template-columns:1fr 1fr;gap:var(--space-4)}}
.check{display:grid;grid-template-columns:28px 1fr;gap:var(--space-3);align-items:start;cursor:pointer;font:400 14px/20px var(--font-sans)}
.check input{width:24px;height:24px;margin:0;accent-color:var(--accent)}
.check a{color:var(--link)}
.check--error span{color:var(--danger)}
.submit{position:sticky;bottom:0;background:var(--bg);padding:var(--space-4) 0 calc(var(--space-4) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hairline);display:grid;gap:var(--space-2)}
.fine{font:400 12px/16px var(--font-sans);color:var(--text-muted);margin:0}
.big-mail{font:700 18px/26px var(--font-sans);overflow-wrap:anywhere}
.stack{display:grid;gap:var(--space-4)}
.tickets{display:grid;gap:var(--space-6);justify-items:center;margin-top:var(--space-6)}
.tkt-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:620px;width:100%}

/* ===== Подвал ===== */
footer{margin-top:var(--space-12);border-top:1px solid var(--hairline);padding:var(--space-6) 0 var(--space-8);font:400 14px/20px var(--font-sans);color:var(--text-muted)}
footer a{color:var(--link)}
.foot{display:grid;gap:var(--space-2)}
@media (min-width:768px){.foot{grid-template-columns:1fr 1fr}}

/* ===== Уведомление ===== */
.toast{position:fixed;left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;z-index:80;
  background:var(--heading);color:var(--bg);padding:var(--space-3) var(--space-4);font:700 14px/20px var(--font-sans);max-width:calc(100% - 32px);transition:.2s;pointer-events:none}
.toast.is-shown{opacity:1;transform:translate(-50%,0)}
body.has-basket .toast{bottom:calc(var(--toast-lift,96px) + env(safe-area-inset-bottom,0px))}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ===== Переключатель языка ссылками (?lang=) вместо кнопок прототипа; высота 44px — по ТЗ 6.9 ===== */
.lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--eb-white);font:700 14px/1 var(--font-sans);letter-spacing:.06em;text-decoration:none}
.lang a[aria-current="true"]{background:var(--eb-white);color:var(--kv-mid)}
.page-msg{max-width:640px;margin:0 auto;padding:var(--space-8) var(--space-4) var(--space-12)}
.page-msg h1{font:400 36px/38px var(--font-display);text-transform:uppercase;color:var(--heading);margin:0 0 var(--space-4);letter-spacing:.01em}
.page-msg p{margin:0 0 var(--space-4)}
.hero--slim .hero__main{padding-bottom:var(--space-6)}

/* ===== Рабочая версия: дополнения к прототипу (агент B) ===== */
[hidden]{display:none!important}
.eb-field{align-content:start}
.eb-field__hint:empty{display:none}
.eb-band__title{margin:0}
.hero__logo{height:auto}
.nowrap-any{overflow-wrap:anywhere}
.stack > p{margin:0}
.noscript{margin-top:var(--space-4)}

/* Узкая шапка экранов после лендинга: RU/EN и знак фестиваля */
.topbar{background:linear-gradient(170deg,var(--kv-top) 0%,var(--kv-mid) 60%,var(--kv-bottom) 100%);color:var(--eb-white)}
.topbar__in{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-2);padding-bottom:var(--space-2)}
.topbar__home{display:inline-flex;align-items:center;min-height:44px}
.topbar__logo{height:32px;width:auto;display:block}

/* Карточка: отменённый сеанс — серый (D-10) */
.card.is-cancelled .card__poster{filter:grayscale(1);opacity:.55}
.card.is-cancelled .card__time{color:var(--text-muted)}
.card.is-full .card__time{color:var(--text-muted)}
/* Ссылка на несколько сеансов: в колонке 720 px не больше трёх карточек — дата и время помещаются в строку */
@media (min-width:768px){.day__grid--few{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Модалка: без прокрутки страницы под ней, высота по видимой области (dvh) */
html.is-modal-open,html.is-modal-open body{overflow:hidden}
@supports (height:100dvh){.modal{height:100dvh;bottom:auto}}
.modal__prog{color:var(--link)}
.modal__title--film{font-size:28px;line-height:30px;margin-top:var(--space-1)}
.modal__en{margin-top:var(--space-2)}
.modal__msg{padding:0 var(--space-4) var(--space-8);margin-top:-40px;min-height:160px;display:grid;align-content:center}
.modal__msg p{margin:0;max-width:52ch;padding-right:56px}
.modal__msg--loading p{color:var(--text-muted)}
@media (min-width:768px){.modal__msg{padding:0 var(--space-8) var(--space-8)}}
.sess__chip{display:flex}
/* Телефон: нижняя панель модалки со степпером и главной кнопкой — всегда на экране */
.modal__bar{display:none}
@media (max-width:767px){
  .modal__bar{display:flex;align-items:center;gap:var(--space-3);position:sticky;bottom:0;z-index:3;background:var(--surface);
    border-top:2px solid var(--accent);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px))}
  .modal__bar .eb-stepper{flex:none}
  .modal__bar .eb-btn{flex:1 1 auto;min-width:0;padding:0 var(--space-3);white-space:normal;text-align:center;line-height:20px}
  .modal .sess__pick,.modal .sess__actions > [data-add],.modal .sess__actions > button[disabled]{display:none}
  .modal .sess__actions{position:static;padding:0;margin:0;background:none}
  .modal__grid{padding-bottom:var(--space-6)}
}
.film__syn + .film__syn{margin-top:var(--space-2)}
/* У фильма двойного показа нет постера — миниатюра-заглушка цветом программы */
.film__thumb--none{display:block;height:auto;position:relative;overflow:hidden}

/* Предупреждения и сообщения: значок + слово, цвет — дополнительно */
.warn p{margin:0}
.warn--danger{border-left-color:var(--danger)}
.warn--danger > b{color:var(--danger)}
.warn:focus{outline:2px solid var(--focus);outline-offset:2px}
.errlist{margin:var(--space-2) 0 0;padding-left:var(--space-6)}
.errlist a{color:var(--link)}
.note{display:flex;gap:var(--space-2);padding:var(--space-3);border-left:4px solid var(--success);background:var(--surface-muted);font:400 14px/20px var(--font-sans);margin:0}
.note > b{color:var(--success)}
.note--error{border-left-color:var(--danger)}
.note--error > b{color:var(--danger)}
.note--warn{border-left-color:var(--warning)}
.note--warn > b{color:var(--warning)}

/* Строки сеансов на оформлении и «Проверьте почту» */
.row__main{min-width:0;display:grid;gap:var(--space-1)}
.row__main > p{margin:0}
.row__prog{color:var(--link)}
.row__warn{color:var(--warning);font-weight:700}
.row__msg{display:flex;gap:6px;margin:var(--space-1) 0 0;font:400 14px/20px var(--font-sans)}
.row__msg--bad > b{color:var(--danger)}
.row__msg--warn > b{color:var(--warning)}
.row__msg--ok{color:var(--success);font-weight:700}
.row--off .row__title,.row--off .row__when b,.row--off .row__when span{color:var(--text-muted)}
.row--error{align-items:start}
.row--error .row__when{padding-top:var(--space-1)}
.row__resend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}
.row__resend .eb-btn--ghost{padding:0}
.row__resend-out{font:400 14px/20px var(--font-sans);color:var(--text-muted)}
.row__retry{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.row__seats{font:700 14px/20px var(--font-sans);color:var(--success);white-space:nowrap}
.row__side .eb-btn--ghost{white-space:nowrap}
.empty{border-top:1px solid var(--hairline);padding-top:var(--space-4)}
.empty p{margin:0 0 var(--space-3)}
.sec-title--first{margin-top:0}
.stack--tight{gap:var(--space-2)}

/* «Проверьте почту», «Бронь подтверждена», пригласительный */
.sent__to,.sent__text,.done__text{margin:0}
.problems{display:grid;gap:var(--space-3)}
.screen h1.h1--first{margin-top:0}
.done__more{margin-top:var(--space-8);display:grid}
.tkt{display:grid;gap:var(--space-3);width:100%;max-width:620px}
.tickets--page{margin-top:0}
.tkt-page__actions{max-width:620px;margin:var(--space-6) auto 0;display:grid;gap:var(--space-4)}
.tkt-manage{display:grid;gap:var(--space-1);justify-items:start}
.tkt-manage .eb-btn--ghost{padding:0}

/* Управление бронью */
.facts{display:grid;gap:var(--space-2);margin:0;padding:var(--space-4);border:1px solid var(--hairline);background:var(--surface)}
.facts > div{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}
.facts dt{font:700 12px/20px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
.facts dd{margin:0;font:700 16px/20px var(--font-sans);text-align:right}
.facts__code{letter-spacing:.08em;font-variant-numeric:tabular-nums}
.manage__reduce{display:grid;gap:var(--space-4);justify-items:start}
.manage__reduce .sess__pick{width:100%}
.manage__cancel{border-top:1px solid var(--hairline);padding-top:var(--space-6);margin-top:var(--space-4)}
section > .eb-field__hint{margin-top:var(--space-3)}
.confirm > summary{list-style:none;display:inline-flex}
.confirm > summary::-webkit-details-marker{display:none}
.confirm[open] > summary{display:none}
.confirm__box{display:grid;gap:var(--space-3);padding:var(--space-4);border:2px solid var(--danger);background:var(--surface)}
.confirm__box p{margin:0}
.confirm__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.eb-btn--danger{background:var(--danger);color:var(--on-status);border-color:var(--danger)}
.eb-btn--danger:hover{background:transparent;color:var(--danger)}

/* Политика и согласие */
.doc-text{white-space:pre-line;max-width:70ch}
.page-msg--doc section + section{margin-top:var(--space-8)}

/* ===== Юридические документы (/consent, /privacy, /media-consent) ===== */
.page-msg--doc{max-width:760px}
.doc-nav{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-6)}
.doc-nav a{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--hairline);color:var(--link);text-decoration:none;font:700 14px/20px var(--font-sans)}
.doc-nav a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.doc{font:400 16px/24px var(--font-sans);overflow-wrap:anywhere}
.doc h1{font:400 32px/36px var(--font-display);text-transform:uppercase;color:var(--heading);margin:0 0 var(--space-4);letter-spacing:.01em}
.doc h2{font:400 22px/26px var(--font-display);text-transform:uppercase;color:var(--heading);margin:var(--space-8) 0 var(--space-3);letter-spacing:.02em}
.doc p{margin:0 0 var(--space-3)}
.doc ul{margin:0 0 var(--space-3);padding-left:var(--space-6)}
.doc li{margin:0 0 var(--space-1)}
.doc a{color:var(--link)}
.doc em{color:var(--text-muted)}
.doc-table{overflow-x:auto;margin:0 0 var(--space-4);border:1px solid var(--hairline)}
.doc-table table{border-collapse:collapse;min-width:560px;font:400 14px/20px var(--font-sans)}
.doc-table th,.doc-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top}
.doc-table th{font:700 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}
@media (min-width:768px){.doc h1{font-size:40px;line-height:44px}}

/* ===== Узкие телефоны (< 375 px, iPhone SE 1-го поколения): шапка пригласительного не вылезает ===== */
@media (max-width:374px){
  .eb-ticket__head{gap:var(--space-2);padding-left:var(--space-3);padding-right:var(--space-3)}
  .eb-ticket__head img{height:auto;width:112px;flex:none}
}
