/* Mobile layout hardening: keep every public page inside the viewport. */
html {
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
}

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

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

.product.comingSoon {
  border-color: #9fc9e8;
  background: linear-gradient(180deg, #fff, #f2f8fc);
}

.product.comingSoon .badge,
.product.comingSoon .add:disabled {
  background: #486b84;
  color: #fff;
}

.nav,
.navtools,
.heroInner,
.heroTrust,
.cats,
.grid,
.crypto,
.coins,
.services,
.approach,
.content {
  min-width: 0;
}

@media (max-width: 760px) {
  .page.wrap {
    min-width: 0;
    padding: 42px 14px 70px;
  }

  .page h1,
  .page .content,
  .page .content p,
  .page .legal {
    overflow-wrap: anywhere;
  }

  .page .content {
    width: 100%;
    min-width: 0;
    padding: 20px;
    overflow: hidden;
  }

  .page .content p {
    font-size: 15px;
  }

  .page .page-image {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
  }

  .links {
    max-width: 100%;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }
}

@media (max-width: 600px) {
  .wrap {
    padding-left: 12px;
    padding-right: 12px;
  }

  .navshell:has(.navtools) .nav {
    width: 100%;
    height: 54px;
    gap: 7px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .brand {
    min-width: 0;
    flex-shrink: 1;
  }

  .brand > span:last-child {
    min-width: 0;
  }

  .mark {
    flex: 0 0 auto;
  }

  .navtools {
    margin-left: auto;
    gap: 5px;
    flex: 0 1 auto;
  }

  .navtools .login {
    margin-left: 0;
    padding: 5px;
  }

  .navtools .register {
    padding: 8px 9px;
  }

  .cartbtn {
    padding: 5px;
  }

  body .hero {
    min-height: 0;
    overflow: hidden;
    background-position: center;
  }

  .hero .heroInner {
    position: relative;
    z-index: 2;
    padding: 35px 22px 22px;
  }

  body .hero h1 {
    max-width: 100%;
    font-size: clamp(34px, 11vw, 43px);
  }

  body .hero p {
    max-width: 100%;
  }

  .hero .heroVials {
    position: relative;
    display: block;
    right: auto;
    bottom: auto;
    width: min(92%, 480px);
    height: auto;
    margin: 0 auto 72px;
    opacity: .98;
    object-fit: contain;
  }

  .hero .heroTrust {
    padding-left: 12px;
    padding-right: 12px;
    gap: 7px;
  }

  .hero .heroTrust div {
    grid-template-columns: 24px minmax(0, 1fr);
    min-width: 0;
  }

  .hero .heroTrust b,
  .hero .heroTrust span {
    overflow-wrap: anywhere;
  }

  main .cats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-left: 0;
    margin-right: 0;
  }

  .cats .cat {
    min-width: 0;
    height: auto;
    min-height: 82px;
    padding: 9px 5px;
    text-align: center;
    overflow-wrap: anywhere;
  }

  .sectionHead {
    gap: 10px;
  }

  .sectionHead a {
    white-space: nowrap;
  }

  main .grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .grid .product {
    min-width: 0;
    padding: 11px;
  }

  .product .pic {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  .product .productImage {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    padding: 10px;
    object-fit: contain;
    object-position: center;
  }

  .grid .product h3 {
    font-size: 16px;
  }

  .grid .product p {
    min-height: 0;
    font-size: 12px;
  }

  .product .price {
    font-size: 20px;
  }

  .product .add {
    padding: 12px;
    font-size: 12px;
  }

  .coins {
    flex-wrap: wrap;
  }

  main .services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px;
  }

  .service,
  .approach > * {
    min-width: 0;
  }

  .service p,
  .approach p {
    overflow-wrap: anywhere;
  }

  #cart {
    max-width: calc(100vw - 20px);
  }

  .cartline > * {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  body dialog {
    max-width: calc(100vw - 20px);
    padding: 18px;
  }
}

@media (max-width: 360px) {
  .brand {
    letter-spacing: .06em;
  }

  .login span {
    display: none;
  }

  .register {
    padding-left: 7px;
    padding-right: 7px;
  }
}
