@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;800;900&display=swap');

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: #000000;
    font-family: sans-serif;
}

/* HEADER */
.site-header {
    position: absolute;
    top: 32px;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-top: 0;
    z-index: 1000;
    background-color: rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);

    padding: 20px 20px;
    border-radius: 60px;
    border-left: 1px solid rgba(255, 255, 255, 0.3);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-family: sans-serif;
}

.logo {
    width: 245px;
    height: 60px;
}

.logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

/* Навігація */
.nav-list {
    display: flex;
    align-items: center;
    gap: 60px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-list a {
    color: #ffffff;
    text-decoration: none;
    font-size: 15px;
    letter-spacing: 0.5px;
    transition: opacity 0.2s ease;
}

.nav-list a:hover {
    opacity: 0.7;
}

.nav-list a.active {
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 1px;
}

.header-actions {
    display: flex;
    gap: 12px;
}

.icon-btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background-color: #ffffff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.icon-btn img {
    width: 21px;
    height: 21px;
    display: block;
    object-fit: contain;
}

.search-btn img {
    width: 16px;
    height: 16px;
}

.icon-btn:hover {
}

/* HEADER END */

/* =====================
   HERO SECTION
   ===================== */

.hero {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding-bottom: 235px;
    max-height: 100vh;
}

.main-image {
    display: block;
    width: 100%;
    height: auto;
}

/* --- Лівий блок: підписка --- */
.hero-subscribe {
    position: absolute;
    left: 40px;
    top: 50%;
    transform: translateY(-50%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 10;
    text-align: center;
    background-color: rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(10px);
    border-radius: 60px;
    padding: 100px 22px 40px 22px;
}

.subscribe-icon {
    color: #ffffff;
    opacity: 0.8;
    padding-bottom: 17px;
}

.subscribe-title {
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 1px;
    color: #ffffff;
}

.subscribe-text {
    position: relative;
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    font-size: 14px;
    font-weight: 300;
    color: white;
    line-height: 1.5;
    width: 84%;
    left: 5%;
}

/* --- Центральний play-button --- */
.hero-play {
    position: absolute;
    left: 25%;
    top: 60%;
    transform: translate(-50%, -50%);
    z-index: 10;
}

.play-btn {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background-color: #ffffff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #000000;
    transition: transform 0.2s ease, background-color 0.2s ease;
}

.play-btn:hover {
    transform: scale(1.05);
    background-color: #f0f0f0;
}

.afisha .hero {
    padding-bottom: 0;
}

.afisha .main-image{
    width: 50%;
}

.afisha .hero-title{
    font-family: 'Unbounded', sans-serif;
    font-size: 40px;
    position: absolute;
    top: 25%;
    left: 26px;
    color: white;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 60px;
    backdrop-filter: blur(10px);
    padding: 40px 90px;
    border: 1px solid white;
}

.afisha .hero-headline{
    bottom: 220px;
    right: 195px;
}

/* --- Картка вистави --- */
.hero-show-card {
    position: absolute;
    right: 520px;
    top: 55%;
    transform: translateY(-50%);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 70px;
    padding: 24px 28px;
    width: 396px;
    height: 210px;
    color: #ffffff;
    z-index: 10;

    display: flex;
    flex-direction: column;
    justify-content: center; /* по вертикалі */
    align-items: center;     /* по горизонталі */
}

.show-card-title {
    margin: 0 0 12px;
    font-family: 'Unbounded', sans-serif;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 1px;
    color: #ffffff;
}

.show-card-text {
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    font-size: 13px;
    color: #ffffff;
}

.show-card-title,
.show-card-text {
    width: 260px;
    text-align: left;
}

/* --- Нижній лівий: цитата --- */
.hero-quote {
    position: absolute;
    left: 20px;
    bottom: 100px;
    z-index: 10;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 300px;
}

.quote-tag {

    font-family: "Inter", sans-serif;
    font-size: 12px;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #ffffff;
    margin-bottom: 35px;

}

@media(max-width: 1335px) {
    .quote-tag {
        margin-bottom: 0;
    }
}

.quote-text {
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    font-size: 26px;
    font-weight: 10;
    color: #ffffff;
}

.quote-author {
    margin: 0;
    font-family: "Inter", sans-serif;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.3);
    line-height: 1.4;
}

/* --- Великий заголовок --- */
.hero-headline {
    position: absolute;
    right: 225px;
    bottom: 0;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 20px;
}

.single-main .hero{
    padding-bottom: 0;
}

.hero-single-title {
    font-family: 'Unbounded', sans-serif;
    position: absolute;
    color: white;
    text-align: center;
    left: 50%;
    transform: translateX(-50%);
    top: 80%;
    z-index: 2;
}

.hero-single-title h2{
    font-size: 60px;
    margin-bottom: 0;
}

.hero-single-title p{
    font-size: 20px;
    line-height: 60px;
    margin-top: 0;
}

.headline-text {
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    font-size: clamp(48px, calc(9 * var(--vw)), 160px);
    font-weight: 400;
    line-height: 0.9;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: -1px;
}

.headline-top {
    text-align: right;
}

.headline-bottom {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-left: auto;
    transform: translateX(80px);
}

.headline-left {
    display: flex;
    align-items: center;
    gap: 5px;
}

.headline-arrow {
    display: inline-block;
    font-weight: 200;
    margin-right: 0;
}

.headline-btn {
    flex-shrink: 0;
    width: 305px;
    height: 125px;
    border-radius: 60px;
    border: 2px solid rgb(255, 255, 255);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    text-decoration: none;
    margin-bottom: 0;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}


.headline-btn:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.7);
}



/* Repertoire */

.repertoire {
    position: relative;
    padding: 40px 0;
}

.afisha .repertoire {
    padding-top: 0;
    margin-top: -125px;
}
.repertoire-slider {
    overflow: visible;
}

.repertoire-slider .swiper-slide {
    width: 250px !important;
}

.repertoire-date-card {
    height: 100px;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    border: 1px solid #fff;
    border-radius: 34px;

    background: #000;
    color: #fff;

    transition: .3s;
    cursor: pointer;
    font-family: 'Unbounded', sans-serif;
}

.swiper-slide.active .repertoire-date-card {
    background: #ff1a0a;
    border-color: #ff1a0a;
}

.date-line {
    display: flex;
    align-items: center;
    gap: 4px;
}

.day {
    font-size: 24px;
    font-weight: 700;
}

.month {
    font-size: 22px;
    font-weight: 300;
}

.label {
    margin-top: 6px;
    font-size: 18px;
}


.repertoire__tabs {
    position: absolute;
    top: 160px;
    right: 100px;
    z-index: 10;

    display: flex;
    align-items: center; /* Центруємо контент по вертикалі */
    gap: 20px;

    padding: 20px 30px;

    border-radius: 100px;

    backdrop-filter: blur(25px);
    background: rgba(255, 255, 255, 0.12);
}

.repertoire__text {
    margin: 0;
    color: #ffffff; /* Білий колір тексту */
    font-size: 22px;
    font-weight: 200;
    line-height: 1.5;
    letter-spacing: 0.5px;
    /* Червона вертикальна лінія зліва */
    border-left: 4px solid #ff0000;
    padding-left: 15px;
    font-family: 'Unbounded', sans-serif;
}

.highlight-red {
    background-color: #ff0000;
    color: #ffffff;
    padding: 2px 6px; /* Відступи для червоної плашки */
}

/* Cards */

.repertoire__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    padding-top: 40px;
}

.afisha .repertoire__list {
    padding-top: 0;
}

.repertoire-card {
    position: relative;
    overflow: hidden;

    flex: 1;
    border-radius: 42px;


    cursor: pointer;
}



.repertoire-card.active {
}

.repertoire-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Gradient */

.repertoire-card__overlay {
    position: absolute;
    inset: 0;
}

/* Content */

.repertoire-card__content {
    position: absolute;
    left: 28px;
    right: 28px;
    bottom: 28px;
    z-index: 2;
    color: white;
}

.repertoire-card__content h3 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    font-family: 'Unbounded', sans-serif;
}

.repertoire-card__content p,
.repertoire-card__meta,
.repertoire-card__btn {
    opacity: 0;
    transform: translateY(15px);
    transition: .35s;
}

/* Показувати тільки на активній або hover */

.repertoire-card:hover .repertoire-card__content p,
.repertoire-card:hover .repertoire-card__meta,
.repertoire-card:hover .repertoire-card__btn,
.repertoire-card.active .repertoire-card__content p,
.repertoire-card.active .repertoire-card__meta,
.repertoire-card.active .repertoire-card__btn {
    opacity: 1;
    transform: translateY(0);
}

.repertoire-card__content p {
    max-width: 360px;
    margin: 16px 0;
    color: rgba(255,255,255, 1);
    line-height: 1.5;
}


.repertoire-card__meta img {
    height: 21px;
    width: 21px;
}
.repertoire-card__bottom {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding-bottom: 10px;
}

.repertoire-card__meta {
    display: contents;
    gap: 12px;
    flex: 1;
}

.repertoire-card__meta span,
.repertoire-card__btn {
    flex: 1;
    height: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50px;
}

.repertoire-card__meta span {
    color: #fff;
    gap: 8px;
}

.repertoire-card__meta img {
    width: 18px;
    height: 18px;
}

.repertoire-card__btn {
    background: #ff0000;
    color: #fff;
    text-decoration: none;
}

