/* =========================================================
   CARTAZ VIRTUAL
   TEMPLATE DE ESPETÁCULO
   Arquivo:
   /public_html/_espetaculos/_TEMPLATE/espetaculo.css
   ========================================================= */


/* =========================================================
   1. RESET
   ========================================================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #111517;
    color: #16191b;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.5;
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    font: inherit;
}


/* =========================================================
   2. VARIÁVEIS
   ========================================================= */

:root {

    --dark: #111517;
    --dark-soft: #1a2023;

    --cream: #f1eadb;
    --cream-light: #f7f2e8;

    --gold: #e8b65c;
    --gold-light: #f3c875;

    --text: #17191b;
    --text-light: #f5f1e8;
    --text-muted: #77736b;

    --border: rgba(0, 0, 0, 0.14);

    --max-width: 1180px;

    --section-padding: 72px;
}


/* =========================================================
   3. CONTAINER
   ========================================================= */

.header-container,
.section-container,
.information-container,
.footer-container {

    width: min(
        calc(100% - 64px),
        var(--max-width)
    );

    margin: 0 auto;
}


/* =========================================================
   4. CABEÇALHO
   ========================================================= */

.site-header {

    position: relative;
    z-index: 20;

    background: rgba(10, 13, 15, 0.97);

    color: white;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.header-container {

    min-height: 72px;

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

    gap: 40px;
}


/* LOGO */

.site-logo {

    display: flex;
    flex-direction: column;

    flex-shrink: 0;
}

.site-logo span {

    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.site-logo small {

    margin-top: 2px;

    font-size: 10px;
    color: rgba(255,255,255,0.62);

    letter-spacing: 0.04em;
}


/* NAVEGAÇÃO */

.main-navigation {

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

    gap: 30px;

    margin-left: auto;
}

.main-navigation a {

    color: rgba(255,255,255,0.9);

    font-size: 12px;
    font-weight: 600;

    text-transform: uppercase;

    transition: color 0.2s ease;
}

.main-navigation a:hover {

    color: var(--gold);
}


/* BUSCA */

.header-actions {

    display: flex;
    align-items: center;
}

.search-button {

    border: 1px solid rgba(255,255,255,0.3);

    border-radius: 30px;

    background: transparent;

    color: white;

    padding: 9px 18px;

    font-size: 11px;

    cursor: pointer;
}


/* =========================================================
   5. HERO
   ========================================================= */

.spectacle-hero {

    position: relative;

    min-height: 540px;

    overflow: hidden;

    background: #1b2022;

    color: white;

    display: flex;
    align-items: center;
}


/*
   Placeholder temporário.

   Quando colocarmos a imagem real,
   este elemento será substituído pela capa.
*/

.hero-image-placeholder {

    position: absolute;
    inset: 0;

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

    background:
        linear-gradient(
            90deg,
            #1a2022 0%,
            #283034 55%,
            #171c1e 100%
        );

    color: rgba(255,255,255,0.18);

    font-size: 14px;
    letter-spacing: 0.15em;
}


/* camada escura para leitura */

.spectacle-hero::after {

    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,0.72),
            rgba(0,0,0,0.25) 65%,
            rgba(0,0,0,0.12)
        );
}


.hero-content {

    position: relative;
    z-index: 2;

    width: min(
        calc(100% - 64px),
        var(--max-width)
    );

    margin: 0 auto;

    padding: 100px 0 90px;
}


.hero-category {

    color: var(--gold);

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.22em;

    margin-bottom: 16px;
}


.hero-content h1 {

    max-width: 680px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(56px, 7vw, 104px);

    font-weight: 400;

    line-height: 0.9;

    color: var(--gold-light);

    margin-bottom: 10px;
}


.hero-content h2 {

    max-width: 650px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(22px, 3vw, 42px);

    font-weight: 400;

    line-height: 1;

    color: #f4dfb5;

    margin-bottom: 28px;
}


.hero-tagline {

    max-width: 460px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 21px;

    font-style: italic;

    line-height: 1.35;

    color: rgba(255,255,255,0.9);

    margin-bottom: 34px;
}


/* =========================================================
   6. BOTÕES
   ========================================================= */

.button {

    display: inline-flex;

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

    min-height: 50px;

    padding: 0 26px;

    border-radius: 5px;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.03em;

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}

