/* Estilos base compartidos — Rediseño Dr. Turrubiates */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Inter', system-ui, sans-serif; color: #1A1C22; background: #F9FAFB; -webkit-font-smoothing: antialiased; }
a { color: #1F7A8C; text-decoration: none; transition: color .2s ease; }
a:hover { color: #E20429; }
h1, h2, h3 { font-family: 'Poppins', sans-serif; margin: 0; }
input, select, textarea { font-family: 'Inter', sans-serif; font-size: 15px; }
input::placeholder, textarea::placeholder { color: #9a9da5; }

@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes pulseWa { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.5); } 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.card-hover { transition: transform .25s ease, box-shadow .25s ease; }
.card-hover:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(31,122,140,0.18) !important; }

@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 860px) {
  .hero-grid { grid-template-columns: 1fr !important; }
  .two-col { grid-template-columns: 1fr !important; }
  .svc-grid { grid-template-columns: 1fr 1fr !important; }
  .gal-grid { grid-template-columns: 1fr 1fr !important; }
  .footer-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 640px) {
  .desktop-nav a:not(.nav-cta) { display: none !important; }
  .svc-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
  .gal-grid { grid-template-columns: 1fr !important; }
}

/* Animación de entrada (ver js/reveal.js) */
.js-reveal .reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
.js-reveal .reveal.is-visible { opacity: 1; transform: none; }
.js-reveal .card-hover.reveal.is-visible { transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .25s ease, box-shadow .25s ease; }
@media (prefers-reduced-motion: reduce) { .js-reveal .reveal { opacity: 1; transform: none; transition: none; } }

/* Preguntas frecuentes */
.faq-list { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; }
.faq-item { background: rgba(255,255,255,0.6); backdrop-filter: blur(10px); border: 1px solid rgba(31,122,140,0.16); border-radius: 16px; padding: 0 22px; box-shadow: 0 8px 22px rgba(31,122,140,0.06); }
.faq-item summary { cursor: pointer; list-style: none; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 17px; padding: 18px 28px 18px 0; position: relative; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 0; top: 50%; transform: translateY(-50%); font-size: 22px; color: #1F7A8C; transition: transform .25s ease; }
.faq-item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq-item summary:focus-visible { outline: 2px solid #1F7A8C; outline-offset: 4px; border-radius: 6px; }
.faq-item p { margin: 0 0 18px; font-size: 16px; line-height: 1.7; color: #4a4d57; }
