/* Mobile-first overrides. Breakpoints: 640 (sm) · 768 (md) · 1024 (lg) · 1280 (xl) · 1600 (2xl) */

@media (min-width: 400px) {
  .brand-text small { display: block; }
}
@media (max-width: 399px) {
  .brand-text strong { font-size: 1.1rem; }
  .brand-seal { width: 40px; }
  .lang-switch a { min-width: 40px; padding: 0 .45rem; }
}

@media (min-width: 640px) {
  :root { --gutter: 1.5rem; }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .check-grid { grid-template-columns: repeat(2, 1fr); }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .brochure-grid { grid-template-columns: repeat(3, 1fr); }
  .hero-points { grid-template-columns: 1fr; }
  .team-invite { grid-column: span 2; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 var(--sp-6); }
  .team-invite .avatar { margin-bottom: 0; }
  .team-invite .card-title, .team-invite .team-org { flex: 1 1 60%; }
  .team-invite .link-arrow { flex-basis: 100%; margin-top: var(--sp-3); }
  .post-nav { grid-template-columns: 1fr 1fr; }
  .post-nav .pn-next { text-align: right; grid-column: 2; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  /* table -> stacked cards */
  .curriculum thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .curriculum, .curriculum tbody, .curriculum tr, .curriculum td { display: block; width: 100%; }
  .curriculum tr { margin-bottom: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; background: #fff; }
  .curriculum tbody tr:nth-child(even) td { background: transparent; }
  .curriculum td { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--sp-3); padding: .6rem var(--sp-4); border-bottom: 1px solid var(--line); }
  .curriculum td:last-child { border-bottom: 0; }
  .curriculum td::before { content: attr(data-label); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-500); padding-top: .15rem; }
  .curriculum td:first-child { background: var(--brand-50); font-weight: 700; color: var(--brand-800); }
}

@media (min-width: 768px) {
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; }
  .page-hero-grid { grid-template-columns: 1.3fr 1fr; }
  .brochure-grid { grid-template-columns: repeat(4, 1fr); }
  .contact-form { padding: var(--sp-8); }
}

@media (min-width: 1024px) {
  :root { --header-h: 76px; }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .stats { grid-template-columns: repeat(4, 1fr); }
  /* desktop navigation: always visible, no disclosure */
  .nav-toggle, .js .nav-toggle { display: none; }
  .primary-nav, .js .primary-nav { position: static; order: 0; flex: 1; display: flex; align-items: center; justify-content: flex-end; gap: var(--sp-4); padding: 0; background: none;
    border: 0; box-shadow: none; max-height: none; overflow: visible; transform: none; opacity: 1; visibility: visible; }
  .primary-nav ul, .js .primary-nav ul { display: flex; gap: .15rem; }
  .primary-nav a:not(.btn), .js .primary-nav li + li a { padding: .6rem .85rem; border-top: 0; border-radius: var(--r-pill); font-size: .9375rem; }
  .primary-nav a:not(.btn):hover { background: var(--brand-50); }
  .primary-nav a[aria-current="page"] { background: var(--brand-50); }
  .nav-cta, .js .nav-cta { display: inline-flex; margin: 0; min-height: 44px; padding: .55rem 1.1rem; font-size: .9375rem; }
  .header-inner { flex-wrap: nowrap; gap: var(--sp-6); }
  .header-actions { order: 1; }
  .hero-grid { grid-template-columns: 1.05fr 1fr; gap: var(--sp-16); }
  .hero-img { aspect-ratio: 5 / 4; object-position: 22% 50%; }
  .hero h1 { font-size: clamp(2.75rem, 1.2rem + 2.9vw, 3.5rem); }
  .hero-chip { left: auto; right: -1rem; bottom: -1.25rem; max-width: 20rem; }
  .about-grid { grid-template-columns: 1.4fr 1fr; gap: var(--sp-16); }
  .layout-aside { grid-template-columns: minmax(0, 1fr) 340px; gap: var(--sp-16); }
  .page-aside { position: sticky; top: calc(var(--header-h) + var(--sp-6)); }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .contact-info-inner { padding-right: var(--sp-12); }
  .contact-form-wrap { padding-left: var(--sp-12); display: flex; align-items: center; }
  .contact-form { margin: 0; width: 100%; }
  .check-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1280px) {
  :root { --gutter: 2rem; }
  .contact-info-inner { padding-left: 0; margin-left: calc((100vw - var(--container)) / 2 + var(--gutter)); max-width: calc(var(--container) / 2 - var(--gutter)); }
  .contact-form-wrap { padding-left: var(--sp-16); }
  .contact-form { max-width: 34rem; }
}

@media (min-width: 1600px) {
  .hero-grid { gap: var(--sp-24); }
}

@media print {
  .site-header, .skip-link, .nav-toggle, .contact-form-wrap, .lang-toast { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  body { font-size: 11pt; color: #000; }
}
