/* Capa visual: superficie crema, esquinas suaves y movimiento al hacer scroll. */
:root { --page-cream: #eee5d9; --round-xl: 32px; --round-lg: 22px; }

body {
  min-height: 100vh;
  padding: 8px;
  background: var(--page-cream);
}

.site-shell {
  max-width: 1480px;
  min-height: calc(100vh - 16px);
  margin: 0 auto;
  border: 1px solid rgba(92, 68, 48, .13);
  border-radius: var(--round-xl);
  box-shadow: 0 24px 70px rgba(81, 55, 34, .12);
  overflow: visible;
}

.nav { border-radius: var(--round-xl) var(--round-xl) 0 0; }
.hero { border-radius: var(--round-lg); }
.services, .team-section, .gallery, .booking { margin: 18px 22px 0; border-radius: var(--round-lg); overflow: hidden; }
.team-image { border-radius: var(--round-lg) 0 0 var(--round-lg); }
.gallery-images img { border-radius: 14px; }
.service-card { transition: background .3s ease, transform .3s ease; }
.service-card:hover { background: rgba(255,255,255,.19); transform: translateY(-5px); }
.team-card, .button, .booking-small { border-radius: 999px; }
footer { margin-top: 18px; border-radius: var(--round-lg) var(--round-lg) var(--round-xl) var(--round-xl); }

.page-loader {
  position: fixed; z-index: 20; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 15px; background: #f5f0e9;
  color: var(--ink); font-family: 'DM Mono', monospace; font-size: 10px; letter-spacing: .14em;
  transition: opacity .65s ease, visibility .65s ease;
}
.page-loader .brand-mark { font-size: 72px; }
.is-loaded .page-loader { opacity: 0; visibility: hidden; }

.reveal { opacity: 0; transform: translateY(36px); transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.services .service-card:nth-child(2) { transition-delay: .12s; }
.services .service-card:nth-child(3) { transition-delay: .24s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 720px) {
  body { padding: 5px; }
  .site-shell { min-height: calc(100vh - 10px); border-radius: 22px; }
  .nav { border-radius: 22px 22px 0 0; }
  .services, .team-section, .gallery, .booking { margin: 10px 10px 0; border-radius: 16px; }
  .team-image { border-radius: 16px 16px 0 0; }
  footer { margin-top: 10px; border-radius: 16px 16px 22px 22px; }
}
