/* ============================================================
   Dr. Ruimário Coelho · sections.css
   Hero, ticker, sobre/timeline, bento, HOLEP, ensino,
   depoimentos, localização, FAQ, CTA final + responsivo
   ============================================================ */

/* ---------- HERO ---------- */
.hero {
  min-height: 100dvh;
  display: flex; flex-direction: column; justify-content: center;
  background:
    radial-gradient(ellipse 90% 70% at 78% 30%, rgba(24, 56, 70, 0.85) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 15% 85%, rgba(24, 56, 70, 0.5) 0%, transparent 60%),
    var(--ink);
  overflow: hidden;
  padding-top: var(--nav-h);
}

/* Vídeo de fundo (Higgsfield): só desktop com motion; o JS injeta o src */
.hero__media { position: absolute; inset: 0; overflow: hidden; }
.hero__video {
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.6s ease;
}
.hero__video.is-playing { opacity: 0.38; }
.hero__media::after {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(to right, rgba(13, 37, 45, 0.92) 0%, rgba(13, 37, 45, 0.55) 55%, rgba(13, 37, 45, 0.35) 100%),
    linear-gradient(to top, rgba(13, 37, 45, 0.9) 0%, transparent 45%);
}

.hero__pattern {
  position: absolute; inset: 0;
  background-image: url('../assets/logo/rc-mono-branco.png');
  background-size: 210px auto;
  background-repeat: repeat;
  opacity: 0.012;
  transform: rotate(-8deg) scale(1.3);
  pointer-events: none;
}

/* Glow estático: a versão animada com blur(40px) pesava em GPUs fracas */
.hero__glow {
  position: absolute;
  width: 560px; height: 560px; border-radius: 50%;
  background: radial-gradient(circle, rgba(110, 154, 166, 0.14) 0%, transparent 62%);
  top: 8%; right: 12%;
  pointer-events: none;
}

.hero__inner {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: var(--space-8);
  position: relative; z-index: 2;
  padding-block: var(--space-8);
}

.hero__eyebrow {
  display: flex; align-items: center; gap: 0.9rem;
  font-size: var(--text-xs); font-weight: 500;
  letter-spacing: 0.34em; text-transform: uppercase;
  color: var(--accent-soft);
  margin-bottom: var(--space-4);
}
.hero__eyebrow-line { width: 44px; height: 1px; background: var(--accent); flex-shrink: 0; }

.hero__title {
  font-size: var(--text-hero);
  font-weight: 380;
  margin-bottom: var(--space-4);
}
/* Intro do hero dirigida por CSS: a classe .hero-in no <html> dispara tudo */
.hero__line { display: block; overflow: hidden; }
.hero__line > span {
  display: block; transform: translateY(112%);
  transition: transform 1.05s var(--ease-smooth);
}
.hero__line:nth-child(2) > span { transition-delay: 0.14s; }
.hero__line:nth-child(3) > span { transition-delay: 0.28s; }
.hero__line--em > span { font-style: italic; color: var(--accent-soft); }

[data-hero-reveal] {
  opacity: 0; transform: translateY(26px);
  transition: opacity 0.9s ease, transform 0.9s var(--ease-smooth);
}
.hero__text [data-hero-reveal]:nth-of-type(1) { transition-delay: 0.1s; }
.hero__sub[data-hero-reveal] { transition-delay: 0.5s; }
.hero__actions[data-hero-reveal] { transition-delay: 0.65s; }
.hero__stats[data-hero-reveal] { transition-delay: 0.8s; }

.hero__portrait {
  opacity: 0; transform: translateY(56px) scale(0.97);
  transition: opacity 1.25s ease 0.35s, transform 1.25s var(--ease-smooth) 0.35s;
}

html.hero-in .hero__line > span { transform: none; }
html.hero-in [data-hero-reveal] { opacity: 1; transform: none; }
html.hero-in .hero__portrait { opacity: 1; transform: none; }

html.no-motion .hero__line > span,
html.no-motion [data-hero-reveal],
html.no-motion .hero__portrait {
  transform: none; opacity: 1; transition: none;
}

.hero__sub {
  font-size: var(--text-lg);
  color: var(--paper-dim);
  max-width: 46ch;
  margin-bottom: var(--space-8);
}

.hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: var(--space-8); }

.hero__stats {
  display: flex; gap: clamp(1.5rem, 4vw, 3.5rem);
  border-top: 1px solid rgba(224, 228, 223, 0.12);
  padding-top: var(--space-4);
}
.hero__stats dt {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  color: var(--white);
  line-height: 1;
}
.hero__stats dd { font-size: var(--text-xs); color: var(--gray); max-width: 15ch; margin-top: 0.4rem; }

.hero__portrait {
  position: relative;
  justify-self: end;
  width: min(100%, 460px);
}
.hero__portrait-frame {
  border-radius: 240px 240px var(--radius-lg) var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: relative;
}
.hero__portrait-frame::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(13, 37, 45, 0.55) 0%, transparent 38%);
}
.hero__portrait img { width: 100%; height: auto; }

