:root {
    /* Colors */
    --bg-main: #3410a8;
    --bg-dark: #1d0c55;
    --bg-purple: #7a2ba5;
    --accent-yellow: #ffe400;
    --accent-pink: #ff3b7f;
    --accent-cyan: #00e4ff;
    --text-light: #ffffff;
    --text-dark: #1c1230;

    /* Layout */
    --radius-card: 18px;
    --shadow-soft: 0 8px 20px rgba(0, 0, 0, 0.25);
    --container-width: 1100px;
    --layout-padding-x: 1.5rem;
    --layout-padding-y: 2.5rem;

    /* Typography */
    --font-base: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: "CasagrandeGrind", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

@font-face {
    font-family: "CasagrandeGrind";
    src: url("fonts/CasagrandeGrind-Regular_0.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

/* Reset básico */
*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: var(--font-base);
    background: var(--bg-main);
    color: var(--text-light);
}

/* Utilitários */

.container {
    max-width: var(--container-width);
    margin-inline: auto;
    padding-inline: var(--layout-padding-x);
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    text-decoration: none;
}

/* Hero / topo */

.hero {
    background: center / cover no-repeat url("images/fundo.webp");
    padding: 7.5rem var(--layout-padding-x) 0;
}

.hero-wrapper {
    position: relative;
    margin-inline: auto;
}

/* Logo topo esquerdo */
.hero-logo {
    position: absolute;
    inset-block-start: 24px;
    inset-inline-start: 56px;
}

.hero-logo img {
    display: block;
    max-width: 160px;
}

/* Painel central */
.hero-panel {
    padding: 3.5rem 3.5rem 0;
    min-height: 260px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #eee;
}

/* Logo JUBILUS centralizado */
.hero-main-logo {
    margin-block: 40px 16px;
}

.hero-main-logo img {
    display: block;
    max-width: 100%;
    max-height: 280px;
}

/* Subtítulo em faixa */
.hero-subtitle-band {
    margin-block-end: 24px;
    display: flex;
}
.mobile {
    display: none;
}
.desktop {
    display: flex;
}
.hero-subtitle-text {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.2rem, 6vw, 4rem);
    letter-spacing: 0;
    display: inline-block;
    text-transform: uppercase;
    color: var(--bg-dark);
    background-color: var(--accent-yellow);
    padding-inline: 24px;
    padding-block: 8px;
}

/* Botão centralizado */
.hero-cta-wrapper {
    margin-block-end: 80px;
    font-family: var(--font-display), serif;
    font-weight: 400;
    font-size: clamp(1.8rem, 4vw, 3rem);
    letter-spacing: 0;
    color: var(--text-light);
    background-color: #ff325f;
    padding: 12px 48px;
    border-radius: 999px;
    cursor: pointer;
}


/* Info stripe */
.hero-information {
    display: flex;
    flex-direction: row;
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(1.4rem, 3vw, 3rem);
    color: var(--text-light);
    letter-spacing: 0;
}

.hero-information-icon {
    display: flex;
    padding: 16px;
    align-items: center;
    justify-content: center;
    min-width: 200px;
}

.hero-information-icon > img {
    max-height: 106px;
}

.hero-information-text {
    display: flex;
    align-items: center;
    background-color: #00c9e2;
    padding: 30px;
    border-radius: 44px 44px 0 0;
}

.icon {
    font-size: 1.8rem;
}

.info-title {
    margin: 0;
    font-weight: 700;
    font-size: 0.9rem;
    line-height: 1.4;
}

/* Seção de galeria */

.gallery-section {
    background: center / cover no-repeat url("images/jubi.webp");
    padding: 8px 12px 24px;
    min-height: 90vh;
}


/* Seções de conteúdo */

.content-section {
    padding-block: 40px;
    padding-inline: 16px;
}

.section-dark {
    background: var(--bg-dark);
}

.section-purple {
    background: var(--bg-purple);
}

.content-inner {
    width: 100%;
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 80px;
    padding: 40px 60px;
}

.content-inner.reverse {
    flex-direction: row-reverse;
}

.content-image {
    flex: 1 1 40%;
}

.item {
    border-radius: var(--radius-card);
    width: 475px;
    height: 475px;
    box-shadow: var(--shadow-soft);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.item--1 {
    background-image: url("images/item1-1.webp");
}

.item--2 {
    background-image: url("images/item2-1.webp");
}

.content-text {
    flex: 1 1 55%;
}

.content-text h2 {
    margin-block: 0 12px;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    font-family: var(--font-display);
    letter-spacing: 0;
}

.content-text p {
    margin: 0;
    font-size: clamp(1.1rem, 2vw, 1.9rem);
    line-height: 1.6;
}

/* Seção de inscrição */

.inscricao-section {
    background: center / cover no-repeat url("images/fundo.webp");
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 132px 330px;
    gap: 106px;
}

.inscricao-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    text-align: center;
    background: #ffffff;
    padding: 28px 22px 30px;
    color: var(--text-dark);
    box-shadow: var(--shadow-soft);
}

.inscricao-card h2 {
    margin-block: 0 8px;
    width: fit-content;
    font-size: 96px;
    letter-spacing: 0;
    color: white;
    background: #611E7D;
    rotate: -3.15deg;
    font-family: var(--font-display);
    padding-left: 32px;
    padding-right: 32px;
    z-index: 2;
    bottom: 64px;
    position: relative;
}

.inscricao-text {
    margin: 4px 0 14px;
    font-size: 0.95rem;
}

.pix-label {
    margin: 0;
    font-weight: 700;
    font-size: 0.9rem;
}

.pix-value {
    margin: 4px 0 18px;
    font-weight: 600;
    font-size: 0.95rem;
}

/* Seção de contato */

.contato-section {
    background: var(--bg-main);
    padding: 0 16px 40px;
}

.contato-card {
    max-width: 600px;
    margin-inline: auto;
    background: #ffffff;
    color: var(--text-dark);
    border-radius: var(--radius-card);
    padding: 24px 22px;
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.contato-card h2 {
    margin-block: 0 12px;
    font-size: 1.4rem;
    letter-spacing: 0.18em;
}

.contato-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-weight: 400;
    font-size: 32px;
    line-height: 40px;
    letter-spacing: 0;
    text-align: center;
    font-family: var(--font-base);
}

.contato-list li + li {
    margin-top: 6px;
}

/* FOOTER */

.site-footer {
    background: #13073a;
    color: var(--text-light);
    padding: 18px 16px;
}

.site-footer-inner {
    max-width: var(--container-width);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.site-footer-text {
    margin: 0;
    font-size: 0.85rem;
    text-align: center;
}

/* Responsividade */

@media (max-width: 1024px) {
    .hero {
        padding: 4rem var(--layout-padding-x) 0;
    }

    .content-inner {
        gap: 40px;
        padding: 32px 24px;
    }
}

@media (max-width: 768px) {
    .hero-wrapper {
        padding-inline: 0;
    }

    .hero-panel {
        padding: 2.5rem 1.5rem;
    }

    .content-inner,
    .content-inner.reverse {
        flex-direction: column;
    }

    .content-image,
    .content-text {
        width: 100%;
        max-height: 300px;
        flex: unset;
    }

    .hero-information {
        flex-direction: column;
    }

    .hero-information-icon {
        min-width: auto;
    }

    .gallery-section {
        background: left / cover no-repeat url("images/jubi.webp");
        padding: 8px 12px 24px;
        min-height: 70vh;
    }

    .inscricao-section {
        padding: 80px 0;
    }
    .inscricao-card h2 {
        font-size: 48px;
    }
    .contato-list {
        font-size: 20px;
    }
    .hero-logo {
        display: none;
    }
    .hero-subtitle-text {
        display: inline;
        padding-block: 0;
    }
    .hero-subtitle-band {
        text-align: center;
    }
    .hero-cta-wrapper {
        margin-bottom: 32px;
    }
    .hero-information-text {
        text-align: center;
        border-radius: 22px;
        font-size: 40px;
        padding: 8px;
        display: block;
    }
    #btn-inscricao-bottom {
        font-size: 22px;
    }

}

@media (max-width: 480px) {
    .hero {
        padding: 18px 12px 32px;
    }

    .hero-panel {
        padding: 1.5rem 1rem;
    }

    .inscricao-card,
    .contato-card {
        padding: 20px 16px;
    }
    .mobile {
        display: initial;
    }
    .desktop {
        display: none;
    }
}

.gform-wrapper {
    position: relative;
    width: 100%;
    max-width: 640px;   /* opcional: limita a largura máxima */
    margin: 0 auto;     /* centraliza no layout */
    overflow: hidden;
}

/* Usa altura fixa razoável em desktop, menor em mobile */
.gform-iframe {
    width: 100%;
    height: 2155px;
    border: 0;
}

/* Altura menor em telas menores (ajuste conforme o formulário) */
@media (max-width: 768px) {
    .gform-iframe {
        height: 1800px;
    }
}

@media (max-width: 480px) {
    .gform-iframe {
        height: 1600px;
    }
    .hero-cta-wrapper {
        padding: 0px 32px;
        margin-bottom: 32px;
    }
}
