/* Homepage type system — local editorial/enterprise revision, ES + EN.
   Assets and licences: fonts/SOURCES.json. Logo and icon fonts are independent. */
@font-face {
  font-family: 'Instrument Sans';
  src: url('fonts/instrument-sans-medium-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('fonts/inter-roman-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
}
/* Match x-height and vertical metrics while the local fonts arrive. */
@font-face {
  font-family: 'Instrument Fallback';
  src: local('Arial');
  size-adjust: 98.35%;
  ascent-override: 98.63%;
  descent-override: 25.42%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial');
  size-adjust: 105.27%;
  ascent-override: 92.03%;
  descent-override: 22.91%;
  line-gap-override: 0%;
}
:root {
  --font-display: 'Instrument Sans', 'Instrument Fallback', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Inter', 'Inter Fallback', 'Helvetica Neue', Arial, sans-serif;
  /* Reserved for a genuine brand thought, not applied to functional copy. */
  --font-editorial: 'Newsreader', Georgia, serif;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-emphasis: 600;
  --type-hero: clamp(4.25rem, 4.72vw, 5rem);
  --type-section: clamp(2rem, 3vw, 2.75rem);
  --type-heading: clamp(1.5rem, 1.7vw, 1.75rem);
  --type-ui-title: 1.125rem;
  --type-body: 1rem;
  --type-ui: .9375rem;
  --type-nav: .875rem;
  --type-label: .75rem;
  --leading-display: 1.02;
  --leading-body: 1.6;
  --tracking-display: -.035em;
  --tracking-body: -.01em;
  --measure-prose: 65ch;
  --measure-hero: 57ch;
}
.home-studio {
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-body);
}
.home-studio :is(button, input, select, textarea) { font-family: var(--font-body); }
.home-studio :is(strong, b, button, summary, th) { font-weight: var(--weight-medium); }
.home-studio :is(h1, h2, h3, h4) {
  font-family: var(--font-display);
  font-weight: var(--weight-medium);
  text-wrap: balance;
}
.home-studio :is(p, li) { line-height: var(--leading-body); }
.home-studio :is(p, dd) { text-wrap: pretty; }

/* The image/SVG scene retains its exact geometry; only the copy gets room. */
.home-earth .studio-hero-copy { width: 100%; max-width: 60rem; }
.home-earth .studio-hero .title {
  font-family: var(--font-display);
  font-size: var(--type-hero);
  font-weight: var(--weight-medium);
  color: #f5f4ef;
  line-height: .96;
  letter-spacing: -.04em;
  max-width: 12em;
  margin-bottom: 24px;
  text-wrap: balance;
  /* A restrained dark contour preserves letter edges over the existing sunrise. */
  text-shadow: 0 2px 4px #050d15, 0 3px 16px #050d15b3;
}
.home-earth .earth-title-line { display: block; }
.home-earth .studio-hero .subtitle {
  font-family: var(--font-body);
  font-size: 1.25rem;
  font-weight: var(--weight-medium);
  line-height: 1.4;
  letter-spacing: -.015em;
  max-width: var(--measure-hero);
}
.home-earth .studio-hero .hero-actions { gap: 12px 28px; margin-top: 26px; max-width: 42rem; }
.home-earth .studio-hero .hero-actions .cta { min-height: 54px; }
.home-earth .studio-hero .studio-text-link { font-size: var(--type-ui); }
.home-earth .studio-principle {
  font-size: 1.0625rem;
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-body);
  color: var(--muted);
  max-width: var(--measure-hero);
  margin-top: 28px;
}
.home-studio .cta, .home-studio .studio-text-link {
  font-family: var(--font-body);
  font-size: var(--type-ui);
  font-weight: var(--weight-medium);
  line-height: 1.4;
  letter-spacing: -.015em;
}
.home-studio .nav-links > a,
.home-studio .nav-dropdown__trigger,
.home-studio .language-switcher select {
  font-family: var(--font-body);
  font-size: var(--type-nav);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-body);
  line-height: 1.5;
}
.home-atlas .nav-links > a.atlas-nav-cta { font-size: var(--type-nav); }

