/* Gama Produção: palco escuro, luz azul e magenta, laranja de destaque (identidade do Instagram). */
:root {
  --fundo: #070a12;
  --fundo-2: #0b1020;
  --cartao: #10172a;
  --cartao-2: #151e36;
  --linha: rgba(255, 255, 255, .09);
  --texto: #f3f5fa;
  --suave: #a7b0c3;
  --apagado: #6e7890;
  --laranja: #ff8a1f;
  --laranja-2: #ff5a1f;
  --sobre-laranja: #1a0d02;
  --azul: #2f6bff;
  --magenta: #b23cff;
  --marinho: #1d2b4f;
  --raio: 18px;
  --largura: 1200px;
  --tit: "Oswald", "Arial Narrow", sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 400 16px/1.65 "Manrope", system-ui, sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--laranja); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--tit); font-weight: 600; line-height: 1.04; letter-spacing: .005em; margin: 0; text-transform: uppercase; }
h1 em, h2 em { font-style: normal; color: var(--laranja); }
p { margin: 0 0 1em; }
.largura { width: min(100% - 32px, var(--largura)); margin-inline: auto; }
.pular { position: absolute; left: -9999px; }
.pular:focus { left: 16px; top: 16px; z-index: 100; background: var(--laranja); color: var(--sobre-laranja); padding: 8px 14px; border-radius: 8px; }

/* botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 26px; border-radius: 999px; border: 0; font-weight: 700; font-size: 15px; text-decoration: none; cursor: pointer; transition: transform .2s, box-shadow .2s, background .2s; white-space: nowrap; }
.btn i { font-size: 19px; }
.btn-gr { background: linear-gradient(135deg, var(--laranja), var(--laranja-2)); color: var(--sobre-laranja); box-shadow: 0 10px 30px -10px rgba(255, 110, 31, .7); }
.btn-gr:hover { transform: translateY(-2px); box-shadow: 0 16px 36px -10px rgba(255, 110, 31, .85); }
.btn-contorno { border: 1.5px solid rgba(255, 255, 255, .25); color: var(--texto); background: rgba(255, 255, 255, .03); }
.btn-contorno:hover { border-color: var(--texto); background: rgba(255, 255, 255, .07); }
.btn-escuro { background: var(--fundo); color: var(--texto); }
.btn-escuro:hover { transform: translateY(-2px); }
.btn-pq { padding: 10px 18px; font-size: 14px; }
.link-seta { display: inline-flex; align-items: center; gap: 8px; color: var(--laranja); font-weight: 700; text-decoration: none; }
.link-seta:hover { gap: 12px; }

/* topo */
.topo { position: fixed; inset: 0 0 auto; z-index: 50; transition: background .3s, border-color .3s; border-bottom: 1px solid transparent; }
.topo.rolou { background: rgba(7, 10, 18, .86); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-color: var(--linha); }
.topo-in { width: min(100% - 32px, var(--largura)); margin-inline: auto; height: 76px; display: flex; align-items: center; gap: 24px; }
.marca { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--texto); }
.marca .logo { width: 46px; height: 46px; }
.marca-txt { font-family: var(--tit); text-transform: uppercase; letter-spacing: .14em; font-size: 14px; color: var(--suave); line-height: 1.1; }
.marca-txt b { display: block; color: var(--texto); font-weight: 600; font-size: 17px; letter-spacing: .2em; }
.menu { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.menu a:not(.btn) { padding: 8px 14px; text-decoration: none; color: var(--suave); font-weight: 600; font-size: 15px; border-radius: 999px; }
.menu a:not(.btn):hover, .menu a[aria-current] { color: var(--texto); }
.menu a[aria-current] { background: rgba(255, 255, 255, .06); }
.menu-cta { margin-left: 10px; }
.menu-bt { display: none; margin-left: auto; background: none; border: 1px solid var(--linha); border-radius: 12px; width: 46px; height: 46px; font-size: 24px; cursor: pointer; }

/* luz de palco (fundos) */
.hero-luz { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.hero-luz span { position: absolute; border-radius: 50%; filter: blur(90px); opacity: .55; }
.hero-luz span:nth-child(1) { width: 560px; height: 560px; background: var(--azul); top: -180px; left: -120px; opacity: .35; }
.hero-luz span:nth-child(2) { width: 480px; height: 480px; background: var(--magenta); top: 10%; right: -140px; opacity: .3; }
.hero-luz span:nth-child(3) { width: 420px; height: 420px; background: var(--laranja-2); bottom: -260px; left: 40%; opacity: .18; }
.hero-luz::after { content: ""; position: absolute; inset: 0; background:
  linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .035) 47%, transparent 54%),
  linear-gradient(65deg, transparent 50%, rgba(255, 255, 255, .03) 56%, transparent 62%); }