.button:hover {

    transform: translateY(-2px);
}


.button-primary {

    background: var(--gold);

    color: #171717;
}


/* =========================================================
   7. NAVEGAÇÃO INTERNA
   ========================================================= */

.spectacle-navigation {

    position: sticky;
    top: 0;
    z-index: 15;

    min-height: 58px;

    display: flex;
    align-items: center;

    padding: 0 max(32px, calc((100vw - var(--max-width)) / 2));

    background: #0f1416;

    border-bottom: 1px solid rgba(255,255,255,0.1);

    overflow-x: auto;

    scrollbar-width: none;
}

.spectacle-navigation::-webkit-scrollbar {
    display: none;
}


.spectacle-navigation > a:not(.nav-ticket-button) {

    padding: 20px 17px;

    color: rgba(255,255,255,0.9);

    font-size: 11px;
    font-weight: 600;

    text-transform: uppercase;

    white-space: nowrap;
}


.spectacle-navigation > a:not(.nav-ticket-button):hover {

    color: var(--gold);
}


.nav-ticket-button {

    margin-left: auto;

    flex-shrink: 0;

    padding: 12px 24px;

    border-radius: 5px;

    background: var(--gold);

    color: #151515;

    font-size: 11px;
    font-weight: 700;

    white-space: nowrap;
}


/* =========================================================
   8. INFORMAÇÕES PRINCIPAIS
   ========================================================= */

.spectacle-information {

    background: var(--cream);

    color: var(--text);

    padding: 52px 0;
}


.information-container {

    display: grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(280px, 0.95fr)
        minmax(230px, 0.7fr);

    gap: 42px;

    align-items: stretch;
}


/* TÍTULOS DAS SEÇÕES */

.section-heading {

    display: flex;
    align-items: center;

    gap: 16px;
}

.section-heading h2 {

    font-size: 18px;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.02em;
}

.section-heading span {

    display: none;
}


/* SINOPSE */

.synopsis {

    padding-right: 10px;
}

.synopsis .section-heading {

    margin-bottom: 24px;
}

.synopsis p {

    max-width: 510px;

    font-size: 15px;

    line-height: 1.7;

    color: #373936;
}


/* DADOS */

.show-details {

    padding-left: 34px;

    border-left: 1px solid var(--border);

    display: flex;
    flex-direction: column;

    gap: 19px;
}


.detail-item {

    display: flex;
    flex-direction: column;

    gap: 3px;
}


.detail-item strong {

    font-size: 10px;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}


.detail-item span {

    font-size: 13px;

    line-height: 1.45;

    color: #383a37;
}


/* =========================================================
   9. AÇÕES
   ========================================================= */

.spectacle-actions {

    padding-left: 28px;

    border-left: 1px solid var(--border);

    display: flex;
    flex-direction: column;

    gap: 8px;
}


.action-button {

    width: 100%;

    min-height: 43px;

    display: flex;

    align-items: center;

    justify-content: flex-start;

    gap: 10px;

    padding: 11px 15px;

    border: 1px solid rgba(0,0,0,0.08);

    border-radius: 4px;

    background: rgba(0,0,0,0.045);

    color: #17191b;

    font-size: 11px;

    font-weight: 700;

    cursor: pointer;

    text-align: left;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.action-button:hover {

    background: rgba(0,0,0,0.09);

    transform: translateY(-1px);
}


.action-primary {

    justify-content: center;

    background: var(--gold);

    border-color: var(--gold);
}


.social-links {

    margin-top: 12px;

    padding-top: 16px;

    border-top: 1px solid rgba(0,0,0,0.15);
}

.social-links small {

    display: block;

    margin-bottom: 10px;

    font-size: 9px;

    text-transform: uppercase;

    letter-spacing: 0.08em;
}


.social-links > div {

    display: flex;

    gap: 7px;

    flex-wrap: wrap;
}


.social-links a {

    width: 31px;
    height: 31px;

    display: flex;

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

    border: 1px solid rgba(0,0,0,0.3);

    border-radius: 50%;

    font-size: 7px;

    overflow: hidden;
}


/* =========================================================
   10. SEÇÕES GERAIS
   ========================================================= */

.spectacle-section {

    padding: var(--section-padding) 0;

    background: var(--cream);

    color: var(--text);
}


.section-header {

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 26px;
}


.section-header > a {

    font-size: 10px;

    font-weight: 700;

    text-transform: uppercase;

    white-space: nowrap;
}


.section-header > a:hover {

    color: #8c5d16;
}


/* =========================================================
   11. GALERIA
   ========================================================= */

.gallery-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 3px;

    overflow: hidden;
}


