/* Shared language control and right-to-left layout adjustments. */
.site-header .language-selector {
  position: relative;
  z-index: 30;
  justify-self: end;
  color: #fff;
  font: 700 0.78rem/1.3 Arial, Helvetica, sans-serif;
  letter-spacing: normal;
  text-transform: none;
}

.site-header .language-selector summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.7rem;
  border: 1px solid rgb(255 255 255 / 34%);
  border-radius: 2px;
  background: rgb(2 19 31 / 85%);
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}

.site-header .language-selector summary::-webkit-details-marker { display: none; }
.site-header .language-selector summary::after { content: "▾"; font-size: 0.7rem; }
.site-header .language-selector[open] summary::after { content: "▴"; }
.site-header .language-selector summary:focus-visible,
.site-header .language-selector a:focus-visible { outline: 2px solid #f32837; outline-offset: 3px; }
.site-header .language-selector > div {
  position: absolute;
  inset-block-start: calc(100% + 6px);
  inset-inline-end: 0;
  min-width: 190px;
  display: grid;
  padding: 0.25rem;
  border: 1px solid rgb(255 255 255 / 30%);
  border-radius: 2px;
  background: #041b2c;
  box-shadow: 0 12px 30px rgb(0 0 0 / 35%);
}
.site-header .language-selector a {
  display: block;
  padding: 0.7rem 0.8rem;
  color: #fff;
  text-align: start;
  white-space: nowrap;
}
.site-header .language-selector a:hover,
.site-header .language-selector a[aria-current="page"] { background: rgb(255 255 255 / 13%); }
.site-header .language-selector a[aria-current="page"] { border-inline-start: 3px solid #f32837; }

.landing-shell > .site-header {
  grid-template-columns: minmax(220px, 1fr) auto auto auto;
  gap: clamp(0.7rem, 2vw, 2rem);
}
.model-explorer > .site-header {
  grid-template-columns: minmax(200px, 1fr) auto auto auto;
  gap: clamp(0.5rem, 1.3vw, 1.5rem);
}

html[lang="es-MX"] .landing-shell .hero h1 { font-size: clamp(2.7rem, 4.4vw, 5.5rem); line-height: 0.98; }
html[lang="es-MX"] .model-explorer .hero h1 { font-size: clamp(3.5rem, 6vw, 6.5rem); line-height: 1; white-space: normal; }
html[lang="es-MX"] .hero-copy { min-width: 0; }

html[dir="rtl"] body { font-family: "Noto Sans Arabic", "Segoe UI", Tahoma, Arial, sans-serif; }
html[dir="rtl"] .site-header .language-selector { font-family: inherit; }
html[dir="rtl"] .brand-logo,
html[dir="rtl"] .hero-visual img,
html[dir="rtl"] .model-canvas img,
html[dir="rtl"] .service-image img,
html[dir="rtl"] .case-study-card img,
html[dir="rtl"] canvas,
html[dir="rtl"] svg { direction: ltr; }
html[dir="rtl"] .model-canvas,
html[dir="rtl"] .hotspots-layer { direction: ltr; }
html[dir="rtl"] .hotspot em { direction: rtl; }
html[dir="rtl"] .model-explorer .hero h1 {
  font-size: clamp(3.1rem, 5.5vw, 5.8rem);
  letter-spacing: normal;
  line-height: 1.15;
  white-space: normal;
}
html[dir="rtl"] .model-explorer .hero h1 em,
html[dir="rtl"] .model-explorer .closing h2 em,
html[dir="rtl"] .script-line,
html[dir="rtl"] .case-card-copy em { font-family: inherit; font-style: normal; }
html[dir="rtl"] .model-explorer .hero h1 em { display: inline-block; max-width: 100%; }
html[dir="rtl"] .model-explorer .hero-copy { min-width: 0; }
html[dir="rtl"] .model-explorer .hero-lede { max-width: 100%; }
html[dir="rtl"] .landing-shell .hero h1 { letter-spacing: normal; line-height: 1.1; }
html[dir="rtl"] .model-explorer h2,
html[dir="rtl"] .model-explorer h3 { letter-spacing: normal; line-height: 1.4; }
html[dir="rtl"] .kicker,
html[dir="rtl"] .section-label,
html[dir="rtl"] .panel-topline p,
html[dir="rtl"] .view-label,
html[dir="rtl"] footer { letter-spacing: normal; line-height: 1.6; }
html[dir="rtl"] .panel-topline p,
html[dir="rtl"] footer,
html[dir="rtl"] .system-action small { font-size: 0.75rem; }
html[dir="rtl"] .system-action small { letter-spacing: normal; line-height: 1.5; }
html[dir="rtl"] .system-stat strong,
html[dir="rtl"] .metrics-grid strong,
html[dir="rtl"] .hero-fact strong,
html[dir="rtl"] .delivery-strip dt { direction: ltr; unicode-bidi: isolate; }
html[dir="rtl"] .model-explorer .system-panel { border-left: 0; border-right: 1px solid #294351; }
html[dir="rtl"] .model-explorer .system-panel li { padding-inline: 19px 0; }
html[dir="rtl"] .model-explorer .system-panel li::before { left: auto; inset-inline-start: 0; }
html[dir="rtl"] .model-explorer .model-controls { right: auto; left: 22px; }
html[dir="rtl"] .model-explorer .model-controls { direction: rtl; }
html[dir="rtl"] .model-explorer .view-label { left: auto; right: 22px; }
html[dir="rtl"] .model-explorer .breadcrumb li + li::before { margin-inline: 0 0.7rem; }
html[dir="rtl"] .case-card-copy,
html[dir="rtl"] .case-number { left: auto; right: 1.25rem; }
html[dir="rtl"] .case-arrow { right: auto; left: 1.25rem; }
html[dir="rtl"] .hero-fact { right: auto; left: 5vw; }
html[dir="rtl"] .landing-shell .hero-copy { padding-left: clamp(1.5rem, 4vw, 4rem); }
html[dir="rtl"] .landing-shell .system-action span { text-align: start; }
html[dir="rtl"] .delivery-strip dl div { padding-left: 0; padding-right: 0.7rem; }
html[dir="rtl"] .rpd-case-study .service-grid,
html[dir="rtl"] .haeva-case-study .service-grid { border-left: 0; border-right: 1px solid #bdc4c5; }

@media (max-width: 1150px) {
  .model-explorer > .site-header { grid-template-columns: 1fr auto auto; }
  .model-explorer > .site-header .contact-link { display: none; }
}
@media (max-width: 820px) {
  .landing-shell > .site-header { grid-template-columns: 1fr auto auto; gap: 0.5rem; }
  .landing-shell .brand { width: min(220px, 54vw); }
  .model-explorer > .site-header { grid-template-columns: 1fr auto auto; }
  html[dir="rtl"] .landing-shell .hero-copy { padding-inline: 1.25rem; }
  html[dir="rtl"] .model-explorer .system-panel { border-right: 0; }
  html[dir="rtl"] .model-explorer .hero h1 { font-size: clamp(2.6rem, 9vw, 4.5rem); }
  html[lang="es-MX"] .landing-shell .hero h1 { font-size: clamp(2.5rem, 11vw, 3.5rem); }
  html[lang="es-MX"] .model-explorer .hero h1 { font-size: clamp(2.6rem, 11vw, 3.8rem); }
}
@media (max-width: 900px) {
  .model-explorer > .site-header { grid-template-columns: 1fr auto; }
  html[lang="es-MX"] .model-explorer .hero,
  html[dir="rtl"] .model-explorer .hero { grid-template-rows: auto 420px; height: auto; min-height: 0; }
  html[lang="es-MX"] .model-explorer .hero-copy,
  html[dir="rtl"] .model-explorer .hero-copy { align-self: stretch; }
}
@media (max-width: 560px) {
  html[lang="es-MX"] .model-explorer .hero,
  html[dir="rtl"] .model-explorer .hero { grid-template-rows: auto 370px; }
  html[lang="es-MX"] .model-explorer .closing h2,
  html[dir="rtl"] .model-explorer .closing h2 { font-size: clamp(2.4rem, 10vw, 3.8rem); }
}
@media (max-width: 360px) {
  html[lang="es-MX"] .model-explorer .intro h2,
  html[lang="es-MX"] .model-explorer .impact h2 { font-size: 2.4rem; }
}
@media (max-width: 700px) {
  .model-explorer > .site-header { grid-template-columns: 1fr auto; }
  .model-explorer > .site-header .contact-link { display: none; }
  html[dir="rtl"] .model-explorer .model-controls { left: 12px; }
}
@media (max-width: 480px) {
  .landing-shell .brand { width: min(170px, 48vw); }
  .landing-shell .corporate-link { width: 38px; height: 38px; }
  .site-header .language-selector summary { min-height: 38px; padding: 0.4rem 0.55rem; font-size: 0.72rem; }
  .site-header .language-selector > div { min-width: 175px; }
}