.hero__portrait-ring {
  position: absolute; inset: -14px -14px auto -14px;
  aspect-ratio: 1;
  border: 1px solid rgba(143, 179, 188, 0.25);
  border-radius: 50%;
  pointer-events: none;
}

.hero__portrait-tag {
  position: absolute; left: -18%; bottom: 9%;
  background: rgba(8, 26, 32, 0.78);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(224, 228, 223, 0.12);
  border-radius: var(--radius-md);
  padding: 0.9rem 1.3rem;
  display: grid; gap: 0.2rem;
  box-shadow: var(--shadow-md);
}
.hero__portrait-tag strong { font-size: var(--text-sm); font-weight: 600; }
.hero__portrait-tag span { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--paper-dim); }

.hero__scrollhint {
  position: absolute; bottom: 1.6rem; left: 50%;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
  color: var(--gray); text-decoration: none;
  font-size: 0.64rem; letter-spacing: 0.3em; text-transform: uppercase;
  z-index: 2;
  transition: color 0.3s ease;
}
.hero__scrollhint:hover { color: var(--paper); }
.hero__scrollhint svg { animation: scrollhint-bob 1.8s ease-in-out infinite; }
@keyframes scrollhint-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }

/* ---------- TICKER ---------- */
.ticker {
  background: var(--petrol);
  border-block: 1px solid rgba(224, 228, 223, 0.08);
  overflow: hidden;
  padding-block: 1.1rem;
}
.ticker__track {
  display: flex; align-items: center; gap: 3rem;
  width: max-content;
}
.ticker__track.is-looping { animation: ticker-scroll 36s linear infinite; will-change: transform; }
@keyframes ticker-scroll { to { transform: translateX(-50%); } }
html.no-motion .ticker__track.is-looping { animation: none; }
.ticker__track span {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-style: italic;
  color: var(--paper-dim);
  white-space: nowrap;
}
.ticker__track i {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent); opacity: 0.7; flex-shrink: 0;
}

/* ---------- SOBRE / TIMELINE (fundo claro) ---------- */
.sobre { padding-block: var(--space-16); }
.sobre__grid {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: start;
}

.sobre__portrait {
  position: sticky; top: calc(var(--nav-h) + 2rem);
  border-radius: var(--radius-lg);
  overflow: visible;
}
.sobre__portrait picture { display: block; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); }
.sobre__portrait img { width: 100%; height: auto; }

.sobre__portrait-card {
  position: absolute; right: -1.25rem; bottom: 2.2rem;
  max-width: 240px;
  background: var(--petrol); color: var(--paper);
  border-radius: var(--radius-md);
  padding: 1.1rem 1.3rem;
  display: grid; gap: 0.3rem;
  box-shadow: var(--shadow-lg);
  font-size: var(--text-xs);
}
.sobre__portrait-card .sobre__portrait-num {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  color: var(--white);
  line-height: 1;
}

.sobre__lead { font-size: var(--text-lg); margin-bottom: var(--space-8); }

/* Cargos atuais no alto da trajetória (pedido 17/07: Scolla + AndroElite) */
.sobre__cargos {
  display: flex; flex-wrap: wrap; gap: 0.6rem;
  margin-bottom: var(--space-4);
}
.sobre__cargos span {
  font-size: var(--text-xs); font-weight: 500; letter-spacing: 0.04em;
  color: var(--accent-deep);
  background: rgba(44, 91, 107, 0.08);
  border: 1px solid rgba(44, 91, 107, 0.25);
  border-radius: var(--radius-full);
  padding: 0.45rem 0.95rem;
}

.timeline {
  position: relative;
  display: grid; gap: clamp(1.6rem, 3vw, 2.4rem);
  padding-left: 2.2rem;
}
.timeline::before {
  content: '';
  position: absolute; left: 6px; top: 8px; bottom: 8px;
  width: 1px;
  background: var(--light-line);
}
.timeline::after {
  content: '';
  position: absolute; left: 6px; top: 8px; bottom: 8px;
  width: 1px;
  background: linear-gradient(to bottom, var(--accent-deep), var(--petrol));
  transform: scaleY(var(--line-progress, 0));
  transform-origin: top;
}
.timeline__item { position: relative; }
.timeline__marker {
  position: absolute; left: -2.2rem; top: 7px;
  width: 13px; height: 13px; border-radius: 50%;
  border: 1px solid var(--accent-deep);
  background: var(--light-bg);
  transition: background-color 0.4s ease, box-shadow 0.4s ease;
}
.timeline__item.lit .timeline__marker {
  background: var(--accent-deep);
  box-shadow: 0 0 12px rgba(44, 91, 107, 0.45);
}
.timeline__item h3 { font-size: var(--text-xl); margin-bottom: 0.35rem; }
.timeline__item p { font-size: var(--text-sm); }

