/* Страница «Организаторам»: переиспользуемые компоненты + раскладка аренды.
   Типографика, цвета, кнопки (.menu__item, .outline-button), фокус и
   reduced-motion — из common/site.css, здесь только то, чего там нет. */
:root {
  --line: rgba(255,255,255,.3);
  --radius-lg: 16px;
  --radius-md: 12px;
  --hover-fast: 160ms;
}

.rent-page {
  /* Вертикальный ритм страницы: зазор между секциями и между заголовком и контентом. */
  --section-gap: clamp(72px, 9vw, 140px);
  --heading-gap: clamp(32px, 4vw, 56px);
}
.rent-page p, .rent-page li { overflow-wrap: break-word; }
.rent-page :focus-visible { outline: 2px solid var(--paper); outline-offset: 3px; }

/* == Reusable components == */

/* Вкладки-«капсулы»: коробка, обводка и ховер — общий .menu__item. Активная — без
   обводки, с синим свечением: canvas рисует общий common/header.js (drawGlow, blue2.png). */
.tabs { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--tabs-gap, clamp(8px, 1.4vw, 20px)); }
.tabs__tab { position: relative; isolation: isolate; background: transparent; color: var(--paper); cursor: pointer; text-transform: uppercase; }
.tabs__glow { width: 114px; height: 55.2px; top: -13.6px; opacity: 0; transition: opacity var(--hover-fast) var(--ease-out); }
.tabs__tab[aria-selected="true"] { border-color: transparent; }
.tabs__tab[aria-selected="true"] .tabs__glow { opacity: 1; }
.rent-page .tabs .tabs__tab[aria-selected="true"]:hover { background: transparent; color: var(--paper); transform: none; }

