
.pag-estudio {
  --est-ease:   cubic-bezier(0.23, 1, 0.32, 1);
  --t-rapida:   160ms;
  --t-estado:   260ms;
  --t-revelar:  640ms;
}

.pag-estudio [data-reveal] {
  transform: translateY(14px);
  transition-duration: var(--t-revelar);
  transition-timing-function: var(--est-ease);
}
.pag-estudio [data-reveal].is-in { transform: none; }

.icono-wa {
  width: 20px;
  height: 20px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.est-flecha {
  width: 16px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  transition: transform var(--t-rapida) var(--est-ease);
}

.pag-estudio summary { list-style: none; cursor: pointer; }
.pag-estudio summary::-webkit-details-marker { display: none; }

@supports (interpolate-size: allow-keywords) {
  .pag-estudio { interpolate-size: allow-keywords; }
  .pag-estudio details::details-content {
    height: 0;
    overflow: clip;
    opacity: 0;
    transition: height var(--t-estado) var(--est-ease),
                opacity var(--t-rapida) var(--est-ease),
                content-visibility var(--t-estado) allow-discrete;
  }
  .pag-estudio details[open]::details-content {
    height: auto;
    opacity: 1;
    transition-duration: 360ms, var(--t-estado), 360ms;
  }
}

.cta-fijo {
  position: fixed;
  right: clamp(1rem, 2.5vw, 2rem);
  bottom: clamp(1rem, 2.5vw, 2rem);
  z-index: 80;
  transition: transform var(--t-estado) var(--est-ease),
              opacity var(--t-estado) var(--est-ease),
              background-color var(--t-rapida) var(--est-ease);
}
.cta-fijo[data-visible="false"] {
  transform: translateY(calc(100% + 2rem));
  opacity: 0;
  pointer-events: none;
  transition-duration: var(--t-rapida);
}
.cta-fijo:active { transform: scale(0.97); }
@media (max-width: 767px) {
  .cta-fijo {
    left: 1rem;
    right: 1rem;
    bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
    justify-content: center;
  }
}
