/* Real Brilho — estilos
   Ordem: fontes · tokens · base · utilitários · header · hero · secções · rodapé · movimento reduzido */

/* ---------- FONTES (self-hosted, subconjunto latino) ---------- */
@font-face{
  font-family:'Van Dijk COM'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../assets/fonts/VanDijk-Regular.woff2') format('woff2');
}
@font-face{
  font-family:'Van Dijk COM'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../assets/fonts/VanDijk-Bold.woff2') format('woff2');
}

/* ---------- TOKENS ---------- */
:root{
  --bg:#faf9f6;
  --bg-alt:#f0ece4;
  --ink:#15141c;
  --ink-soft:#5c5a68;
  --orange:#f88c00;
  --orange-deep:#d97400;
  --orange-ink:#a85800;           /* laranja para texto sobre fundo claro (contraste AA) */
  --maroon:#630a00;
  --maroon-deep:#3f0600;
  --line:rgba(21,20,28,.12);
  --ease:cubic-bezier(.22,.68,.36,1);
  --gutter:40px;
  --max:1220px;
  --font-primary:'Bahnschrift','Segoe UI',system-ui,-apple-system,Roboto,'Helvetica Neue',Arial,sans-serif;
  --font-accent:'Van Dijk COM','Bahnschrift',cursive;
}

/* ---------- BASE ---------- */
*{box-sizing:border-box;}
html{scroll-padding-top:76px; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth;} }
body{
  margin:0; overflow-x:clip;
  background:var(--bg); color:var(--ink);
  font-family:var(--font-primary); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:var(--font-primary); font-optical-sizing:auto;
  font-weight:600; line-height:1.02; letter-spacing:-.01em; margin:0;
}
p{margin:0 0 1em; max-width:60ch;}
a{color:inherit;}
img{display:block; max-width:100%; height:auto;}
a,button{-webkit-tap-highlight-color:transparent;}
a:focus-visible,button:focus-visible{outline:3px solid var(--orange); outline-offset:2px;}

.wrap{max-width:var(--max); margin:0 auto; padding:0 var(--gutter);}
@media (max-width:640px){ :root{--gutter:22px;} }

.sr-only{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:fixed; top:8px; left:8px; z-index:300;
  padding:12px 18px; background:var(--orange); color:#1a1200; font-weight:600; text-decoration:none;
  transform:translateY(-200%);
}
.skip-link:focus{transform:none;}

/* ---------- BOTÕES ---------- */
.btn-row{display:flex; gap:16px; flex-wrap:wrap;}
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; gap:10px;
  min-height:48px; padding:15px 28px;
  font-weight:600; font-size:15px; text-decoration:none; touch-action:manipulation;
  transition:transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}