.repertoire-card__bottom {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.repertoire-card__meta {
    display: contents;
}

.repertoire-card__meta span,
.repertoire-card__btn {
    height: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50px;
}

.repertoire-card__meta span {
    background: #141414;
    border: 1px solid #262626;
    color: #fff;
    gap: 8px;
}

.repertoire-card__meta img {
    width: 18px;
    height: 18px;
}

.repertoire-card__btn {
    background: #ff0000;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}



/* Link */

.repertoire__all {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;

    margin-top: 35px;

    color: #ff0000;
    font-size: 16px;
    font-weight: 300;
    text-decoration: none;
    font-family: 'Unbounded', sans-serif;

}

.repertoire__all img {
    width: 46px;
    height: 35px;
    display: block;
    object-fit: contain;
}

/* theater-stage
 */

:root {
    --theater-dark: #030303;
    --dramatic-red: #ff0000;
    --spotlight-white: #ffffff;
    --backstage-gray: #0a0a0a;
    --scenery-border: #222222;
}



.theater-stage {
    max-width: 1880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 50px;
}

/* --- АКТ ПЕРШИЙ: Головна сцена --- */
.act-primary {
    display: flex;
    gap: 1px;
}

/* Афіша з фото актора */
.actor-poster {
    flex: 0 0 35%;
    position: relative;
    border-radius: 20px;
    overflow: hidden;
}

.actor-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.backstage-overlay {
    position: absolute;
    bottom: 15px;
    left: 15px;
    right: 15px;
    background: rgba(15, 15, 15, 0.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 15px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    margin-right: 40%;
}

.monologue {
    font-size: 16px;
    line-height: 1.2;
    color: white;
    margin-bottom: 15px;
    font-family: 'Unbounded', sans-serif;
    font-weight: 300;
}

.backstage-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.troupe-cast {
    display: flex;
}

.actor-avatar {
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background-color: #555;
    border: 2px solid #ffffff;
    margin-left: -8px;
}
.actor-avatar:first-child { margin-left: 0; }

.join-troupe-btn {
    display: flex;
    align-items: center;
    gap: 40px;
    font-size: 16px;
    font-weight: 300;
    text-transform: uppercase;
    cursor: pointer;
    color: #ffffff;
    font-family: "Unbounded", sans-serif;
}

.join-troupe-btn svg {
    width: 20px;
    height: 20px;
}

/* Головна червона афіша (Playbill) */
.playbill-banner {
    flex: 1;
    background-color: var(--dramatic-red);
    border-radius: 20px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    position: relative;
}

.performance-modes {
    display: flex;
    gap: 15px;
    margin-bottom: 40px;
}

.mode-item {
    padding: 8px 24px;
    border-radius: 30px;
    border: 1px solid #fff;
    font-size: 14px;
    font-weight: 300;
    cursor: pointer;
    color: #ffffff;
    font-family: 'Unbounded', sans-serif;
}

.mode-item.active-scene {
    background-color: #fff;
    color: var(--dramatic-red);
    font-weight: 500;
}

.playbill-details {
    margin-bottom: 20px;
}

.theater-headline {
    font-size: 84px;
    font-weight: 900;
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: -1px;
    margin: 0;
    font-family: 'Unbounded', sans-serif;
    color: white;
}

.intermission-divider {
    height: 2px;
    background-color: rgba(255, 255, 255, 1);
    width: 47%;
    margin: 18px 0;
}

.play-synopsis {
    font-size: 20px;
    max-width: 55%;
    color: white;
    font-family: "Inter", sans-serif;
}

.action-pointer {
    position: absolute;
    right: 40px;
    bottom: 40px;
    width: 64px;
    height: 64px;
}

/* --- АКТ ДРУГИЙ: Епілог (Нижня секція) --- */
.act-epilogue {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    padding-top: 50px;
}

.manifesto-headline {
    font-size: 60px;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.1;
    letter-spacing: 1px;
    color: white;
    font-family: 'Unbounded', sans-serif;
}

.text-dramatic {
    color: var(--dramatic-red);
}

.about-theater-tag {
    font-size: 25px;
    color: #333333;
    font-weight: 400;
    text-transform: none;
    vertical-align: top;
    display: inline-block;
    margin-top: 8px;
    font-family: 'Inter', sans-serif;
    letter-spacing: -1px;
    margin-left: 25px;
}

.credo-deck {
    display: flex;
    align-items: flex-end;
    gap: 220px;
    flex-shrink: 0;
}

.credo-box {
    position: relative;
    width: 220px;
    min-height: 170px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.credo-box__content {
    position: relative;
    z-index: 2;
    width: 230px;
    text-align: left;
    font-size: 18px;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-weight: lighter;
}

.credo-box::before {
    content: "";
    position: absolute;

    top: 50%;
    left: 50%;

    width: 340px;      /* розмір svg */
    height: 240px;

    transform: translate(-50%, -50%);

    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;

    z-index: -1;
    pointer-events: none;
}

.credo-box--left::before {
    background-image: url("svg/ticket_left.svg");
    width: 530px;
    height: 370px;
    left: 43%;
    top: 69%;
}

.credo-box--right::before {
    background-image: url("svg/ticket_right.svg");
    width: 346px;
    height: 210px;
    left: 0;
    top: 66%;
}
.credo-box--left .credo-box__content {
    transform: translate(-20px, 30px);
}

.credo-box--right .credo-box__content {
    transform: translate(-100px, 30px);
}

/* Адаптація під екрани (Режисура адаптивності) */
@media (max-width: 992px) {
    .act-primary {
        flex-direction: column;
        height: auto;
    }
    .act-epilogue {
        flex-direction: column;
        align-items: flex-start;
    }
    .theater-headline {
        font-size: 48px;
    }
    .action-pointer {
        width: 40px;
        height: 40px;
        right: 20px;
        bottom: 20px;
    }
}

/* =====================
   FOOTER
   ===================== */

.site-footer {
    background-color: #1a1a1a;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    padding-top: 60px;
    margin-top: 100px
}

.footer-container {
    margin: 0 auto;
    padding: 0 40px 60px;
    display: flex;
    justify-content: space-between;
    gap: 50px;
}

/* --- Socials --- */
.footer-socials {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-right: -120px;
}

.social-btn {
    width: 60px;
    height: 60px;
    background-color: #ff0000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    text-decoration: none;
    transition: background-color 0.3s ease;
}

.social-btn:hover {
    background-color: #cc0000;
}

/* --- Info Block --- */
.footer-info {
    max-width: 435px;
}

.footer-logo {
    max-width: 435px;
    height: 106px;
    margin-bottom: 10px;
    display: block;
}

.info-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.info-label {
    font-size: 13px;
    color: #a3a3a3;
    font-weight: 400;
}

.info-text {
    margin: 0;
    font-size: 13px;
    color: #e5e5e5;
    line-height: 1.4;
}

/* --- Navigation --- */
.footer-nav ul {
    font-family: "Unbounded", sans-serif;
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.footer-nav > ul > li > a {
    color: #8c8c8c;
    text-decoration: none;
    font-weight: 900;
    font-size: 20px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.3s ease;
}

.footer-nav > ul > li > a:hover {
    color: #ffffff;
}

.arrow {
    font-weight: 400;
    font-size: 20px;
    color: #555555;
    transition: color 0.3s ease;
}

.footer-nav > ul > li > a:hover .arrow {
    color: #ffffff;
}

/* Sub-menu */
.sub-menu {
    margin-top: 15px;
    padding-left: 20px !important;
    display: flex;
    flex-direction: column;
    gap: 12px !important;
}

.sub-menu a {
    color: #737373;
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    transition: color 0.3s ease;
}

.sub-menu a:hover {
    color: #ffffff;
}

/* --- Phone Button --- */
.footer-action {
    flex-shrink: 0;
}

.phone-btn {
    background-color: #ff0000;
    color: #ffffff;
    text-decoration: none;
    padding: 16px 32px;
    border-radius: 40px;
    display: flex;
    align-items: center;
    gap: 15px;
    transition: background-color 0.3s ease;
}

.phone-btn:hover {
    background-color: #cc0000;
}

.phone-icon {
    width: 24px;
    height: 24px;
}

.phone-text {
    display: flex;
    flex-direction: column;
}

.phone-number {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
}

.phone-desc {
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* --- Bottom Copyright --- */
.footer-bottom {
    background-color: #000000;
    text-align: center;
    padding: 20px;
}

.footer-bottom p {
    margin: 0;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #ffffff;
}

/* Single */

.single {
    padding: 40px 0;
    max-width: 1570px;
    margin: 0 auto;
    font-family: 'Inter', sans-serif;

}

.single__container {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
    align-items: start;
}

.single__card {
    background-color: #191919;
    border-radius: 12px;
    padding: 40px;
    margin-bottom: 20px;
    border: 1px solid #262626;
}

.single__card.sidebar {
    padding: 30px;
    font-family: 'Manrope', sans-serif;
}

.card-title {
    color: #999999;
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 24px;
}

/* --- Опис --- */
.description-text {
    font-size: 17px;
    line-height: 1.6;
    color: white;
}

.description-text p {
    margin-bottom: 24px;
}
.description-text p:last-child {
    margin-bottom: 0;
}

/* --- Актори --- */
.actors-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
}

.actors-header .card-title {
    margin-bottom: 0;
}

.actors-nav {
    display: flex;
    gap: 12px;
}

.nav-btn {
    background-color: transparent;
    border: 1px solid #333;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999999;
    cursor: pointer;
    transition: background-color 0.3s, border-color 0.3s;
}

.nav-btn:hover {
    background-color: #333;
    border-color: #555;
}

.actors-list {
    display: flex;
    gap: 16px;
    overflow-x: hidden; /* Можна змінити на auto для скролу */
}

.actor-card {
    min-width: 140px;
    flex: 0 0 auto;
}

/* Обрізана остання картка для ефекту як на скріншоті */
.actor-card.half-visible {
    width: 60px;
    overflow: hidden;
}

.actor-img {
    width: 140px;
    height: 140px;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 12px;
}

.actor-info {
    display: flex;
    flex-direction: column;
}

.actor-role {
    font-size: 13px;
    color: white;
    margin-bottom: 4px;
}

.actor-name {
    font-size: 14px;
    color: #ffffff;
    font-weight: 500;
}

/* --- Сайдбар (Права колонка) --- */
.sidebar-block {
    margin-bottom: 30px;
}

.sidebar-label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #8c8c8e;
    font-size: 15px;
    margin-bottom: 16px;
}

.sidebar-value.large-text {
    font-size: 20px;
    font-weight: 500;
    color: white;
    font-family: 'Manrope', sans-serif;
}

/* Внутрішні темні блоки (для рейтингу та персон) */
.inner-box {
    background-color: #141414;
    border-radius: 8px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    border: 1px solid #262626;
}

/* Рейтинг */
.rating-box {
    gap: 12px;
}

.stars {
    display: flex;
    gap: 2px;
    font-size: 20px;
}

.star.fill {
    color: #ff0000;
}

.star.half {
    color: #8c8c8e;
    position: relative;
}
.star.half::before {
    content: '★';
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    overflow: hidden;
    color: #ff0000;
}

.rating-number {
    font-size: 18px;
    font-weight: 500;
    color: white;
}

/* Теги (Жанри) */
.tags-list {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.tag {
    background-color: #141414;
    border: 1px solid #262626;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 14px;
    color: #fff;
}

/* Персони (Режисер, Автор) */
.person-box {
    gap: 16px;
}

.person-img {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    object-fit: cover;
}

.person-details {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.person-name {
    font-size: 15px;
    font-weight: 500;
    color: white;
}

.person-role {
    font-size: 13px;
    color: #8c8c8e;
}

/* Кнопка */
.buy-ticket-btn {
    width: 100%;
    background-color: #e50000;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    padding: 84.5px 10px;
    font-size: 28px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    cursor: pointer;
    margin-top: 40px;
    transition: background-color 0.2s;
    font-family: 'Unbounded', sans-serif;
}

.buy-ticket-btn:hover {
    background-color: #cc0000;
}

/* --- Адаптивність (Responsive) --- */
@media (max-width: 1024px) {
    .single__container {
        grid-template-columns: 1fr;
    }

    .single__right {
        order: -1; /* На мобільних сайдбар (з кнопкою покупки) краще показувати зверху */
    }
}

@media (max-width: 600px) {
    .single__card {
        padding: 20px;
    }

    .actors-list {
        overflow-x: auto; /* Вмикаємо скрол для акторів на телефонах */
        padding-bottom: 10px;
    }
}

/* ============================================
   BANNER SLIDER
   ============================================ */

.banner-slider {
    --bs-gap: clamp(10px, calc(1.2 * var(--vw)), 16px);
    --bs-side-padding: clamp(20px, calc(9 * var(--vw)), 137px);
    --bs-radius: 14px;

    width: 100%;
    padding-block: clamp(24px, calc(4 * var(--vw)), 48px);
    color: #fff;
    font-family: -apple-system, "SF Pro Display", "Inter", system-ui, sans-serif;
    overflow: hidden;
    margin: 0 auto;
    max-width: 1570px;
}

/* ---------- верхній рядок: лічильник + прогрес-бар з рисок ---------- */

.banner-slider__top {
    align-items: center;
    gap: 18px;
    margin-bottom: clamp(16px, calc(2.5 * var(--vw)), 28px);
}

.banner-slider__counter {
    flex-shrink: 0;
    font-size: clamp(14px, calc(1.3 * var(--vw)), 30px);
    font-weight: 400;
    letter-spacing: 0.04em;
    color: #fff;
    font-variant-numeric: tabular-nums;
    font-family: 'Antic', cursive;
}

.banner-slider__progress {
    display: flex;
    gap: 6px;
    flex-wrap: nowrap;
    padding-top: 10px;
}

.banner-slider__dash {
    height: 3px;
    width: clamp(16px, calc(2.4 * var(--vw)), 34px);
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.28);
    transition: background-color 0.25s ease;
}

.banner-slider__dash.is-active {
    background: #fff;
}

/* ---------- сам swiper ---------- */

.swiper-slide {
    width: 17.5% !important;
}

.banner-slider__swiper {
    width: 100%;
    /* overflow: hidden зʼявляється з класу .swiper за замовчуванням —
       завдяки цьому останній слайд буде "обрізаний" по правому краю,
       як на скріншоті */
    padding-inline-start: var(--bs-side-padding);
}

.banner-slider__swiper .swiper-wrapper {
    /* без цього свайп по інерції смикається */
    align-items: stretch;
}

.banner-slider__slide {
    width: clamp(170px, calc(17 * var(--vw)), 254px);
    margin-right: var(--bs-gap);
    aspect-ratio: 5 / 5.6;
    border-radius: var(--bs-radius);
    overflow: hidden;
    background: #1a1a1a; /* плейсхолдер, поки картинка вантажиться */
    cursor: grab;
}

.banner-slider__slide:active {
    cursor: grabbing;
}

.banner-slider__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    user-select: none;
}

@media (max-width: 640px) {
    .banner-slider__swiper {
        padding-inline-start: var(--bs-side-padding);
    }
    .banner-slider__slide {
        width: clamp(130px, 38vw, 180px);
    }
}

.hero-title {
    font-family: 'Unbounded', sans-serif;
    font-size: 40px;
    position: absolute;
    top: 67%;
    left: 126px;
    color: white;
    background-color: rgba(0, 0, 0, 0.3);
    border-radius: 60px;
    backdrop-filter: blur(10px);
    padding: 40px 90px;
    border: 1px solid white;
}

.hero-small{
    position: absolute;
    max-width: 54px;
    color: #fff;
    font-family: 'Unbounded', sans-serif;
    top: 766px;
    left: 20px;
}

.hero-small h3{
    font-size: 16px;
}
.hero-small p{
    font-size: 12px;
    line-height: 1.4;
    font-weight: 350;
    color: #b1b1b1;
}
.team-card-bottom {
    font-size: 16px;
    font-weight: 400;
    text-transform: uppercase;
    font-family: 'Unbounded', sans-serif;
    margin: 10px auto;
}

.cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 4px 24px;
    background-color: #ff1a0a; /* основний червоний */
    border: none;
    border-radius: 50px; /* пігулка */
    color: #FFFFFF;
    font-size: 20px;
    font-weight: 700;
    text-transform: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
    font-family: 'Unbounded', sans-serif;
    text-decoration: none;

}

.cta-button:hover {
    background-color: #C71E18; /* трохи темніший на ховер */
}

.cta-button:active {
    transform: scale(0.98);
}

.cta-button svg,
.cta-button img {
    width: 31px;
    height: 31px;
    flex-shrink: 0;
}

.theater-people {
    position: absolute;
    bottom: 50%;
    left: 70%;
    color: #fff;
    font-family: 'Unbounded', sans-serif;
}

.theater-people h3{
    font-size: 33px;
    max-width: 412px;
}

.theater-people p{
    font-size: 14px;
    max-width: 357px;
    font-weight: 300;
}
.theater-people .underline{
    text-decoration: underline;
    text-underline-offset: 2px;
    text-transform: uppercase;
    font-weight: lighter;
}

.hero-single{
    position: relative;
}

.theater-person{
    position: absolute;
    bottom: 0;
    left: 54%;
    color: #fff;
    font-family: 'Unbounded', sans-serif;
    max-width: 786px;
}

.theater-person h1{
    font-size: 60px;
    text-transform: uppercase;
    max-width: 100px;
    margin-bottom: 0;
}

.theater-person h2{
    font-size: 40px;
    text-transform: uppercase;
    max-width: 700px;
    font-weight: lighter;
    margin-top: 0;
}

.theater-person p{
    font-size: 14px;
    font-weight: lighter;
}
.year-of-birth {
    position: absolute;
    top: 50px;
    right: 0px;
    font-size: 30px;
}
.year-of-birth .day-month{
font-weight: bold;
}

.meanless-phrase{
    position: absolute;
    font-family: 'Unbounded', sans-serif;
    color: white;
    max-width: 342px;
    top: 15%;
    left: 2%;
}
.meanless-phrase h3{
    font-size: 33px;
    max-width: 267px;
    margin-bottom: 0;
}

.meanless-phrase p{
    font-size: 14px;
    font-weight: lighter;

}

.page{
    --bg: #000000;
    --fg: #ffffff;
    --muted: rgba(255,255,255,.66);
    --divider: #fff;
    --radius: 26px;
    --gap: 76px;

    display: flex;
    align-items: flex-start;
    gap: var(--gap);
    max-width: 98%;
    margin: 0 auto;
    padding: 72px 56px;
    background: var(--bg);
    color: var(--fg);
    font-family: 'Unbounded', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
}

.page, .page *{ box-sizing: border-box; }

.page a{ color: inherit; }

.page .sidebar{
    flex: 0 0 406px;
    padding-right: var(--gap);
    border-right: 1px solid var(--divider);
    align-self: stretch;
    max-height: 500px;
}

.page .sidebar__nav{
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.page .sidebar__item{
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.page .sidebar__link{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 18px;
    letter-spacing: .2px;
    line-height: 1.15;
    color: var(--muted);
    transition: opacity .15s ease;
}

.page .sidebar__icon{
    flex: 0 0 auto;
    width: 21px;
    height: 21px;
    display: block;
}

/* активний пункт — жирніший і білий, інші лишаються приглушено-сірими */
.page .sidebar__item.is-active > .sidebar__link{
    font-weight: 800;
    color: var(--fg);
}

.page .sidebar__link:hover,
.page .sidebar__link:focus-visible{ opacity: .6; }

.page .sidebar__link:focus-visible{ outline: 1px solid var(--fg); outline-offset: 4px; }

/* підменю активного розділу — легша вага, без іконок, з відступом */
.page .sidebar__submenu{
    list-style: none;
    margin: 0;
    padding: 0 0 0 38px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.page .sidebar__submenu a{
    display: block;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 400;
    font-size: 16px;
    letter-spacing: .2px;
    line-height: 1.5;
    color: var(--muted);
    transition: opacity .15s ease;
}

.page .sidebar__submenu a:hover,
.page .sidebar__submenu a:focus-visible{ opacity: .6; }

.page .article-col{
    flex: 1 1 auto;
    min-width: 0;
}

/* ---------- сама стаття — все, що всередині неї, без класів (крім img) ---------- */
/* стилі на сам блок і на теги всередині нього висять через тег-селектори          */

.page article h1{
    margin: 0 0 26px;
    font-size: clamp(32px, calc(3.4 * var(--vw)), 46px);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .2px;
    line-height: 1.05;
}

.page article p{
    margin: 0 0 18px;
    max-width: 100%;
    font-size: 16px;
    font-weight: lighter;
    line-height: 1.65;
    color: white;
}

.page article p:last-of-type{ margin-bottom: 0; }

.page article div{
    margin-top: 44px;
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    grid-template-rows: repeat(3, 108px);
    gap: 4px;
    border-radius: var(--radius);
    overflow: hidden;
    background: #111;
}

.page article img{
    display: block;
    object-fit: cover;
}

/* зображення — єдиний елемент, якому дозволені власні класи */

.page .photo{ filter: grayscale(1) contrast(1.08) brightness(.92); }

.page .photo--poster{
    filter: sepia(.55) saturate(2.1) hue-rotate(-8deg) contrast(1.05) brightness(.92);
}

.page .p1{  grid-column: 1 / 2; grid-row: 1 / 2; }
.page .p2{  grid-column: 1 / 2; grid-row: 2 / 3; }
.page .p3{  grid-column: 1 / 2; grid-row: 3 / 4; }

.page .p4{  grid-column: 2 / 3; grid-row: 1 / 3; }
.page .p5{  grid-column: 2 / 3; grid-row: 3 / 4; }

.page .p6{  grid-column: 3 / 4; grid-row: 1 / 2; }
.page .p7{  grid-column: 3 / 4; grid-row: 2 / 4; }

.page .p8{  grid-column: 4 / 5; grid-row: 1 / 3; }
.page .p9{  grid-column: 4 / 5; grid-row: 3 / 4; }

.page .p10{ grid-column: 5 / 6; grid-row: 1 / 2; }
.page .p11{ grid-column: 5 / 6; grid-row: 2 / 3; }
.page .p12{ grid-column: 5 / 6; grid-row: 3 / 4; }

.page .p13{ grid-column: 6 / 7; grid-row: 1 / 4; }

.page .p14{ grid-column: 7 / 8; grid-row: 1 / 2; }
.page .p15{ grid-column: 7 / 8; grid-row: 2 / 4; }

.page .p16{ grid-column: 8 / 9; grid-row: 1 / 3; }
.page .p17{ grid-column: 8 / 9; grid-row: 3 / 4; }

.page .p18{ grid-column: 9 / 10; grid-row: 1 / 4; }

@import url('https://fonts.googleapis.com/css2?family=Unbounded:wght@700;800&display=swap');

.show-more {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;

    width: fit-content;
    margin: 0 auto;

    background-color: #000000;
    border: 2px solid #ffffff;
    border-radius: 999px;

    padding: 18px 40px;

    font-family: 'Unbounded', sans-serif;
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.5px;
    color: #ffffff;
    text-transform: uppercase;

    cursor: pointer;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.show-more img {
    width: 40px;
    height: 40px;
}

.show-more:hover {
    background-color: red;
}

.show-more:hover img {
    filter: invert(0);
}

.show-more:active {
    transform: scale(0.97);
}

.career-desc {
    max-width: 63%;
}

.info-data{
    color: red !important;
    margin-top: 40px !important;
    margin-left: 35px !important;
    font-weight: initial !important;
    font-size: 12px !important;

}

.info-img{
    filter: blur(3px);
}

.info-desc{
    margin: -10px 0 0 0 !important;
    padding-bottom: 10px !important;
    font-weight: initial !important;
}

.search-img {
    position: relative;
    left: 31.5%;
    margin-bottom: -42%;
}

.search-block {
    position: relative;
    left: 2%;
    padding-bottom: 2%;
    max-width: 26%;
}

.search-results {
    color: white;
    font-family: Unbounded, sans-serif;
    font-size: 60px;
    max-width: 26%;
    margin-bottom: unset;
    font-weight: 800;
}

.search-results-p {
    color: white;
    font-family: Unbounded, sans-serif;
    font-weight: 240;
    font-size: 14px;
}


.auth{
    font-family:'Unbounded',sans-serif;
    color:#fff;
    max-width:460px;
    width:100%;
    margin:0 auto;
    padding:31px 16px;
    position: absolute;
    bottom: 160px;
    left: 63%;
}

.auth *,
.auth *::before,
.auth *::after{
    box-sizing:border-box;
}

.auth h1,
.auth p,
.auth label,
.auth button,
.auth input{
    margin:0;
    padding:0;
}

.auth h1{
    text-align:center;
    font-size:50px;
    font-weight:700;
    line-height:1.1;
    margin-bottom:14px;
}

.auth .subtitle{
    text-align:center;
    color:#8b8b8b;
    font-size:17px;
    font-weight:500;
    margin-bottom:26px;
}

.auth .tabs{
    display:flex;
    background:#f8fafb;
    border-radius:46px;
    padding:5px;
    margin-bottom:31px;
}

.auth .tabs button{
    flex:1;
    height:48px;
    border:none;
    background:transparent;
    border-radius:46px;
    font-family:inherit;
    font-size:19px;
    font-weight:600;
    color:#000;
    cursor:pointer;
    transition:.25s;
}

.auth .tabs .active{
    background:#ff0000;
    color:#fff;
}

.auth .form-group{
    margin-bottom:22px;
}

.auth .form-group label{
    display:block;
    margin-bottom:9px;
    font-size:15px;
    font-weight:600;
}

.auth .input{
    display:flex;
    align-items:center;
    height:55px;
    padding:0 18px;
    background:#f8fafb;
    border-radius:31px;
}

.auth .input img{
    width:22px;
    height:22px;
    flex-shrink:0;
}

.auth .input input{
    flex:1;
    margin-left:13px;
    border:none;
    outline:none;
    background:transparent;
    font-family:inherit;
    font-size:15px;
    color:#000;
}

.auth .input input::placeholder{
    color:#8b8b8b;
}

.auth .eye{
    margin-left:10px;
    cursor:pointer;
}

.auth .login-btn{
    width:100%;
    height:57px;
    margin-top:16px;
    border:none;
    border-radius:31px;
    background:#f8fafb;
    color:#8d93a2;
    font-family:inherit;
    font-size:20px;
    font-weight:600;
    cursor:pointer;
    transition:.2s;
}

.auth .login-btn:hover{
    filter:brightness(.97);
}

.auth .options{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:22px 0 29px;
}

.auth .remember{
    display:flex;
    align-items:center;
    gap:9px;
    font-size:14px;
    font-weight:500;
    cursor:pointer;
}

.auth .remember input{
    display:none;
}

.auth .remember span{
    width:20px;
    height:20px;
    border-radius:6px;
    background:#f8fafb;
    display:block;
}

.auth .remember input:checked + span{
    background:#ff0000;
}

.auth .options a{
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:500;
}

.auth .divider{
    display:flex;
    align-items:center;
    gap:13px;
    margin-bottom:26px;
}

.auth .divider span{
    flex:1;
    height:1px;
    background:#d9d9d9;
}

.auth .divider p{
    color:#fff;
    font-size:14px;
    white-space:nowrap;
}

.auth .socials{
    display:flex;
    gap:16px;
}

.auth .socials button{
    flex:1;
    height:55px;
    border:none;
    border-radius:31px;
    background:#f8fafb;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    font-family:inherit;
    font-size:14px;
    font-weight:500;
    color:#000;
    cursor:pointer;
    transition:.2s;
}

.auth .socials button:hover{
    filter:brightness(.97);
}

.auth .socials img{
    width:24px;
    height:24px;
    flex-shrink:0;
}

@media (max-width:768px){

    .auth{
        padding:24px 14px;
    }

    .auth h1{
        font-size:38px;
    }

    .auth .subtitle{
        font-size:14px;
    }

    .auth .tabs button{
        height:44px;
        font-size:16px;
    }

    .auth .form-group label{
        font-size:14px;
    }

    .auth .input{
        height:50px;
        padding:0 16px;
    }

    .auth .input img{
        width:20px;
        height:20px;
    }

    .auth .input input{
        font-size:14px;
    }

    .auth .login-btn{
        height:52px;
        font-size:18px;
    }

    .auth .options{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
    }

    .auth .remember,
    .auth .options a,
    .auth .divider p{
        font-size:13px;
    }

    .auth .socials{
        flex-direction:column;
    }

    .auth .socials button{
        height:52px;
        font-size:14px;
    }
}

.user-info{
    font-size: 20px;
    font-weight: 300;
}

.user-phone-number,
.user-email-address,
.user-telegram{
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.user-phone-number img,
.user-email-address img,
.user-telegram img{
    width: 24px;      /* підбери потрібний розмір */
    height: 24px;
    flex-shrink: 0;   /* щоб іконка не стискалась */
}

.news-single {
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 0;
}

.news-single__wrapper {
    display: flex;
    align-items: flex-start;
}

.news-single__image {
    flex: 0 0 488px;
}

.news-single__image img {
    display: block;
    border-radius: 48px;
}

.news-single__content {
    flex: 1;
    color: #fff;
    margin-top: 50px;
}

.news-single__title {
    margin: 0 0 28px;
    font-size: 33px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -1px;
}

.news-single__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 250;
    color: white;
}

.news-single__date {
    margin-top: 28px;
    font-size: 14px;
    font-weight: lighter;
    color: #fff;
}

@media (max-width:1200px){

    .news-single__wrapper{
        gap:35px;
    }

    .news-single__image{
        flex:0 0 420px;
    }

    .news-single__title{
        font-size:42px;
    }

    .news-single__text{
        font-size:17px;
    }

}

@media (max-width:900px){

    .news-single__wrapper{
        flex-direction:column;
    }

    .news-single__image{
        flex:unset;
        width:100%;
    }

    .news-single__image img{
        max-width:600px;
    }

    .news-single__title{
        font-size:36px;
    }

}

@media (max-width:600px){

    .news-single{
        padding:20px 0;
    }

    .news-single__wrapper{
        gap:25px;
    }

    .news-single__image img{
        border-radius:30px;
    }

    .news-single__title{
        font-size:28px;
        margin-bottom:18px;
    }

    .news-single__text{
        font-size:16px;
    }

    .news-single__date{
        font-size:18px;
        margin-top:20px;
    }

}

.person-socials{
    position: absolute;
    bottom: 58%;
    left: 48.5%;
    width: 79px;
    height: 240px;
}

.contacts-wrapper {
    display: flex;
    gap: 20px;
    align-items: stretch;
    width: 95%;
    margin: auto;
    padding-bottom: 3%;
}

.contacts-info {
    width: 25%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.contacts-item {
    margin-bottom: 22px;
}

.contacts-item:last-child {
    margin-bottom: 0;
}

.contacts-title {
    color: #fff;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.contacts-text {
    color: #fff;
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 14px;
    font-weight: 400;
}

.contacts-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: 54px;
    background: #ff1712;
    border-radius: 999px;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    transition: .25s;
}

.contacts-btn:hover {
    background: #d9100c;
}

.contacts-btn img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}

.contacts-map {
    flex: 1;
    overflow: hidden;
    border-radius: 28px;
    min-height: 450px;
}

.contacts-map iframe {
    display: block;
    width: 100%;
    height: 100%;
}

.contacts-title,
.contacts-text,
.contacts-btn {
    font-family: "Unbounded", sans-serif;
}

.show-more-red {
    position: relative;
    background: none;
    border: 0;
    padding: 0;
    color: #ff0000;
    font: lighter 28px/1 "Unbounded", sans-serif;
    letter-spacing: -0.5px;
    cursor: pointer;
    transition: color .2s;
    left: 80.5%;
    transform: scale(0.98);
}

.show-more-red:hover {
    color: #ff2b2b;
}

.show-more-red:active {
    transform: scale(0.96);
}

.banner-slider.expanded .banner-slider__top {
    display: none !important;
}

.banner-slider.expanded .banner-slider__swiper {
    padding-inline-start: 0;
    overflow: visible;
}

.banner-slider.expanded .swiper-wrapper {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    grid-template-rows: repeat(2, 1fr) !important;
    gap: 20px;
    transform: none !important;
}

.banner-slider.expanded .swiper-slide {
    width: 100% !important;
    margin: 0 !important;
}

.mask{
    position: absolute;
    bottom: 65%;
    right: 1%;
}

.change-img{
    position: relative;
    margin-top: -10%;
}

.auth-buttons {
    position: absolute;
    top: 50%;
    left: 75%;
    transform: translate(-50%, -50%);

    display: flex;
    gap: 10px;

    font-size: 30px;
    font-family: Unbounded, sans-serif;
}

.auth-buttons a {
    display: flex;
    align-items: center;
    justify-content: center;

    border: 2px solid transparent;
    border-radius: 60px;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
}

.auth-buttons .register {
    width: 560px;
    height: 120px;
    background: red;
}

.auth-buttons .login {
    width: 300px;
    height: 120px;
    border-color: white;
}

.action-buttons{
    display:flex;
    align-items:center;
    gap:16px;
    width: 26%;
    margin: auto;
    padding-top: 0.1%;
}

.btn-ticket,
.btn-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    text-decoration:none;
    transition:.2s;
    box-sizing:border-box;
}

.btn-ticket{
    width:282px;
    height:56px;
    background:#FF0000;
    color:#fff;
    font-family:'Unbounded', sans-serif;
    font-size:18px;
    font-weight:700;
    gap:14px;
}

.btn-ticket img{
    width:26px;
    height:26px;
    flex-shrink:0;
}

.btn-ticket:hover{
    background:#d70000;
}

.btn-icon{
    width:56px;
    height:56px;
    background:#161616;
    border:1px solid #2b2b2b;
    box-shadow:
            inset 0 1px 0 rgba(255,255,255,.05),
            0 2px 8px rgba(0,0,0,.35);
}

.btn-icon img{
    width:24px;
    height:24px;
    transition:.2s;
}

.btn-icon:hover{
    background:#202020;
    border-color:#3a3a3a;
}

.btn-icon:hover img{
    transform:scale(1.08);
}

.promo {
    position: absolute;
    top: 65%;
    right: 2.5%;
    display: flex;
    align-items: center;
    gap: 36px;

    width: 520px;
    height: 280px;
    padding: 14px 32px 14px 14px;

    background: #ffffff;
    border-radius: 32px;
}

/* Фото зліва */
.promo__photo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 230px;
    max-height: 252px;
    object-fit: cover;
    border-radius: 18px;
    flex-shrink: 0;
}

/* Текстовий блок справа */
.promo__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
    min-width: 0;
}

.promo__title {
    font-family: 'Unbounded', sans-serif;
    font-weight: 800;
    font-size: 26px;
    line-height: 1.25;
    color: #242026;
    margin-bottom: 1px;
}

.promo__text {
    font-family: 'Unbounded', sans-serif;
    font-weight: 450;
    font-size: 12px;
    line-height: 1.55;
    color: #959595;
    margin-bottom: 16px;
}

.promo__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    height: 65px;

    padding: 18px 28px;
    border: 2px solid #000000;
    border-radius: 999px;

    font-family: 'Unbounded', sans-serif;
    font-weight: bold;
    font-size: 14px;
    color: #434343;
    text-decoration: none;
    white-space: nowrap;

    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    margin-left: -8px;
}

.promo__btn:hover {
    background-color: #000000;
    color: #ffffff;
}

.promo__btn:active {
    transform: scale(0.98);
}


.search-box{
    position: absolute;
    top: 50%;
    left: 15%;
    transform: translateY(-50%);
    width: 0;
    height: 56px;
    opacity: 0;
    overflow: hidden;

    display: flex;
    align-items: center;

    background: #fff;
    border-radius: 50px;

    transition:
            width .35s ease,
            opacity .25s ease;
}

.search-box.active{
    width: 1520px;
    opacity: 1;
}

.search-box input{
    flex: 1;
    height: 56px;
    border: none;
    outline: none;
    background: transparent;
    padding: 0 20px;
    font-size: 14px;
    font-family: Unbounded, sans-serif;
}

.search-submit{
    width: 56px;
    height: 56px;
    border: none;
    background: transparent;
    cursor: pointer;
    border-left: 1px solid #ddd;

    display: flex;
    justify-content: center;
    align-items: center;
}

.search-btn{
    position: relative;
    z-index: 2;
}

/* ============================================
   PAGE LAYOUT CLASSES
   Extracted from inline styles so laptop
   breakpoints can override them.
   ============================================ */

.hero--flush {
    padding-bottom: 0;
}

.hero > img {
    width: 100%;
    height: auto;
    display: block;
}

.hero-media {
    position: relative;
    width: 50%;
    display: inline-block;
    vertical-align: top;
}

.hero-media img {
    width: 100%;
    height: auto;
    display: block;
}

.hero-media--auth img {
    padding-bottom: 100px;
}

.hero-media__fade {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.95), transparent);
    pointer-events: none;
}

