/* Shared responsive stability fixes for nocms pages */

html,
body {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

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

h1,
h2,
h3,
p {
  overflow-wrap: anywhere;
}

/* Static mode: disable motion-related behavior for stability across devices. */
* ,
*::before,
*::after {
  animation: none !important;
  transition: none !important;
}

html {
  scroll-behavior: auto !important;
}

.reveal,
.reveal.active {
  opacity: 1 !important;
  transform: none !important;
}

.pop-in,
.message-pop,
.animate-float,
.badge-bounce,
.pulse-dot,
.scroll-indicator,
.avatar-bounce,
.ziofico-bounce,
.hero-title,
.hero-subtitle,
.hero-para,
.hero-cta,
.hero-social,
.hero-scroll,
.typing-dot {
  animation: none !important;
  transform: none !important;
}

#confetti-container,
.deco-star,
.blob-1,
.blob-2,
.purple-glow {
  display: none !important;
}

header h1 {
  text-wrap: balance;
}

#navbar .logo-wrap,
nav .logo-wrap {
  min-width: 0;
}

#navbar .logo-wrap span,
nav .logo-wrap span {
  line-height: 1;
  white-space: nowrap;
}

#navbar .nav-link {
  white-space: nowrap;
}

@media (min-width: 768px) and (max-width: 1360px) {
  #navbar .max-w-7xl {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  #navbar .hidden.md\:flex > :not([hidden]) ~ :not([hidden]) {
    margin-left: 0.9rem !important;
  }

  #navbar .nav-link {
    font-size: 0.66rem !important;
    letter-spacing: 0.1em !important;
  }

  #navbar .logo-wrap span {
    font-size: 1.15rem !important;
    letter-spacing: 0.1em !important;
  }
}

@media (max-width: 420px) {
  #navbar .logo-wrap span,
  nav .logo-wrap span {
    font-size: 1.02rem !important;
    letter-spacing: 0.08em !important;
  }

  header h1 {
    font-size: clamp(1.95rem, 9vw, 2.45rem) !important;
    line-height: 1.1 !important;
    overflow-wrap: anywhere;
    hyphens: auto;
  }
}

@media (max-width: 640px) {
  #navbar .max-w-7xl,
  nav .max-w-7xl {
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  header [class*="text-5xl"],
  header [class*="text-6xl"],
  header [class*="text-7xl"],
  header [class*="text-8xl"] {
    font-size: clamp(2rem, 8.4vw, 2.75rem) !important;
    line-height: 1.12 !important;
  }

  header p[class*="text-lg"],
  header p[class*="text-2xl"] {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
}

@media (max-height: 760px) and (max-width: 1280px) {
  #navbar {
    height: 4.5rem !important;
  }

  #navbar .logo-wrap > div {
    width: 2.5rem !important;
    height: 2.5rem !important;
  }

  #navbar .logo-wrap span {
    font-size: 1rem !important;
    letter-spacing: 0.08em !important;
  }
}

/* iPhone/iOS specific safeguards */
@supports (padding: max(0px)) {
  @media (pointer: coarse) {
    #navbar .max-w-7xl,
    nav .max-w-7xl {
      padding-left: max(0.85rem, env(safe-area-inset-left)) !important;
      padding-right: max(0.85rem, env(safe-area-inset-right)) !important;
    }

    .hero-content-shell,
    header .max-w-7xl,
    main .max-w-7xl,
    footer .max-w-7xl {
      padding-left: max(1rem, env(safe-area-inset-left)) !important;
      padding-right: max(1rem, env(safe-area-inset-right)) !important;
    }
  }
}

@supports (-webkit-touch-callout: none) {
  html,
  body {
    min-height: -webkit-fill-available;
  }

  #navbar {
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
  }
}

/* Specific nav tuning for contatti layout */
@media (min-width: 768px) and (max-width: 1180px) {
  nav .glass .hidden.md\:flex {
    gap: 0.75rem !important;
    font-size: 0.66rem !important;
    letter-spacing: 0.08em !important;
  }

  nav .glass .hidden.md\:flex a:last-child {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
}

@media (max-width: 480px) {
  nav .glass {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  nav .glass > a span {
    font-size: 1rem !important;
    letter-spacing: 0.08em !important;
  }
}

/* Ultra-compact phones (iPhone SE/mini and similar) */
@media (max-width: 380px) {
  #navbar {
    height: 4.25rem !important;
  }

  #navbar .max-w-7xl,
  nav .max-w-7xl {
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }

  #navbar .logo-wrap,
  nav .logo-wrap {
    gap: 0.45rem !important;
  }

  #navbar .logo-wrap > div,
  nav .logo-wrap > div {
    width: 2.2rem !important;
    height: 2.2rem !important;
  }

  #navbar .logo-wrap span,
  nav .logo-wrap span {
    font-size: 0.9rem !important;
    letter-spacing: 0.06em !important;
  }

  header h1 {
    font-size: clamp(1.72rem, 8.2vw, 2.08rem) !important;
    line-height: 1.08 !important;
  }

  header p,
  main p {
    font-size: 0.95rem;
    line-height: 1.45;
  }

  .section-tag {
    font-size: 0.62rem !important;
    letter-spacing: 0.16em !important;
    padding: 0.22rem 0.72rem !important;
  }

  .btn-primary,
  .btn-secondary {
    font-size: 0.88rem !important;
    line-height: 1.25;
  }

  .home-recommended-actions a,
  .hero-cta a {
    padding-left: 0.95rem !important;
    padding-right: 0.95rem !important;
    white-space: normal !important;
  }
}
