/* Mobile layout safeguards: keep flexible content inside the viewport. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.list-check li {
  overflow-wrap: break-word;
}

/* Restores the check marker for every list, including nested section cards. */
.list-check li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3rem;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 0.3rem;
  border: 1px solid rgba(148, 163, 184, 0.9);
  background: radial-gradient(circle at 30% 10%, #D8C8A7, #D8793F 55%);
  box-shadow: 0 0 12px rgba(216, 121, 63, 0.7);
}

@media (max-width: 767px) {
  .section { padding-block: 2.75rem; }
  .section--tight { padding-block: var(--space-6); }
  .section-header { gap: var(--space-2); margin-bottom: var(--space-5); }
  .section-header p:last-child { margin-bottom: 0; }

  .hero { padding-top: calc(var(--header-height) + var(--space-5)); padding-bottom: var(--space-7); }
  .hero-inner, .grid-2, .feature-grid, .card-grid, .gallery-grid, .cta-inner { gap: var(--space-5); }
  .hero-inner > *, .grid-2 > *, .feature-grid > *, .card-grid > *, .gallery-grid > *, .cta-inner > *, .footer-inner > * { min-width: 0; }

  .hero-kicker { flex-wrap: wrap; gap: 0.35rem 0.65rem; font-size: 0.68rem; line-height: 1.35; letter-spacing: 0.14em; }
  .hero-kicker span:last-child { min-width: 0; overflow-wrap: anywhere; }
  .hero-gridline { flex: 0 1 2rem; min-width: 1.25rem; }
  .hero-title { font-size: clamp(2rem, 9.5vw, 2.35rem); letter-spacing: 0.04em; margin-bottom: var(--space-4); }
  .hero-lead { font-size: 1rem; line-height: 1.55; margin-bottom: var(--space-5); }

  .hero-actions { width: 100%; align-items: stretch; }
  .btn { max-width: 100%; min-height: 3rem; padding: 0.7rem 1rem; white-space: normal; line-height: 1.2; text-align: center; }
  .btn-lg { padding: 0.85rem 1rem; }
  .btn-download { padding-inline: 1rem; }
  .btn-download-icon { flex: 0 0 auto; }
  .hero-actions .btn, .cta-actions .btn, .maps-closing-actions .btn, .contact-actions .btn { width: 100%; max-width: none; }
  .cta-actions, .maps-closing-actions { flex-direction: column; align-items: stretch; }

  .hero-meta { display: grid; gap: var(--space-4); margin-top: var(--space-6); }
  .hero-meta-item { min-width: 0; }
  .hero-meta-value { line-height: 1.45; overflow-wrap: anywhere; }
  .hero-visual { min-height: 0; }
  .hero-device-frame { width: 100%; max-width: 19rem; }

  .card { padding: var(--space-4); }
  .card-header { align-items: flex-start; flex-direction: column; gap: var(--space-3); }
  .modes-card-header, .privacy-hero-card-header { align-items: flex-start; flex-direction: column; gap: var(--space-3); }
  .faq-layout { padding: var(--space-4); }
  .status-label { max-width: 100%; white-space: normal; line-height: 1.35; }
  .faq-list { padding: var(--space-4); }

  .gallery-caption { position: static; opacity: 1; transform: none; padding: 0.7rem 0.75rem; background: #090c12; line-height: 1.4; }
  .gallery-item::after { display: none; }

  .cta { padding-block: var(--space-7); }
  .cta-title { font-size: var(--font-size-2xl); }
  .pm-footer { padding-block: var(--space-7); }
  .pm-footer__download, .pm-footer__copyright { white-space: normal; }

  .pm-cookie { padding: var(--space-3); }
  .pm-cookie__inner { max-height: calc(100dvh - 1.5rem); overflow-y: auto; }
  .pm-cookie__actions .btn { width: 100%; }

  .pm-header__inner { gap: var(--space-3); }
  .pm-header__brand { min-width: 0; }
  .pm-header__brand-text { min-width: 0; }
  .pm-header__brand-title, .pm-header__brand-subtitle { overflow: hidden; text-overflow: ellipsis; }
  .pm-header__brand-subtitle { max-width: 12.5rem; }
  .pm-header__nav-mobile { overflow-y: auto; }
  .pm-header__nav-mobile-cta .btn { flex-basis: 100%; width: 100%; }
}

@media (max-width: 360px) {
  .container { padding-inline: 0.875rem; }
  .hero-kicker { font-size: 0.63rem; letter-spacing: 0.12em; }
  .hero-title { font-size: 1.95rem; }
  .card { padding: 0.875rem; }
  .section { padding-block: 2.35rem; }
  .pm-header__brand-subtitle { display: none; }
}
