/* ═══ Efeitos aprovados — Augusto Castro Advocacia ═══ */
:root{--fx-ease:cubic-bezier(.2,.7,.2,1)}

/* 1 · texto em cascata */
.fx-words .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.fx-words .w>span{display:inline-block;transform:translateY(112%);transition:transform 1s var(--fx-ease);transition-delay:calc(var(--i) * 55ms)}
.fx-words.is-in .w>span{transform:none}
html.fx .reveal.fx-words{transition:opacity .4s ease}

/* 2 · linha dourada que se desenha */
html.fx.par-fixo main>.divider::after{transform:translateX(-50%) scaleX(0);transform-origin:left;transition:transform 1.5s var(--fx-ease)}
html.fx.par-fixo main>.divider.is-in::after{transform:translateX(-50%) scaleX(1)}
html.fx .step,html.fx .diff{position:relative}
html.fx .step::after,html.fx .diff::after{content:"";position:absolute;left:0;top:-1px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.3s var(--fx-ease) .15s;pointer-events:none}
html.fx .step.is-in::after,html.fx .diff.is-in::after{transform:scaleX(1)}
html.fx .section-head .label{position:relative;padding-bottom:0}
html.fx .fx-rule{display:block;width:72px;height:1px;background:linear-gradient(90deg,var(--gold),rgba(var(--gold-rgb,176,144,79),0));transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--fx-ease) .2s;margin:-6px 0 14px}
html.fx .fx-rule.is-in{transform:scaleX(1)}

/* 3 · borda luminosa + 10 · cartão 3D (cards) */
html.fx .cards{perspective:1100px}
html.fx .card{position:relative;--mx:50%;--my:50%;transform-style:preserve-3d;transition:transform .35s var(--fx-ease),border-color .25s ease}
html.fx .card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;padding:1px;background:radial-gradient(240px circle at var(--mx) var(--my),rgba(var(--gold-rgb,176,144,79),.75),transparent 62%);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s ease}
html.fx .card:hover::before{opacity:1}
html.fx .card .fx-sheen{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.28) 50%,transparent 58%);opacity:0;transition:opacity .35s}
html.fx .card:hover .fx-sheen{opacity:1}
html.fx .about-photo .float-card{transform-style:preserve-3d;transition:transform .35s var(--fx-ease)}

/* 6 · brilho dourado no destaque */
html.fx .fx-shine{background:linear-gradient(100deg,var(--gold-deep) 0%,var(--gold) 35%,#E6CF90 50%,var(--gold) 65%,var(--gold-deep) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:fx-shine 6.5s linear infinite}
@keyframes fx-shine{to{background-position:-220% 0}}

/* 7 · faixa deslizante */
.fx-marquee{position:relative;z-index:1;background:var(--ink);border-top:1px solid var(--hairline-dark);border-bottom:1px solid var(--hairline-dark);padding:20px 0;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.fx-marquee .track{display:flex;gap:56px;width:max-content;animation:fx-mq 42s linear infinite}
.fx-marquee:hover .track{animation-play-state:paused}
.fx-marquee span{font:400 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--white-72);white-space:nowrap}
.fx-marquee i{color:var(--gold);font-style:normal;margin-left:56px}
@keyframes fx-mq{to{transform:translateX(-50%)}}

/* 8 · botões: preenchimento + atração */
html.fx .btn{position:relative;overflow:hidden;isolation:isolate;transition:color .45s var(--fx-ease),border-color .45s ease,transform .35s var(--fx-ease)}
html.fx .btn::after{content:"";position:absolute;inset:-1px;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--fx-ease);background:var(--ink)}
html.fx .btn:hover::after,html.fx .btn:focus-visible::after{transform:scaleX(1)}
html.fx .btn-primary:hover{background:var(--gold);color:var(--white)}
html.fx .btn-primary::after{background:var(--ink)}
html.fx .btn-dark::after{background:var(--gold)}
html.fx .btn-dark:hover{background:var(--ink);color:var(--ink)}
html.fx .btn-ghost-dark::after{background:var(--gold)}
html.fx .btn-ghost-dark:hover{background:transparent;color:var(--ink);border-color:var(--gold)}
html.fx .final-cta .btn-primary::after{background:var(--white)}
html.fx .final-cta .btn-primary:hover{color:var(--ink)}

/* 9 · linha do tempo que preenche ao rolar */
html.fx .steps{position:relative;--tl:0}
html.fx .steps::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:calc(var(--tl) * 100%);background:var(--gold);transition:width .25s linear;z-index:1}
html.fx .step{position:relative}
html.fx .step::after{display:none}
html.fx .step::before{content:"";position:absolute;left:0;top:-6px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1px solid var(--hairline);transition:background .4s,border-color .4s,box-shadow .4s;z-index:2}
html.fx .step.is-on::before{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 6px rgba(var(--gold-rgb,176,144,79),.16)}
@media (max-width:767px){html.fx .steps::before{width:1px;height:calc(var(--tl) * 100%);left:-14px;top:0;transition:height .25s linear}html.fx .steps{margin-left:14px}html.fx .step::before{left:-19px;top:-1px}}

/* 12 · fundo tipográfico em paralaxe */
html.fx #sobre,html.fx #chamada-final{position:relative;overflow:hidden}
html.fx #sobre>.container,html.fx #chamada-final>.container{position:relative;z-index:1}
.fx-bigword{position:absolute;left:0;right:0;top:auto;bottom:.1em;text-align:center;font:300 15vw/1 var(--serif);letter-spacing:-.01em;color:rgba(var(--gold-rgb,176,144,79),.09);pointer-events:none;white-space:nowrap;will-change:transform;user-select:none;z-index:0}
#chamada-final .fx-bigword{color:rgba(var(--gold-rgb,176,144,79),.07)}

/* 13 · cabeçalho que encolhe */
html.fx .site-header{transition:background-color .45s ease,box-shadow .45s ease}
html.fx .site-header .header-inner{transition:min-height .45s var(--fx-ease)}
html.fx .site-header .brand-icon{transition:width .45s var(--fx-ease),height .45s var(--fx-ease)}
html.fx .site-header.is-scrolled{background:rgba(26,26,24,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 10px 30px -20px rgba(0,0,0,.6)}
html.fx .site-header.is-scrolled .header-inner{min-height:58px}
html.fx .site-header.is-scrolled .brand-icon{width:36px;height:36px}
.fx-progress{position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--gold);transition:width .15s linear;z-index:2}

@media (prefers-reduced-motion:reduce){
  .fx-words .w>span{transform:none!important;transition:none!important}
  html.fx.par-fixo main>.divider::after,html.fx .step::after,html.fx .diff::after,html.fx .fx-rule{transform:translateX(-50%) scaleX(1)!important;transition:none!important}
  html.fx .step::after,html.fx .diff::after,html.fx .fx-rule{transform:scaleX(1)!important}
  .fx-marquee .track,html.fx .fx-shine{animation:none!important}
  .fx-bigword{transform:none!important}
}
