.mobile-sections {
  width: 100%;
  background: var(--cream);
}

.mobile-loading {
  display: none;
}

.mobile-loading-error,
.mobile-loading-retry {
  display: none;
}

@media (max-width: 950px), (max-width: 1440px) and (pointer: coarse) {
  html.mobile-sections-loading {
    overflow: hidden;
  }

  html.mobile-sections-loading body > :not(.mobile-loading) {
    visibility: hidden;
    pointer-events: none;
  }

  html.mobile-sections-loading .mobile-loading {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 24px;
    text-align: center;
    color: var(--brown);
    background: var(--cream);
  }

  .mobile-loading-brand {
    display: block;
    width: clamp(160px, 44vw, 220px);
    max-width: 100%;
    margin-bottom: 8px;
  }

  .mobile-loading-brand img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 30svh;
    object-fit: contain;
  }

  .mobile-loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--divider-border);
    border-top-color: var(--gold);
    border-radius: 50%;
    animation: mobile-loading-spin 800ms linear infinite;
  }

  .mobile-loading-retry {
    padding: 10px 18px;
    border: 0;
    border-radius: 8px;
    color: var(--cream);
    background: var(--gold);
    cursor: pointer;
  }

  html.mobile-sections-error .mobile-loading-spinner,
  html.mobile-sections-error .mobile-loading-message {
    display: none;
  }

  html.mobile-sections-error .mobile-loading-error,
  html.mobile-sections-error .mobile-loading-retry {
    display: block;
  }

  .mobile-sections>.page-section {
    position: relative;
    margin-inline: auto;
    padding-top: var(--section-title-spacing);
    border: 0;
    outline: 0;
    background: var(--cream);
  }

  .mobile-sections > .page-section + .page-section {
    border-top: 1px solid var(--divider-border);
  }
}

@keyframes mobile-loading-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-loading-spinner { animation: none; }
}

@media (width > 950px) and (pointer: fine), (width > 950px) and (pointer: none), (width > 1440px) {
  .mobile-sections { display: none; }
}
