/* ─── TOKENS — Paleta Oficial Manual de Identidade Visual ─── */
:root {
  --roxo-profundo:  #3B1259;
  --roxo-medio:     #6B2FA0;
  --roxo-vivo:      #9B51E0;
  --lilas:          #D4A8F0;
  --grafite:        #1C0F2E;
  --texto-escuro:   #2A1840;
  --lilas-suave:    #EDE0F5;
  --creme:          #FAF7FF;
  --ouro:           #C9A84C;
  --ouro-claro:     #EDD98A;

  --text-dk:        #F5EEFF;
  --text-dk-m:      rgba(212,168,240,0.78);
  --text-dk-s:      rgba(212,168,240,0.42);
  --border-dk:      rgba(212,168,240,0.12);
  --border-dk-m:    rgba(212,168,240,0.22);
  --text-lt:        #2A1840;
  --text-lt-m:      rgba(42,24,64,0.62);
  --text-lt-s:      rgba(42,24,64,0.38);
  --border-lt:      rgba(42,24,64,0.08);
  --border-lt-m:    rgba(42,24,64,0.16);

  --font-d: 'Cormorant Garamond', Georgia, serif;
  --font-b: 'DM Sans', sans-serif;
  --pad:    clamp(1.5rem, 5vw, 5rem);
  --max:    1240px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--creme); color: var(--texto-escuro); font-family: var(--font-b); font-weight: 300; line-height: 1.7; cursor: none; }
@media (hover: none) { body { cursor: auto; } }
a { color: inherit; text-decoration: none; }
.section   { padding: clamp(5rem, 10vw, 9rem) var(--pad); }
.container { max-width: var(--max); margin: 0 auto; }

/* ─── SCROLL REVEAL ─── */
[data-reveal] { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].visible { opacity:1; transform:translateY(0); }

/* ─── GRAIN ─── */
.grain {
  position: fixed; inset: -200px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.024; pointer-events: none; z-index: 1000;
}

/* ─── NAV ─── */
#nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  padding: 1.4rem var(--pad);
  display: flex; align-items: center; justify-content: space-between;
  transition: background .4s, backdrop-filter .4s, border-color .4s, padding .3s;
  border-bottom: 1px solid transparent;
}
#nav.scrolled {
  padding: 1rem var(--pad);
  background: rgba(28,15,46,0.90);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-color: var(--border-dk);
}
.nav-logo { font-family: var(--font-d); font-size: 1.15rem; font-weight: 400; color: var(--text-dk); letter-spacing: .02em; }
.nav-logo span { color: var(--roxo-vivo); }
.nav-logo-img { display: block; height: 48px; width: auto; }
.nav-links { display:flex; align-items:center; gap:2.2rem; list-style:none; }
.nav-links a { font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dk-m); transition:color .2s; }
.nav-links a:hover { color: var(--lilas); }
.nav-cta { border:1px solid rgba(155,81,224,.38)!important; padding:.5rem 1.3rem; border-radius:2px; color:var(--lilas)!important; transition:background .2s,border-color .2s!important; }
.nav-cta:hover { background:rgba(155,81,224,.12)!important; border-color:var(--roxo-vivo)!important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.hamburger span { display:block; width:24px; height:1.5px; background:var(--text-dk); transition:transform .3s,opacity .3s; }
.hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobile-menu { display:none; position:fixed; inset:0; background:rgba(28,15,46,.97); z-index:800; flex-direction:column; align-items:center; justify-content:center; gap:2.4rem; }
.mobile-menu.open { display:flex; }
.mobile-menu a { font-family:var(--font-d); font-size:2.2rem; font-weight:300; color:var(--text-dk); transition:color .2s; }
.mobile-menu a:hover { color:var(--lilas); }
@media (max-width:768px) { .nav-links{display:none} .hamburger{display:flex} }

/* ─── HERO — fundo Grafite ─── */
#hero {
  position: relative; height: 100dvh; min-height: 640px;
  display: flex; align-items: center; overflow: hidden;
  background: url('../images/img1.png') center/cover no-repeat;
}
#hero-canvas { position:absolute; inset:0; width:100%; height:100%; }
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(28,15,46,.92) 0%, rgba(28,15,46,.68) 55%, rgba(59,18,89,.84) 100%);
}
.hero-content { position:relative; z-index:2; padding:0 var(--pad); max-width:min(740px,92vw); }
.eyebrow { font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--lilas); margin-bottom:1.8rem; opacity:0; transform:translateY(12px); animation:fadeUp .8s .4s forwards; }
h1 { font-family:var(--font-d); font-weight:300; font-size:clamp(2.8rem,6vw,5.2rem); line-height:1.08; margin-bottom:1.6rem; color:var(--text-dk); opacity:0; transform:translateY(20px); animation:fadeUp .9s .6s forwards; }
h1 em { font-style:italic; color:var(--lilas); }
.hero-sub { font-size:clamp(1.1rem,1.8vw,1.25rem); color:var(--text-dk-m); max-width:520px; margin-bottom:2.8rem; opacity:0; animation:fadeUp .8s .85s forwards; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:1rem; opacity:0; animation:fadeUp .8s 1.05s forwards; }
.scroll-hint { position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%); font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:var(--text-dk-s); z-index:2; animation:bob 2.4s ease-in-out infinite; }
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(7px)} }

