/* Ticket Católico — visual marketplace (Sympla-like) + WooCommerce */

:root {
  --tc-brand: #00b14f;
  --tc-brand-deep: #008f3f;
  --tc-ink: #191919;
  --tc-text: #1c1c1c;
  --tc-muted: #6d6d6d;
  --tc-line: #e8e8e8;
  --tc-paper: #f5f5f5;
  --tc-cream: #ffffff;
  --tc-danger: #e53935;
  --tc-radius: 12px;
  --tc-shadow: 0 1px 2px rgb(0 0 0 / 0.04), 0 1px 8px rgb(0 0 0 / 0.04);
  --tc-shadow-hover: 0 8px 24px rgb(0 0 0 / 0.1);
  --tc-max: 1280px;
  --tc-font: "Nunito", "Segoe UI", system-ui, sans-serif;
}

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

html { -webkit-font-smoothing: antialiased; }

body {
  margin: 0;
  background: var(--tc-cream);
  color: var(--tc-text);
  font-family: var(--tc-font);
  line-height: 1.5;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3, h4 {
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  text-wrap: balance;
  color: var(--tc-ink);
}

.tc-wrap { width: min(var(--tc-max), calc(100% - 2rem)); margin-inline: auto; }
.tc-main { min-height: 50vh; }
.tc-kicker { color: var(--tc-brand); font-weight: 800; font-size: 0.875rem; margin: 0 0 0.25rem; }

/* Header */
.tc-header {
  position: sticky; top: 0; z-index: 40;
  background: var(--tc-cream);
  border-bottom: 1px solid var(--tc-line);
}
.tc-header__bar {
  width: min(var(--tc-max), calc(100% - 2rem));
  margin-inline: auto;
  min-height: 68px;
  display: flex; align-items: center; gap: 0.75rem;
}
.tc-wordmark { display: flex; align-items: center; gap: 0.5rem; color: var(--tc-ink); flex-shrink: 1; min-width: 0; }
.tc-wordmark__mark {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 6px;
  background: var(--tc-brand); color: #fff;
  display: grid; place-items: center;
}
.tc-wordmark__logo,
.tc-wordmark img.custom-logo,
.tc-wordmark img {
  height: 50px !important;
  width: auto !important;
  max-width: 210px;
  display: block; flex-shrink: 1; min-width: 0; object-fit: contain;
}
@media (max-width: 360px) {
  .tc-wordmark__logo,
  .tc-wordmark img.custom-logo,
  .tc-wordmark img { height: 40px !important; max-width: 140px; }
}
.tc-wordmark--on-dark .tc-wordmark__logo { filter: brightness(0) invert(1); }
.tc-wordmark__text {
  font-weight: 800; font-size: 1.25rem; letter-spacing: -0.03em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.tc-wordmark__text span { color: var(--tc-brand); }
.tc-wordmark--on-dark { color: #fff; }
.tc-wordmark--on-dark .tc-wordmark__text { color: #fff; }

.tc-search {
  flex: 1; display: none; align-items: center; gap: 0.5rem;
  background: var(--tc-paper); border-radius: 999px; padding: 0 0.35rem 0 1rem;
}
@media (min-width: 768px) { .tc-search { display: flex; } }
.tc-search input {
  flex: 1; border: 0; background: transparent; height: 44px; font-size: 0.9rem; outline: none;
}
.tc-search__go, .tc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  border: 0; border-radius: 999px; font-weight: 800; cursor: pointer;
  height: 36px; padding: 0 1rem; font-size: 0.875rem;
}
.tc-search__go, .tc-btn--primary { background: var(--tc-brand); color: #fff; }
.tc-search__go:hover, .tc-btn--primary:hover { background: var(--tc-brand-deep); }
.tc-btn--ghost { background: transparent; border: 1px solid var(--tc-line); color: var(--tc-ink); }
.tc-btn--lg { height: 48px; padding: 0 1.5rem; font-size: 1rem; }
.tc-link-quiet { font-size: 0.875rem; font-weight: 800; white-space: nowrap; display: none; }
.tc-link-quiet:hover { color: var(--tc-brand); }
@media (min-width: 1024px) { .tc-link-quiet { display: inline-flex; align-items: center; } }
.tc-header__actions { margin-left: auto; display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }
@media (min-width: 480px) { .tc-header__actions { gap: 0.5rem; } }
.tc-badge {
  display: inline-grid; place-items: center;
  min-width: 1.1rem; height: 1.1rem; padding: 0 0.25rem;
  background: var(--tc-brand); color: #fff; border-radius: 999px; font-size: 0.7rem;
}
.tc-menu-toggle {
  display: grid; place-items: center; width: 44px; height: 44px;
  border: 0; background: transparent; font-size: 1.25rem; cursor: pointer; flex-shrink: 0;
}
@media (min-width: 768px) { .tc-menu-toggle { display: none; } }

/* Header muito estreito (celulares pequenos): aperta os botões em vez de quebrar layout */
@media (max-width: 380px) {
  .tc-header__bar { gap: 0.4rem; }
  .tc-search__go, .tc-btn { padding: 0 0.7rem; font-size: 0.8rem; }
  .tc-wordmark__text { max-width: 5.5rem; }
}

@media (max-width: 767px) {
  body.tc-nav-open .tc-header__bar { flex-wrap: wrap; }
  body.tc-nav-open .tc-search {
    display: flex; flex-wrap: wrap; flex-basis: 100%; order: 3;
    margin: 0.75rem 0 0; padding: 0 0.35rem 0 1rem;
  }
}
/* Trava qualquer overflow horizontal acidental em qualquer tela */
html, body { max-width: 100%; overflow-x: hidden; }

/* ---------------------------------------------------------------------
 * Painel do menu hambúrguer (mobile): conta do usuário
 * ------------------------------------------------------------------- */
.tc-mobile-panel { display: none; }
@media (max-width: 767px) {
  body.tc-nav-open .tc-mobile-panel { display: block; }
}
@media (min-width: 768px) { .tc-mobile-panel { display: none !important; } }

.tc-mobile-account {
  width: min(var(--tc-max), calc(100% - 2rem)); margin-inline: auto;
  padding: 0 0 1rem;
  display: grid; gap: 0.15rem;
}
.tc-mobile-account__user {
  display: flex; align-items: center; gap: 0.65rem;
  padding: 0.75rem 0.25rem; border-bottom: 1px solid var(--tc-line); margin-bottom: 0.4rem;
}
.tc-mobile-account__avatar {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: 999px;
  background: var(--tc-brand); color: #fff; font-weight: 800; font-size: 0.95rem; flex-shrink: 0;
}
.tc-mobile-account__email { font-size: 0.85rem; color: var(--tc-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tc-mobile-account__buttons { display: grid; gap: 0.6rem; }
.tc-mobile-account__buttons .tc-btn { width: 100%; height: 46px; }
.tc-mobile-account__logout { color: var(--tc-danger) !important; border-color: var(--tc-danger) !important; }

/* Avatar de perfil (substitui o link "Minha conta"/"Entrar") */
.tc-avatar-link { display: inline-flex; flex-shrink: 0; }
.tc-avatar {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: 999px;
  background: var(--tc-brand); color: #fff; font-weight: 800; font-size: 0.95rem;
}
.tc-avatar--guest { background: var(--tc-paper); color: var(--tc-muted); border: 1px solid var(--tc-line); }
.tc-avatar-link:hover .tc-avatar { filter: brightness(0.95); }

/* Hero */
.tc-hero { background: var(--tc-paper); border-bottom: 1px solid var(--tc-line); }
.tc-hero__inner { width: min(48rem, calc(100% - 2rem)); margin-inline: auto; text-align: center; padding: 3rem 0; }
.tc-hero h1 { font-size: clamp(1.75rem, 4vw, 2.4rem); margin: 0; }
.tc-hero p { color: var(--tc-muted); margin: 0.75rem 0 0; }
.tc-hero__search {
  margin-top: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem;
}
@media (min-width: 640px) { .tc-hero__search { flex-direction: row; } }
.tc-hero__search input {
  flex: 1; height: 48px; border: 1px solid var(--tc-line); border-radius: 999px;
  padding: 0 1.25rem; background: #fff; box-shadow: var(--tc-shadow); outline: none;
}
.tc-hero__search input:focus { box-shadow: 0 0 0 3px rgb(0 177 79 / 0.25); }

.tc-cat-icons {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.35rem; padding: 1.5rem 0;
}
@media (min-width: 640px) { .tc-cat-icons { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 1024px) { .tc-cat-icons { grid-template-columns: repeat(10, 1fr); } }
.tc-cat-icon { display: flex; flex-direction: column; align-items: center; gap: 0.45rem; padding: 0.75rem 0.25rem; border-radius: var(--tc-radius); font-size: 0.75rem; font-weight: 800; }
.tc-cat-icon:hover { background: var(--tc-paper); }
.tc-cat-icon__mark { width: 48px; height: 48px; border-radius: 999px; background: rgb(0 177 79 / 0.12); }

.tc-section { padding: 1.5rem 0 2rem; }
.tc-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.tc-section__head h2 { margin: 0; font-size: 1.4rem; }
.tc-more { color: var(--tc-brand); font-weight: 800; font-size: 0.875rem; }

/* Cards / shop grid */
.tc-grid, ul.products, .woocommerce ul.products {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1.15rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .tc-grid, ul.products, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .tc-grid, ul.products, .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1200px) {
  .tc-grid, ul.products, .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); }
}

.tc-card, .woocommerce ul.products li.product {
  list-style: none; margin: 0; padding: 0; width: auto !important;
  overflow: hidden; border: 1px solid var(--tc-line); border-radius: var(--tc-radius);
  background: #fff; box-shadow: var(--tc-shadow); transition: box-shadow 0.2s;
}
.tc-card:hover, .woocommerce ul.products li.product:hover { box-shadow: var(--tc-shadow-hover); }
.tc-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; }
.tc-card__body { padding: 0.85rem 0.9rem 1rem; display: flex; flex-direction: column; flex: 1; }
.tc-card__date { margin: 0; color: var(--tc-brand); font-size: 0.75rem; font-weight: 800; text-transform: capitalize; }
.woocommerce-loop-product__title, .tc-card h2 {
  font-size: 0.9rem !important; font-weight: 800; margin: 0.3rem 0 0; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tc-card__city { margin: 0.4rem 0 0; color: var(--tc-muted); font-size: 0.85rem; }
.tc-card__price, .tc-price { margin-top: auto; padding-top: 0.75rem; font-weight: 800; font-size: 0.9rem; }
.tc-price__from, .tc-card__price .woocommerce-Price-amount { font-weight: 800; }
.tc-price--free, .tc-price { color: var(--tc-brand); }
.price { font-weight: 800; color: var(--tc-ink); }

/* Covers */
.tc-cover { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #102418; }
.tc-cover__img { width: 100%; height: 100%; object-fit: cover; }
.tc-cover__art { position: absolute; inset: 0; }
.tc-cover--hero { border-radius: var(--tc-radius); aspect-ratio: auto; height: 14rem; }
@media (min-width: 640px) { .tc-cover--hero { height: 20rem; } }

.tc-cover--show-gospel { background: radial-gradient(120% 80% at 80% -10%, #00b14f, transparent 55%), #063322; }
.tc-cover--retiro { background: radial-gradient(120% 80% at 80% -10%, #1d6b78, transparent 55%), #12343d; }
.tc-cover--congresso { background: radial-gradient(120% 80% at 80% -10%, #2f5aa0, transparent 55%), #15203a; }
.tc-cover--palestra { background: radial-gradient(120% 80% at 80% -10%, #c26b2e, transparent 55%), #2a1f12; }
.tc-cover--missa { background: radial-gradient(120% 80% at 80% -10%, #2a3a6e, transparent 55%), #12182c; }
.tc-cover--encontro { background: radial-gradient(120% 80% at 80% -10%, #1f8a62, transparent 55%), #14352c; }
.tc-cover--adoracao { background: radial-gradient(120% 80% at 80% -10%, #5b3fa8, transparent 55%), #1a1430; }
.tc-cover--conferencia { background: radial-gradient(120% 80% at 80% -10%, #1f6f9a, transparent 55%), #102436; }
.tc-cover--workshop { background: radial-gradient(120% 80% at 80% -10%, #c28a2e, transparent 55%), #2c2214; }
.tc-cover--outro { background: radial-gradient(120% 80% at 80% -10%, #00b14f, transparent 55%), #102418; }

.tc-cover__art::after {
  content: "";
  position: absolute; inset: 18% 22%;
  border: 2px solid rgb(255 255 255 / 0.25);
  border-radius: 999px 999px 40% 40%;
}

/* CTA */
.tc-cta {
  display: flex; flex-direction: column; gap: 1.25rem;
  background: var(--tc-ink); color: #fff; border-radius: 16px;
  padding: 2rem 1.5rem; margin: 2rem 0 3rem;
}
@media (min-width: 768px) {
  .tc-cta { flex-direction: row; align-items: center; justify-content: space-between; padding: 2.25rem 2.5rem; }
}
.tc-cta h2 { color: #fff; margin: 0.35rem 0; }
.tc-cta p { color: rgb(255 255 255 / 0.7); margin: 0; }
.tc-cta__kicker { color: var(--tc-brand); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }

/* Event page */
.tc-event { padding: 1.5rem 0 3rem; }
.tc-event__grid {
  display: grid; gap: 2rem; margin-top: 1.5rem;
}
@media (min-width: 960px) {
  .tc-event__grid { grid-template-columns: 1.2fr 0.8fr; align-items: start; }
}
.tc-event__main h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0.4rem 0 1rem; }
.tc-event-facts { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: 0.65rem; }
.tc-event-facts li { font-size: 0.9rem; }
.tc-event-facts strong { display: block; color: var(--tc-muted); font-size: 0.75rem; }
.tc-event__desc, .tc-event__org { border-top: 1px solid var(--tc-line); padding-top: 1.5rem; margin-top: 1.5rem; }
.tc-event__buy {
  position: sticky; top: 88px;
  border: 1px solid var(--tc-line); border-radius: var(--tc-radius);
  padding: 1.15rem; background: #fff; box-shadow: var(--tc-shadow);
}
.tc-event__buy h2 { margin: 0 0 0.75rem; font-size: 1.1rem; }
.tc-event__buy .single_add_to_cart_button,
.woocommerce a.button, .woocommerce button.button.alt,
.woocommerce button.button.alt.disabled {
  background: var(--tc-brand) !important; color: #fff !important;
  border-radius: 999px !important; font-weight: 800 !important;
  height: 48px; width: 100%;
  display: inline-flex !important; align-items: center; justify-content: center;
  line-height: 1.1; padding: 0 1.5rem; box-sizing: border-box; text-align: center;
  border: 0;
}
.woocommerce button.button:not(.alt) {
  display: inline-flex; align-items: center; justify-content: center;
  line-height: 1.1;
}
.woocommerce a.button:hover, .woocommerce button.button.alt:hover {
  background: var(--tc-brand-deep) !important;
}

/* Woo forms / cart / checkout */
.woocommerce-error, .woocommerce-info, .woocommerce-message {
  border-top-color: var(--tc-brand);
}
/* Tira o ícone da fonte do WooCommerce desses avisos — se a fonte de
   ícone não carregar por algum motivo, ele aparece como um quadrado
   quebrado em vez do símbolo. Mais seguro remover do que arriscar. */
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
  content: none !important;
  display: none !important;
}
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  padding-left: 1.5em !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-input-wrapper input,
.select2-container .select2-selection--single {
  border: 1px solid var(--tc-line) !important;
  border-radius: 8px !important;
  min-height: 44px;
}
.woocommerce-checkout #payment, .woocommerce-cart-form, .cart-collaterals .cart_totals {
  background: var(--tc-paper); border-radius: var(--tc-radius); padding: 1rem;
}
.woocommerce table.shop_table { border-radius: var(--tc-radius); overflow: hidden; }

.woocommerce-breadcrumb, .tc-breadcrumb { font-size: 0.8rem; color: var(--tc-muted); margin: 1rem 0; }
.tc-bc-sep { color: var(--tc-line); }

.woocommerce-ordering select {
  height: 40px; border-radius: 8px; border: 1px solid var(--tc-line); background: #fff;
}

.tc-shop { padding: 2rem 0 3rem; }
.tc-prose { padding: 2.5rem 0; max-width: 760px; }
.tc-prose h1 { margin-top: 0; }
.tc-has-elementor .tc-prose { max-width: none; padding: 0; }
.tc-canvas .elementor { min-height: 100vh; }
.tc-empty { text-align: center; padding: 4rem 0; }
.tc-empty h1 { margin-bottom: 0.5rem; }

/* Footer */
.tc-footer { margin-top: auto; background: var(--tc-ink); color: rgb(255 255 255 / 0.72); }
.tc-footer__grid {
  width: min(var(--tc-max), calc(100% - 2rem));
  margin-inline: auto;
  display: grid; gap: 2rem; padding: 2.5rem 0;
}
@media (min-width: 768px) { .tc-footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }
.tc-footer a { color: rgb(255 255 255 / 0.72); }
.tc-footer a:hover { color: #fff; }
.tc-footer ul { list-style: none; padding: 0; margin: 0.75rem 0 0; display: grid; gap: 0.4rem; font-size: 0.9rem; }
.tc-footer__title { color: #fff; font-weight: 800; margin: 0; }
.tc-footer__legal {
  border-top: 1px solid rgb(255 255 255 / 0.1);
  font-size: 0.75rem; color: rgb(255 255 255 / 0.45);
}
.tc-footer__legal p { width: min(var(--tc-max), calc(100% - 2rem)); margin: 0 auto; padding: 1rem 0; }

/* Quantity */
.woocommerce .quantity .qty {
  width: 4rem; height: 40px; border-radius: 8px; border: 1px solid var(--tc-line);
}

.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce .products ul, .woocommerce ul.products { clear: both; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  float: none; margin: 0;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}

/* Cabeçalho compacto (sem barra de categorias) */
/* ---------------------------------------------------------------------
 * Loja com sidebar de filtros (layout "Grade com filtros" — estilo WoodMart)
 * ------------------------------------------------------------------- */
.tc-shop__grid { display: block; }
.tc-shop--with-sidebar .tc-shop__grid {
  display: grid; gap: 2rem; align-items: start;
}
@media (min-width: 900px) {
  .tc-shop--with-sidebar .tc-shop__grid { grid-template-columns: 260px 1fr; }
}
.tc-shop__sidebar {
  display: grid; gap: 1.25rem;
  border: 1px solid var(--tc-line); border-radius: var(--tc-radius);
  padding: 1.25rem; background: #fff; height: fit-content;
}
.tc-shop-sidebar__title { margin: 0 0 0.6rem; font-size: 0.95rem; font-weight: 800; }
.tc-shop-sidebar__widget { border-top: 1px solid var(--tc-line); padding-top: 1.1rem; }
.tc-shop-sidebar__widget:first-child { border-top: 0; padding-top: 0; }
.tc-shop--with-sidebar .tc-shop__main .tc-grid,
.tc-shop--with-sidebar .tc-shop__main ul.products {
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .tc-shop--with-sidebar .tc-shop__main .tc-grid,
  .tc-shop--with-sidebar .tc-shop__main ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .tc-shop--with-sidebar .tc-shop__main .tc-grid,
  .tc-shop--with-sidebar .tc-shop__main ul.products { grid-template-columns: repeat(3, 1fr); }
}

/* ---------------------------------------------------------------------
 * Minha conta — menu lateral (estilo WoodMart)
 * ------------------------------------------------------------------- */
.tc-account {
  width: min(var(--tc-max), calc(100% - 2rem)); margin-inline: auto;
  padding: 2rem 0 3rem;
  display: grid; gap: 1.75rem;
}
@media (min-width: 860px) {
  .tc-account { grid-template-columns: 240px 1fr; align-items: start; }
}
.tc-account__nav {
  border: 1px solid var(--tc-line); border-radius: var(--tc-radius);
  padding: 1rem; background: #fff; height: fit-content;
}
.tc-account__nav .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.tc-account__nav .woocommerce-MyAccount-navigation a {
  display: block; padding: 0.6rem 0.75rem; border-radius: 8px; font-weight: 700; font-size: 0.9rem; color: var(--tc-ink);
}
.tc-account__nav .woocommerce-MyAccount-navigation a:hover { background: var(--tc-paper); }
.tc-account__nav .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--tc-danger); }
.tc-account__nav .is-active a { background: var(--tc-brand); color: #fff; }
.tc-account__content { min-width: 0; }
.tc-account__content table.shop_table { width: 100%; }

/* ---------------------------------------------------------------------
 * WhatsApp flutuante
 * ------------------------------------------------------------------- */
.tc-whatsapp {
  position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 60;
  width: 56px; height: 56px; border-radius: 999px;
  background: #25D366; color: #fff; display: grid; place-items: center;
  box-shadow: var(--tc-shadow-hover);
}
.tc-whatsapp:hover { filter: brightness(0.95); }

/* ---------------------------------------------------------------------
 * Redes sociais no rodapé
 * ------------------------------------------------------------------- */
.tc-social { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; gap: 0.9rem; flex-wrap: wrap; }
.tc-social a { font-size: 0.85rem; font-weight: 700; }

/* Aviso de pagamento no checkout */
.tc-checkout-note {
  background: var(--tc-paper); border-left: 3px solid var(--tc-brand);
  border-radius: 8px; padding: 0.75rem 1rem; margin: 0 0 1.25rem; font-size: 0.9rem; font-weight: 600;
}

/* ---------------------------------------------------------------------
 * Faixa/banner acima do cabeçalho
 * ------------------------------------------------------------------- */
.tc-topbar { font-size: 0.8rem; text-align: center; }
.tc-topbar__inner { padding: 0.5rem 1rem; }
.tc-topbar a { text-decoration: underline; text-underline-offset: 2px; }

/* Cabeçalho fixo desligável pelo Personalizar */
.tc-header--static .tc-header { position: static; }

/* Escala de títulos "Grande" */
.tc-heading-lg .tc-hero h1 { font-size: clamp(2.1rem, 5.5vw, 3.2rem); }
.tc-heading-lg .tc-section__head h2 { font-size: clamp(1.6rem, 3vw, 2rem); }
.tc-heading-lg .tc-event__main h1 { font-size: clamp(1.9rem, 4vw, 3rem); }

/* ---------------------------------------------------------------------
 * Aviso de cookies (mobile-first: barra inferior fixa)
 * ------------------------------------------------------------------- */
.tc-cookie {
  position: fixed; left: 0.75rem; right: 0.75rem; bottom: 0.75rem; z-index: 70;
  background: #fff; border: 1px solid var(--tc-line); border-radius: var(--tc-radius);
  box-shadow: var(--tc-shadow-hover); padding: 1rem; display: flex; flex-direction: column; gap: 0.75rem;
}
.tc-cookie p { margin: 0; font-size: 0.85rem; color: var(--tc-muted); }
.tc-cookie .tc-btn { align-self: flex-start; }
@media (min-width: 640px) {
  .tc-cookie {
    left: auto; right: 1.25rem; bottom: 1.25rem; max-width: 22rem;
    flex-direction: column; align-items: flex-start;
  }
}

/* ---------------------------------------------------------------------
 * Popup promocional (mobile-first: folha inferior; vira modal central no desktop)
 * ------------------------------------------------------------------- */
.tc-promo-overlay {
  position: fixed; inset: 0; z-index: 80;
  background: rgb(0 0 0 / 0.5);
  display: flex; align-items: flex-end; justify-content: center;
}
@media (min-width: 640px) { .tc-promo-overlay { align-items: center; padding: 1rem; } }
.tc-promo {
  position: relative; width: 100%; max-width: 26rem;
  background: #fff; border-radius: 16px 16px 0 0; padding: 2rem 1.5rem 1.75rem;
  text-align: center; box-shadow: var(--tc-shadow-hover);
}
@media (min-width: 640px) { .tc-promo { border-radius: 16px; } }
.tc-promo p:not(.tc-kicker) { color: var(--tc-muted); margin: 0.5rem 0 1.25rem; }
.tc-promo .tc-btn { width: 100%; }
.tc-promo__close {
  position: absolute; top: 0.75rem; right: 0.75rem;
  width: 32px; height: 32px; border-radius: 999px; border: 0; background: var(--tc-paper);
  font-size: 1.25rem; line-height: 1; cursor: pointer; display: grid; place-items: center;
}
body.tc-promo-open { overflow: hidden; }

/* ---------------------------------------------------------------------
 * Widget "Vitrine de Eventos" do Elementor — usável em qualquer página
 * ------------------------------------------------------------------- */
.tc-widget-vitrine { padding: 0.5rem 0; }
.tc-widget-vitrine .tc-section__head { margin-bottom: 1rem; }
.tc-grid--cols-1 { grid-template-columns: 1fr !important; }
.tc-grid--cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
@media (min-width: 480px) {
  .tc-grid--cols-3 { grid-template-columns: repeat(2, 1fr) !important; }
  .tc-grid--cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 780px) {
  .tc-grid--cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
  .tc-grid--cols-4 { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (min-width: 1024px) {
  .tc-grid--cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
}