/* Narrative titles, then operational labels: size and spacing, not boldness. */
.home-studio :is(.section-title, .studio-process h2, .studio-solutions h2) {
  font-size: var(--type-section);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  text-transform: none;
  margin-bottom: 20px;
}
.home-studio .atlas-heading { flex-wrap: wrap; gap: 16px 24px; }
.home-studio .atlas-heading h2 {
  font-size: clamp(1.75rem, 2.4vw, 2.125rem);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
}
.home-studio :is(.atlas-entry h3, .atlas-sector-intro h3, .benefit-card h3,
  .service-card h3, .plan-card h3, .quienes h3) {
  font-size: var(--type-heading);
  line-height: 1.15;
  letter-spacing: -.02em;
  margin-bottom: 12px;
}
.home-studio .studio-solution-rows h3 { line-height: 1.15; letter-spacing: -.02em; }
.home-studio :is(.studio-process-steps h3, .security-dashboard h3, .nx-tx-title h3,
  .chat-header h3, .calendar-session-title) {
  font-family: var(--font-body);
  font-size: var(--type-ui-title);
  font-weight: var(--weight-medium);
  line-height: 1.3;
  letter-spacing: var(--tracking-body);
}
.home-studio :is(.atlas-entry-copy > p:not(.atlas-example-label), .atlas-detail p,
  .atlas-sector-intro p, .studio-process-steps p, .studio-process-note,
  .studio-solution-rows p, .section-lead, .benefit-card p,
  .service-card p, .founder-card p, .plan-card p, .feature-list,
  .quienes-content p, .faq-content p) {
  font-size: var(--type-body);
  font-weight: var(--weight-regular);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-body);
}
.home-studio :is(.section-lead, .faq-content p, .atlas-detail p, .quienes-content p) {
  max-width: var(--measure-prose);
}
.home-studio :is(.atlas-filters button, .atlas-detail summary, .atlas-detail .studio-text-link,
  .atlas-sector-intro .studio-text-link, .atlas-sector-caption) {
  font-family: var(--font-body);
  font-size: var(--type-ui);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-body);
  line-height: 1.4;
}
.home-studio :is(.atlas-flow, .atlas-node, .atlas-flow-center) {
  font-family: var(--font-body);
  font-size: var(--type-label);
  line-height: 1.4;
  letter-spacing: var(--tracking-body);
}
.home-studio .atlas-node { font-weight: var(--weight-regular); min-width: 0; }
.home-studio .atlas-node > span {
  flex: 0 0 auto;
  width: max-content;
  max-width: 10ch;
  overflow-wrap: normal;
  word-break: normal;
}
.home-studio .atlas-flow-center { font-weight: var(--weight-medium); }
.home-studio :is(.atlas-example-label, .atlas-scope, .security-footnote, .hero-video-copy small) {
  font-size: var(--type-label);
  font-weight: var(--weight-regular);
  line-height: 1.5;
  letter-spacing: 0;
}
.home-studio :is(.atlas-kicker, .founders-kicker, .nx-chip) {
  font-family: var(--font-body);
  font-size: var(--type-label);
  font-weight: var(--weight-medium);
  letter-spacing: .08em;
  line-height: 1.5;
}
.home-studio :is(.price, .metric, .nx-tx-meta) { font-variant-numeric: tabular-nums; }
.home-studio .help-text { font-family: var(--font-display); letter-spacing: -.02em; line-height: 1.15; }
.home-studio .nx-idle-prompt { font-weight: var(--weight-medium); letter-spacing: .08em; text-transform: uppercase; color: #eaf2ff; }
.home-studio .calendar-session-title { margin: 0; }

@media (min-width: 1600px) {
  .home-earth .earth-copy-shell { padding-top: 84px; }
}

@media (max-width: 1100px) and (min-width: 761px) {
  :root { --type-hero: clamp(3.25rem, 6.5vw, 4rem); }
}
@media (max-width: 900px) {
  .home-earth .hero-actions .cta { width: auto; }
  .home-studio .nav-links > a { font-size: var(--type-ui); }
}
@media (max-width: 760px) {
  :root { --type-hero: clamp(2.625rem, 10.6vw, 3rem); }
  .home-earth .studio-hero-copy { max-width: 38rem; }
  .home-earth .studio-hero .title { line-height: 1.02; letter-spacing: -.035em; max-width: 100%; text-shadow: none; }
  .home-earth .earth-title-line { display: inline; }
  .home-earth .studio-hero .subtitle { font-size: 1.125rem; max-width: 32ch; }
  .home-earth .studio-principle { font-size: var(--type-body); margin-top: 22px; }
  .home-earth .studio-hero .hero-actions { gap: 8px 22px; margin-top: 22px; }
  .home-earth .studio-hero .hero-actions .cta { min-height: 50px; }
  .home-studio .atlas-heading h2 { font-size: 1.875rem; }
}
@media (max-width: 375px) {
  :root { --type-hero: 2.5rem; }
}