/* Плашка «подпись + значение»: текст без фона, размытое синее пятно — в ::before. */
.pill-stat { position: relative; isolation: isolate; display: grid; place-content: center; justify-items: center; gap: clamp(3px, .4vw, 6px); width: var(--pill-w, 283px); height: var(--pill-h, clamp(100px, 9vw, 130px)); padding: 10px 18px; border-radius: 16px; text-align: center; }
/* Размытая плашка шире текста, как у Priority Pass (.priority__light). */
.pill-stat::before { content: ""; position: absolute; z-index: -1; top: 9px; bottom: 9px; left: -10%; right: -10%; border-radius: 16px; background: #0a0aba; filter: blur(15px); pointer-events: none; transition: left 360ms cubic-bezier(.2,.7,.25,1), right 360ms cubic-bezier(.2,.7,.25,1); }
.pill-stat__label { max-width: var(--pill-label-max, 264px); font-size: var(--pill-label-size, clamp(14px, 1.25vw, 18px)); line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; }
.pill-stat__icon { display: block; width: clamp(46px, 4.6vw, 66px); height: auto; color: var(--paper); }
.pill-stat__value { font-family: "Benzin", sans-serif; font-weight: 800; font-size: var(--pill-value-size, clamp(26px, 3.2vw, 46px)); line-height: 1; white-space: nowrap; }

/* Слайдер: слайды, синее свечение, стрелки сверху и точки под слайдером
   (стрелки и точки — как на главной: .carousel-arrow, .pagination__dot). */
.carousel { position: relative; }
.carousel__slide { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; transition: opacity 270ms cubic-bezier(.2,.7,.25,1), translate 270ms cubic-bezier(.2,.7,.25,1); }
.carousel__slide.is-active { z-index: 1; opacity: 1; }
.carousel__glow { position: absolute; inset: 0; z-index: 2; background: radial-gradient(44% 58% at 4% 98%, rgba(0,0,253,.85), transparent 72%), radial-gradient(40% 54% at 46% 80%, rgba(0,0,253,.5), transparent 74%); mix-blend-mode: lighten; pointer-events: none; }
.carousel__arrow { position: absolute; z-index: 4; top: var(--arrow-top, 18px); width: var(--arrow-size, 50px); height: var(--arrow-size, 50px); padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; opacity: .9; transition: transform var(--hover-fast) var(--ease-out), opacity var(--hover-fast) var(--ease-out), background-color var(--hover-fast) var(--ease-out); }
.carousel__arrow img { display: block; width: 100%; height: 100%; clip-path: inset(0 round 50%); }
.carousel__arrow--prev { left: var(--arrow-inset, 24px); }
.carousel__arrow--next { right: var(--arrow-inset, 24px); }
.carousel__arrow:hover { transform: scale(1.05); opacity: 1; background: var(--paper); }
.carousel__arrow:hover img { clip-path: inset(1px round 50%); filter: brightness(0) saturate(100%) invert(9%) sepia(100%) saturate(7499%) hue-rotate(247deg) brightness(94%) contrast(145%); }
@media (hover: none) {
  .carousel__arrow:hover { background: transparent; transform: none; opacity: .9; }
  .carousel__arrow:hover img { clip-path: inset(0 round 50%); filter: none; }
}
.carousel__dots { display: flex; justify-content: center; align-items: center; gap: var(--dots-gap, 7px); margin: var(--dots-offset, calc(clamp(34px, 4.6vw, 66px) + clamp(26px, 2.6vw, 38px))) 0 0; }
.carousel__dot { appearance: none; -webkit-appearance: none; width: 21px; height: 13px; padding: 0; border: 1px solid rgba(217,217,217,.38); border-radius: 20px; background: transparent; cursor: pointer; transition: transform var(--hover-fast) var(--ease-out), background-color var(--hover-fast) var(--ease-out), border-color var(--hover-fast) var(--ease-out), width 220ms var(--ease-out), box-shadow 220ms var(--ease-out); }
.carousel__dot:hover { border-color: var(--paper); background: var(--paper); transform: scale(1.08); }
.carousel__dot.is-active { width: 34px; border-color: transparent; background: var(--blue); box-shadow: 0 0 7px rgba(0,0,253,.95), 0 0 18px rgba(0,0,253,.75), 0 0 30px rgba(0,0,253,.42); }

/* Синяя бегущая строка: наклон и выступ за края — на месте использования. */
.marquee-band { display: flex; align-items: center; overflow: hidden; padding: calc(var(--marquee-pad, clamp(18px, 2.3vw, 32px)) + var(--marquee-cap, clamp(4px, .55vw, 8px))) 0 var(--marquee-pad, clamp(18px, 2.3vw, 32px)); background: var(--blue); transform: rotate(var(--marquee-tilt, -1.2deg)); }
.marquee-band__track { display: flex; width: max-content; animation: marquee-band var(--marquee-speed, 35s) linear infinite; }
.marquee-band__chunk { display: flex; align-items: center; gap: var(--marquee-gap, clamp(18px, 2.6vw, 38px)); margin: 0; padding-right: var(--marquee-gap, clamp(18px, 2.6vw, 38px)); font-family: "Benzin", sans-serif; font-weight: 800; font-size: var(--marquee-size, clamp(24px, 3.5vw, 50px)); line-height: 1; color: var(--paper); text-transform: uppercase; white-space: nowrap; }
.marquee-band__dot { flex: none; width: var(--marquee-dot, clamp(12px, 1.6vw, 23px)); aspect-ratio: 1; border-radius: 50%; background: var(--paper); }
@keyframes marquee-band { from { translate: 0 0; } to { translate: -50% 0; } }

/* Нумерованный список с площадями: строки с тонкими разделителями. */
.spec-list { margin: 0; padding: 0; list-style: none; }
.spec-list__row { position: relative; display: grid; grid-template-columns: clamp(30px, 4vw, 56px) minmax(0, 1fr) auto; align-items: center; column-gap: clamp(10px, 1.5vw, 22px); padding: clamp(16px, 2vw, 28px) 0; border-top: 1px solid var(--line); }
.spec-list__row:last-child { border-bottom: 1px solid var(--line); }
.spec-list__num { color: rgba(255,255,255,.55); font-size: 12px; }
.spec-list__cell { min-width: 0; }
.spec-list__name { margin: 0; line-height: 1; }
.spec-list__note { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.3; }
.spec-list__area { color: var(--paper); font-size: clamp(17px, 1.9vw, 27px); white-space: nowrap; }

/* Фотолента: одна строка, автопрокрутка в rent.js (initPhotoFeed), руками — нативный скролл. */
.photo-feed { --feed-height: clamp(260px, 30vw, 460px); --feed-gap: 12px; }
.photo-feed__track { display: flex; align-items: center; overflow-x: auto; scroll-snap-type: none; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; user-select: none; -webkit-user-select: none; }
.photo-feed__track::-webkit-scrollbar { display: none; }
.photo-feed__track.is-dragging { cursor: grabbing; }
.photo-feed__track.is-dragging img { pointer-events: none; }
.photo-feed__track img { -webkit-user-drag: none; }
.photo-feed__group { display: flex; flex: none; align-items: center; gap: var(--feed-gap); padding-right: var(--feed-gap); }
.photo-feed__group img { flex: none; width: auto; max-width: none; height: var(--feed-height); border-radius: var(--radius-md); }

/* Крупная кнопка-капсула в конце страницы. */
/* Большая кнопка в стиле сайта: .ticket .ticket--blue из common/site.css, здесь только размер. */
.cta-button { min-height: 52px; padding: 0 44px; border-radius: 26px; font-size: 16px; font-weight: 400; }

/* == Rent page layout == */

/* Наклонённая бегущая строка и фоновые свечения выходят за края окна — режем прокрутку по ширине. */
html { overflow-x: hidden; overflow-x: clip; }

.rent-page .tabs { margin: var(--page-title-gap) 0 0; }

/* Фоновые свечения из макета. Эффект Lighten поверх #212121 запечён в webp (синий с альфа-каналом), поэтому
   mix-blend-mode и изоляция не нужны. Координаты — от верхнего левого края своей секции на холсте 1440;
   «Вместимость» лежит поверх hero, как в макете. */
.rent-glow { position: absolute; max-width: none; pointer-events: none; }
.rent-glow--capacity { z-index: 0; left: 241px; top: -177px; width: 1120px; }
.rent-glow--spaces { z-index: 0; left: 488px; top: -848px; width: 2132px; }

.rent-page .rent-intro { position: relative; margin: var(--page-content-gap) 0 0; }
.rent-page .rent-intro > :not(.rent-glow) { position: relative; z-index: 1; }
.rent-page .rent-hero { display: grid; place-items: center; align-content: center; gap: clamp(24px, 3vw, 44px); min-height: clamp(360px, 29.5vw, 424px); margin: 0 calc(50% - 50vw); padding: clamp(28px, 4vw, 60px) clamp(16px, 4vw, 40px); background: var(--blue) url("assets/hero-curtain.jpg?v=rent-15") center / cover no-repeat; text-align: center; }
.rent-page .rent-hero__text { max-width: 668px; margin: 0; font-family: "Benzin", sans-serif; font-weight: 800; font-size: clamp(19px, 2.1vw, 30px); line-height: 1.35; }
.rent-page .rent-hero--concerts { background-image: url("assets/hero-rays.jpg?v=rent-15"); }
.rent-page .rent-hero--concerts .rent-hero__text { text-shadow: 0 2px 24px rgba(0, 0, 33, .45); }
.rent-page .rent-book { min-width: 177px; min-height: 50px; border-color: transparent; border-radius: 25px; background: var(--paper); color: var(--blue); font-size: 16px; }
.rent-page button.rent-book:is(:hover, :focus-visible) { background: var(--blue); color: var(--paper); }

.rent-page .rent-heading { margin: var(--section-gap) 0 var(--heading-gap); text-align: center; }
.rent-page .rent-capacity { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-items: center; gap: clamp(14px, 2.5vw, 36px); margin: 0; padding: 0; list-style: none; }
.rent-page .rent-capacity .pill-stat { --pill-w: min(340px, 100%); --pill-h: clamp(118px, 10.4vw, 148px); --pill-label-size: clamp(13px, 1.1vw, 16px); --pill-label-max: 100%; }

.rent-page .carousel { height: min(47vw, 676px); margin: var(--section-gap) calc(50% - 50vw) 0; }
.rent-page .marquee-band { position: absolute; z-index: 3; left: -3%; right: -3%; bottom: calc(-1 * clamp(34px, 4.6vw, 66px)); }

/* Свечение «4 локации» уходит вправо за экран и вверх к слайдеру: режем только ширину. */
.rent-page .rent-spaces { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 58px); margin: var(--section-gap) 0 0; }
.rent-page .rent-spaces__media { position: relative; z-index: 1; margin: 0; overflow: hidden; border-radius: var(--radius-lg); }
.rent-page .rent-spaces__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rent-page .rent-spaces__media::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 125% 92% at 0% 100%, rgba(0,0,253,.9) 0%, rgba(0,0,253,.55) 30%, rgba(0,0,253,.2) 58%, transparent 80%); mix-blend-mode: lighten; pointer-events: none; }
.rent-page .rent-spaces__body { position: relative; z-index: 1; min-width: 0; padding-top: clamp(2px, .8vw, 12px); }
.rent-page .rent-spaces__text { max-width: 640px; margin: var(--heading-gap) 0 0; color: var(--muted); font-size: clamp(15px, 1.2vw, 17px); line-height: 1.5; }
.rent-page .spec-list { margin: clamp(18px, 2.2vw, 32px) 0 0; }
.rent-page .spec-list__name { font-size: clamp(18px, 1.75vw, 25px); }