/* ---------- ESPECIALIDADES / EXPLORER (interativo, segue o mouse) ---------- */
.explorer { padding-block: var(--space-16); background: var(--light-bg-2); }
.explorer__head { max-width: 720px; margin-bottom: var(--space-8); }
.explorer__lead { font-size: var(--text-lg); }

.explorer__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: start;
}

.explorer__list { display: grid; }
.explorer__item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1.3rem;
  padding: 1.05rem 0.85rem;
  border-bottom: 1px solid var(--light-line);
  text-decoration: none;
  position: relative;
  transition: background-color 0.25s ease, padding-left 0.3s var(--ease-smooth);
}
.explorer__item:first-child { border-top: 1px solid var(--light-line); }
.explorer__num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--text-sm);
  color: var(--accent-deep);
  width: 2ch;
}
.explorer__name {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  color: var(--ink);
  transition: color 0.25s ease;
}
.explorer__item::after {
  content: '→';
  color: var(--accent-deep);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 0.25s ease, transform 0.3s var(--ease-smooth);
}
.explorer__item:hover, .explorer__item.active { background: rgba(255, 255, 255, 0.65); padding-left: 1.3rem; }
.explorer__item:hover .explorer__name, .explorer__item.active .explorer__name { color: var(--accent-deep); }
.explorer__item:hover::after, .explorer__item.active::after { opacity: 1; transform: translateX(0); }

/* Painel com tilt 3D que segue o mouse */
.explorer__panel {
  position: sticky; top: calc(var(--nav-h) + 2rem);
  perspective: 1100px;
}
.explorer__card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--petrol);
  box-shadow: var(--shadow-lg);
  transform-style: preserve-3d;
  transition: transform 0.18s ease-out;
  aspect-ratio: 16 / 11;
}
.explorer__card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.explorer__card img.active { opacity: 1; }
.explorer__card::before {
  content: '';
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(to top, rgba(8, 26, 32, 0.88) 0%, rgba(8, 26, 32, 0.15) 45%, transparent 70%);
}
/* linha de "scan" hightech */
.explorer__card::after {
  content: '';
  position: absolute; left: 0; right: 0; top: 0; height: 1.5px; z-index: 3;
  background: linear-gradient(90deg, transparent, rgba(143, 179, 188, 0.85), transparent);
  animation: explorer-scan 4.5s var(--ease-in-out, ease-in-out) infinite;
  opacity: 0.65;
}
@keyframes explorer-scan {
  0%, 12% { transform: translateY(0); opacity: 0; }
  20% { opacity: 0.65; }
  55% { transform: translateY(52vh); opacity: 0.65; }
  63%, 100% { transform: translateY(52vh); opacity: 0; }
}
html.no-motion .explorer__card::after { animation: none; opacity: 0; }

.explorer__info {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
  padding: 1.6rem 1.8rem;
  color: var(--paper);
  transform: translateZ(46px);
}
.explorer__info h3 { font-size: var(--text-xl); margin-bottom: 0.4rem; color: var(--white); }
.explorer__info p { font-size: var(--text-sm); color: var(--paper-dim); max-width: 46ch; }
.explorer__info .explorer__cta {
  display: inline-flex; align-items: center; gap: 0.45rem;
  margin-top: 0.9rem;
  color: var(--accent-soft);
  font-size: var(--text-sm); font-weight: 500;
  text-decoration: none;
}
.explorer__cta::after { content: '→'; transition: transform 0.3s var(--ease-smooth); }
.explorer__cta:hover::after { transform: translateX(5px); }

/* leitura tipo HUD no topo do painel */
.explorer__readout {
  position: absolute; top: 1.1rem; left: 1.4rem; right: 1.4rem; z-index: 4;
  display: flex; justify-content: space-between;
  font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(224, 228, 223, 0.65);
  transform: translateZ(30px);
}

/* ---------- HOLEP (pin + scrub) ---------- */
.holep { background: var(--ink-deep); }
.holep__pin {
  position: relative;
  min-height: 100dvh;
  display: flex; align-items: center;
  overflow: hidden;
}
.holep__media { position: absolute; inset: 0; }
.holep__media img {
  width: 100%; height: 100%; object-fit: cover;
  transform: scale(1.15);
}
.holep__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(8, 26, 32, 0.94) 25%, rgba(8, 26, 32, 0.55) 60%, rgba(8, 26, 32, 0.35) 100%),
    linear-gradient(to top, rgba(8, 26, 32, 0.85), transparent 40%);
}
.holep__content { position: relative; z-index: 2; padding-block: var(--space-16); }
.section-eyebrow--light { color: var(--accent-soft); }

.holep__title {
  font-size: var(--text-3xl);
  max-width: 14ch;
  margin-bottom: var(--space-8);
}

