:root {
  --content-rail-boundary: clamp(1.5rem, 5vw, 2.25rem);
  --content-rail-boundary-desktop: clamp(2.75rem, 8vw, 6rem);
  --screen-horizontal-inset: var(--content-rail-boundary);
  --safe-area-inline-start: env(safe-area-inset-left, 0px);
  --safe-area-inline-end: env(safe-area-inset-right, 0px);
  --content-rail-inline-start: max(var(--screen-horizontal-inset), var(--safe-area-inline-start));
  --content-rail-inline-end: max(var(--screen-horizontal-inset), var(--safe-area-inline-end));
  --section-gap: 1rem;
  --divider-inset: 0px;
  --rail-divider-color: rgba(15, 23, 42, 0.12);
  --app-shell-max: 1180px;
  --app-hero-kicker-color: #0f6fff;
  --app-hero-subtitle-color: #5f718a;
  --app-cta-border: #d2e2ff;
  --app-cta-surface: #edf4ff;
  --app-cta-text: #2257ae;
}

@media (min-width: 960px) {
  :root {
    --screen-horizontal-inset: var(--content-rail-boundary-desktop);
  }
}

.layout-shell {
  --layout-shell-max: var(--app-shell-max);
  width: 100%;
  max-width: calc(var(--layout-shell-max) + var(--content-rail-inline-start) + var(--content-rail-inline-end));
  margin-inline: auto;
  padding-inline-start: var(--content-rail-inline-start);
  padding-inline-end: var(--content-rail-inline-end);
}

.layout-shell--app {
  --layout-shell-max: var(--app-shell-max);
}

.layout-stack {
  display: grid;
  gap: var(--section-gap);
}

.rail-divider {
  position: relative;
  padding-top: 1rem;
}

.rail-divider::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: calc(var(--content-rail-inline-start) + var(--divider-inset));
  inset-inline-end: calc(var(--content-rail-inline-end) + var(--divider-inset));
  border-top: 1px solid var(--rail-divider-color);
}

.hero.app-hero {
  padding-block: 2.5rem 1.5rem;
  text-align: left;
}

.app-hero__inner {
  display: grid;
  justify-items: start;
  text-align: left;
}

.locale-switcher {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.55rem;
  border: 1px solid #d3def0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
  backdrop-filter: blur(10px);
}

.locale-switcher--hero {
  justify-self: end;
  margin-bottom: 0.9rem;
}

.locale-switcher__label {
  color: #5f718a;
  font-size: 0.82rem;
  font-weight: 700;
}

.locale-switcher__controls {
  display: inline-flex;
  gap: 0.18rem;
  padding: 0.16rem;
  border-radius: 999px;
  background: #eef4fe;
}

.locale-switcher__button {
  border: 0;
  background: transparent;
  color: #33527f;
  border-radius: 999px;
  padding: 0.3rem 0.62rem;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.locale-switcher__button.is-active {
  color: #fff;
  background: #0f6fff;
}

.hero.app-hero .app-kicker {
  margin: 0;
  color: var(--app-hero-kicker-color);
  font-weight: 800;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
}

.hero.app-hero .app-title {
  margin: 0.45rem 0 0;
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  line-height: 1.1;
  color: #10233f;
}

.hero.app-hero .app-subtitle {
  margin: 0.8rem 0 0;
  justify-self: stretch;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  text-align: left;
  color: var(--app-hero-subtitle-color);
  line-height: 1.55;
}

.app-hero__actions {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.app-cta {
  display: inline-block;
  border-radius: 10px;
  padding: 0.52rem 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--app-cta-border);
}

.app-cta-secondary {
  color: var(--app-cta-text);
  background: var(--app-cta-surface);
}

.app-cta:hover,
.app-cta:focus-visible {
  background: #e3efff;
}

@media (max-width: 520px) {
  .locale-switcher {
    width: 100%;
    justify-content: space-between;
  }
}