/* ─── BOTÕES ─── */
.btn-primary { display:inline-block; padding:.9rem 2.2rem; background:var(--roxo-vivo); color:#fff; font-family:var(--font-b); font-size:.9rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; transition:background .22s,transform .18s; }
.btn-primary:hover { background:var(--roxo-medio); transform:translateY(-2px); }
.btn-ghost { display:inline-block; padding:.9rem 2rem; border:1px solid var(--border-dk-m); color:var(--text-dk); font-size:.9rem; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; transition:border-color .22s,background .22s,transform .18s; }
.btn-ghost:hover { border-color:var(--lilas); background:rgba(155,81,224,.08); transform:translateY(-2px); }

/* ─── LABELS & TITLES ─── */
.section-label { font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:var(--roxo-vivo); margin-bottom:1.2rem; display:flex; align-items:center; gap:.8rem; }
.section-label::before { content:''; display:inline-block; width:28px; height:1px; background:var(--roxo-vivo); }
.section-label.dk { color:var(--lilas); }
.section-label.dk::before { background:var(--lilas); }
.section-title { font-family:var(--font-d); font-weight:400; font-size:clamp(2.2rem,4.5vw,3.8rem); line-height:1.1; letter-spacing:-.01em; color:var(--texto-escuro); }
.section-title em { font-style:italic; color:var(--roxo-medio); }
.section-title.dk { color:var(--text-dk); }
.section-title.dk em { color:var(--lilas); }

/* ─── TICKER ─── */
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-wrap { overflow:hidden; padding:.95rem 0; background:var(--roxo-profundo); border-top:1px solid rgba(155,81,224,.18); border-bottom:1px solid rgba(155,81,224,.18); }
.ticker-track { display:flex; width:max-content; animation:ticker 34s linear infinite; }
.ticker-track:hover { animation-play-state:paused; }
.ticker-item { white-space:nowrap; padding:0 2.4rem; font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(212,168,240,.8); }
.ticker-item b { color:var(--lilas); font-weight:400; }
.ticker-sep { margin:0 .6rem; color:var(--roxo-vivo); opacity:.5; }

/* ─── SOBRE — fundo Creme ─── */
#sobre { background:var(--creme); }
.sobre-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,6vw,7rem); align-items:start; }
@media (max-width:768px) { .sobre-grid{grid-template-columns:1fr} }
.sobre-foto { position:relative; aspect-ratio:3/4; background:var(--lilas-suave); border-radius:2px; overflow:hidden; }
.sobre-foto-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1rem; color:var(--text-lt-s); font-size:.85rem; letter-spacing:.15em; text-transform:uppercase; }
.sobre-foto-badge { position:absolute; bottom:1.6rem; left:1.6rem; background:var(--ouro); color:var(--grafite); padding:.6rem 1.1rem; border-radius:2px; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; }
.sobre-texto p { color:var(--text-lt-m); margin-bottom:1.4rem; font-size:1.1rem; }
.sobre-texto p strong { color:var(--texto-escuro); font-weight:500; }
.sobre-stats { margin-top:3rem; display:grid; grid-template-columns:repeat(3,1fr); }
.stat-item { padding:1.8rem 1.2rem; border-left:1px solid var(--border-lt); }
.stat-item:first-child { padding-left:0; border-left:none; }
.stat-num { font-family:var(--font-d); font-size:clamp(2.2rem,3.5vw,3rem); font-weight:400; color:var(--roxo-medio); line-height:1; }
.stat-label { font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-lt-s); margin-top:.4rem; }