/* hero */
.hero { position: relative; padding: 140px 0 80px; min-height: 100svh; display: flex; align-items: center; isolation: isolate; }
.hero-in { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: 56px; align-items: center; }
.selo { display: inline-flex; align-items: center; gap: 10px; padding: 7px 16px; border-radius: 999px; background: rgba(255, 255, 255, .05); border: 1px solid var(--linha); color: var(--suave); font-weight: 600; font-size: 14px; letter-spacing: .02em; }
.selo i { color: var(--laranja); font-size: 9px; animation: pulsa 2s infinite; }
@keyframes pulsa { 50% { opacity: .3; } }
.hero h1 { font-size: clamp(44px, 5.6vw, 80px); margin: 22px 0 22px; font-weight: 700; line-height: .98; }
.hero-sub { color: var(--suave); font-size: clamp(16px, 1.5vw, 19px); max-width: 600px; }
.hero-bts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.hero-num { display: flex; gap: 0; margin: 46px 0 0; padding: 22px 0 0; border-top: 1px solid var(--linha); max-width: 560px; }
.hero-num div { flex: 1; padding-right: 18px; }
.hero-num div + div { padding-left: 18px; border-left: 1px solid var(--linha); }
.hero-num dt { font-family: var(--tit); font-size: 40px; font-weight: 600; line-height: 1; color: var(--texto); }
.hero-num dt i { color: var(--laranja); font-size: 36px; }
.hero-num dd { margin: 6px 0 0; color: var(--apagado); font-size: 13px; line-height: 1.35; }
.hero-midia { position: relative; height: min(640px, 72vh); }
.hm { position: absolute; object-fit: cover; border-radius: 22px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9); border: 1px solid rgba(255, 255, 255, .1); }
.hm-a { width: 62%; aspect-ratio: 4 / 5; left: 0; top: 4%; transform: rotate(-4deg); filter: saturate(1.1) brightness(.8); }
.hm-b { width: 52%; aspect-ratio: 1; right: 0; bottom: 0; transform: rotate(3deg); }
.hm-c { width: 44%; aspect-ratio: 9 / 16; left: 34%; top: 14%; z-index: 2; border: 3px solid rgba(255, 255, 255, .9); border-radius: 26px; }

/* faixa de palcos */
.palcos { border-block: 1px solid var(--linha); background: var(--fundo-2); overflow: hidden; padding: 20px 0; }
.palcos-trilho { display: flex; align-items: center; gap: 28px; width: max-content; animation: corre 70s linear infinite; }
.palcos span { font-family: var(--tit); text-transform: uppercase; font-size: 20px; letter-spacing: .06em; color: var(--suave); white-space: nowrap; }
.palcos i { color: var(--laranja); font-size: 14px; }
@keyframes corre { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .palcos-trilho { animation: none; } .selo i { animation: none; } html { scroll-behavior: auto; } }

/* seções */
.sec { padding: 110px 0; position: relative; }
.sec-cola { padding-top: 40px; }
.sec-esc { background: var(--fundo-2); border-block: 1px solid var(--linha); }
.sec-topo { display: flex; justify-content: space-between; align-items: end; gap: 24px 48px; flex-wrap: wrap; margin-bottom: 48px; }
.sec-topo h2, .sec h2 { font-size: clamp(36px, 4.6vw, 62px); }
.sec-desc { color: var(--suave); max-width: 460px; margin: 0; }
.sobre-tit { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--laranja); margin-bottom: 16px; }
.sobre-tit::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.h-peq { font-size: 28px !important; margin: 0 0 22px; }