.holep__steps {
  display: grid; gap: clamp(1.2rem, 2.5vw, 2rem);
  max-width: 560px;
  margin-bottom: var(--space-8);
}
.holep__step {
  display: grid; grid-template-columns: 3.2rem 1fr;
  gap: 0.35rem 1.2rem;
  align-items: start;
  padding: 1.2rem 1.4rem;
  border-left: 1px solid rgba(224, 228, 223, 0.14);
  /* sem backdrop-filter: blur dentro de seção pinada com scrub trava GPUs fracas */
  background: rgba(8, 26, 32, 0.62);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.holep__num {
  grid-row: 1 / span 2;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-style: italic;
  color: var(--accent-soft);
  line-height: 1.2;
}
.holep__step h3 { grid-column: 2; font-size: var(--text-lg); }
.holep__step p { grid-column: 2; font-size: var(--text-sm); color: var(--paper-dim); }

/* ---------- HOLEP EM 10s (vinheta Remotion, tela cheia) ---------- */
.holep-video { background: var(--ink-deep); }
.holep-video video {
  display: block;
  width: 100%;
  height: 100dvh;
  object-fit: cover;
}
@media (max-width: 64em) {
  .holep-video video { height: auto; object-fit: contain; }
}

/* ---------- ENSINO (fundo claro) ---------- */
.ensino { padding-block: var(--space-16); }
.ensino__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
}
.ensino__content > p { margin-bottom: var(--space-4); }
.ensino__list { display: grid; gap: 0.9rem; margin-top: var(--space-4); }
.ensino__list li {
  display: flex; align-items: center; gap: 0.9rem;
  font-size: var(--text-sm);
  padding: 0.9rem 1.1rem;
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-md);
  box-shadow: 0 4px 14px -8px rgba(13, 37, 45, 0.18);
}
.ensino__list svg { color: var(--accent-deep); flex-shrink: 0; }

.ensino__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: relative;
}
.ensino__media::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(13, 37, 45, 0.4), transparent 45%);
}
.ensino__media img { width: 100%; height: auto; }

/* ---------- DEPOIMENTOS (fundo claro) ---------- */
.depoimentos {
  padding-block: var(--space-16);
  background: var(--light-bg-2);
  overflow: hidden;
}
.depoimentos__head {
  display: flex; flex-wrap: wrap; align-items: flex-end;
  justify-content: space-between; gap: var(--space-4);
  margin-bottom: var(--space-8);
}
.depoimentos__score {
  display: flex; align-items: center; gap: 1.1rem;
  background: var(--petrol);
  border-radius: var(--radius-md);
  padding: 1rem 1.4rem;
  box-shadow: var(--shadow-md);
}
.depoimentos__score strong {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  line-height: 1;
  color: var(--white);
}
.depoimentos__stars { display: flex; gap: 2px; color: var(--accent-soft); margin-bottom: 0.3rem; }
.depoimentos__score span { display: block; font-size: var(--text-xs); color: var(--paper-dim); }
.depoimentos__score a { color: var(--accent-soft); }

.depoimentos__carousel {
  display: flex; gap: clamp(1rem, 2vw, 1.5rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 1rem;
  margin-inline: calc(-1 * clamp(1.25rem, 5vw, 4rem));
  padding-inline: clamp(1.25rem, 5vw, 4rem);
  scrollbar-width: none;
}
.depoimentos__carousel::-webkit-scrollbar { display: none; }

.depoimento {
  flex-shrink: 0;
  width: clamp(280px, 34vw, 400px);
  scroll-snap-align: start;
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-lg);
  padding: clamp(1.5rem, 2.5vw, 2rem);
  display: flex; flex-direction: column; gap: 1.4rem;
  box-shadow: 0 10px 30px -18px rgba(13, 37, 45, 0.28);
  transition: transform 0.35s var(--ease-smooth), box-shadow 0.35s ease;
}
.depoimento:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(13, 37, 45, 0.35); }
.depoimento p {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-style: italic;
  color: var(--petrol);
  line-height: 1.4;
}
.depoimento p::before { content: '“'; color: var(--accent-deep); }
.depoimento p::after { content: '”'; color: var(--accent-deep); }
.depoimento footer { margin-top: auto; display: grid; gap: 0.15rem; }
.depoimento cite { font-style: normal; font-weight: 600; font-size: var(--text-sm); color: var(--ink); }
.depoimento footer span { font-size: var(--text-xs); color: var(--gray); }

.depoimentos__nav { display: flex; gap: 0.7rem; margin-top: 0.5rem; }
.depoimentos__arrow {
  width: 48px; height: 48px; border-radius: 50%;
  border: 1px solid rgba(13, 37, 45, 0.25);
  color: var(--ink);
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s var(--ease-spring);
}
.depoimentos__arrow:hover {
  background: var(--petrol);
  border-color: var(--petrol);
  color: var(--white);
  transform: translateY(-2px);
}