/* ─── FORMAÇÃO — fundo Lilás Suave ─── */
#formacao { background:var(--lilas-suave); }
.formacao-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:4rem; border:1px solid rgba(107,47,160,.12); }
@media (max-width:768px) { .formacao-grid { grid-template-columns:1fr; } }
.form-card { padding:clamp(1.8rem,3vw,2.4rem); background:var(--lilas-suave); transition:background .3s; position:relative; overflow:hidden; }
.form-card::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--roxo-vivo); transition:width .4s ease; }
.form-card:hover { background:var(--creme); }
.form-card:hover::after { width:100%; }
.form-icon { font-size:1.5rem; margin-bottom:1rem; }
.form-card h3 { font-family:var(--font-d); font-size:1.08rem; font-weight:500; margin-bottom:.5rem; color:var(--roxo-profundo); }
.form-card p { font-size:1rem; color:var(--text-lt-m); }
.ouro-badge { display:inline-block; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--grafite); background:var(--ouro); padding:.2rem .7rem; border-radius:1px; margin-top:.6rem; font-weight:500; }

/* ─── CONVÊNIOS ─── */
.convenios-strip { overflow:hidden; padding:.85rem 0; background:#E8D8F7; border-top:1px solid rgba(107,47,160,.1); }
@keyframes ticker-rev { from{transform:translateX(-50%)} to{transform:translateX(0)} }
.convenios-track { display:flex; width:max-content; animation:ticker-rev 28s linear infinite; }
.conv-item { white-space:nowrap; padding:0 2.2rem; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-lt-m); }
.conv-sep { margin:0 .4rem; color:var(--roxo-vivo); opacity:.35; }

/* ─── SERVIÇOS — fundo Creme ─── */
#servicos { background:var(--creme); }
.servicos-intro { max-width:540px; margin-bottom:4rem; }
.servicos-intro p { color:var(--text-lt-m); margin-top:1.2rem; }
.servicos-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1px; border:1px solid var(--border-lt); }
.servico-card { padding:clamp(1.8rem,3vw,2.8rem); background:var(--creme); transition:background .3s; position:relative; overflow:hidden; }
.servico-card::before { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--roxo-vivo); transition:width .4s ease; }
.servico-card:hover { background:var(--lilas-suave); }
.servico-card:hover::before { width:100%; }
.servico-num { font-family:var(--font-d); font-size:2.6rem; font-weight:300; color:var(--border-lt-m,rgba(42,24,64,.12)); line-height:1; margin-bottom:1.4rem; transition:color .3s; }
.servico-card:hover .servico-num { color:rgba(107,47,160,.18); }
.servico-tag { display:inline-block; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--roxo-vivo); border:1px solid rgba(155,81,224,.22); padding:.2rem .7rem; border-radius:1px; margin-bottom:1.2rem; }
.servico-card h3 { font-family:var(--font-d); font-size:1.2rem; font-weight:500; margin-bottom:.7rem; color:var(--roxo-profundo); }
.servico-card p { font-size:1rem; color:var(--text-lt-m); line-height:1.65; }

/* ─── DESTAQUE / PARALLAX — fundo Grafite ─── */
#destaque { position:relative; overflow:hidden; min-height:480px; display:flex; align-items:center; background:url('../images/img2.png') center/cover no-repeat; padding:clamp(5rem,10vw,9rem) var(--pad); }
#destaque-bg { position:absolute; inset:-40px; background:radial-gradient(ellipse 60% 80% at 70% 50%,rgba(155,81,224,.09) 0%,transparent 70%); will-change:transform; }
#destaque-orb1 { position:absolute; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(107,47,160,.07) 0%,transparent 70%); top:-100px; right:-100px; will-change:transform; }
.destaque-content { position:relative; z-index:1; max-width:var(--max); margin:0 auto; width:100%; }
.destaque-content blockquote { font-family:var(--font-d); font-weight:300; font-style:italic; font-size:clamp(1.8rem,3.4vw,3rem); line-height:1.28; max-width:760px; margin-bottom:2.5rem; color:var(--text-dk); }
.destaque-content blockquote em { color:var(--lilas); font-style:normal; }
.destaque-assinatura { font-size:.85rem; letter-spacing:.18em; text-transform:uppercase; color:var(--text-dk-s); }

