/* GRAHL / motion das seções e cards; abertura e hero originais preservadas. */
.gs-reading-progress { position: fixed; z-index: 70; top: 20vh; right: 13px; width: 2px; height: 60vh; background: rgba(184,120,152,.27); pointer-events: none; }
.gs-reading-progress span { display: block; width: 100%; height: 100%; background: #b87898; transform: scaleY(0); transform-origin: top center; will-change: transform; }
.gs-premium-home .portfolio-section { padding-top: clamp(88px, 10vw, 152px); }
.gs-premium-home .portfolio-heading h2 { max-width: 920px; }
.gs-premium-home .project-image-wrap { overflow: hidden; }
.gs-premium-home .project-image-wrap,
.gs-premium-home .about-visual > img,
.gs-regional-case__media,
.gs-case .simple-project-content img { border-radius: clamp(12px, 1.3vw, 18px); }
.gs-premium-home .project-image-wrap img { transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .75s ease; }
.gs-premium-home .project-card:hover .project-image-wrap img,
.gs-premium-home .project-card:focus-within .project-image-wrap img { transform: scale(1.045); filter: saturate(1.03); }
.gs-premium-home .project-open { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.gs-premium-home .project-card:hover .project-open,
.gs-premium-home .project-card:focus-within .project-open { transform: translate(3px,-3px); }
.gs-premium-home .gs-service-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
.gs-premium-home .gs-service-card:hover,
.gs-premium-home .gs-service-card:focus-within { transform: translateY(-5px); border-color: #9f7890; box-shadow: 0 22px 44px rgba(23,20,24,.1); }
.gs-premium-home .gs-service-card--featured:hover,
.gs-premium-home .gs-service-card--featured:focus-within { box-shadow: 0 24px 50px rgba(32,16,26,.25); }
.gs-premium-home .about-visual img { object-position: center 25%; filter: saturate(.86) contrast(1.03); }
.gs-premium-home .about-visual { overflow: visible; }
.gs-premium-home .button svg, .simple-page .button svg { transition: transform .25s ease; }
.gs-premium-home .button:hover svg, .gs-premium-home .button:focus-visible svg,
.simple-page .button:hover svg, .simple-page .button:focus-visible svg { transform: translate(3px,-3px); }
.simple-hero, .simple-project-hero { position: relative; overflow: hidden; }
.simple-hero::before, .simple-project-hero::before { content: ''; position: absolute; top: 18%; bottom: 18%; left: max(16px, 4vw); width: 2px; background: linear-gradient(transparent,#b87898,transparent); transform: scaleY(.78); opacity: .75; pointer-events: none; }
.gs-regional .regional-hero { background: radial-gradient(circle at 78% 47%, rgba(115,53,84,.37), transparent 36%), #111214; }
.gs-regional .regional-intro, .gs-regional .regional-formats, .gs-regional .regional-proof, .gs-regional .regional-faq { padding-top: clamp(72px,8vw,118px); padding-bottom: clamp(72px,8vw,118px); }
.gs-regional .regional-formats { background: #f5f1f2; }
.gs-regional .regional-proof { background: #eee9eb; }
.gs-region-places { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin: 32px 0 26px; padding: 0; list-style: none; }
.gs-region-places li { padding: 13px 15px; border-top: 1px solid rgba(100,51,79,.35); color: #362630; font-size: 13px; font-weight: 600; letter-spacing: -.02em; }
.gs-regional-case { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); align-items: center; gap: clamp(34px,7vw,114px); }
.gs-regional-case__media { max-height: 560px; overflow: hidden; background: #dfd5d7; }
.gs-regional-case__media img { display: block; width: 100%; height: min(42vw,560px); object-fit: cover; object-position: center 45%; transition: transform .7s ease; }
.gs-regional-case__media:hover img { transform: scale(1.035); }
.gs-regional-case h2 { margin-top: 25px; }
.gs-regional-case p { max-width: 500px; margin: 24px 0; line-height: 1.7; }
.gs-case .simple-project-content img { transition: filter .6s ease, transform .6s ease; }
.gs-case .simple-project-content img:hover { filter: saturate(.9); transform: scale(1.012); }
.gs-case .offer-detail { max-width: 610px; }
.gs-case .offer-detail-label:not(:first-child) { margin-top: 18px; }
.gs-case-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; max-width: 560px; margin: 26px 0; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gs-case-facts div { min-width: 0; }
.gs-case-facts dt { color: var(--plum); font-family: DM Mono, monospace; font-size: 9px; letter-spacing: .12em; }
.gs-case-facts dd { margin: 8px 0 0; color: var(--carbon); font-size: 16px; line-height: 1.4; }
html .gs-landing [data-reveal] { opacity: 1; transform: none; }
html.gs-motion-on .gs-landing [data-reveal].is-visible { animation: gs-soft-in .62s cubic-bezier(.16,1,.3,1) backwards; }
.plans .plan-card { transition: transform .32s ease, box-shadow .32s ease; }
.plans .plan-card:hover, .plans .plan-card:focus-within { transform: translateY(-5px); box-shadow: 0 18px 42px rgba(18,14,18,.11); }
html.gs-motion-on .simple-hero h1, html.gs-motion-on .simple-project-hero h1 { animation: gs-kinetic-in .72s .06s cubic-bezier(.16,1,.3,1) both; }
html.gs-motion-on .simple-hero p, html.gs-motion-on .simple-project-hero p { animation: gs-soft-in .55s .26s both; }
html.gs-motion-on .gs-enter.gs-in-view { animation: gs-soft-in .66s cubic-bezier(.16,1,.3,1) backwards; }
html.gs-motion-on .gs-service-card:nth-child(2).gs-in-view, html.gs-motion-on .project-card:nth-child(2).gs-in-view { animation-delay: .1s; }
html.gs-motion-on .gs-service-card:nth-child(3).gs-in-view { animation-delay: .2s; }
@keyframes gs-kinetic-in { from { opacity: 0; transform: translate3d(0,38px,0); } to { opacity: 1; transform: none; } }
@keyframes gs-soft-in { from { opacity: 0; transform: translate3d(0,20px,0); } to { opacity: 1; transform: none; } }
@media (max-width: 800px) {
  .gs-reading-progress { top: 0; left: 0; right: 0; width: 100%; height: 2px; }
  .gs-reading-progress span { transform: scaleX(0); transform-origin: left center; }
  .gs-premium-home .gs-service-card:hover, .gs-premium-home .gs-service-card:focus-within { transform: none; box-shadow: none; }
  .gs-regional-case { grid-template-columns: 1fr; gap: 28px; }
  .gs-regional-case__media img { height: clamp(310px,65vw,460px); object-position: center 38%; }
  .gs-region-places { margin: 26px 0; }
  .simple-hero::before, .simple-project-hero::before { left: 12px; }
  .gs-premium-home .about-visual img { object-position: center top; }
}
@media (max-width: 600px) {
  .gs-regional-case__media img { height: 330px; }
  .gs-regional .regional-intro, .gs-regional .regional-formats, .gs-regional .regional-proof, .gs-regional .regional-faq { padding-top: 74px; padding-bottom: 74px; }
}
@media (prefers-reduced-motion: reduce) {
  .gs-reading-progress { display: none !important; }
  .gs-premium-home .project-image-wrap img,
  .gs-premium-home .gs-service-card,
  .gs-case .simple-project-content img,
  .plans .plan-card,
  .gs-premium-home .button svg, .simple-page .button svg { animation: none !important; transition: none !important; transform: none !important; }
  .gs-enter { opacity: 1 !important; transform: none !important; animation: none !important; }
  .gs-landing [data-reveal] { animation: none !important; transition: none !important; }
}

/* ---- Camada premium (2026-10-03): só ativa com html.gs-motion-on, ou seja, nunca em reduced-motion ---- */
html.gs-motion-on .hero { overflow: hidden; }
html.gs-motion-on .hero .hero-media { translate: 0 var(--gs-py, 0px); animation: gs-hero-drift 28s ease-in-out infinite alternate; will-change: transform; }
html.gs-motion-on .gs-hero-video { object-fit: cover; width: 100%; height: 100%; }
html.gs-motion-on .gs-film { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; mix-blend-mode: screen; }
html.gs-motion-on .contact-section { position: relative; isolation: isolate; overflow: hidden; }
html.gs-motion-on .contact-section > .container { position: relative; z-index: 1; }
@keyframes gs-hero-drift { from { transform: scale(1.04) translate3d(0,0,0); } to { transform: scale(1.13) translate3d(-1.6%,-1.2%,0); } }

/* Máscara de linhas (h1 do hero e h2 das seções) */
html.gs-motion-on .gs-line { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
html.gs-motion-on .gs-line__inner { display: inline-block; transition: transform .9s cubic-bezier(.16,1,.3,1), opacity .9s ease; transition-delay: calc(var(--i) * 90ms); }
html.gs-motion-on .gs-lines .gs-line__inner { transform: translate3d(0,105%,0); opacity: 0; }
html.gs-motion-on .gs-lines.gs-lines-in .gs-line__inner { transform: none; opacity: 1; }

/* Entrada do hero após a abertura */
html.gs-motion-on.gs-hero-wait .hero h1 .gs-line__inner { transform: translate3d(0,105%,0); opacity: 0; }
html.gs-motion-on .hero h1 .gs-line__inner { transition-delay: calc(.15s + var(--i) * 110ms); transition-duration: 1.1s; }
html.gs-motion-on .hero .hero-kicker, html.gs-motion-on .hero .hero-subtitle, html.gs-motion-on .hero .hero-actions, html.gs-motion-on .hero .hero-foot { transition: opacity .9s ease, transform .9s cubic-bezier(.16,1,.3,1); }
html.gs-motion-on.gs-hero-wait .hero .hero-kicker, html.gs-motion-on.gs-hero-wait .hero .hero-subtitle, html.gs-motion-on.gs-hero-wait .hero .hero-actions, html.gs-motion-on.gs-hero-wait .hero .hero-foot { opacity: 0; transform: translate3d(0,18px,0); }
html.gs-motion-on.gs-hero-play .hero .hero-kicker { transition-delay: .05s; }
html.gs-motion-on.gs-hero-play .hero .hero-subtitle { transition-delay: .55s; }
html.gs-motion-on.gs-hero-play .hero .hero-actions { transition-delay: .7s; }
html.gs-motion-on.gs-hero-play .hero .hero-foot { transition-delay: .95s; }
html.gs-motion-on .hero .gs-film, html.gs-motion-on .hero .hero-media { transition: opacity 1.6s ease; }
html.gs-motion-on.gs-hero-wait .hero .gs-film { opacity: 0; }

/* Cases: revelação por cortina */
html.gs-motion-on .project-card.gs-enter .project-image-wrap { clip-path: inset(100% 0 0 0); transition: clip-path 1.1s cubic-bezier(.77,0,.175,1); }
html.gs-motion-on .project-card.gs-enter .project-image-wrap img { scale: 1.12; transition: scale 1.4s cubic-bezier(.16,1,.3,1), transform .8s var(--ease-out), filter .5s ease; }
html.gs-motion-on .project-card.gs-in-view .project-image-wrap { clip-path: inset(0 0 0 0); }
html.gs-motion-on .project-card.gs-in-view .project-image-wrap img { scale: 1; }
html.gs-motion-on .project-card:nth-child(2).gs-in-view .project-image-wrap { transition-delay: .12s; }

/* Processo: linha e pontos em sequência */
html.gs-motion-on .process-list { position: relative; }
html.gs-motion-on .process-list::before { content: ''; position: absolute; top: -1px; left: 0; right: 0; height: 1px; background: var(--plum); transform: scaleX(0); transform-origin: left center; transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
html.gs-motion-on .process-list.gs-steps-on::before { transform: scaleX(1); }
html.gs-motion-on .process-list .step-dot { scale: .4; opacity: 0; transition: scale .6s cubic-bezier(.34,1.56,.64,1), opacity .4s ease; transition-delay: calc(var(--i) * 140ms + .15s); }
html.gs-motion-on .process-list.gs-steps-on .step-dot { scale: 1; opacity: 1; }

/* CRM: linha desenhada pela rolagem */
html.gs-motion-on .gs-flow-fill { position: absolute; top: 30px; bottom: 30px; left: 11px; width: 1px; background: var(--plum-light); transform: scaleY(0); transform-origin: top center; will-change: transform; }
html.gs-motion-on .flow-item span, html.gs-motion-on .flow-item strong { transition: background-color .45s ease, color .45s ease, border-color .45s ease; }
html.gs-motion-on .flow-item.gs-flow-on span { background: var(--plum); border-color: var(--plum-light); color: var(--white); }
html.gs-motion-on .flow-item.gs-flow-on strong { color: var(--white); }

/* FAQ: corpo animado pelo JS */
html.gs-motion-on .faq-list details p { overflow: hidden; }

/* Botões magnéticos */
html.gs-motion-on .button-plum, html.gs-motion-on .header-cta { transition: translate .35s cubic-bezier(.16,1,.3,1), background-color .3s ease, color .3s ease; }

@media (max-width: 800px) {
  html.gs-motion-on .hero .hero-media { animation-duration: 36s; }
  html.gs-motion-on .gs-line__inner { transition-duration: .7s; }
  html.gs-motion-on .project-card.gs-enter .project-image-wrap { transition-duration: .8s; }
}
html.gs-motion-on .hero > .container { position: relative; z-index: 1; }
