.page-skeleton { display: none; background: #fff; color: #591c31; }
.page-is-loading body > :not([data-page-skeleton]) { visibility: hidden; }
.page-is-loading body > [data-page-skeleton] {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow: hidden;
}
.page-skeleton__body { max-width: 1200px; margin: 0 auto; padding: 48px 24px; }
.page-skeleton__label {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip-path: inset(50%);
}
.page-skeleton__block {
  background: #e8e4e6; border-radius: 10px;
  animation: page-skeleton-pulse 1.4s ease-in-out infinite alternate;
}
.page-skeleton__heading { width: 45%; height: 36px; margin-bottom: 18px; }
.page-skeleton__subtitle { width: 65%; height: 18px; margin-bottom: 32px; }
.page-skeleton__hero { height: 280px; margin-bottom: 28px; }
.page-skeleton__items { display: grid; gap: 24px; }
.page-skeleton__item { display: grid; gap: 14px; }
.page-skeleton__media { height: 74px; }
.page-skeleton__line { height: 16px; width: 85%; }
.page-skeleton__short { height: 16px; width: 45%; }
.page-skeleton--grid .page-skeleton__items,
.page-skeleton--home .page-skeleton__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.page-skeleton--grid .page-skeleton__media,
.page-skeleton--home .page-skeleton__media { height: 240px; }
.page-skeleton--form .page-skeleton__body { max-width: 620px; }
.page-skeleton--form .page-skeleton__media { height: 48px; }
.page-skeleton--document .page-skeleton__media { height: 24px; }
.skeleton-region { position: relative !important; min-height: 320px; }
.skeleton-region > :not([data-region-skeleton]) { visibility: hidden; }
.skeleton-region > [data-region-skeleton] {
  display: block; position: absolute; inset: 0; z-index: 2; overflow: hidden;
}
.skeleton-region .page-skeleton__body { padding: 20px; }
@keyframes page-skeleton-pulse { to { background: #f5f2f4; } }
@media (max-width: 767px) {
  .page-skeleton__body { padding: 28px 16px; }
  .page-skeleton--grid .page-skeleton__items,
  .page-skeleton--home .page-skeleton__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-skeleton--grid .page-skeleton__media,
  .page-skeleton--home .page-skeleton__media { height: 180px; }
  .page-skeleton__hero { height: 220px; }
  .page-skeleton__heading { width: 70%; }
}
@media (prefers-reduced-motion: reduce) {
  .page-skeleton__block { animation: none; }
}
