/* Shared image layout uses intrinsic dimensions as a fallback for aspect-ratio. */
.cta-short { display: none; }
.menu-toggle {
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
body {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
}
.site-header {
  padding-top: env(safe-area-inset-top, 0px);
  -webkit-backdrop-filter: blur(16px);
}
.site-footer { padding-bottom: env(safe-area-inset-bottom, 0px); }
html { scroll-padding-top: calc(100px + env(safe-area-inset-top, 0px)); }
.liveness-copy, .documents-copy, .contact-copy,
.security-layout > div, .footer-top > div { min-width: 0; }
.footer-contacts a, .footer-links a { overflow-wrap: anywhere; }

.demo-animation-visual {
  margin: 0;
  flex-direction: column;
  min-height: 0;
  padding-block: 15px;
  scroll-margin-top: 0;
}
.demo-animation-phone {
  position: relative;
  width: 254px;
  max-width: 100%;
  padding: 5px;
  border: 1px solid #6a7c92;
  border-radius: 29px;
  background: #1d2838;
  box-shadow: 0 18px 45px #0b1f3a15;
  overflow: hidden;
}
.demo-animation-phone picture { display: block; }
.demo-animation-phone img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 23px;
  background: #fff;
}
.demo-animation-visual .liveness-backdrop {
  width: 340px;
  height: 340px;
  top: 50%;
  transform: translateY(-60%);
  pointer-events: none;
}
.demo-animation-visual figcaption {
  text-align: center;
  max-width: 340px;
  margin-top: 15px;
  font-size: 12px;
  line-height: 1.8;
  color: var(--muted);
}
.demo-animation-visual figcaption small {
  display: block;
  margin-top: 6px;
  font-size: 11px;
}
.animation-toggle {
  min-height: 44px;
  margin-top: 16px;
  padding: 10px 18px;
  border: 1px solid #c3d6ed;
  border-radius: 100px;
  background: #fff;
  color: var(--blue);
  font-size: 13px;
  font-weight: 600;
}
.animation-toggle:hover { background: var(--light); }
.animation-toggle-icon {
  width: 44px;
  height: 44px;
  padding: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 800px) {
  .menu-toggle {
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .mobile-nav { max-height: 70vh; overflow-y: auto; }
  .mobile-nav a { min-height: 48px; align-items: center; }
  .faq-item button { min-height: 48px; }
  .whatsapp-float {
    right: calc(16px + env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
  .toast { bottom: calc(85px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 600px) {
  html { scroll-padding-top: calc(88px + env(safe-area-inset-top, 0px)); }
  .header-inner { height: 72px; gap: 6px; }
  .site-header .brand {
    min-width: 0;
    white-space: normal;
    line-height: 1.2;
    flex: 0 1 auto;
    font-size: 12px;
  }
  .site-header .brand > span:last-child {
    max-width: 140px;
    overflow-wrap: anywhere;
  }
  .site-header .brand-symbol { flex: 0 0 26px; }
  .header-cta {
    min-height: 44px;
    flex: 0 0 auto;
    padding: 10px 12px;
    font-size: 11px;
  }
  .header-cta .cta-full { display: none; }
  .header-cta .cta-short { display: inline; }
  .hero-actions .button { min-height: 52px; font-size: 13px; }
  .hero-badges { font-size: 10px; gap: 9px 14px; }
  .hero-badges .icon { width: 13px; height: 13px; }
  .hero-footnote { font-size: 11px; }
  .hero-bottom > .container { padding-block: 18px; }
  .hero-bottom > .container > div {
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 12px;
    white-space: normal;
    font-size: 10px;
  }
  .resource-card h3 { font-size: 15px; }
  .resource-card p { font-size: 14px; }
  .demo-animation-phone { width: 248px; }
  .demo-animation-visual { width: 100%; padding-top: 10px; }
  .demo-animation-visual .liveness-backdrop { width: 265px; height: 265px; }
  .demo-animation-visual figcaption { max-width: 310px; }
  .site-footer a, .site-footer button { min-height: 44px; }
  .footer-links a, .footer-contacts a { display: flex; align-items: center; }
  .footer-contacts, .footer-links { font-size: 12px; gap: 2px; }
  .footer-bottom button { padding-block: 10px; font-size: 12px; }
  /* Inline consent keeps every mobile CTA unobstructed. Tracking remains opt-in. */
  .cookie-banner {
    position: static;
    max-width: calc(100% - 32px);
    margin: 16px auto;
    padding: 18px;
    display: block;
  }
  .cookie-banner p { font-size: 13px; }
  .cookie-banner > div {
    flex-direction: row;
    justify-content: flex-end;
    margin-top: 14px;
    gap: 10px;
  }
  .cookie-banner button { min-height: 44px; padding-inline: 18px; font-size: 13px; }
}

@media (max-width: 420px) {
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { width: 100%; flex: none; font-size: 14px; }
}
@media (max-width: 374px) {
  .site-header .brand { font-size: 11px; }
  .header-cta { padding-inline: 10px; font-size: 10px; }
}
@media (max-width: 340px) {
  .container { width: calc(100% - 32px); }
  h1 { font-size: 30px; }
  .hero-copy { padding-top: 25px; }
  .hero-description { font-size: 15px; }
  .hero-actions { margin-top: 18px; }
  .hero-visual > .phone { margin-right: 25px; }
  .approval-card { width: 168px; }
  .resource-card { padding: 18px 12px; }
  .demo-animation-visual .liveness-backdrop { width: 220px; height: 220px; }
}
@media (hover: none) {
  .button:hover, .whatsapp-float:hover { transform: none; }
}
@media (pointer: coarse) {
  .site-footer a, .site-footer button { min-height: 44px; }
  .footer-links a, .footer-contacts a { display: flex; align-items: center; }
  .faq-item button { min-height: 48px; }
}