/* ---------- LOCALIZAÇÃO (fundo claro) ---------- */
.local { padding-block: var(--space-16); }
.local__grid {
  display: grid; grid-template-columns: 1fr 1.1fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
}
.local__address {
  display: flex; gap: 1rem; align-items: flex-start;
  font-style: normal;
  font-size: var(--text-base);
  margin-bottom: var(--space-4);
  color: var(--ink);
}
.local__address svg { color: var(--accent-deep); flex-shrink: 0; margin-top: 4px; }
.local__content > p { margin-bottom: var(--space-4); }
.local__actions { display: flex; flex-wrap: wrap; gap: 0.9rem; }
.local__phone { font-size: var(--text-lg); color: var(--ink); margin-bottom: var(--space-4); }
.local__phone a { color: var(--accent-deep); text-decoration: none; font-weight: 500; }
.local__phone a:hover { text-decoration: underline; }

.local__map {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--light-line);
  box-shadow: var(--shadow-lg);
}
.local__map iframe { width: 100%; height: clamp(340px, 42vw, 480px); }

/* ---------- FAQ (fundo claro) ---------- */
.faq { padding-block: var(--space-16); background: var(--light-bg-2); }
.faq__grid {
  display: grid; grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}
.faq__intro { position: sticky; top: calc(var(--nav-h) + 2rem); }

