/* Mobile-first safeguards and fluid sizing for phones, tablets, and desktops. */
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { min-width: 320px; overflow-x: clip; }
img, svg, video { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, .button, .header-cta, .main-menu a, .language-switcher a { min-height: 44px; }
.button, .header-cta { display: inline-flex; align-items: center; justify-content: center; }
.language-switcher a { display: inline-flex; align-items: center; }

@media (max-width: 1024px) {
  .hero { padding-block: 96px 72px; }
  .hero-grid { gap: 40px; grid-template-columns: 1.1fr .9fr; }
  .hero-panel { padding: 24px; }
  .site-footer { padding-top: 42px; }
}

@media (max-width: 900px) {
  .hero-grid, .contact-layout { grid-template-columns: 1fr; }
  .hero-grid { gap: 32px; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .container { width: min(100% - 32px, 640px); }
  .header-inner { min-height: 64px; gap: 10px; }
  .logo { font-size: 1.1rem; white-space: nowrap; }
  .header-cta { display: none; }
  .language-switcher { margin-left: auto; gap: 4px; }
  .language-switcher a { padding-inline: 5px; }
  .menu-toggle { min-width: 44px; min-height: 44px; padding: 0; }
  .main-menu.open { top: 64px; padding: 12px 16px 18px; border-bottom: 1px solid var(--line); box-shadow: 0 18px 32px rgba(0,0,0,.3); }
  .main-menu.open a { min-height: 44px; display: flex; align-items: center; }
  .hero { min-height: auto; padding-block: 64px 52px; }
  .hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .hero-panel { padding: 22px; }
  .hero-panel h2 { font-size: clamp(1.35rem, 7vw, 1.7rem); }
  .lead { font-size: 1rem; }
  .section { padding-block: 56px; }
  .section-title { margin-bottom: 28px; }
  .cards, .steps, .footer-grid, .contact-layout, .form-row { grid-template-columns: 1fr; }
  .cards, .steps { gap: 14px; }
  .card, .contact-form, .contact-aside { padding: 22px; }
  .page-hero { padding-block: 58px 24px; }
  .page-hero h1 { font-size: clamp(2.2rem, 12vw, 3.5rem); }
  .actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .actions .button { width: 100%; }
  input, select, textarea { font-size: 16px; }
  .footer-grid { gap: 24px; }
}

@media (max-width: 420px) {
  .container { width: calc(100% - 28px); }
  .hero { padding-block: 52px 44px; }
  .hero h1 { font-size: clamp(2.2rem, 12.5vw, 3.1rem); }
  .section { padding-block: 46px; }
  .card, .hero-panel, .contact-form, .contact-aside { padding: 18px; border-radius: 14px; }
  .legal h2 { font-size: 1.2rem; margin-top: 32px; }
  .footer-bottom { font-size: .78rem; }
}

@media (max-width: 340px) {
  body { min-width: 0; }
  .container { width: calc(100% - 24px); }
  .header-inner { gap: 5px; }
  .logo { font-size: 1rem; }
  .language-switcher a { padding-inline: 3px; }
  .hero h1 { letter-spacing: -.045em; }
}
