body { margin: 0; }
html { scroll-behavior: smooth; }
#bilhetes { scroll-margin-top: 12px; }

/* Hero: o Pedro à secretária, à luz do candeeiro; a IA arruma a rotina ao lado dele */
.hero { position: relative; isolation: isolate; padding-bottom: 40px; }
.hero__bg { position: absolute; z-index: -1; left: 0; right: 0; top: 0; height: 360px; background: url("/assets/img/4aaa5b729d4038e2.webp") 78% 32% / cover no-repeat; pointer-events: none; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,9,6,.35) 0%, rgba(12,9,6,0) 25%, rgba(12,9,6,.2) 70%, var(--bg) 100%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; }
.hero__media { position: relative; height: 340px; }
.hero__glow { position: absolute; z-index: 0; left: 50%; top: 52%; width: 460px; height: 460px; translate: -50% -50%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255,156,55,.30), rgba(238,157,51,.08) 50%, transparent 72%); pointer-events: none; }
.hero__photo { position: absolute; z-index: 2; left: 50%; bottom: 0; height: 100%; width: auto; max-width: none; translate: -50% 0; filter: drop-shadow(12px -4px 28px rgba(238,157,51,.30)); -webkit-mask-image: linear-gradient(180deg, #000 93%, transparent 100%); mask-image: linear-gradient(180deg, #000 93%, transparent 100%); }
/* Logos das ferramentas a pairar nos cantos, a sair do hero com blur (como no "Quem te vai guiar" aprovado) */
.hdrift { position: absolute; z-index: 1; display: grid; place-items: center; overflow: hidden; border-radius: 26%; background: var(--ticket); box-shadow: 0 0 0 1px rgba(238,157,51,.25), 0 24px 50px -16px rgba(0,0,0,.85), 0 0 40px rgba(238,157,51,.14); animation: hdrift 9s ease-in-out infinite alternate; pointer-events: none; }
.hdrift img { width: 58%; height: 58%; object-fit: contain; }
.hdrift--1 { width: 64px; height: 64px; left: -8px; top: 26px; --r: -14deg; filter: blur(2.5px); opacity: .6; -webkit-mask-image: linear-gradient(135deg, transparent 8%, #000 62%); mask-image: linear-gradient(135deg, transparent 8%, #000 62%); }
.hdrift--2 { width: 46px; height: 46px; right: 2px; top: 54px; --r: 12deg; filter: blur(1px); opacity: .8; animation-duration: 7.5s; animation-delay: -2s; -webkit-mask-image: linear-gradient(225deg, transparent 10%, #000 60%); mask-image: linear-gradient(225deg, transparent 10%, #000 60%); }
.hdrift--3 { width: 52px; height: 52px; right: -10px; top: 262px; --r: -10deg; filter: blur(2px); opacity: .75; animation-duration: 8.5s; animation-delay: -5s; -webkit-mask-image: linear-gradient(315deg, transparent 0%, #000 48%); mask-image: linear-gradient(315deg, transparent 0%, #000 48%); }
.hdrift--4 { width: 50px; height: 50px; left: 2px; top: 168px; --r: 9deg; filter: blur(1.5px); opacity: .75; animation-duration: 10s; animation-delay: -3s; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%); }
@keyframes hdrift { 0% { transform: translate(0, 0) rotate(var(--r)); } 100% { transform: translate(8px, -16px) rotate(calc(var(--r) * -0.4)); } }
@keyframes bob { from { translate: 0 0; } to { translate: 0 -10px; } }

/* A rotina: papéis soltos a arder, a IA passa, ficam arrumados e conferidos */
.desk { position: absolute; z-index: 4; left: calc(50% - 186px); bottom: 6px; width: 170px; height: 120px; scale: .78; transform-origin: left bottom; }
.slip { position: absolute; left: 22px; width: 116px; height: 66px; border-radius: 8px; background: var(--ticket); box-shadow: 0 14px 30px -12px rgba(0,0,0,.85); display: flex; align-items: center; gap: 10px; padding: 0 12px; }
.slip::after { content: ""; position: absolute; left: 46px; right: 12px; top: 22px; height: 22px; background: repeating-linear-gradient(180deg, #d9cdbd 0 3px, transparent 3px 9px); border-radius: 2px; }
.slip img, .slip svg.ic { width: 26px; height: 26px; flex: none; }
.slip--a { top: 48px; animation: slipA 9s ease-in-out infinite; z-index: 3; }
.slip--b { top: 24px; animation: slipB 9s ease-in-out infinite; z-index: 2; }
.slip--c { top: 0; animation: slipC 9s ease-in-out infinite; z-index: 1; }
@keyframes slipA { 0%, 28% { transform: translate(-16px, 12px) rotate(-17deg); } 7%, 21% { transform: translate(-12px, 9px) rotate(-12deg); } 14% { transform: translate(-18px, 14px) rotate(-19deg); } 44%, 90% { transform: translate(0, 0) rotate(-2deg); } 100% { transform: translate(-16px, 12px) rotate(-17deg); } }
@keyframes slipB { 0%, 28% { transform: translate(30px, -4px) rotate(14deg); } 7%, 21% { transform: translate(26px, -2px) rotate(9deg); } 14% { transform: translate(34px, -6px) rotate(16deg); } 48%, 90% { transform: translate(0, 0) rotate(-2deg); } 100% { transform: translate(30px, -4px) rotate(14deg); } }
@keyframes slipC { 0%, 28% { transform: translate(-6px, -10px) rotate(-6deg); } 7%, 21% { transform: translate(-2px, -12px) rotate(-2deg); } 14% { transform: translate(-8px, -8px) rotate(-9deg); } 52%, 90% { transform: translate(0, 0) rotate(-2deg); } 100% { transform: translate(-6px, -10px) rotate(-6deg); } }
.fire { position: absolute; right: -8px; top: -14px; width: 26px; height: 30px; animation: fire 9s linear infinite; }
.fire svg { width: 100%; height: 100%; animation: flick .5s ease-in-out infinite alternate; transform-origin: 50% 100%; }
@keyframes fire { 0%, 32% { opacity: 1; } 40%, 94% { opacity: 0; } 100% { opacity: 1; } }
@keyframes flick { from { transform: scale(1, 1); } to { transform: scale(.86, 1.12); } }
.scan { position: absolute; z-index: 5; left: -30px; top: 30px; animation: scan 9s ease-in-out infinite; }
.scan .chip--ai { background: var(--on-ember); }
.scan .chip { width: 40px; height: 40px; border-radius: 50%; box-shadow: 0 0 0 4px rgba(238,157,51,.35), 0 14px 30px -10px rgba(0,0,0,.8); }
@keyframes scan { 0%, 26% { transform: translate(-10px, 10px); opacity: 0; } 30% { opacity: 1; } 46% { transform: translate(150px, 14px); opacity: 1; } 52%, 100% { transform: translate(170px, 14px); opacity: 0; } }
.okstamp { position: absolute; z-index: 6; left: 98px; top: 52px; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: var(--ember); border: 3px solid var(--ember); background: rgba(12,9,6,.86); box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 4px var(--ember); animation: okst 9s ease-out infinite; }
@keyframes okst { 0%, 52% { transform: scale(0) rotate(-30deg); opacity: 0; } 57% { transform: scale(1.25) rotate(-10deg); opacity: 1; } 62%, 90% { transform: scale(1) rotate(-10deg); opacity: 1; } 96%, 100% { transform: scale(0) rotate(-10deg); opacity: 0; } }

.hero__col { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.hero__brand { font: 700 26px/1.05 var(--font-display); letter-spacing: -.03em; color: var(--ember); margin: 0; }
.hero__col .stamp { font-size: 12px; padding: 6px 9px 5px; border-width: 2px; box-shadow: inset 0 0 0 2px var(--bg), inset 0 0 0 3px var(--ember); transform: none; }
.hero__title { font-size: 38px; line-height: 1.02; margin: 2px 0 0; }
.hero__when { display: inline-flex; align-items: center; gap: 10px; font: 700 17px/1.3 var(--font-body); color: var(--ink); }
.hero__when svg { color: var(--ember); flex: none; }
.hero__sub { font-size: 17px; line-height: 27px; color: var(--ink-muted); max-width: 34rem; }
.hero__sub strong { color: var(--ink); }
.hero__col .btn { margin-top: 6px; }
/* Telemóvel: hero mais baixo, texto a começar por cima dos braços, animação à direita em baixo */
@media (max-width: 899px) {
  .hero__media { height: 270px; }
  .hero__bg { height: 300px; }
  .hero__photo { -webkit-mask-image: linear-gradient(180deg, #000 52%, transparent 96%); mask-image: linear-gradient(180deg, #000 52%, transparent 96%); }
  .hero__col { margin-top: -78px; }
  .hero__bg::after { background: linear-gradient(180deg, rgba(12,9,6,.35) 0%, rgba(12,9,6,0) 22%, rgba(12,9,6,.35) 52%, rgba(12,9,6,.85) 70%, var(--bg) 86%); }
  .hero__when { white-space: nowrap; }
  .hero__glow { width: 360px; height: 360px; top: 48%; }
  .desk { left: calc(50% + 62px); bottom: 104px; scale: .6; }
  .hdrift--3 { top: 118px; width: 44px; height: 44px; }
  .hdrift--4 { top: 150px; }
}
@media (max-width: 380px) { .hero__when { font-size: 15px; gap: 8px; } }
@media (min-width: 900px) {
  .hero { padding-top: 36px; padding-bottom: 72px; }
  .hero__bg { height: auto; bottom: 0; background-position: 62% 38%; }
  .hero__bg::after { background: linear-gradient(90deg, var(--bg) 0%, rgba(12,9,6,.94) 26%, rgba(12,9,6,.55) 48%, rgba(12,9,6,.12) 72%, rgba(12,9,6,.3) 100%), linear-gradient(180deg, rgba(12,9,6,.55) 0%, rgba(12,9,6,0) 22%, rgba(12,9,6,0) 68%, var(--bg) 100%); }
  .hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: 24px; min-height: 640px; }
  .hero__col { order: -1; align-items: flex-start; text-align: left; gap: 18px; padding: 40px 0; }
  .hero__title { font-size: 66px; line-height: .98; }
  .hero__brand { font-size: 34px; }
  .hero__sub { font-size: 19px; line-height: 30px; }
  .hero__media { height: 620px; }
  .hero__glow { width: 700px; height: 700px; top: 50%; }
  .hdrift--1 { width: 112px; height: 112px; left: -40px; top: 70px; }
  .hdrift--2 { width: 80px; height: 80px; right: 0; top: 40px; }
  .hdrift--3 { width: 120px; height: 120px; right: -46px; top: 470px; }
  .hdrift--4 { width: 84px; height: 84px; left: -6px; top: 320px; }
  .desk { left: 361px; bottom: 249px; scale: 1.05; }
}

/* Faixa das ferramentas de IA por baixo do hero (logos oficiais, sem texto) */
.tools { position: relative; z-index: 3; overflow: hidden; background: var(--ticket); margin: 0; -webkit-mask: radial-gradient(circle 6px at 50% 0, #0000 96%, #000) 0 0 / 18px 51% repeat-x, radial-gradient(circle 6px at 50% 100%, #0000 96%, #000) 0 100% / 18px 51% repeat-x; mask: radial-gradient(circle 6px at 50% 0, #0000 96%, #000) 0 0 / 18px 51% repeat-x, radial-gradient(circle 6px at 50% 100%, #0000 96%, #000) 0 100% / 18px 51% repeat-x; }
.tools__in { display: flex; align-items: center; gap: 22px; width: max-content; padding: 18px 0; animation: tools 40s linear infinite; }
.tools__in .chip { width: 40px; height: 40px; background: transparent; box-shadow: none; }
.tools__in .chip img { width: 100%; height: 100%; }
.tools__dash { position: relative; width: 70px; height: 3px; flex: none; background: repeating-linear-gradient(90deg, #8f520a 0 7px, transparent 7px 12px); }
.tools__dash::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; translate: -50% -50%; border-radius: 50%; background: var(--ticket); box-shadow: inset 0 0 0 3px #8f520a; }
@keyframes tools { to { transform: translateX(-50%); } }
@media (min-width: 900px) { .tools__in { gap: 34px; padding: 22px 0; } .tools__in .chip { width: 46px; height: 46px; } .tools__dash { width: 110px; } }

/* A verdade: três post-its de queixa, o novelo, e a rota */
.notes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; margin: 34px auto 10px; max-width: 980px; }
.note { position: relative; margin: 0; background: var(--ticket); color: var(--paper-ink); padding: 26px 22px 22px; border-radius: 4px; box-shadow: var(--shadow-lift); text-align: left; }
.note::before { content: ""; position: absolute; left: 50%; top: -11px; width: 86px; height: 22px; translate: -50% 0; background: rgba(238,157,51,.62); rotate: -3deg; }
.note blockquote { margin: 0; font: 600 20px/1.3 var(--font-display); letter-spacing: -.015em; }
.note__ic { display: flex; gap: 8px; margin-top: 16px; align-items: center; }
.note__ic img, .note__ic svg { width: 28px; height: 28px; }
.note--1 { rotate: -2.5deg; }
.note--2 { rotate: 1.8deg; }
.note--3 { rotate: -1.2deg; }
@media (min-width: 900px) { .notes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 48px; } .note blockquote { font-size: 22px; } .note--2 { translate: 0 18px; } }
.knot { display: block; width: 100%; max-width: 520px; height: auto; margin: 22px auto 18px; }
.knot__scrib { stroke-dasharray: 900; stroke-dashoffset: 900; animation: scrib 7s ease-in-out infinite; }
.knot__route { stroke-dasharray: 300; stroke-dashoffset: 300; animation: route 7s ease-in-out infinite; }
.knot__stop { transform-box: fill-box; transform-origin: center; animation: stop 7s ease-out infinite; }
.knot__stop--2 { animation-delay: .25s; } .knot__stop--3 { animation-delay: .5s; }
.knot__arrow { animation: arrowin 7s ease-in-out infinite; }
@keyframes scrib { 0% { stroke-dashoffset: 900; opacity: 1; } 32%, 84% { stroke-dashoffset: 0; opacity: 1; } 96%, 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes route { 0%, 38% { stroke-dashoffset: 300; } 58%, 92% { stroke-dashoffset: 0; opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes stop { 0%, 52% { transform: scale(0); } 58% { transform: scale(1.3); } 62%, 92% { transform: scale(1); } 100% { transform: scale(0); } }
@keyframes arrowin { 0%, 30% { opacity: 0; } 36%, 92% { opacity: 1; } 100% { opacity: 0; } }
.verdade__close { max-width: 44rem; margin: 0 auto; font-size: 18px; line-height: 29px; color: var(--ink-muted); }
.verdade__close strong { color: var(--ink); }

/* Agenda: duas aulas como bilhetes de transfer, ligados pela rota */
.aulas { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 52px; margin: 54px auto 40px; max-width: 980px; }
.aulas__route { display: none; }
.aula-w { position: relative; }
.aula { --hole: 58%; padding: 30px 24px 26px; overflow: visible; text-align: left; }
.aula__n { position: absolute; right: 18px; bottom: 8px; font: 400 120px/.8 var(--font-punch); color: rgba(23,18,14,.07); pointer-events: none; }
.aula__meta { display: inline-block; font: 700 14px/1 var(--font-body); color: var(--on-ember); background: var(--ember); padding: 7px 10px; border-radius: 3px; rotate: -2deg; margin-bottom: 12px; }
.aula__name { display: block; font: 700 34px/1 var(--font-display); letter-spacing: -.03em; color: var(--paper-ink); margin-bottom: 12px; }
.aula > p { font-size: 17px; line-height: 26px; color: var(--paper-muted); max-width: 30rem; }
.aula .stub h4 { font: 700 21px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ember-ink-paper); margin: 0 0 6px; }
.aula .stub p { font-size: 16px; line-height: 25px; color: var(--paper-muted); }
.aula__deco { position: absolute; z-index: 2; top: -30px; right: 14px; display: flex; gap: 8px; animation: bob 6s ease-in-out infinite alternate; }
.aula__deco .chip:nth-child(1) { rotate: -9deg; } .aula__deco .chip:nth-child(2) { rotate: 7deg; translate: 0 6px; }
.board { position: absolute; z-index: 2; top: -46px; right: 6px; width: 132px; height: 96px; animation: bob 6s ease-in-out -3s infinite alternate; }
.board__table { position: absolute; left: 26px; top: 34px; width: 80px; height: 40px; border-radius: 50%; background: #3a2a1d; box-shadow: inset 0 -6px 0 #2a1d13, 0 12px 24px -10px rgba(0,0,0,.8); }
.board .chip { position: absolute; width: 40px; height: 40px; border-radius: 50%; }
.board .s1 { left: 0; top: 30px; } .board .s2 { left: 46px; top: 0; } .board .s3 { right: 0; top: 30px; }
@media (min-width: 900px) {
  .aulas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; margin-top: 76px; }
  .aulas__route { display: block; position: absolute; left: 0; right: 0; top: -40px; height: 24px; }
  .aula-w:nth-child(2) { rotate: -1.2deg; }
  .aula-w:nth-child(3) { rotate: 1.2deg; translate: 0 22px; }
  .aula__name { font-size: 40px; }
}

/* Faixa de citação: um bloco de brasa, com o novelo a acelerar */
.band { position: relative; overflow: hidden; background: var(--ember); color: var(--on-ember); padding: 56px 0; transform: rotate(-1.4deg); margin: 10px -24px; box-shadow: 0 30px 60px -30px rgba(238,157,51,.6); }
.band__in { position: relative; display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; transform: rotate(1.4deg); }
.band__q { font: 500 34px/1.08 var(--font-display); letter-spacing: -.03em; color: var(--on-ember); margin: 0; max-width: 820px; text-wrap: balance; }
.band__q strong { font-weight: 700; }
.spin { width: 110px; height: 90px; flex: none; overflow: visible; }
.spin__k { transform-origin: 55px 45px; animation: spinf 2.4s cubic-bezier(.5,0,.9,.6) infinite; }
.spin__w { stroke-dasharray: 6 9; animation: wind 1.2s linear infinite; }
@keyframes spinf { from { rotate: 0deg; } to { rotate: 720deg; } }
@keyframes wind { to { stroke-dashoffset: -30; } }
@media (min-width: 900px) { .band { padding: 84px 0; } .band__in { flex-direction: row; justify-content: center; gap: 44px; text-align: left; } .band__q { font-size: 60px; } .spin { width: 160px; height: 130px; } }

/* Para quem */
.who { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; max-width: 1040px; margin: 0 auto; }
.who__yes { padding: 30px 24px 28px; rotate: -1deg; box-shadow: 9px 11px 0 0 var(--ticket-shade), var(--shadow-lift); }
.who__t { font: 700 28px/1.05 var(--font-display); letter-spacing: -.03em; margin: 0 0 22px; }
.who__yes .who__t { color: var(--paper-ink); }
.who__yes .route li { color: var(--paper-ink); }
.who__no { padding: 8px 4px; }
.who__no .who__t { color: var(--ink); }
@media (min-width: 900px) { .who { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 64px; align-items: center; } .who__t { font-size: 36px; } .who__yes { padding: 40px 36px 36px; } }

/* Quem te vai guiar: o Pedro, a carrinha na rota e as ferramentas a pairar */
.about { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; align-items: center; max-width: 1100px; margin: 0 auto; }
.about__media { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--r-md); overflow: hidden; background: var(--surface); box-shadow: 0 30px 70px -30px rgba(0,0,0,.85); }
.routes { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.routes path { fill: none; stroke: #ee9d33; stroke-width: 2.5; stroke-dasharray: 7 9; stroke-linecap: round; opacity: .42; animation: routemove 6s linear infinite; }
.routes path.r2 { opacity: .28; animation-duration: 9s; }
.routes circle { fill: #0c0906; stroke: #ee9d33; stroke-width: 3; opacity: .7; }
.routes circle.on { fill: #ee9d33; }
@keyframes routemove { to { stroke-dashoffset: -64; } }
.about__photo { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 0%; }
.van { position: absolute; z-index: 3; left: 0; right: 0; bottom: 14px; height: 30px; }
.van__road { position: absolute; left: 6%; right: 6%; top: 22px; height: 4px; background: repeating-linear-gradient(90deg, var(--ember) 0 10px, transparent 10px 18px); opacity: .9; }
.van__car { position: absolute; left: 6%; top: 0; width: 46px; height: 26px; color: var(--ember); animation: drive 8s ease-in-out infinite; }
@keyframes drive { 0% { left: 4%; } 48%, 52% { left: calc(94% - 46px); } 100% { left: 4%; } }
.van__car--back { transform: scaleX(-1); }
.drift { position: absolute; z-index: 2; translate: -50% -50%; }
.drift .chip { width: 40px; height: 40px; border-radius: 50%; box-shadow: 0 0 0 4px #120e0a, 0 0 0 7px var(--ember), 0 12px 24px -10px rgba(0,0,0,.8); }
.drift--1 { left: 22.5%; top: 23.6%; }
.drift--2 { left: 79.5%; top: 15.6%; }
.drift--3 { left: 78%; top: 51.6%; }
.about__txt { display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center; }
.about__txt p { color: var(--ink-muted); }
.about__txt p strong { color: var(--ink); }
.about__txt .btn { margin-top: 8px; }
.zero { font: 400 1.08em/1 var(--font-punch); text-transform: uppercase; letter-spacing: .01em; color: var(--ember); }
@media (min-width: 900px) {
  .about { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; }
  .about__media { aspect-ratio: 4 / 5; }
  .about__photo { object-position: 46% 30%; }
  .drift .chip { width: 56px; height: 56px; }
  .about__txt { align-items: flex-start; text-align: left; }
}

/* Bilhetes */
.tix-sec { position: relative; isolation: isolate; }
.tix-sec .lamp { width: 900px; height: 700px; left: 50%; top: 40%; translate: -50% -50%; }
.tix { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; margin: 36px auto 0; max-width: 940px; align-items: stretch; }
.tk { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding: 30px 22px 26px; border-radius: var(--r-md); }
.tk--free { --hole: 47%; }
.tk__name { font: 700 18px/1.2 var(--font-display); letter-spacing: -.01em; }
.tk__price { font: 400 72px/.9 var(--font-punch); color: var(--paper-ink); }
.tk__lead { font-size: 16px; line-height: 25px; }
.tk__cut { align-self: stretch; height: 0; border-top: 2px dashed #cdbfae; margin: 4px -22px; }
.tk .route { align-self: center; flex: 0 0 auto; }
.tk .btn { margin-top: auto; }
.tk__cut + .route { margin-bottom: 8px; }
.tk .route li { font-size: 16px; line-height: 23px; }
.tk--free .route li { color: var(--paper-ink); }
.tk--vip { background: radial-gradient(80% 60% at 100% 0, rgba(233,196,106,.22), transparent 70%), linear-gradient(180deg, #1f1a10, #14110b 70%); box-shadow: inset 0 0 0 2px rgba(233,196,106,.65), 0 30px 70px -26px rgba(0,0,0,.85), 0 0 60px rgba(233,196,106,.12); padding-top: 58px; }
.tk--vip .tk__cut { border-top-color: rgba(233,196,106,.38); }
.tk--vip .tk__lead { color: var(--ink-muted); }
.tk--vip .route li { color: var(--ink); }
.goldt { background: linear-gradient(180deg, var(--gold-1) 0%, var(--gold-2) 45%, var(--gold-3) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tk__ribbon { position: absolute; top: 0; left: 50%; translate: -50% 0; padding: 9px 16px 8px; border-radius: 0 0 8px 8px; font: 700 14px/1 var(--font-display); color: var(--gold-ink); background: linear-gradient(135deg, #7a5410 0%, var(--gold-2) 28%, var(--gold-1) 46%, #d9a531 64%, #8a6014 100%); box-shadow: 0 10px 24px -10px rgba(233,196,106,.7); }
.tk__vipprice { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.tk__vipprice small { font: 500 15px/20px var(--font-body); color: var(--ink-muted); }
.tk__vipprice s { text-decoration-thickness: 2px; text-decoration-color: var(--ember-burnt); }
.tk__now { font: 400 72px/.9 var(--font-punch); text-transform: uppercase; }
.tk__note { font-size: 14px; line-height: 20px; color: var(--ink-muted); margin-top: -4px; }
.count { margin-top: 44px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.count__l { font: 700 17px/1 var(--font-display); color: var(--ink); }
@media (min-width: 900px) { .tix { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; } .tk--free { rotate: -1deg; } .tk--vip { translate: 0 -12px; } }

/* Pop-up do formulário: talão com cabeçalho de brasa */
.modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 16px; overflow-y: auto; background: rgba(12,9,6,.86); }
.modal__card { position: relative; width: 100%; max-width: 480px; margin: auto 0; background: var(--surface-2); border-radius: var(--r-md); overflow: hidden; box-shadow: 0 40px 90px -30px #000; }
.modal__hd { background: var(--ember); color: var(--on-ember); padding: 22px 64px 20px 22px; }
.modal__t { font: 700 26px/1.08 var(--font-display); letter-spacing: -.03em; color: var(--on-ember); margin: 0; }
.modal__bd { padding: 22px 20px 24px; }
.modal__x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--on-ember); color: var(--ember); font: 400 26px/1 var(--font-body); cursor: pointer; }
@media (min-width: 900px) { .modal { align-items: center; } .modal__bd { padding: 26px 30px 28px; } .modal__hd { padding: 26px 70px 24px 30px; } }

.nw { white-space: nowrap; }
/* Telemóvel: menos espaço entre secções */
@media (max-width: 899px) { .sec { padding: 52px 0; } .hero { padding-top: 12px; } }
@media (min-width: 900px) { .sec { padding: 88px 0; } }
.wa-float { position: fixed; z-index: 60; right: 16px; bottom: 16px; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #1fa855; box-shadow: 0 10px 26px -6px rgba(0,0,0,.6), 0 0 0 3px rgba(31,168,85,.25); transition: transform .2s ease; }
.wa-float:hover { transform: scale(1.06); }
.wa-float::before { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0 rgba(31,168,85,.55); animation: waPulse 2.6s ease-out infinite; }
.wa-float svg { width: 30px; height: 30px; }
@keyframes waPulse { 0% { box-shadow: 0 0 0 0 rgba(31,168,85,.55); } 70%, 100% { box-shadow: 0 0 0 16px rgba(31,168,85,0); } }
@media (min-width: 900px) { .wa-float { right: 28px; bottom: 28px; width: 62px; height: 62px; } .wa-float svg { width: 34px; height: 34px; } }
@media (prefers-reduced-motion: reduce) { .wa-float::before { animation: none; } }
.topbar { position: sticky; top: 0; z-index: 50; background: rgba(12,9,6,.86); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(238,157,51,.22); }
.topbar__in { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; }
.topbar__name { display: flex; align-items: baseline; gap: 14px; min-width: 0; font: 700 15px/1.15 var(--font-display); letter-spacing: -.01em; color: var(--ember); }
.topbar__when { display: none; font: 500 14px/1 var(--font-body); color: var(--ink-muted); white-space: nowrap; }
.topbar__btn { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 6px; background: var(--ember); color: var(--on-ember); font: 700 14px/1 var(--font-display); text-decoration: none; white-space: nowrap; box-shadow: 0 6px 18px -8px rgba(238,157,51,.8); transition: transform .2s ease; }
.topbar__btn:hover { transform: translateY(-1px); }
@media (min-width: 900px) { .topbar__in { min-height: 60px; } .topbar__name { font-size: 18px; } .topbar__when { display: inline; } .topbar__btn { padding: 11px 18px; font-size: 15px; } }