.image-placeholder {

    aspect-ratio: 16 / 9;

    display: flex;

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

    background: #343b3d;

    color: rgba(255,255,255,0.35);

    font-size: 10px;

    letter-spacing: 0.1em;

    overflow: hidden;
}

.image-placeholder img {

    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* =========================================================
   12. DESTAQUE
   ========================================================= */

.spectacle-highlight {

    position: relative;

    min-height: 260px;

    display: flex;

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

    overflow: hidden;

    background: #202728;

    color: white;

    text-align: center;
}


.highlight-background-placeholder {

    position: absolute;
    inset: 0;

    display: flex;

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

    color: rgba(255,255,255,0.15);

    font-size: 11px;

    letter-spacing: 0.12em;
}


.spectacle-highlight::after {

    content: "";

    position: absolute;
    inset: 0;

    background: rgba(0,0,0,0.38);
}


.spectacle-highlight blockquote {

    position: relative;

    z-index: 2;

    width: min(
        calc(100% - 64px),
        850px
    );

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(24px, 3.3vw, 42px);

    font-style: italic;

    line-height: 1.25;

    color: #f4dfb5;
}


/* =========================================================
   13. VÍDEOS
   ========================================================= */

.videos-section {

    background: #111517;

    color: white;
}


.videos-section .section-heading {

    color: white;
}


.videos-section .section-header > a {

    color: rgba(255,255,255,0.7);
}


.videos-grid {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 18px;
}


.video-card {

    min-width: 0;
}


.video-placeholder {

    aspect-ratio: 16 / 9;

    display: flex;

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

    background: #252c2f;

    border: 1px solid rgba(255,255,255,0.18);

    color: white;

    font-size: 34px;

    margin-bottom: 12px;
}


.video-card h3 {

    font-size: 13px;

    font-weight: 500;
}


/* =========================================================
   14. ELENCO
   ========================================================= */

.cast-section {

    background: var(--cream-light);
}


.cast-grid {

    display: grid;

    grid-template-columns:
        repeat(6, 1fr);

    gap: 12px;
}


.cast-image-placeholder {

    aspect-ratio: 4 / 5;

    display: flex;

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

    background: #343b3d;

    color: rgba(255,255,255,0.35);

    font-size: 10px;

    overflow: hidden;
}

.cast-image-placeholder img {

    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


.cast-card h3 {

    margin-top: 9px;

    font-size: 10px;

    font-weight: 700;

    text-transform: uppercase;

    text-align: center;
}


.cast-card p {

    margin-top: 2px;

    color: #696762;

    font-size: 10px;

    text-align: center;
}


/* =========================================================
   15. FICHA TÉCNICA
   ========================================================= */

.credits-section {

    border-top: 1px solid rgba(0,0,0,0.08);
}


.credits-section > .section-container > .section-heading {

    margin-bottom: 30px;
}


.credits-content {

    display: flex;

    align-items: stretch;

    justify-content: space-between;

    gap: 35px;
}


.credits-list {

    flex: 1;

    display: grid;

    grid-template-columns:
        repeat(5, 1fr);
}


.credit-item {

    padding: 0 18px;

    border-right: 1px solid var(--border);

    display: flex;

    flex-direction: column;

    gap: 5px;
}


.credit-item:first-child {

    padding-left: 0;
}


.credit-item strong {

    font-size: 10px;

    line-height: 1.3;
}


.credit-item span {

    font-size: 12px;

    color: #5f5c56;
}


.pdf-button {

    min-width: 230px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 18px 22px;

    border-radius: 5px;

    background: #e7dac2;

    color: #272522;

    font-size: 11px;

    font-weight: 700;
}


.pdf-button small {

    margin-top: 4px;

    font-size: 9px;

    font-weight: 400;
}


/* =========================================================
   16. RODAPÉ
   ========================================================= */

.site-footer {

    background: #0e1315;

    color: white;

    padding: 48px 0;
}


.footer-container {

    display: grid;

    grid-template-columns:
        1.4fr
        1fr
        1fr
        auto;

    align-items: center;

    gap: 40px;
}


.footer-brand {

    display: flex;

    flex-direction: column;

    gap: 4px;
}


.footer-brand strong {

    font-size: 21px;

    font-weight: 500;
}


.footer-brand span {

    color: rgba(255,255,255,0.55);

    font-size: 10px;
}


.footer-navigation {

    display: flex;

    flex-wrap: wrap;

    gap: 18px;
}


.footer-navigation a,
.footer-social a {

    color: rgba(255,255,255,0.75);

    font-size: 10px;
}


.footer-navigation a:hover,
.footer-social a:hover {

    color: var(--gold);
}


.footer-social {

    display: flex;

    gap: 14px;

    flex-wrap: wrap;
}


.back-to-top {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 3px;

    color: white;

    font-size: 20px;
}


.back-to-top span {

    font-size: 8px;

    text-transform: uppercase;

    letter-spacing: 0.08em;
}


/* =========================================================
   17. TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .main-navigation {

        gap: 16px;
    }

    .header-container {

        gap: 20px;
    }

    .information-container {

        grid-template-columns:
            1fr 1fr;

    }

    .synopsis {

        grid-column: 1 / -1;

        padding-right: 0;
    }

    .show-details {

        padding-left: 0;

        border-left: none;
    }

    .spectacle-actions {

        padding-left: 24px;
    }

    .cast-grid {

        grid-template-columns:
            repeat(4, 1fr);
    }

    .credits-list {

        grid-template-columns:
            repeat(3, 1fr);

        gap: 20px;
    }

    .credit-item {

        padding-left: 0;

        border-right: none;
    }

    .credits-content {

        flex-direction: column;
    }

    .pdf-button {

        width: 100%;
    }

    .footer-container {

        grid-template-columns:
            1fr 1fr;
    }
}


/* =========================================================
   18. MOBILE
   ========================================================= */

@media (max-width: 700px) {

    :root {

        --section-padding: 48px;
    }


    .header-container,
    .section-container,
    .information-container,
    .footer-container {

        width: min(
            calc(100% - 32px),
            var(--max-width)
        );
    }


    /* CABEÇALHO */

    .site-header {

        position: relative;
    }

    .header-container {

        min-height: 66px;

        gap: 15px;
    }

    .site-logo span {

        font-size: 19px;
    }

    .site-logo small {

        font-size: 8px;
    }

    /* MENU SUPERIOR MOBILE
       O menu principal fica em uma segunda linha do cabeçalho,
       com rolagem horizontal por toque. */
    .header-container {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: 14px;
        row-gap: 10px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .main-navigation {
        display: flex !important;
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        min-width: 0;
        margin-left: 0;
        justify-content: flex-start;
        align-items: center;
        gap: 22px;
        overflow-x: auto;
        overflow-y: hidden;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding: 2px 0 4px;
    }

    .main-navigation::-webkit-scrollbar {
        display: none;
    }

    .main-navigation a {
        flex: 0 0 auto;
        font-size: 10px;
        white-space: nowrap;
    }

    .header-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .search-button {

        font-size: 9px;

        padding: 8px 12px;
    }


    /* HERO */

    .spectacle-hero {

        min-height: 620px;

        align-items: flex-end;
    }

    .hero-content {

        width: min(
            calc(100% - 32px),
            var(--max-width)
        );

        padding: 80px 0 50px;
    }

    .hero-content h1 {

        font-size: clamp(48px, 15vw, 76px);
    }

    .hero-content h2 {

        font-size: 25px;
    }

    .hero-tagline {

        font-size: 18px;

        max-width: 330px;
    }

    .button {

        width: 100%;
    }


    /* NAVEGAÇÃO INTERNA */

    .spectacle-navigation {

        position: relative;

        padding: 0 16px;

        justify-content: flex-start;
    }

    .spectacle-navigation > a:not(.nav-ticket-button) {

        padding: 18px 12px;

        font-size: 10px;
        white-space: nowrap;
    }


    /* INFORMAÇÕES */

    .spectacle-information {

        padding: 40px 0;
    }

    .information-container {

        display: flex;

        flex-direction: column;

        gap: 32px;
    }

    .synopsis {

        padding: 0;
    }

    .synopsis p {

        font-size: 16px;
        line-height: 1.65;
    }

    .section-heading h2 {

        font-size: 22px;
    }

    .detail-item strong {

        font-size: 11px;
    }

    .detail-item span {

        font-size: 15px;
        line-height: 1.45;
    }

    .section-header > a {

        font-size: 11px;
    }

    .cast-card h3 {

        font-size: 11px;
    }

    .cast-card p {

        font-size: 11px;
    }

    .show-details {

        padding: 26px 0;

        border-top: 1px solid var(--border);
        border-bottom: 1px solid var(--border);

        gap: 17px;
    }

    .spectacle-actions {

        padding: 0;

        border: none;
    }

    .action-button {

        min-height: 48px;
    }


    /* GALERIA */

    .gallery-grid {

        grid-template-columns:
            repeat(2, 1fr);

        gap: 3px;
    }

    .gallery-grid .image-placeholder:last-child {

        display: none;
    }


    /* DESTAQUE */

    .spectacle-highlight {

        min-height: 300px;
    }

    .spectacle-highlight blockquote {

        width: calc(100% - 40px);

        font-size: 27px;
    }


    /* VÍDEOS */

    .videos-grid {

        grid-template-columns: 1fr;

        gap: 28px;
    }


    /* ELENCO */

    .cast-grid {

        grid-template-columns:
            repeat(2, 1fr);

        gap: 20px 10px;
    }


    /* FICHA */

    .credits-list {

        grid-template-columns: 1fr 1fr;

        gap: 24px 15px;
    }


    /* RODAPÉ */

    .footer-container {

        grid-template-columns: 1fr;

        gap: 28px;
    }

    .footer-navigation {

        gap: 14px;
    }

    .back-to-top {

        align-items: flex-start;
    }

}


/* =========================================================
   19. MOBILE PEQUENO
   ========================================================= */

@media (max-width: 400px) {

    .hero-content h1 {

        font-size: 25px;
    }

    .hero-content h2 {

        font-size: 21px;
    }

    .section-heading h2 {

        font-size: 16px;
    }

    .credits-list {

        grid-template-columns: 1fr;
    }

}
/* =========================================================
   AJUSTE DE ALINHAMENTO — FICHA TÉCNICA
   ========================================================= */
.credits-list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: start;
    gap: 0;
}

.credit-item {
    min-width: 0;
    min-height: 72px;
    padding: 0 18px;
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 5px;
    box-sizing: border-box;
}

.credit-item:first-child {
    padding-left: 0;
}

.credit-item strong,
.credit-item span {
    display: block;
    width: 100%;
    margin: 0;
    text-align: left;
}

.credit-item:nth-child(5n) {
    border-right: 0;
}

@media (max-width: 1100px) {
    .credits-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 28px;
    }

    .credit-item:nth-child(5n) {
        border-right: 1px solid var(--border);
    }

    .credit-item:nth-child(3n) {
        border-right: 0;
    }
}

@media (max-width: 700px) {
    .credits-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 24px;
    }

    .credit-item:nth-child(3n) {
        border-right: 1px solid var(--border);
    }

    .credit-item:nth-child(2n) {
        border-right: 0;
    }
}


