/* Home typography — briefing-do-site.md, §8 and the corrected brand board.
   Orbitron Bold: titles. Sora: body (400), controls and emphasis (600).
   Loaded only by the Home; the approved shared footer remains independent. */
@font-face {
  font-family: 'Orbitron';
  src: url('/assets/fonts/Orbitron-Bold.ttf') format('truetype');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

.header,
.cosmic-menu,
.site-loader,
main {
  font-family: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

main :is(.hero, .services, .projects, .studio, .contact, .project-dialog) :is(h1, h2, h3, h4),
.studio-topline > a {
  font-family: 'Orbitron', 'Sora', sans-serif;
  font-weight: 700;
  letter-spacing: -.025em;
}

.header :is(a, button),
.cosmic-menu :is(a, button),
main :is(button, .button-primary, .button-secondary, .service-action),
main .project-caption > button {
  font-family: 'Sora', sans-serif;
  font-weight: 600;
}

main :is(.service-price strong, .topic-label, .project-caption .concept-label) {
  font-weight: 600;
}

.site-loader .loader-percent {
  font-family: 'Sora', sans-serif;
}

/* Orbitron has wider natural proportions than the former Sora headlines.
   Fit those proportions without distorting or compressing the letterforms. */
.hero-content h1 {
  font-size: clamp(38px, min(4.65vw, 7.6svh), 68px);
  line-height: 1.15;
  letter-spacing: -.035em;
}

.services h2,
.projects h2 {
  font-size: clamp(28px, min(3.5vw, 5.5svh), 50px);
  line-height: 1.15;
}

.contact h2 {
  font-size: clamp(28px, min(3.05vw, 4.8svh), 44px);
  line-height: 1.15;
}

.service-card h3,
.project-caption h3 {
  line-height: 1.25;
}

.topic-copy h4 {
  line-height: 1.3;
}

/* The three display words previously used Anton and an artificial vertical
   stretch. Keep their real shape, including the cedilla in PRESENÇA. */
.studio-topic h3 {
  left: 0;
  width: 100%;
  font-size: min(12.6vw, 25dvh);
  font-family: 'Orbitron', 'Sora', sans-serif;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.045em;
  transform: translateY(-50%);
}

@media (max-width: 1000px) {
  .hero-content h1 {
    font-size: clamp(30px, min(5.5vw, 6svh), 50px);
  }
  .services h2,
  .projects h2,
  .contact h2 {
    font-size: clamp(25px, min(3.7vw, 4.1svh), 36px);
  }
  .service-card h3 { font-size: 14px; }
}

@media (max-width: 700px) {
  .hero-content h1 {
    font-size: clamp(23px, min(7.1vw, 4.2dvh), 32px);
    line-height: 1.19;
  }
  .services h2,
  .projects h2,
  .contact h2 {
    font-size: clamp(21px, min(6.2vw, 3.3dvh), 28px);
  }
  .service-card h3 { font-size: 12px; }
  .studio-topic h3 {
    font-size: 12.7vw;
    letter-spacing: -.045em;
    transform: translateY(-50%);
  }
}

@media (max-width: 700px) and (orientation: portrait) and (max-height: 740px) {
  .services h2 { font-size: 20px; }
  .service-card h3 { font-size: 11px; }
}

@media (orientation: landscape) and (max-height: 540px) and (max-width: 1100px) {
  .hero-content h1 { font-size: clamp(23px, 6.7dvh, 34px); }
  .services h2 { font-size: 18px; }
  .projects h2,
  .contact h2 { font-size: clamp(21px, 5.5dvh, 28px); }
  .service-card h3 { font-size: 11px; }
  .studio-topic h3 { font-size: min(12.6vw, 23dvh); }
}