.rent-page .rent-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 60px); margin-top: var(--section-gap); padding-left: clamp(0px, 1.8vw, 24px); }
.rent-page .rent-columns__col { min-width: 0; }
.rent-page .rent-columns__title { max-width: 420px; }
.rent-page .rent-columns__text { max-width: 620px; margin: var(--heading-gap) 0 0; color: var(--muted); font-size: clamp(15px, 1.3vw, 19px); line-height: 1.5; }
.rent-page .rent-specs { display: flex; flex-wrap: wrap; gap: clamp(12px, 1.6vw, 24px); margin: var(--heading-gap) 0 0; padding: 0; list-style: none; }
.rent-page .rent-specs .pill-stat { --pill-w: clamp(160px, 20.5vw, 295px); --pill-h: clamp(76px, 7vw, 100px); --pill-label-size: clamp(12px, 1.15vw, 17px); --pill-value-size: clamp(22px, 2.8vw, 40px); }
/* У мелких плашек в ряд свес пятна меньше, чтобы не слипались. */
.rent-page .rent-specs .pill-stat::before { left: -4%; right: -4%; }
.rent-page .rent-specs + .rent-columns__text { margin-top: clamp(20px, 2.6vw, 38px); }
@media (min-width: 901px) {
  .rent-page .rent-columns__title { min-height: 2lh; }
}

