/* ===== LAYOUT ===== */
.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  position: relative;
}

.main {
  flex: 1;
  position: relative;
  z-index: var(--z-content);
  overflow-x: hidden;
}

.layout-container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.layout-container--narrow {
  max-width: 1000px;
}

.layout-section {
  position: relative;
  z-index: var(--z-content);
  overflow: hidden;
}

@media (max-width: 428px) {
  :root {
    --container-padding: 5.33vw;
  }
}

@media (max-width: 767px) {
  .pc-only {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .sp-only {
    display: none !important;
  }
}

.u-no-scroll {
  overflow: hidden !important;
  height: 100vh; /* 防止 iOS Safari 滾動穿透 */
}