/* serviços */
.servicos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.serv { background: linear-gradient(180deg, var(--cartao), var(--fundo-2)); border: 1px solid var(--linha); border-radius: var(--raio); padding: 32px 28px; position: relative; overflow: hidden; transition: border-color .25s, transform .25s; }
.serv:hover { border-color: rgba(255, 138, 31, .45); transform: translateY(-4px); }
.serv::after { content: ""; position: absolute; width: 220px; height: 220px; right: -90px; top: -90px; border-radius: 50%; background: var(--azul); filter: blur(70px); opacity: .14; }
.serv-1::after { background: var(--laranja); opacity: .22; }
.serv-ic { font-size: 34px; color: var(--laranja); display: grid; place-items: center; width: 62px; height: 62px; border-radius: 16px; background: rgba(255, 138, 31, .1); border: 1px solid rgba(255, 138, 31, .25); margin-bottom: 22px; }
.serv h3 { font-size: 25px; margin-bottom: 10px; }
.serv p { color: var(--suave); font-size: 15px; }
.serv ul { list-style: none; padding: 16px 0 0; margin: 0; border-top: 1px solid var(--linha); display: grid; gap: 6px; }
.serv li { font-size: 14px; color: var(--texto); display: flex; gap: 10px; align-items: baseline; }
.serv li::before { content: ""; width: 6px; height: 6px; background: var(--laranja); transform: rotate(45deg); flex: none; position: relative; top: -2px; }

/* bloco palco */
.palco-in { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.palco-foto { margin: 0; position: relative; }
.palco-foto img { border-radius: 24px; aspect-ratio: 1; object-fit: cover; width: 100%; }
.palco-foto::before { content: ""; position: absolute; inset: 24px -24px -24px 24px; border: 2px solid var(--marinho); border-radius: 24px; z-index: -1; }
.palco-foto figcaption { position: absolute; left: 18px; bottom: 18px; background: rgba(7, 10, 18, .8); backdrop-filter: blur(8px); padding: 8px 14px; border-radius: 999px; font-size: 13px; color: var(--suave); }
.palco-txt p { color: var(--suave); font-size: 17px; margin-top: 22px; }
.checks { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; }
.checks li { display: flex; gap: 14px; color: var(--suave); }
.checks i { color: var(--laranja); font-size: 22px; flex: none; margin-top: 1px; }
.checks b { color: var(--texto); }

/* portfólio */
.grade-proj { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grade-dest { grid-template-columns: repeat(4, 1fr); }
.grade-dest .proj-grande { grid-column: span 2; grid-row: span 2; }
.grade-dest .proj-grande .proj-img { aspect-ratio: auto; height: 100%; min-height: 380px; }
.grade-dest .proj-grande strong { font-size: 34px; }
.proj { position: relative; display: flex; flex-direction: column; text-decoration: none; border-radius: var(--raio); overflow: hidden; background: var(--cartao); border: 1px solid var(--linha); isolation: isolate; }
.proj-img { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; }
.proj-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.proj:hover .proj-img img { transform: scale(1.06); }
.proj-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(7, 10, 18, .95)); }
.proj-play { position: absolute; top: 14px; right: 14px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(7, 10, 18, .7); backdrop-filter: blur(6px); color: var(--texto); font-size: 15px; }
.proj-txt { position: absolute; inset: auto 0 0; padding: 20px; z-index: 2; display: grid; gap: 6px; }
.proj strong { font-family: var(--tit); text-transform: uppercase; font-weight: 600; font-size: 22px; line-height: 1.08; }
.proj-meta { color: var(--suave); font-size: 13px; }
.tag { justify-self: start; display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--laranja); background: rgba(255, 138, 31, .12); border: 1px solid rgba(255, 138, 31, .3); padding: 3px 10px; border-radius: 999px; }
.corp-faixa { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--suave); font-size: 14px; }
.corp-faixa span { font-weight: 700; color: var(--texto); margin-right: 4px; }
.corp-faixa a { text-decoration: none; padding: 6px 14px; border: 1px solid var(--linha); border-radius: 999px; }
.corp-faixa a:hover { border-color: var(--laranja); color: var(--texto); }
.filtros { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.filtros button { border: 1px solid var(--linha); background: var(--cartao); border-radius: 999px; padding: 9px 16px; cursor: pointer; font-weight: 600; font-size: 14px; color: var(--suave); }
.filtros button span { opacity: .55; margin-left: 4px; }
.filtros button.ativo { background: var(--texto); color: var(--fundo); border-color: var(--texto); }
.proj.some { display: none; }

/* agenda */
.agenda { background: radial-gradient(circle at 80% 0, rgba(178, 60, 255, .14), transparent 50%), var(--fundo-2); border-block: 1px solid var(--linha); }
.agenda-lista { display: grid; gap: 14px; }
.ag { display: grid; grid-template-columns: 84px 84px 1fr auto; gap: 22px; align-items: center; padding: 16px 22px 16px 16px; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); }
.ag-data { text-align: center; }
.ag-data strong { display: block; font-family: var(--tit); font-size: 44px; line-height: 1; color: var(--laranja); }
.ag-data span { text-transform: uppercase; font-weight: 700; letter-spacing: .14em; font-size: 13px; color: var(--suave); }
.ag img { width: 84px; height: 84px; object-fit: cover; border-radius: 12px; }
.ag h3 { font-size: 24px; }
.ag h3 a { text-decoration: none; }
.ag p { margin: 4px 0 0; color: var(--suave); font-size: 14px; }