.faq__list { display: grid; gap: 0.8rem; }
.faq__item {
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 4px 14px -10px rgba(13, 37, 45, 0.2);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.faq__item[open] { border-color: rgba(44, 91, 107, 0.4); box-shadow: 0 12px 30px -14px rgba(13, 37, 45, 0.3); }
.faq__item summary {
  list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 1.2rem 1.4rem;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: var(--text-lg);
  color: var(--ink);
  transition: color 0.2s ease;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary:hover { color: var(--accent-deep); }
.faq__item summary svg { flex-shrink: 0; transition: transform 0.35s var(--ease-smooth); color: var(--accent-deep); }
.faq__item[open] summary svg { transform: rotate(45deg); }
.faq__item > p {
  padding: 0 1.4rem 1.3rem;
  font-size: var(--text-sm);
}

/* ---------- CTA FINAL ---------- */
.cta-final {
  background:
    radial-gradient(ellipse 70% 90% at 25% 50%, rgba(24, 56, 70, 0.9) 0%, transparent 60%),
    var(--ink-deep);
  overflow: hidden;
}
.cta-final__pattern {
  position: absolute; inset: 0;
  background-image: url('../assets/logo/rc-mono-branco.png');
  background-size: 110px auto;
  background-repeat: repeat;
  opacity: 0.014;
  transform: rotate(6deg) scale(1.25);
  pointer-events: none;
}
.cta-final__inner {
  display: grid; grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: center;
  position: relative; z-index: 2;
  padding-block: var(--space-16);
}
.cta-final__portrait {
  border-radius: 200px 200px var(--radius-lg) var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  max-width: 380px;
}
.cta-final__portrait img { width: 100%; height: auto; }
.cta-final__title { font-size: var(--text-3xl); margin-bottom: var(--space-4); }
.cta-final__title em { color: var(--accent-soft); }
.cta-final__content > p { color: var(--paper-dim); font-size: var(--text-lg); margin-bottom: var(--space-8); }
.cta-final__phone { margin-top: var(--space-4); font-size: var(--text-sm); color: var(--gray); }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width: 64em) {
  .navbar__links, .navbar__cta { display: none; }
  .navbar__burger { display: flex; }
  .navbar__mobile { display: block; }
  .navbar { background: rgba(8, 26, 32, 0.82); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }

  .hero__inner { grid-template-columns: 1fr; gap: var(--space-8); }
  .hero__portrait { justify-self: center; width: min(100%, 400px); }
  .hero__portrait-tag { left: 0; bottom: 5%; }
  .hero { padding-top: calc(var(--nav-h) + 1.5rem); }
  .hero__scrollhint { display: none; }

  .sobre__grid, .ensino__grid, .local__grid, .faq__grid, .cta-final__inner,
  .explorer__grid, .page-hero__grid, .contato__grid {
    grid-template-columns: 1fr;
  }
  .sobre__portrait { position: relative; top: 0; max-width: 480px; }
  .faq__intro { position: relative; top: 0; }

  .explorer__panel { position: relative; top: 0; order: -1; }

  .ensino__grid { gap: var(--space-8); }
  .ensino__media { order: -1; }

  .cta-final__portrait { max-width: 300px; }
}

@media (max-width: 40em) {
  .navbar__name small { display: none; }

  .hero__stats { flex-wrap: wrap; gap: 1.2rem 2rem; }
  .hero__portrait-tag { position: relative; left: 0; bottom: 0; margin-top: 0.9rem; }
  .hero__actions .btn { width: 100%; }

  .explorer__name { font-size: var(--text-lg); }

  .depoimento { width: 86vw; }

  .footer__grid { grid-template-columns: 1fr; gap: var(--space-4); }
  .footer__legal { flex-direction: column; }

  .whatsapp-float { bottom: calc(4.4rem + env(safe-area-inset-bottom)); }

  .local__map iframe { height: 300px; }
}

/* ============================================================
   NAVBAR: sociais + dropdown de especialidades
   ============================================================ */
.navbar__social { display: flex; gap: 0.4rem; align-items: center; }
.navbar__social a {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  color: var(--paper-dim);
  transition: color 0.2s ease, background-color 0.2s ease, transform 0.25s var(--ease-spring);
}
.navbar__social a:hover { color: var(--white); background: rgba(110, 154, 166, 0.15); transform: translateY(-2px); }

.navbar__links .has-dropdown { position: relative; }
.navbar__links .has-dropdown > a::before { content: none; }
.navbar__dropdown {
  position: absolute; top: calc(100% + 0.9rem); left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 260px;
  background: rgba(8, 26, 32, 0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(224, 228, 223, 0.1);
  border-radius: var(--radius-md);
  padding: 0.6rem;
  display: grid;
  opacity: 0; visibility: hidden;
  transition: opacity 0.25s ease, transform 0.3s var(--ease-smooth), visibility 0.25s;
  box-shadow: var(--shadow-lg);
}
.has-dropdown:hover .navbar__dropdown,
.has-dropdown:focus-within .navbar__dropdown {
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.navbar__dropdown a {
  display: block;
  padding: 0.55rem 0.8rem;
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  color: var(--paper-dim);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.navbar__dropdown a:hover { background: rgba(110, 154, 166, 0.14); color: var(--white); }
.navbar__dropdown a::after { content: none; }

/* ============================================================
   HERO: canvas 3D (Three.js, segue o mouse)
   ============================================================ */
.hero__canvas {
  position: absolute; inset: 0;
  z-index: 1;
  pointer-events: none;
}
.hero__canvas canvas { width: 100%; height: 100%; display: block; }

/* ============================================================
   PÁGINAS INTERNAS (especialidades + contato)
   ============================================================ */
.page-hero {
  padding-top: calc(var(--nav-h) + clamp(2.5rem, 6vw, 5rem));
  padding-bottom: var(--space-8);
}
.page-hero__grid {
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.page-hero .breadcrumbs {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  color: var(--gray);
  margin-bottom: var(--space-4);
}
.breadcrumbs a { color: var(--accent-deep); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumbs span[aria-hidden] { opacity: 0.5; }
.page-hero h1 { font-size: var(--text-3xl); margin-bottom: var(--space-4); }
.page-hero h1 em { color: var(--accent-deep); }
.page-hero__sub { font-size: var(--text-lg); margin-bottom: var(--space-8); }
.page-hero__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  position: relative;
}
.page-hero__media img { width: 100%; height: auto; display: block; }
.page-hero__media::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(13, 37, 45, 0.35), transparent 45%);
}

.page-block { padding-block: var(--space-16); }
.page-block--alt { background: var(--light-bg-2); }
.page-block__grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
}
@media (max-width: 64em) { .page-block__grid { grid-template-columns: 1fr; } }

.sinais { display: grid; gap: 0.7rem; }
.sinais li {
  display: flex; gap: 0.8rem; align-items: flex-start;
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-md);
  padding: 0.9rem 1.1rem;
  font-size: var(--text-sm);
}
.sinais svg { color: var(--accent-deep); flex-shrink: 0; margin-top: 2px; }

.tratamento-passos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
@media (max-width: 64em) { .tratamento-passos { grid-template-columns: 1fr; } }
.tratamento-passos article {
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-lg);
  padding: 1.6rem;
  box-shadow: 0 8px 24px -16px rgba(13, 37, 45, 0.25);
}
.tratamento-passos .passo-num {
  font-family: var(--font-display); font-style: italic;
  font-size: var(--text-xl); color: var(--accent-deep);
}
.tratamento-passos h3 { font-size: var(--text-lg); margin: 0.5rem 0 0.4rem; }
.tratamento-passos p { font-size: var(--text-sm); }

.page-cta {
  background: var(--petrol);
  border-radius: var(--radius-lg);
  padding: clamp(2rem, 4vw, 3.2rem);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1.5rem;
  color: var(--paper);
  box-shadow: var(--shadow-lg);
}
.page-cta h2 { font-size: var(--text-2xl); color: var(--white); max-width: 22ch; }
.page-cta p { color: var(--paper-dim); font-size: var(--text-sm); margin-top: 0.4rem; }

/* Contato */
.contato__grid {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}
.contato__card {
  background: var(--light-card);
  border: 1px solid var(--light-line);
  border-radius: var(--radius-lg);
  padding: clamp(1.6rem, 3vw, 2.4rem);
  display: grid; gap: 1.2rem;
  box-shadow: 0 10px 30px -18px rgba(13, 37, 45, 0.3);
}
.contato__card h2 { font-size: var(--text-xl); }
.contato__row { display: flex; gap: 0.9rem; align-items: flex-start; font-size: var(--text-sm); }
.contato__row svg { color: var(--accent-deep); flex-shrink: 0; margin-top: 2px; }
.contato__row a { color: var(--accent-deep); text-decoration: none; font-weight: 500; }
.contato__row a:hover { text-decoration: underline; }

