/* VOID — overflow lock + mobile polish (loads last) */

html {
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

.site-shell,
.site-shell main,
.site-footer {
  overflow-x: hidden;
}

section,
article,
header,
footer,
nav,
form,
.card,
.plan-card,
.form-card,
.summary-card,
.payment-inner,
.hero,
.hero > *,
.footer-col {
  min-width: 0;
  max-width: 100%;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

.site-header {
  width: 100%;
  overflow-x: hidden;
}

.site-header .logo {
  min-width: 0;
  max-width: calc(100% - 3rem);
}

main.wrap {
  padding-block: clamp(1.25rem, 4vw, var(--section-gap));
}

.page-title {
  font-size: clamp(1.45rem, 5.5vw, var(--font-size-3xl));
  overflow-wrap: break-word;
}

.page-subtitle {
  padding-inline: 0;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.75rem;
}

.platform-tags {
  width: 100%;
}

.platform-tags li {
  width: 100%;
}

.form-section-title {
  flex-wrap: wrap;
}

.summary-plan-name,
.summary-plan-period {
  overflow-wrap: anywhere;
}

.promo-apply {
  white-space: normal;
}

@media (max-width: 1024px) {
  nav a { white-space: normal; }
}

@media (max-width: 640px) {
  .hero-actions .btn {
    flex: 1 1 100%;
  }

  .site-header--cabinet {
    flex-wrap: wrap;
    align-items: center;
  }

  .site-header--cabinet .logo--header {
    margin-right: 0;
    flex: 1 1 auto;
  }

  .site-header--cabinet .cabinet-breadcrumb {
    order: 3;
    flex: 1 1 100%;
    margin-left: 0;
    font-size: 0.72rem;
  }

  .site-header--cabinet .burger {
    margin-left: auto;
  }

  .promo-row {
    flex-direction: column;
  }

  .promo-apply {
    width: 100%;
  }

  .plan-card .popular-tag,
  .plan-badge {
    white-space: normal;
    max-width: calc(100% - 1rem);
    text-align: center;
  }

  .support-widget {
    right: max(0.75rem, env(safe-area-inset-right));
    bottom: max(0.75rem, env(safe-area-inset-bottom));
  }
}

@media (max-width: 480px) {
  nav.open {
    left: var(--content-pad-x);
    right: var(--content-pad-x);
    width: auto;
  }

  .site-header { padding-inline: var(--content-pad-x); }
}