/* =========================================================
   AJUSTES EXCLUSIVOS PARA MOBILE — CARTAZ VIRTUAL
   ========================================================= */
@media (max-width: 700px) {

    /* CAPA: a altura acompanha a imagem mobile, sem áreas pretas extras. */
    .spectacle-hero {
        min-height: 0 !important;
        height: auto !important;
        display: block !important;
        overflow: hidden !important;
    }

    .spectacle-hero .hero-image-placeholder {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
    }

    .spectacle-hero .hero-image-placeholder picture {
        display: block !important;
        width: 100% !important;
        height: auto !important;
    }

    .spectacle-hero .hero-image-placeholder img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        max-width: none !important;
        object-fit: contain !important;
    }

    .spectacle-hero .hero-content {
        position: absolute !important;
        inset: 0 !important;
        width: min(calc(100% - 32px), var(--max-width)) !important;
        height: 100% !important;
        margin: 0 auto !important;
        padding: 40px 0 32px !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-end !important;
    }

    /* MENU: botões de compra visíveis e navegáveis por toque. */
    .spectacle-navigation {
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        flex-wrap: nowrap !important;
    }

    .spectacle-navigation .menu-ticket-buttons {
        display: flex !important;
        flex: 0 0 auto !important;
        margin-left: 8px !important;
        gap: 6px !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .spectacle-navigation .menu-ticket-buttons .nav-ticket-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        margin-left: 0 !important;
        padding: 10px 14px !important;
        font-size: 11px !important;
        white-space: nowrap !important;
    }

    /* GALERIA: carrossel horizontal por toque/deslize. */
    .gallery-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        padding: 0 0 8px !important;
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }

    .gallery-grid::-webkit-scrollbar {
        display: none !important;
    }

    .gallery-grid .image-placeholder {
        display: block !important;
        flex: 0 0 82vw !important;
        width: 82vw !important;
        aspect-ratio: 4 / 5 !important;
        scroll-snap-align: start !important;
        overflow: hidden !important;
    }

    .gallery-grid .image-placeholder:last-child {
        display: block !important;
    }

    .gallery-grid .image-placeholder img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* FICHA: maior, mais legível e sem os grandes vazios verticais. */
    .credits-list {
        display: grid !important;
        grid-template-columns: 1fr !important;
        row-gap: 16px !important;
        column-gap: 0 !important;
    }

    .credits-list .credit-item {
        min-height: 0 !important;
        height: auto !important;
        padding: 0 0 14px !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--border) !important;
        gap: 3px !important;
    }

    .credits-list .credit-item:last-child {
        border-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    .credits-list .credit-item strong {
        font-size: 15px !important;
        line-height: 1.3 !important;
    }

    .credits-list .credit-item span {
        font-size: 18px !important;
        line-height: 1.35 !important;
    }
}


