/*
 * Public footer hierarchy:
 * 1. optional advertising/partner area
 * 2. copyright and map providers
 * 3. legal navigation
 */
.site-footer .rt-footer-advertising:empty {
  display: none;
}

/* Compact editorial footer inspired by the supplied reference. */
.app-container.public-shell-active {
  height: auto !important;
  min-height: 100dvh !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/* Carta and instructions are document pages: one natural page, one scrollbar. */
.app-container.public-shell-active.rt-catalog-page,
.app-container.public-shell-active.rt-instructions-page {
  height: auto !important;
  min-height: 100dvh !important;
  overflow: visible !important;
}

.app-container.public-shell-active.rt-catalog-page > .main-layout,
.app-container.public-shell-active.rt-instructions-page > .main-layout {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.app-container.public-shell-active.rt-catalog-page
  > .main-layout
  > .content-body {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

.app-container.public-shell-active.rt-catalog-page .grid-view-container {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}

body.rt-instructions-active {
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.app-container.public-shell-active.rt-instructions-page > .main-layout {
  display: none !important;
}

body.rt-instructions-active
  .app-container.public-shell-active.rt-instructions-page
  > .site-footer {
  display: block !important;
}

.app-container.public-shell-active.rt-instructions-page
  > .rt-instructions-screen {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: calc(100dvh - var(--rt-header-height, 66px)) !important;
  max-height: none !important;
  overflow: visible !important;
}

.app-container.public-shell-active > .main-header {
  position: sticky !important;
  top: 0;
  z-index: 10000;
}

.app-container.public-shell-active > .main-layout {
  flex: 0 0 calc(100dvh - var(--public-header-height, 66px));
  min-height: calc(100dvh - var(--public-header-height, 66px));
}

.app-container.public-shell-active > .site-footer {
  height: auto !important;
  min-height: 0;
  max-height: none !important;
  padding: 0 !important;
  border-top: 0;
  color: #f5f5f2;
  background: #17191b;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  overflow: visible;
}

.site-footer > .footer-meta[hidden] {
  display: none !important;
}

.site-footer .rt-footer-inner {
  width: min(980px, 100%);
  margin: 0 auto;
  display: grid;
  justify-items: center;
  gap: 0;
  padding: 0;
  text-align: center;
}

.site-footer .rt-footer-top,
.site-footer .rt-footer-bottom {
  width: 100%;
  display: grid;
  justify-items: center;
}

.site-footer .rt-footer-top {
  gap: .8rem;
  padding: 1.25rem clamp(1rem, 4vw, 2rem) 1.15rem;
}

.site-footer .rt-footer-bottom {
  gap: .55rem;
  padding: .75rem clamp(1rem, 4vw, 2rem) .9rem;
  border-top: 1px solid rgba(255, 255, 255, .08);
}

.site-footer .rt-footer-logo {
  color: #fff;
  font-family: var(--font-heading);
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  font-weight: 850;
  line-height: 1;
}

.site-footer .rt-footer-social {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem 1.15rem;
  color: rgba(255, 255, 255, .76);
  font-family: var(--font-sans);
  font-size: .68rem;
  font-weight: 500;
}

.site-footer .rt-footer-social[hidden] {
  display: none !important;
}

.site-footer .rt-footer-social a {
  color: inherit;
  text-decoration: none;
}

.site-footer .rt-footer-partners {
  width: min(720px, 100%);
  min-height: 54px;
}

.site-footer .rt-footer-partners:empty {
  display: none;
}

.site-footer .rt-legal-footer-links [hidden],
.rt-landing-site-footer .rt-legal-footer-links [hidden] {
  display: none !important;
}

.rt-general-social-settings {
  margin-bottom: 1.25rem;
}

.rt-social-settings-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin-top: 1rem;
}

.rt-social-settings-status {
  font-size: .78rem;
}

.admin-content.rt-custom-admin-view-active > :not(.rt-admin-custom-view) {
  display: none !important;
}

.rt-admin-menu-button.active {
  color: #fff !important;
  background: #28343d !important;
}

.rt-admin-summary-button::before,
.rt-admin-social-button::before {
  width: 8px;
  height: 8px;
  margin-right: .55rem;
  display: inline-block;
  border: 1.5px solid currentColor;
  content: "";
}

.rt-admin-summary-button::before { border-radius: 2px; }
.rt-admin-social-button::before { border-radius: 50%; }

.rt-admin-summary-button {
  color: var(--admin-menu-text, #fff) !important;
  background: var(--admin-panel-link, #28343d) !important;
  font-weight: 850 !important;
}

.rt-admin-summary-button:hover,
.rt-admin-summary-button:focus-visible,
.rt-admin-summary-button.active {
  color: var(--admin-menu-text, #fff) !important;
  background: var(--admin-panel-link, #28343d) !important;
  filter: brightness(.92);
}

.rt-admin-summary-button::before {
  display: none !important;
  content: none !important;
}

.rt-admin-custom-view {
  width: 100%;
  padding: clamp(1.4rem, 3vw, 2.6rem);
  color: #17212a;
}

.rt-dashboard-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.75rem;
}

.rt-dashboard-heading span,
.rt-dashboard-panel-head span {
  color: #6d7983;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.rt-dashboard-heading h2 {
  margin: .2rem 0 .35rem;
  font: 850 clamp(1.8rem, 3vw, 2.65rem)/1 var(--font-heading);
  letter-spacing: -.035em;
}

.rt-dashboard-heading p,
.rt-dashboard-heading > small {
  margin: 0;
  color: #62707b;
  font-size: .82rem;
}

.rt-dashboard-connection-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: -0.55rem 0 1rem;
  padding: .85rem 1rem;
  border: 1px solid #b9ddc8;
  border-radius: 12px;
  background: #eef8f2;
}

.rt-dashboard-connection-note > div {
  min-width: 0;
  display: grid;
  gap: .18rem;
}

.rt-dashboard-connection-note strong {
  color: #285f42;
  font-size: .76rem;
}

.rt-dashboard-connection-note span {
  color: #52675b;
  font-size: .7rem;
  line-height: 1.4;
}

.rt-dashboard-connection-note > b {
  flex: 0 0 auto;
  padding: .3rem .5rem;
  border-radius: 999px;
  color: #2e6b49;
  background: #d9eee1;
  font-size: .58rem;
  white-space: nowrap;
}

.rt-dashboard-connection-note.is-pending {
  border-color: #ead398;
  background: #fff8e8;
}

.rt-dashboard-connection-note.is-pending strong { color: #785f21; }
.rt-dashboard-connection-note.is-pending span { color: #6f6448; }
.rt-dashboard-connection-note.is-pending > b {
  color: #725b20;
  background: #f5e7bd;
}

.rt-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
  margin-bottom: 1rem;
}

.rt-dashboard-metric {
  min-width: 0;
  min-height: 128px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .4rem;
  padding: 1.15rem;
  border: 1px solid #d9dfe4;
  border-radius: 14px;
  background: #f8f9fa;
}

.rt-dashboard-metric.is-primary {
  color: #fff;
  border-color: #344b60;
  background: linear-gradient(145deg, #344b60, #6682a0);
}

.rt-dashboard-metric > span {
  color: inherit;
  font-size: .74rem;
  font-weight: 750;
  opacity: .78;
}

.rt-dashboard-metric > strong {
  overflow: hidden;
  font: 850 clamp(1.55rem, 2.8vw, 2.45rem)/1 var(--font-heading);
  letter-spacing: -.04em;
  text-overflow: ellipsis;
}

.rt-dashboard-metric > small {
  color: inherit;
  font-size: .66rem;
  opacity: .65;
}

.rt-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.rt-dashboard-panel {
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid #d9dfe4;
  border-radius: 14px;
  background: #fff;
}

.rt-dashboard-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1.1rem;
}

.rt-dashboard-panel-head h3 {
  margin: .18rem 0 0;
  font: 820 1.18rem/1.1 var(--font-heading);
}

.rt-data-pending {
  padding: .32rem .48rem;
  border-radius: 999px;
  color: #756231 !important;
  background: #f4ead0;
  font-size: .58rem !important;
  letter-spacing: 0 !important;
  white-space: nowrap;
}

.rt-analytics-preview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
}

.rt-analytics-preview .rt-dashboard-metric {
  min-height: 92px;
  padding: .75rem;
  border: 0;
  border-radius: 9px;
  background: #f1f4f6;
}

.rt-analytics-preview .rt-dashboard-metric > strong { font-size: 1.25rem; }

.rt-chart-placeholder {
  height: 92px;
  display: flex;
  align-items: flex-end;
  gap: 6%;
  margin-top: 1rem;
  padding: 0 .5rem;
  border-bottom: 1px solid #dce2e6;
}

.rt-chart-placeholder span {
  flex: 1;
  border-radius: 5px 5px 0 0;
  background: #7891aa;
  opacity: .22;
}
.rt-chart-placeholder span:nth-child(1) { height: 32%; }
.rt-chart-placeholder span:nth-child(2) { height: 48%; }
.rt-chart-placeholder span:nth-child(3) { height: 41%; }
.rt-chart-placeholder span:nth-child(4) { height: 69%; }
.rt-chart-placeholder span:nth-child(5) { height: 58%; }
.rt-chart-placeholder span:nth-child(6) { height: 82%; }
.rt-chart-placeholder span:nth-child(7) { height: 73%; }

.rt-route-schedule,
.rt-ranking-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.rt-route-schedule li {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .7rem 0;
  border-bottom: 1px solid #edf0f2;
}

.rt-route-status {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: #aeb8c0;
}

.rt-route-status.is-published {
  background: #4c9b70;
  box-shadow: 0 0 0 4px #dceee4;
}

.rt-route-schedule strong,
.rt-route-schedule small { display: block; }
.rt-route-schedule small {
  margin-top: .18rem;
  color: #7a858e;
  font-size: .67rem;
}

.rt-dashboard-integration,
.rt-content-summary {
  padding: .75rem 0;
  border-bottom: 1px solid #edf0f2;
}
.rt-dashboard-integration > div,
.rt-content-summary {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
}
.rt-dashboard-integration span { color: #8a7040; font-size: .65rem; font-weight: 750; }
.rt-dashboard-integration.is-connected span { color: #397b57; }
.rt-dashboard-integration p { margin: .25rem 0 0; color: #69757e; font-size: .7rem; }

.rt-dashboard-notice {
  margin-bottom: .65rem;
  padding: .85rem;
  border-left: 3px solid #617f9d;
  border-radius: 0 8px 8px 0;
  background: #edf2f6;
  font-size: .76rem;
}
.rt-dashboard-notice.is-soft { border-color: #c2a15c; background: #f7f2e7; }

.rt-ranking-list li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem;
  padding: .65rem 0;
  border-bottom: 1px solid #edf0f2;
}
.rt-ranking-list li > strong {
  width: 28px; height: 28px; display: grid; place-items: center;
  border-radius: 50%; color: #fff; background: #607d99; font-size: .7rem;
}
.rt-ranking-list li > span {
  overflow: hidden; font-size: .75rem; font-weight: 750;
  text-overflow: ellipsis; white-space: nowrap;
}
.rt-ranking-list li > b { color: #6f7b84; font-size: .66rem; }
.rt-ranking-list li.is-empty { display: block; color: #7a858e; font-size: .75rem; }

.rt-restaurant-placeholder {
  min-height: 150px;
  display: grid;
  place-content: center;
  padding: 1rem;
  border: 1px dashed #cad2d8;
  border-radius: 10px;
  color: #68757f;
  text-align: center;
}
.rt-restaurant-placeholder strong { color: #263640; font: 820 1.4rem var(--font-heading); }
.rt-restaurant-placeholder p { max-width: 28rem; margin: .45rem auto 0; font-size: .72rem; }
.rt-content-summary { align-items: baseline; justify-content: flex-start; }
.rt-content-summary strong { font: 850 1.8rem var(--font-heading); }
.rt-content-summary span { color: #66737d; font-size: .75rem; }
.rt-dashboard-error { padding: 2rem; border-radius: 12px; color: #853d3d; background: #f8e9e9; }
.rt-admin-social .rt-general-social-settings { margin: 0; }

.rt-panel-sortable {
  cursor: grab !important;
}

.rt-panel-sortable::after {
  float: right;
  margin-left: .6rem;
  color: currentColor;
  content: "⋮⋮";
  font-size: .75rem;
  letter-spacing: -3px;
  opacity: .3;
}

.rt-panel-sortable::after {
  display: none !important;
  content: none !important;
}

.rt-panel-sortable:hover::after,
.rt-panel-sortable:focus-visible::after {
  opacity: .72;
}

.rt-panel-dragging {
  opacity: .42 !important;
  cursor: grabbing !important;
}

.rt-panel-insertion-line {
  display: block;
  flex: 0 0 auto;
  width: auto;
  height: 3px;
  margin: -1px .55rem;
  border-radius: 999px;
  background: #2271b1;
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}

.rt-panel-insertion-line-horizontal {
  align-self: stretch;
  width: 3px;
  height: auto;
  min-height: 2rem;
  margin: .25rem -1px;
}

.rt-admin-inline-contest-legal {
  padding: clamp(1.2rem, 2.5vw, 2.2rem);
}

.rt-legal-admin-overlay.rt-inline-contest-legal {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  width: 100% !important;
  min-height: 0 !important;
  color: #18212a;
  background: transparent !important;
  overflow: visible !important;
}

.rt-inline-contest-legal > .rt-legal-admin-head {
  display: none !important;
}

.rt-inline-contest-legal > .rt-legal-admin {
  width: 100% !important;
  margin: 0 !important;
}

.rt-inline-contest-legal .rt-legal-editor {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.rt-inline-contest-legal .rt-legal-editor::before {
  display: block;
  margin-bottom: .35rem;
  content: "Legal del concurso";
  font: 850 clamp(1.7rem, 3vw, 2.35rem)/1 var(--font-heading);
  letter-spacing: -.035em;
}

.rt-inline-contest-legal .rt-event-legal-grid {
  margin-top: 1.25rem;
  padding: 1.25rem;
  border: 1px solid #d5dce1;
  border-radius: 12px;
  background: #f8f9fa;
}

.rt-inline-contest-legal .rt-event-legal-grid input,
.rt-inline-contest-legal .rt-event-legal-grid textarea {
  border-radius: 6px;
  background: #fff;
}

.event-route-identity-grid.rt-route-identity-compact {
  align-items: start !important;
}

.event-route-identity-grid.rt-route-identity-compact
  > .event-settings-section {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.event-route-identity-grid.rt-route-identity-compact
  .admin-form-group {
  margin: 0 !important;
}

.site-footer .rt-footer-legal,
.site-footer .rt-footer-legal .footer-menu {
  width: 100%;
}

.site-footer .rt-footer-legal .rt-legal-footer-links {
  width: 100%;
  margin: .15rem 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem 1.5rem;
}

.site-footer
  .rt-footer-legal
  .rt-legal-footer-links
  > span[aria-hidden="true"] {
  display: none !important;
}

.site-footer .rt-footer-legal .rt-legal-footer-links a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  padding: .25rem 0;
  border: 0;
  border-radius: 0;
  color: #fff;
  background: transparent;
  font-family: var(--font-heading);
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
}

.site-footer .rt-footer-map-credits {
  color: rgba(255, 255, 255, .42);
  font-family: var(--font-sans);
  font-size: .58rem;
  font-weight: 500;
  line-height: 1.2;
}

.site-footer .rt-footer-map-credits a {
  color: inherit;
  text-decoration: none;
}

.site-footer .rt-footer-rights {
  color: rgba(255, 255, 255, .55);
  font-family: "Open Sans", var(--font-sans);
  font-size: .69rem;
  font-weight: 600;
  line-height: 1.2;
}

body.blank-landing-page #root {
  height: auto !important;
  min-height: 100dvh !important;
  flex-direction: column;
}

body.blank-landing-page .blank-landing {
  flex: 0 0 calc(100dvh - 248px);
  width: 100%;
  height: calc(100dvh - 248px) !important;
  min-height: calc(100dvh - 248px) !important;
}

.rt-landing-site-footer {
  flex: 0 0 auto;
  width: 100%;
  height: auto !important;
  min-height: 248px !important;
  max-height: none !important;
  padding: 0 !important;
  color: #f5f5f2;
  background: #17191b;
  overflow: visible !important;
}

.rt-landing-site-footer .rt-footer-inner {
  width: min(980px, 100%);
  margin: 0 auto;
}

.rt-landing-site-footer .rt-footer-top {
  min-height: 104px;
}

.rt-landing-site-footer .rt-footer-bottom {
  min-height: 126px;
}

.rt-landing-site-footer .rt-landing-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .35rem 1.5rem;
}

.rt-landing-site-footer .rt-landing-legal a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  color: #fff;
  font-family: var(--font-heading);
  font-size: .7rem;
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 700px) {
  .rt-admin-custom-view {
    padding: 1rem;
  }

  .rt-dashboard-heading {
    align-items: flex-start;
  }

  .rt-dashboard-heading > small {
    display: none;
  }

  .rt-dashboard-connection-note {
    align-items: flex-start;
    flex-direction: column;
  }

  .rt-dashboard-metrics,
  .rt-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rt-dashboard-metric {
    min-height: 112px;
  }

  .rt-dashboard-panel {
    grid-column: 1 / -1;
  }

  .rt-analytics-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer .rt-footer-inner {
    gap: 0;
  }

  body.blank-landing-page .blank-landing {
    flex-basis: calc(100dvh - 260px);
    height: calc(100dvh - 260px) !important;
    min-height: calc(100dvh - 260px) !important;
  }

  .rt-landing-site-footer {
    min-height: 260px !important;
  }

  .rt-landing-site-footer .rt-footer-top {
    min-height: 94px;
  }

  .rt-landing-site-footer .rt-footer-bottom {
    min-height: 166px;
  }

  .rt-landing-site-footer .rt-landing-legal {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .1rem .75rem;
  }

  .rt-landing-site-footer .rt-landing-legal a {
    justify-content: center;
    text-align: center;
  }

  .site-footer .rt-footer-top {
    padding:
      .95rem max(.85rem, env(safe-area-inset-right))
      .65rem max(.85rem, env(safe-area-inset-left));
  }

  .site-footer .rt-footer-bottom {
    padding:
      .65rem max(.85rem, env(safe-area-inset-right))
      max(.75rem, env(safe-area-inset-bottom))
      max(.85rem, env(safe-area-inset-left));
  }

  .site-footer .rt-footer-logo {
    font-size: 1.65rem;
  }

  .site-footer .rt-footer-social {
    width: 100%;
    justify-content: center;
    gap: .3rem .65rem;
  }

  .app-container.public-shell-active.rt-catalog-page .grid-view-heading {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: .75rem !important;
  }

  .app-container.public-shell-active.rt-catalog-page .grid-view-title {
    flex: 1 1 auto;
    min-width: 0;
  }

  .app-container.public-shell-active.rt-catalog-page .tapas-filter {
    flex: 0 0 auto;
    margin-left: auto !important;
    justify-content: flex-end !important;
  }

  .app-container.public-shell-active.rt-instructions-page
    > .rt-instructions-screen {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }

  .app-container.public-shell-active.rt-instructions-page
    .rt-instruction-card,
  .app-container.public-shell-active.rt-instructions-page
    .rt-instructions-back {
    min-height: calc(100dvh - var(--rt-header-height, 66px)) !important;
  }

  .site-footer .rt-footer-legal .rt-legal-footer-links {
    display: flex;
    justify-content: center;
    gap: .05rem .75rem;
  }

  .site-footer .rt-footer-legal .rt-legal-footer-links a {
    flex: 0 0 auto;
    min-height: 38px;
    justify-content: center;
    padding: .3rem .2rem;
    font-size: .69rem;
  }

  .site-footer .rt-footer-legal .rt-legal-footer-links a:nth-of-type(-n+3) {
    flex-basis: calc(33.333% - .5rem);
  }

  .site-footer .rt-footer-legal .rt-legal-footer-links a:nth-of-type(n+4) {
    flex-basis: calc(50% - .5rem);
  }

  .site-footer
    .rt-footer-legal
    .rt-legal-footer-links
    a:nth-of-type(4):last-of-type {
    flex-basis: 100%;
  }

  .site-footer .rt-footer-partners {
    min-height: 64px;
  }

  .app-container.public-shell-active > .main-layout > .content-body,
  .app-container.public-shell-active .rt-instructions-screen {
    overscroll-behavior-y: auto !important;
  }

  .leaflet-map-container.rt-cooperative-map,
  .leaflet-map-container.rt-cooperative-map.leaflet-touch-drag {
    touch-action: pan-y !important;
  }

  .leaflet-map-container.rt-cooperative-map.rt-two-finger-map,
  .leaflet-map-container.rt-cooperative-map.rt-two-finger-map.leaflet-touch-drag {
    touch-action: none !important;
  }

  .rt-map-gesture-hint {
    position: absolute;
    z-index: 1250;
    right: 50%;
    bottom: .7rem;
    width: max-content;
    max-width: calc(100% - 2rem);
    margin: 0;
    padding: .48rem .72rem;
    border: 1px solid rgba(255, 255, 255, .58);
    border-radius: 999px;
    color: #fff;
    background: rgba(22, 28, 34, .76);
    box-shadow: 0 5px 18px rgba(0, 0, 0, .2);
    font: 650 .68rem/1.2 var(--font-sans);
    text-align: center;
    pointer-events: none;
    transform: translateX(50%);
  }
}

@media (min-width: 768px) {
  .app-container.public-shell-active > .main-layout {
    flex-basis: calc(
      100dvh - var(--public-header-height, 66px) - 86px
    );
    min-height: calc(
      100dvh - var(--public-header-height, 66px) - 86px
    );
  }

  .site-footer .rt-footer-top {
    min-height: 122px;
    align-content: center;
  }
}

/* Compact branding when no social networks are configured. */
@media (min-width: 768px) {
  .site-footer .rt-footer-top:has(.rt-footer-social[hidden]) {
    min-height: 64px;
    padding-top: .7rem;
    padding-bottom: .7rem;
  }
  .site-footer .rt-footer-top:has(.rt-footer-social[hidden]) .rt-footer-logo {
    margin-block: 0;
  }
}

/* React renders the route-specific partner strip before the footer shell. */
.app-container.public-shell-active > .site-footer {
  display: flex !important;
  flex-direction: column !important;
}

.site-footer > .partner-space-footer {
  order: -2;
}

.site-footer > .rt-footer-inner {
  order: -1;
}

@media (min-width: 768px) {
  .app-container.public-shell-active.rt-instructions-page
    > .rt-instructions-screen {
    padding-bottom: clamp(2.5rem, 5vw, 4.5rem) !important;
  }

  .app-container.public-shell-active.rt-instructions-page
    .rt-instructions-back {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .app-container.public-shell-active.rt-catalog-page .grid-view-container {
    padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  }

  .app-container.public-shell-active > .site-footer {
    display: flex !important;
    flex-direction: column !important;
  }

  .site-footer > .partner-space-footer {
    order: -2 !important;
  }

  .site-footer > .rt-footer-inner {
    order: -1 !important;
  }
}
