/* Cross-page responsive safeguards. Loaded after page-specific styles. */
html {
  max-width: 100%;
  overflow-x: clip;
}

body {
  max-width: 100%;
  overflow-x: clip;
}

img,
video,
canvas,
iframe {
  max-width: 100%;
}

img,
video {
  height: auto;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

:is(p, li, dd, td, th, label, a, button, h1, h2, h3, h4) {
  overflow-wrap: break-word;
}

.wrap {
  width: 100%;
  min-width: 0;
}

:is(.ar-table-wrap, .pdp-tabs-wrap, .pdp-tabs, .vw-nav-inner) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

/* Decorative login circles must never increase the document width. */
.login-wrap {
  overflow: hidden;
}

/* The project bureau hero used the old dark treatment and hid its copy on mobile. */
body.internal-light.page-proetnii-biro .hero {
  background-color: #f4f8f9 !important;
  background-blend-mode: screen !important;
  box-shadow: inset 0 0 0 100vmax rgba(250, 252, 252, .78);
  color: var(--il-ink, #172126) !important;
}

body.internal-light.page-proetnii-biro .hero :is(h1, h1 em, .hero-sub) {
  color: var(--il-ink, #172126) !important;
  text-shadow: none !important;
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

body.internal-light.page-proetnii-biro .hero h1 em {
  color: var(--il-accent, #087f98) !important;
}

@media (max-width: 1200px) {
  html {
    scroll-padding-bottom: 78px;
  }

  .wrap {
    padding-inline: 24px;
  }

  .site-header {
    left: 12px;
    right: 12px;
  }

  :is(.lk-layout, .pdp-layout, .cart-layout, .ar-layout) {
    min-width: 0;
  }

  :is(.agg-page, .cart-page, .cat-page, .pdp-page, .legal-page, .cmp-page,
    .cn-page, .lk-layout, .ar-breadcrumb, .pps-geo-sec) {
    padding-top: 32px !important;
  }

  .login-wrap {
    min-height: calc(100dvh - 72px);
    align-items: flex-start;
    padding: 40px 20px 100px !important;
  }

  /* Tablet widths also need the sector-page reveal offsets neutralized. */
  body.internal-light :is(
    #pageKlientyZhilye,
    #pageInd,
    #pageMedO,
    #pageKulturaS,
    #pageInfra,
    #pageSklad
  ) :is(.reveal, .reveal--left, .reveal--right, .reveal--up) {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}

@media (max-width: 900px) {
  html {
    scroll-padding-bottom: 78px;
  }

  body {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  .wrap {
    padding-inline: 16px;
  }

  /* Desktop header is replaced by the fixed bottom navigation. */
  .site-header {
    display: none !important;
  }

  .cert-glow {
    display: none !important;
  }

  :is(.agg-page, .cart-page, .cat-page, .pdp-page, .legal-page, .cmp-page,
    .cn-page, .lk-layout, .ar-breadcrumb, .pps-geo-sec) {
    padding-top: 28px !important;
  }

  :is(.hero-partners, .ev-hero, .kb-hero, .pm-hero, .rkl-hero) {
    min-height: auto !important;
    padding-top: 52px !important;
    padding-bottom: 48px !important;
  }

  :is(.sec, .kb-sec, .ev-sec, .kz-sec, .pm-sec) {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  :is(.hero-title-stack, .ev-hero-title, .kb-hero-title, .pm-hero-title,
    .page-proetnii-biro .hero h1) {
    max-width: 100% !important;
    font-size: clamp(2rem, 8vw, 3rem) !important;
    line-height: 1.08 !important;
  }

  :is(.hero-tagline, .ev-hero-lead, .kb-hero-lead, .pm-hero-lead,
    .page-proetnii-biro .hero-sub) {
    max-width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }

  .page-proetnii-biro .hero-sub br {
    display: none;
  }

  /* Remove entrance offsets that escape the viewport on content pages. */
  body.internal-light [class*="reveal"] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }

  /* These pages define ID-scoped entrance offsets with !important. */
  body.internal-light :is(
    #pageKlientyZhilye,
    #pageInd,
    #pageMedO,
    #pageKulturaS,
    #pageInfra,
    #pageSklad
  ) :is(.reveal, .reveal--left, .reveal--right, .reveal--up) {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }

  .page-klienty-zhilye :is(.ks-task-band, .ks-task-inner) {
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  .page-klienty-zhilye .ks-task-inner {
    padding-inline: 16px !important;
  }

  :is(.steps-grid, .page-klienty-zhilye .kz-client-factors.steps-grid) {
    max-width: 100%;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
  }

  :is(.pdp-tabs, .vw-nav-inner) {
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  :is(.pdp-tab, .vw-nav-link) {
    scroll-snap-align: start;
  }

  :is(.login-wrap, .lk-layout) {
    min-height: calc(100dvh - 72px);
  }

  .login-wrap {
    align-items: flex-start;
    padding: 36px 16px 96px !important;
  }

  .login-wrap::before,
  .login-wrap::after {
    display: none !important;
  }

  .login-card {
    width: min(100%, 440px) !important;
    padding: 32px 24px 30px !important;
    border-radius: 8px !important;
  }

  .login-logo {
    margin-bottom: 20px !important;
  }

  .login-logo img {
    width: min(100%, 280px);
    height: auto !important;
  }

  .login-title {
    font-size: clamp(1.65rem, 7vw, 2rem) !important;
    line-height: 1.15 !important;
  }

  .mob-nav {
    padding-bottom: env(safe-area-inset-bottom);
  }

  :is(button, .btn, input, select, textarea, .mob-nav-link) {
    min-height: 44px;
  }
}

@media (max-width: 640px) {
  .wrap {
    padding-inline: 16px;
  }

  :is(.cat-card, .pdp-block, .cat-hero, .agg-bc-panel, .agg-intro,
    .ev-card, .ev-past-card, .lk-card, .lk-panel) {
    border-radius: 8px !important;
  }

  .steps-grid,
  .page-klienty-zhilye .kz-client-factors.steps-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    overflow: visible !important;
    gap: 12px !important;
  }

  .steps-grid > *,
  .page-klienty-zhilye .kz-client-factors.steps-grid > * {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  :is(.ar-callout, .ev-seminar-details, .kz-note, .p-contacts) {
    padding-inline: 16px !important;
  }

  :is(.p-contact-item, .cn-contact-link, .lk-manager-contact) {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 380px) {
  .wrap {
    padding-inline: 14px;
  }

  :is(.hero-title-stack, .ev-hero-title, .kb-hero-title, .pm-hero-title,
    .page-proetnii-biro .hero h1) {
    font-size: 1.9rem !important;
  }

  .login-card {
    padding-inline: 18px !important;
  }
}