/* Занятые даты: информационный блок без рамок и стрелок. */
.rent-page .rent-busy { margin: var(--section-gap) 0 0; border-block: 1px solid var(--line); }
.rent-page .rent-busy__summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: clamp(22px, 2.4vw, 32px) 0; cursor: pointer; list-style: none; transition: opacity var(--hover-fast) var(--ease-out); }
.rent-page .rent-busy__summary::-webkit-details-marker { display: none; }
.rent-page .rent-busy__summary:hover { opacity: .75; }
.rent-page .rent-busy__title { font-family: "Benzin", sans-serif; font-weight: 800; font-size: clamp(18px, 1.8vw, 26px); text-transform: uppercase; }
.rent-page .rent-busy__icon { position: relative; flex: none; width: 18px; height: 18px; }
.rent-page .rent-busy__icon::before, .rent-page .rent-busy__icon::after { content: ""; position: absolute; left: 0; top: 8px; width: 18px; height: 2px; background: currentColor; transition: transform var(--hover-fast) var(--ease-out); }
.rent-page .rent-busy__icon::after { transform: rotate(90deg); }
.rent-page .rent-busy[open] .rent-busy__icon::after { transform: rotate(0); }
.rent-page .rent-busy__body { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(28px, 3.4vw, 52px) clamp(24px, 3vw, 48px); padding: 0 0 clamp(28px, 3vw, 44px); }
/* Мини-календарь месяца: занятые дни — синие кружки. Компонент нейтральный, размер дня — --cal-day. */
.rent-page .rent-cal__title { margin: 0 0 14px; font-family: "Benzin", sans-serif; font-weight: 800; font-size: 16px; line-height: 1.1; text-transform: uppercase; }
.rent-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px 0; justify-items: center; max-width: 340px; }
.rent-cal__weekday { padding-bottom: 6px; font-size: 12px; font-weight: 300; letter-spacing: .04em; color: var(--muted); opacity: .6; }
.rent-cal__day { display: grid; place-items: center; width: var(--cal-day, 38px); aspect-ratio: 1; border-radius: 50%; font-size: 15px; line-height: 1; color: var(--muted); opacity: .38; font-variant-numeric: tabular-nums; }
.rent-cal__day.is-busy { background: var(--blue); color: var(--paper); opacity: 1; }

