/* Buena Vida Psicología — small global layer on top of Tailwind utilities. */

:root {
  --header-h: 4.5rem;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 1rem);
  -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  background: #FAF6EF;
  color: #30353A;
  font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

/* Visible, consistent keyboard focus */
:focus-visible {
  outline: 2px solid #566A53;
  outline-offset: 3px;
  border-radius: 4px;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: -3rem;
  z-index: 100;
  background: #465744;
  color: #fff;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

/* Header gains a soft backdrop once the page scrolls */
#site-header header { transition: background-color 0.3s, box-shadow 0.3s; }
#site-header header.is-scrolled {
  background-color: rgba(250, 246, 239, 0.92);
  box-shadow: 0 1px 0 rgba(48, 53, 58, 0.08);
  backdrop-filter: saturate(140%) blur(10px);
}

/* WhatsApp floating button */
.wa-fab {
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  z-index: 60;
}
.wa-fab__pulse {
  position: absolute;
  inset: 0;
  border-radius: 9999px;
  background: #25D366;
  opacity: 0.35;
  animation: wa-pulse 2.8s ease-out infinite;
}
@keyframes wa-pulse {
  0% { transform: scale(1); opacity: 0.35; }
  70%, 100% { transform: scale(1.45); opacity: 0; }
}

/* Long-form text (blog posts, bios) */
.prose-bv p { margin-block: 0 1.1em; }
.prose-bv h2 { font-family: "Playfair Display", Georgia, serif; font-size: 1.6rem; margin: 2em 0 0.6em; color: #22262A; }
.prose-bv h3 { font-family: "Playfair Display", Georgia, serif; font-size: 1.25rem; margin: 1.6em 0 0.5em; color: #22262A; }
.prose-bv ul { list-style: none; padding: 0; margin: 0 0 1.2em; }
.prose-bv li { position: relative; padding-left: 1.4em; margin-bottom: 0.5em; }
.prose-bv li::before { content: ""; position: absolute; left: 0.2em; top: 0.7em; width: 0.45em; height: 0.45em; border-radius: 9999px; background: #84997F; }
.prose-bv blockquote { border-left: 3px solid #D9AE5C; padding-left: 1.2em; font-style: italic; color: #4E555D; margin: 1.6em 0; }
.prose-bv blockquote footer { font-style: normal; font-size: 0.9em; color: #636B74; }
.prose-bv a { color: #465744; text-decoration: underline; text-underline-offset: 3px; }

/* Legal pages: data still to be provided (NIF, health-centre registration) */
mark[data-todo] { background: #F6E3B4; color: #5c4414; padding: 0 0.3em; border-radius: 0.3em; }
.prose-bv table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 0.95em; }
.prose-bv th, .prose-bv td { text-align: left; vertical-align: top; padding: 0.6em 0.8em; border-bottom: 1px solid #E6DAC6; }
.prose-bv th { width: 34%; font-weight: 600; color: #30353A; }

/* Blog posts: generous rhythm, illustrations framed softly */
.prose-post p { margin-block: 0 1.25em; }
.prose-post figure { margin: 2.2em 0; }
.prose-post figure img { display: block; width: auto; max-width: 100%; max-height: 34rem; height: auto; margin-inline: auto; border-radius: 1.5rem; box-shadow: 0 10px 30px -12px rgba(48, 53, 58, 0.18); background: #fff; }
.prose-post ul { margin-bottom: 1.6em; }