/* =========================================================
   AJUSTE DE LAYOUT — GALERIA E ELENCO
   ========================================================= */

/* Retira a linha decorativa de TODOS os títulos de seção. */
.section-heading span {
    display: none !important;
}

/* GALERIA DESKTOP: três quadros rigorosamente iguais. */
.gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 3px !important;
}

.gallery-grid .image-placeholder {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    display: block !important;
}

.gallery-grid .image-placeholder img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* ELENCO: todos os retratos ocupam exatamente o mesmo quadro. */
.cast-image-placeholder {
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    overflow: hidden !important;
    display: block !important;
}

.cast-image-placeholder img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* No mobile, preserva o carrossel já existente da galeria. */
@media (max-width: 700px) {
    .gallery-grid {
        grid-template-columns: none !important;
    }

    .gallery-grid .image-placeholder {
        aspect-ratio: 4 / 5 !important;
    }
}


/* =========================================================
   AJUSTES NOVOS — SOMENTE DESKTOP
   Não altera a navegação ou o carrossel mobile existentes.
   ========================================================= */
@media (min-width: 701px) {
    .spectacle-hero::after {
        display: none !important;
    }

    .spectacle-navigation .menu-ticket-buttons {
        order: -1 !important;
        margin-left: 0 !important;
    }

    .gallery-carousel {
        position: relative;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .gallery-carousel .gallery-grid {
        display: flex !important;
        grid-template-columns: none !important;
        gap: 3px !important;
        width: 100%;
        overflow-x: auto !important;
        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding: 0 2px;
    }

    .gallery-carousel .gallery-grid::-webkit-scrollbar {
        display: none;
    }

    .gallery-carousel .gallery-grid .image-placeholder {
        flex: 0 0 calc((100% - 9px) / 4);
        scroll-snap-align: start;
    }

    .gallery-arrow {
        position: absolute;
        top: 50%;
        z-index: 5;
        width: 38px;
        height: 38px;
        transform: translateY(-50%);
        border: 1px solid rgba(255,255,255,.75);
        border-radius: 50%;
        background: rgba(0,0,0,.65);
        color: #fff;
        font-size: 28px;
        line-height: 1;
        cursor: pointer;
    }

    .gallery-arrow-prev { left: 10px; }
    .gallery-arrow-next { right: 10px; }

    .cast-image-placeholder {
        position: relative;
        aspect-ratio: 4 / 5 !important;
        padding: 4px;
        border: 1px solid rgba(0,0,0,.13);
        border-radius: 8px;
        background: #e7dfd0;
        box-shadow: 0 8px 20px rgba(0,0,0,.08);
    }

    .cast-image-placeholder img {
        border-radius: 5px;
    }
}

/* O overlay do hero não deve existir em nenhuma largura. */
.spectacle-hero::after {
    display: none !important;
}

.session-line {
    display: block;
    margin-bottom: 7px;
}

.session-ticket-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 7px;
    padding: 4px 8px;
    border-radius: 3px;
    background: var(--gold);
    color: #171717 !important;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-decoration: none !important;
    white-space: nowrap;
    vertical-align: middle;
}

