:root {
    --red: #bf0e1a;
    --red-dark: #920b14;
    --red-soft: #fff1f2;
    --green: #168447;
    --green-dark: #0f6737;
    --green-soft: #edf9f2;
    --yellow: #f5bd17;
    --orange: #ef8411;
    --ink: #20242a;
    --muted: #67717e;
    --line: #dde2e8;
    --soft: #f5f7f9;
    --white: #fff;
    --danger: #b42318;
    --danger-soft: #fff1f0;
    --focus: rgba(191, 14, 26, .18);
    --radius-sm: 10px;
    --radius: 16px;
    --radius-lg: 24px;
    --shadow: 0 16px 42px rgba(24, 31, 38, .09);
    --font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

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

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--soft);
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
a { color: var(--red); }

.container {
    width: min(1160px, calc(100% - 40px));
    margin-inline: auto;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 12px;
    left: 12px;
    padding: 10px 14px;
    color: var(--white);
    background: var(--ink);
    border-radius: 8px;
    transform: translateY(-160%);
}
.skip-link:focus { transform: none; }

.site-header {
    position: relative;
    z-index: 5;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid rgba(32, 36, 42, .08);
}

.header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.brand img { width: 210px; height: auto; }

.header-label {
    color: var(--muted);
    font-size: .84rem;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.hero {
    overflow: hidden;
    padding: 32px 0 118px;
    color: var(--white);
    background:
        radial-gradient(circle at 86% 10%, rgba(245, 189, 23, .25), transparent 26%),
        radial-gradient(circle at 15% 85%, rgba(22, 132, 71, .32), transparent 28%),
        linear-gradient(125deg, #820b13 0%, #b40d18 54%, #961019 100%);
}

.congress-banner {
    width: 100%;
    height: auto;
    border-radius: var(--radius);
    background: #fbfaf6;
    box-shadow: 0 18px 44px rgba(48, 0, 4, .25);
}

.hero-copy {
    margin-top: 32px;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(380px, .8fr);
    align-items: end;
    gap: 56px;
}

.eyebrow, .section-kicker {
    display: inline-flex;
    align-items: center;
    color: var(--yellow);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.hero h1 {
    max-width: 690px;
    margin: 8px 0 10px;
    font-size: clamp(2rem, 4vw, 3.45rem);
    line-height: 1.06;
    letter-spacing: -.045em;
}

.hero-copy > div > p {
    max-width: 680px;
    margin: 0;
    color: rgba(255, 255, 255, .83);
    font-size: 1.05rem;
}

.event-facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.fact {
    min-height: 68px;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 13px 16px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 13px;
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(8px);
}

.fact svg, .privacy-note svg, .secure-label svg, .alert svg, .info-box svg,
.final-note svg, .success-event-details svg, .btn svg {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fact span { font-weight: 750; line-height: 1.3; }
.fact small { display: block; margin-bottom: 2px; color: rgba(255, 255, 255, .67); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

.main-content { padding: 0 0 80px; }

.registration-layout {
    position: relative;
    z-index: 2;
    margin-top: -72px;
    display: grid;
    grid-template-columns: 305px minmax(0, 1fr);
    align-items: start;
    gap: 24px;
}

.event-card, .form-card {
    border: 1px solid rgba(32, 36, 42, .08);
    border-radius: var(--radius-lg);
    background: var(--white);
    box-shadow: var(--shadow);
}

.event-card {
    position: sticky;
    top: 20px;
    overflow: hidden;
}

.event-card-top {
    padding: 25px 24px 23px;
    background: linear-gradient(145deg, #23272e, #171a1f);
    color: var(--white);
}

.event-card h2 { margin: 15px 0 8px; font-size: 1.35rem; line-height: 1.2; letter-spacing: -.025em; }
.event-card p { margin: 0; color: rgba(255, 255, 255, .7); font-size: .9rem; }

.free-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px;
    color: #c9f7da;
    background: rgba(22, 132, 71, .28);
    border: 1px solid rgba(116, 226, 157, .3);
    border-radius: 99px;
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.free-badge svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.4; }

.event-details { margin: 0; padding: 8px 24px; }
.event-details div { padding: 15px 0; border-bottom: 1px solid var(--line); }
.event-details div:last-child { border-bottom: 0; }
.event-details dt { margin-bottom: 3px; color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.event-details dd { margin: 0; font-size: .87rem; font-weight: 650; line-height: 1.45; }

.privacy-note {
    margin: 3px 16px 16px;
    padding: 13px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border-radius: 12px;
    background: var(--green-soft);
    color: var(--green-dark);
}
.privacy-note svg { width: 19px; height: 19px; margin-top: 1px; }
.privacy-note p { color: #38614b; font-size: .78rem; }
.privacy-note strong { display: block; color: var(--green-dark); }

.form-card { padding: 30px; }

.form-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 24px;
}

.section-kicker { color: var(--red); }
.form-heading h2 { margin: 4px 0 2px; font-size: clamp(1.55rem, 3vw, 2rem); line-height: 1.15; letter-spacing: -.035em; }
.form-heading p { margin: 0; color: var(--muted); font-size: .88rem; }
.required-mark { color: var(--red); font-weight: 800; }

.secure-label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 7px 10px;
    color: var(--green-dark);
    border: 1px solid #cce8d8;
    border-radius: 99px;
    background: var(--green-soft);
    font-size: .74rem;
    font-weight: 750;
}
.secure-label svg { width: 15px; height: 15px; }

.alert {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 22px;
    padding: 13px 15px;
    border: 1px solid;
    border-radius: 12px;
    font-size: .88rem;
}
.alert-danger { color: #8a1c14; background: var(--danger-soft); border-color: #fac8c4; }
.alert svg { width: 20px; height: 20px; margin-top: 1px; }
.alert p { margin: 1px 0 0; }

.stepper {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 4px;
    margin: 0 0 30px;
}

.stepper::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 17px;
    left: 8.5%;
    right: 8.5%;
    height: 2px;
    background: var(--line);
}

.step-indicator {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 0;
    color: #89929d;
    border: 0;
    background: transparent;
    cursor: default;
}

.step-indicator > span {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border: 2px solid var(--line);
    border-radius: 50%;
    background: var(--white);
    font-size: .78rem;
    font-weight: 800;
    transition: .2s ease;
}
.step-indicator small { font-size: .68rem; font-weight: 700; }
.step-indicator.active { color: var(--red); }
.step-indicator.active > span { color: var(--white); background: var(--red); border-color: var(--red); box-shadow: 0 0 0 5px var(--focus); }
.step-indicator.completed { color: var(--green); cursor: pointer; }
.step-indicator.completed > span { color: var(--white); background: var(--green); border-color: var(--green); }

.form-step {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    animation: fadeSlide .28s ease both;
}
.js .form-step:not(.active) { display: none; }
.no-js .form-step { display: block; padding-bottom: 35px; }
.no-js .stepper { display: none; }
.no-js .form-actions { display: flex; }
.no-js #prev-step, .no-js #next-step, .no-js .step-counter { display: none; }
.no-js #submit-form { display: inline-flex !important; margin-left: auto; }

@keyframes fadeSlide {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

.form-step legend {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 24px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--line);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.25;
}
.form-step legend > span {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    color: var(--red);
    border-radius: 10px;
    background: var(--red-soft);
    font-size: .86rem;
}
.form-step legend small { display: block; margin-top: 2px; color: var(--muted); font-size: .78rem; font-weight: 500; }

.form-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 20px;
}
.col-12 { grid-column: span 12; }
.col-6 { grid-column: span 6; }

.form-group { min-width: 0; }
.form-group label, .group-label {
    display: block;
    margin-bottom: 7px;
    color: #30363d;
    font-size: .84rem;
    font-weight: 750;
}
.optional {
    margin-left: 6px;
    color: var(--muted);
    font-size: .67rem;
    font-weight: 650;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.form-control, .form-select {
    width: 100%;
    min-height: 46px;
    padding: 10px 12px;
    color: var(--ink);
    border: 1px solid #cfd5dc;
    border-radius: var(--radius-sm);
    outline: none;
    background: var(--white);
    transition: border-color .18s ease, box-shadow .18s ease;
}
.form-select {
    padding-right: 38px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2367717e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}
.form-control:hover, .form-select:hover { border-color: #aeb6c0; }
.form-control:focus, .form-select:focus { border-color: var(--red); box-shadow: 0 0 0 4px var(--focus); }
.form-control::placeholder { color: #99a1ab; }
.form-control.is-invalid, .form-select.is-invalid, .form-control[aria-invalid="true"] { border-color: var(--danger); }
.form-control.is-valid { border-color: var(--green); }
.form-text { display: block; margin-top: 5px; color: var(--muted); font-size: .74rem; }
.field-error, .field-feedback.error { display: block; margin-top: 5px; color: var(--danger); font-size: .75rem; font-weight: 650; }
.field-feedback.success { display: block; margin-top: 5px; color: var(--green); font-size: .75rem; font-weight: 650; }

.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.choice-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.choice-card { position: relative; margin: 0 !important; cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card span {
    min-height: 46px;
    display: grid;
    place-items: center;
    padding: 9px 12px;
    text-align: center;
    border: 1px solid #cfd5dc;
    border-radius: var(--radius-sm);
    background: var(--white);
    font-size: .82rem;
    font-weight: 650;
    transition: .18s ease;
}
.choice-card:hover span { border-color: #aeb6c0; background: #fafbfc; }
.choice-card input:focus-visible + span { box-shadow: 0 0 0 4px var(--focus); }
.choice-card input:checked + span { color: var(--red-dark); border-color: var(--red); background: var(--red-soft); box-shadow: inset 0 0 0 1px var(--red); }

.info-box {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    color: #685018;
    border: 1px solid #f2dfa4;
    border-radius: 11px;
    background: #fff9e8;
    font-size: .82rem;
}
.info-box svg { width: 19px; height: 19px; margin-top: 1px; }
.info-box p { margin: 0; }

.conditional-panel {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #fafbfc;
}
.conditional-panel[hidden], .conditional[hidden] { display: none !important; }
.nested { margin-top: 15px; }
.section-divider { padding-top: 19px; border-top: 1px solid var(--line); }

.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.check-card { position: relative; margin: 0 !important; cursor: pointer; }
.check-card input { position: absolute; opacity: 0; }
.check-card > span {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    color: #434a53;
    border: 1px solid #d6dbe1;
    border-radius: 9px;
    background: var(--white);
    font-size: .78rem;
    transition: .18s ease;
}
.check-card i {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border: 1.5px solid #aeb6c0;
    border-radius: 5px;
    background: var(--white);
}
.check-card input:checked + span { color: var(--red-dark); border-color: #e5a2a8; background: var(--red-soft); }
.check-card input:checked + span i { border-color: var(--red); background: var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/13px no-repeat; }
.check-card input:focus-visible + span { box-shadow: 0 0 0 4px var(--focus); }

.gt-list { display: grid; gap: 15px; margin-top: 20px; }
.gt-select-wrap {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fafbfc;
}
.gt-select-wrap label { display: flex; align-items: center; gap: 8px; }
.gt-number { width: 25px; height: 25px; display: grid; place-items: center; color: var(--white); border-radius: 7px; background: var(--red); font-size: .73rem; }

.review-card {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--line);
}
.review-item { padding: 13px 15px; background: #fafbfc; }
.review-item.wide { grid-column: span 2; }
.review-item small { display: block; margin-bottom: 2px; color: var(--muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.review-item strong { display: block; font-size: .84rem; overflow-wrap: anywhere; }

.declaration-card {
    position: relative;
    display: grid !important;
    grid-template-columns: 22px 1fr;
    align-items: start;
    gap: 11px;
    padding: 15px;
    color: #3c444d !important;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
    font-size: .8rem !important;
    font-weight: 500 !important;
    line-height: 1.5;
    cursor: pointer;
}
.declaration-card input { position: absolute; opacity: 0; }
.custom-check { width: 22px; height: 22px; margin-top: 1px; border: 1.5px solid #aab2bc; border-radius: 6px; }
.declaration-card input:checked + .custom-check { border-color: var(--green); background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/15px no-repeat; }
.declaration-card:has(input:focus-visible) { box-shadow: 0 0 0 4px var(--focus); }

.final-note {
    display: flex;
    gap: 11px;
    margin-top: 16px;
    padding: 14px;
    color: var(--green-dark);
    border-radius: 12px;
    background: var(--green-soft);
}
.final-note p { margin: 2px 0 0; color: #426a53; font-size: .8rem; }

.form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.btn {
    min-height: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 10px;
    text-decoration: none;
    font-size: .85rem;
    font-weight: 800;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:focus-visible { outline: 0; box-shadow: 0 0 0 4px var(--focus); }
.btn svg { width: 18px; height: 18px; }
.btn-primary { color: var(--white); background: var(--red); border-color: var(--red); box-shadow: 0 7px 16px rgba(191, 14, 26, .17); }
.btn-primary:hover { background: var(--red-dark); }
.btn-outline { color: #3e4650; background: var(--white); border-color: #cdd3da; }
.btn-outline:hover { background: var(--soft); }
.btn-success { color: var(--white); background: var(--green); border-color: var(--green); box-shadow: 0 7px 16px rgba(22, 132, 71, .17); }
.btn-success:hover { background: var(--green-dark); }
.btn[hidden] { display: none !important; }
.btn:disabled { opacity: .65; cursor: wait; transform: none; }
.step-counter { color: var(--muted); font-size: .77rem; }
.spinner { width: 17px; height: 17px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.site-footer { padding: 30px 0; color: rgba(255, 255, 255, .67); background: #171a1f; }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.footer-inner img { width: 168px; height: auto; opacity: .9; }
.footer-inner p { margin: 0; font-size: .78rem; }
.footer-inner a { color: var(--white); font-size: .78rem; font-weight: 700; text-decoration: none; }

/* Confirmação */
.success-page { min-height: 100vh; background: linear-gradient(145deg, #f4f7f5, #edf5f0); }
.success-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px 20px; }
.success-card { width: min(680px, 100%); padding: 40px; text-align: center; border: 1px solid rgba(32, 36, 42, .08); border-radius: 26px; background: var(--white); box-shadow: var(--shadow); }
.success-logo { width: 190px; height: auto; margin: 0 auto 22px; }
.success-icon { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 15px; color: var(--white); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 9px var(--green-soft); }
.success-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.success-kicker { color: var(--green); }
.success-card h1 { margin: 5px 0 7px; font-size: clamp(1.8rem, 5vw, 2.6rem); line-height: 1.1; letter-spacing: -.04em; }
.success-card > p { max-width: 510px; margin: 0 auto; color: var(--muted); }
.confirmation-code { margin: 25px 0; padding: 18px; border: 1px dashed #b8c1ca; border-radius: 13px; background: #fafbfc; }
.confirmation-code span, .confirmation-code small { display: block; color: var(--muted); font-size: .73rem; }
.confirmation-code strong { display: block; margin: 4px 0; color: var(--green-dark); font-size: 1.65rem; letter-spacing: .08em; }
.success-event-details { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10px; text-align: left; }
.success-event-details > div { display: flex; align-items: flex-start; gap: 10px; padding: 14px; color: var(--red-dark); border-radius: 11px; background: var(--red-soft); }
.success-event-details span { color: var(--ink); font-size: .78rem; font-weight: 650; }
.success-event-details small { display: block; margin-bottom: 2px; color: var(--muted); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.success-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 25px; }

@media (max-width: 980px) {
    .hero-copy { grid-template-columns: 1fr; gap: 25px; }
    .event-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .registration-layout { grid-template-columns: 1fr; }
    .event-card { position: static; display: grid; grid-template-columns: 1.05fr 1fr; }
    .event-card-top { grid-row: span 2; }
    .privacy-note { align-self: center; }
    .choice-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .container { width: min(100% - 28px, 1160px); }
    .site-header { display: none; }
    .hero { padding: 14px 0 95px; }
    .congress-banner { min-height: 122px; object-fit: cover; object-position: center; border-radius: 13px; }
    .hero-copy { margin-top: 24px; }
    .hero h1 { font-size: clamp(1.8rem, 9vw, 2.45rem); }
    .hero-copy > div > p { font-size: .93rem; }
    .event-facts { grid-template-columns: 1fr; }
    .registration-layout { margin-top: -64px; }
    .event-card { display: block; }
    .event-details, .privacy-note { display: none; }
    .event-card-top { padding: 20px; }
    .event-card h2 { font-size: 1.15rem; }
    .form-card { padding: 22px 18px; border-radius: 19px; }
    .form-heading { padding-bottom: 18px; }
    .secure-label { display: none; }
    .stepper { margin-bottom: 26px; }
    .stepper::before { left: 7%; right: 7%; top: 15px; }
    .step-indicator > span { width: 31px; height: 31px; }
    .step-indicator small { display: none; }
    .form-step legend { align-items: flex-start; font-size: 1.12rem; }
    .form-grid { gap: 17px; }
    .col-6 { grid-column: span 12; }
    .choice-grid, .choice-grid.three { grid-template-columns: 1fr; }
    .choice-grid.four, .choice-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .check-grid { grid-template-columns: 1fr; }
    .review-card { grid-template-columns: 1fr; }
    .review-item.wide { grid-column: span 1; }
    .form-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .step-counter { grid-column: 1 / -1; grid-row: 1; text-align: center; }
    .btn { width: 100%; }
    #submit-form { grid-column: 1 / -1; }
    .footer-inner { flex-direction: column; text-align: center; }
    .success-card { padding: 30px 19px; }
    .success-event-details { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
    .congress-banner { min-height: 105px; object-position: 38% center; }
    .choice-grid.four, .choice-grid.two { grid-template-columns: 1fr; }
    .form-actions { grid-template-columns: auto 1fr; }
    #prev-step { width: auto; padding-inline: 13px; }
    .confirmation-code strong { font-size: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media print {
    .success-page { background: #fff; }
    .success-shell { display: block; padding: 0; }
    .success-card { width: 100%; box-shadow: none; border: 0; }
    .success-actions { display: none; }
}

/* =========================================================
   SITE DO CONGRESSO - PADRÃO DA PÁGINA-BASE DO EVENTO
========================================================= */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.home-page {
    background: #fff;
    color: #25272c;
}

.home-page .container,
.registration-page .container {
    width: min(1180px, calc(100% - 40px));
}

.site-header {
    width: 100%;
    min-height: 82px;
}

.home-page .site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 50;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
    background: linear-gradient(to bottom, rgba(13, 14, 17, .76), transparent);
    transition: background .25s ease, box-shadow .25s ease, min-height .25s ease;
}

.home-page .site-header.scrolled {
    min-height: 72px;
    color: #25272c;
    border-color: rgba(32, 36, 42, .08);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 25px rgba(15, 18, 23, .08);
}

.site-header .header-inner {
    min-height: inherit;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.site-header .brand {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
}

.site-header .brand img {
    width: 205px;
    height: auto;
}

.home-page .brand img {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .2));
}

.main-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 27px;
}

.main-nav a {
    position: relative;
    color: inherit;
    text-decoration: none;
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
    transition: color .18s ease;
}

.main-nav a:not(.nav-ticket)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -9px;
    height: 2px;
    background: #ed1c24;
    transition: right .2s ease;
}

.main-nav a:hover,
.main-nav a.active {
    color: #ed1c24;
}

.home-page .site-header:not(.scrolled) .main-nav a:hover,
.home-page .site-header:not(.scrolled) .main-nav a.active {
    color: #ffc20e;
}

.main-nav a:hover::after,
.main-nav a.active::after {
    right: 0;
}

.nav-ticket {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    color: #fff !important;
    border-radius: 4px;
    background: #d71920;
    box-shadow: 0 7px 18px rgba(183, 13, 23, .2);
}

.nav-ticket:hover {
    background: #aa0c14;
}

.nav-toggle {
    position: relative;
    z-index: 61;
    width: 44px;
    height: 42px;
    display: none;
    padding: 9px;
    border: 1px solid rgba(32, 36, 42, .12);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
}

.nav-toggle > span:not(.sr-only) {
    width: 100%;
    height: 2px;
    display: block;
    margin: 4px 0;
    background: #202226;
    transition: transform .2s ease, opacity .2s ease;
}

.nav-toggle.active > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle.active > span:nth-child(2) { opacity: 0; }
.nav-toggle.active > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.event-hero {
    position: relative;
    min-height: 820px;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(10, 11, 14, .97) 0%, rgba(21, 22, 27, .92) 52%, rgba(111, 8, 15, .85) 100%),
        radial-gradient(circle at 80% 24%, #d71920, transparent 36%),
        #111217;
}

.event-hero::before {
    content: "XXVII";
    position: absolute;
    right: -1.5vw;
    top: 51%;
    color: rgba(255, 255, 255, .035);
    font-size: clamp(12rem, 26vw, 28rem);
    font-weight: 950;
    line-height: .72;
    letter-spacing: -.09em;
    transform: translateY(-50%);
    pointer-events: none;
}

.event-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .2;
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to right, transparent 20%, #000);
    pointer-events: none;
}

.hero-shape {
    position: absolute;
    z-index: 1;
    transform: rotate(-13deg);
    pointer-events: none;
}

.hero-shape-one {
    width: 420px;
    height: 85px;
    right: -80px;
    top: 120px;
    background: rgba(255, 194, 14, .18);
}

.hero-shape-two {
    width: 560px;
    height: 100px;
    right: -130px;
    bottom: 130px;
    background: rgba(18, 130, 70, .2);
}

.event-hero-inner {
    position: relative;
    z-index: 3;
    padding-top: 112px;
    padding-bottom: 72px;
}

.event-hero-content {
    max-width: 1040px;
}

.official-event-banner {
    width: min(100%, 1000px);
    height: auto;
    margin-bottom: 33px;
    border-radius: 3px;
    background: #fbfaf6;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .33);
}

.countdown {
    display: flex;
    align-items: center;
    gap: 0;
    margin-bottom: 25px;
}

.countdown > div {
    position: relative;
    min-width: 95px;
    padding-right: 24px;
    margin-right: 24px;
}

.countdown > div:not(:last-child)::after {
    content: ":";
    position: absolute;
    right: -2px;
    top: -2px;
    color: rgba(255, 255, 255, .38);
    font-size: 2rem;
    font-weight: 300;
}

.countdown strong {
    display: block;
    color: #fff;
    font-size: 2.35rem;
    line-height: 1;
    letter-spacing: -.045em;
}

.countdown span {
    display: block;
    margin-top: 5px;
    color: rgba(255, 255, 255, .56);
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.hero-kicker {
    display: inline-block;
    margin-bottom: 9px;
    color: #ffc20e;
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.event-hero h1 {
    max-width: 860px;
    margin: 0 0 13px;
    color: #fff;
    font-size: clamp(2.8rem, 6vw, 5.25rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.hero-theme {
    max-width: 830px;
    margin: 0;
    color: rgba(255, 255, 255, .74);
    font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
    margin-top: 24px;
}

.hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .84rem;
    font-weight: 750;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.hero-meta svg,
.venue-meta svg,
.map-pin svg,
.group-item svg,
.pillar-card svg,
.back-to-top svg,
.free-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hero-meta svg { color: #ffc20e; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 31px; }

.btn-lg {
    min-height: 51px;
    padding: 13px 24px;
    font-size: .82rem;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.btn-border {
    color: #fff;
    border-color: rgba(255, 255, 255, .55);
    background: transparent;
}

.btn-border:hover {
    color: #202226;
    background: #fff;
}

.btn-white {
    color: #a80c15;
    border-color: #fff;
    background: #fff;
}

.btn-white:hover { color: #fff; border-color: #202226; background: #202226; }

.scroll-hint {
    position: absolute;
    z-index: 4;
    left: 50%;
    bottom: 25px;
    width: 28px;
    height: 45px;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 99px;
    transform: translateX(-50%);
}

.scroll-hint span {
    position: absolute;
    top: 9px;
    left: 50%;
    width: 4px;
    height: 8px;
    border-radius: 99px;
    background: #fff;
    transform: translateX(-50%);
    animation: scrollHint 1.6s ease infinite;
}

@keyframes scrollHint {
    0% { opacity: 0; transform: translate(-50%, 0); }
    30% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, 15px); }
}

.section { padding: 100px 0; }
.section-eyebrow {
    display: inline-block;
    margin-bottom: 10px;
    color: #d71920;
    font-size: .73rem;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.section-eyebrow.light { color: #ffc20e; }
.home-page .section-title {
    margin: 0 0 20px;
    color: #22242a;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    text-transform: none;
}
.section-heading { max-width: 760px; margin-bottom: 52px; }
.section-heading.center { margin-inline: auto; text-align: center; }
.section-heading p { margin: 0; color: #707783; }

.intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
    align-items: center;
    gap: 78px;
}
.intro-copy .lead { color: #343941; font-size: 1.1rem; font-weight: 600; }
.intro-copy p:not(.lead) { color: #68717d; }
.intro-copy .btn { margin-top: 13px; }

.congress-visual {
    position: relative;
    /* min-height: 510px; */
    overflow: hidden;
    color: #fff;
    background: #181a1f;
    box-shadow: 0 35px 65px rgba(20, 22, 28, .2);
}
.congress-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .16;
    background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
    background-size: 34px 34px;
}
.congress-number { position: absolute; z-index: 1; left: 38px; top: 38px; }
.congress-number small, .congress-number span { display: block; color: rgba(255,255,255,.68); font-size: .75rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.congress-number strong { display: block; margin: 4px 0; font-size: clamp(5.5rem, 11vw, 8.3rem); line-height: .82; letter-spacing: -.09em; }
.visual-word { position: absolute; right: 0; min-width: 54%; padding: 11px 25px; color: #fff; font-size: 1rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.word-red { top: 46px; background: #ed1c24; }
.word-yellow { top: 96px; color: #202226; background: #ffc20e; }
.word-green { top: 146px; background: #168447; }
.word-blue { top: 196px; background: #155b9d; }
.visual-date { position: absolute; z-index: 1; left: 38px; right: 38px; bottom: 35px; display: flex; align-items: flex-end; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.26); padding-top: 22px; }
.visual-date strong { font-size: 2.7rem; line-height: 1; }
.visual-date span { color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 750; line-height: 1.3; letter-spacing: .12em; text-align: right; text-transform: uppercase; }

.facts-strip { padding: 36px 0; background: #f3f4f6; border-block: 1px solid #e4e6ea; }
.facts-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.fact-box { min-height: 85px; display: flex; flex-direction: column; justify-content: center; padding: 5px 32px; border-right: 1px solid #d9dde2; }
.fact-box:last-child { border-right: 0; }
.fact-box strong { color: #22242a; font-size: 2.25rem; line-height: 1; }
.fact-box span { margin-top: 7px; color: #737b86; font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.free-fact strong { color: #168447; }

.theme-section {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(115deg, rgba(126,7,15,.94), rgba(17,18,22,.98)), #17181d;
}
.theme-pattern { position: absolute; inset: 0; opacity: .08; background: repeating-linear-gradient(135deg, #fff 0 1px, transparent 1px 28px); }
.theme-inner { position: relative; z-index: 1; max-width: 900px; text-align: center; }
.theme-inner h2 { margin: 0; color: #fff; font-size: clamp(2.5rem, 6vw, 5rem); line-height: .98; letter-spacing: -.055em; }
.theme-inner > p { margin: 18px 0 0; color: rgba(255,255,255,.7); font-size: 1.15rem; }
.theme-line { width: 74px; height: 4px; margin: 34px auto; background: #ffc20e; }
.theme-inner blockquote { max-width: 680px; margin: 0 auto; color: rgba(255,255,255,.86); font-size: 1.2rem; font-style: italic; }

.pillars-section { background: #fff; }
.pillars-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.pillar-card { position: relative; min-height: 330px; overflow: hidden; padding: 31px 26px; border: 1px solid #e0e3e7; background: #fff; transition: transform .22s ease, box-shadow .22s ease; }
.pillar-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: currentColor; }
.pillar-card:hover { transform: translateY(-6px); box-shadow: 0 22px 45px rgba(18,22,28,.11); }
.pillar-card.red { color: #d71920; }
.pillar-card.yellow { color: #dc9800; }
.pillar-card.green { color: #168447; }
.pillar-card.blue { color: #155b9d; }
.pillar-card .pillar-number { position: absolute; right: 20px; top: 16px; color: #edf0f3; font-size: 3.4rem; font-weight: 900; line-height: 1; }
.pillar-card svg { position: relative; width: 42px; height: 42px; margin-top: 25px; }
.pillar-card h3 { margin: 28px 0 11px; color: #22242a; font-size: 1.3rem; }
.pillar-card p { margin: 0; color: #6d7580; font-size: .88rem; }

.participation-section { color: #fff; background: #1d1f24; }
.participation-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 75px; }
.participation-heading h2 { margin: 0 0 15px; color: #fff; font-size: clamp(2.15rem,4vw,3.5rem); line-height: 1.05; letter-spacing: -.045em; }
.participation-heading p { margin: 0; color: rgba(255,255,255,.62); }
.participation-types { display: grid; grid-template-columns: repeat(2,1fr); border: 1px solid rgba(255,255,255,.13); }
.participation-types div { min-height: 120px; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 22px; border-right: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.participation-types div:nth-child(2n) { border-right: 0; }
.participation-types div:nth-last-child(-n+2) { border-bottom: 0; }
.participation-types span { color: #ffc20e; font-size: .68rem; font-weight: 850; letter-spacing: .1em; }
.participation-types strong { font-size: 1.05rem; }

.schedule-section { background: #fff; }
.schedule-days {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 24px;
}
.schedule-day {
    overflow: hidden;
    border: 1px solid #dde1e5;
    border-top: 5px solid #d71920;
    background: #fff;
    box-shadow: 0 18px 42px rgba(20, 24, 31, .08);
}
.schedule-thursday { border-top-color: #e8aa00; }
.schedule-friday { border-top-color: #168447; }
.schedule-saturday { border-top-color: #155b9d; }
.schedule-day-header {
    min-height: 104px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 25px;
    color: #fff;
    background: #1c1e23;
}
.schedule-day-header span {
    display: block;
    margin-bottom: 4px;
    color: #ffc20e;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.schedule-day-header h3 {
    margin: 0;
    color: #fff;
    font-size: 1.45rem;
    letter-spacing: -.025em;
}
.schedule-day-header > strong {
    color: rgba(255, 255, 255, .2);
    font-size: 2.3rem;
    line-height: 1;
    letter-spacing: -.05em;
}
.schedule-period { padding: 22px 25px 24px; }
.schedule-period + .schedule-period { border-top: 1px solid #e5e8eb; }
.schedule-period h4 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 13px;
    color: #d71920;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.schedule-period h4::after {
    content: "";
    height: 1px;
    flex: 1;
    background: #e1e4e7;
}
.schedule-list { margin: 0; padding: 0; list-style: none; }
.schedule-session {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 14px;
    padding: 13px 0;
    border-bottom: 1px solid #eceef0;
}
.schedule-session:last-child { padding-bottom: 0; border-bottom: 0; }
.schedule-session time {
    width: fit-content;
    height: fit-content;
    min-width: 54px;
    padding: 6px 8px;
    color: #a80c15;
    border-radius: 4px;
    background: #fff0f1;
    font-size: .73rem;
    font-weight: 850;
    text-align: center;
}
.schedule-session div { min-width: 0; }
.schedule-session strong,
.schedule-session span,
.schedule-session small { display: block; }
.schedule-session strong {
    color: #292d33;
    font-size: .88rem;
    line-height: 1.45;
}
.schedule-session span {
    margin-top: 4px;
    color: #59616c;
    font-size: .79rem;
    line-height: 1.45;
}
.schedule-session small {
    margin-top: 3px;
    color: #7a828d;
    font-size: .72rem;
    line-height: 1.4;
}
.schedule-featured { position: relative; }
.schedule-featured::before {
    content: "";
    position: absolute;
    left: -25px;
    top: 13px;
    bottom: 0;
    width: 3px;
    background: #d71920;
}
.schedule-featured strong { color: #a80c15; }
.schedule-break time { color: #6a5417; background: #fff6d9; }
.schedule-break strong { color: #6a5417; }

.groups-section { background: #f5f6f7; }
.groups-list { border-top: 1px solid #d9dde1; }
.group-item { display: grid; grid-template-columns: 95px minmax(0,1fr) 35px; align-items: center; gap: 24px; min-height: 116px; padding: 22px 18px; border-bottom: 1px solid #d9dde1; background: transparent; transition: background .18s ease, padding .18s ease; }
.group-item:hover { padding-left: 28px; background: #fff; }
.group-index { color: #d71920; font-size: .74rem; font-weight: 850; letter-spacing: .08em; }
.group-item h3 { margin: 0 0 5px; color: #25272c; font-size: 1.16rem; }
.group-item p { margin: 0; color: #737b86; font-size: .85rem; }
.group-item svg { color: #afb5bc; }
.section-action { margin-top: 42px; text-align: center; }

.documents-section { background: #fff; }
.documents-grid { display: grid; gap: 34px; max-width: 1120px; margin: 0 auto; }
.document-card { display: flex; flex-direction: column; min-height: 0; padding: 34px; border: 1px solid #dde1e5; border-top: 5px solid #d71920; background: #fff; box-shadow: 0 18px 42px rgba(20, 24, 31, .08); transition: transform .22s ease, box-shadow .22s ease; }
.document-card:nth-child(2) { border-top-color: #168447; }
.document-card:hover { transform: translateY(-5px); box-shadow: 0 24px 48px rgba(20, 24, 31, .13); }
.document-card-top { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; }
.document-icon { width: 48px; height: 48px; display: grid; place-items: center; color: #d71920; border-radius: 6px; background: #fff0f1; }
.document-card:nth-child(2) .document-icon { color: #168447; background: #eaf6ee; }
.document-icon svg, .document-link svg { fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.document-icon svg { width: 25px; height: 25px; }
.document-type { color: #747c87; font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.document-card h3 { max-width: 400px; margin: 0 0 12px; color: #25272c; font-size: 1.35rem; line-height: 1.22; }
.document-card p { margin: 0; color: #68717d; font-size: .92rem; line-height: 1.65; }
.document-preview { height: min(82vh, 900px); min-height: 700px; margin-top: 26px; overflow: hidden; border: 1px solid #dde1e5; border-radius: 4px; background: #f5f6f7; }
.document-preview iframe { width: 100%; height: 100%; border: 0; }
.document-link { width: fit-content; display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 26px; color: #b40d18; font-size: .8rem; font-weight: 850; letter-spacing: .03em; text-decoration: none; text-transform: uppercase; }
.document-link:hover { color: #751017; }
.document-link svg { width: 18px; height: 18px; transition: transform .18s ease; }
.document-link:hover svg { transform: translateX(4px); }

.free-registration { padding: 62px 0; color: #fff; background: linear-gradient(100deg,#a80c15,#d71920); }
.free-registration-inner { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 26px; }
.free-icon { width: 66px; height: 66px; display: grid; place-items: center; color: #d71920; border-radius: 50%; background: #fff; }
.free-icon svg { width: 32px; height: 32px; stroke-width: 2.7; }
.free-registration span { color: #ffc20e; font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.free-registration h2 { margin: 3px 0 2px; color: #fff; font-size: 2rem; }
.free-registration p { margin: 0; color: rgba(255,255,255,.73); }

.venue-section { background: #fff; }
.venue-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px,1.1fr); align-items: center; gap: 72px; }
.venue-address { max-width: 520px; padding-left: 17px; color: #333840; border-left: 4px solid #d71920; font-size: 1.06rem; font-weight: 700; }
.venue-copy > p:not(.venue-address) { color: #717985; }
.venue-meta { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 25px 0; }
.venue-meta > div { display: flex; align-items: center; gap: 10px; padding: 13px; border: 1px solid #e0e3e7; background: #f8f9fa; }
.venue-meta svg { color: #d71920; }
.venue-meta span { font-size: .78rem; font-weight: 700; line-height: 1.3; }
.venue-meta small { display: block; color: #858c96; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.venue-art { position: relative; min-height: 480px; overflow: hidden; background: #eceff1; }

.map-lines { position: absolute; inset: 0; opacity: .5; background: linear-gradient(25deg, transparent 47%,#cfd5d9 48% 51%,transparent 52%), linear-gradient(155deg,transparent 42%,#d6dadd 43% 46%,transparent 47%); background-size: 140px 110px, 180px 145px; }
.map-pin { position: absolute; z-index: 2; left: 50%; top: 45%; width: 84px; height: 84px; display: grid; place-items: center; color: #fff; border-radius: 50% 50% 50% 0; background: #d71920; box-shadow: 0 14px 35px rgba(172,11,20,.27); transform: translate(-50%,-50%) rotate(-45deg); }
.map-pin svg { width: 38px; height: 38px; transform: rotate(45deg); }
.venue-art > span { position: absolute; z-index: 2; left: 50%; top: 66%; color: #25272c; font-size: 1.35rem; font-weight: 850; transform: translateX(-50%); }
.venue-art > strong { position: absolute; z-index: 1; right: 22px; bottom: 8px; color: rgba(31,34,40,.07); font-size: 8.5rem; line-height: 1; }

.closing-cta { padding: 105px 0; color: #fff; text-align: center; background: #17191d; }
.closing-inner { max-width: 900px; }
.closing-inner img { width: 185px; height: auto; margin: 0 auto 23px;  }
.closing-inner > span { display: block; color: #ffc20e; font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.closing-inner h2 { margin: 13px auto 31px; color: #fff; font-size: clamp(2.1rem,4vw,3.5rem); line-height: 1.08; letter-spacing: -.045em; }

.home-page .site-footer,
.registration-page .site-footer { border-top: 1px solid rgba(255,255,255,.08); background: #111216; }
.back-to-top { position: fixed; z-index: 35; right: 22px; bottom: 22px; width: 44px; height: 44px; display: grid; place-items: center; color: #fff; border: 0; border-radius: 4px; background: #d71920; box-shadow: 0 8px 20px rgba(39,10,13,.22); opacity: 0; visibility: hidden; transform: translateY(12px); transition: .2s ease; cursor: pointer; }
.back-to-top.visible { opacity: 1; visibility: visible; transform: none; }

[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
[data-reveal].revealed { opacity: 1; transform: none; }

/* Página interna de inscrição */
.registration-page { background: #f5f6f7; }
.registration-page .subpage-header { position: sticky; top: 0; z-index: 40; min-height: 78px; color: #292d33; background: #fff; border-bottom: 1px solid #e1e4e8; box-shadow: 0 4px 18px rgba(20,23,28,.05); }
.registration-page .page-banner { padding: 28px 0 58px; color: #fff; background: linear-gradient(110deg,#16171b 0%,#272930 55%,#99101a 100%); }
.page-official-banner { width: 100%; height: auto; border-radius: 3px; background: #fbfaf6; box-shadow: 0 15px 35px rgba(0,0,0,.2); }
.page-banner-copy { max-width: 780px; padding-top: 37px; }
.breadcrumb { display: flex; gap: 8px; align-items: center; color: rgba(255,255,255,.65); font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.breadcrumb a { color: #ffc20e; text-decoration: none; }
.breadcrumb i { font-style: normal; }
.page-banner h1 { margin: 8px 0 7px; color: #fff; font-size: clamp(2.3rem,5vw,4rem); line-height: 1; letter-spacing: -.05em; }
.page-banner p { margin: 0; color: rgba(255,255,255,.7); }
.registration-page .main-content { padding: 70px 0 90px; }
.registration-page .registration-layout { max-width: 990px; margin-top: 0; display: block; }
.registration-page .event-card { display: none; }
.registration-page .form-card { padding: 36px; border-radius: 7px; border: 1px solid #dfe3e7; box-shadow: 0 18px 45px rgba(19,23,29,.08); }
.registration-page .form-heading { border-bottom: 1px solid #e1e4e8; margin-bottom: 24px; }
.registration-page .form-step legend > span:first-child { border-radius: 4px; }
.registration-page .form-control,
.registration-page .form-select,
.registration-page .choice-card span,
.registration-page .gt-select-wrap,
.registration-page .conditional-panel { border-radius: 4px; }
.registration-page .step-indicator > span { border-radius: 50%; }

@media (max-width: 1040px) {
    .main-nav { gap: 18px; }
    .main-nav a { font-size: .7rem; }
    .pillars-grid { grid-template-columns: repeat(2,1fr); }
    .intro-grid, .venue-grid { gap: 45px; }
}

@media (max-width: 860px) {
    body.menu-open { overflow: hidden; }
    .site-header { display: block !important; }
    .nav-toggle { display: block; }
    .home-page .nav-toggle { border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.95); }
    .main-nav { position: fixed; inset: 0 0 0 auto; width: min(345px,88vw); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 100px 28px 30px; color: #25272c; background: #fff; box-shadow: -18px 0 45px rgba(12,14,18,.18); transform: translateX(105%); transition: transform .25s ease; }
    .main-nav.open { transform: none; }
    .main-nav a { padding: 14px 0; border-bottom: 1px solid #e5e7ea; font-size: .82rem; }
    .main-nav a::after { display: none; }
    .main-nav .nav-ticket { margin-top: 20px; border: 0; }
    .event-hero { min-height: 760px; }
    .intro-grid, .venue-grid, .participation-grid { grid-template-columns: 1fr; }
    .intro-grid { gap: 55px; }
    .congress-visual { width: min(540px,100%); margin-inline: auto; }
    .facts-grid { grid-template-columns: repeat(2,1fr); }
    .fact-box:nth-child(2) { border-right: 0; }
    .fact-box:nth-child(-n+2) { border-bottom: 1px solid #d9dde2; }
    .free-registration-inner { grid-template-columns: 65px 1fr; }
    .free-registration-inner .btn { grid-column: 1/-1; width: 100%; }
    .venue-art { min-height: 400px; }
    .schedule-days { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .home-page .container,
    .registration-page .container { width: min(100% - 28px,1180px); }
    .site-header .brand img { width: 165px; }
    .home-page .site-header, .registration-page .subpage-header { min-height: 68px; }
    .event-hero { min-height: 780px; align-items: flex-start; }
    .event-hero-inner { padding-top: 98px; padding-bottom: 80px; }
    .official-event-banner {  object-fit: cover; object-position: 35% center; margin-bottom: 27px; }
    .countdown { width: 100%; }
    .countdown > div { min-width: 0; flex: 1; padding-right: 13px; margin-right: 13px; }
    .countdown strong { font-size: 1.85rem; }
    .countdown span { font-size: .55rem; }
    .event-hero h1 { font-size: clamp(2.5rem,13vw,3.7rem); }
    .hero-meta { flex-direction: column; gap: 10px; }
    .hero-actions { display: grid; }
    .hero-actions .btn { width: 100%; }
    .scroll-hint { display: none; }
    .section { padding: 75px 0; }
    .intro-grid { gap: 45px; }
    /* .congress-visual { min-height: 440px; } */
    .congress-number { left: 24px; top: 27px; }
    .congress-number strong { font-size: 5.2rem; }
    .visual-word { min-width: 55%; padding-inline: 15px; font-size: .72rem; }
    .visual-date { left: 24px; right: 24px; }
    .facts-grid { grid-template-columns: 1fr 1fr; }
    .fact-box { padding: 18px; }
    .fact-box strong { font-size: 1.8rem; }
    .pillars-grid { grid-template-columns: 1fr; }
    .pillar-card { min-height: 270px; }
    .participation-types { grid-template-columns: 1fr; }
    .participation-types div { border-right: 0; }
    .participation-types div:nth-last-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.13); }
    .participation-types div:last-child { border-bottom: 0; }
    .schedule-days { gap: 18px; }
    .schedule-day-header { min-height: 88px; padding: 18px 19px; }
    .schedule-day-header h3 { font-size: 1.25rem; }
    .schedule-day-header > strong { font-size: 1.85rem; }
    .schedule-period { padding: 19px; }
    .schedule-session { grid-template-columns: 60px minmax(0, 1fr); gap: 11px; }
    .schedule-featured::before { left: -19px; }
    .group-item { grid-template-columns: 64px minmax(0,1fr); gap: 12px; padding-inline: 3px; }
    .group-item svg { display: none; }
    .group-item h3 { font-size: 1rem; }
    .group-item p { font-size: .78rem; }
    .document-card { min-height: 0; padding: 25px 22px; }
    .document-card-top { margin-bottom: 22px; }
    .document-preview { height: 72vh; min-height: 580px; margin-top: 22px; }
    .free-registration-inner { grid-template-columns: 1fr; text-align: center; }
    .free-icon { margin-inline: auto; }
    .free-registration h2 { font-size: 1.65rem; }
    .venue-meta { grid-template-columns: 1fr; }
    .venue-art { min-height: 330px; }
    .closing-cta { padding: 80px 0; }
    .page-official-banner {  object-fit: cover; object-position: 35% center; }
    .registration-page .page-banner { padding-top: 16px; }
    .registration-page .main-content { padding: 35px 0 65px; }
    .registration-page .form-card { padding: 23px 17px; }
    .registration-page .form-heading { margin-bottom: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1; transform: none; }
    .scroll-hint span { animation: none; }
}