.hero--single-tall {
    height: 1200px;
}

.hero--single-tall__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero--single-tall::after {
    content: "";
    position: absolute;
    bottom: 0;        /* Притискає затемнення до самого низу */
    left: 0;
    width: 100%;

    /* Задайте точну висоту смуги затемнення: */
    height: 20%;      /* АБО можна вказати фіксовано, наприклад: height: 80px; */

    /* Плавний перехід від чорного (знизу) до прозорого (вгору) */
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);

    pointer-events: none;
    z-index: 0;
}

.hero-play img {
    height: auto;
    display: block;
}

.hero-headline--curtain {
    display: block;
    bottom: 0;
    right: 324px;
}

.headline-text--indent {
    margin-left: 90px;
    text-align: left;
}

.headline-text--indent-lg {
    margin-left: 140px;
    text-align: left;
}

.headline-text--left {
    text-align: left;
}

.hero-headline--news {
    display: block;
    bottom: 0;
    left: 0;
    right: auto;
}

.hero-headline--location {
    display: block;
    bottom: 0;
    right: 150px;
}

.headline-bottom--flat {
    transform: none;
}

.hero-headline--mask {
    display: block;
    bottom: 8%;
    right: 36.5%;
}

.hero-headline--auth {
    display: block;
    bottom: 0;
    right: 30%;
}

.hero-headline--team {
    right: 130px;
    bottom: 50px;
}

.hero-headline--profile {
    right: 160px;
    bottom: 35px;
}

.hero-headline--recommend {
    bottom: 49%;
}

.hero-title--recommend {
    top: 20%;
}

.hero-show-card--mask {
    top: 50%;
    left: 10%;
    right: auto;
    height: 210px;
    width: 575px;
    align-items: flex-start;
}

.hero-show-card--mask .show-card-title {
    font-size: 20px;
    font-weight: 700;
    width: auto;
    margin-bottom: 0;
    letter-spacing: normal;
}

.hero-show-card--mask .show-card-text {
    font-size: 20px;
    font-weight: 400;
    width: auto;
}

.theater-person--profile {
    bottom: 500px;
}

.profile-edit {
    right: auto;
    left: calc(250% + 16px);
    top: 48px;
}


.article-col--narrow {
    max-width: 55%;
}

.repertoire--spaced {
    padding-bottom: 100px;
}

.repertoire--contained {
    max-width: 98%;
    margin-left: auto;
    margin-right: auto;
}

.repertoire--overlap {
    max-width: 98%;
    margin: -27% auto 0;
}

.banner-slider--contained {
    max-width: 98%;
    padding-bottom: 100px;
}

.team--pull {
    margin-top: -45px;
}

.page article img {
    max-width: 100%;
    height: auto;
}

.page-team .hero {
    padding-bottom: 20px;
}

.page-team .day {
    font-size: 20px;
}

.page-career .theater-person {
    bottom: 50px;
}

.page-career .theater-person p,
.page-career .theater-person li {
    font-size: 18px;
}

.page-career .theater-person h3 {
    font-size: 18px;
    font-weight: 500;
    margin: 18px 0 8px;
}

.page-career .theater-person ul {
    margin: 0;
    padding-left: 20px;
}

.page-search .theater-stage {
    padding-top: 50px;
}

.page-gallery .page article div,
.page-architecture .page article div,
.page-information .page article div,
.page-careers .page article div {
    margin-top: 0;
    display: flex;
    border-radius: 0;
    overflow: unset;
    background: none;
}

.page-gallery .banner-slider__top,
.page-architecture .banner-slider__top {
    display: block;
}

.page-information .repertoire-card__content,
.page-careers .repertoire-card__content {
    display: flex;
    flex-direction: column;
}

.page-information .cta-button,
.page-careers .cta-button {
    padding: 4px 24px;
    font-weight: 400;
}

.page-information .repertoire__list {
    grid-template-columns: repeat(2, 1fr);
}

.page-careers .repertoire__list {
    grid-template-columns: repeat(3, 1fr);
}

.page-information .repertoire-card__content h3,
.page-careers .repertoire-card__content h3 {
    line-height: 2;
}

.page-location .repertoire-card__content {
    display: flex;
    flex-direction: column;
}

.page-location .repertoire-card__content h3 {
    padding-bottom: 10px;
}

.page-rules article h2 {
    max-width: 32%;
}

/* ============================================
   LAPTOP ADAPTATION (1336px – 1920px)
   Fluid scaling for every page. Existing tablet
   and phone breakpoints below 1336px are unchanged.
   ============================================ */












.repertoire--search {
    padding-top: 140px !important;
}
/* Колектив: кнопка «Показати ще» під сіткою */
.show-more--team {
    margin-top: 40px;
}

/* Технічні характеристики: текст і дві схеми зали в один ряд */
.page-tech .page article {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 0.9fr);
    /* остання рядкова доріжка забирає зайву висоту від схем, щоб текст не розтягувався */
    grid-template-rows: repeat(4, auto) 1fr;
    column-gap: 20px;
    align-items: start;
}

.page-tech .page article > :not(.tech-plan) {
    grid-column: 1;
}

.page-tech .page article h1 {
    margin-bottom: 20px;
    font-size: clamp(22px, calc(1.6 * var(--vw)), 30px);
}

.page-tech .page article h2 {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
}

.page-tech .page article p {
    margin-bottom: 14px;
    font-size: 13px;
    line-height: 1.35;
}

.page-tech .page .tech-plan {
    width: 100%;
    height: auto;
    grid-row: 1 / span 5;
}

.page-tech .page .tech-plan--main { grid-column: 2; }
.page-tech .page .tech-plan--small { grid-column: 3; }

@media (max-width: 1335px) {
    .page-tech .page article {
        display: block;
    }

    .page-tech .page .tech-plan {
        margin-top: 20px;
    }
}

/* Афіша: червоний бейдж з датою над назвою вистави */
.repertoire-card__date {
    display: inline-block;
    margin-bottom: 8px;
    padding: 4px 16px;
    border-radius: 999px;
    background: #ff0000;
    color: #ffffff;
    font-family: 'Unbounded', sans-serif;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.2;
}

/* =====================
   БУДІВЛЯ ТЕАТРУ (building.html)
   ===================== */

/* статті тут без div — .page article div перетворює div на сітку постерів */
.page-building .page article p {
    font-size: 14px;
    line-height: 1.35;
}

.page-building .page article p:last-of-type {
    margin-bottom: 18px;
}

.bld-row {
    display: grid;
    gap: 28px;
    align-items: start;
    margin: 0 0 32px;
}

.bld-row--text-first { grid-template-columns: minmax(0, 0.56fr) minmax(0, 1fr); }
.bld-row--media-first { grid-template-columns: minmax(0, 1fr) minmax(0, 0.53fr); }
.bld-row--text-aside { grid-template-columns: minmax(0, 1fr) minmax(0, 0.53fr); }
.bld-row--pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 12px; }