.session-ticket-button:hover {
    filter: brightness(1.06);
}

@media (max-width: 700px) {
    .gallery-carousel {
        position: relative;
    }

    .gallery-arrow {
        display: none !important;
    }

    .session-ticket-button {
        margin-left: 4px;
        padding: 4px 7px;
        font-size: 8px;
    }
}


/* =========================================================
   AJUSTES DE INTERAÇÃO E LINKS — 2026-10-06
   ========================================================= */

.spectacle-information a:not(.action-button):not(.social-icon):not(.session-ticket-button),
.spectacle-section a:not(.action-button):not(.social-icon):not(.session-ticket-button),
.show-details a:not(.action-button):not(.social-icon):not(.session-ticket-button),
.videos-section a:not(.action-button):not(.social-icon) {
    color: var(--gold);
    transition: color .18s ease, opacity .18s ease, transform .18s ease, background .18s ease;
}

.spectacle-information a:not(.action-button):not(.social-icon):not(.session-ticket-button):hover,
.spectacle-section a:not(.action-button):not(.social-icon):not(.session-ticket-button):hover,
.show-details a:not(.action-button):not(.social-icon):not(.session-ticket-button):hover,
.videos-section a:not(.action-button):not(.social-icon):hover {
    color: var(--gold-light);
    text-decoration: underline;
}