.rent-page .photo-feed { margin: var(--section-gap) calc(50% - 50vw) 0; }

.rent-page .rent-cta { display: flex; justify-content: center; margin: var(--section-gap) 0 0; }

@media (prefers-reduced-motion: reduce) {
  .rent-page .marquee-band { transform: none; }
  .rent-page .marquee-band__track { width: auto; flex-wrap: wrap; animation: none; }
}

@media (max-width: 900px) {
  .rent-page { --section-gap: clamp(56px, 14vw, 88px); --heading-gap: clamp(24px, 5vw, 40px); }
  .rent-glow--capacity { left: 50%; top: -110px; width: min(1120px, 130vw); transform: translateX(-50%); }
  .rent-glow--spaces { left: 42%; top: -160px; width: min(2132px, 190vw); }
  .rent-page .rent-hero { min-height: 360px; }
  .rent-page .rent-capacity { grid-template-columns: 1fr; gap: 12px; }
  .rent-page .rent-capacity .pill-stat { --pill-h: 104px; --pill-value-size: clamp(24px, 7vw, 30px); }
  .rent-page .carousel { height: 71vw; --arrow-top: 12px; --arrow-inset: 12px; --arrow-size: 40px; --dots-offset: 62px; }
  .rent-page .rent-spaces { grid-template-columns: 1fr; gap: 26px; }
  .rent-page .rent-spaces__media img { aspect-ratio: 1.19; }
  .rent-page .rent-columns { grid-template-columns: 1fr; gap: 40px; }
}

@media (max-width: 520px) {
  .rent-page .tabs { --tabs-gap: 6px; }
  .rent-page .rent-hero { gap: 22px; min-height: 340px; padding: 34px 16px; }
  .rent-page .rent-hero__text { font-size: clamp(18px, 5.2vw, 22px); }
  .rent-page .rent-book { width: 177px; font-size: 15px; }
  .rent-page .rent-capacity .pill-stat { --pill-w: min(320px, 100%); --pill-h: 108px; --pill-label-size: 13px; --pill-value-size: 26px; }
  .rent-page .rent-specs { gap: 12px; justify-content: center; }
  .rent-page .rent-specs .pill-stat { --pill-w: min(260px, 100%); --pill-h: 80px; --pill-label-size: 14px; --pill-value-size: 22px; }
  .rent-page .carousel { margin-top: var(--section-gap); }
  .rent-page .marquee-band { --marquee-size: clamp(22px, 7vw, 28px); --marquee-dot: 12px; --marquee-gap: 18px; --marquee-pad: 16px; }
  .rent-page .rent-columns { padding-left: 0; }
  .rent-page .rent-columns__text { font-size: 15px; }
  .rent-page .rent-busy__body { grid-template-columns: 1fr; gap: 32px; }
  .rent-cal__grid { max-width: none; }
  .rent-cal__day { --cal-day: min(42px, 100%); font-size: 16px; }
  .rent-page .cta-button { width: 100%; max-width: 320px; }
}