.bld-row--mosaic {
    grid-template-columns: minmax(0, 0.52fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 20px;
}

.bld-row--mosaic .bld-photo--tall { grid-row: 1 / span 2; height: 100%; }

.bld-aside {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.bld-photo {
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #111;
}

.page .bld-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bld-photo--wide { margin-bottom: 32px; }

.bld-video {
    position: relative;
    max-width: 1100px;
    margin: 40px auto 0;
    overflow: hidden;
    border-radius: 12px;
    background: #111;
    aspect-ratio: 573 / 220;
}

.page .bld-video img,
.bld-video iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 0;
}

/* назва вже є на обкладинці, підпис лишаємо лише для скрінрідерів */
.bld-video figcaption {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.bld-video__play {
    position: absolute;
    inset: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

@media (max-width: 1335px) {
    .bld-row--text-first,
    .bld-row--media-first,
    .bld-row--text-aside,
    .bld-row--mosaic {
        grid-template-columns: 1fr;
    }

    .bld-row--mosaic .bld-photo--tall { grid-row: auto; }

    .bld-aside { flex-direction: row; }
    .bld-aside .bld-photo { flex: 1 1 0; }
}

@media (max-width: 768px) {
    .bld-row--pair { grid-template-columns: 1fr; }
    .bld-aside { flex-direction: column; }
}

.bld-video.is-playing { aspect-ratio: 16 / 9; }

/* =====================
   БОКОВЕ МЕНЮ «ЖИТТЯ ЗА ЗАВІСОЮ»
   закриті пункти — стрілка вгору (↗) і приглушені, відкритий — стрілка вниз (↘) і білий
   ===================== */
.page .sidebar__item:not(.is-active) .sidebar__submenu {
    display: none;
}

.page .sidebar__item:not(.is-active) .sidebar__icon {
    opacity: .66;
}

.page .sidebar__item.is-active > .sidebar__link,
.page .sidebar__item.is-active .sidebar__icon {
    opacity: 1;
}

.page .sidebar__submenu a.is-current {
    color: var(--fg);
    font-weight: 600;
}

/* поки підвантажується інший розділ */
.page .article-col.is-loading {
    opacity: .4;
    transition: opacity .15s ease;
}

/* =====================
   «ВІДЧУЙТЕ СПРАВЖНІ ЕМОЦІЇ» — як у макеті: заголовок у два рядки ліворуч,
   два «квитки» впритул праворуч. До 1335px працює мобільна версія з mobile.css.
   ===================== */
@media (min-width: 1336px) {
    .act-epilogue {
        width: auto;
        align-items: center;
        gap: 40px;
        padding-top: 50px;
    }

    .manifesto-headline {
        font-size: clamp(40px, calc(3.15 * var(--vw)), 60px);
        white-space: nowrap;
    }

    .about-theater-tag {
        font-size: clamp(16px, calc(1.1 * var(--vw)), 20px);
        margin-left: 16px;
    }

    .credo-deck {
        gap: 4px;
        align-items: stretch;
    }

    .credo-box {
        width: 362px;
        min-height: 201px;
        padding: 0 34px 0 28px;
        justify-content: flex-start;
    }

    .credo-box--right {
        width: 357px;
        padding: 0 24px 0 36px;
    }

    /* svg-квитки малюються в натуральний розмір; лівий має поля під тінь */
    .credo-box::before,
    .credo-box--left::before,
    .credo-box--right::before {
        transform: none;
        background-size: 100% 100%;
    }

    .credo-box--left::before {
        left: -89.6px;
        top: -85.6px;
        width: 542px;
        height: 381px;
    }

    .credo-box--right::before {
        left: 0;
        top: 0;
        width: 357px;
        height: 201px;
    }

    .credo-box__content,
    .credo-box--left .credo-box__content,
    .credo-box--right .credo-box__content {
        width: auto;
        transform: none;
        font-size: 16px;
        line-height: 1.4;
    }
}



/* --- «Квитки» у блоці «Відчуйте»: текст як у макеті --- */
@media (min-width: 1336px) {
    .credo-box {
        padding: 0 30px 0 58px;
    }

    .credo-box--right {
        padding: 0 30px 0 66px;
    }

    .credo-box__content,
    .credo-box--left .credo-box__content,
    .credo-box--right .credo-box__content {
        max-width: 250px;
        font-size: 18px;
        line-height: 1.35;
    }
}

/* =====================
   ФУТЕР ЗА МАКЕТОМ (однаковий на всіх сторінках)
   ===================== */
.site-footer {
    font-family: 'Unbounded', sans-serif;
}

.info-label,
.info-text {
    font-family: 'Unbounded', sans-serif;
    font-weight: 300;
    font-size: 13px;
    line-height: 1.25;
    color: #ffffff;
}

.info-block {
    gap: 0;
    margin-bottom: 10px;
}

.sub-menu a {
    font-weight: 400;
    color: #a3a3a3;
}

@media (min-width: 1336px) {
    .footer-container {
        display: grid;
        grid-template-columns: 61px minmax(0, 3fr) minmax(0, 1.6fr) minmax(0, 2.8fr) auto;
        align-items: start;
        gap: 0;
        padding: 0 32px 52px 23px;
    }

    .footer-socials {
        gap: 26px;
        margin-right: 0;
    }

    .social-btn {
        width: 61px;
        height: 61px;
    }

    .footer-info {
        max-width: none;
        padding-left: 32px;
    }

    /* у svg лого є внутрішні поля, тож видима ширина ≈ 350px, як у макеті */
    .footer-logo {
        width: 430px;
        max-width: 100%;
        height: auto;
        margin-bottom: 8px;
    }

    .footer-nav ul {
        gap: 16px;
    }

    .footer-nav > ul > li > a {
        font-size: 18px;
    }

    .sub-menu {
        margin-top: 4px;
        padding-left: 50px !important;
        gap: 2px !important;
    }

    .sub-menu a {
        font-size: 18px;
        line-height: 1.35;
    }

    .phone-btn {
        min-width: 339px;
        min-height: 82px;
        justify-content: center;
        padding: 14px 36px;
        border-radius: 999px;
    }

    .phone-number {
        font-size: 25px;
    }

    .phone-desc {
        font-size: 14px;
    }
}



/* =====================
   ТЕКСТ НЕ ВИХОДИТЬ ЗА МЕЖІ КНОПОК
   ===================== */

/* «розгорнути всі...» у галереї: праворуч під слайдером, не зсувається за край */
.show-more-red {
    display: block;
    position: static;
    left: auto;
    right: auto;
    margin: 16px 0 0 auto;
    white-space: nowrap;
    transform: none;
}

.show-more-red:active {
    transform: scale(0.98);
}



/* =====================
   КАРТКИ ВИСТАВ І КОЛЕКТИВУ
   У звичайному стані — лише назва на легкому затемненні. При наведенні (або тапі
   на тач-екрані) з'являються опис і кнопки. Клікаються тільки «Детальніше» і «Квитки».
   Розміри задані в cqi — частках ширини картки, тож пропорції як у макеті
   при будь-якій ширині картки. Картки з класом .active (вакансії, документи)
   лишаються завжди розгорнутими.
   ===================== */
.repertoire-card {
    container-type: inline-size;
    cursor: default;
}

/* затемнення під назвою — завжди; сильніше — коли картка розгорнута */
.repertoire-card__overlay {
    background: linear-gradient(to top,
        rgba(0, 0, 0, 0.78) 0%,
        rgba(0, 0, 0, 0.4) 20%,
        rgba(0, 0, 0, 0) 38%);
}

.repertoire-card__overlay::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top,
        rgba(0, 0, 0, 0.92) 0%,
        rgba(0, 0, 0, 0.75) 32%,
        rgba(0, 0, 0, 0) 62%);
    opacity: 0;
    transition: opacity .35s ease;
}

/* те, що показується лише в розгорнутому стані */
.repertoire-card__content > p,
.repertoire-card__bottom,
.repertoire-card__content > .cta-button {
    max-height: 0;
    margin-top: 0;
    margin-bottom: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, margin .35s ease;
}

.repertoire-card.active .repertoire-card__overlay::after,
.repertoire-card.is-open .repertoire-card__overlay::after {
    opacity: 1;
}

.repertoire-card.active .repertoire-card__content > p,
.repertoire-card.active .repertoire-card__bottom,
.repertoire-card.active .repertoire-card__content > .cta-button,
.repertoire-card.is-open .repertoire-card__content > p,
.repertoire-card.is-open .repertoire-card__bottom,
.repertoire-card.is-open .repertoire-card__content > .cta-button {
    max-height: 30cqi;
    opacity: 1;
    overflow: visible;
}

@media (hover: hover) {
    .repertoire-card:hover .repertoire-card__overlay::after {
        opacity: 1;
    }

    .repertoire-card:hover .repertoire-card__content > p,
    .repertoire-card:hover .repertoire-card__bottom,
    .repertoire-card:hover .repertoire-card__content > .cta-button {
        max-height: 30cqi;
        opacity: 1;
        overflow: visible;
    }
}

/* пропорції за макетом (картка 470px на екрані 1920); на вужчих екранах — mobile.css */
@media (min-width: 1336px) {
    .repertoire-card .repertoire-card__content {
        left: 7cqi;
        right: 7cqi;
        bottom: 6.5cqi;
    }

    .repertoire-card .repertoire-card__content h3 {
        font-size: clamp(15px, 4.7cqi, 24px);
        line-height: 1.1;
    }

    .repertoire-card .repertoire-card__content > p {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        max-width: none;
        font-family: 'Unbounded', sans-serif;
        font-size: clamp(11px, 2.8cqi, 14px);
        font-weight: 400;
        line-height: 1.2;
        transform: none;
    }

    .repertoire-card .repertoire-card__bottom {
        display: grid;
        grid-template-columns: repeat(3, minmax(max-content, 1fr));
        gap: 1.7cqi;
        padding: 0;
    }

    .repertoire-card .repertoire-card__meta span,
    .repertoire-card .repertoire-card__btn {
        height: clamp(30px, 9.4cqi, 46px);
        padding: 0 2cqi;
        gap: 1.3cqi;
        border-radius: 999px;
        font-family: 'Unbounded', sans-serif;
        font-size: clamp(9px, 2.9cqi, 14px);
        font-weight: 400;
        white-space: nowrap;
        transform: none;
        opacity: 1;
    }

    .repertoire-card .repertoire-card__meta span {
        background: rgba(28, 28, 28, 0.85);
        border: 1px solid rgba(255, 255, 255, 0.08);
        color: #a6a6a6;
    }

    .repertoire-card .repertoire-card__meta img {
        width: clamp(11px, 4.5cqi, 21px);
        height: auto;
        opacity: .7;
    }

    .repertoire-card .repertoire-card__btn {
        background: #ff0000;
        color: #ffffff;
    }

    .repertoire-card .repertoire-card__btn img {
        width: clamp(9px, 3cqi, 14px);
        height: auto;
    }

    .repertoire-card .repertoire-card__content > .cta-button {
        height: clamp(34px, 9.4cqi, 46px);
        padding: 0;
        gap: 2cqi;
        border-radius: 999px;
        font-size: clamp(14px, 4.2cqi, 20px);
    }

    .repertoire-card .repertoire-card__content > .cta-button img {
        width: clamp(16px, 5cqi, 24px);
        height: auto;
    }

    /* відступи між рядками розгорнутої картки */
    .repertoire-card.active .repertoire-card__content > p,
    .repertoire-card.is-open .repertoire-card__content > p {
        margin: 1.4cqi 0 3.4cqi;
    }

    .repertoire-card.active .repertoire-card__content > .cta-button,
    .repertoire-card.is-open .repertoire-card__content > .cta-button {
        margin-top: 1.9cqi;
    }

    @media (hover: hover) {
        .repertoire-card:hover .repertoire-card__content > p {
            margin: 1.4cqi 0 3.4cqi;
        }

        .repertoire-card:hover .repertoire-card__content > .cta-button {
            margin-top: 1.9cqi;
        }
    }
}

/* з клавіатури (Tab) картка розгортається так само, як при наведенні */
.repertoire-card:focus-within .repertoire-card__overlay::after {
    opacity: 1;
}

.repertoire-card:focus-within .repertoire-card__content > p,
.repertoire-card:focus-within .repertoire-card__bottom,
.repertoire-card:focus-within .repertoire-card__content > .cta-button {
    max-height: 30cqi;
    opacity: 1;
    overflow: visible;
}

/* старі правила ховають кнопку через opacity — для тапу і фокусу теж показуємо */
.repertoire-card.is-open .repertoire-card__btn,
.repertoire-card:focus-within .repertoire-card__btn {
    opacity: 1;
    transform: none;
}

/* іконка-стрілка в «Детальніше»: загальне .repertoire-card img розтягує її на всю кнопку */
.repertoire-card .repertoire-card__btn img {
    width: clamp(9px, 3cqi, 14px);
    height: auto;
    flex: 0 0 auto;
}

/* =====================
   ДЕСКТОП = МАКЕТ 1920, ПРОПОРЦІЙНО МАСШТАБОВАНИЙ
   Від 1336px сторінка верстається як макет шириною 1920 і масштабується під ширину
   вікна (zoom задає scripts/desktop-scale.js). Тому відступи, розміри шрифтів і
   положення блоків на будь-якому ноутбуці/моніторі такі самі, як у макеті.
   До 1335px працює адаптивна версія з mobile.css.
   ===================== */
:root {
    --vw: 1vw;
}

@media (min-width: 1336px) {
    :root {
        --vw: 19.2px;
    }

    html {
        overflow-x: hidden;
    }

    body {
        width: 1920px;
        zoom: var(--site-zoom, 1);
    }
}

/* =====================
   ГЕОМЕТРІЯ ЗА МАКЕТОМ 1920 (дані з Figma, кадри 59:5926 / 59:6565 / 59:6982)
   ===================== */
@media (min-width: 1336px) {

    /* --- Хедер: скляна «пігулка» 1870×100 на відступі 25/43 --- */
    .site-header {
        top: 43px;
        left: 25px;
        right: auto;
        width: 1870px;
        height: 100px;
        padding: 0 20px 0 40px;
        border-radius: 100px;
    }

    .site-header .logo {
        width: 246px;
        height: 60px;
    }

    .site-header .main-nav,
    .site-header .secondary-nav {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }

    .site-header .main-nav { left: 615px; }
    .site-header .secondary-nav { left: 1321px; }

    .site-header .main-nav .nav-list { gap: 22px; }

    /* у макеті пункти меню мають фіксовану ширину: 90 / 129 / 113 */
    .site-header .main-nav .nav-list li:nth-child(1) { width: 90px; }
    .site-header .main-nav .nav-list li:nth-child(2) { width: 129px; }
    .site-header .main-nav .nav-list li:nth-child(3) { width: 113px; }
    .site-header .secondary-nav .nav-list { gap: 76px; }

    .site-header .nav-list a {
        font-family: 'Onest', 'Inter', sans-serif;
        font-size: 16px;
        font-weight: 400;
        letter-spacing: 0;
    }

    .site-header .secondary-nav .nav-list a {
        font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
        letter-spacing: -0.02em;
    }

    .site-header .header-actions { gap: 10px; margin-left: auto; }

    .site-header .icon-btn {
        width: 54px;
        height: 54px;
    }

    /* --- «БАЧИТИ ↗ГОЛОВНЕ [↘]»: група 1261×265, однакова на всіх сторінках --- */
    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) {
        display: block;
        width: 1261px;
        height: 265px;
        gap: 0;
        transform: none;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-text {
        font-size: 160.7px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.02em;
        white-space: nowrap;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-top {
        position: absolute;
        left: 362px;
        top: var(--cap-shift);
        text-align: left;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-bottom {
        position: absolute;
        left: 0;
        top: 142px;
        width: 100%;
        height: 125px;
        margin: 0;
        display: block;
        transform: none;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-left {
        position: absolute;
        left: 0;
        top: var(--cap-shift);
        display: block;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-arrow {
        position: absolute;
        left: -133px;
        top: calc(1px - var(--cap-shift));
        width: 116px;
        height: 116px;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-arrow img {
        display: block;
        width: 100%;
        height: 100%;
    }

    .hero-headline:not(.hero-headline--curtain):not(.hero-headline--news):not(.hero-headline--location):not(.hero-headline--mask):not(.hero-headline--auth) .headline-btn {
        position: absolute;
        left: 944px;
        top: -2px;
        width: 305px;
        height: 125px;
        border-radius: 112px;
        border-width: 2.2px;
    }

    .hero-headline .headline-btn img {
        width: 22px;
        height: 22px;
    }

    /* зсув між верхом рядка CSS і верхом великих літер Unbounded (Figma обрізає рядок по капітелі) */
    .hero-headline {
        --cap-shift: -20px;
    }

    /* положення групи на сторінках (лівий верхній кут, як у Figma) */
    .page-home .hero-headline { left: 528px; top: 707px; right: auto; bottom: auto; }
    .page-afisha .hero-headline,
    .page-repertoire .hero-headline { left: 528px; top: 246px; right: auto; bottom: auto; }
    .page-team .hero-headline { left: 614px; top: 680px; right: auto; bottom: auto; }
    .page-profile .hero-headline,
    .page-single .hero-headline--recommend { right: 131px; left: auto; }

    /* --- Головна: картки героя --- */
    .page-home .hero-subscribe {
        left: 43px;
        top: 302px;
        width: 171px;
        height: 370px;
        transform: none;
        padding: 122px 0 0;
        gap: 0;
        align-items: center;
        border-radius: 68px;
    }

    .page-home .subscribe-icon {
        width: 32px;
        height: 32px;
        padding: 0;
        opacity: 1;
    }

    .page-home .subscribe-icon img { width: 32px; height: 32px; display: block; }

    .page-home .subscribe-title {
        margin-top: 33px;
        font-size: 14px;
        font-weight: 600;
        line-height: 18px;
        letter-spacing: 0.02em;
        text-transform: lowercase;
    }

    .page-home .subscribe-text {
        position: static;
        width: 80px;
        margin-top: 13px;
        font-size: 14px;
        font-weight: 300;
        line-height: 18px;
        letter-spacing: 0.04em;
    }

    /* центр білого круга 486/589; у play.png круг зміщений на 8px вниз від центру картинки */
    .page-home .hero-play {
        left: 486px;
        top: 581px;
    }

    /* білий круг у play.png займає 214 з 524px — так він виходить 216px, як у макеті */
    .page-home .hero-play img {
        width: 529px;
    }

    .page-home .hero-show-card {
        left: 1001px;
        top: 444px;
        right: auto;
        width: 397px;
        height: 209px;
        transform: none;
        padding: 69px 0 0 62px;
        justify-content: flex-start;
        align-items: flex-start;
        border-radius: 68px;
    }

    .page-home .show-card-title {
        width: auto;
        margin: 0 0 14px;
        font-size: 20px;
        font-weight: 900;
        line-height: 18px;
        letter-spacing: 0.02em;
    }

    .page-home .show-card-text {
        width: 297px;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.1;
    }

    .page-home .hero-quote {
        left: 22px;
        top: 720px;
        bottom: auto;
        gap: 0;
        max-width: 320px;
    }

    .page-home .quote-tag {
        margin: 0 0 41px;
        font-family: 'Inter', sans-serif;
        font-size: 12px;
        font-weight: 500;
        line-height: 1;
    }

    .page-home .quote-text {
        font-size: 26px;
        font-weight: 200;
        line-height: 1.2;
        letter-spacing: -0.03em;
    }

    .page-home .quote-author {
        margin-top: 4px;
        font-family: 'Inter', sans-serif;
        font-size: 14px;
        font-weight: 300;
        line-height: 18px;
        letter-spacing: 0.04em;
    }

    /* --- Календар: картки 250×99, легший шрифт --- */
    .repertoire-date-card {
        height: 99px;
        border-radius: 34px;
        font-family: 'Unbounded', sans-serif;
    }

    .repertoire-date-card .date-line { gap: 6px; }

    .repertoire-date-card .day {
        font-size: 20px;
        font-weight: 800;
        line-height: 1;
    }

    .repertoire-date-card .month {
        font-size: 20px;
        font-weight: 400;
        line-height: 1;
    }

    .repertoire-date-card .label {
        margin-top: 11px;
        font-size: 16px;
        font-weight: 300;
        line-height: 1;
    }

    .page-home .repertoire-slider .swiper-slide {
        width: 250px !important;
        margin-right: 10px !important;
    }

    .page-home .repertoire-slider {
        padding-left: 22px;
    }

    /* календар у макеті починається на 1049px, одразу під героєм */
    .page-home .hero + .repertoire {
        margin-top: -16px;
    }
}

/* --- Картки, колектив, афіша: точні розміри з макету (десктоп завжди 1920, тож px) --- */
@media (min-width: 1336px) {
    .repertoire__list {
        padding-left: 22px;
        padding-right: 22px;
        gap: 20px;
    }

    .repertoire-card {
        height: 566px;
        border-radius: 68px;
    }

    .repertoire-card .repertoire-card__content {
        left: 33px;
        right: 33px;
        bottom: 33px;
    }

    .repertoire-card .repertoire-card__date {
        width: 123px;
        height: 30px;
        margin-bottom: 6px;
        padding: 0;
        text-align: center;
        font-size: 20px;
        font-weight: 500;
        line-height: 30px;
    }

    .repertoire-card .repertoire-card__content h3 {
        font-size: 20px;
        font-weight: 900;
        line-height: 1;
    }

    .repertoire-card .repertoire-card__content > p {
        font-size: 12px;
        font-weight: 400;
        line-height: 18.7px;
    }

    .repertoire-card.active .repertoire-card__content > p,
    .repertoire-card.is-open .repertoire-card__content > p,
    .repertoire-card:focus-within .repertoire-card__content > p {
        margin: 7px 0 3px;
        max-height: 60px;
    }

    .repertoire-card .repertoire-card__bottom {
        grid-template-columns: repeat(3, 124px);
        gap: 7px;
    }

    .repertoire-card .repertoire-card__meta span,
    .repertoire-card .repertoire-card__btn {
        height: 46px;
        padding: 0;
        gap: 2px;
        border-radius: 46px;
        font-family: 'Manrope', sans-serif;
        font-size: 14.4px;
        font-weight: 500;
    }

    .repertoire-card .repertoire-card__meta span {
        background: #141414;
        border: 0.9px solid rgba(255, 255, 255, 0.12);
        color: rgba(255, 255, 255, 0.8);
    }

    .repertoire-card .repertoire-card__meta img {
        width: 22px;
        opacity: 1;
    }

    .repertoire-card .repertoire-card__btn img {
        width: 15px;
        margin-right: 4px;
    }

    .repertoire-card .repertoire-card__content > .cta-button {
        height: 46px;
        gap: 10px;
        font-size: 20px;
        font-weight: 500;
    }

    .repertoire-card .repertoire-card__content > .cta-button img {
        width: 24px;
        height: 24px;
    }

    .repertoire-card.active .repertoire-card__content > .cta-button,
    .repertoire-card.is-open .repertoire-card__content > .cta-button,
    .repertoire-card:focus-within .repertoire-card__content > .cta-button {
        margin-top: 7px;
    }

    @media (hover: hover) {
        .repertoire-card:hover .repertoire-card__content > p {
            margin: 7px 0 3px;
            max-height: 60px;
        }

        .repertoire-card:hover .repertoire-card__content > .cta-button {
            margin-top: 7px;
        }
    }

    /* [АФІША] / РЕПЕРТУАР — скляна плашка 397×138 */
    .page-afisha .hero-title,
    .page-repertoire .hero-title {
        left: 25px;
        top: 231px;
        width: 397px;
        height: 138px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 68px;
        font-size: 40px;
        font-weight: 400;
    }

    /* --- Колектив --- */
    .page-team .hero-media {
        width: 1008px;
        margin-left: -9px;
    }

    .page-team .hero-media img {
        height: 980px;
        object-fit: cover;
    }

    .page-team .theater-people {
        left: 1365px;
        top: 241px;
        bottom: auto;
    }

    .page-team .theater-people h3 {
        width: 401px;
        white-space: nowrap;
        max-width: none;
        margin: 0;
        font-size: 33px;
        font-weight: 700;
        line-height: 1.2;
    }

    .page-team .theater-people p {
        width: 355px;
        max-width: none;
        margin: 15px 0 0;
        font-size: 14px;
        font-weight: 300;
        line-height: 1.2;
    }

    .page-team .theater-people .underline {
        margin-top: 18px;
    }

    .page-team .hero-small {
        left: 26px;
        top: 822px;
        max-width: 80px;
    }

    .page-team .hero-small h3 {
        margin: 0;
        font-size: 16px;
        font-weight: 600;
        line-height: 18px;
    }

    .page-team .hero-small p {
        margin: 19px 0 0;
        font-size: 12px;
        font-weight: 300;
        line-height: 18px;
    }

    .page-team .team .repertoire-slider {
        padding-left: 22px;
    }

    .page-team .team {
        margin-top: 20px;
    }

    .page-team .team .repertoire-date-card {
        height: 91px;
        border-radius: 34px;
    }

    .page-team .team .day {
        font-size: 20px;
        font-weight: 900;
    }

    .page-team .team .day img {
        width: 31px;
        height: 31px;
    }
}

/* =====================
   СКЛО ЯК У МАКЕТІ
   Хедер у Figma — ефект Glass: майже прозорий, фон не розмивається, а лише
   трохи заломлюється по краях; світла обводка яскравіша на заокругленнях.
   Картки героя — Background blur 54 + шум, обводка-градієнт від світлого кута.
   ===================== */
.site-header {
    /* скло трохи притемнює фон і «загинає» його на заокругленнях (темна дуга всередині країв) */
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.14) 0%, rgba(0, 0, 0, 0.08) 100%);
    -webkit-backdrop-filter: blur(1.5px) saturate(1.2);
    backdrop-filter: blur(1.5px) saturate(1.2);
    border: 0;
    box-shadow:
        inset 46px 0 34px -30px rgba(0, 0, 0, 0.55),
        inset -46px 0 34px -30px rgba(0, 0, 0, 0.55),
        inset 10px 0 12px -10px rgba(255, 255, 255, 0.22),
        inset -10px 0 12px -10px rgba(255, 255, 255, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    isolation: isolate;
}

/* обводка-градієнт: світліша на лівому і правому заокругленнях */
.site-header::before,
.hero-subscribe::before,
.hero-show-card::before,
.page-afisha .hero-title::before,
.page-repertoire .hero-title::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(90deg,
        rgba(255, 255, 255, 0.42) 0%,
        rgba(255, 255, 255, 0.1) 12%,
        rgba(255, 255, 255, 0.06) 50%,
        rgba(255, 255, 255, 0.1) 88%,
        rgba(255, 255, 255, 0.42) 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: -1;
}

/* картки героя: розмиття фону 27px (= Figma blur 54) і ледь помітний тон, без темного прямокутника */
.hero-subscribe,
.hero-show-card,
.page-afisha .hero-title,
.page-repertoire .hero-title {
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.015) 55%, rgba(0, 0, 0, 0.12) 100%);
    -webkit-backdrop-filter: blur(27px) saturate(1.1);
    backdrop-filter: blur(27px) saturate(1.1);
    border: 0;
    isolation: isolate;
}

.hero-subscribe::before,
.hero-show-card::before,
.page-afisha .hero-title::before,
.page-repertoire .hero-title::before {
    background: linear-gradient(150deg,
        rgba(255, 255, 255, 0.5) 0%,
        rgba(255, 255, 255, 0.08) 35%,
        rgba(255, 255, 255, 0.04) 65%,
        rgba(255, 255, 255, 0.28) 100%);
}

/* у «підпишись» у макеті обводки не видно */
.hero-subscribe::before {
    opacity: 0;
}

/* =====================
   РЕШТА СТОРІНОК ЗА МАКЕТОМ 1920 (Figma: 59:8104, 59:9650, 59:9456, 59:7207,
   59:7584, 59:7406, 59:9842)
   ===================== */
@media (min-width: 1336px) {

    /* --- Двохрядкові заголовки «ЖИТТЯ / ЗА ЗАВІСОЮ», «НОВИНИ / ЖИТТЯ», «МІСЦЕ ДЕ / ВИ ПОБАЧИТЕ»,
           а також «БАЧИТИ / ГОЛОВНЕ» на авторизації та масці.
           Контейнер на весь герой, рядки й кнопка — на координатах із Figma (--l1*, --l2*, --b*) --- */
    .hero-headline--curtain,
    .hero-headline--news,
    .hero-headline--location,
    .hero-headline--auth,
    .hero-headline--mask {
        --cap-shift: -20px;
        position: absolute;
        left: 0;
        top: 0;
        right: auto;
        bottom: auto;
        width: 1920px;
        height: 0;
        display: block;
        transform: none;
    }

    :is(.hero-headline--curtain, .hero-headline--news, .hero-headline--location, .hero-headline--auth, .hero-headline--mask) .headline-text {
        position: absolute;
        margin: 0;
        font-size: 160.7px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.02em;
        white-space: nowrap;
        text-align: left;
    }

    :is(.hero-headline--curtain, .hero-headline--news, .hero-headline--location, .hero-headline--auth, .hero-headline--mask) .headline-top {
        left: var(--l1x);
        top: calc(var(--l1y) + var(--cap-shift));
    }

    :is(.hero-headline--curtain, .hero-headline--news, .hero-headline--location, .hero-headline--auth, .hero-headline--mask) .headline-bottom {
        position: static;
        display: block;
        margin: 0;
        transform: none;
    }

    :is(.hero-headline--curtain, .hero-headline--news, .hero-headline--location, .hero-headline--auth, .hero-headline--mask) .headline-left {
        display: block;
        left: var(--l2x);
        top: calc(var(--l2y) + var(--cap-shift));
    }

    :is(.hero-headline--curtain, .hero-headline--news, .hero-headline--location, .hero-headline--auth, .hero-headline--mask) .headline-btn {
        position: absolute;
        left: var(--bx);
        top: var(--by);
        width: 305px;
        height: 125px;
        border-radius: 112px;
        border-width: 2.2px;
    }

    /* стрілка ↗ всередині рядка (авторизація, маска): позиція відносно рядка */
    :is(.hero-headline--auth, .hero-headline--mask) .headline-text > img {
        position: absolute;
        left: var(--ax);
        top: var(--ay);
        width: 116px;
        height: 116px;
    }

    .hero-headline--curtain,
    .hero-headline--news,
    .hero-headline--location {
        --l1x: 66px; --l1y: 792px;
        --l2x: 396px; --l2y: 935px;
        --bx: 59px; --by: 931px;
    }

    .hero-headline--auth {
        --l1x: 98px; --l1y: 777px;
        --l2x: 353px; --l2y: 919px;
        --bx: 23px; --by: 917px;
        --ax: 971px; --ay: 14px;
    }

    .hero-headline--mask {
        --l1x: 97px; --l1y: 699px;
        --l2x: 350px; --l2y: 844px;
        --bx: 36px; --by: 844px;
        --ax: 825px; --ay: 26px;
    }

    /* --- Герой «Життя за завісою» / новини / контакти: фото 1918×1079 --- */
    .hero:has(.hero-headline--curtain, .hero-headline--news, .hero-headline--location) {
        height: 1079px;
        max-height: none;
    }

    .hero:has(.hero-headline--curtain, .hero-headline--news, .hero-headline--location) > img {
        width: 1918px;
        height: 1079px;
        margin-left: 2px;
        object-fit: cover;
    }

    .meanless-phrase {
        left: 66px;
        top: 304px;
        width: 401px;
        max-width: none;
    }

    .meanless-phrase h3 {
        max-width: 401px;
        margin: 0;
        font-size: 33px;
        font-weight: 700;
        line-height: 1.2;
    }

    .meanless-phrase p {
        width: 355px;
        margin: 15px 0 0;
        font-size: 14px;
        font-weight: 300;
        line-height: 1.2;
    }

    /* --- Персона, профіль, авторизація: фото 1008×980 ліворуч --- */
    .page-person .hero-media,
    .page-profile .hero-media,
    .page-auth .hero-media {
        width: 1008px;
        margin-left: -9px;
    }

    .page-person .hero-media img,
    .page-profile .hero-media img,
    .page-auth .hero-media img {
        height: 980px;
        padding: 0;
        object-fit: cover;
    }

    .page-person .hero,
    .page-profile .hero,
    .page-auth .hero {
        height: 980px;
        max-height: none;
    }

    /* персона */
    .page-person .person-socials {
        left: 968px;
        top: 218px;
        bottom: auto;
        width: 61px;
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 26px;
    }

    .page-person .person-socials a,
    .page-person .person-socials img {
        display: block;
        width: 61px;
        height: 61px;
    }

    .page-person .theater-person {
        left: 1055px;
        top: 208px;
        bottom: auto;
        width: 820px;
        max-width: none;
        height: 772px;
        overflow-y: auto;
        scrollbar-width: none;
    }

    .page-person .theater-person::-webkit-scrollbar { display: none; }

    .page-person .theater-person h1 {
        max-width: 520px;
        margin: 0;
        font-size: 60px;
        font-weight: 900;
        line-height: 74px;
    }

    .page-person .theater-person h2 {
        max-width: 560px;
        margin: 8px 0 0 5px;
        font-size: 40px;
        font-weight: 300;
        line-height: 50px;
    }

    .page-person .theater-person p {
        margin: 0 0 14px 8px;
        max-width: 812px;
        font-size: 14px;
        font-weight: 300;
        line-height: 1.25;
    }

    .page-person .theater-person h2 + p { margin-top: 29px; }

    .page-person .year-of-birth {
        top: 15px;
        right: 0;
        font-size: 30px;
        line-height: 34px;
        text-align: right;
    }

    /* профіль */
    .page-profile .theater-person--profile {
        left: 1055px;
        top: 208px;
        bottom: auto;
        right: auto;
        width: 823px;
        max-width: none;
    }

    .page-profile .theater-person--profile h1 {
        max-width: 520px;
        margin: 0;
        font-size: 60px;
        font-weight: 900;
        line-height: 74px;
    }

    .page-profile .profile-edit {
        top: 6px;
        right: 0;
    }

    .page-profile .profile-edit img {
        width: 54px;
        height: 54px;
        display: block;
    }

    .page-profile .user-info {
        margin-top: 11px;
        display: flex;
        flex-direction: column;
        gap: 7px;
        font-size: 20px;
        font-weight: 300;
        line-height: 26px;
        text-transform: none;
    }

    .page-profile .user-info > div { gap: 5px; }

    .page-profile .user-info img {
        width: 26px;
        height: 26px;
    }

    .page-profile .hero-headline {
        left: 587px;
        top: 669px;
        right: auto;
        bottom: auto;
    }

    /* авторизація: форма 534×683 */
    .page-auth .auth {
        left: 1211px;
        top: 169px;
        bottom: auto;
        width: 534px;
        max-width: none;
        min-height: 683px;
        margin: 0;
        padding: 34px;
        border-radius: 32px;
    }

    /* --- Маска --- */
    .page-mask .hero {
        height: 1080px;
        max-height: none;
    }

    .page-mask .hero > img {
        width: 1935px;
        height: 1080px;
        object-fit: cover;
    }

    .page-mask .headline-text.mask {
        position: absolute;
        left: 369px;
        top: 214px;
        bottom: auto;
        right: auto;
        margin: 0;
        font-size: 156.5px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.02em;
        white-space: nowrap;
    }

    .page-mask .hero-show-card--mask {
        left: 155px;
        top: 411px;
        width: 575px;
        height: 209px;
        transform: none;
        padding: 60px 0 0 65px;
        justify-content: flex-start;
        border-radius: 68px;
    }

    .page-mask .hero-show-card--mask .show-card-title,
    .page-mask .hero-show-card--mask .show-card-text {
        width: 448px;
    }

    .page-mask .hero-show-card--mask .show-card-title {
        margin: 0 0 8px;
        font-size: 20px;
        font-weight: 900;
        line-height: 1.2;
    }

    .page-mask .hero-show-card--mask .show-card-text {
        font-size: 16px;
        line-height: 1.3;
    }

    .page-mask .auth-buttons {
        left: 973px;
        top: 458px;
        transform: none;
        gap: 15px;
        font-size: 30px;
    }

    .page-mask .auth-buttons .register,
    .page-mask .auth-buttons .login {
        height: 123px;
        border-radius: 90px;
        line-height: 1;
    }

    .page-mask .auth-buttons .register { width: 564px; }
    .page-mask .auth-buttons .login { width: 338px; border-width: 1px; }

    .page-mask .promo {
        left: 1369px;
        top: 684px;
        right: auto;
        width: 490px;
        height: 281px;
        transform: none;
        padding: 15px 0 0 13px;
        align-items: flex-start;
        gap: 34px;
        border-radius: 38px;
    }

    .page-mask .promo__photo {
        width: 217px;
        height: 253px;
        border-radius: 29px;
        object-fit: cover;
    }

    .page-mask .promo__title {
        margin: 2px 0 14px;
        font-size: 26px;
        font-weight: 700;
        line-height: 35px;
    }

    .page-mask .promo__text {
        width: 185px;
        margin: 0 0 14px;
        font-size: 12px;
        line-height: 1.2;
    }

    .page-mask .promo__btn {
        width: 194px;
        height: 66px;
        border-radius: 500px;
        font-size: 14px;
        font-weight: 700;
    }
}

/* --- уточнення після звірки накладанням --- */
@media (min-width: 1336px) {
    /* абзац у макеті 170px заввишки — соцмережі йдуть одразу під ним */
    .meanless-phrase p { min-height: 170px; }
    .page-location .meanless-phrase h3 { max-width: 355px; }

    .page-person .team .repertoire-slider,
    .page-profile .team .repertoire-slider { padding-left: 22px; }

    .page-person .team .repertoire-date-card,
    .page-profile .team .repertoire-date-card { height: 91px; border-radius: 34px; }

    .page-person .team .day,
    .page-profile .team .day { font-size: 20px; font-weight: 900; }

    .page-profile .profile-edit { top: 6px; }

    /* авторизація: вертикальний ритм форми як у макеті (заголовок 203, таби 305, поля 388/493, кнопка 598) */
    .page-auth .hero { height: 1067px; }
    .page-auth .auth h1 { margin: 0; font-size: 40.8px; font-weight: 500; line-height: 1.2; }
    .page-auth .auth .subtitle { margin: 13px 0 0; font-size: 16.8px; line-height: 1.6; }
    .page-auth .auth .tabs { height: 57px; margin: 13px 0 0; }
    .page-auth .auth .form-group { margin: 26px 0 0; min-height: 80px; }
    .page-auth .auth .form-group + .form-group { margin-top: 25px; }
    .page-auth .auth .login-btn { margin-top: 25px; }
    .page-auth .auth .divider { margin: 25px 0 0; }
    .page-auth .auth .socials { margin-top: 25px; }
    .page-auth .auth .socials button { height: 51px; }

    /* маска: текст картки 20px, як у макеті */
    .page-mask .hero-show-card--mask .show-card-text { font-size: 20px; line-height: 1.1; }
}

@media (min-width: 1336px) {
    /* рядки контактів у профілі: 26px з кроком 33px, як у макеті */
    .page-profile .user-info > div {
        height: 26px;
        margin: 0;
        line-height: 26px;
    }
}

@media (min-width: 1336px) {
    /* герой не обрізаємо по висоті вікна: десктоп масштабується від макета 1920,
       і на невисоких екранах max-height: 100vh зрізав заголовок і цитату */
    .hero {
        max-height: none;
    }
}

@media (min-width: 1336px) {
    /* соцмережі в героях «Життя за завісою», новин, контактів: круги 61px впритул,
       38px під абзацом, порядок Facebook → Instagram → Twitter (Figma 59:8104) */
    .meanless-phrase .hero-socials {
        display: flex;
        gap: 0;
        margin-top: 38px;
    }

    .meanless-phrase .hero-socials a,
    .meanless-phrase .hero-socials img {
        display: block;
        width: 61px;
        height: 61px;
    }

    .meanless-phrase p {
        margin-bottom: 0;
    }
}

/* =====================
   КОНТАКТИ: картки співробітників (Figma 59:9456)
   Звичайний стан — ім'я та посада; при наведенні (тапі, фокусі) з'являються
   кнопки телефону й пошти. Поки це заглушки: справжні контакти задасть адмінка.
   ===================== */
.contact-card__links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 0;
    margin-top: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .35s ease, opacity .25s ease, margin .35s ease;
}

.contact-card.is-open .contact-card__links,
.contact-card:focus-within .contact-card__links {
    max-height: 120px;
    margin-top: 12px;
    opacity: 1;
}

@media (hover: hover) {
    .contact-card:hover .contact-card__links {
        max-height: 120px;
        margin-top: 12px;
        opacity: 1;
    }
}

.page-location .contact-card .repertoire-card__content h3 {
    padding-bottom: 0;
}

.contact-card .contact-card__role {
    margin: 6px 0 0;
    font-family: 'Unbounded', sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
}

@media (min-width: 1336px) {
    .page-location .repertoire__list {
        grid-template-columns: repeat(4, 436px);
        gap: 27px;
        padding: 0 0 0 65px;
    }

    .page-location .contact-card {
        height: 546px;
        border-radius: 68px;
    }

    .page-location .contact-card .repertoire-card__content {
        left: 32px;
        right: 32px;
        bottom: 32px;
    }

    .contact-card .repertoire-card__content h3 {
        font-size: 20px;
        font-weight: 900;
        line-height: 1;
    }

    .contact-card .contact-card__role {
        max-width: 368px;
    }

    .contact-card .contact-card__links .cta-button {
        height: 43px;
        padding: 0;
        gap: 5px;
        border-radius: 46px;
        font-size: 18px;
        font-weight: 500;
    }

    .contact-card .contact-card__links .cta-button--email {
        font-size: 16px;
    }

    .contact-card .contact-card__links .cta-button img {
        width: 26px;
        height: 26px;
    }
}

/* посада видна завжди (загальне правило карток ховає абзаци до наведення) */
.repertoire-card .repertoire-card__content > p.contact-card__role {
    max-height: none;
    opacity: 1;
    overflow: visible;
    display: block;
}

.page-location .contact-card .repertoire-card__content {
    align-items: stretch;
    text-align: left;
}

/* кнопки контактів: іконка 26px без підкладки, як у макеті */
.contacts-btn img {
    width: 26px;
    height: 26px;
    background: none;
    border: 0;
    box-shadow: none;
}

/* =====================
   МОУШН: початковий стан перед анімацією появи (scripts/reveal.js)
   Елементи приховані, доки скрипт не запустить для них анімацію (клас .rv-in).
   Список має збігатися з RULES у reveal.js.
   ===================== */
html.reveal-on .hero > img:not(.rv-in),
html.reveal-on .hero-media > img:not(.rv-in),
html.reveal-on .hero--single-tall__img:not(.rv-in),
html.reveal-on .search-img:not(.rv-in),
html.reveal-on .headline-text:not(.rv-in),
html.reveal-on .headline-text.mask:not(.rv-in),
html.reveal-on .hero-single-title > h2:not(.rv-in),
html.reveal-on .headline-arrow:not(.rv-in),
html.reveal-on .headline-text > img:not(.rv-in),
html.reveal-on .headline-btn:not(.rv-in),
html.reveal-on .hero-play:not(.rv-in),
html.reveal-on .hero-title:not(.rv-in),
html.reveal-on .meanless-phrase:not(.rv-in),
html.reveal-on .theater-people:not(.rv-in),
html.reveal-on .hero-quote:not(.rv-in),
html.reveal-on .hero-small:not(.rv-in),
html.reveal-on .theater-person > h1:not(.rv-in),
html.reveal-on .theater-person > h2:not(.rv-in),
html.reveal-on .year-of-birth:not(.rv-in),
html.reveal-on .page article > h1:not(.rv-in),
html.reveal-on .manifesto-headline:not(.rv-in),
html.reveal-on .search-results:not(.rv-in),
html.reveal-on .hero-subscribe:not(.rv-in),
html.reveal-on .hero-show-card:not(.rv-in),
html.reveal-on .promo:not(.rv-in),
html.reveal-on .auth:not(.rv-in),
html.reveal-on .user-info:not(.rv-in),
html.reveal-on .career-contact:not(.rv-in),
html.reveal-on .auth-buttons:not(.rv-in),
html.reveal-on .hero-socials:not(.rv-in),
html.reveal-on .person-socials:not(.rv-in),
html.reveal-on .action-buttons > *:not(.rv-in),
html.reveal-on .hero-single-title > p:not(.rv-in),
html.reveal-on .theater-person > h3:not(.rv-in),
html.reveal-on .theater-person > ul:not(.rv-in),
html.reveal-on .news-single__date:not(.rv-in),
html.reveal-on .news-single__title:not(.rv-in),
html.reveal-on .news-single__text:not(.rv-in),
html.reveal-on .theater-person > p:not(.rv-in),
html.reveal-on .page article > :not(div):not(section):not(h1):not(.rv-in),
html.reveal-on .bld-text > *:not(.rv-in),
html.reveal-on .contacts-item:not(.rv-in),
html.reveal-on .search-results-p:not(.rv-in),
html.reveal-on .repertoire__all:not(.rv-in),
html.reveal-on .repertoire-date-card:not(.rv-in),
html.reveal-on .page .sidebar:not(.rv-in),
html.reveal-on .single__card:not(.rv-in),
html.reveal-on .repertoire-card:not(.rv-in),
html.reveal-on .bld-photo:not(.rv-in),
html.reveal-on .news-single__image:not(.rv-in),
html.reveal-on .tech-plan:not(.rv-in),
html.reveal-on .actor-card:not(.rv-in),
html.reveal-on .act-primary:not(.rv-in),
html.reveal-on .credo-box:not(.rv-in),
html.reveal-on .banner-slider:not(.rv-in),
html.reveal-on .contacts-map:not(.rv-in),
html.reveal-on .bld-video:not(.rv-in),
html.reveal-on .show-more:not(.rv-in),
html.reveal-on .repertoire__tabs:not(.rv-in),
html.reveal-on .footer-socials:not(.rv-in),
html.reveal-on .footer-info:not(.rv-in),
html.reveal-on .footer-nav:not(.rv-in),
html.reveal-on .footer-action:not(.rv-in),
html.reveal-on .footer-bottom:not(.rv-in),
html.reveal-on .site-header:not(.rv-in),
html.reveal-on .act-primary .actor-poster:not(.rv-in),
html.reveal-on .act-primary .actor-poster > img:not(.rv-in),
html.reveal-on .act-primary .playbill-banner:not(.rv-in),
html.reveal-on .act-primary .mode-item:not(.rv-in),
html.reveal-on .act-primary .theater-headline:not(.rv-in),
html.reveal-on .act-primary .intermission-divider:not(.rv-in),
html.reveal-on .act-primary .play-synopsis:not(.rv-in),
html.reveal-on .act-primary .action-pointer:not(.rv-in),
html.reveal-on .act-primary .backstage-overlay:not(.rv-in) {
    opacity: 0;
}

/* лінія під KOCHERGA THEATER прокреслюється зліва */
.act-primary .intermission-divider {
    transform-origin: left center;
}

/* =====================
   ЖИВЕ ЛОГО (scripts/logo.js)
   ===================== */
.k-logo {
    display: block;
    overflow: visible;
}

.logo .k-logo {
    width: 100%;
    height: 100%;
}

.site-header .logo {
    cursor: pointer;
}

/* =====================
   ПРЕЛОАДЕР «ПРОЖЕКТОР У ТЕМРЯВІ» (scripts/preloader.js)
   --sx/--sy/--sr — центр і радіус плями світла, --sa — яскравість (мерехтіння),
   --ir — радіус «діафрагми», крізь яку в кінці відкривається сайт.
   ===================== */
html.is-preloading,
html.is-preloading body {
    overflow: hidden;
}

.preloader {
    --sx: 50vw;
    --sy: 50vh;
    --sr: 0px;
    --sa: 0;
    --ir: 0px;
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    overflow: hidden;
}

/* у кінці: у темряві розкривається коло, крізь яке видно сайт */
.preloader.is-iris {
    background: transparent;
    -webkit-mask: radial-gradient(circle var(--ir) at 50% 50%, transparent 97%, #000 100%);
    mask: radial-gradient(circle var(--ir) at 50% 50%, transparent 97%, #000 100%);
}

.preloader.is-iris .preloader__dark {
    -webkit-mask: none;
    mask: none;
}

.preloader.is-iris .preloader__haze {
    display: none;
}

.preloader__logo {
    position: relative;
    width: min(72vw, 640px);
}

.preloader__svg {
    width: 100%;
    height: auto;
}

/* темрява з «дірою» плями світла: м'який край, як у справжнього прожектора */
.preloader__dark {
    position: absolute;
    inset: 0;
    background: #000;
    -webkit-mask: radial-gradient(ellipse var(--sr) var(--sry, var(--sr)) at var(--sx) var(--sy), transparent 0, transparent 55%, #000 100%);
    mask: radial-gradient(ellipse var(--sr) var(--sry, var(--sr)) at var(--sx) var(--sy), transparent 0, transparent 55%, #000 100%);
}

/* теплий пиловий ореол навколо плями — світло на «підлозі» сцени */
.preloader__haze {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle var(--hr, 200px) at var(--sx) var(--sy),
        rgba(255, 40, 30, .18) 0,
        rgba(255, 0, 0, .10) 45%,
        transparent 100%);
    opacity: var(--ha, 0);
    mix-blend-mode: screen;
    pointer-events: none;
}

/* лінія завантаження й відсотки внизу прелоадера */
.preloader__progress {
    position: absolute;
    left: clamp(16px, 2.5vw, 48px);
    right: clamp(16px, 2.5vw, 48px);
    bottom: clamp(24px, 3.5vw, 56px);
    font-family: 'Unbounded', sans-serif;
    color: #fff;
}

.preloader__percent {
    display: block;
    margin-bottom: 12px;
    text-align: right;
    font-size: clamp(14px, 1.1vw, 20px);
    font-weight: 300;
    letter-spacing: .04em;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, .7);
}

.preloader__bar {
    height: 1px;
    background: rgba(255, 255, 255, .12);
}

/* біла лінія; червоний відрізок — лише під розширенням червоної смуги лого (--ra…--rb ставить JS) */
.preloader__bar span {
    display: block;
    width: 0;
    height: 100%;
    background: linear-gradient(90deg,
        #ffffff 0, #ffffff calc(var(--ra, -10px) - 24px),
        #ff0000 var(--ra, -10px), #ff0000 var(--rb, -10px),
        #ffffff calc(var(--rb, -10px) + 24px), #ffffff 100%);
    background-size: calc(100vw) 100%;
    background-repeat: no-repeat;
    box-shadow: 0 0 8px rgba(255, 255, 255, .35);
}

/* під час розкриття діафрагми лінія лишається поверх темряви, поки не згасне */
.preloader__progress {
    z-index: 2;
}

/* промінь прожектора згори: тепле світло крізь сценічний пил */
.preloader__cone {
    position: absolute;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    opacity: 0;
    will-change: opacity, filter;
    mix-blend-mode: screen;
    pointer-events: none;
}

/* форма променя — на вкладеному елементі, щоб розмиття на обгортці м'якшило краї */
.preloader__cone span {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(255, 30, 20, .55) 0%,
        rgba(255, 0, 0, .42) 35%,
        rgba(255, 0, 0, .36) 55%,
        rgba(200, 0, 0, .18) 68%,
        transparent 80%);
}

/* розмита червона пляма, що «збирається» в червоний промінь лого (форма — як промінь у лого) */
.preloader__red {
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(72vw, 640px);
    aspect-ratio: 503 / 125;
    translate: -50% -50%;
    opacity: 0;
    mix-blend-mode: screen;
    pointer-events: none;
}

/* розмиття — на обгортці, форма — на вкладеному елементі: інакше clip-path обрізав би розмиття */
.preloader__red span {
    position: absolute;
    inset: 0;
    background: #ff0000;
    clip-path: polygon(11.5% 0, 17.4% 0, 57.8% 99%, 25.4% 99%);
}

.preloader.is-iris .preloader__cone,
.preloader.is-iris .preloader__red {
    display: none;
}

/* =====================
   ПОШУК У ХЕДЕРІ (scripts/header-search.js) — Figma 59:6161
   Пігулка 1510×54 розгортається від іконки (права межа = права межа кнопки пошуку),
   під хедером — скляна панель рекомендацій. Лише десктоп.
   ===================== */
.hsearch {
    display: none;
}

@media (min-width: 1336px) {
    .hsearch {
        display: block;
        position: absolute;
        right: 84px;
        top: 23px;
        z-index: 5;
        pointer-events: none;
    }

    .hsearch.is-open {
        pointer-events: auto;
    }

    .hsearch__bar {
        display: none;
        position: relative;
        width: 1510px;
        height: 54px;
        margin-left: auto;
        border-radius: 27px;
        background: #ffffff;
        overflow: hidden;
        box-shadow: 0 8px 30px rgba(0, 0, 0, .25);
    }

    .hsearch.is-open .hsearch__bar {
        display: flex;
        align-items: center;
    }

    .hsearch__input {
        flex: 1;
        min-width: 0;
        height: 100%;
        padding: 0 0 0 29px;
        border: 0;
        outline: 0;
        background: transparent;
        font-family: 'Unbounded', sans-serif;
        font-size: 14px;
        font-weight: 300;
        color: #000;
        -webkit-appearance: none;
        appearance: none;
    }

    .hsearch__input::placeholder {
        color: rgba(0, 0, 0, .35);
    }

    .hsearch__input::-webkit-search-cancel-button {
        display: none;
    }

    .hsearch__go {
        flex: 0 0 54px;
        height: 54px;
        border: 0;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }

    .hsearch__go img {
        width: 20px;
        height: 20px;
    }

    /* меню ховається, поки відкритий пошук */
    .site-header .main-nav,
    .site-header .secondary-nav,
    .site-header .search-btn {
        transition: opacity .35s ease, translate .5s cubic-bezier(.16, 1, .3, 1);
    }

    .site-header.is-searching .main-nav,
    .site-header.is-searching .secondary-nav {
        opacity: 0;
        translate: 0 -8px;
        pointer-events: none;
    }

    .site-header.is-searching .search-btn {
        opacity: 0;
    }

    /* панель рекомендацій — скло, як картки героя в макеті */
    /* панель починається з-під середини пігулки — список «витікає» з поля пошуку без зазору */
    .hsearch__bar {
        z-index: 2;
    }

    .hsearch__panel {
        display: none;
        position: absolute;
        top: 54px;
        right: 0;
        z-index: 1;
        width: 1510px;
        padding: 26px 32px 30px;
        gap: 40px;
        border-radius: 0 0 32px 32px;
        font-family: 'Unbounded', sans-serif;
        color: #fff;
    }

    .hsearch.is-open .hsearch__panel {
        display: flex;
    }

    .hsearch__col { flex: 0 0 470px; }
    .hsearch__col--wide { flex: 1 1 auto; }
    .hsearch__col--full { flex: 1 1 auto; }

    .hsearch__label {
        margin: 0 0 12px;
        font-size: 11px;
        font-weight: 400;
        letter-spacing: .16em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, .5);
    }

    .hsearch__label + * { margin-bottom: 20px; }

    .hsearch__chips {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .hsearch__chip {
        height: 34px;
        padding: 0 16px;
        border: 1px solid rgba(255, 255, 255, .35);
        border-radius: 999px;
        background: rgba(255, 255, 255, .04);
        font: 400 13px/1 'Unbounded', sans-serif;
        color: #fff;
        cursor: pointer;
        transition: background-color .2s ease, border-color .2s ease;
    }

    .hsearch__chip:hover {
        background: #ff0000;
        border-color: #ff0000;
    }

    .hsearch__links {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4px 24px;
    }

    .hsearch__links a {
        display: flex;
        justify-content: space-between;
        padding: 7px 0;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
        font-size: 15px;
        font-weight: 700;
        text-transform: uppercase;
        text-decoration: none;
        color: #fff;
        transition: color .2s ease;
    }

    .hsearch__links a:hover { color: #ff0000; }

    /* стрічка вистав — картки у форматі сайту (452×566, радіус 68 → пропорційно), гортається вбік */
    .hsearch__col--wide {
        min-width: 0;
        position: relative;
    }

    .hsearch__shows {
        display: flex;
        gap: 14px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding-right: 60px;
        -webkit-mask: linear-gradient(90deg, #000 calc(100% - 80px), transparent);
        mask: linear-gradient(90deg, #000 calc(100% - 80px), transparent);
    }

    .hsearch__shows::-webkit-scrollbar { display: none; }

    .hsearch__show {
        position: relative;
        flex: 0 0 auto;
        width: 214px;
        aspect-ratio: 452 / 566;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 18px;
        overflow: hidden;
        border-radius: 32px;
        scroll-snap-align: start;
        text-decoration: none;
        color: #fff;
    }

    .hsearch__show img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: scale .6s cubic-bezier(.16, 1, .3, 1);
    }

    .hsearch__show::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .35) 22%, rgba(0, 0, 0, 0) 42%);
    }

    .hsearch__show:hover img { scale: 1.06; }

    .hsearch__show > span { position: relative; z-index: 1; }

    .hsearch__show .hsearch__date {
        align-self: flex-start;
        margin-bottom: 6px;
        padding: 2px 10px;
        border-radius: 999px;
        background: #ff0000;
        font-size: 12px;
        font-weight: 500;
    }

    .hsearch__show .hsearch__title {
        font-size: 14px;
        font-weight: 900;
        line-height: 1.1;
        text-transform: uppercase;
    }

    .hsearch__date {
        align-self: flex-start;
        padding: 2px 10px;
        border-radius: 999px;
        background: #ff0000;
        font-size: 12px;
        font-weight: 500;
    }

    .hsearch__title {
        font-size: 15px;
        font-weight: 900;
        text-transform: uppercase;
    }

    .hsearch__note {
        margin-top: 4px;
        font-size: 12px;
        font-weight: 300;
        color: rgba(255, 255, 255, .7);
    }

    .hsearch__rows {
        display: flex;
        flex-direction: column;
    }

    .hsearch__row {
        display: grid;
        grid-template-columns: 44px 1fr;
        grid-template-rows: auto auto;
        column-gap: 18px;
        align-items: center;
        padding: 8px 0;
        border-bottom: 1px solid rgba(255, 255, 255, .12);
        text-decoration: none;
        color: #fff;
    }

    .hsearch__row img,
    .hsearch__row .hsearch__dot {
        grid-row: 1 / span 2;
        width: 44px;
        height: 44px;
        border-radius: 14px;
        object-fit: cover;
    }

    .hsearch__dot {
        display: block;
        background: radial-gradient(circle, #ff0000 0 6px, rgba(255, 255, 255, .06) 7px);
    }

    .hsearch__row .hsearch__note { margin: 0; }
    .hsearch__row:hover .hsearch__title { color: #ff0000; }

    .hsearch mark {
        background: none;
        color: #ff0000;
    }

    .hsearch__all {
        display: inline-block;
        margin-top: 22px;
        font-size: 14px;
        text-decoration: none;
        color: #fff;
        border-bottom: 1px solid rgba(255, 255, 255, .4);
    }
}

/* =====================
   СКЛО ЗА FIGMA
   Хедер (Glass): чорний 20 %, заломлення по краях (scripts/glass.js для Chromium),
   світло під -45° — світліший верхній лівий край.
   Плашки (Background blur 54 + Noise): тон #1f1f1f 2 %, розмиття фону 27 px,
   дрібне біле «зерно», обводка — градієнт білий → прозорий → білий.
   ===================== */
.site-header.has-refraction {
    background: rgba(0, 0, 0, .2);
    -webkit-backdrop-filter: url(#header-glass) saturate(1.15);
    backdrop-filter: url(#header-glass) saturate(1.15);
    box-shadow:
        inset 1px 1px 0 rgba(255, 255, 255, .28),
        inset -1px -1px 0 rgba(255, 255, 255, .08),
        inset 0 -18px 30px -24px rgba(0, 0, 0, .55);
}

.site-header::before {
    background: linear-gradient(135deg,
        rgba(255, 255, 255, .55) 0%,
        rgba(255, 255, 255, .12) 18%,
        rgba(255, 255, 255, .05) 50%,
        rgba(255, 255, 255, .12) 82%,
        rgba(255, 255, 255, .35) 100%);
}

.hero-subscribe,
.hero-show-card,
.page-afisha .hero-title,
.page-repertoire .hero-title,
.repertoire__tabs,
.backstage-overlay,
.hsearch__panel {
    /* position не чіпаємо: усі ці плашки вже позиціоновані (absolute) */
    isolation: isolate;
    background-color: rgba(31, 31, 31, .02);
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"),
        linear-gradient(rgba(0, 0, 0, .16), rgba(0, 0, 0, .16));
    background-size: 180px 180px, 100% 100%;
    -webkit-backdrop-filter: blur(27px);
    backdrop-filter: blur(27px);
    border: 0;
}

.hero-subscribe::before,
.hero-show-card::before,
.page-afisha .hero-title::before,
.page-repertoire .hero-title::before,
.repertoire__tabs::before,
.backstage-overlay::before,
.hsearch__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(135deg,
        rgba(255, 255, 255, .7) 0%,
        rgba(255, 255, 255, 0) 50%,
        rgba(255, 255, 255, .45) 100%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: -1;
}

/* панель пошуку темніша — під нею буває світлий фон */
.hsearch__panel {
    background-color: rgba(8, 8, 8, .86);
}

/* =====================
   ХЕДЕР ЗАВЖДИ НА ЕКРАНІ (десктоп; на мобільних він і так закріплений)
   При скролі піднімається ближче до краю вікна (scripts/site-nav.js ставить .is-scrolled).
   ===================== */
@media (min-width: 1336px) {
    .site-header {
        position: fixed;
        transition: top .5s cubic-bezier(.16, 1, .3, 1);
    }

    .site-header.is-scrolled {
        top: 16px;
    }
}

@media (min-width: 1336px) {
    /* коли пошук відкритий, низ поля стає прямим — список виходить із нього вниз одним цілим */
    .hsearch__bar {
        transition: border-radius .3s ease;
    }

    .hsearch.is-expanded .hsearch__bar {
        border-radius: 27px 27px 0 0;
        box-shadow: none;
    }

    .hsearch__all { margin-top: 14px; font-size: 13px; }
}

/* =====================
   ПЕРЕМИКАННЯ Й ПЕРЕХОДИ (scripts/interactions.js)
   ===================== */

/* плавні переходи між сторінками (Chrome, Edge, Safari 18+): стара сторінка
   розфокусовується й гасне, нова проявляється — далі грає її власна анімація появи */
@view-transition {
    navigation: auto;
}

::view-transition-old(root) {
    animation: page-out .32s cubic-bezier(.7, 0, .84, 0) both;
}

::view-transition-new(root) {
    animation: page-in .5s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes page-out {
    to { opacity: 0; filter: blur(8px); transform: scale(.985); }
}

@keyframes page-in {
    from { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root) { animation: none; }
}

/* повідомлення внизу екрана */
.site-toast {
    position: fixed;
    left: 50%;
    bottom: 32px;
    z-index: 2000;
    padding: 14px 22px;
    border-radius: 999px;
    background: rgba(15, 15, 15, .9);
    border: 1px solid rgba(255, 255, 255, .15);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    font: 400 14px/1.2 'Unbounded', sans-serif;
    color: #fff;
    opacity: 0;
    translate: -50% 16px;
    pointer-events: none;
    transition: opacity .3s ease, translate .5s cubic-bezier(.16, 1, .3, 1);
}

.site-toast.is-visible {
    opacity: 1;
    translate: -50% 0;
}

/* аватарки у плашці «Доєднуйся» */
img.actor-avatar {
    display: block;
    object-fit: cover;
    background: #333;
}

a.join-troupe-btn {
    text-decoration: none;
    transition: gap .4s cubic-bezier(.16, 1, .3, 1);
}

a.join-troupe-btn:hover {
    gap: 52px;
}

/* стрічка акторів: гортається стрілками, коліщатком і пальцем */
.actors-list {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-mask: linear-gradient(90deg, #000 calc(100% - 70px), transparent);
    mask: linear-gradient(90deg, #000 calc(100% - 70px), transparent);
}

.actors-list::-webkit-scrollbar { display: none; }

a.actor-card {
    display: block;
    scroll-snap-align: start;
    color: inherit;
    text-decoration: none;
}

a.actor-card .actor-img {
    transition: transform .5s cubic-bezier(.16, 1, .3, 1), filter .3s ease;
}

a.actor-card:hover .actor-img {
    transform: translateY(-4px);
    filter: brightness(1.1);
}

a.actor-card:hover .actor-name {
    color: #ff0000;
}

.actors-nav .nav-btn:disabled {
    opacity: .35;
    cursor: default;
}

a.person-box {
    color: inherit;
    text-decoration: none;
    transition: background-color .25s ease, border-color .25s ease;
}

a.person-box:hover .person-name {
    color: #ff0000;
}

/* кнопки «нагадати» / «подобається» в увімкненому стані */
.btn-icon.is-on {
    background: #ff0000;
    border-color: #ff0000;
}

/* вкладки Увійти / Зареєструватись: червона «пігулка» переїжджає між ними */
.auth .tabs {
    position: relative;
}

.auth .tabs .tabs__pill {
    position: absolute;
    top: 5px;
    left: 5px;
    height: calc(100% - 10px);
    border-radius: 46px;
    background: #ff0000;
    transition: transform .55s cubic-bezier(.16, 1, .3, 1), width .55s cubic-bezier(.16, 1, .3, 1);
}

.auth .tabs button {
    position: relative;
    z-index: 1;
    transition: color .35s ease;
}

.auth .tabs button.active {
    background: transparent;
    color: #fff;
}

.auth [data-only] {
    overflow: hidden;
}

.auth [data-only][hidden] {
    display: none;
}

.mode-item {
    transition: background-color .3s ease, color .3s ease;
}

/* картки під час перемішування не мерехтять тінню скла */
.repertoire__list > * {
    will-change: auto;
}

/* стрічка акторів не розтягує колонку — гортається всередині картки */
.single__left,
.single__card.actors {
    min-width: 0;
}

.single__card.actors .actors-list {
    max-width: 100%;
}

/* аватарки не підхоплюють розміри великого фото картки */
.act-primary .troupe-cast img.actor-avatar,
.troupe-cast img.actor-avatar {
    position: static;
    width: 31px;
    height: 31px;
    max-width: none;
    border-radius: 50%;
    border: 2px solid #fff;
    object-fit: cover;
    transform: none;
}

/* =====================
   РЕЄСТРАЦІЯ: поля парами в два стовпці — форма не довша за вхід
   і не налазить на «БАЧИТИ ГОЛОВНЕ»
   ===================== */
.auth.is-register {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
}

.auth.is-register > * {
    grid-column: 1 / -1;
}

.auth.is-register > .auth__extra,
.auth.is-register > .form-group {
    grid-column: auto;
}

.auth.is-register .input {
    padding: 0 14px;
}

.auth.is-register .input input {
    min-width: 0;
}

/* =====================
   НАВЕДЕННЯ Й ФОКУС: кожна кнопка відповідає на курсор
   ===================== */
.auth .tabs button:not(.active):hover {
    color: #ff0000;
}

.auth .input {
    border: 1px solid transparent;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.auth .input:hover {
    border-color: rgba(0, 0, 0, .12);
}

.auth .input:focus-within {
    border-color: #ff0000;
    box-shadow: 0 0 0 3px rgba(255, 0, 0, .18);
}

.auth .login-btn:hover {
    background: #ff0000;
    color: #fff;
}

.auth .login-btn:active,
.auth .socials button:active,
.icon-btn:active,
.btn-icon:active,
.btn-ticket:active,
.buy-ticket-btn:active,
.contacts-btn:active,
.repertoire-card__btn:active {
    transform: scale(.97);
}

.auth .socials button {
    transition: background-color .2s ease, color .2s ease;
}

.auth .socials button:hover {
    background: #000;
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25);
}

.auth .options a,
.auth .remember {
    transition: color .2s ease;
}

.auth .options a:hover,
.auth .remember:hover {
    color: #ff0000;
}

.icon-btn {
    transition: background-color .25s ease, transform .25s ease;
}

.icon-btn:hover {
    background-color: #ff0000;
}

.icon-btn:hover img {
    filter: invert(1);
}

.repertoire-date-card {
    transition: border-color .25s ease, background-color .25s ease;
}

.swiper-slide:not(.active) .repertoire-date-card:hover {
    border-color: #ff0000;
    background-color: rgba(255, 0, 0, .12);
}

.mode-item:not(.active-scene):hover {
    background-color: rgba(255, 255, 255, .18);
}

.repertoire-card__btn,
.contacts-btn,
.btn-ticket,
.buy-ticket-btn,
.promo__btn,
.auth-buttons a {
    transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
}

.repertoire-card__btn:hover,
.contacts-btn:hover {
    background-color: #c70000;
}

.repertoire-card .repertoire-card__meta span {
    transition: border-color .25s ease;
}

.buy-ticket-btn:hover {
    background-color: #c70000;
}

.btn-icon:hover {
    border-color: #ff0000;
}

.actors-nav .nav-btn:not(:disabled):hover {
    background-color: #ff0000;
    border-color: #ff0000;
    color: #fff;
}

.auth-buttons .register:hover {
    background-color: #c70000;
}

.auth-buttons .login:hover {
    background-color: #fff;
    color: #000;
}

.promo__btn:hover {
    background-color: #ff0000;
    border-color: #ff0000;
    color: #fff;
}

.hsearch__go:hover img {
    transform: scale(1.12);
}

.hsearch__go img {
    transition: transform .2s ease;
}

.page .sidebar__submenu a:hover,
.page .sidebar__link:hover {
    color: #ff0000;
    opacity: 1;
}

.footer-nav .sub-menu a:hover {
    color: #ff0000;
}

/* фокус з клавіатури видно на всіх кнопках і посиланнях */
a:focus-visible,
button:focus-visible,
.mode-item:focus-visible {
    outline: 2px solid #ff0000;
    outline-offset: 3px;
}

/* =====================
   МІКРОАНІМАЦІЇ ВСІХ АКТИВНИХ ЕЛЕМЕНТІВ
   Наведення — легкий підйом / пружний «поп», натискання — вдавлювання.
   ===================== */
:root {
    --spring: cubic-bezier(.34, 1.56, .64, 1);
    --expo: cubic-bezier(.16, 1, .3, 1);
}

/* картка вистави / людини — вся клікабельна */
.repertoire-card.is-link {
    cursor: pointer;
}

.repertoire-card > img {
    transition: transform 1.1s var(--expo), filter .6s ease;
}

.repertoire-card.is-link:hover > img {
    transform: scale(1.05);
}

.repertoire-card.is-link:active {
    transform: scale(.99);
}

/* play у героєві: пульсуючий ореол і «поп» при наведенні */
.hero-play {
    cursor: pointer;
}

.hero-play img {
    transition: transform .6s var(--spring);
}

.hero-play:hover img {
    transform: scale(1.06);
}

.hero-play:active img {
    transform: scale(.96);
}

@media (min-width: 1336px) {
    .hero-play::after {
        content: "";
        position: absolute;
        left: 50%;
        top: calc(50% + 8px);
        width: 216px;
        height: 216px;
        margin: -108px 0 0 -108px;
        border-radius: 50%;
        border: 2px solid rgba(255, 255, 255, .55);
        pointer-events: none;
        animation: play-pulse 2.6s var(--expo) infinite;
    }
}

@keyframes play-pulse {
    0% { transform: scale(1); opacity: .7; }
    100% { transform: scale(1.45); opacity: 0; }
}

/* скляні плашки героя */
.hero-subscribe,
.page-home .hero-show-card {
    cursor: pointer;
    transition: transform .6s var(--spring), box-shadow .4s ease;
}

.hero-subscribe:hover,
.page-home .hero-show-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
}

.hero-subscribe .subscribe-icon {
    transition: transform .8s var(--spring);
}

.hero-subscribe:hover .subscribe-icon {
    transform: rotate(120deg);
}

/* кнопка ↘ під великим заголовком: стрілка «пірнає» вниз */
.headline-btn img {
    transition: transform .5s var(--spring);
}

.headline-btn:hover img {
    transform: translate(6px, 6px) scale(1.2);
}

.headline-btn {
    transition: background-color .3s ease, border-color .3s ease, transform .5s var(--spring);
}

.headline-btn:hover {
    background-color: #fff;
}

.headline-btn:hover img {
    filter: invert(1);
}

.headline-btn:active {
    transform: scale(.97);
}

/* червоні кнопки з іконкою: іконка «підстрибує» */
.cta-button img,
.btn-ticket img,
.buy-ticket-btn img,
.contacts-btn img,
.repertoire-card__btn img,
.phone-btn img {
    transition: transform .5s var(--spring);
}

.cta-button:hover img,
.btn-ticket:hover img,
.buy-ticket-btn:hover img,
.contacts-btn:hover img,
.phone-btn:hover img {
    transform: rotate(-12deg) scale(1.15);
}

.repertoire-card__btn:hover img {
    transform: translate(2px, -2px);
}

.cta-button,
.phone-btn,
.social-btn,
.show-more,
.hsearch__chip,
.join-troupe-btn,
.action-pointer {
    transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .5s var(--spring);
}

.cta-button:active,
.phone-btn:active,
.social-btn:active,
.show-more:active,
.hsearch__chip:active {
    transform: scale(.96);
}

.social-btn:hover {
    transform: translateY(-4px) rotate(-6deg);
}



.action-pointer:hover {
    transform: translateX(10px);
}

.credo-box {
    transition: transform .6s var(--spring);
}

.credo-box:hover {
    transform: translateY(-6px) rotate(-1deg);
}

.footer-nav > ul > li > a .arrow img {
    transition: transform .4s var(--spring);
}

.footer-nav > ul > li > a:hover .arrow img {
    transform: translate(3px, -3px);
}

.nav-list a {
    position: relative;
}

.site-header .nav-list a:not(.active)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform .45s var(--expo);
}

.site-header .nav-list a:not(.active):hover::after {
    transform: scaleX(1);
    transform-origin: left center;
}

.icon-btn img {
    transition: transform .5s var(--spring), filter .25s ease;
}

.icon-btn:hover img {
    transform: scale(1.15);
}

.repertoire-date-card {
    transition: border-color .25s ease, background-color .25s ease, transform .5s var(--spring);
}

.swiper-slide:not(.active) .repertoire-date-card:hover {
    transform: translateY(-3px);
}

a.actor-card:active,
a.person-box:active {
    transform: scale(.98);
}

/* вікно підписки */
.subscribe-modal {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(0, 0, 0, .55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.subscribe-modal.is-open {
    display: flex;
}

.subscribe-modal__card {
    position: relative;
    width: min(460px, 100%);
    padding: 40px 36px 36px;
    border-radius: 40px;
    background: rgba(20, 20, 20, .82);
    border: 1px solid rgba(255, 255, 255, .18);
    -webkit-backdrop-filter: blur(27px);
    backdrop-filter: blur(27px);
    font-family: 'Unbounded', sans-serif;
    color: #fff;
}

.subscribe-modal__close {
    position: absolute;
    top: 18px;
    right: 22px;
    border: 0;
    background: none;
    font-size: 30px;
    line-height: 1;
    color: #fff;
    cursor: pointer;
    transition: transform .4s var(--spring), color .2s ease;
}

.subscribe-modal__close:hover {
    transform: rotate(90deg);
    color: #ff0000;
}

.subscribe-modal__title {
    margin: 0 0 12px;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
}

.subscribe-modal__text {
    margin: 0 0 24px;
    font-size: 13px;
    font-weight: 300;
    line-height: 1.5;
    color: rgba(255, 255, 255, .7);
}

.subscribe-modal__form {
    display: flex;
    gap: 8px;
}

.subscribe-modal__form input {
    flex: 1;
    min-width: 0;
    height: 50px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    font: 300 14px 'Unbounded', sans-serif;
    color: #fff;
    outline: none;
    transition: border-color .2s ease;
}

.subscribe-modal__form input:focus {
    border-color: #ff0000;
}

.subscribe-modal__form button {
    height: 50px;
    padding: 0 22px;
    border: 0;
    border-radius: 999px;
    background: #ff0000;
    font: 600 14px 'Unbounded', sans-serif;
    color: #fff;
    cursor: pointer;
    transition: background-color .2s ease, transform .4s var(--spring);
}

.subscribe-modal__form button:hover {
    background: #c70000;
    transform: translateY(-2px);
}

@media (max-width: 520px) {
    .subscribe-modal__form { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-play::after { animation: none; }
}

/* =====================
   СОЦМЕРЕЖІ В ГЕРОЯХ І НА ПЕРСОНІ — оригінальні скляні іконки з макету.
   Наведення: іконка збільшується, а скло «наливається» червоним.
   ===================== */
.glass-social {
    position: relative;
    display: block;
    border-radius: 50%;
    background: #ff0000;
    cursor: pointer;
    transition: transform .5s cubic-bezier(.34, 1.56, .64, 1), box-shadow .35s ease;
}

.glass-social img {
    display: block;
    border-radius: 50%;
    transition: opacity .3s ease;
}

/* на червоній підкладці темне скло стає червоним, біла іконка лишається білою */
.glass-social:hover {
    transform: scale(1.14);
    box-shadow: 0 8px 24px rgba(255, 0, 0, .45);
}

.glass-social:hover img {
    mix-blend-mode: screen;
}

.glass-social:active {
    transform: scale(1.02);
}

@media (min-width: 1336px) {
    /* фільтри під героєм — 40px до карток, як у макеті */
    .page-person .team,
    .page-profile .team,
    .page-team .team {
        margin-bottom: 40px;
    }

    /* =====================
       ВАКАНСІЯ (Figma 59:7964)
       ===================== */
    .page-career .hero-media {
        width: 1008px;
        margin-left: -9px;
    }

    .page-career .hero-media img {
        height: 980px;
        object-fit: cover;
    }

    .page-career .hero {
        height: 980px;
        max-height: none;
    }

    .page-career .theater-person {
        left: 1055px;
        top: 208px;
        bottom: auto;
        width: 820px;
        max-width: none;
    }

    .page-career .theater-person h1 {
        max-width: 560px;
        margin: 0 0 40px;
        font-size: 60px;
        font-weight: 900;
        line-height: 74px;
    }

    .page-career .theater-person h3 {
        margin: 24px 0 2px 5px;
        font-size: 18px;
        font-weight: 800;
        line-height: 1.2;
    }

    .page-career .theater-person h1 + h3 {
        margin-top: 0;
    }

    .page-career .theater-person p,
    .page-career .theater-person li {
        margin: 0 0 0 5px;
        max-width: 560px;
        font-size: 18px;
        font-weight: 300;
        line-height: 1.2;
    }

    .page-career .theater-person ul {
        max-width: 807px;
        padding-left: 26px;
    }

    .page-career .theater-person ul li {
        max-width: none;
    }

    /* скляна картка контактів зліва внизу */
    .career-contact {
        position: absolute;
        left: 36px;
        top: 722px;
        z-index: 10;
        width: 459px;
        height: 209px;
        padding: 62px 0 0 53px;
        display: flex;
        flex-direction: column;
        gap: 8px;
        border-radius: 68px;
        isolation: isolate;
        background-color: rgba(31, 31, 31, .02);
        background-image:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"),
            linear-gradient(rgba(0, 0, 0, .16), rgba(0, 0, 0, .16));
        -webkit-backdrop-filter: blur(27px);
        backdrop-filter: blur(27px);
        font-family: 'Unbounded', sans-serif;
        color: #fff;
    }

    .career-contact::before {
        content: "";
        position: absolute;
        inset: 0;
        padding: 1px;
        border-radius: inherit;
        background: linear-gradient(135deg, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, .45));
        -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
        z-index: -1;
    }

    .career-contact__row {
        display: flex;
        align-items: center;
        gap: 12px;
        color: #fff;
        text-decoration: none;
        transition: color .2s ease;
    }

    .career-contact__row img {
        width: 34px;
        height: 34px;
        transition: transform .5s cubic-bezier(.34, 1.56, .64, 1);
    }

    .career-contact__row--phone img {
        width: 44px;
        height: 44px;
        margin-left: -5px;
    }

    .career-contact__row span {
        display: flex;
        flex-direction: column;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.1;
    }

    .career-contact__row small {
        font-size: inherit;
    }

    .career-contact__row--phone span {
        font-size: 20px;
    }

    .career-contact__row b {
        font-weight: 800;
    }

    .career-contact__row:hover {
        color: #ff0000;
    }

    .career-contact__row:hover img {
        transform: rotate(-12deg) scale(1.1);
    }
}

/* соцмережі в героях — іконка по центру кружка */
.hero-socials .social-btn,
.person-socials .social-btn,
.page-person .person-socials .social-btn,
.meanless-phrase .hero-socials .social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* персона: між фільтрами й картками вистав — повітря */
.person-shows {
    padding-top: 0;
}

/* персона: текст за Figma 59:7207 — біографія 14/300, абзаци через порожній рядок */
@media (min-width: 1336px) {
    .page-person .theater-person p {
        margin: 0 0 17px 8px;
        font-size: 14px;
        font-weight: 300;
        line-height: 1.18;
    }

    .page-person .theater-person h2 {
        margin: 8px 0 0 5px;
        font-size: 40px;
        font-weight: 300;
        line-height: 50px;
    }

    .page-person .theater-person h2 + p {
        margin-top: 29px;
    }

    .page-person .year-of-birth {
        line-height: 34px;
    }

    .page-person .year-of-birth .day-month { font-weight: 600; }
    .page-person .year-of-birth .year { font-weight: 300; }

    .page-person .person-socials {
        left: 968px;
        gap: 26px;
    }

    .page-person .person-socials a,
    .page-person .person-socials img {
        width: 61px;
        height: 61px;
    }
}

/* стрічки чіпів і дат: запас зверху/знизу, щоб підйом при наведенні й «поп» при кліку
   не обрізались краями слайдера */
.repertoire-slider.swiper {
    padding-top: 8px;
    padding-bottom: 8px;
    margin-top: -8px;
    margin-bottom: -8px;
}

/* =====================
   ГЕРОЙ ГОЛОВНОЇ: ЧОТИРИ АРКИ-ВИСТАВИ (scripts/hero-stage.js)
   Арки 460 px з радіусом 150; активна довша (низ на 768), інші — на 616.
   Фото — одне широке на всі арки (кожна арка — «вікно» в нього).
   ===================== */
.hero-stage {
    display: none;
}

@media (min-width: 1336px) {
    .page-home .hero > .main-image {
        visibility: hidden;
    }

    .hero-stage {
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: 1920px;
        height: 800px;
        z-index: 1;
    }

    .hero-stage__col {
        position: absolute;
        top: -300px;
        width: 460px;
        height: 916px;
        overflow: hidden;
        border-radius: 150px;
        background: #120202;
        transition: height .9s cubic-bezier(.16, 1, .3, 1);
        cursor: pointer;
    }

    .hero-stage__col:first-child {
        height: 936px;
    }

    .hero-stage__col.is-active {
        height: 1068px;
    }

    .hero-stage__img {
        position: absolute;
        top: 300px;
        width: 1920px;
        height: 1080px;
        margin-top: -300px;
        background-size: cover;
        background-position: center 40%;
        opacity: 0;
        transform: scale(1.06);
        transition: opacity .8s ease, transform 1.4s cubic-bezier(.16, 1, .3, 1);
    }

    .hero-stage__img.is-shown {
        opacity: 1;
        transform: scale(1);
    }

    /* перша вистава — сцена з макету: фото вище, як у Figma */
    .hero-stage__img[data-show="1"] {
        height: 1232px;
        background-position: center top;
    }

    /* легке затемнення низу арок, як у макеті */
    .hero-stage__col::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to top, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0) 35%);
        pointer-events: none;
    }
}

/* =====================
   «ТЕАТР ПІД ЧАС ВІЙНИ» І «ПАРТНЕРИ»
   (загальне правило .page article div робить з div сітку постерів — тут скидаємо)
   ===================== */
.page-war .page article div,
.page-partners .page article div {
    display: block;
    margin: 0;
    grid-template-columns: none;
    grid-template-rows: none;
    gap: 0;
    border-radius: 0;
    overflow: visible;
    background: none;
}

.page article h2 {
    margin: 34px 0 12px;
    font-size: 22px;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 1.15;
}

/* цифри */
.page-war .war-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin: 30px 0 10px;
}

.page-war .page .war-stat {
    padding: 26px 26px 24px;
    border-radius: 32px;
    background: #141414;
    border: 1px solid rgba(255, 255, 255, .1);
}

.page-war .war-stat b {
    display: block;
    margin-bottom: 10px;
    font-size: 48px;
    font-weight: 900;
    line-height: 1;
    color: #ff0000;
}

.page-war .war-stat span {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.35;
}

.page-war .war-gallery {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 12px;
    margin: 28px 0 8px;
}

.page-war .war-gallery img {
    width: 100%;
    height: 260px;
    border-radius: 28px;
    object-fit: cover;
}

.war-cta {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 34px;
    padding: 18px 30px;
    border-radius: 999px;
    background: #ff0000;
    font-family: 'Unbounded', sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    transition: background-color .25s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.war-cta:hover {
    background: #c70000;
    transform: translateX(6px);
}

/* партнери */
.page-partners .partners-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 30px;
}

.page-partners .page .partner-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 26px;
    border-radius: 36px;
    background: #141414;
    border: 1px solid rgba(255, 255, 255, .1);
    transition: border-color .3s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.page-partners .page .partner-card:hover {
    border-color: rgba(255, 0, 0, .6);
    transform: translateY(-4px);
}

/* партнери з банером займають усю ширину */
.page-partners .page .partner-card--banner {
    grid-column: 1 / -1;
}

.page-partners .page .partner-card__head {
    display: flex;
    align-items: center;
    gap: 18px;
}

.partner-card__logo {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    font-family: 'Unbounded', sans-serif;
    font-size: 22px;
    font-weight: 900;
    color: #ff0000;
}

.partner-card__status {
    display: inline-block;
    margin-bottom: 6px;
    padding: 3px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .3);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
}

.partner-card__name {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.15;
}

.partner-card__banner {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 26px;
    aspect-ratio: 4 / 1;
}

.page .partner-card__banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .9s cubic-bezier(.16, 1, .3, 1);
}

.partner-card__banner:hover img {
    transform: scale(1.04);
}

.partner-card__banner span {
    position: absolute;
    left: 16px;
    bottom: 14px;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    font-size: 11px;
    color: #fff;
}

.partner-card__link {
    align-self: flex-start;
    font-size: 14px;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, .35);
    transition: color .2s ease, border-color .2s ease;
}

.partner-card__link:hover {
    color: #ff0000;
    border-color: #ff0000;
}

@media (max-width: 768px) {
    .page-war .war-stats,
    .page-war .war-gallery,
    .page-partners .partners-grid {
        grid-template-columns: 1fr;
    }

    .page-war .war-gallery img { height: 200px; }
    .page-war .war-stat b { font-size: 38px; }
    .war-cta { font-size: 14px; padding: 16px 22px; }
}

/* перемикач мови UA / EN у самому низу футера */
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    flex-wrap: wrap;
}

.lang-switch {
    display: inline-flex;
    padding: 3px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .25);
}

.lang-switch__item {
    min-width: 44px;
    padding: 6px 12px;
    border-radius: 999px;
    font-family: 'Unbounded', sans-serif;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    color: rgba(255, 255, 255, .6);
    text-decoration: none;
    transition: background-color .25s ease, color .25s ease;
}

.lang-switch__item.is-active {
    background: #ff0000;
    color: #fff;
}

.lang-switch__item:not(.is-active):hover {
    color: #fff;
}

/* ===== Новини: клікабельні картки + сторінка новини ===== */
.news-single--link { display: block; color: inherit; text-decoration: none; cursor: pointer; }
.news-single--link .news-single__image { overflow: hidden; border-radius: 48px; }
.news-single--link .news-single__image img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.news-single--link:hover .news-single__image img { transform: scale(1.05); }
.news-single--link .news-single__text { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; font-size: 18px; line-height: 1.35; }
.news-single--link .news-single__content { padding-left: 48px; }
.news-single__foot { display: flex; align-items: center; gap: 32px; margin-top: 28px; }
.news-single__foot .news-single__date { margin: 0; }
.news-single__more { font-size: 14px; font-weight: 600; color: #fff; display: inline-flex; gap: 8px; align-items: center; padding: 10px 18px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; transition: background .25s, border-color .25s; }
.news-single__more i { font-style: normal; transition: translate .25s; }
.news-single--link:hover .news-single__more { background: #ff0000; border-color: #ff0000; }
.news-single--link:hover .news-single__more i { translate: 4px 0; }
.news-single--link:hover .news-single__title { color: #ff3b30; }
.news-single__title { transition: color .25s; }

.news-article { max-width: 1100px; margin: 0 auto; padding: 40px 0 80px; color: #fff; }
.news-article__back { display: inline-flex; gap: 10px; color: rgba(255,255,255,.7); text-decoration: none; font-size: 15px; margin-bottom: 36px; transition: color .2s; }
.news-article__back:hover { color: #fff; }
.news-article__back i { font-style: normal; transition: translate .2s; }
.news-article__back:hover i { translate: -4px 0; }
.news-article__date { font-size: 15px; opacity: .6; margin-bottom: 16px; }
.news-article__title { margin: 0 0 24px; font-family: Unbounded, sans-serif; font-size: 56px; font-weight: 800; line-height: 1.02; text-transform: uppercase; letter-spacing: -1.5px; }
.news-article__lead { margin: 0 0 40px; font-size: 22px; line-height: 1.45; font-weight: 300; max-width: 860px; }
.news-article__cover { margin: 0 0 48px; border-radius: 48px; overflow: hidden; }
.news-article__cover img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.news-article__body { max-width: 760px; font-size: 18px; line-height: 1.6; font-weight: 300; }
.news-article__body p { margin: 0 0 20px; }
.news-article__gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 48px 0 0; }
.news-article__gallery a { display: block; border-radius: 28px; overflow: hidden; }
.news-article__gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.news-article__gallery a:hover img { transform: scale(1.05); }
.news-article__gallery a:first-child { grid-column: span 2; grid-row: span 2; }
.news-article__gallery a:first-child img { aspect-ratio: auto; height: 100%; }
.news-article__more { margin-top: 80px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.15); }
.news-article__more h2 { margin: 0 0 28px; font-family: Unbounded, sans-serif; font-size: 28px; font-weight: 800; text-transform: uppercase; }
.news-article__others { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-mini { display: flex; flex-direction: column; gap: 10px; color: #fff; text-decoration: none; }
.news-mini img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 28px; transition: transform .5s; }
.news-mini:hover img { transform: scale(1.03); }
.news-mini span { font-size: 13px; opacity: .6; }
.news-mini b { font-size: 17px; font-weight: 600; line-height: 1.3; transition: color .2s; }
.news-mini:hover b { color: #ff3b30; }
/* 4 фото: велике зліва, три малі стовпчиком справа */
.news-article__gallery:has(> a:nth-child(4):last-child) a:first-child { grid-row: span 3; }

/* ===== Особистий кабінет ===== */
.cab { padding: 40px 22px 20px; color: #fff; font-family: Manrope, sans-serif; }
.cab-pane.is-in { animation: cab-in .55s cubic-bezier(.16,1,.3,1); }
@keyframes cab-in { from { opacity: 0; transform: translateY(18px); } }
.cab-head { display: flex; align-items: baseline; gap: 28px; flex-wrap: wrap; margin-bottom: 28px; }
.cab-head h2 { margin: 0; font: 900 40px/1 Unbounded, sans-serif; text-transform: uppercase; letter-spacing: -1px; }
.cab-head p { margin: 0; max-width: 640px; font-size: 16px; color: rgba(255,255,255,.6); }
.cab-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); gap: 20px; }
.cab-card { display: grid; grid-template-columns: 150px 1fr; gap: 22px; padding: 16px; border-radius: 34px; background: #111; border: 1px solid rgba(255,255,255,.08); transition: border-color .3s, transform .4s cubic-bezier(.16,1,.3,1); }
.cab-card:hover { border-color: rgba(255,255,255,.25); transform: translateY(-4px); }
.cab-card__img { display: block; border-radius: 24px; overflow: hidden; }
.cab-card__img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.cab-card:hover .cab-card__img img { transform: scale(1.06); }
.cab-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 8px 0; }
.cab-card__title { color: #fff; text-decoration: none; font: 800 20px/1.15 Unbounded, sans-serif; text-transform: uppercase; transition: color .2s; }
.cab-card__title:hover { color: #ff3b30; }
.cab-meta { display: block; font-size: 14px; color: rgba(255,255,255,.55); }
.cab-myrev { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: auto; }
.cab-actions { display: flex; gap: 10px; align-items: center; margin-top: auto; }
.cab-btn { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; font: 700 14px Unbounded, sans-serif; text-decoration: none; cursor: pointer; transition: background .25s, border-color .25s, transform .3s cubic-bezier(.34,1.56,.64,1); }
.cab-btn:hover { background: #fff; color: #000; transform: translateY(-2px); }
.cab-btn img { width: 18px; height: 18px; }
.cab-btn--red { background: #ff0000; border-color: #ff0000; }
.cab-btn--red:hover { background: #fff; border-color: #fff; color: #ff0000; }
.cab-btn--red:hover img { filter: invert(15%) sepia(100%) saturate(7000%) hue-rotate(0deg); }
.cab-card .cab-btn { margin-top: auto; }
.cab-heart { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #ff0000; font-size: 20px; cursor: pointer; transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .2s; }
.cab-heart:hover { transform: scale(1.12); background: rgba(255,0,0,.12); }
.v-stars { display: inline-flex; gap: 2px; font-size: 18px; color: rgba(255,255,255,.2); letter-spacing: 0; }
.v-stars i { font-style: normal; }
.v-stars i.on { color: #ff0000; }
.cab-pill { display: inline-block; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.cab-pill--ok { background: rgba(47,210,122,.15); color: #2fd27a; }
.cab-pill--wait { background: rgba(255,176,32,.15); color: #ffb020; }
.cab-pill--no { background: rgba(255,0,0,.15); color: #ff6b6b; }
.cab-empty { padding: 50px; border-radius: 34px; border: 1px dashed rgba(255,255,255,.2); text-align: center; color: rgba(255,255,255,.6); }
.cab-empty p { margin: 0 0 18px; font-size: 18px; }
.cab-add { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; padding: 20px 24px; border-radius: 34px; background: #111; }
.cab-add b { margin-right: auto; font-size: 15px; }
.cab select, .cab input[type=date], .cab input[type=text], .cab input[type=tel], .cab input[type=email], .cab textarea { padding: 13px 18px; border-radius: 18px; border: 1px solid rgba(255,255,255,.15); background: #000; color: #fff; font: 500 15px Manrope, sans-serif; outline: none; transition: border-color .2s; color-scheme: dark; }
.cab select:focus, .cab input:focus, .cab textarea:focus { border-color: #ff0000; }
.cab-list { display: flex; flex-direction: column; gap: 12px; }
.cab-row { display: grid; grid-template-columns: 64px 1fr auto auto; gap: 18px; align-items: center; padding: 12px 16px 12px 12px; border-radius: 28px; background: #111; transition: background .2s; }
.cab-row:hover { background: #181818; }
.cab-row img { width: 64px; height: 80px; object-fit: cover; border-radius: 16px; }
.cab-row b { display: block; font: 800 17px Unbounded, sans-serif; text-transform: uppercase; margin-bottom: 4px; }
.cab-chip { padding: 11px 18px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font: 600 13px Manrope, sans-serif; cursor: pointer; transition: all .2s; }
.cab-chip.is-on { border-color: #2fd27a; color: #2fd27a; }
.cab-split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.cab-rev { display: grid; grid-template-columns: 64px 1fr; gap: 16px; padding: 16px; border-radius: 28px; background: #111; border-left: 3px solid transparent; }
.cab-rev--wait { border-left-color: #ffb020; }
.cab-rev--ok { border-left-color: #2fd27a; }
.cab-rev--no { border-left-color: #ff0000; }
.cab-rev img { width: 64px; height: 80px; object-fit: cover; border-radius: 16px; }
.cab-rev__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.cab-rev__top b { font: 800 15px Unbounded, sans-serif; text-transform: uppercase; }
.cab-rev p { margin: 8px 0; font-size: 15px; line-height: 1.5; }
.cab-reason { color: #ff8a80; font-size: 14px !important; }
.cab-link { padding: 0; border: 0; background: none; color: rgba(255,255,255,.6); font: 600 13px Manrope, sans-serif; cursor: pointer; text-decoration: underline; }
.cab-link:hover { color: #fff; }
.cab-link--red { color: #ff6b6b; }
.cab-form { display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: 34px; background: #111; position: sticky; top: 130px; }
.cab-split > .cab-form:first-child, .cab-split > .cab-list { position: static; }
.cab-form h3 { margin: 0 0 4px; font: 800 22px Unbounded, sans-serif; text-transform: uppercase; }
.cab-form label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: rgba(255,255,255,.6); position: relative; }
.cab-form textarea { resize: vertical; min-height: 120px; }
.cab-count { position: absolute; right: 14px; bottom: 10px; font-size: 11px; color: rgba(255,255,255,.4); }
.cab-note { margin: 0; font-size: 13px; color: rgba(255,255,255,.5); }
.cab-form .cab-btn { align-self: flex-start; }
.cab-stars { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 6px; }
.cab-stars input { display: none; }
.cab-stars label { font-size: 38px; line-height: 1; color: rgba(255,255,255,.18); cursor: pointer; transition: color .15s, transform .25s cubic-bezier(.34,1.56,.64,1); }
.cab-stars label:hover, .cab-stars label:hover ~ label, .cab-stars input:checked ~ label { color: #ff0000; }
.cab-stars label:hover { transform: scale(1.18); }
.cab-toggle { flex-direction: row !important; align-items: center; justify-content: space-between; gap: 18px !important; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.08); cursor: pointer; }
.cab-toggle b { display: block; color: #fff; font-size: 15px; font-weight: 600; }
.cab-toggle small { display: block; margin-top: 2px; font-size: 12px; color: rgba(255,255,255,.5); }
.cab-toggle input { display: none; }
.cab-toggle i { flex: none; position: relative; width: 52px; height: 30px; border-radius: 999px; background: rgba(255,255,255,.15); transition: background .25s; }
.cab-toggle i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.cab-toggle input:checked + i { background: #ff0000; }
.cab-toggle input:checked + i::after { transform: translateX(22px); }
.cab-subs { transition: opacity .3s; }
.cab-subs.is-off { opacity: .35; pointer-events: none; }
.cab-lang { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; font-size: 15px; font-weight: 600; }
.cab-seg { display: inline-flex; padding: 3px; border-radius: 999px; border: 1px solid rgba(255,255,255,.2); }
.cab-seg button { padding: 7px 16px; border: 0; border-radius: 999px; background: none; color: rgba(255,255,255,.6); font: 700 13px Unbounded, sans-serif; cursor: pointer; }
.cab-seg button.is-on { background: #ff0000; color: #fff; }
.cab-danger { display: flex; gap: 24px; margin-top: 10px; }
.cab-toast { position: fixed; left: 50%; bottom: 32px; z-index: 300; padding: 14px 24px; border-radius: 999px; background: #fff; color: #000; font: 600 15px Manrope, sans-serif; translate: -50% 20px; opacity: 0; pointer-events: none; transition: opacity .3s, translate .4s cubic-bezier(.16,1,.3,1); }
.cab-toast.is-on { opacity: 1; translate: -50% 0; }

/* сторінка вистави: обрані + відгуки */
.fav-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin-bottom: 12px; padding: 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font: 700 15px Unbounded, sans-serif; cursor: pointer; transition: all .25s; }
.fav-btn i { font-style: normal; color: #ff0000; font-size: 18px; transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.fav-btn:hover { border-color: #fff; }
.fav-btn.is-on { border-color: #ff0000; background: rgba(255,0,0,.1); }
.fav-btn.is-on i { transform: scale(1.25); }
.single__card.reviews .reviews-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.reviews-sum { display: flex; align-items: center; gap: 12px; }
.reviews-sum b { font: 900 34px Unbounded, sans-serif; color: #fff; }
.reviews-sum span { color: rgba(255,255,255,.55); font-size: 14px; }
.reviews-list { display: flex; flex-direction: column; gap: 14px; }
.review-item { padding: 18px 20px; border-radius: 24px; background: rgba(255,255,255,.04); }
.review-item__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.review-item__top b { font-size: 15px; color: #fff; font-weight: 700; }
.review-item p { margin: 0; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.85); }
.review-item small { display: block; margin-top: 8px; color: rgba(255,255,255,.45); font-size: 12px; }
.reviews-cta { margin-top: 18px; }

/* ===== «Знімай маску» поверх сторінки ===== */
.mask-gate { position: fixed; inset: 0; z-index: 10000; background: rgba(0, 0, 0, .45); -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0); opacity: 0; transition: opacity .45s ease, backdrop-filter .6s ease, -webkit-backdrop-filter .6s ease; }
.mask-gate.is-open { opacity: 1; -webkit-backdrop-filter: blur(22px) saturate(1.2); backdrop-filter: blur(22px) saturate(1.2); }
.mask-gate iframe { display: block; width: 100%; height: 100%; border: 0; background: transparent; color-scheme: normal; transform: translateY(30px) scale(.985); transition: transform .7s cubic-bezier(.16, 1, .3, 1); }
.mask-gate.is-open iframe { transform: none; }
.mask-gate__close { position: absolute; top: 130px; right: 28px; z-index: 2; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); background: rgba(0,0,0,.35); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; transition: background .2s, transform .35s cubic-bezier(.34,1.56,.64,1); }
.mask-gate__close:hover { background: #ff0000; border-color: #ff0000; transform: rotate(90deg); }
html.mask-gate-lock, html.mask-gate-lock body { overflow: hidden; }

html.mask-overlay, html.mask-overlay body { background: transparent !important; }
html.mask-overlay .hero > img:first-child,
html.mask-overlay .m-tabbar, html.mask-overlay .m-drawer, html.mask-overlay .m-scrim { display: none !important; }
html.mask-overlay .hero { background: transparent !important; }
html.mask-overlay .hero::before, html.mask-overlay .hero::after { display: none !important; }

/* соцмережі без «скляної» PNG — таке ж темне скляне коло з білою іконкою */
.glass-social--svg { display: flex; align-items: center; justify-content: center; width: 62px; height: 62px; background: rgba(40, 0, 0, .55); border: 1px solid rgba(255, 255, 255, .25); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.glass-social--svg img, .glass-social--svg svg { width: 22px; height: 22px; border-radius: 0; filter: brightness(0) invert(1); }
.glass-social--svg:hover { background: #ff0000; border-color: #ff0000; }
.glass-social--svg:hover img { mix-blend-mode: normal; }
.site-footer .social-btn svg { width: 24px; height: 24px; }
.person-socials[hidden] { display: none !important; }

.list-empty { grid-column: 1 / -1; padding: 60px 20px; text-align: center; color: rgba(255,255,255,.6); font-size: 18px; }

/* сторінка вистави з бази: автори текстом, кнопка квитків-посилання */
.authors-list { display: flex; flex-direction: column; gap: 8px; }
.author-box { padding: 12px 16px; font-size: 14px; color: #fff; }
a.buy-ticket-btn { display: flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; }
.buy-ticket-btn.is-off { display: flex; align-items: center; justify-content: center; opacity: .5; cursor: default; font-size: 16px; }
.review-empty { margin: 0; color: rgba(255,255,255,.55); }
.news-article__video { display: inline-flex; gap: 8px; padding: 12px 22px; border-radius: 999px; background: #ff0000; color: #fff; font-weight: 700; text-decoration: none; }
.news-article__show { display: flex; align-items: center; gap: 18px; margin-top: 28px; padding: 14px; border-radius: 28px; background: #111; color: #fff; text-decoration: none; transition: background .2s; max-width: 520px; }
.news-article__show:hover { background: #1b1b1b; }
.news-article__show img { width: 64px; height: 80px; object-fit: cover; border-radius: 16px; }
.news-article__show small { display: block; color: rgba(255,255,255,.55); }
.news-article__show b { font: 800 17px Unbounded, sans-serif; text-transform: uppercase; }
.news-article__show i { margin-left: auto; font-style: normal; font-size: 22px; color: #ff0000; }
.section-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 32px; }
.section-photos a { display: block; border-radius: 24px; overflow: hidden; }
.section-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.section-photos a:hover img { transform: scale(1.05); }
@media (max-width: 1335px) { .section-photos { grid-template-columns: 1fr 1fr; gap: 8px; } }
.single .sidebar-value { color: #fff; font-size: 16px; line-height: 1.4; }
.single .sidebar-value.large-text { font-size: 20px; }
.single .sidebar-value small { color: rgba(255,255,255,.55); font-size: 13px; }
.repertoire-card__date { white-space: nowrap; }
/* у плашці тепер дата й час — ширина по вмісту, висота як у макеті */
.repertoire-card .repertoire-card__date { width: auto; min-width: 123px; padding: 0 16px; box-sizing: border-box; }

/* ===== Сторінка вистави: підказка «гортайте нижче» ===== */
.hero--single-tall .scroll-cue {
    position: fixed; left: 50%; bottom: 40px; z-index: 50;
    display: flex; flex-direction: column; align-items: center; gap: 12px;
    padding: 14px 18px 16px; border-radius: 999px;
    color: #fff; text-decoration: none;
    background: rgba(20, 0, 0, .28); border: 1px solid rgba(255, 255, 255, .22);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    translate: -50% 0;
    animation: cue-in 1s 1.2s cubic-bezier(.16, 1, .3, 1) backwards;
    transition: opacity .5s ease, translate .6s cubic-bezier(.16, 1, .3, 1), background .25s, border-color .25s;
}
.hero--single-tall .scroll-cue:hover { background: rgba(255, 0, 0, .55); border-color: #ff0000; }
.scroll-cue__label { font: 600 12px/1 'Unbounded', sans-serif; letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.scroll-cue__track { position: relative; width: 2px; height: 56px; border-radius: 2px; background: rgba(255, 255, 255, .2); overflow: hidden; }
.scroll-cue__track i { position: absolute; left: 0; top: 0; width: 100%; height: 40%; border-radius: 2px; background: #ff0000; box-shadow: 0 0 10px #ff0000; animation: cue-drop 1.8s cubic-bezier(.65, 0, .35, 1) infinite; }
.scroll-cue.is-hidden { opacity: 0; translate: -50% 20px; pointer-events: none; }
@keyframes cue-drop { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(260%); } }
@keyframes cue-in { from { opacity: 0; translate: -50% -16px; } }
@media (prefers-reduced-motion: reduce) { .scroll-cue__track i { animation: none; height: 100%; } .hero--single-tall .scroll-cue { animation: none; } }
@media (max-width: 1335px) { .hero--single-tall .scroll-cue { bottom: 24px; padding: 10px 12px 12px; gap: 8px; } .scroll-cue__label { font-size: 10px; } .scroll-cue__track { height: 40px; } }
.partner-card__about { margin: 14px 0 4px; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.75); }
.partner-card__about p { margin: 0 0 8px; }

/* фільтри, які малює сервер (колектив, сторінка людини): ширина за текстом — потрібні власні відступи */
.swiper-slide[data-filter] .repertoire-date-card { padding: 0 38px; box-sizing: border-box; }
.swiper-slide[data-filter] .day { white-space: nowrap; gap: 12px !important; }
@media (max-width: 1335px) {
    .swiper-slide[data-filter] .repertoire-date-card { padding: 0 22px; }
    .swiper-slide[data-filter] .day { gap: 8px !important; }
}

/* вхід через Google — одна кнопка на всю ширину форми */
.auth .socials .google-btn {
    flex: 1; height: 55px; border-radius: 31px; background: #f8fafb; color: #000;
    display: flex; align-items: center; justify-content: center; gap: 11px;
    font-family: inherit; font-size: 15px; font-weight: 600; text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .15s ease;
}
.auth .socials .google-btn:hover { background: #000; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.auth .socials .google-btn:active { transform: scale(.97); }
@media (min-width: 1336px) { .page-auth .auth .socials .google-btn { height: 51px; } }

/* сторінка вистави: ціна над кнопками «В обрані» / «Придбати квиток» */
.single .buy-price { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 8px 0 16px; padding: 18px 20px; border-radius: 20px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); }
.single .buy-price span { color: rgba(255, 255, 255, .55); font-size: 14px; }
.single .buy-price b { color: #fff; font: 800 20px/1.1 'Unbounded', sans-serif; white-space: nowrap; }
.single .sidebar-value small { display: block; margin-top: 4px; }
.single .sidebar-block:has(+ .buy-price), .single .sidebar-block:last-of-type { margin-bottom: 8px; }
@media (max-width: 1335px) { .single .buy-price { padding: 14px 16px; } .single .buy-price b { font-size: 17px; } }
.footer-privacy { color: rgba(255,255,255,.6); font-size: 12px; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; transition: color .2s; }
.footer-privacy:hover { color: #fff; }
.page-privacy .page article a { color: #ff3b30; }