.social-links a.social-icon {
    color: var(--gold);
    border-color: var(--gold);
    transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}

.social-links a.social-icon:hover {
    background: var(--gold);
    color: #171717;
    border-color: var(--gold);
    transform: translateY(-2px);
}

.button,
.action-button,
.nav-ticket-button,
.session-ticket-button,
.search-button,
.gallery-arrow,
.pdf-button {
    transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease, filter .18s ease, opacity .18s ease;
}

.button:hover,
.action-button:hover,
.nav-ticket-button:hover,
.session-ticket-button:hover,
.pdf-button:hover {
    transform: translateY(-2px);
}

.gallery-arrow:hover {
    transform: translateY(-50%) scale(1.05);
}

/* Em qualquer largura, o botão de ingressos/menu é o primeiro item visual. */
@media (max-width: 700px) {
    .spectacle-navigation .menu-ticket-buttons {
        order: -1 !important;
        margin-left: 0 !important;
        margin-right: 6px !important;
    }
}

/* Pré-visualizações compactas no editor. */


/* =========================================================
   MELHORIAS DE DESIGN — GALERIA, VÍDEOS, ELENCO E DESTAQUE
   ========================================================= */

/* Os títulos de seção não recebem linha decorativa. */
.section-heading {
    gap: 0 !important;
}

.section-heading span {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* GALERIA — navegação por pontos, sem setas. */
.gallery-carousel {
    position: relative;
    width: 100%;
}

.gallery-carousel .gallery-grid {
    scrollbar-width: none;
}

.gallery-carousel .gallery-grid::-webkit-scrollbar {
    display: none;
}

.gallery-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 20px;
    margin-top: 15px;
}

.gallery-dots[hidden] {
    display: none !important;
}

.gallery-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(23,25,27,.22);
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, opacity .2s ease;
}

.gallery-dot:hover {
    transform: scale(1.25);
    background: var(--gold);
}

.gallery-dot.is-active {
    width: 9px;
    height: 9px;
    background: var(--gold);
    transform: scale(1);
}

/* Desktop: quatro fotos visíveis e transição elegante. */
@media (min-width: 701px) {
    .gallery-carousel .gallery-grid .image-placeholder {
        border-radius: 2px;
        transition: transform .35s ease, opacity .35s ease;
    }

    .gallery-carousel .gallery-grid .image-placeholder:hover {
        transform: scale(.985);
        opacity: .92;
    }

    .gallery-arrow {
        display: none !important;
    }
}