.btn::after{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(115deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg); transition:left .65s var(--ease); pointer-events:none;
}
.btn-primary{background:var(--orange); color:#1a1200;}
.btn-outline{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.55);}
.btn-dark{background:transparent; color:var(--ink); border:1px solid var(--ink);}
.btn:active{transform:scale(.97);}
@media (hover:hover){
  .btn-primary:hover{background:var(--orange-deep); transform:translateY(-2px);}
  .btn-outline:hover{border-color:#fff; transform:translateY(-2px);}
  .btn-dark:hover{background:var(--ink); color:#fff;}
  .btn:hover::after{left:130%;}
}

/* ---------- REVEAL (só ativo com JS: sem JS o conteúdo fica sempre visível) ---------- */
.js .reveal{
  opacity:0; transform:translateY(var(--rise,28px));
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.js .reveal.is-visible{opacity:1; transform:none;}
.js .reveal.is-done{transition-delay:0s !important;}
.js .reveal.num-pop{transform:scale(.35) rotate(-16deg);}
.js .reveal.num-pop.is-visible{transform:none;}
@media (max-width:640px){ :root{--rise:20px;} }

/* ---------- HEADER ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:60; padding:26px 0;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
header .nav{
  display:flex; align-items:center; justify-content:space-between;
  max-width:var(--max); margin:0 auto; padding:0 var(--gutter);
}
header .brand{display:flex; align-items:center; text-decoration:none;}
header .brand img{
  height:38px; width:auto;
  transition:filter .4s var(--ease), height .4s var(--ease);
  filter:drop-shadow(0 0 14px rgba(255,255,255,.55)) drop-shadow(0 2px 8px rgba(0,0,0,.3));
}
.nav-links{display:flex; gap:38px; list-style:none; margin:0; padding:0;}
.nav-links a{
  text-decoration:none; color:#fff; font-weight:500; font-size:14.5px;
  padding:4px 0; border-bottom:1px solid transparent;
  transition:color .4s var(--ease), border-color .25s ease;
}
.nav-cta{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--orange); color:#1a1200; text-decoration:none; font-weight:600; font-size:14px;
  padding:11px 22px; transition:background .25s ease, color .25s ease, transform .25s var(--ease);
}
.menu-btn{
  display:none; min-width:44px; min-height:44px; margin-right:-10px; padding:12px 10px;
  background:none; border:0; cursor:pointer;
}
.menu-btn span{
  display:block; width:22px; height:2px; margin:5px 0; background:#fff;
  transition:background .3s ease, transform .3s var(--ease), opacity .2s ease;
}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

header.scrolled{
  background:rgba(250,249,246,.94); backdrop-filter:blur(10px);
  padding:14px 0; box-shadow:0 6px 20px rgba(21,20,28,.06);
}
header.scrolled .brand img{height:32px; filter:drop-shadow(0 0 10px rgba(255,255,255,.35));}
header.scrolled .nav-links a{color:var(--ink);}
header.scrolled .menu-btn span{background:var(--ink);}
header.menu-open{background:rgba(250,249,246,.97); backdrop-filter:blur(10px);}
header.menu-open .menu-btn span{background:var(--ink);}

.nav-links a[aria-current]{border-bottom-color:var(--orange);}
@media (hover:hover){
  .nav-links a:hover{border-bottom-color:var(--orange);}
  .nav-cta:hover{background:#fff; transform:translateY(-1px);}
  header.scrolled .nav-cta:hover{background:var(--orange-deep); color:#fff;}
}

.drawer{
  display:none; flex-direction:column; margin-top:14px;
  background:var(--bg); border-bottom:1px solid var(--line);
  max-height:calc(100vh - 80px); max-height:calc(100dvh - 80px);
  overflow-y:auto; overscroll-behavior:contain;
}
.drawer.open{display:flex;}
.drawer a[aria-current]{color:var(--maroon); font-weight:600; box-shadow:inset 3px 0 0 var(--orange);}
.drawer a{
  min-height:48px; padding:16px var(--gutter);
  text-decoration:none; color:var(--ink); font-weight:500; border-top:1px solid var(--line);
}
@media (min-width:901px){ .drawer{display:none !important;} }
@media (max-width:900px){
  .nav-links,.nav-cta{display:none;}
  .menu-btn{display:block;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative; display:flex; align-items:flex-end; overflow:hidden; padding:0;
  height:100vh; height:100svh; min-height:620px; max-height:920px;
  background:var(--maroon);
}
.hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(15,10,8,.15) 0%,rgba(15,10,8,.15) 40%,rgba(15,8,5,.86) 100%);
}
.hero-bg,.hero-bg-spot{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.hero-bg{animation:kenburns 22s ease-in-out infinite alternate;}
@keyframes kenburns{ from{transform:scale(1);} to{transform:scale(1.09);} }

/* spotlight: o cursor revela a versão iluminada por baixo */
.hero-bg-spot{
  display:none;
  filter:grayscale(.9) brightness(.48) saturate(.55);
  -webkit-mask-image:radial-gradient(circle 220px at var(--mx,50%) var(--my,32%),transparent 0%,#000 68%);
  mask-image:radial-gradient(circle 220px at var(--mx,50%) var(--my,32%),transparent 0%,#000 68%);
}
.spot-hint{
  display:none; position:absolute; left:50%; top:38%; z-index:2; transform:translate(-50%,-50%);
  width:120px; height:120px; padding:10px; border:1px solid rgba(255,255,255,.5); border-radius:50%;
  align-items:center; justify-content:center; text-align:center;
  color:#fff; font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  opacity:.85; transition:opacity .5s ease; pointer-events:none;
}
.spot-hint.hide{opacity:0;}
@media (hover:hover) and (pointer:fine){
  .hero-bg-spot{display:block;}
  .spot-hint{display:flex;}
}

.hero-content{position:relative; z-index:2; width:100%; padding:0 var(--gutter) 76px;}
.hero-inner{max-width:var(--max); margin:0 auto;}
.hero-kicker{
  display:flex; align-items:center; gap:10px; margin-bottom:20px;
  color:var(--orange); font-weight:600; font-size:14.5px; letter-spacing:.02em;
  opacity:0; transform:translateY(12px); animation:riseIn .8s var(--ease) .15s forwards;
}
.hero-kicker::before{content:''; width:30px; height:2px; flex:none; background:var(--orange);}
.hero h1{
  max-width:14ch; color:#fff; font-size:clamp(2.6rem,6vw,5rem);
  opacity:0; transform:translateY(18px); animation:riseIn .9s var(--ease) .3s forwards;
}
.hero h1 em{
  font-family:var(--font-accent); font-style:italic; font-weight:400;
  color:#fff;
  background:linear-gradient(100deg,#fff 30%,var(--orange) 45%,#ffe3ad 50%,var(--orange) 55%,#fff 70%);
  background-size:260% 100%; background-position:120% 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation:shine 6s ease-in-out 1.6s infinite;
}
@keyframes shine{ 0%,45%{background-position:120% 0;} 70%,100%{background-position:-40% 0;} }
.hero-foot{
  display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:40px;
  margin-top:34px; padding-top:28px; border-top:1px solid rgba(255,255,255,.22);
  opacity:0; transform:translateY(16px); animation:riseIn .9s var(--ease) .5s forwards;
}
.hero-foot .lead{margin:0; max-width:44ch; color:#e9e4da; font-size:17px;}
@keyframes riseIn{ to{opacity:1; transform:none;} }
.scroll-cue{
  position:absolute; right:var(--gutter); bottom:26px; z-index:2;
  display:flex; align-items:center; gap:10px;
  color:#fff; opacity:.75; writing-mode:vertical-rl; font-size:12.5px; letter-spacing:.12em;
}
.scroll-cue::after{content:''; width:1px; height:46px; background:rgba(255,255,255,.6);}
.hero.paused .hero-bg,.hero.paused h1 em{animation-play-state:paused;}

@media (max-width:760px){
  .scroll-cue{display:none;}
  .hero-content{padding-bottom:52px;}
  .hero-foot{gap:24px; margin-top:24px; padding-top:22px;}
}
@media (max-width:480px){
  .hero{min-height:560px;}
  .hero-foot .lead{font-size:16px;}
  .hero-foot .btn-row,.hero-foot .btn{width:100%;}
  .hero-foot .btn{justify-content:center;}
}
@media (max-height:520px) and (orientation:landscape){
  .hero{height:auto; min-height:100vh;}
  .hero-content{padding-top:110px;}
}

/* ---------- MARQUEE ---------- */
.marquee{overflow:hidden; padding:18px 0; background:var(--orange);}
.marquee-track{display:flex; width:max-content; white-space:nowrap; animation:marqueeScroll 40s linear infinite;}
.marquee-track span{
  display:inline-block; margin:0 26px;
  font-family:var(--font-accent); font-style:italic; font-weight:600; font-size:clamp(18px,2.4vw,26px);
  color:var(--maroon);
}
.marquee-track .mark{font-style:normal; opacity:.7;}
.marquee.paused .marquee-track{animation-play-state:paused;}
@keyframes marqueeScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---------- TRUST ---------- */
.trust{padding:44px 0; background:var(--bg-alt);}
.trust .label{margin:0 auto 22px; max-width:none; text-align:center; color:var(--ink-soft); font-size:13.5px; letter-spacing:.03em;}
.trust img{width:100%; max-width:820px; margin:0 auto;}
@media (max-width:640px){ .trust{padding:32px 0;} }

/* ---------- SECÇÕES (comum) ---------- */
section{padding:120px 0;}
@media (max-width:900px){ section{padding:88px 0;} }
@media (max-width:640px){ section{padding:64px 0;} }

.section-head{max-width:640px; margin-bottom:60px;}
.section-head h2{font-size:clamp(2rem,3.4vw,2.9rem); font-weight:500;}
@media (max-width:640px){ .section-head{margin-bottom:36px;} }
.eyebrow{display:block; margin-bottom:14px; color:var(--orange-ink); font-weight:600; font-size:14px;}

.section-divider{position:relative; height:96px; overflow:hidden; background:var(--bg);}
.section-divider::before{content:''; position:absolute; inset:0; clip-path:polygon(0 100%,100% 0,100% 100%);}
.divider-orange::before{background:var(--orange);}
.divider-maroon{background:var(--bg-alt);}
.divider-maroon::before{background:var(--maroon);}
@media (max-width:640px){ .section-divider{height:56px;} }

/* ---------- SOBRE ---------- */
.about{display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:start;}
.about blockquote{
  margin:0 0 34px; max-width:32ch;
  font-family:var(--font-accent); font-weight:500; font-style:italic;
  font-size:clamp(1.3rem,2vw,1.6rem); line-height:1.35; color:var(--ink);
}
.about-body p{color:var(--ink-soft); font-size:16.5px;}
.principles{list-style:none; margin:0; padding:0;}
.principles li{display:grid; grid-template-columns:80px 1fr; gap:20px; padding:26px 0; border-top:1px solid var(--line);}
.principles li:last-child{border-bottom:1px solid var(--line);}
.principles .idx{display:inline-block; font-family:var(--font-accent); font-style:italic; color:var(--orange-ink); font-size:15px;}
.principles h3{margin-bottom:6px; font-size:18px;}
.principles p{margin:0; color:var(--ink-soft); font-size:15px;}
@media (max-width:900px){ .about{grid-template-columns:1fr; gap:48px;} }
@media (max-width:480px){ .principles li{grid-template-columns:44px 1fr; gap:12px; padding:20px 0;} }

.section-cta{margin-top:48px;}
@media (max-width:480px){ .section-cta .btn{width:100%; justify-content:center;} }

/* ---------- GALERIA ---------- */
.section-work{padding-top:0;}
.gallery{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:min(14vw,171px); gap:14px;}
.gallery figure{position:relative; margin:0; overflow:hidden; background:var(--ink);}
.gallery figure:nth-child(1){grid-column:1 / span 4; grid-row:1 / span 2;}
.gallery figure:nth-child(2){grid-column:5 / span 2; grid-row:1;}
.gallery figure:nth-child(3){grid-column:5 / span 2; grid-row:2;}
.gallery figure:nth-child(4){grid-column:1 / span 2; grid-row:3 / span 2;}
.gallery figure:nth-child(5){grid-column:3 / span 4; grid-row:3 / span 2;}
.gallery img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease);
}
.gallery figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:20px;
  background:linear-gradient(0deg,rgba(15,10,8,.82),transparent 70%);
  color:#fff; font-size:14.5px; font-weight:500;
  opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease;
}
@media (hover:hover){
  .gallery figure:hover img{transform:scale(1.06);}
  .gallery figure:hover figcaption{opacity:1; transform:none;}
}
@media (hover:none),(max-width:860px){
  .gallery figcaption{opacity:1; transform:none; padding:14px; font-size:13.5px;}
}
@media (max-width:860px){
  .gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:38vw; gap:10px;}
  .gallery figure:nth-child(n){grid-column:auto; grid-row:auto;}
  .gallery figure:nth-child(1){grid-column:1 / -1; grid-row:span 2;}
}
@media (max-width:520px){
  .gallery{grid-template-columns:1fr; grid-auto-rows:62vw;}
  .gallery figure:nth-child(n){grid-column:1 / -1; grid-row:auto;}
}

/* ---------- SERVIÇOS ---------- */
.services-list{border-top:1px solid var(--line);}
.service-line{
  display:grid; grid-template-columns:1fr 1.4fr; gap:48px; align-items:baseline;
  padding:38px 0; border-bottom:1px solid var(--line);
}
.service-head{display:flex; align-items:baseline; gap:16px;}
.service-num{
  display:inline-block; flex:none;
  font-family:var(--font-accent); font-style:italic; font-weight:600; font-size:22px; color:var(--orange-ink);
}
.service-line h3{font-size:24px; font-weight:500;}
.service-line p{margin:0; color:var(--ink-soft); font-size:15.5px;}
@media (max-width:760px){
  .service-line{grid-template-columns:1fr; gap:10px; padding:28px 0;}
  .service-line h3{font-size:20px;}
}

/* ---------- ABORDAGEM ---------- */
.approach{position:relative; overflow:hidden; padding:110px 0; background:var(--maroon); color:#fff;}
.approach::before{
  content:''; position:absolute; right:-10%; top:-30%; width:60%; height:160%;
  background:var(--maroon-deep); transform:rotate(14deg);
}
.approach .wrap{position:relative; display:grid; grid-template-columns:1fr .9fr; gap:64px; align-items:center;}
.approach blockquote{
  margin:0; font-family:var(--font-accent); font-style:italic; font-weight:500;
  font-size:clamp(1.6rem,2.6vw,2.3rem); line-height:1.28;
}
.approach blockquote span{color:var(--orange); font-style:normal;}
.approach ul{display:flex; flex-direction:column; gap:20px; list-style:none; margin:0; padding:0;}
.approach li{display:flex; align-items:flex-start; gap:14px; font-size:15.5px; color:#f3e6df;}
.approach .dot{flex:none; width:7px; height:7px; margin-top:8px; border-radius:50%; background:var(--orange);}
@media (max-width:860px){
  .approach{padding:72px 0;}
  .approach .wrap{grid-template-columns:1fr; gap:36px;}
  .approach::before{width:100%; right:-40%;}
}

/* ---------- CONTACTO ---------- */
.contact .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact-info h2{margin-bottom:16px;}
.contact-info > p{margin-bottom:34px; color:var(--ink-soft); font-size:16.5px;}
.contact-list{display:flex; flex-direction:column; list-style:none; margin:0 0 34px; padding:0;}
.contact-list li{display:flex; align-items:flex-start; gap:18px; padding:18px 0; border-top:1px solid var(--line);}
.contact-list li:last-child{border-bottom:1px solid var(--line);}
.contact-list .ico{flex:none; width:26px; font-family:var(--font-accent); font-style:italic; font-size:15px; color:var(--orange-ink);}
.contact-list a{font-weight:500; text-decoration:none;}
.contact-list .muted{color:var(--ink-soft); font-size:14.5px;}
.map-frame{width:100%; height:100%; min-height:360px; border:0; filter:grayscale(.25) contrast(1.05);}
@media (hover:hover){ .contact-list a:hover{color:var(--maroon);} }
@media (max-width:860px){
  .contact .wrap{grid-template-columns:1fr; gap:40px;}
  .map-frame{height:320px; min-height:280px;}
}
@media (max-width:480px){
  .contact-info .btn{width:100%; justify-content:center;}
  .contact-list a{display:inline-block; padding:4px 0;}
}

/* ---------- CURSOR PERSONALIZADO (só hero e galeria, só com rato) ---------- */
.cursor-ring{
  position:fixed; top:0; left:0; z-index:199;
  display:flex; align-items:center; justify-content:center;
  width:132px; height:132px; border:1px solid rgba(248,140,0,.65); border-radius:50%;
  opacity:0; pointer-events:none; will-change:transform;
  transition:opacity .25s ease, width .3s var(--ease), height .3s var(--ease), background .3s var(--ease);
}
.cursor-ring.active{opacity:1;}
.cursor-ring.big{width:276px; height:276px; background:rgba(248,140,0,.14); border-color:var(--orange);}
.cursor-label{opacity:0; text-align:center; font-size:15px; font-weight:600; color:var(--maroon); transition:opacity .2s ease;}
.cursor-ring.big .cursor-label{opacity:1; font-size:17px;}
.cursor-ring.on-dark{border-color:rgba(255,255,255,.65);}
.cursor-ring.on-dark .cursor-label{color:#fff;}
@media (hover:none){ .cursor-ring{display:none !important;} }

/* ---------- RODAPÉ ---------- */
footer{padding:56px 0 28px; background:var(--ink); color:#c9c7d2;}
.footer-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; margin-bottom:36px;}
.foot-logo{height:34px; width:auto; filter:drop-shadow(0 0 16px rgba(255,255,255,.16));}
.foot-links{display:flex; flex-wrap:wrap; gap:28px; list-style:none; margin:0; padding:0;}
.foot-links a{color:#c9c7d2; font-size:14.5px; text-decoration:none;}
.foot-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding-top:22px; border-top:1px solid rgba(255,255,255,.1);
  font-size:13px; color:#9a97a6;
}
.foot-credit a{color:#9a97a6; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.2);}
@media (hover:hover){
  .foot-links a:hover{color:var(--orange);}
  .foot-credit a:hover{color:var(--orange); border-bottom-color:var(--orange);}
}
@media (max-width:640px){
  footer{padding-bottom:calc(28px + 64px);}   /* espaço para o botão flutuante */
  .foot-bottom{flex-direction:column;}
  .foot-links{gap:12px 22px;}
}

.wa-float{
  position:fixed; z-index:60;
  right:max(22px,env(safe-area-inset-right)); bottom:max(22px,env(safe-area-inset-bottom));
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  background:#25d366; color:#fff; text-decoration:none;
  box-shadow:0 8px 22px rgba(0,0,0,.28); transition:transform .2s var(--ease);
}
.wa-float svg{width:27px; height:27px;}
@media (hover:hover){ .wa-float:hover{transform:scale(1.07);} }
@media (max-width:640px){ .wa-float{width:52px; height:52px;} }


/* ---------- ANIMAÇÕES EXTRA ---------- */

/* barra de progresso de leitura */
.progress{
  position:fixed; top:0; left:0; right:0; z-index:70; height:3px;
  background:var(--orange); transform:scaleX(0); transform-origin:0 50%;
  pointer-events:none; will-change:transform;
}

/* hero: o conteúdo desvanece e sobe ligeiramente ao fazer scroll (definido por JS) */
.hero-content{will-change:transform,opacity;}

/* eyebrow: traço que se desenha quando o título entra */
.eyebrow::before{
  content:''; display:inline-block; width:0; height:2px; margin-right:0; vertical-align:middle;
  background:currentColor; transition:width .7s var(--ease) .2s, margin-right .7s var(--ease) .2s;
}
.is-visible .eyebrow::before,html:not(.js) .eyebrow::before{width:28px; margin-right:10px;}

/* galeria: cada foto é revelada em cascata e "assenta" com um zoom suave */
.js .gallery.reveal{opacity:1; transform:none;}
.js .gallery figure{clip-path:inset(0 0 100% 0); transition:clip-path .9s var(--ease);}
.js .gallery img{scale:1.18; transition:transform .8s var(--ease), scale 1.4s var(--ease);}
.js .gallery.is-visible figure{clip-path:inset(0);}
.js .gallery.is-visible img{scale:1;}
.js .gallery.is-visible figure:nth-child(2){transition-delay:.12s;}
.js .gallery.is-visible figure:nth-child(3){transition-delay:.24s;}
.js .gallery.is-visible figure:nth-child(4){transition-delay:.36s;}
.js .gallery.is-visible figure:nth-child(5){transition-delay:.48s;}
.js .gallery.is-visible img{transition-delay:inherit;}

/* serviços: linha e número reagem ao rato */
.service-line{position:relative; transition:padding-left .4s var(--ease);}
.service-line::after{
  content:''; position:absolute; left:0; bottom:-1px; height:2px; width:100%;
  background:var(--orange); transform:scaleX(0); transform-origin:0 50%; transition:transform .5s var(--ease);
}
@media (hover:hover){
  .service-line:hover{padding-left:14px;}
  .service-line:hover::after{transform:scaleX(1);}
  .marquee:hover .marquee-track{animation-play-state:paused;}
}

/* botão de WhatsApp: anel que pulsa de vez em quando */
.wa-float::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:#25d366; z-index:-1;
  animation:waPulse 3.6s ease-out 2.5s infinite;
}
@keyframes waPulse{
  0%{transform:scale(1); opacity:.55;}
  35%,100%{transform:scale(1.7); opacity:0;}
}

/* pontos da abordagem: pulso discreto */
.approach .dot{position:relative;}
.approach .dot::after{
  content:''; position:absolute; inset:0; border-radius:50%; background:var(--orange);
  animation:dotPulse 2.8s ease-out infinite;
}
@keyframes dotPulse{ 0%{transform:scale(1); opacity:.6;} 70%,100%{transform:scale(3); opacity:0;} }
.approach li:nth-child(2) .dot::after{animation-delay:.5s;}
.approach li:nth-child(3) .dot::after{animation-delay:1s;}

/* ---------- MOVIMENTO REDUZIDO (um único bloco) ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important; transition:none !important;}
  .hero-kicker,.hero h1,.hero-foot{opacity:1; transform:none;}
  .hero h1 em{background-position:0 0;}
  .js .reveal{opacity:1; transform:none;}
  .js .gallery figure{clip-path:none;}
  .js .gallery img{scale:1;}
  .eyebrow::before{width:28px; margin-right:10px;}
  .progress{display:none;}
  .hero-content{transform:none !important; opacity:1 !important;}
}
