body:not(.public-login-mode) .auth-gate {
  scroll-behavior: smooth;
  scroll-padding-top: 78px;
  scroll-snap-type: y mandatory;
  scrollbar-width: none;
}

body:not(.public-login-mode) .auth-gate::-webkit-scrollbar,
.public-site-main::-webkit-scrollbar,
.sedaflow-public-site::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.public-site-main,
.sedaflow-public-site {
  scrollbar-width: none;
}

.public-section {
  min-height: 100dvh;
  padding-top: clamp(78px, 7vw, 118px);
  padding-bottom: clamp(78px, 7vw, 118px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.public-hero-section {
  padding-top: clamp(92px, 7vw, 116px);
  padding-bottom: clamp(32px, 4vw, 58px);
}

.public-about-section,
.public-system-section,
.public-flow-section,
.public-plans-section,
.public-faq-section,
.public-challenges-section,
.public-authority-section {
  min-height: 100dvh;
}

.public-section-heading {
  margin-bottom: clamp(22px, 3vw, 42px);
}

.public-site-footer {
  scroll-snap-align: end;
}

.public-site-footer a {
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.74);
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

@media (min-width: 761px) and (max-height: 820px) {
  .public-section { padding-top: 74px; padding-bottom: 36px; }
  .public-hero-section { padding-top: 82px; padding-bottom: 28px; gap: clamp(24px, 3vw, 48px); }
  .public-hero-copy { gap: 12px; }
  .public-hero-copy h1 { font-size: clamp(2.85rem, 4.4vw, 4.85rem); line-height: 0.95; }
  .public-hero-copy p,
  .public-section-heading span,
  .public-copy-card p,
  .public-authority-copy p,
  .public-hero-device small,
  .public-faq-grid p { font-size: 0.94rem; line-height: 1.48; }
  .public-section-heading { gap: 6px; margin-bottom: 18px; }
  .public-section-heading h2,
  .public-authority-copy h2 { font-size: clamp(1.95rem, 3.2vw, 3.7rem); line-height: 0.98; }
  .public-copy-card,
  .public-highlight-card,
  .public-showcase-copy,
  .public-plan-card { padding: 20px; border-radius: 28px; }
  .public-challenge-card { min-height: 174px; padding: 18px; }
  .public-feature-card { min-height: 142px; padding: 17px; border-radius: 24px; }
  .public-feature-card span { width: 34px; height: 34px; margin-bottom: 12px; }
  .public-flow-step { min-height: 102px; gap: 10px; padding: 16px; }
  .public-video-placeholder { min-height: 230px; }
  .public-faq-grid details { padding: 13px 15px; }
}

@media (max-width: 760px) {
  body:not(.public-login-mode) .auth-gate { scroll-snap-type: none; scroll-padding-top: 0; }
  .public-hero-section,
  .public-section { min-height: auto; scroll-snap-align: none; }
}

@media (prefers-reduced-motion: reduce) {
  html,
  body:not(.public-login-mode) .auth-gate { scroll-behavior: auto; }
  body:not(.public-login-mode) .auth-gate { scroll-snap-type: none; }
}