/* Mobile: mantém o carrossel por toque já existente, apenas acrescenta
   uma navegação visual mais limpa. */
@media (max-width: 700px) {
    .gallery-dots {
        margin-top: 11px;
        gap: 6px;
    }

    .gallery-dot {
        width: 6px;
        height: 6px;
    }

    .gallery-dot.is-active {
        width: 8px;
        height: 8px;
    }

    .gallery-arrow {
        display: none !important;
    }

    .gallery-carousel .gallery-grid .image-placeholder {
        transition: transform .3s ease, opacity .3s ease;
    }
}

/* VÍDEOS — mesma linguagem visual das demais seções. */
.videos-section {
    background: var(--cream) !important;
    color: var(--text) !important;
}

.videos-section .section-heading,
.videos-section .section-heading h2 {
    color: var(--text) !important;
}

.videos-section .section-header > a {
    color: var(--gold) !important;
}

.video-card h3 {
    color: var(--text) !important;
    margin-top: 0;
    line-height: 1.35;
}

.video-placeholder {
    border-color: rgba(0,0,0,.12);
    border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(0,0,0,.08);
}

.video-placeholder iframe,
.video-placeholder video {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.video-download {
    color: var(--gold) !important;
}

/* ELENCO — quadro individual para uniformizar retratos de origens diferentes. */
.cast-card {
    min-width: 0;
    text-align: center;
}

.cast-image-placeholder {
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    padding: 5px !important;
    border: 1px solid rgba(0,0,0,.10) !important;
    border-radius: 7px !important;
    background: rgba(255,255,255,.55) !important;
    box-shadow: 0 8px 22px rgba(0,0,0,.07) !important;
    overflow: hidden !important;
}

.cast-image-placeholder img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 4px !important;
    transition: transform .45s ease;
}

.cast-card:hover .cast-image-placeholder img {
    transform: scale(1.025);
}

.cast-card h3,
.cast-card p {
    transition: transform .25s ease;
}

.cast-card:hover h3 {
    transform: translateY(-1px);
}

/* CARTAZ — imagem e vídeo ocupam exatamente a mesma caixa. */
.show-poster {
    width: 100%;
    margin: 0 0 28px 0 !important;
}

.show-poster-media {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 2px;
    overflow: hidden;
    background: #111;
}

.show-poster-video {
    pointer-events: none;
}

/* DESTAQUE — movimento muito discreto para a frase, sem alterar o conteúdo. */
.spectacle-highlight blockquote {
    text-shadow: 0 8px 28px rgba(0,0,0,.22);
    animation: cvHighlightIn .9s ease both;
}

.spectacle-highlight blockquote::before,
.spectacle-highlight blockquote::after {
    position: absolute;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 76px;
    line-height: 1;
    opacity: .16;
    pointer-events: none;
}

.spectacle-highlight blockquote::before {
    content: "“";
    left: -28px;
    top: -28px;
}

.spectacle-highlight blockquote::after {
    content: "”";
    right: -28px;
    bottom: -45px;
}

@keyframes cvHighlightIn {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Aparição suave das imagens quando a página é carregada. */
.gallery-carousel .image-placeholder,
.cast-card {
    animation: cvImageIn .65s ease both;
}

@keyframes cvImageIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gallery-carousel .image-placeholder,
    .cast-card,
    .spectacle-highlight blockquote {
        animation: none !important;
        transition: none !important;
    }
}


/* =========================================================
   AJUSTES DESKTOP — GALERIA / HERO
   2026-10-06
   Não altera regras de mobile.
   ========================================================= */
@media (min-width: 701px) {

    /* Galeria: um pouco mais alta, mantendo todos os quadros iguais. */
    .gallery-carousel .gallery-grid .image-placeholder {
        aspect-ratio: 4 / 3 !important;
    }

    /* Aproxima a galeria da seção de informações acima. */
    .spectacle-section:has(.gallery-carousel) {
        padding-top: 44px !important;
    }

    /* Hero: ocupa toda a largura disponível no desktop.
       O mobile permanece exatamente com as regras existentes. */
    .spectacle-hero {
        width: 100vw !important;
        max-width: none !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
    }
}
