:root {
  --black: #050608;
  --ink: #FFFFFF;
  --white: #FFFFFF;
  --muted: #A8ADB7;
  --line: rgba(168, 173, 183, .28);
  --soft: #15171C;
  --electric-blue: #0866F5;
  --navy: #15171C;
  --silver: #A8ADB7;
  --steel-blue: #1685FF;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; background: var(--white); color: var(--ink); font-family: 'DM Sans', sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.wrap { width: min(1280px, 100%); margin: auto; padding: 0 48px; }
[id] { scroll-margin-top: 86px; }
h1, h2, h3 { font-family: 'Barlow Condensed', sans-serif; font-weight: 600; line-height: .9; letter-spacing: 0; }
h1 em, h2 em { color: var(--muted); font-style: normal; }
h2 { font-size: clamp(64px, 9vw, 144px); }
.kicker { display: inline-flex; align-items: center; gap: 0; color: #999; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.kicker::before { display: none; content: none; }
.kicker.dark { color: #777; }
.section { position: relative; overflow: hidden; padding: 110px 0; }
.section::before { position: absolute; top: 24px; right: 48px; width: 7px; height: 7px; background: var(--ink); content: ''; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1s cubic-bezier(.19, 1, .22, 1); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Efeitos de entrada ---------- */
@keyframes fadeUp { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes lineGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes heroSquareDrift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(12px); } }
/* Letras do tÃ­tulo entram uma a uma (hero) */
.hero h1 > span .char, .hero h1 em .char { display: inline-block; opacity: 0; transform: translateY(115%) rotate(6deg); animation: charIn 1.65s cubic-bezier(.19, 1, .22, 1) forwards; }
@keyframes charIn { to { opacity: 1; transform: none; } }
/* As linhas precisam de overflow para o reveal de cada letra */
.hero h1 em, .hero h1 > span { display: block; overflow: hidden; }
.hero h1 em { padding-bottom: .06em; }

.hero-copy { opacity: 0; animation: fadeUp 1.4s ease forwards; }
.hero-copy { animation-delay: .95s; }
.hero-square { animation: heroSquareDrift 5s ease-in-out infinite 1s; }

/* TÃ­tulos com reveal por linha (aplicado via JS) */
.line-mask { display: block; overflow: hidden; }
.line-mask > span { display: block; transform: translateY(105%); transition: transform 1s cubic-bezier(.19, 1, .22, 1); }
.line-mask.in > span { transform: none; }

/* Imagens com zoom-out na entrada */
.reveal img { transform: scale(1.08); transition: transform 1s cubic-bezier(.19, 1, .22, 1), filter .4s; }
.reveal.in img { transform: scale(1); }
.history-photo.in:hover img, .reveal.in .project:hover img, .reveal.in .team-card:hover img { transform: scale(1.04); }

/* O reveal vive na img; o <figure> mantÃ©m seu posicionamento (inclusive o deslocamento das pares) */
#historia .history-photo.reveal, .about-gallery .history-photo.reveal { opacity: 1; }
.history-photo img { opacity: 0; transition: opacity .8s ease, transform 1s cubic-bezier(.19, 1, .22, 1), filter .4s; }
.history-photo.in img { opacity: 1; }
#historia .history-photo:nth-child(2) img { transition-delay: .12s; }
#historia .history-photo:nth-child(3) img { transition-delay: .24s; }
.about-gallery .history-photo:nth-child(2) img { transition-delay: .12s; }
.about-gallery .history-photo:nth-child(3) img { transition-delay: .24s; }

/* Linhas da timeline entram em sequÃªncia */
.timeline article { opacity: 0; transform: translateX(18px); transition: opacity 1s ease, transform 1s cubic-bezier(.19, 1, .22, 1); }
.timeline article.in { opacity: 1; transform: none; transition-delay: calc(var(--i, 0) * 90ms); }

/* Atraso em cascata dentro de grades */
.team-grid .team-card.in { transition-delay: calc(var(--i, 0) * 70ms); }
.project-grid .project.in { transition-delay: calc(var(--i, 0) * 120ms); }
.audience-grid.in { transition-delay: .05s; }

/* BotÃµes e links com brilho suave no hover */
.header-cta, .section-cta, .mobile-cta { position: relative; overflow: hidden; }
.header-cta::after, .section-cta::after { position: absolute; inset: 0; background: rgba(255,255,255,.14); transform: translateY(101%); transition: transform .35s ease; content: ''; }
.header-cta:hover::after, .section-cta:hover::after { transform: none; }
.section-cta { transition: border-color .3s, color .3s; }
.section-cta:hover { border-color: var(--white); }

h1 em, h2 em { color: var(--electric-blue); text-shadow: 0 0 18px rgba(8, 102, 245, .18); }
.hero h1 em { text-shadow: 0 0 24px rgba(8, 102, 245, .28); }
.about-copy strong, .paid-traffic-copy strong { color: var(--electric-blue); }
@media (prefers-reduced-motion: reduce) {
  .hero h1 .char, .hero-copy, .hero-square { animation: none; opacity: 1; transform: none; }
  .line-mask > span { transition: none; transform: none; }
  .reveal, .reveal img { transition: none; }
}

header { position: fixed; z-index: 20; top: 0; right: 0; left: 0; border-bottom: 1px solid rgba(255,255,255,.2); background: transparent; transition: background .3s, backdrop-filter .3s; }
header.scrolled { background: rgba(8,9,13,.94); backdrop-filter: blur(12px); }
.header-inner { display: flex; align-items: center; justify-content: space-between; width: min(1380px, 100%); height: 84px; margin: auto; padding: 0 48px; }
.logo-mark { width: 53px; height: 53px; object-fit: cover; }
header .logo-mark, .footer-brand img { filter: brightness(0) invert(1); }
.navlinks { display: flex; gap: 14px; }
.navlink, .header-cta { color: var(--white); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.navlink { position: relative; border: 0; background: transparent; cursor: pointer; font-family: inherit; }
.navlink::after { position: absolute; right: 100%; bottom: -8px; left: 0; height: 1px; background: var(--white); content: ''; transition: right .25s; }
.navlink:hover::after, .nav-group:focus-within > .navlink::after { right: 0; }
.navlink span { margin-left: 5px; color: var(--electric-blue); font-size: 13px; transition: transform .3s; }
.nav-group { position: relative; }
.nav-group:focus-within .navlink span { transform: rotate(45deg); }
.nav-dropdown { position: absolute; top: calc(100% + 22px); left: -18px; display: grid; min-width: 190px; border-top: 1px solid var(--electric-blue); background: rgba(8, 9, 13, .97); box-shadow: 0 18px 34px rgba(0,0,0,.2); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .35s ease, transform .35s ease; }
.nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown { opacity: 1; pointer-events: auto; transform: none; }
.nav-dropdown a { padding: 13px 18px; color: #d8d8d4; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; transition: background .25s, color .25s; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { background: #202b38; color: var(--electric-blue); }
.header-cta { border: 1px solid rgba(255,255,255,.45); padding: 13px 16px; }
.header-cta span, .contact-link span { margin-left: 10px; font-size: 16px; }
.hamburger { display: none; border: 0; background: none; padding: 8px; }
.hamburger span { display: block; width: 25px; height: 1px; margin: 6px; background: var(--white); }
.mobile-menu { display: none; }

.hero { position: relative; display: flex; align-items: center; min-height: 650px; height: 100svh; overflow: hidden; background: var(--black) url("fundo/hero-background-web.jpg") center / cover no-repeat; color: var(--white); }
.hero-content { position: relative; z-index: 2; width: min(1380px, 100%); margin: auto; padding: 100px 48px 70px; }
.hero h1 { position: relative; z-index: 2; max-width: 950px; margin: 34px 0 42px; font: 600 clamp(64px, 9vw, 132px)/.88 'Cormorant Garamond', serif; letter-spacing: .025em; }
.hero h1 > span, .hero h1 em { display: block; position: relative; z-index: 2; }
.hero h1 > span:nth-child(2) { margin-left: 13vw; }
.hero-copy { position: relative; z-index: 2; max-width: 300px; margin-left: 51vw; color: #bdbdb8; font-size: 16px; line-height: 1.6; }
.hero-grid-line { position: absolute; top: 0; left: 12%; height: 100%; border-left: 1px solid #252525; }
.hero-square { position: absolute; z-index: 1; top: 24%; right: 11%; width: 10px; height: 10px; background: var(--white); }
.hero-ribbon-svg { display: none; }
.hero h1 em, .hero h1 em .char { text-shadow: none !important; filter: none !important; }
.hero-ribbon-body { fill: url(#heroRibbonGradient); filter: url(#heroRibbonGlow); opacity: .96; }
.hero-ribbon-curve { fill: none; stroke: rgba(144, 205, 255, .9); stroke-width: 18; stroke-linecap: round; opacity: .85; }
.hero-ribbon-highlight { fill: none; stroke: url(#heroRibbonShine); stroke-width: 12; stroke-linecap: round; opacity: .9; }

@keyframes ribbon-flow {
  0% { transform: translateX(-3%) scaleX(.98) rotate(-1.5deg); }
  50% { transform: translateX(2%) scaleX(1.02) rotate(.5deg); }
  100% { transform: translateX(4%) scaleX(1.06) rotate(-1deg); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-ribbon-svg { animation: none; }
}

.section-intro, .section-head { display: flex; align-items: end; justify-content: space-between; gap: 45px; }
.section-intro { margin-bottom: 56px; }
.section-intro h2, .section-head h2 { margin-top: 24px; }
.intro-copy, .section-head > p { max-width: 350px; color: #6f6f6b; font-size: 15px; line-height: 1.6; }
.intro-copy { align-self: end; }
.intro-hint { display: inline-block; margin-top: 18px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.service-list { border-top: 1px solid var(--line); }
.service-row { border-bottom: 1px solid var(--line); padding: 22px 0; transition: background .3s, padding .3s; }
.service-row:hover { background: rgba(8,102,245,.08); padding-left: 18px; }
.service-row summary { display: grid; grid-template-columns: 1fr 30px; align-items: center; gap: 30px; cursor: pointer; list-style: none; }
.service-row summary::-webkit-details-marker { display: none; }
.service-number { color: #888; font: 500 20px 'Barlow Condensed'; }
.service-row h3 { font-size: clamp(32px, 4vw, 58px); }
.row-mark { color: #888; font-size: 25px; transition: transform .3s; }
.service-row[open] .row-mark { transform: rotate(45deg); }
.service-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; padding: 28px 60px 10px 110px; color: #666; font-size: 14px; line-height: 1.65; }
.service-detail ul { border-left: 1px solid #bbb; padding-left: 24px; list-style: none; }
.service-detail li { margin-bottom: 8px; }
.service-detail li::before { color: #999; content: 'â€¢ '; }
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 42px; background: #aaa; }
.audience-grid > div { background: var(--soft); padding: 22px; }
.audience-grid span { font: 500 25px 'Barlow Condensed'; text-transform: uppercase; }
.audience-grid p { margin-top: 10px; color: #70706c; font-size: 13px; line-height: 1.5; }

.editorial-traffic { background: #050505; padding: 128px 0 120px; }
.traffic-editorial { display: grid; gap: 28px; }
.traffic-moment { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 46px; align-items: end; padding: 34px 0 36px; border-top: 1px solid rgba(255,255,255,.14); }
.traffic-moment:first-child { border-top: 0; padding-top: 0; }
.traffic-kicker { margin-bottom: 16px; color: #a5a5a5; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }
.traffic-moment h2 { margin: 0; color: #f5f5f5; font-family: 'Cormorant Garamond', serif; font-size: clamp(56px, 4.8vw, 140px); line-height: .82; letter-spacing: -.04em; }
.traffic-moment h2 span { display: block; color: #f5f5f5; }
.traffic-moment h2 em { color: #087BFF; font-style: normal; }
.traffic-moment h2 .blue-word { color: #087BFF; }
.moment-text, .moment-aside { max-width: 520px; justify-self: end; }
.moment-text p, .moment-aside p { color: #d9d9d9; font-size: 17px; line-height: 1.7; }
.moment-text p + p, .moment-aside p + p { margin-top: 16px; }
.moment-aside { display: grid; gap: 20px; }
.moment-list { display: grid; grid-template-columns: repeat(2, minmax(160px, 1fr)); gap: 16px 26px; list-style: none; }
.moment-list li { border-top: 1px solid rgba(255,255,255,.16); padding-top: 10px; color: #f5f5f5; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.moment-list li strong { color: #087BFF; font-weight: 600; }
.compact-list { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
.traffic-objective .moment-copy,
.traffic-segmentation .moment-copy,
.traffic-monitoring .moment-copy { order: 2; }
.traffic-objective .moment-aside,
.traffic-segmentation .moment-aside,
.traffic-monitoring .moment-aside { order: 1; justify-self: start; }
@media (max-width: 900px) {
  .traffic-moment { grid-template-columns: 1fr; gap: 22px; }
  .moment-text, .moment-aside { justify-self: start; max-width: none; }
  .traffic-objective .moment-copy,
  .traffic-segmentation .moment-copy,
  .traffic-monitoring .moment-copy,
  .traffic-objective .moment-aside,
  .traffic-segmentation .moment-aside,
  .traffic-monitoring .moment-aside { order: initial; }
}
@media (max-width: 560px) {
  .editorial-traffic { padding-top: 96px; padding-bottom: 92px; }
  .traffic-moment h2 { font-size: clamp(46px, 12vw, 86px); }
  .moment-list { grid-template-columns: 1fr; }
  .compact-list { grid-template-columns: 1fr; }
  .moment-text p, .moment-aside p { font-size: 15px; }
}

.legal, .musical-production, .projects, .contact { background: var(--black); color: var(--white); }
.legal::before, .projects::before, .contact::before { background: var(--white); }
.legal-layout, .musical-production-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: 65px; align-items: start; }
.legal-intro { min-width: 0; }
.legal-intro h2 { margin: 25px 0 30px; }
.legal-intro > p:last-of-type, .musical-intro > p:last-of-type { max-width: 340px; color: #aaa; font-size: 15px; line-height: 1.6; }
.section-cta { display: inline-block; margin-top: 32px; border-bottom: 1px solid #777; padding-bottom: 12px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.section-cta span { margin-left: 12px; font-size: 16px; }
.legal-overview { max-width: 580px; padding-top: 18px; }
.legal-overview p { margin-bottom: 18px; color: #aaa; font-size: 17px; line-height: 1.7; }
.legal-person { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(280px, .75fr) 1.25fr; gap: 48px; align-items: start; }
.legal-photo-slot { position: relative; overflow: hidden; aspect-ratio: 3 / 4; background: #242424; }
.legal-photo-slot { display: grid; place-items: center; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.legal-photo-slot img { width: 100%; height: 100%; object-fit: cover; display: block; filter: grayscale(1); transition: filter .4s, transform .5s; }
.legal-photo-slot:hover img { filter: grayscale(0); transform: scale(1.03); }
.legal-photo-slot span { position: absolute; right: 14px; bottom: 14px; left: 14px; color: var(--white); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.legal-person-top, .musical-copy-top { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.legal-index { color: #888; font: 500 20px 'Barlow Condensed'; }
.legal-badge { color: #999; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.legal-copy { min-width: 0; }
.legal-person h3, .musical-copy h3 { margin: 25px 0 6px; font-size: 38px; }
.legal-copy > span:not(.legal-badge) { color: #aaa; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.legal-copy > span b { margin-left: 12px; color: var(--white); }
.legal-copy p { margin-bottom: 18px; color: #aaa; font-size: 15px; line-height: 1.65; }
.legal-services { grid-column: 1 / -1; border-top: 1px solid #4b4b4b; padding-top: 18px; }
.service-section-heading { margin-bottom: 28px; }
.service-section-heading .kicker { margin-bottom: 18px; }
.service-section-heading h3 { font-size: 38px; }
.service-section-heading h3 em { color: #777; font-style: normal; }
.legal-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 34px; }
.legal-service { border-top: 1px solid #353535; padding: 18px 0 20px; }
.legal-service:last-child { grid-column: 1 / -1; }
.legal-service h4 { margin-bottom: 9px; color: var(--white); font: 500 22px/1 'Barlow Condensed'; text-transform: uppercase; }
.legal-service p { color: #aaa; font-size: 13px; line-height: 1.6; }
.legal-closing { grid-column: 1 / -1; border-top: 1px solid #4b4b4b; padding-top: 24px; color: #ddd; font: 500 25px/1.15 'Barlow Condensed'; text-transform: uppercase; }
.musical-feature { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(280px, .75fr) 1.25fr; gap: 48px; align-items: start; }
.musical-overview { max-width: 580px; padding-top: 18px; }
.musical-overview p { margin-bottom: 18px; color: #aaa; font-size: 17px; line-height: 1.7; }
.musical-services { grid-column: 1 / -1; border-top: 1px solid #4b4b4b; padding-top: 18px; }
.musical-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 34px; margin-top: 28px; }
.musical-service { border-top: 1px solid #353535; padding: 18px 0 20px; }
.musical-service:last-child { grid-column: 1 / -1; }
.musical-service h4 { margin-bottom: 9px; color: var(--white); font: 500 22px/1 'Barlow Condensed'; text-transform: uppercase; }
.musical-service p { color: #aaa; font-size: 13px; line-height: 1.6; }
.musical-portrait { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #242424; }
.musical-portrait img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .4s, transform .5s; }
.musical-portrait:hover img { filter: grayscale(0); transform: scale(1.03); }
.musical-portrait span { position: absolute; right: 14px; bottom: 14px; left: 14px; color: var(--white); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.musical-copy { min-width: 0; }
.musical-copy h3 { margin-left: 0; }
.musical-copy p { margin-bottom: 18px; color: #aaa; font-size: 15px; line-height: 1.65; }
.musical-tags, .founder-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.musical-tags span, .founder-tags span { border: 1px solid #555; padding: 8px 10px; color: #aaa; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }

.about, .team, .partners { background: var(--soft); }
.about-layout, .founder-layout, .history-layout, .contact-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(48px, 6vw, 84px); }
.about-copy { max-width: 460px; padding-top: 40px; }
.about-copy p, .team-card p, .timeline p { margin-bottom: 18px; color: #60605b; font-size: 15px; line-height: 1.7; }
.about-copy .lead { color: var(--ink); font: 500 34px/1.1 'Barlow Condensed'; text-transform: uppercase; }
.about-fact, .founder-stat { display: flex; justify-content: space-between; border-top: 1px solid #aaa; padding-top: 18px; }
.about-fact { margin-top: 48px; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.about-fact strong { font: 500 22px 'Barlow Condensed'; }
.history { background: var(--navy); color: var(--white); }
.history h2 { margin-top: 20px; font-size: clamp(72px, 8vw, 120px); }
.timeline { border-top: 1px solid #aaa; }
.timeline article { display: grid; grid-template-columns: 1fr; gap: 25px; border-bottom: 1px solid #aaa; padding: 22px 0; }
.timeline article > span { color: #777; font: 500 26px 'Barlow Condensed'; }
.timeline h3 { margin-bottom: 12px; font-size: 40px; }

/* Galeria de fotos: seÃ§Ã£o HistÃ³ria (fotos espalhadas, mesmo estilo grayscale do site) */
.history-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; padding-bottom: 20px; }
.history-photo { position: relative; overflow: hidden; width: 100%; margin: 0; background: #242424; border-radius: 2px; }
.history-photo:nth-child(even) { transform: translateY(72px); }
.history-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .4s, transform .5s; }
.history-photo:hover img { filter: grayscale(0); transform: scale(1.03); }
@media (max-width: 560px) {
  .history-gallery { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; padding-bottom: 18px; }
  .history-photo { width: 100%; margin: 0; }
  .history-photo:nth-child(even) { transform: translateX(16px); width: calc(100% - 16px); }
}

#historia .history-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: 20px 24px;
  margin-top: 26px;
  padding-bottom: 0;
}
#historia .history-photo {
  aspect-ratio: auto;
  border-radius: 7px;
  min-height: 0;
}
/* Foto 1: retrato 4:5, ocupa a coluna esquerda */
#historia .history-photo:nth-child(1) {
  grid-column: 1;
  grid-row: 1 / span 2;
  aspect-ratio: 4 / 5;
  transform: none;
}
/* Foto 2: quadrada, alinhada ao topo da coluna direita */
#historia .history-photo:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
  aspect-ratio: 1 / 1;
  transform: none;
}
/* Foto 3: retrato 4:5, abaixo da foto 2 */
#historia .history-photo:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
  aspect-ratio: 4 / 5;
  transform: none;
}
#historia .history-photo:nth-child(1) img { object-position: center 22%; }
#historia .history-photo:nth-child(2) img { object-position: center 30%; }
#historia .history-photo:nth-child(3) img { object-position: center 18%; }

.photo-1 { aspect-ratio: 4 / 5; }
.photo-2 { aspect-ratio: 1 / 1; }
.photo-3 { aspect-ratio: 3 / 4; }
.photo-4 { aspect-ratio: 4 / 3; }
.photo-5 { aspect-ratio: 1 / 1; }
.photo-6 { aspect-ratio: 5 / 4; }
.founder { background: var(--white); }
.founder-layout { align-items: center; }
.founder-image { position: relative; min-height: 650px; background: #252525; }
.founder-image img { width: 100%; height: 100%; min-height: 650px; object-fit: cover; filter: grayscale(1); }
.founder-image span { position: absolute; bottom: 20px; left: 20px; color: var(--white); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.founder-copy { max-width: 480px; }
.founder-copy h2 { margin: 28px 0 35px; font-size: clamp(72px, 8vw, 120px); }
.founder-copy .role { margin-bottom: 28px; font: 500 22px/1.1 'Barlow Condensed'; text-transform: uppercase; }
.founder-stat { align-items: center; justify-content: flex-start; gap: 16px; margin-top: 35px; }
.founder-stat strong { font: 600 74px/.8 'Barlow Condensed'; }
.founder-stat span { color: #777; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 45px 18px; margin-top: 46px; }
.team-card img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: cover; filter: grayscale(1); transition: filter .4s, transform .4s; }
.team-card:hover img { filter: grayscale(0); transform: translateY(-5px); }
.team-card h3 { margin: 17px 0 5px; font-size: 30px; }
.team-card > span { color: #777; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.team-card p { margin-top: 12px; font-size: 13px; }

.project-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 18px; margin-top: 46px; }
.project { position: relative; display: block; min-height: 320px; overflow: hidden; background: #242424; }
.project img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); transition: filter .7s, transform .7s; }
.project:hover img { filter: grayscale(0); transform: scale(1.04); }
.project::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.7), transparent 55%); content: ''; }
.project-large { height: 620px; }.project-small { height: 430px; margin-top: 95px; }.project-wide { grid-column: 1 / -1; height: 300px; }
.project-index, .project-label { position: absolute; z-index: 1; }.project-index { top: 20px; left: 20px; font: 24px 'Barlow Condensed'; }.project-label { right: 20px; bottom: 20px; left: 20px; font: 26px 'Barlow Condensed'; text-transform: uppercase; }.project-label b { float: right; font: 18px 'DM Sans'; }
.project-note { margin-top: 24px; color: #888; font-size: 12px; }.project-note a { color: var(--white); text-decoration: underline; }
.partners-line { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 75px; border-top: 1px solid #aaa; border-bottom: 1px solid #aaa; padding: 18px 0; }
.partner-card { display: flex; min-height: 190px; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--line); padding: 24px 28px; transition: background .3s, border-color .3s, transform .3s; }
.partner-card:hover { border-color: var(--electric-blue); background: rgba(8,102,245,.08); transform: translateY(-4px); }
.partner-card img { width: 150px; height: 100px; object-fit: contain; filter: grayscale(1); transition: filter .3s, transform .3s; }
.partner-card:hover img { filter: grayscale(0); transform: scale(1.04); }
.partner-card span { color: #777; font: 24px 'Barlow Condensed'; text-align: right; text-transform: uppercase; }
.partner-card span b { margin-left: 8px; color: var(--electric-blue); font: 18px 'DM Sans'; }
.contact-layout { align-items: end; }.contact h2 { margin: 28px 0 30px; }.contact-layout > div:first-child > p:last-child { color: #aaa; }.contact-callout { display: grid; gap: 22px; }
.contact h2 { max-width: 11ch; font-size: clamp(48px, 7vw, 88px); line-height: .94; text-wrap: balance; }
.contact-callout > p { max-width: 42ch; margin: 0; color: #c7c7c7; line-height: 1.65; }
.contact-links { display: flex; flex-wrap: wrap; gap: 12px; }
.contact-links .header-cta { display: inline-flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.02); }
.contact-actions { border-top: 1px solid #444; }.contact-link { display: flex; justify-content: space-between; border-bottom: 1px solid #444; padding: 25px 0; color: #ddd; font: 26px 'Barlow Condensed'; text-transform: uppercase; transition: color .3s, padding .3s; }.contact-link:hover { padding-left: 15px; color: var(--white); }
.contact-form { display: grid; gap: 22px; padding: 28px 26px 24px; border: 1px solid rgba(255,255,255,.08); background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)); box-shadow: 0 24px 60px rgba(0,0,0,.18); border-radius: 20px; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.field-row.single { grid-template-columns: 1fr; }
.contact-form label { display: grid; gap: 10px; color: var(--silver); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(255,255,255,.02); color: var(--white); padding: 15px 16px; font: inherit; outline: none; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #8d8c88; }
.select-wrap { position: relative; display: block; }
.select-wrap::after { position: absolute; top: 50%; right: 18px; transform: translateY(-50%) rotate(45deg); width: 8px; height: 8px; border-right: 1.5px solid var(--silver); border-bottom: 1.5px solid var(--silver); content: ''; pointer-events: none; }
.contact-form select { appearance: none; -webkit-appearance: none; -moz-appearance: none; padding-right: 42px; color: var(--silver); }
.contact-form select option { background: #171717; color: var(--white); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: rgba(8,102,245,.92); background: rgba(255,255,255,.04); box-shadow: 0 0 0 4px rgba(8,102,245,.12); }
.contact-form textarea { min-height: 140px; resize: vertical; }
.form-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 8px; }
.contact-form button { border: 0; border-radius: 999px; background: var(--electric-blue); color: var(--white); padding: 15px 24px; font: 600 11px 'DM Sans'; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.contact-form button:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(255,255,255,.12); }
.form-status { min-height: 18px; color: #c7c5bf; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
footer { border-top: 1px solid #333; background: var(--black); color: var(--white); padding: 35px 0; }.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 22px; }.footer-brand { display: flex; align-items: center; gap: 12px; font: 500 18px/.8 'Barlow Condensed'; letter-spacing: .06em; }.footer-brand img { filter: grayscale(1); }.footer-links { display: flex; gap: 25px; color: #aaa; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }.footer-inner > p { color: #777; font-size: 10px; }.wa-float { position: fixed; z-index: 10; right: 24px; bottom: 24px; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--white); color: var(--black); font-size: 22px; }

@media (max-width: 900px) {
  .wrap { padding: 0 28px; }
  .header-inner { padding: 0 28px; }
  .navlinks, .header-right > .header-cta { display: none; }
  .contact-links .header-cta { display: inline-flex !important; }
  .hamburger { display: block; }
  .mobile-menu { position: fixed; inset: 0; z-index: 21; display: flex; flex-direction: column; justify-content: flex-start; overflow-y: auto; transform: translateY(-100%); background: var(--black); padding: 86px 40px 40px; transition: transform .4s; }
  .mobile-menu.open { transform: none; }
  .mobile-menu a, .mobile-nav-group summary { flex: 0 0 auto; border-bottom: 1px solid #333; padding: 13px 0; color: var(--white); font: 500 48px 'Barlow Condensed'; text-transform: uppercase; }
  .mobile-nav-group { border-bottom: 1px solid #333; }
  .mobile-nav-group summary { display: flex; justify-content: space-between; cursor: pointer; list-style: none; }
  .mobile-nav-group summary::-webkit-details-marker { display: none; }
  .mobile-nav-group summary span { color: var(--electric-blue); font: 400 28px 'DM Sans'; transition: transform .3s; }
  .mobile-nav-group[open] summary span { transform: rotate(45deg); }
  .mobile-nav-group a { display: block; border-bottom: 0; padding: 8px 0 8px 18px; color: #aaa; font-size: 29px; }
  .mobile-menu .close-btn { position: absolute; top: 23px; right: 28px; border: 0; background: none; color: var(--white); font-size: 38px; }
  .mobile-menu .mobile-cta { width: max-content; margin-top: 30px; border: 1px solid #555; padding: 16px; font: 600 12px 'DM Sans'; letter-spacing: .18em; }

  .hero { min-height: 620px; }
  .hero-content { padding: 100px 28px 70px; }
  .hero h1 { font-size: clamp(58px, 9vw, 90px); }
  .hero h1 > span:nth-child(2) { margin-left: 10vw; }
  .hero-copy { margin-left: 32vw; }

  .section { padding: 105px 0; }
  .section-intro, .about-layout, .founder-layout, .history-layout, .contact-layout { grid-template-columns: 1fr; gap: 45px; }
  .about-copy { padding-top: 0; }
  .legal-layout, .musical-production-layout { grid-template-columns: 1fr; gap: 50px; }
  .legal-person { grid-template-columns: 1fr; }
  .legal-photo-slot { max-width: 420px; }
  .legal-services { grid-column: auto; }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: 1fr; }
  .project-small { margin-top: 0; }
  .project-wide { grid-column: auto; }
  .musical-feature { grid-template-columns: 1fr; }
  .musical-portrait { max-width: 420px; }
  .footer-inner { flex-wrap: wrap; }
  .history-gallery { margin-top: 36px; }

  #historia .history-gallery { grid-template-columns: 1fr 1fr; gap: 18px; }
  #historia .history-photo:nth-child(1) { grid-column: 1; grid-row: 1 / span 2; aspect-ratio: 4 / 5; }
  #historia .history-photo:nth-child(2) { grid-column: 2; grid-row: 1; aspect-ratio: 1 / 1; }
  #historia .history-photo:nth-child(3) { grid-column: 2; grid-row: 2; aspect-ratio: 4 / 5; }
}

@media (max-width: 560px) {
  .contact { padding-block: 72px 88px; }
  .contact-layout { gap: 30px; }
  .contact h2 { max-width: 12ch; margin: 22px 0 20px; font-size: clamp(46px, 11vw, 62px); line-height: .98; }
  .contact-callout { gap: 18px; padding-top: 22px; border-top: 1px solid #333; }
  .contact-links { gap: 10px; }
  .contact-links .header-cta { min-height: 44px; padding: 0 16px; }
  .wrap { padding: 0 20px; }.header-inner { height: 72px; padding: 0 20px; }.hero { min-height: 620px; }.hero-content { padding: 90px 20px 65px; }.hero h1 { margin: 32px 0; font-size: clamp(42px, 14vw, 58px); }.hero h1 > span:nth-child(2) { margin-left: 17vw; }.hero-copy { margin-left: 0; max-width: 250px; }.hero-square { top: 33%; right: 15%; }.section { padding: 82px 0; }.section-intro, .section-head { display: block; }.section-intro { margin-bottom: 65px; }.section-head > p { margin-top: 28px; }.mobile-menu { padding: 78px 20px 32px; }.mobile-menu a { padding: 10px 0; font-size: 40px; }.mobile-menu .mobile-cta { margin-top: 22px; }.service-row { padding: 22px 0; }.service-row:hover { padding-left: 0; }.service-row summary { grid-template-columns: 40px 1fr 22px; gap: 10px; }.service-row h3 { font-size: 38px; }.service-detail { display: block; padding: 20px 0 0 50px; font-size: 13px; }.service-detail ul { margin-top: 18px; }.audience-grid { grid-template-columns: 1fr; margin-top: 45px; }.legal-person { display: block; }.legal-photo-slot { height: 280px; max-width: none; margin: 0 0 26px; }.legal-person-top, .musical-copy-top { display: flex; }.legal-person h3, .musical-copy h3 { margin-top: 22px; font-size: 34px; }.legal-person p { margin-top: 16px; }.legal-services ul { display: block; }.musical-feature { display: block; }.musical-portrait { aspect-ratio: 1 / 1.08; max-width: none; margin-bottom: 30px; }.team-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 12px; }.team-card h3 { font-size: 25px; }.team-card > span { font-size: 9px; }.project-large { height: 390px; }.project-small { height: 300px; }.project-wide { height: 220px; }.project-label { font-size: 22px; }.partners-line { display: block; padding: 25px 0; }.partners-line a { display: block; margin-bottom: 22px; }.partners-line span { font-size: 20px; }.contact-link { font-size: 22px; }.footer-inner { display: grid; grid-template-columns: 1fr 1fr; }.footer-links { display: grid; gap: 10px; }.footer-inner > p { grid-column: 1 / -1; }.wa-float { right: 18px; bottom: 18px; }.history-gallery { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; padding-bottom: 18px; }.history-photo { width: 100%; margin: 0; }.history-photo:nth-child(even) { transform: translateX(16px); width: calc(100% - 16px); }.photo-1 { aspect-ratio: 4 / 5; }.photo-2 { aspect-ratio: 1 / 1; }.photo-3 { aspect-ratio: 3 / 4; }.photo-4 { aspect-ratio: 4 / 3; }.photo-5 { aspect-ratio: 1 / 1; }.photo-6 { aspect-ratio: 5 / 4; }
  #historia .history-gallery { grid-template-columns: 1fr; gap: 16px; }
  #historia .history-photo:nth-child(1) { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 5; }
  #historia .history-photo:nth-child(2) { grid-column: auto; grid-row: auto; aspect-ratio: 1 / 1; }
  #historia .history-photo:nth-child(3) { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 5; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.reveal { opacity: 1; transform: none; transition: none; } }

/* Compacta as Ã¡reas de conteÃºdo sem reduzir o impacto do hero. */
.section { padding-top: 90px; padding-bottom: 90px; }
.section-intro { margin-bottom: 42px; }
.team-grid, .project-grid, .partners-line { margin-top: 32px; }
.about-copy { padding-top: 18px; }
.legal-layout, .musical-production-layout { gap: 36px; }

@media (max-width: 900px) {
  .section { padding-top: 86px; padding-bottom: 86px; }
  .section-intro { margin-bottom: 52px; }
  .about-copy { padding-top: 0; }
  .legal-layout, .musical-production-layout { gap: 38px; }
}

@media (max-width: 560px) {
  .section { padding-top: 64px; padding-bottom: 64px; }
  .section-intro { margin-bottom: 42px; }
  .section-head > p { margin-top: 20px; }
  .team-grid, .project-grid, .partners-line { margin-top: 42px; }
  .legal-layout, .musical-production-layout { gap: 30px; }
  .audience-grid { margin-top: 34px; }
}

@media (max-width: 900px) {
  .mobile-menu.open { transform: translateY(0); }
}

@media (max-width: 560px) {
  .service-row summary { grid-template-columns: 1fr 22px; }
  .service-detail { padding-left: 0; }
  .legal-service-grid { grid-template-columns: 1fr; }
  .musical-service-grid { grid-template-columns: 1fr; }
  .legal-closing { font-size: 22px; }
}

/* Refinamento visual: eixo, ritmo e leitura consistente em todas as seÃ§Ãµes. */
:root {
  --content-width: 1220px;
  --gutter: 44px;
  --title-dark: #050608;
  --title-light: #FFFFFF;
  --title-gray: #A8ADB7;
}

.wrap, .header-inner, .hero-content { width: min(var(--content-width), 100%); }
.wrap, .header-inner { padding-right: var(--gutter); padding-left: var(--gutter); }
.section { padding-top: 96px; padding-bottom: 96px; }
.section::before { top: 30px; right: var(--gutter); }
.section-intro, .section-head { gap: 64px; margin-bottom: 48px; }
.about-layout, .founder-layout, .history-layout, .contact-layout { column-gap: 72px; }

/* TÃ­tulos com um reflexo azul lento, sem brilho excessivo. */
h1 em, h2 em {
  color: transparent;
  background-image: linear-gradient(100deg, var(--title-gray) 0%, var(--title-gray) 42%, var(--electric-blue) 49%, var(--title-gray) 56%, var(--title-gray) 100%);
  background-size: 220% 100%;
  background-position: 100% 0;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 12px rgba(8, 102, 245, .08);
  animation: titleLightSweep 9s ease-in-out infinite;
}

.hero h1 em { text-shadow: none; }
.hero h1 em .char {
  color: var(--title-gray);
  background: none;
  -webkit-text-fill-color: var(--title-gray);
  animation: charIn 1.65s cubic-bezier(.19, 1, .22, 1) forwards, titleCharSweep 9s ease-in-out infinite;
}
@keyframes titleCharSweep {
  0%, 20%, 100% { color: var(--title-gray); -webkit-text-fill-color: var(--title-gray); }
  52%, 64% { color: var(--electric-blue); -webkit-text-fill-color: var(--electric-blue); }
}
@keyframes titleLightSweep {
  0%, 20%, 100% { background-position: 100% 0; }
  52%, 64% { background-position: 0 0; }
}

.navlinks { align-items: center; gap: 14px; }
.nav-group { display: flex; align-items: center; height: 84px; }
.nav-dropdown { left: 50%; width: 220px; min-width: 220px; transform: translate(-50%, -8px); }
.nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown { transform: translate(-50%, 0); }
.nav-dropdown a { min-height: 42px; padding: 14px 20px; }
.header-cta { white-space: nowrap; }

.reveal, .line-mask > span, .timeline article { transition-duration: 1s; }
.section-intro > p, .about-copy, .legal-overview, .musical-overview, .contact-layout > div { opacity: 0; transform: translateY(22px); transition: opacity 1s ease, transform 1s cubic-bezier(.19, 1, .22, 1); }
.section-intro > p.in, .about-copy.in, .legal-overview.in, .musical-overview.in, .contact-layout > div.in { opacity: 1; transform: none; }

@media (max-width: 900px) {
  :root { --gutter: 28px; }
  .section { padding-top: 82px; padding-bottom: 82px; }
  .section-intro, .section-head { gap: 34px; }
  .nav-group { display: block; height: auto; }
}

@media (max-width: 560px) {
  :root { --gutter: 20px; }
  .section { padding-top: 68px; padding-bottom: 68px; }
  .section::before { right: var(--gutter); }
  .section-intro, .section-head { margin-bottom: 40px; }
  .partners-line { display: block; padding: 18px 0; }
  .partners-line a.partner-card { display: flex; margin-bottom: 14px; }
  .partners-line a.partner-card:last-child { margin-bottom: 0; }
  .partner-card { min-height: 150px; padding: 18px; }
  .partner-card img { width: 110px; height: 82px; }
  .partner-card span { font-size: 20px; }
  .mobile-menu a, .mobile-nav-group summary { min-height: 54px; padding: 11px 0; }
  .mobile-nav-group a { min-height: 0; padding: 8px 0 8px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  h1 em, h2 em { animation: none; background-position: 50% 0; }
  .section-intro > p, .about-copy, .legal-overview, .musical-overview, .contact-layout > div { opacity: 1; transform: none; transition: none; }
}

.header-right { display: flex; align-items: center; gap: 16px; }
.campaign-ribbon { display: block; width: 42px; height: 46px; flex: 0 0 auto; object-fit: contain; }
.october-campaign {
  margin: 32px 0 0;
  border-left: 2px solid #c65d7e;
  border-radius: 0 6px 6px 0;
  padding: 18px 20px;
  background: rgba(244, 243, 239, .52);
  transition: opacity .8s ease, transform .8s cubic-bezier(.19, 1, .22, 1), border-color .3s ease, background-color .3s ease;
}
.october-campaign:hover { border-left-color: #a84363; background: rgba(244, 243, 239, .78); transform: translateX(3px); }
.about-copy .october-campaign-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  color: #a84363;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.october-campaign-label span { border-left: 1px solid rgba(168, 67, 99, .45); padding-left: 9px; }
.october-campaign h3 {
  max-width: 390px;
  margin-bottom: 12px;
  color: #a84363;
  font-size: clamp(30px, 3.3vw, 40px);
  line-height: 1.02;
}
.about-copy .october-campaign > p:last-child {
  margin-bottom: 0;
  color: #555550;
  font-size: 13px;
  line-height: 1.65;
}

@media (max-width: 900px) {
  .header-right { gap: 14px; }
  .october-campaign { margin-top: 28px; }
}

@media (max-width: 560px) {
  .header-right { gap: 10px; }
  .campaign-ribbon { width: 36px; height: 40px; }
  .october-campaign { margin-top: 26px; padding: 16px; }
  .october-campaign h3 { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .october-campaign { transition: none; }
  .october-campaign:hover { transform: none; }
}

.cast {
  background:
    radial-gradient(ellipse at 82% 12%, rgba(190, 190, 190, .07), transparent 32%),
    var(--black);
  color: var(--white);
}
.cast::before { background: #a6a6a2; }
.cast-intro {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 48px;
}
.cast-intro h2 {
  max-width: 820px;
  margin-top: 25px;
  font-size: clamp(54px, 7.2vw, 104px);
}
.cast-intro h2 em {
  background-image: linear-gradient(90deg, #a8a8a5 0%, #ecebe7 48%, #a8a8a5 100%);
  background-size: 200% 100%;
}
.cast-intro > p {
  max-width: 360px;
  padding-bottom: 5px;
  color: #aaa9a5;
  font-size: 14px;
  line-height: 1.8;
}
.cast-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.cast-card {
  position: relative;
  display: block;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: #252525;
  color: var(--white);
  isolation: isolate;
}
.cast-card::after {
  position: absolute;
  z-index: 0;
  inset: 25% 0 0;
  background: linear-gradient(180deg, transparent 4%, rgba(0, 0, 0, .18) 35%, rgba(0, 0, 0, .82) 100%);
  content: '';
  pointer-events: none;
}
.cast-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  filter: saturate(.78);
  transition: transform .8s cubic-bezier(.19, 1, .22, 1), filter .6s ease;
}
.cast-card:nth-child(2) img { object-position: center 28%; }
.cast-card:nth-child(3) img { object-position: center 34%; }
.cast-card-label {
  position: absolute;
  z-index: 1;
  top: 18px;
  left: 18px;
  border-left: 1px solid rgba(235, 235, 230, .75);
  padding: 3px 0 3px 9px;
  color: rgba(245, 244, 240, .86);
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.cast-card-info {
  position: absolute;
  z-index: 1;
  right: 20px;
  bottom: 20px;
  left: 20px;
  display: flex;
  flex-direction: column;
  gap: 13px;
}
.cast-card-name {
  font: 500 clamp(25px, 2.2vw, 36px)/.98 'Barlow Condensed', sans-serif;
  text-transform: uppercase;
  transition: color .3s ease, letter-spacing .3s ease;
}
.cast-card-link {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #c3c2be;
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  transition: color .3s ease;
}
.cast-card-actions { display: flex; align-items: center; gap: 20px; }
.cast-card-actions .cast-card-link { text-decoration: none; }
.cast-website-link > span:last-child { margin-left: 0; font-size: 13px; }
.cast-card-link svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
.cast-card-link svg .instagram-dot { fill: currentColor; stroke: none; }
.cast-card-link > span:last-child {
  margin-left: auto;
  color: #d7d6d1;
  font-size: 16px;
  transition: transform .3s ease;
}
.cast-card:hover img, .cast-card:focus-visible img {
  filter: saturate(1);
  transform: scale(1.045);
}
.cast-card:hover .cast-card-name, .cast-card:focus-visible .cast-card-name {
  color: #e1e0dc;
  letter-spacing: .025em;
}
.cast-card:hover .cast-card-link, .cast-card:focus-visible .cast-card-link { color: #fff; }
.cast-card:hover .cast-card-link > span:last-child, .cast-card:focus-visible .cast-card-link > span:last-child { transform: translate(3px, -2px); }
.cast-card:focus-visible { outline: 2px solid #d0cfca; outline-offset: 4px; }
.cast-grid .cast-card.in { transition-delay: calc(var(--i, 0) * 90ms); }

@media (max-width: 900px) {
  .cast-intro { align-items: start; flex-direction: column; gap: 25px; }
  .cast-intro h2 { font-size: clamp(58px, 10vw, 88px); }
  .cast-intro > p { max-width: 540px; }
  .cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .cast-card-name { font-size: clamp(30px, 5vw, 42px); }
}

@media (max-width: 560px) {
  .cast-intro { gap: 22px; margin-bottom: 32px; }
  .cast-intro h2 { font-size: clamp(48px, 13vw, 70px); }
  .cast-intro > p { font-size: 13px; }
  .cast-grid { grid-template-columns: 1fr; gap: 14px; }
  .cast-card { width: min(100%, 440px); margin: 0 auto; aspect-ratio: 4 / 5; }
  .cast-card-info { right: 18px; bottom: 18px; left: 18px; }
  .cast-card-name { font-size: clamp(34px, 10vw, 46px); }
}

@media (prefers-reduced-motion: reduce) {
  .cast-card img, .cast-card-name, .cast-card-link, .cast-card-link > span:last-child { transition: none; }
  .cast-card:hover img, .cast-card:focus-visible img, .cast-card:hover .cast-card-link > span:last-child, .cast-card:focus-visible .cast-card-link > span:last-child { transform: none; }
}

/* SeÃ§Ãµes digitais organizadas na arquitetura existente */
.founder-layout { grid-template-columns: 1fr; }
.digital-service { background: var(--white); color: var(--ink); }
.digital-service:nth-of-type(even) { background: var(--soft); }
.digital-service-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(40px, 8vw, 110px); align-items: center; }
.digital-service-heading h2 { margin: 26px 0; font-size: clamp(62px, 8vw, 118px); }
.digital-service-heading > p:last-child, .digital-service-copy p { max-width: 520px; color: #62635f; font-size: 16px; line-height: 1.7; }
.digital-service-copy h3 { margin-bottom: 25px; font-size: clamp(34px, 4vw, 54px); }
.digital-service-copy ol { display: grid; gap: 0; margin: 0 0 24px; padding: 0; list-style: none; counter-reset: traffic-step; }
.digital-service-copy li { counter-increment: traffic-step; border-top: 1px solid #aaa; padding: 18px 0; color: #555650; line-height: 1.6; }
.digital-service-copy li::before { content: "0" counter(traffic-step); display: inline-block; width: 42px; color: #777; font: 500 20px 'Barlow Condensed'; }
.sites-service { background: var(--white); color: var(--ink); }
.sites-service .digital-service-heading > p:last-child, .sites-service .digital-service-copy p { color: #b5b5b0; }
.sites-service h2 em { color: #999; }
@media (max-width: 760px) {
  .digital-service-layout { grid-template-columns: 1fr; gap: 38px; }
}
.projects-current { margin-top: 95px; }
.projects-current h3 { font: 600 clamp(48px, 7vw, 100px)/.9 'Barlow Condensed'; }
@media (max-width: 900px) { .projects-current { margin-top: 60px; } }

/* Acabamento das seÃ§Ãµes digitais */
.digital-service { isolation: isolate; }
.digital-service::after { display: none; }
.digital-service-heading { max-width: 620px; }
.digital-service-heading .kicker { margin-bottom: 8px; }
.digital-service-heading h2 { position: relative; width: fit-content; max-width: 100%; }
.digital-service-heading h2::after { display: block; width: 72px; height: 1px; margin-top: 22px; background: linear-gradient(90deg, #92938f, transparent); content: ''; }
.digital-service-copy li { position: relative; padding-left: 8px; transition: color .3s ease, padding-left .3s ease; }
.digital-service-copy li:hover { padding-left: 14px; color: var(--ink); }
.digital-service-copy > p:last-child { border-left: 1px solid #aaa; padding-left: 16px; font-size: 13px; }
.sites-service { background-image: none; }
.sites-service .digital-service-copy { position: relative; border-top: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.12); padding: 30px 0; }
.sites-service .digital-service-copy h3 { max-width: 560px; color: var(--white); }
@media (max-width: 760px) {
  .sites-service .digital-service-copy { padding: 22px 0; }
}
@media (prefers-reduced-motion: reduce) {
}

/* Dire&ccedil;&atilde;o de arte localizada: Cria&ccedil;&atilde;o de Artes */









/* Paleta CD: distribuicao por superficies, mantendo o contraste de cada secao */


#administracao-redes { background-color: var(--soft); color: var(--white); }
#administracao-redes::before { background: var(--electric-blue); }
#criacao-sites {
  background-color: var(--white);
  background-image: none;
  color: var(--ink);
}
#criacao-sites::before { background: var(--steel-blue); }
#criacao-sites .digital-service-heading h2,
#criacao-sites .digital-service-copy h3 { color: var(--ink); }
#criacao-sites .digital-service-heading .kicker { color: var(--steel-blue); }
#criacao-sites .digital-service-heading > p:last-child,
#criacao-sites .digital-service-copy p { color: #46505D; }
#criacao-sites .digital-service-copy { border-color: rgba(16,26,43,.22); }
#criacao-sites .digital-service-copy .sites-showcase-label {
  margin: 30px 0 0;
  color: var(--steel-blue);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.sites-showcase {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 12px;
  border-top: 1px solid var(--section-rule);
}
.sites-showcase a {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
  border-bottom: 1px solid var(--section-rule);
  padding: 18px 34px 18px 0;
  transition: color .25s ease;
}
.sites-showcase a + a { padding-left: 22px; }
.sites-showcase a:hover { color: var(--steel-blue); }
.sites-showcase-name {
  color: var(--ink);
  font: 600 26px/.95 'Barlow Condensed', sans-serif;
  text-transform: uppercase;
}
.sites-showcase-domain { color: var(--section-copy); font-size: 11px; overflow-wrap: anywhere; }
.sites-showcase-arrow {
  position: absolute;
  top: 18px;
  right: 12px;
  color: var(--steel-blue);
  transition: transform .25s ease;
}
.sites-showcase a:hover .sites-showcase-arrow { transform: translate(3px, -3px); }
@media (max-width: 560px) {
  .sites-showcase { grid-template-columns: 1fr; }
  .sites-showcase a + a { border-top: 0; padding-left: 0; }
}
.musical-production { background: var(--navy); }
.history { background: var(--navy); color: var(--white); }
.history::before { background: var(--silver); }
.history .kicker.dark { color: var(--silver); }
.history .timeline { border-color: rgba(213,216,222,.3); }
.history .timeline article { border-color: rgba(213,216,222,.24); }
.history .timeline article > span { color: var(--silver); }
.history .timeline h3 { color: var(--white); }
.history .timeline p { color: #C2CAD4; }
.cast { background: radial-gradient(ellipse at 82% 12%, rgba(8,102,245,.10), transparent 32%), var(--black); }
.cast-intro h2 em { background-image: linear-gradient(90deg, #AEB7C3 0%, #F4F4F1 48%, #AEB7C3 100%); }
.legal, .projects, .contact, footer { background-color: var(--black); }
.founder, .about, .partners { background-color: var(--white); }
.team { background: var(--navy); color: var(--white); }
.team::before { background: var(--silver); }
.team .kicker.dark { color: var(--silver); }
.team .section-head > p { color: #C2CAD4; }
.team-card h3 { color: var(--white); }
.team-card > span { color: var(--silver); }
.team-card p { color: #C2CAD4; }

/* Identidade CD Assessoria: preto dominante, azul elÃ©trico pontual e leitura clara. */
body { background: var(--black); color: var(--white); }

#servicos, #criacao-sites, #historia, #cases-client-base, #projetos, #contato,
footer { background-color: var(--black); color: var(--white); }
#juridico { background-color: var(--black); color: var(--white); }
#administracao-redes, #producao-musical, #fundador, #sobre,
#parcerias, #equipe { background-color: var(--soft); color: var(--white); }

:is(#servicos, #administracao-redes, #criacao-sites,
    #juridico, #producao-musical, #cases-client-base, #fundador, #historia,
    #sobre, #projetos, #parcerias, #equipe, #contato) {
  --section-copy: #A8ADB7;
  --section-rule: rgba(168, 173, 183, .28);
}
:is(#servicos, #administracao-redes, #criacao-sites,
    #juridico, #producao-musical, #cases-client-base, #fundador, #historia,
    #sobre, #projetos, #parcerias, #equipe, #contato) :is(h1, h2, h3, .service-row h3) { color: #FFFFFF; }
:is(#servicos, #administracao-redes, #criacao-sites,
    #juridico, #producao-musical, #cases-client-base, #fundador, #historia,
    #sobre, #projetos, #parcerias, #equipe, #contato) :is(p, li, .kicker, .service-number, .row-mark, .timeline article > span) { color: var(--section-copy); }
:is(#servicos, #administracao-redes, #criacao-sites,
    #juridico, #producao-musical, #cases-client-base, #fundador, #historia,
    #sobre, #projetos, #parcerias, #equipe, #contato)::before { background: var(--section-copy); }

/* Regras antigas para serviÃ§os tinham fundos claros e painÃ©is cinza. */
.digital-service, .paid-traffic { background-color: var(--soft); color: var(--white); }
.digital-service::after { background: radial-gradient(ellipse at 78% 42%, rgba(22,133,255,.09), transparent 68%); }
.digital-service-heading > p:last-child, .digital-service-copy p,
.digital-service-copy li, .paid-traffic-lead, .paid-traffic-copy p,
.paid-traffic-services li, .service-detail, .audience-grid p { color: var(--section-copy); }
.digital-service-copy h3, .paid-traffic-copy .paid-traffic-highlight,
.paid-traffic-services .service-section-heading h3 { color: var(--white); }
.digital-service-copy li, .paid-traffic-services li,
.paid-traffic-services, .paid-traffic-services ul,
.digital-service-copy li, .service-list, .service-row, .service-detail ul {
  border-color: var(--section-rule);
}
.audience-grid > div { border-color: var(--section-rule); background: transparent; box-shadow: none; }
.audience-grid { background: var(--section-rule); }
.service-row:hover { background: rgba(8,102,245,.08); }
.service-row[open] h3, .row-mark, .service-number { color: var(--electric-blue); }
.paid-traffic { background: var(--soft); }
.service-detail ul { border-left-color: var(--section-rule); }

/* Contraste e alternÃ¢ncia em seÃ§Ãµes de conteÃºdo e elementos reutilizados. */
.section-intro > p, .intro-copy, .section-head > p, .about-copy p,
.team-card p, .timeline p, .founder-stat span, .project-note,
.partner-card span, .digital-service-copy > p:last-child { color: var(--section-copy); }
.about-copy .lead, .founder-copy .role, .founder-stat strong,
.paid-traffic-services .service-section-heading h3,
.paid-traffic-services .service-section-heading h3 em { color: var(--white); }
.about-fact, .founder-stat, .partners-line, .partner-card,
.paid-traffic-services ul, .paid-traffic-services li { border-color: var(--section-rule); }
.partner-card { background: rgba(255,255,255,.015); }
.partner-card:hover { border-color: var(--electric-blue); background: rgba(8,102,245,.08); }
.partner-card img { filter: none; }
.team-card h3, .team-card > span { color: var(--white); }
.team-card > span { color: var(--section-copy); }
.contact-actions, .contact-link { border-color: var(--section-rule); }
.contact-link { color: var(--white); }
.contact-link:hover { color: var(--electric-blue); }
.contact-form input, .contact-form select, .contact-form textarea {
  border-color: var(--section-rule); background: rgba(255,255,255,.025); color: var(--white);
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  border-color: var(--electric-blue); box-shadow: 0 0 0 3px rgba(8,102,245,.14);
}
.contact-form button, .wa-float { background: var(--electric-blue); color: var(--white); }
.contact-form button:hover { box-shadow: 0 10px 24px rgba(8,102,245,.2); }
.contact-form select option { background: var(--soft); color: var(--white); }
.section-cta:hover { border-color: var(--electric-blue); color: var(--electric-blue); }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { background: rgba(8,102,245,.12); color: var(--white); }

/* CriaÃ§Ã£o de Artes: manter a foto, o modelo 3D e o conteÃºdo na mesma cena. */









/* Campanha temÃ¡tica e ajustes finais da composiÃ§Ã£o sem excesso de elementos visuais. */
.october-campaign { background: rgba(255,255,255,.035); }
.about-copy .october-campaign > p:last-child { color: var(--section-copy); }

@media (prefers-reduced-motion: reduce) {
  h1 em, h2 em { animation: none; }
}

/* Retrato do fundador: texto Ã  esquerda e fotografia Ã  direita no desktop. */
#fundador .founder-layout { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
@media (max-width: 900px) {
  #fundador .founder-layout { grid-template-columns: minmax(0, 1fr); }
  #fundador .founder-image { order: -1; }
}

/* Ajustes finais da composiÃ§Ã£o e dos serviÃ§os digitais. */
.hero h1 em .char {
  color: var(--title-gray);
  background: none;
  -webkit-text-fill-color: currentColor;
  animation: charIn 1.65s cubic-bezier(.19, 1, .22, 1) forwards, titleCharSweep 9s ease-in-out infinite;
}



#criacao-sites .digital-service-heading > p:last-child,
#criacao-sites .digital-service-copy p { color: var(--section-copy); }
#criacao-sites .digital-service-copy { border-color: var(--section-rule); }
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--steel-blue);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  h1 em, h2 em, .hero h1 .char, .hero h1 em .char {
    animation: none;
  }
  .hero h1 .char, .hero h1 em .char { opacity: 1; transform: none; }
}

/* Motion and interaction details shared across the full site. */
.image-reveal { isolation: isolate; }
.image-reveal img {
  clip-path: inset(0 100% 0 0);
  transition: clip-path .95s cubic-bezier(.19, 1, .22, 1), transform .8s cubic-bezier(.19, 1, .22, 1), filter .4s ease, opacity .8s ease;
}
.image-reveal.in img { clip-path: inset(0); }
.reveal img.image-parallax {
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.08);
}
.reveal.in img.image-parallax {
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1);
}
.history-photo.in:hover img.image-parallax,
.project.in:hover img.image-parallax,
.team-card.in:hover img.image-parallax,
.cast-card.in:hover img.image-parallax {
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.04);
}
.legal-photo-slot:hover img.image-parallax,
.musical-portrait:hover img.image-parallax {
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.04);
}

.header-cta, .section-cta {
  transform: translate3d(var(--magnet-x, 0px), var(--magnet-y, 0px), 0);
  transition: transform .2s ease-out, border-color .3s ease, color .3s ease;
}
.section-cta span, .header-cta span, .sites-showcase-arrow,
.project-label b, .partner-card b, .cast-card-link > span:last-child {
  display: inline-block;
  transition: translate .3s ease, color .3s ease;
}
.header-cta:hover span, .section-cta:hover span,
.sites-showcase a:hover .sites-showcase-arrow,
.project:hover .project-label b, .partner-card:hover b,
.cast-card:hover .cast-card-link > span:last-child {
  translate: 3px -1px;
}
a { transition: color .25s ease; }
.footer-links a:hover, .service-detail a:hover, .project-note a:hover {
  color: var(--steel-blue);
}

@media (hover: hover) {
  .legal-service, .musical-service {
    transition: opacity .8s ease, transform .8s cubic-bezier(.19, 1, .22, 1), translate .35s cubic-bezier(.19, 1, .22, 1), border-color .3s ease;
  }
  .team-card, .project, .cast-card {
    transition: opacity 1s ease, transform 1s cubic-bezier(.19, 1, .22, 1), translate .35s cubic-bezier(.19, 1, .22, 1);
  }
  .partner-card {
    transition: translate .35s cubic-bezier(.19, 1, .22, 1), border-color .3s ease, background-color .3s ease;
  }
  .sites-showcase a {
    transition: translate .35s cubic-bezier(.19, 1, .22, 1), color .3s ease;
  }
  .legal-service:hover, .musical-service:hover, .team-card:hover,
  .partner-card:hover, .sites-showcase a:hover, .project:hover, .cast-card:hover,
  .legal-service:focus-within, .musical-service:focus-within,
  .team-card:focus-within, .partner-card:focus-visible,
  .sites-showcase a:focus-visible, .project:focus-visible, .cast-card:focus-visible {
    translate: 0 -3px;
  }
  .legal-service:hover, .musical-service:hover { border-color: var(--steel-blue); }
}

.service-row[open] .service-detail { animation: serviceDetailEnter .4s cubic-bezier(.19, 1, .22, 1) both; }
@keyframes serviceDetailEnter {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

.services::after, .legal::after, .musical-production::after,
.history::after, .about::after, .projects::after, .partners::after,
.team::after, .contact::after {
  position: absolute;
  top: 8%;
  right: 0;
  width: min(52vw, 660px);
  aspect-ratio: 1;
  background: radial-gradient(circle, rgba(8, 102, 245, .075), transparent 68%);
  content: '';
  pointer-events: none;
}
.services > .wrap, .legal > .wrap, .musical-production > .wrap,
.history > .wrap, .about > .wrap, .projects > .wrap, .partners > .wrap,
.team > .wrap, .contact > .wrap {
  position: relative;
  z-index: 1;
}
.hero { background-position-y: calc(50% + var(--hero-parallax-y, 0px)); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .image-reveal img {
    clip-path: none;
    transform: none !important;
    transition: none !important;
  }
  .header-cta, .section-cta, .section-cta span, .header-cta span,
  .sites-showcase-arrow, .project-label b, .partner-card b,
  .cast-card-link > span:last-child, .legal-service, .musical-service,
  .team-card, .partner-card, .sites-showcase a, .project, .cast-card {
    translate: none !important;
    transition: none !important;
  }
  .service-row[open] .service-detail { animation: none; }
  .header-cta, .section-cta { transform: none !important; }
  .hero { background-position-y: 50%; }
}

/* Superficies claras nas seÃ§Ãµes que antes usavam o fundo cinza. */
:is(#administracao-redes, #producao-musical, #fundador, #sobre, #parcerias, #equipe) {
  background-color: var(--white);
  color: var(--black);
  --section-copy: #525967;
  --section-rule: rgba(5, 6, 8, .2);
}
:is(#administracao-redes, #producao-musical, #fundador, #sobre, #parcerias, #equipe)
  :is(h1, h2, h3, .service-row h3) { color: var(--black); }
:is(#administracao-redes, #producao-musical, #fundador, #sobre, #parcerias, #equipe)
  :is(p, li, .section-head > p) { color: var(--section-copy); }
:is(#administracao-redes, #producao-musical, #fundador, #sobre, #parcerias, #equipe)
  :is(h1, h2) em {
    color: var(--electric-blue);
    background: none;
    -webkit-text-fill-color: currentColor;
    text-shadow: none;
    animation: none;
  }
#administracao-redes .paid-traffic-intro h2,
#administracao-redes .paid-traffic-services .service-section-heading h3,
#administracao-redes .paid-traffic-services .service-section-heading h3 em,
#administracao-redes .paid-traffic-services li strong,
#producao-musical .musical-intro h2,
#producao-musical .musical-services .service-section-heading h3,
#producao-musical .musical-copy h3,
#producao-musical .musical-service h4,
#fundador .founder-copy .role,
#fundador .founder-stat strong,
#sobre .about-copy .lead,
#equipe .team-card h3,
#equipe .team-card > span { color: var(--black); }
#administracao-redes .paid-traffic-lead,
#administracao-redes .paid-traffic-copy p,
#administracao-redes .paid-traffic-services li,
#producao-musical .musical-intro > p:last-of-type,
#producao-musical .musical-overview p,
#producao-musical .musical-copy p,
#producao-musical .musical-service p,
#producao-musical .legal-badge,
#producao-musical .musical-tags span,
#fundador .founder-tags span,
#equipe .team-card p { color: var(--section-copy); }
#producao-musical .musical-tags span,
#fundador .founder-tags span { border-color: var(--section-rule); }
#administracao-redes .arts-photo {
  transform: scale(1.1);
  transform-origin: center top;
}

/* DireÃ§Ã£o editorial do trÃ¡fego pago: contraste e imagens em pontos especÃ­ficos. */
#administracao-redes.editorial-traffic {
  background: #050505;
  color: #F5F5F5;
  --section-copy: #A5A5A5;
  --section-rule: rgba(245, 245, 245, .2);
}
#administracao-redes.editorial-traffic .traffic-moment h2 {
  color: #F5F5F5;
  font-size: clamp(56px, 6.3vw, 96px);
  line-height: .9;
  letter-spacing: -.035em;
}
#administracao-redes.editorial-traffic .traffic-moment h2 span { color: #F5F5F5; }
#administracao-redes.editorial-traffic .traffic-moment h2 .blue-word,
#administracao-redes.editorial-traffic .traffic-moment h2 em { color: #087BFF; }
#administracao-redes.editorial-traffic .traffic-moment p { color: #D9D9D9; }
#administracao-redes.editorial-traffic .traffic-kicker { color: #A5A5A5; }
#administracao-redes.editorial-traffic .moment-list li { color: #F5F5F5; }
#administracao-redes.editorial-traffic .moment-list li strong { color: #3298FF; }

.traffic-impulse { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.moment-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}
.traffic-phone-stage { position: relative; flex: 0 1 320px; width: min(100%, 320px); aspect-ratio: 230 / 512; overflow: visible; }
.traffic-person { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: bottom center; transform: scale(3); transform-origin: bottom center; }
.traffic-phone { position: absolute; z-index: 2; top: 53%; left: 25%; width: 39%; filter: drop-shadow(16px 22px 14px rgba(0,0,0,.56)); transform: perspective(900px) rotateY(-14deg) rotateZ(-5deg); transform-origin: center center; transition: transform .35s ease; animation: phoneFloat 4.8s ease-in-out infinite; }
.traffic-phone-shell {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(233, 239, 248, .8);
  border-radius: 34px;
  padding: 8px;
  background: linear-gradient(110deg, #737b87 0%, #232832 4%, #090b10 15%, #1a1e26 88%, #757e8a 100%);
  box-shadow: inset 2px 0 2px rgba(255,255,255,.28), inset -2px 0 2px rgba(255,255,255,.3), 0 3px 0 #050609, 0 20px 32px rgba(0,0,0,.48);
  transform-origin: center center;
  transition: transform .45s ease;
}
.traffic-phone:hover { animation-play-state: paused; transform: perspective(900px) rotateY(-8deg) rotateZ(-2deg); }
.traffic-phone-shell::before {
  position: absolute;
  z-index: 1;
  top: 7px;
  left: 50%;
  width: 34%;
  height: 13px;
  border-radius: 0 0 10px 10px;
  background: #080B12;
  content: '';
  transform: translateX(-50%);
  box-shadow: 0 1px 2px rgba(255,255,255,.18);
}
.traffic-phone-shell::after { position: absolute; z-index: 2; top: 11px; bottom: 11px; left: 3px; width: 2px; border-radius: 2px; background: linear-gradient(#8993a3, #252a34 35%, #8993a3 38%, #252a34 65%, #8993a3 68%); content: ''; }
.traffic-phone-shell img {
  width: 100%;
  aspect-ratio: 9 / 19;
  border-radius: 26px;
  background: #050608;
  object-fit: cover;
  object-position: center;
}
.traffic-phone-stage figcaption {
  position: absolute;
  right: 0;
  bottom: -24px;
  left: 0;
  color: #A5A5A5;
  font-size: 9px;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
}

/* Galeria dos projetos em destaque. */
.case-studies { margin-top: 105px; border-top: 1px solid #444; padding-top: 44px; }
.case-studies-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 30px; }
.case-studies-heading .kicker { color: #aaa; }
.case-studies-heading h3 { color: var(--white); font: 600 clamp(34px, 5vw, 58px)/.9 'Barlow Condensed'; text-transform: uppercase; }
.case-studies-heading h3 em { color: #858b94; font-style: normal; }
.case-study-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.case-study-card { min-width: 0; border: 1px solid #3c3c3c; background: linear-gradient(145deg, #1c1c1c, #111); color: var(--white); transition: border-color .25s, background .25s; }
.case-study-card:hover, .case-study-card[open] { border-color: #6c9fff; background: #1d2026; }
.case-study-card > summary { list-style: none; }
.case-study-card > summary::-webkit-details-marker { display: none; }
.case-cover { position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; cursor: pointer; background: #151515; }
.case-cover:focus-visible { outline: 2px solid #8daff0; outline-offset: -4px; }
.case-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.case-study-card:hover .case-cover > img { transform: scale(1.035); }
.case-cover-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.9), rgba(0,0,0,.08) 80%); }
.case-cover-content { position: absolute; right: 18px; bottom: 17px; left: 18px; display: grid; gap: 9px; color: #fff; }
.case-study-number { color: #a9c7ff; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.case-cover-content strong { font: 500 clamp(26px, 3vw, 36px)/.95 'Barlow Condensed'; text-transform: uppercase; }
.case-cover-action { color: #ddd; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.case-carousel { padding: 14px; border-top: 1px solid #393939; }
.case-slide-view { display: grid; place-items: center; height: min(68vh, 680px); min-height: 220px; margin: 0; overflow: hidden; background: #08090b; }
.case-slide-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.case-carousel-controls { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; padding-top: 14px; }
.case-carousel-button { border: 1px solid #535967; border-radius: 999px; padding: 10px 15px; background: transparent; color: #f4f3ef; font: 500 11px 'DM Sans'; cursor: pointer; transition: border-color .2s, background .2s, opacity .2s; }
.case-carousel-controls > .case-carousel-button:nth-child(3) { justify-self: end; }
.case-carousel-button:hover:not(:disabled) { border-color: #8daff0; background: rgba(141,175,240,.1); }
.case-carousel-button:disabled { opacity: .38; cursor: default; }
.case-carousel-count { color: #b8c7e2; font-size: 11px; letter-spacing: .14em; font-variant-numeric: tabular-nums; }
.case-study-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; width: 100%; margin-top: 20px; }
.case-study-photos a { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #252525; }
.case-study-photos img { width: 100%; height: 100%; object-fit: cover; }
@media(max-width:700px) { .case-studies { margin-top: 70px; } .case-studies-heading { display: block; } .case-studies-heading h3 { margin-top: 20px; } .case-study-grid { grid-template-columns: 1fr; } .case-carousel { padding: 9px; } .case-carousel-controls { gap: 8px; } .case-carousel-button { padding: 9px 11px; font-size: 10px; } .case-slide-view { height: min(62vh, 540px); min-height: 180px; } }

/* Case gallery: show the full artwork on each cover and expand the selected case across the grid. */
#cases-client-base .case-studies {
  margin-top: clamp(72px, 10vw, 128px);
  border-top: 1px solid rgba(255,255,255,.2);
  padding-top: clamp(30px, 5vw, 58px);
}
#cases-client-base .case-studies-heading {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  margin-bottom: clamp(24px, 4vw, 42px);
}
#cases-client-base .case-studies-heading .kicker { margin: 0 0 8px; }
#cases-client-base .case-studies-heading h3 {
  grid-column: 1 / -1;
  margin: 0;
  font: 500 clamp(42px, 7vw, 88px)/.88 'Cormorant Garamond', serif;
  letter-spacing: -.045em;
}
#cases-client-base .case-studies-heading h3 em { color: #1685ff; }
#cases-client-base .case-study-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
}
#cases-client-base .case-study-card {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.16);
  background: #0c0d10;
}
#cases-client-base .case-cover {
  border: 0;
  padding: 0;
  color: #fff;
  text-align: left;
  aspect-ratio: 1.48;
  isolation: isolate;
  background: #101216;
}
#cases-client-base .case-cover-backdrop {
  position: absolute;
  z-index: -2;
  inset: -18px;
  width: calc(100% + 36px);
  height: calc(100% + 36px);
  object-fit: cover;
  filter: blur(18px) brightness(.34);
  transform: scale(1.08);
}
#cases-client-base .case-cover-art {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 12px;
  transition: transform .45s ease;
}
#cases-client-base .case-cover-shade {
  background: linear-gradient(0deg, rgba(0,0,0,.88), transparent 68%);
}
#cases-client-base .case-cover-content { right: 22px; bottom: 20px; left: 22px; }
#cases-client-base .case-cover-content strong { font: 500 clamp(28px, 4vw, 48px)/.95 'Cormorant Garamond', serif; text-transform: none; }
#cases-client-base .case-cover-action { letter-spacing: .08em; }
#cases-client-base .case-carousel {
  padding: clamp(12px, 2.4vw, 28px);
  border-top: 1px solid rgba(255,255,255,.16);
  background: #08090b;
}
#cases-client-base .case-slide-view {
  height: min(76vh, 820px);
  min-height: 280px;
  padding: 8px;
  background: radial-gradient(ellipse at center, #171a20, #08090b 72%);
}
#cases-client-base .case-slide-image { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
#cases-client-base .case-carousel-controls { max-width: 820px; margin: 0 auto; grid-template-columns: 1fr auto 1fr auto; }
#cases-client-base .case-carousel-playback { justify-self: end; }
#cases-client-base .case-carousel-button { min-width: 120px; border-color: rgba(255,255,255,.26); }
@media (max-width: 700px) {
  #cases-client-base .case-studies-heading { display: block; }
  #cases-client-base .case-studies-heading h3 { margin-top: 8px; }
  #cases-client-base .case-study-grid { grid-template-columns: 1fr; gap: 14px; }
  #cases-client-base .case-cover { aspect-ratio: 1.25; }
  #cases-client-base .case-cover-content { right: 16px; bottom: 16px; left: 16px; }
  #cases-client-base .case-cover-art { padding: 8px; }
  #cases-client-base .case-carousel { padding: 10px; }
  #cases-client-base .case-slide-view { height: min(68svh, 620px); min-height: 220px; }
  #cases-client-base .case-carousel-controls { grid-template-columns: 1fr auto 1fr; gap: 6px; }
  #cases-client-base .case-carousel-button { min-width: 0; padding: 9px 10px; }
  #cases-client-base .case-carousel-playback { grid-column: 1 / -1; justify-self: center; }
}

/* Entrada e interação dos cards da Client Base. */
#cases-client-base .case-study-card.case-card-ready {
  position: relative;
  opacity: 0;
  transform: translateY(26px) scale(.985);
  transition:
    opacity .65s ease,
    transform .65s cubic-bezier(.2,.7,.2,1),
    border-color .3s ease,
    box-shadow .3s ease;
  transition-delay: calc(var(--case-index, 0) * 90ms);
}
#cases-client-base .case-study-card.case-card-ready.in {
  opacity: 1;
  transform: translateY(0) scale(1);
}
#cases-client-base .case-study-card:hover {
  transform: translateY(-7px) scale(1.01);
  border-color: rgba(22,133,255,.72);
  box-shadow: 0 20px 54px rgba(0,0,0,.38), 0 0 28px rgba(22,133,255,.12);
}
#cases-client-base .case-cover-backdrop { transition: filter .45s ease, transform .65s ease; }
#cases-client-base .case-study-card:hover .case-cover-backdrop {
  filter: blur(14px) brightness(.48);
  transform: scale(1.14);
}
#cases-client-base .case-cover-art { transition: transform .55s cubic-bezier(.2,.7,.2,1); }
#cases-client-base .case-study-card:hover .case-cover-art { transform: scale(1.035); }
#cases-client-base .case-cover-content { transition: transform .35s ease; }
#cases-client-base .case-study-card:hover .case-cover-content { transform: translateY(-4px); }
#cases-client-base .case-cover-action { display: flex; align-items: center; gap: 8px; }
#cases-client-base .case-cover-action::after { content: '↗'; color: #1685ff; font-size: 16px; }
@media (max-width: 700px) {
  #cases-client-base .case-study-card:hover { transform: none; }
}
.case-dialog {
  width: min(980px, calc(100% - 40px));
  max-width: none;
  max-height: min(92svh, 920px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 8px;
  background: #090a0c;
  color: #fff;
  box-shadow: 0 32px 110px rgba(0,0,0,.72);
}
.case-dialog[open] { animation: caseDialogIn .24s ease-out both; }
.case-dialog::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(7px); }
.case-dialog-header {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid rgba(255,255,255,.13);
  background: rgba(9,10,12,.94);
  backdrop-filter: blur(12px);
}
.case-dialog-header h2 { margin: 0; color: #fff; font: 500 clamp(22px, 4vw, 34px)/1 'Cormorant Garamond', serif; }
.case-dialog-close {
  flex: none;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  padding: 9px 15px;
  background: transparent;
  color: #fff;
  font: 500 11px 'DM Sans';
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.case-dialog-close:hover { border-color: #1685ff; background: rgba(22,133,255,.12); }
.case-dialog .case-carousel { border: 0; }
@keyframes caseDialogIn {
  from { opacity: 0; transform: translateY(12px) scale(.99); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 700px) {
  .case-dialog { width: calc(100% - 16px); max-height: 94svh; border-radius: 6px; }
  .case-dialog-header { padding: 12px 14px; }
  .case-dialog .case-slide-view { height: min(70svh, 650px); }
}
@media (prefers-reduced-motion: reduce) {
  #cases-client-base .case-study-card,
  .case-dialog,
  #cases-client-base .case-cover-backdrop,
  #cases-client-base .case-cover-art,
  #cases-client-base .case-cover-content,
  #cases-client-base .case-slide-image {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1;
  }
}

.traffic-segmentation .moment-aside {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  width: 100%;
  max-width: none;
}
.traffic-segmentation .moment-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Keep each story balanced and give its copy the full column width. */
#administracao-redes.editorial-traffic { padding: clamp(76px, 8vw, 110px) 0; }
#administracao-redes.editorial-traffic .traffic-positioning {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: clamp(22px, 3vw, 34px);
  margin-bottom: clamp(64px, 10vw, 132px);
  padding: 0 0 clamp(48px, 7vw, 88px);
  border-bottom: 1px solid rgba(255,255,255,.2);
}
#administracao-redes.editorial-traffic .traffic-positioning-heading { position: static; }
#administracao-redes.editorial-traffic .traffic-positioning-heading h2 {
  margin: 14px 0 0;
  max-width: 100%;
  color: #f5f5f5;
  font: 500 clamp(48px, 8vw, 96px)/.86 'Cormorant Garamond', serif;
  letter-spacing: -.045em;
  text-wrap: balance;
}
#administracao-redes.editorial-traffic .traffic-positioning-heading h2 em { color: #087bff; font-style: normal; }
#administracao-redes.editorial-traffic .traffic-positioning-copy { width: 100%; max-width: none; }
#administracao-redes.editorial-traffic .traffic-positioning-copy p {
  margin: 0 0 18px;
  color: #d9d9d9;
  font-size: clamp(15px, 1.2vw, 17px);
  line-height: 1.8;
}
#administracao-redes.editorial-traffic .traffic-positioning-copy .traffic-positioning-lead {
  margin: 0 0 24px;
  color: #fff;
  font: 500 clamp(24px, 3vw, 36px)/1.18 'Cormorant Garamond', serif;
}
#administracao-redes.editorial-traffic .traffic-positioning-copy .traffic-positioning-intro {
  max-width: 64ch;
  margin-bottom: clamp(28px, 4vw, 42px);
  color: #c7ccd4;
  font-size: clamp(15px, 1.25vw, 17px);
}
#administracao-redes.editorial-traffic .traffic-positioning-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 34px);
}
#administracao-redes.editorial-traffic .traffic-positioning-block {
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.22);
}
#administracao-redes.editorial-traffic .traffic-positioning-block h3 {
  margin: 0 0 10px;
  color: #1685ff;
  font: 600 10px/1.4 'DM Sans', sans-serif;
  letter-spacing: .13em;
  text-transform: uppercase;
}
#administracao-redes.editorial-traffic .traffic-positioning-block p {
  margin: 0;
  color: #d9d9d9;
  font-size: 14px;
  line-height: 1.7;
}
#administracao-redes.editorial-traffic .traffic-positioning-copy .traffic-positioning-close {
  margin-top: 26px;
  color: #fff;
  font-weight: 600;
}
#administracao-redes.editorial-traffic .traffic-positioning-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
  border: 1px solid rgba(22,133,255,.65);
  border-radius: 999px;
  padding: 13px 18px;
  color: #fff;
  font-size: 13px;
  transition: background .2s ease, border-color .2s ease;
}
#administracao-redes.editorial-traffic .traffic-positioning-cta span { color: #1685ff; font-size: 17px; }
#administracao-redes.editorial-traffic .traffic-positioning-cta:hover { border-color: #1685ff; background: rgba(22,133,255,.12); }
#administracao-redes.editorial-traffic .traffic-moment:not(.traffic-impulse) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 6vw, 88px);
  align-items: start;
}
#administracao-redes.editorial-traffic .traffic-moment:not(.traffic-impulse) .moment-copy,
#administracao-redes.editorial-traffic .traffic-moment:not(.traffic-impulse) .moment-aside {
  order: initial;
  width: 100%;
  max-width: none;
}
#administracao-redes.editorial-traffic .moment-aside,
#administracao-redes.editorial-traffic .moment-text { width: 100%; max-width: none; }
#administracao-redes.editorial-traffic .traffic-moment h2 {
  max-width: 100%;
  font-size: clamp(48px, 5.4vw, 84px);
  line-height: .94;
  text-wrap: balance;
}
#administracao-redes.editorial-traffic .traffic-impulse .moment-copy { min-width: 0; width: 100%; }
#administracao-redes.editorial-traffic .traffic-impulse .moment-text {
  display: grid;
  gap: 14px;
  max-width: 62ch;
  margin-top: clamp(22px, 3vw, 34px);
}
#administracao-redes.editorial-traffic .traffic-impulse {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  align-items: center;
}
#administracao-redes.editorial-traffic .traffic-impulse .moment-visual {
  display: flex;
  width: 100%;
  max-width: none;
  align-items: center;
  justify-content: center;
}
#administracao-redes.editorial-traffic .traffic-phone-stage { width: min(100%, 320px); margin-inline: auto; }
@keyframes phoneFloat {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -11px; }
}

@media (max-width: 560px) {
  #administracao-redes.editorial-traffic .traffic-impulse { grid-template-columns: minmax(0, 1fr); gap: 30px; align-items: start; }
  #administracao-redes.editorial-traffic .traffic-impulse .moment-visual { justify-self: center; }
  #administracao-redes.editorial-traffic .traffic-phone-stage { flex-basis: 270px; width: min(100%, 270px); }
}
@media (max-width: 700px) {
  #administracao-redes.editorial-traffic .traffic-positioning { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  #administracao-redes.editorial-traffic .traffic-moment:not(.traffic-impulse) {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
  #administracao-redes.editorial-traffic .traffic-moment h2 { font-size: clamp(40px, 7vw, 56px); }
  #administracao-redes.editorial-traffic .traffic-impulse h2 { font-size: clamp(42px, 6vw, 64px); }
  #administracao-redes.editorial-traffic .traffic-impulse .moment-text p { font-size: 15px; }
}
@media (max-width: 560px) {
  #administracao-redes.editorial-traffic { padding-top: 84px; }
  #administracao-redes.editorial-traffic .traffic-positioning { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-bottom: 64px; padding-bottom: 36px; }
  #administracao-redes.editorial-traffic .traffic-positioning-heading h2 { margin-top: 12px; font-size: clamp(38px, 11vw, 68px); }
  #administracao-redes.editorial-traffic .traffic-positioning-copy p { font-size: 15px; line-height: 1.7; }
  #administracao-redes.editorial-traffic .traffic-positioning-copy .traffic-positioning-lead { font-size: 28px; }
  #administracao-redes.editorial-traffic .traffic-positioning-columns { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  #administracao-redes.editorial-traffic .traffic-positioning-block p { font-size: 14px; }
  #administracao-redes.editorial-traffic .traffic-moment:not(.traffic-impulse) { gap: 18px; }
  #administracao-redes.editorial-traffic .traffic-moment h2 { font-size: clamp(40px, 10vw, 56px); line-height: .98; }
  #administracao-redes.editorial-traffic .traffic-phone-stage { flex-basis: 250px; width: min(100%, 250px); }
  #administracao-redes.editorial-traffic .traffic-segmentation .moment-aside { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #administracao-redes.editorial-traffic .traffic-segmentation .moment-list { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .traffic-phone { animation: none; }
}
