/* ===== Fontes hospedadas no próprio site (nenhuma chamada ao Google Fonts) ===== */
@font-face {
  font-family: 'Cinzel'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/cinzel-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cinzel'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/cinzel-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/montserrat-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('fonts/montserrat-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('fonts/montserrat-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat'; font-style: italic; font-weight: 600; font-display: swap;
  src: url('fonts/montserrat-latin-600-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== Estilos da página ===== */
/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  font-family: 'Montserrat', system-ui, sans-serif; font-weight: 600; font-size: .95rem;
  letter-spacing: .02em; line-height: 1.2; text-align: center;
  padding: 1rem 1.75rem; border-radius: 2px;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.btn-ouro { background: #D4AF37; color: #111111; box-shadow: 0 10px 30px -12px rgba(212,175,55,.7); }
.btn-ouro:hover { background: #E8DCC4; }
.btn-borgonha { background: #800020; color: #ffffff; }
.btn-borgonha:hover { background: #111111; }
.btn-contorno { border: 1px solid #D4AF37; color: #D4AF37; }
.btn-contorno:hover { background: #D4AF37; color: #111111; }

/* Foco visível no teclado */
a:focus-visible, button:focus-visible { outline: 2px solid #D4AF37; outline-offset: 3px; }
.sobre-claro a:focus-visible { outline-color: #800020; }

/* ---------- Cortina de veludo (abertura do palco) ---------- */
.cortina {
  position: absolute; top: 0; bottom: 0; width: 50%; z-index: 20; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 70%, rgba(0,0,0,.65) 100%),
    repeating-linear-gradient(90deg,
      #2e000b 0px, #800020 16px, #9a0a2e 22px, #800020 28px, #2e000b 46px);
  box-shadow: 0 0 60px rgba(0,0,0,.8);
}
.cortina-esq { left: 0;  transform: translateX(-93%); animation: abre-esq 1.9s cubic-bezier(.7,0,.2,1) .25s backwards; }
.cortina-dir { right: 0; transform: translateX(93%);  animation: abre-dir 1.9s cubic-bezier(.7,0,.2,1) .25s backwards; }
@media (min-width: 1024px) {
  .cortina-esq { transform: translateX(-88%); }
  .cortina-dir { transform: translateX(88%); }
}
@keyframes abre-esq { from { transform: translateX(0); } }
@keyframes abre-dir { from { transform: translateX(0); } }

/* Foto principal dissolvendo no fundo do palco */
.foto-palco {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 24%, #000 76%, transparent 100%),
                      linear-gradient(to bottom, transparent 0%, #000 16%, #000 72%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0%, #000 24%, #000 76%, transparent 100%),
              linear-gradient(to bottom, transparent 0%, #000 16%, #000 72%, transparent 100%);
  mask-composite: intersect;
}

/* Títulos nunca estouram a largura da tela */
h1, h2, h3, h4 { overflow-wrap: break-word; }

/* Filete dourado usado como divisor de seção */
.filete { height: 1px; background: linear-gradient(90deg, transparent, #D4AF37 20%, #D4AF37 80%, transparent); }

/* Moldura de cartaz (vitrine de teatro) */
.vitrine { padding: 10px; background: #111111; border: 1px solid #D4AF37; box-shadow: 0 0 0 6px #111111, 0 0 0 7px rgba(212,175,55,.55), 0 40px 80px -30px rgba(0,0,0,.9); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cortina-esq, .cortina-dir { animation: none; }
  .btn { transition: none; }
}
  

/* ===== Fundos que antes eram style="" no HTML (permite CSP sem 'unsafe-inline') ===== */
.luz-palco { background: radial-gradient(60% 55% at 72% 30%, rgba(128,0,32,.45) 0%, rgba(75,0,130,.18) 45%, rgba(17,17,17,0) 75%); }
.veu-mentoria { background: linear-gradient(180deg, rgba(17,17,17,0) 0%, rgba(17,17,17,.35) 55%, rgba(17,17,17,.85) 100%); }
.video-capa-fundo { background: radial-gradient(70% 90% at 50% 40%, rgba(128,0,32,.6) 0%, rgba(75,0,130,.25) 55%, #111111 100%); }

/* Atalho fixo de WhatsApp */
#zap-fixo { bottom: max(1.25rem, env(safe-area-inset-bottom)); }
.zap-oculto, body.cookie-aberto #zap-fixo { opacity: 0; pointer-events: none; }

/* Marcadores de dados que a Graci ainda precisa informar nas páginas legais */
.preencher { background: #D4AF37; color: #111111; padding: 0 .3rem; font-weight: 600; }

/* ===== Aviso de cookies (primeira camada + preferências) ===== */
.cookie-banner {
  position: fixed; left: 1rem; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 60;
  max-width: 34rem; padding: 1.25rem; background: #111111; color: #E8DCC4;
  border: 1px solid rgba(212,175,55,.65); box-shadow: 0 24px 70px -10px rgba(0,0,0,.95);
  font-family: 'Montserrat', system-ui, sans-serif; font-size: .9rem; line-height: 1.55;
}
@media (min-width: 640px) { .cookie-banner { left: 1.25rem; right: auto; bottom: max(1.25rem, env(safe-area-inset-bottom)); } }
.cookie-banner[hidden] { display: none; }
.cookie-titulo { margin: 0 0 .5rem; font-family: 'Cinzel', Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #D4AF37; }
.cookie-titulo:focus { outline: none; }
.cookie-texto { margin: 0; }
.cookie-banner a { color: #D4AF37; text-decoration: underline; text-underline-offset: 3px; }
.cookie-acoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.cookie-acoes .btn { flex: 1 1 8rem; padding: .85rem 1rem; font-size: .9rem; }
.cookie-link { margin-top: .25rem; padding: .75rem .25rem; background: none; border: 0; font: inherit; color: #D4AF37; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cookie-link:hover { color: #ffffff; }
.cookie-detalhes { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid rgba(212,175,55,.35); }
.cookie-detalhes[hidden] { display: none; }
.cookie-opcao { display: flex; gap: .75rem; align-items: flex-start; padding: .6rem 0; }
.cookie-opcao input { flex: none; width: 1.2rem; height: 1.2rem; margin-top: .15rem; accent-color: #D4AF37; }
.cookie-opcao strong { color: #ffffff; font-weight: 600; }
.cookie-opcao small { display: block; color: #E8DCC4; font-size: .82rem; }
.cookie-banner input:focus-visible, .cookie-link:focus-visible { outline: 2px solid #D4AF37; outline-offset: 3px; }

/* Botões em texto usados no rodapé e nos avisos (mesmo visual de link) */
.link-texto { background: none; border: 0; padding: .75rem 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.link-texto:hover { color: #D4AF37; }
.sobre-claro .link-texto:hover { color: #800020; }

@media (prefers-reduced-motion: reduce) { .zap-oculto { transition: none; } }

/* ===== Páginas legais (privacidade e termos) ===== */
.texto-legal { max-width: 44rem; margin-inline: auto; line-height: 1.75; }
.texto-legal h1 { font-family: 'Cinzel', Georgia, serif; font-weight: 600; color: #D4AF37; font-size: clamp(1.7rem, 7vw, 2.6rem); line-height: 1.2; overflow-wrap: anywhere; }
.texto-legal h2 { margin-top: 2.5rem; font-family: 'Cinzel', Georgia, serif; font-weight: 600; color: #ffffff; font-size: clamp(1.2rem, 5vw, 1.6rem); line-height: 1.3; overflow-wrap: anywhere; }
.texto-legal h3 { margin-top: 1.5rem; font-weight: 600; color: #D4AF37; }
.texto-legal p, .texto-legal ul, .texto-legal ol { margin-top: 1rem; }
.texto-legal ul { list-style: disc; padding-left: 1.4rem; }
.texto-legal ol { list-style: decimal; padding-left: 1.4rem; }
.texto-legal li + li { margin-top: .4rem; }
.texto-legal a { color: #D4AF37; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.texto-legal a:hover { color: #ffffff; }
.texto-legal .aviso { margin-top: 1.5rem; padding: 1rem 1.25rem; border: 1px solid rgba(212,175,55,.6); color: #E8DCC4; font-size: .95rem; }
.texto-legal table { margin-top: 1rem; width: 100%; border-collapse: collapse; font-size: .92rem; }
.texto-legal th, .texto-legal td { padding: .65rem .75rem; border: 1px solid rgba(212,175,55,.35); text-align: left; vertical-align: top; }
.texto-legal th { color: #D4AF37; font-weight: 600; }
.tabela-rolagem { overflow-x: auto; }

/* Ícones de redes sociais (alvo de toque de 48px) */
.rede { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 1px solid #D4AF37; border-radius: 9999px; color: #D4AF37; transition: background-color .2s, color .2s; }
.rede:hover { background: #D4AF37; color: #111111; }
.rede:focus-visible { outline: 2px solid #D4AF37; outline-offset: 3px; }

.rede-topo { width: 2.75rem; height: 2.75rem; }
@media (min-width: 1024px) { header nav + ul { margin-left: 1rem; } }