/* passos */
.passos { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: p; }
.passos li { padding: 0 28px 0 0; position: relative; }
.passos li + li { padding-left: 28px; border-left: 1px solid var(--linha); }
.passo-n { display: block; font-family: var(--tit); font-size: 64px; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px var(--laranja); margin-bottom: 18px; }
.passos h3 { font-size: 26px; margin-bottom: 10px; }
.passos p { color: var(--suave); font-size: 15px; }

/* estrutura */
.estr-in { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.estr-in > div > p { color: var(--suave); font-size: 17px; margin-top: 20px; }
.estr-itens, .usos { display: grid; gap: 14px; margin-top: 26px; }
.usos { grid-template-columns: 1fr 1fr; margin-top: 0; }
.estr-it { display: flex; gap: 18px; align-items: flex-start; padding: 18px 20px; border-radius: 16px; background: var(--cartao); border: 1px solid var(--linha); }
.estr-it > i { font-size: 30px; color: var(--laranja); flex: none; }
.estr-it h3 { font-size: 21px; margin-bottom: 4px; }
.estr-it p { margin: 0; color: var(--suave); font-size: 15px; }
.estr-foto { margin: 0; }
.estr-foto img { border-radius: 24px; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.estr-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }

/* patrocínio */
.patro { padding: 0; }
.patro-in { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px 64px; align-items: center; padding: 64px; border-radius: 28px; background: linear-gradient(130deg, var(--laranja) 0%, var(--laranja-2) 55%, #d63a2a 100%); color: var(--sobre-laranja); position: relative; overflow: hidden; }
.patro-in::after { content: ""; position: absolute; width: 420px; height: 420px; right: -140px; top: -180px; border: 60px solid rgba(255, 255, 255, .12); border-radius: 50%; }
.patro .sobre-tit { color: var(--sobre-laranja); }
.patro h2 em { color: #fff; }
.patro p { font-size: 17px; margin-top: 18px; font-weight: 500; }
.patro-lado { position: relative; z-index: 1; }
.patro ul { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 12px; font-weight: 700; font-size: 17px; }
.patro li { display: flex; gap: 10px; align-items: center; }
.patro li i { font-size: 22px; }

/* sobre */
.sobre-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: center; }
.sobre-foto { margin: 0; position: relative; }
.sobre-foto img { border-radius: 24px; width: 100%; aspect-ratio: 1; object-fit: cover; }
.sobre-foto::after { content: ""; position: absolute; inset: -14px; border-radius: 30px; background: linear-gradient(135deg, var(--azul), var(--magenta)); z-index: -1; opacity: .5; filter: blur(30px); }
.sobre-in h2 { margin-bottom: 22px; }
.sobre-in p { color: var(--suave); font-size: 17px; }
.assina { font-family: var(--tit); text-transform: uppercase; letter-spacing: .1em; color: var(--texto) !important; font-size: 18px !important; }

/* vídeos */
.vid-trilho { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 max(16px, calc((100vw - var(--largura)) / 2)) 16px; scroll-padding-inline: max(16px, calc((100vw - var(--largura)) / 2)); scrollbar-width: thin; }
.vid { margin: 0; flex: none; width: 260px; scroll-snap-align: start; }
.vid video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 18px; background: #000; border: 1px solid var(--linha); }
.vid figcaption { margin-top: 10px; font-weight: 600; font-size: 14px; }
.vid figcaption a { text-decoration: none; color: var(--suave); }
.vid figcaption a:hover { color: var(--texto); }

/* faq */
.faq-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; }
.faq-lista details { border-bottom: 1px solid var(--linha); }
.faq-lista summary { list-style: none; cursor: pointer; padding: 22px 0; font-weight: 700; font-size: 18px; display: flex; justify-content: space-between; gap: 18px; }
.faq-lista summary::-webkit-details-marker { display: none; }
.faq-lista summary i { color: var(--laranja); transition: transform .25s; flex: none; margin-top: 3px; }
.faq-lista details[open] summary i { transform: rotate(45deg); }
.faq-lista p { color: var(--suave); padding-bottom: 22px; margin: 0; }

/* orçamento */
.orc { background: radial-gradient(circle at 0 100%, rgba(47, 107, 255, .16), transparent 45%), radial-gradient(circle at 100% 0, rgba(255, 90, 31, .12), transparent 40%), var(--fundo-2); border-top: 1px solid var(--linha); }
.orc-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; }
.orc-txt p { color: var(--suave); font-size: 17px; margin-top: 18px; }
.orc-contatos { list-style: none; padding: 0; margin: 30px 0 0; display: grid; gap: 12px; }
.orc-contatos a { display: flex; gap: 16px; align-items: center; text-decoration: none; padding: 14px 18px; border-radius: 16px; background: var(--cartao); border: 1px solid var(--linha); }
.orc-contatos a:hover { border-color: var(--laranja); }
.orc-contatos i { font-size: 26px; color: var(--laranja); }
.orc-contatos span { font-weight: 700; display: grid; line-height: 1.3; word-break: break-word; }
.orc-contatos small { font-weight: 500; color: var(--apagado); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.orc-form { background: var(--cartao); border: 1px solid var(--linha); border-radius: 24px; padding: 34px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8); }
.form { display: grid; gap: 16px; }
.form label { display: grid; gap: 7px; font-weight: 600; font-size: 14px; color: var(--suave); }
.opc { font-weight: 400; color: var(--apagado); }
.form input, .form select, .form textarea { width: 100%; background: var(--fundo); border: 1px solid rgba(255, 255, 255, .14); border-radius: 12px; padding: 13px 14px; color: var(--texto); font-size: 16px; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--laranja); box-shadow: 0 0 0 3px rgba(255, 138, 31, .18); }
.form .erro { border-color: #ff6b6b; }
.form textarea { resize: vertical; }
.form .btn { margin-top: 6px; }
.duas { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; }
.form-nota { margin: 0; font-size: .85rem; color: var(--apagado); }
.form-msg { margin: 0; color: #ff8f8f; font-weight: 600; min-height: 1.4em; }
.form-ok { text-align: center; padding: 30px 10px; }
.form-ok > i { font-size: 64px; color: var(--laranja); }
.form-ok h3 { font-size: 34px; margin: 10px 0; }
.form-ok p { color: var(--suave); }

/* cabeçalho das páginas internas */
.cab { position: relative; padding: 170px 0 70px; isolation: isolate; overflow: hidden; }
.cab-curta { padding-bottom: 30px; }
.cab h1 { font-size: clamp(44px, 6.4vw, 86px); margin: 0 0 20px; font-weight: 700; max-width: 900px; }

/* projeto */
.pj-cab { position: relative; padding: 150px 0 70px; overflow: hidden; isolation: isolate; }
.pj-fundo { position: absolute; inset: -40px; background-size: cover; background-position: center; filter: blur(50px) saturate(1.3) brightness(.35); z-index: -1; transform: scale(1.1); }
.pj-cab::after { content: ""; position: absolute; inset: auto 0 0; height: 200px; background: linear-gradient(transparent, var(--fundo)); z-index: -1; }
.pj-cab-in { display: grid; grid-template-columns: 1.2fr .8fr; gap: 56px; align-items: center; }
.voltar { display: inline-flex; align-items: center; gap: 8px; color: var(--suave); text-decoration: none; font-weight: 600; margin-bottom: 22px; }
.voltar:hover { color: var(--texto); }
.pj-txt { display: grid; justify-items: start; }
.pj-txt h1 { font-size: clamp(40px, 5.4vw, 72px); margin: 16px 0 10px; font-weight: 700; }
.pj-sub { color: var(--suave); font-size: 20px; }
.pj-meta { display: grid; grid-template-columns: repeat(3, auto); gap: 20px 36px; margin: 18px 0 30px; }
.pj-meta dt { color: var(--apagado); font-size: 12px; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; display: flex; gap: 6px; align-items: center; }
.pj-meta dd { margin: 4px 0 0; font-weight: 600; }
.pj-meta small { color: var(--suave); font-weight: 500; }
.pj-capa { margin: 0; }
.pj-capa img { width: 100%; border-radius: 22px; box-shadow: 0 40px 80px -30px #000; max-height: 620px; object-fit: cover; }
.pj-corpo { display: grid; grid-template-columns: 1fr 300px; gap: 64px; align-items: start; margin-bottom: 56px; }
.pj-corpo-sem { grid-template-columns: minmax(0, 760px); }
.pj-texto { font-size: 18px; color: var(--suave); }
.pj-resumo { font-size: 23px; color: var(--texto); font-weight: 600; line-height: 1.45; }
.vid-pj { width: 100%; }
.galeria { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gal { padding: 0; border: 0; background: var(--cartao); border-radius: 14px; overflow: hidden; cursor: zoom-in; aspect-ratio: 4 / 5; }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.gal:hover img { transform: scale(1.05); }
.cta-pj-in { text-align: center; padding: 60px 30px; border-radius: 28px; background: radial-gradient(circle at 50% 0, rgba(255, 138, 31, .2), transparent 60%), var(--cartao); border: 1px solid var(--linha); }
.cta-pj-in .hero-bts { justify-content: center; }
.pj-nav { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0 90px; }
.pj-nav a { display: grid; gap: 4px; text-decoration: none; font-family: var(--tit); text-transform: uppercase; font-size: 22px; max-width: 46%; }
.pj-nav a:hover { color: var(--laranja); }
.pj-nav small { font-family: "Manrope", sans-serif; text-transform: none; font-size: 14px; color: var(--apagado); display: flex; gap: 6px; align-items: center; }
.pj-nav .dir { text-align: right; justify-items: end; }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 90; background: rgba(3, 5, 10, .95); display: grid; place-items: center; padding: 60px 70px; }
.lb img { max-height: 86vh; max-width: 100%; border-radius: 12px; }
.lb button { position: absolute; background: rgba(255, 255, 255, .1); border: 0; border-radius: 50%; width: 52px; height: 52px; font-size: 24px; cursor: pointer; display: grid; place-items: center; }
.lb button:hover { background: rgba(255, 255, 255, .2); }
.lb-x { top: 18px; right: 18px; }
.lb-ant { left: 14px; top: 50%; transform: translateY(-50%); }
.lb-prox { right: 14px; top: 50%; transform: translateY(-50%); }

/* rodapé */
.rodape { border-top: 1px solid var(--linha); background: #05070d; padding: 70px 0 26px; }
.rodape-in { width: min(100% - 32px, var(--largura)); margin-inline: auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.rodape .logo { width: 70px; height: 70px; margin-bottom: 18px; }
.rodape p { color: var(--suave); font-size: 15px; max-width: 380px; }
.rodape-cidade { display: flex; gap: 8px; align-items: baseline; color: var(--apagado) !important; font-size: 14px !important; }
.rodape h3 { font-size: 15px; letter-spacing: .14em; color: var(--apagado); margin-bottom: 16px; font-family: "Manrope", sans-serif; font-weight: 700; }
.rodape-in > div:not(.rodape-marca) { display: grid; gap: 10px; align-content: start; }
.rodape a { text-decoration: none; color: var(--suave); display: flex; gap: 10px; align-items: center; word-break: break-word; }
.rodape a:hover { color: var(--texto); }
.rodape a i { color: var(--laranja); font-size: 18px; }
.rodape-fim { width: min(100% - 32px, var(--largura)); margin: 50px auto 0; padding-top: 22px; border-top: 1px solid var(--linha); color: var(--apagado) !important; font-size: 13px !important; max-width: none !important; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.rodape .rodape-credito { display: inline; color: var(--apagado); opacity: .75; }
.rodape .rodape-credito:hover { color: var(--laranja); opacity: 1; }

.whats-flutua { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; font-size: 32px; box-shadow: 0 12px 30px -8px rgba(37, 211, 102, .6); transition: transform .2s; }
.whats-flutua:hover { transform: scale(1.08); }

/* entrada suave */
.revela { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.revela.on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .revela { opacity: 1; transform: none; transition: none; } }

/* responsivo */
@media (max-width: 1080px) {
  .servicos, .grade-proj, .estr-cards { grid-template-columns: 1fr 1fr; }
  .grade-dest { grid-template-columns: 1fr 1fr; }
  .grade-dest .proj-grande { grid-row: auto; }
  .grade-dest .proj-grande .proj-img { aspect-ratio: 16 / 10; min-height: 0; height: auto; }
  .passos { grid-template-columns: 1fr 1fr; gap: 36px 0; }
  .passos li:nth-child(3) { padding-left: 0; border-left: 0; }
  .galeria { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .menu { position: fixed; inset: 76px 0 auto; flex-direction: column; align-items: stretch; gap: 0; padding: 12px 16px 22px; background: rgba(7, 10, 18, .97); backdrop-filter: blur(14px); border-bottom: 1px solid var(--linha); display: none; }
  .menu.aberto { display: flex; }
  .menu a:not(.btn) { padding: 14px 6px; border-radius: 0; border-bottom: 1px solid var(--linha); font-size: 17px; }
  .menu a[aria-current] { background: none; color: var(--laranja); }
  .menu-cta { margin: 16px 0 0; }
  .menu-bt { display: grid; place-items: center; }
  .topo.menu-on { background: rgba(7, 10, 18, .97); }
  .hero { padding-top: 120px; min-height: 0; }
  .hero-in, .palco-in, .estr-in, .sobre-in, .faq-in, .orc-in, .pj-cab-in, .patro-in { grid-template-columns: 1fr; gap: 44px; }
  .hero-midia { height: 460px; max-width: 520px; width: 100%; margin-inline: auto; }
  .palco-foto::before { inset: 14px -10px -14px 14px; }
  .pj-corpo { grid-template-columns: 1fr; }
  .vid-pj { max-width: 320px; }
  .pj-capa { max-width: 460px; }
  .patro-in { padding: 44px 30px; }
  .sec { padding: 80px 0; }
  .sec-cola { padding-top: 24px; }
  .rodape-in { grid-template-columns: 1fr 1fr; }
  .rodape-marca { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .marca-txt { display: none; }
  .hero h1 { font-size: clamp(40px, 12vw, 56px); }
  .hero-num dt { font-size: 32px; }
  .hero-num div + div { padding-left: 12px; }
  .hero-num div { padding-right: 12px; }
  .hero-midia { height: 380px; }
  .servicos, .grade-proj, .grade-dest, .estr-cards, .usos { grid-template-columns: 1fr; }
  .grade-proj { gap: 16px; }
  .passos { grid-template-columns: 1fr; }
  .passos li, .passos li + li { padding: 0 0 0 0; border-left: 0; }
  .ag { grid-template-columns: 64px 1fr; gap: 14px; padding: 16px; }
  .ag img { display: none; }
  .ag .btn { grid-column: 1 / -1; }
  .duas, .tres { grid-template-columns: 1fr; }
  .orc-form { padding: 22px 18px; }
  .pj-meta { grid-template-columns: 1fr 1fr; }
  .galeria { grid-template-columns: 1fr 1fr; }
  .lb { padding: 60px 10px; }
  .pj-nav a { font-size: 17px; }
  .rodape-in { grid-template-columns: 1fr; }
  .whats-flutua { width: 54px; height: 54px; font-size: 28px; right: 14px; bottom: 14px; }
  .cab { padding-top: 130px; }
}
