html, body { height: 100% !important; overflow: hidden !important; }
.swipe-container {
  height: var(--section-height, 100dvh) !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  scroll-snap-type: y mandatory !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.swipe-container::-webkit-scrollbar { display: none !important; }
.swipe-container #pageRoot,
.swipe-container #tabeyomemanga,
.swipe-container #product,
.swipe-container #creator,
.swipe-container #recipe,
.swipe-container #product > .inner,
.swipe-container #creator > .inner,
.swipe-container #recipe > .inner,
.swipe-container .recipe__wrap,
.swipe-container .recipeList { display: contents !important; }
.swipe-container .swipe-section {
  position: relative !important;
  box-sizing: border-box !important;
  width: 100% !important; max-width: none !important;
  height: var(--section-height, 100dvh) !important; min-height: var(--section-height, 100dvh) !important; max-height: var(--section-height, 100dvh) !important;
  margin: 0 !important;
  overflow: clip;
  scroll-snap-align: start !important;
  scroll-snap-stop: always !important;
}
.swipe-container .swipe-section:focus { outline-offset: -4px !important; }
.swipe-container #mv { display: flex !important; flex-direction: column !important; justify-content: center !important; }
.swipe-mode #back-top { bottom: max(12px, env(safe-area-inset-bottom)) !important; }
.swipe-mode #back-top a, .swipe-mode #back-top span { width: 36px !important; height: 36px !important; }
.step-card { position: relative !important; background: #fff !important; border: 3.51px solid #000 !important; padding: 40px 20px 20px !important; }
@media (max-height: 700px) {
  .step-card { padding: 32px 16px 16px !important; }
}
.swipe-mode #back-top { z-index: 90 !important; }

/* Long content remains in the same native scroll surface. */
.recruit-mode .swipe-container :is(#company, #requirements, #entry) {
  height: auto !important;
  min-height: var(--section-height) !important;
  max-height: none !important;
}
.recruit-mode .swipe-container :is(#requirements, #entry) {
  scroll-snap-stop: normal !important;
}
@media (prefers-reduced-motion: no-preference) {
  .swipe-container { scroll-behavior: smooth; }
}
/* An explicit end boundary keeps WebKit from snapping long content back to its start. */
.recruit-mode .swipe-container :is(#requirements, #entry)::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  scroll-snap-align: end;
  scroll-snap-stop: normal;
  pointer-events: none;
}