/* ─── HOSPITAIS — fundo Lilás Suave ─── */
#hospitais { background:var(--lilas-suave); }
.hospitais-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.5rem; margin-top:3.5rem; }
.hospital-card { padding:2rem 1.8rem; border:1px solid rgba(107,47,160,.14); background:var(--creme); border-radius:2px; transition:border-color .3s,background .3s; display:flex; flex-direction:column; gap:.8rem; }
.hospital-card:hover { border-color:rgba(155,81,224,.42); background:var(--lilas-suave); }
.hospital-icon { font-size:1.4rem; }
.hospital-card h4 { font-family:var(--font-d); font-size:1rem; font-weight:500; color:var(--roxo-profundo); }
.hospital-card p { font-size:.9rem; color:var(--text-lt-s); letter-spacing:.08em; text-transform:uppercase; }

/* ─── CONSULTÓRIOS — fundo Roxo Profundo ─── */
#consultorios { background:var(--roxo-profundo); padding:clamp(5rem,10vw,9rem) var(--pad); }
.consultorios-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1px; margin-top:4rem; border:1px solid var(--border-dk); }
.cons-card { padding:clamp(1.8rem,3vw,2.4rem); background:rgba(59,18,89,.5); transition:background .3s; position:relative; overflow:hidden; }
.cons-card::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--lilas); transition:width .4s ease; }
.cons-card:hover { background:rgba(107,47,160,.28); }
.cons-card:hover::after { width:100%; }
.cons-num { font-family:var(--font-d); font-size:2rem; font-weight:300; color:rgba(212,168,240,.16); line-height:1; margin-bottom:1rem; }
.cons-card h4 { font-family:var(--font-d); font-size:1.05rem; font-weight:500; color:var(--text-dk); margin-bottom:.5rem; }
.cons-card p { font-size:1rem; color:var(--text-dk-m); line-height:1.6; }

