/* Layout-preserving placeholders; enabled only by homepage-loading.js. */
.homepage-skeletons-enabled .has-page-skeleton {
  position: relative;
}
.homepage-skeletons-enabled .has-page-skeleton > :not(.page-section-skeleton) {
  visibility: hidden !important;
}
.page-section-skeleton {
  position: absolute;
  inset: 0;
  z-index: 8;
  padding: 48px max(24px, calc((100% - 1212px) / 2));
  overflow: hidden;
  pointer-events: none;
  background: #f6f3ed;
  opacity: 1;
  transition: opacity 240ms ease;
}
.page-section-skeleton.is-leaving { opacity: 0; }
.sk-block {
  display: block;
  position: relative;
  overflow: hidden;
  background: #e4ded2;
  border-radius: 0;
}
.sk-block::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, transparent 20%, rgba(255,255,255,.6) 48%, transparent 76%);
  transform: translateX(-100%);
  animation: homepage-skeleton-shimmer 1.65s ease-in-out infinite;
}
@keyframes homepage-skeleton-shimmer {
  to { transform: translateX(100%); }
}
.sk-heading { margin-bottom: 28px; }
.sk-kicker { width: 130px; height: 10px; margin-bottom: 18px; }
.sk-title { width: min(540px, 85%); height: 38px; margin-bottom: 14px; }
.sk-line { width: 100%; height: 12px; margin-bottom: 12px; }
.sk-line-short { width: 68%; }
.sk-description { max-width: 580px; }
.sk-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sk-tile { min-width: 0; }
.sk-picture { width: 100%; height: 180px; margin-bottom: 22px; }
.sk-small-title { height: 20px; width: 80%; margin-bottom: 16px; }
.sk-hero { padding: 0; display: grid; grid-template-columns: 55% 45%; background: #101820; }
.sk-hero-copy .sk-block { background: #29363d; }
.sk-hero-copy { padding: 64px 56px 36px max(32px, calc((100vw - 1212px) / 2)); align-self: center; }
.sk-hero-title { height: 56px; width: 100%; margin-bottom: 14px; }
.sk-hero .sk-description { margin-top: 30px; }
.sk-buttons { display: flex; gap: 20px; margin-top: 30px; }
.sk-button { width: 190px; height: 52px; }
.sk-hero-photo { height: 100%; min-height: 300px; background: #d3cdc1; }
.sk-gallery { padding-left: 0; padding-right: 0; }
.sk-gallery .sk-heading { margin-left: max(24px, calc((100% - 1212px) / 2)); }
.sk-gallery .sk-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; }
.sk-gallery .sk-tile { border-top: 1px solid #d5cdbf; border-right: 1px solid #d5cdbf; padding: 30px 20px; }
.sk-gallery .sk-picture { width: min(180px, 100%); height: auto; aspect-ratio: 1; margin: 24px 0; }
.sk-resources .sk-heading { display: flex; flex-direction: column; align-items: center; }
.sk-resources .sk-grid { gap: 32px 24px; }
.sk-resources .sk-picture { width: 40%; height: 60px; margin: 12px auto 24px; }
.sk-resources .sk-small-title, .sk-resources .sk-line { margin-left: auto; margin-right: auto; width: 70%; }
.sk-process-body, .sk-form-body { display: grid; grid-template-columns: .8fr 1.4fr; gap: 28px; }
.sk-step { height: 44px; margin-bottom: 15px; }
.sk-process-body > .sk-block { min-height: 340px; }
.sk-form-sidebar { height: 100%; min-height: 400px; background: #d3cdc1; }
.sk-form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; align-content: start; }
.sk-input { height: 48px; }
.sk-textarea { height: 110px; grid-column: 1 / -1; }
.sk-form-fields .sk-button { width: 100%; grid-column: 1 / -1; }
@media (max-width: 760px) {
  .page-section-skeleton { padding: 36px 24px; }
  .sk-title { height: 30px; }
  .sk-grid { grid-template-columns: 1fr; gap: 20px; }
  .sk-hero { padding: 0; grid-template-columns: 1fr; }
  .sk-hero-copy { padding: 40px 24px 32px; }
  .sk-hero-title { height: 38px; }
  .sk-hero-photo { min-height: 300px; }
  .sk-resources .sk-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .sk-gallery { padding-left: 0; padding-right: 0; }
  .sk-gallery .sk-grid { grid-template-columns: 85% 85%; }
  .sk-gallery .sk-tile:nth-child(n+3) { display: none; }
  .sk-process-body, .sk-form-body { grid-template-columns: 1fr; }
  .sk-form-sidebar { min-height: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .sk-block::after { animation: none; }
  .page-section-skeleton { transition: none; }
}