/* ============================================================
   LANDING PAGES DE ESPECIALIDADE (trust bar, dores, autoridade)
   ============================================================ */
.lp-trust {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-top: var(--space-8);
  padding-top: var(--space-4);
  border-top: 1px solid var(--light-line);
  font-size: var(--text-xs);
  color: var(--gray);
}
.lp-trust strong {
  display: block;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  color: var(--ink);
  line-height: 1.1;
}
@media (max-width: 40em) { .lp-trust { grid-template-columns: repeat(2, 1fr); } }

.lp-dores {
  background:
    radial-gradient(ellipse 80% 90% at 80% 20%, rgba(24, 56, 70, 0.9) 0%, transparent 60%),
    var(--ink);
  padding-block: var(--space-16);
  color: var(--paper);
}
.lp-dores__grid {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
@media (max-width: 64em) { .lp-dores__grid { grid-template-columns: 1fr; } }
.lp-dores__titulo {
  font-size: var(--text-2xl);
  color: var(--white);
  margin-bottom: var(--space-8);
  max-width: 20ch;
}
.lp-dores__lista { display: grid; gap: 0.8rem; }
.lp-dores__lista li {
  display: flex; gap: 0.9rem; align-items: flex-start;
  background: rgba(224, 228, 223, 0.06);
  border: 1px solid rgba(224, 228, 223, 0.12);
  border-radius: var(--radius-md);
  padding: 1rem 1.2rem;
  font-size: var(--text-base);
  color: var(--paper);
}
.lp-dores__lista svg { color: var(--accent-soft); flex-shrink: 0; margin-top: 3px; }

.lp-autoridade__grid {
  display: grid; grid-template-columns: 0.65fr 1.35fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
@media (max-width: 64em) { .lp-autoridade__grid { grid-template-columns: 1fr; } }
.lp-autoridade__foto {
  border-radius: 200px 200px var(--radius-lg) var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  max-width: 340px;
}
.lp-autoridade__foto img { width: 100%; height: auto; display: block; }
.lp-depoimento {
  border-left: 2px solid var(--accent-deep);
  padding: 0.4rem 0 0.4rem 1.2rem;
  margin-block: var(--space-4);
}
.lp-depoimento p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--text-lg);
  color: var(--petrol);
}
.lp-depoimento cite { font-style: normal; font-size: var(--text-xs); color: var(--gray); }

/* ============================================================
   TRANSIÇÃO ENTRE SEÇÕES: cartas empilhadas
   Cada seção sobe sobre a anterior com cantos arredondados e
   sombra. Só layout estático: zero custo de GPU por frame.
   ============================================================ */
main > section { position: relative; z-index: 1; }
main > section + section {
  border-radius: clamp(22px, 3.5vw, 44px) clamp(22px, 3.5vw, 44px) 0 0;
  margin-top: calc(-1 * clamp(22px, 3.5vw, 44px));
  box-shadow: 0 -20px 44px -30px rgba(8, 26, 32, 0.5);
}
/* o ticker é uma faixa fina: cola no hero sem virar "carta" */
main > section.ticker {
  border-radius: 0;
  margin-top: 0;
  box-shadow: none;
}
/* a seção pinada precisa cortar o fundo nos cantos arredondados */
main > section.holep { overflow: clip; }
/* o rodapé também sobe sobre a última seção */
footer.footer {
  position: relative; z-index: 1;
  border-radius: clamp(22px, 3.5vw, 44px) clamp(22px, 3.5vw, 44px) 0 0;
  margin-top: calc(-1 * clamp(22px, 3.5vw, 44px));
}

/* ============================================================
   LP-HERO: hero full-bleed das especialidades
   Imagem médica do tema cobrindo tudo + foto do Dr. Ruimário
   fundida em degradê pela direita.
   ============================================================ */
