* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; overflow-x: hidden; max-width: 100%; }
body {
  background: #FAF8F2;
  color: #2B2722;
  font-family: 'Hanken Grotesk', system-ui, sans-serif;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}
::selection { background: #B23A2E; color: #FCFBF7; }

a { color: inherit; }

/* ---- interactive states (converted from design's style-hover/style-focus hints) ---- */
.cta-dark { transition: background .2s ease; }
.cta-dark:hover { background: #B23A2E !important; }

.form-input { transition: border-color .18s ease; }
.form-input:focus { border-color: #B23A2E !important; }

.lang-btn { transition: all .18s ease; }

/* ---- header / nav ---- */
#menuBtn { display: none; }

@media (max-width: 900px) {
  #navLinks, #contactBtn { display: none !important; }
  #menuBtn { display: inline-flex !important; }
  #headerBar { padding: 14px 20px !important; }
  #wordmark { font-size: 30px !important; }
  #hero { grid-template-columns: 1fr !important; gap: 36px !important; padding: 52px 22px 46px !important; }
  #about { grid-template-columns: 1fr !important; gap: 34px !important; padding: 72px 22px !important; }
  #partGrid { grid-template-columns: 1fr !important; gap: 30px !important; padding: 72px 22px !important; }
  #qualGrid { grid-template-columns: 1fr 1fr !important; }
  #heroCard { left: 10px !important; bottom: -16px !important; }
}
@media (min-width: 901px) {
  #mobileMenu { display: none !important; }
}
@media (max-width: 560px) {
  #formRow { grid-template-columns: 1fr !important; }
  #headerBar { padding: 12px 16px !important; gap: 10px !important; }
  #wordmark { font-size: 26px !important; letter-spacing: 0.03em !important; }
  #qualGrid { grid-template-columns: 1fr !important; }
  #hero { padding: 40px 18px 36px !important; }
  #heroCard { left: 8px !important; right: 8px !important; max-width: none !important; bottom: -14px !important; }
}