/* ─── FAQ — fundo Creme ─── */
#faq { background:var(--creme); }
.faq-grid { margin-top:4rem; max-width:800px; }
.faq-item { border-bottom:1px solid var(--border-lt); padding:2rem 0; }
.faq-item:first-child { border-top:1px solid var(--border-lt); }
.faq-q { font-family:var(--font-d); font-size:1.08rem; font-weight:500; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; user-select:none; color:var(--roxo-profundo); transition:color .2s; }
.faq-q:hover { color:var(--roxo-medio); }
.faq-arrow { width:20px; height:20px; flex-shrink:0; transition:transform .3s; border:1px solid var(--border-lt-m,rgba(42,24,64,.16)); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.faq-item.open .faq-arrow { transform:rotate(180deg); background:var(--roxo-vivo); border-color:var(--roxo-vivo); }
.faq-item.open .faq-arrow svg path { stroke:#fff; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease,padding .3s ease; font-size:1.05rem; color:var(--text-lt-m); line-height:1.75; }
.faq-item.open .faq-a { max-height:300px; padding-top:1rem; }

/* ─── CTA FINAL — fundo Roxo Profundo ─── */
#cta-final { background:var(--roxo-profundo); padding:clamp(4.5rem,9vw,8rem) var(--pad); text-align:center; position:relative; overflow:hidden; }
#cta-final::before { content:''; position:absolute; top:-200px; left:50%; transform:translateX(-50%); width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(155,81,224,.12) 0%,transparent 70%); pointer-events:none; }
#cta-final h2 { position:relative; font-family:var(--font-d); font-size:clamp(2.2rem,4.5vw,3.4rem); font-weight:400; color:var(--text-dk); margin-bottom:1.2rem; }
#cta-final p { position:relative; color:var(--text-dk-m); max-width:500px; margin:0 auto 2.8rem; font-size:1.1rem; }
.cta-btns { position:relative; display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; }
.btn-roxo { display:inline-block; padding:.9rem 2.2rem; background:var(--roxo-vivo); color:#fff; font-size:.9rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; transition:background .22s,transform .18s; }
.btn-roxo:hover { background:#B06DF5; transform:translateY(-2px); }
.btn-outline-dk { display:inline-block; padding:.9rem 2rem; border:1px solid rgba(212,168,240,.3); color:var(--lilas); font-size:.9rem; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; transition:border-color .22s,background .22s,transform .18s; }
.btn-outline-dk:hover { border-color:rgba(212,168,240,.7); background:rgba(155,81,224,.1); transform:translateY(-2px); }

/* ─── CONTATO — fundo Lilás Suave ─── */
#contato { background:var(--lilas-suave); }
.contato-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,6vw,7rem); align-items:start; margin-top:4rem; }
@media (max-width:768px) { .contato-grid{grid-template-columns:1fr} }
.contato-info { display:flex; flex-direction:column; gap:2rem; }
.contato-item h4 { font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--roxo-vivo); margin-bottom:.5rem; }
.contato-item p, .contato-item a { font-size:1.05rem; color:var(--text-lt-m); }
.contato-item a:hover { color:var(--roxo-medio); }
.contato-form { display:flex; flex-direction:column; gap:1.2rem; }
.form-group { display:flex; flex-direction:column; gap:.4rem; }
.form-group label { font-size:.8rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-lt-s); }
.form-group input,.form-group textarea,.form-group select { background:var(--creme); border:1px solid var(--border-lt-m,rgba(42,24,64,.16)); color:var(--texto-escuro); font-family:var(--font-b); font-size:1rem; padding:.9rem 1.1rem; border-radius:2px; outline:none; transition:border-color .2s; -webkit-appearance:none; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { border-color:var(--roxo-vivo); }
.form-group textarea { resize:vertical; min-height:110px; }
.form-submit { background:var(--roxo-vivo); color:#fff; border:none; font-family:var(--font-b); font-size:.9rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; padding:1rem 2.2rem; border-radius:2px; cursor:pointer; transition:background .22s,transform .18s; align-self:flex-start; }
.form-submit:hover { background:#B06DF5; transform:translateY(-2px); }

/* ─── FOOTER — fundo Grafite ─── */
footer { background:var(--grafite); padding:clamp(3.5rem,6vw,5.5rem) var(--pad) 2.5rem; border-top:1px solid var(--border-dk); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
@media (max-width:768px) { .footer-grid{grid-template-columns:1fr; gap:2.5rem} }
.footer-brand .footer-logo { font-family:var(--font-d); font-size:1.15rem; font-weight:400; color:var(--text-dk); }
.footer-logo-img { display: block; height: 38px; width: auto; }
.footer-brand p { font-size:1rem; color:var(--text-dk-s); margin-top:.9rem; max-width:290px; line-height:1.65; }
.footer-col h5 { font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--lilas); margin-bottom:1.2rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.footer-col ul li a { font-size:.95rem; color:var(--text-dk-s); transition:color .2s; }
.footer-col ul li a:hover { color:var(--lilas); }
.footer-bottom { border-top:1px solid var(--border-dk); padding-top:2rem; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:.85rem; color:var(--text-dk-s); }
.footer-crm strong { color:var(--ouro-claro); }

/* ─── WA FLOAT ─── */
.wa-float { position:fixed; bottom:2rem; right:2rem; z-index:800; width:52px; height:52px; background:#25d366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 24px rgba(37,211,102,.28); transition:transform .2s,box-shadow .2s; }
.wa-float:hover { transform:scale(1.08); box-shadow:0 6px 32px rgba(37,211,102,.44); }

/* ─── CURSOR ─── */
#cur-dot { position:fixed; width:7px; height:7px; background:var(--roxo-vivo); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s; }
#cur-ring { position:fixed; width:36px; height:36px; border:1px solid rgba(155,81,224,.42); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .25s,height .25s,background .25s,border-color .25s; }
body.cursor-hover #cur-ring { width:60px; height:60px; background:rgba(155,81,224,.06); border-color:rgba(155,81,224,.6); }
@media (hover:none) { #cur-dot,#cur-ring{display:none} }