.lp-hero {
  position: relative;
  min-height: min(88dvh, 860px);
  display: flex;
  align-items: flex-end;
  background: var(--ink);
  overflow: hidden;
  padding-top: var(--nav-h);
}
.lp-hero__bg {
  position: absolute; inset: 0;
}
.lp-hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.lp-hero__bg::after {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg, rgba(13, 37, 45, 0.96) 8%, rgba(13, 37, 45, 0.72) 45%, rgba(13, 37, 45, 0.35) 75%),
    linear-gradient(to top, rgba(8, 26, 32, 0.92) 0%, rgba(8, 26, 32, 0.25) 45%, rgba(8, 26, 32, 0.35) 100%);
}
.lp-hero__dr {
  position: absolute;
  right: clamp(0px, 4vw, 80px);
  bottom: 0;
  height: 88%;
  width: auto;
  object-fit: contain;
  object-position: bottom;
  -webkit-mask-image: linear-gradient(105deg, transparent 8%, rgba(0,0,0,0.9) 48%),
                      linear-gradient(to top, black 78%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(105deg, transparent 8%, rgba(0,0,0,0.9) 48%),
              linear-gradient(to top, black 78%, transparent 100%);
  mask-composite: intersect;
  opacity: 0.94;
  pointer-events: none;
}
.lp-hero__content {
  position: relative; z-index: 2;
  padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
  max-width: 640px;
}
.lp-hero__content .breadcrumbs { color: var(--paper-dim); margin-bottom: var(--space-4); }
.lp-hero__content .breadcrumbs a { color: var(--accent-soft); }
.lp-hero__content .section-eyebrow { color: var(--accent-soft); }
.lp-hero__content .section-eyebrow::before { background: var(--accent-soft); }
.lp-hero__content h1 {
  font-size: var(--text-3xl);
  color: var(--white);
  margin-bottom: var(--space-4);
}
.lp-hero__content h1 em { color: var(--accent-soft); }
.lp-hero__content .lp-hero__sub {
  font-size: var(--text-lg);
  color: var(--paper);
  margin-bottom: var(--space-8);
  max-width: 52ch;
  text-shadow: 0 1px 12px rgba(8, 26, 32, 0.6);
}

/* trust bar vira faixa clara logo após o hero */
.lp-trust-section { background: var(--light-bg); padding-block: var(--space-4) 0; }

@media (max-width: 64em) {
  .lp-hero { min-height: 74dvh; }
  .lp-hero__dr { height: 62%; opacity: 0.55; right: -8%; }
}
@media (max-width: 40em) {
  .lp-hero__dr { display: none; }
}
.lp-trust-section .lp-trust {
  margin-top: 0; border-top: none;
  padding-block: var(--space-2) calc(var(--space-4) + clamp(22px, 3.5vw, 44px));
}

/* ============================================================
   COVER-STACK: transição REAL entre seções (16/07, feedback)
   A seção gruda no topo (sticky) e a seguinte desliza POR CIMA,
   efeito baralho. CSS puro. Ficam de fora, de propósito:
   hero (vídeo+3D pausam por visibilidade; sticky os manteria
   "visíveis" para sempre), ticker (faixa fina), holep (tem pin
   GSAP próprio) e a vinheta (vídeo com pausa por visibilidade).
   ============================================================ */
main > section.sobre,
main > section.explorer,
main > section.ensino,
main > section.depoimentos,
main > section.local,
main > section.faq,
main > section.cta-final,
main > section.lp-dores,
main > section.page-block,
main > section.lp-trust-section {
  position: sticky;
  top: 0;
}

/* a faixa rolante ganha respiro para o card seguinte não comer o texto */
main > section.ticker {
  padding-bottom: calc(1.1rem + clamp(22px, 3.5vw, 44px));
}
/* seções mais altas que a tela: o JS calcula top negativo para a seção
   só grudar quando o conteúdo dela já foi todo lido */
html.no-motion main > section { position: relative !important; top: auto !important; }

/* ============================================================
   AJUSTES v3.3 (feedback 16/07)
   ============================================================ */
/* 1) espaço nas bordas: as seções empilhadas viram CARDS de verdade */
main > section.sobre,
main > section.explorer,
main > section.ensino,
main > section.depoimentos,
main > section.local,
main > section.faq,
main > section.cta-final,
main > section.lp-dores,
main > section.page-block,
main > section.lp-trust-section {
  margin-inline: clamp(10px, 1.6vw, 26px);
  border-radius: clamp(22px, 3.5vw, 44px);
}

/* 2) dropdown de especialidades abre por CLIQUE (além do hover) */
.has-dropdown.open .navbar__dropdown {
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}

/* 3) hero das especialidades: conteúdo alinhado à esquerda do grid,
      não centralizado (o max-width estava no container centralizado);
      o bloco mantém a geometria do container (1320px) e o texto é
      limitado por filho para ficar na coluna esquerda */
.lp-hero__content { max-width: 1320px; }
.lp-hero__content > * { max-width: 640px; }

/* 4) foto do Dr. sólida: cutout sem fundo, sem máscara e sem transparência */
.lp-hero__dr {
  -webkit-mask-image: none;
  mask-image: none;
  opacity: 1;
  filter: drop-shadow(-18px 0 42px rgba(8, 26, 32, 0.65));
}

/* v3.4: Dr. maior e mais presente na hero das especialidades */
.lp-hero__dr { height: 97%; right: clamp(0px, 3vw, 56px); }
@media (max-width: 64em) { .lp-hero__dr { height: 66%; opacity: 0.9; } }

/* v3.4: painel do explorer proporcional à lista (imagem maior) */
@media (min-width: 64em) {
  .explorer__card {
    aspect-ratio: auto;
    height: clamp(520px, calc(100dvh - var(--nav-h) - 5rem), 820px);
  }
}
