/* Public pages only. Load after page styles, brand.css and nova-assistant.css.
 * Admin has its own workspace stylesheet. No document-level overflow clipping.
 */
/* Override the legacy inline left:-9999px without creating RTL scroll area.
 * Keep this link in the keyboard/accessibility tree, then reveal it on focus.
 */
.skip-link {
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  top: 0 !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: 0;
  border: 0;
  overflow: hidden !important;
  clip-path: inset(50%);
  white-space: nowrap;
}
.skip-link:focus {
  position: fixed !important;
  left: 8px !important;
  right: 8px !important;
  top: 8px !important;
  width: auto !important;
  height: auto !important;
  min-height: 44px;
  padding: 12px 16px !important;
  overflow: visible !important;
  clip-path: none;
  white-space: normal;
  overflow-wrap: anywhere;
  z-index: 9999;
}
.container { width: 100%; min-width: 0; }
:is(.hero-grid, .grid-2, .grid-3, .grid-4, .grid-2x3, .contact-grid, .founder-inner) > * { min-width: 0; }
:is(.story, .contact-value, .contact-item, .hero-desc, .founder-desc, .testimonial-text, .footer-copy, .badge, .hero-trust-tag) { overflow-wrap: anywhere; }
:is(h1, h2, h3, .btn, .nav-links a, .footer-links a) { overflow-wrap: anywhere; }
:is(input, select, textarea) { max-width: 100%; min-width: 0; box-sizing: border-box; }
:is(.contact-item, .device-row) > div { min-width: 0; }
:is(.btn, .lang-btn, .hamburger, .nav-links a, .nav-dropdown a, .footer-links a, .policy-link) { min-height: 44px; }
:is(.nav-links a, .footer-links a, .policy-link) { display: inline-flex; align-items: center; }
:is(.hamburger, .founder-arrow, .testimonial-control, .modal-close) { min-width: 44px; min-height: 44px; flex-shrink: 0; }
.footer-links { flex-wrap: wrap; justify-content: center; gap: 4px 20px; }
.footer { padding-bottom: max(88px, env(safe-area-inset-bottom)); }
.viewer { min-width: 0; }
:is(.founder-nav) { flex-wrap: wrap; }
.modal-overlay .modal { max-height: calc(100dvh - 40px); }
html { scroll-padding-top: 100px; }
html[dir="rtl"] .story blockquote { border-left: 0; padding-left: 0; border-inline-start: 3px solid #0D7377; padding-inline-start: 24px; }

/* The main menu becomes its existing dropdown before tablet links collide.
 * Secondary pages have no dropdown: keep their links visible on a second row.
 */
@media (max-width: 1100px) {
  .nav:has(.hamburger) .nav-links { display: none; }
  .nav:has(.hamburger) .hamburger { display: inline-flex; }
  .nav .container { gap: 12px; }
  .nav .nav-right { flex-shrink: 0; }
  .nav-dropdown { top: 68px; max-height: calc(100dvh - 80px); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 900px) {
  .hero { min-height: auto; padding-block: 104px 48px; }
  .hero .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .hero .hero-desc { max-width: 65ch; }
  .hero .hero-trust { max-width: none; margin-inline: 0; }
  .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .grid-2 { grid-template-columns: minmax(0, 1fr); }
  .grid-3, .grid-4, .grid-2x3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .nav:not(:has(.hamburger)) .container { flex-wrap: wrap; }
  .nav:not(:has(.hamburger)) .nav-links { display: flex; order: 3; flex: 1 0 100%; flex-wrap: wrap; gap: 0 16px; border-top: 1px solid #E8E8E8; }
  .nav:not(:has(.hamburger)) .nav-right { margin-inline-start: auto; }
  .nav:not(:has(.hamburger)) { position: relative; }
  .founder-header { padding-block: 16px 28px; }
  .founder-header .founder-portrait { width: min(100%, 400px); }
  .founder-inner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .founder-inner .founder-avatar { width: min(100%, 280px); height: auto; aspect-ratio: 1; }
  .waitlist-form { max-width: none; }
  .contact-form :is(input, select, textarea), .waitlist-form :is(input, select), #nova-search { font-size: 16px; }
  .footer-inner { flex-direction: column; text-align: center; }
}
@media (max-width: 600px) {
  .container { padding-inline: 16px; }
  .nav { padding-block: 10px; }
  .nav .container { gap: 8px; }
  .nav .logo { font-size: 17px; gap: 6px; }
  .nav .nav-right { gap: 6px; }
  .nav .nav-right .btn { padding-inline: 12px; font-size: 13px; }
  .nav .lang-btn { min-width: 44px; padding-inline: 8px; }
  .nav .hamburger { width: 44px; height: 44px; }
  .hero { padding-block: 96px 40px; }
  h1 { font-size: clamp(2rem, 8vw, 2.75rem); line-height: 1.15; }
  h2 { font-size: clamp(1.5rem, 6vw, 2rem); }
  .hero .hero-trust { padding: 24px 20px; border-radius: 20px; }
  .hero-buttons { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 28px; }
  .hero-badges .badge { flex-wrap: wrap; }
  .stats { gap: 12px; }
  .stat-num { font-size: 24px; }
  .stat-label { line-height: 1.5; }
  .grid-3, .grid-4, .grid-2x3, .format-grid { grid-template-columns: minmax(0, 1fr); }
  .section, .waitlist-section, .founder-section, .devices-section { padding-block: 40px; }
  .page-header { padding-block: 12px 28px; }
  .contact-item { padding: 14px 12px; gap: 10px; }
  .contact-badge { max-width: 100%; overflow-wrap: anywhere; }
  .device-row { flex-wrap: wrap; }
  .device-desc { flex-basis: 50%; min-width: 0; }
  .device-badge { margin-inline-start: 40px; }
  .viewer { flex-wrap: wrap; gap: 12px; }
  .testimonial-card { padding: 20px; }
  .testimonial-empty { padding: 24px 16px; }
  .modal-overlay { padding: 12px; }
  .modal-overlay .modal { padding: 20px; max-height: calc(100dvh - 24px); }
  #nova-guide .nova-dialog, #nova-guide[dir="rtl"] .nova-dialog { inset: auto 8px max(8px, env(safe-area-inset-bottom)) 8px; width: auto; max-height: calc(100dvh - 16px - env(safe-area-inset-bottom)); }
  #nova-guide .nova-scroll { padding: 12px; }
  #nova-guide .nova-header { padding: 10px 12px; gap: 8px; }
  #nova-guide .nova-launcher { bottom: max(12px, env(safe-area-inset-bottom)); inset-inline-end: 12px; }
}
@media (hover: none), (pointer: coarse) {
  .cursor-dot, .cursor-ring { display: none; }
}
