/* tennis-liga.at landing bundle.
   Keep this file import-free: landing pages load it directly to avoid the
   render-blocking @import chain used by the app-wide stylesheet. */
:root {
  --tl-font-sans: 'Archivo', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tl-blue-900: #2E4459;
  --tl-blue-700: #4A6B8A;
  --tl-blue-100: #E2EAF1;
  --tl-blue-50: #F0F4F8;
  --tl-yellow-100: #F2F5C7;
  --tl-yellow-400: #DFE427;
  --tl-gold-500: #9BA023;
  --tl-paper: #FAF4E8;
  --tl-white: #F7F7F4;
  --tl-off-white: #F2F2EE;
  --tl-ink: #3A3226;
  --tl-text-muted: #635B4C;
  --tl-text-subtle: #8C8578;
  --tl-text-faint: #B5AFA3;
  --tl-border: #DDD9D0;
  --tl-border-strong: #C2BDB2;
  --tl-border-soft: #EAE6DD;
  --tl-surface-dim: #F2ECDF;
  --tl-on-dark: var(--tl-off-white);
  --tl-on-dark-muted: #AFC3D6;
  --tl-scrim-rgb: 36, 53, 70;
  --tl-danger: #A93B2A;
  --tl-danger-border: #D8B7AA;
  --tl-bg: var(--tl-paper);
  --tl-surface-card: var(--tl-white);
  --tl-text-body: var(--tl-ink);
  --tl-action-primary: var(--tl-blue-700);
  --tl-action-selected-bg: var(--tl-blue-100);
  --tl-accent: var(--tl-yellow-400);
  --tl-text-hero: 800 italic 31px/1.05 var(--tl-font-sans);
  --tl-text-h1: 800 24px/1.15 var(--tl-font-sans);
  --tl-text-h2: 800 18px/1.25 var(--tl-font-sans);
  --tl-text-h3: 800 15px/1.3 var(--tl-font-sans);
  --tl-font-body: 400 14px/1.5 var(--tl-font-sans);
  --tl-text-strong: 700 14.5px/1.4 var(--tl-font-sans);
  --tl-text-meta: 400 12.5px/1.45 var(--tl-font-sans);
  --tl-text-overline: 800 11px/1.2 var(--tl-font-sans);
  --tl-text-stat: 800 23px/1.1 var(--tl-font-sans);
  --tl-space-1: 4px;
  --tl-space-2: 8px;
  --tl-space-3: 12px;
  --tl-space-4: 16px;
  --tl-space-5: 20px;
  --tl-space-6: 24px;
  --tl-page-x: 18px;
  --tl-radius-pill: 999px;
  --tl-radius-card: 14px;
  --tl-radius-card-lg: 16px;
  --tl-radius-inner: 10px;
  --tl-radius-input: 12px;
  --tl-hairline: 1px solid var(--tl-border);
  --tl-hairline-strong: 1.5px solid var(--tl-border-strong);
  --tl-hairline-selected: 1.5px solid var(--tl-blue-700);
  --tl-shadow-pop: 0 4px 14px rgba(31, 91, 51, .10);
  --tl-shadow-soft: 0 16px 40px rgba(var(--tl-scrim-rgb), .10);
  --tl-shadow-sticker: 0 4px 10px rgba(0, 0, 0, .28);
}

html { scroll-behavior: auto !important; }
body {
  margin: 0;
  font-family: var(--tl-font-sans);
  font: var(--tl-font-body);
  color: var(--tl-text-body);
  background: var(--tl-bg);
  -webkit-font-smoothing: antialiased;
}
h1 { font: var(--tl-text-h1); letter-spacing: -.4px; margin: 0 0 8px; }
h2 { font: var(--tl-text-h2); letter-spacing: -.3px; margin: 0 0 8px; }
h3 { font: var(--tl-text-h3); margin: 0 0 6px; }
a { color: var(--tl-blue-700); text-decoration: none; font-weight: 600; }
a:hover { color: var(--tl-blue-900); text-decoration: none; }
a[href]:hover,
a[href]:focus,
a[href]:focus-visible,
button:hover,
button:focus,
button:focus-visible,
[role="button"]:hover,
[role="button"]:focus,
[role="button"]:focus-visible,
.btn:hover,
.btn:focus,
.btn:focus-visible,
.tl-btn:hover,
.tl-btn:focus,
.tl-btn:focus-visible,
.nav-link:hover,
.nav-link:focus,
.nav-link:focus-visible,
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item:focus-visible {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

/* Critical Bootstrap subset. The full Bootstrap CSS is loaded asynchronously. */
*,
*::before,
*::after { box-sizing: border-box; }
.container,
.container-fluid { --bs-gutter-x: 1.5rem; --bs-gutter-y: 0; margin-left: auto; margin-right: auto; padding-left: calc(var(--bs-gutter-x) * .5); padding-right: calc(var(--bs-gutter-x) * .5); width: 100%; }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }
@media (min-width: 1400px) { .container { max-width: 1320px; } }
.row { --bs-gutter-x: 1.5rem; --bs-gutter-y: 0; display: flex; flex-wrap: wrap; margin-left: calc(-.5 * var(--bs-gutter-x)); margin-right: calc(-.5 * var(--bs-gutter-x)); margin-top: calc(-1 * var(--bs-gutter-y)); }
.row > * { flex-shrink: 0; margin-top: var(--bs-gutter-y); max-width: 100%; padding-left: calc(var(--bs-gutter-x) * .5); padding-right: calc(var(--bs-gutter-x) * .5); width: 100%; }
.g-4 { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; }
.g-5 { --bs-gutter-x: 3rem; --bs-gutter-y: 3rem; }
@media (min-width: 576px) { .flex-sm-row { flex-direction: row !important; } }
@media (min-width: 768px) { .row-cols-md-4 > * { flex: 0 0 auto; width: 25%; } }
@media (min-width: 992px) {
  .col-lg-6 { flex: 0 0 auto; width: 50%; }
  .col-lg-8 { flex: 0 0 auto; width: 66.666667%; }
  .row-cols-lg-3 > * { flex: 0 0 auto; width: 33.333333%; }
}
@media (min-width: 1200px) { .col-xl-7 { flex: 0 0 auto; width: 58.333333%; } }
.d-flex { display: flex !important; }
.d-block { display: block !important; }
.d-none { display: none !important; }
.flex-column { flex-direction: column !important; }
.flex-wrap { flex-wrap: wrap !important; }
.align-items-center { align-items: center !important; }
.align-items-start { align-items: flex-start !important; }
.align-items-stretch { align-items: stretch !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.text-center { text-align: center !important; }
.text-start { text-align: left !important; }
.position-relative { position: relative !important; }
.w-100 { width: 100% !important; }
.h-100 { height: 100% !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.m-0 { margin: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.py-3 { padding-bottom: 1rem !important; padding-top: 1rem !important; }
.py-4 { padding-bottom: 1.5rem !important; padding-top: 1.5rem !important; }
.py-5 { padding-bottom: 3rem !important; padding-top: 3rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.me-auto { margin-right: auto !important; }
.ms-1 { margin-left: .25rem !important; }
@media (min-width: 992px) {
  .d-lg-block { display: block !important; }
  .d-lg-none { display: none !important; }
  .flex-lg-row { flex-direction: row !important; }
  .align-items-lg-center { align-items: center !important; }
  .align-items-lg-stretch { align-items: stretch !important; }
  .mb-lg-0 { margin-bottom: 0 !important; }
  .ms-lg-auto { margin-left: auto !important; }
  .px-lg-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
}
.btn { background-color: transparent; border: 1px solid transparent; display: inline-block; font: 700 1rem/1.5 var(--tl-font-sans); padding: .375rem .75rem; text-align: center; vertical-align: middle; }
.btn-sm { font-size: .875rem; padding: .25rem .5rem; }
.btn-link { background: transparent; color: var(--tl-blue-700); }
.rounded-pill { border-radius: var(--tl-radius-pill) !important; }
.text-bg-warning { background-color: var(--tl-yellow-400) !important; color: var(--tl-blue-900) !important; }
.navbar { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; padding: .5rem 0; position: relative; }
.navbar > .container-fluid { align-items: center; display: flex; flex-wrap: inherit; justify-content: space-between; }
.navbar-brand { font-size: 1.25rem; margin-right: 1rem; padding-bottom: .3125rem; padding-top: .3125rem; white-space: nowrap; }
.navbar-nav { display: flex; flex-direction: column; list-style: none; margin-bottom: 0; padding-left: 0; }
.nav-link { display: block; padding: .5rem 1rem; }
.nav-item { display: block; }
.navbar-collapse { align-items: center; flex-basis: 100%; flex-grow: 1; }
.collapse:not(.show) { display: none; }
.dropdown { position: relative; }
.dropdown-toggle::after { border-bottom: 0; border-left: .3em solid transparent; border-right: .3em solid transparent; border-top: .3em solid; content: ""; display: inline-block; margin-left: .255em; vertical-align: .255em; }
.dropdown-menu { background-clip: padding-box; border: 1px solid var(--tl-border); border-radius: .375rem; color: var(--tl-ink); display: none; font-size: 1rem; list-style: none; margin: 0; min-width: 10rem; padding: .5rem 0; position: absolute; text-align: left; z-index: 1000; }
.dropdown-menu.show { display: block; }
.dropdown-menu-end { right: 0; left: auto; }
.dropdown-header { display: block; margin-bottom: 0; padding: .5rem 1rem; white-space: nowrap; }
.dropdown-item { background-color: transparent; border: 0; clear: both; color: var(--tl-ink); display: block; padding: .25rem 1rem; text-align: inherit; white-space: nowrap; width: 100%; }
.navbar-toggler { background-color: transparent; border: 1px solid transparent; font-size: 1.25rem; line-height: 1; }
.navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2858, 50, 38, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); background-position: center; background-repeat: no-repeat; background-size: 100%; display: inline-block; height: 1.5em; vertical-align: middle; width: 1.5em; }
.card { display: flex; flex-direction: column; min-width: 0; position: relative; }
.card-body { flex: 1 1 auto; padding: 1rem; }
.card-footer { border-top: 1px solid var(--tl-border); padding: .5rem 1rem; }
@media (min-width: 992px) {
  .navbar-expand-lg { flex-wrap: nowrap; justify-content: flex-start; }
  .navbar-expand-lg .navbar-nav { flex-direction: row; }
  .navbar-expand-lg .navbar-collapse { display: flex !important; flex-basis: auto; }
  .navbar-expand-lg .navbar-toggler { display: none; }
}

.tl-body,
.tl-landing-body { min-height: 100vh; background: var(--tl-paper); color: var(--tl-ink); overflow-x: hidden; }
.tl-main { min-height: 60vh; }
.tl-shell { max-width: 720px; margin: 0 auto; padding: 0 var(--tl-page-x); box-sizing: border-box; width: 100%; }
.tl-shell--wide { max-width: 1140px; }
.tl-shell--md { max-width: 960px; }
.tl-full-bleed { position: relative; left: 50%; right: 50%; width: 100vw; margin-left: -50vw; margin-right: -50vw; }
.tl-cols { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
@media (min-width: 960px) {
  .tl-cols { gap: 24px; }
  .tl-cols--split { grid-template-columns: 1fr 1fr; }
}

/* Bootstrap design bridge needed by the shared landing navbar/footer. */
:root,
[data-bs-theme="light"] {
  --bs-body-bg: var(--tl-paper);
  --bs-body-color: var(--tl-ink);
  --bs-body-font-family: var(--tl-font-sans);
  --bs-primary: var(--tl-blue-700);
  --bs-primary-rgb: 74, 107, 138;
  --bs-secondary-color: var(--tl-text-subtle);
  --bs-border-color: var(--tl-border);
  --bs-link-color: var(--tl-blue-700);
  --bs-link-hover-color: var(--tl-blue-900);
  --bs-danger: var(--tl-danger);
  --bs-danger-rgb: 169, 59, 42;
  --bs-warning: var(--tl-yellow-400);
  --bs-warning-rgb: 223, 228, 39;
  --bs-success: var(--tl-blue-700);
  --bs-success-rgb: 74, 107, 138;
  --bs-info: var(--tl-blue-700);
  --bs-info-rgb: 74, 107, 138;
  --bs-border-radius: 12px;
  --bs-border-radius-lg: 14px;
  --bs-border-radius-pill: 999px;
}
.btn { border-radius: 999px; font-weight: 700; }
.btn-primary {
  --bs-btn-color: var(--tl-on-dark);
  --bs-btn-bg: var(--tl-blue-700);
  --bs-btn-border-color: var(--tl-blue-700);
  background-color: var(--tl-blue-700);
  border-color: var(--tl-blue-700);
  color: var(--tl-on-dark);
  --bs-btn-hover-color: var(--tl-on-dark);
  --bs-btn-hover-bg: var(--tl-blue-900);
  --bs-btn-hover-border-color: var(--tl-blue-900);
  --bs-btn-active-color: var(--tl-on-dark);
  --bs-btn-active-bg: var(--tl-blue-900);
  --bs-btn-active-border-color: var(--tl-blue-900);
  --bs-btn-disabled-bg: var(--tl-border);
  --bs-btn-disabled-border-color: var(--tl-border);
  --bs-btn-disabled-color: var(--tl-text-faint);
}
.btn-outline-primary,
.btn-secondary,
.btn-outline-secondary {
  --bs-btn-color: var(--tl-blue-700);
  --bs-btn-bg: var(--tl-white);
  --bs-btn-border-color: var(--tl-border-strong);
  background-color: var(--tl-white);
  border-color: var(--tl-border-strong);
  color: var(--tl-blue-700);
  --bs-btn-hover-color: var(--tl-blue-700);
  --bs-btn-hover-bg: var(--tl-blue-100);
  --bs-btn-hover-border-color: var(--tl-border-strong);
  --bs-btn-active-color: var(--tl-blue-700);
  --bs-btn-active-bg: var(--tl-blue-100);
  --bs-btn-active-border-color: var(--tl-blue-700);
  font-weight: 600;
}
.btn-success {
  --bs-btn-color: var(--tl-on-dark);
  --bs-btn-bg: var(--tl-blue-700);
  --bs-btn-border-color: var(--tl-blue-700);
  background-color: var(--tl-blue-700);
  border-color: var(--tl-blue-700);
  color: var(--tl-on-dark);
  --bs-btn-hover-color: var(--tl-on-dark);
  --bs-btn-hover-bg: var(--tl-blue-900);
  --bs-btn-hover-border-color: var(--tl-blue-900);
}
.badge { border-radius: 999px; display: inline-block; font-size: .75em; font-weight: 700; line-height: 1; padding: .35em .65em; }
.badge.bg-primary,
.badge.bg-success,
.badge.bg-info { background: var(--tl-blue-700) !important; color: var(--tl-on-dark) !important; }
.badge.bg-warning { background: var(--tl-yellow-400) !important; color: var(--tl-blue-900) !important; font-weight: 800; }
.badge.bg-secondary { background: var(--tl-surface-dim) !important; color: var(--tl-text-subtle); border: 1px solid var(--tl-border); }
.card { --bs-card-bg: var(--tl-white); --bs-card-border-color: var(--tl-border); --bs-card-border-radius: 14px; box-shadow: none; overflow: hidden; }
.form-control,
.form-select { border: 1.5px solid var(--tl-border-strong); border-radius: 12px; color: var(--tl-ink); }
.form-control:focus,
.form-select:focus { border-color: var(--tl-blue-700); box-shadow: 0 0 0 3px rgba(74, 107, 138, .14); }
.form-label { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--tl-text-subtle); }

/* Shared TL components used by landing pages. */
.tl-messages-toast { bottom: max(16px, env(safe-area-inset-bottom)); left: 50%; position: fixed; transform: translateX(-50%); width: min(calc(100% - 32px), 720px); z-index: 1050; }
.tl-messages-toast .alert { box-shadow: var(--tl-shadow-pop); margin: 0; }
.tl-messages-toast .alert + .alert { margin-top: 8px; }
.tl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: var(--tl-radius-pill); font: 700 15px/1 var(--tl-font-sans);
  padding: 13px 20px; border: none; cursor: pointer; text-decoration: none;
  transition: filter .12s ease, background .12s ease;
}
.tl-btn--primary { background: var(--tl-blue-700); color: var(--tl-on-dark); }
.tl-btn--primary:hover { background: var(--tl-blue-900); color: var(--tl-on-dark); text-decoration: none; }
.tl-btn--secondary { background: var(--tl-white); color: var(--tl-blue-700); border: var(--tl-hairline-strong); font-weight: 600; }
.tl-btn--secondary:hover { background: var(--tl-blue-100); color: var(--tl-blue-700); text-decoration: none; }
.tl-btn--on-dark-outline { background: transparent; color: var(--tl-on-dark); border: 1.5px solid rgba(255,255,255,.4); font-weight: 600; }
.tl-btn--on-dark-outline:hover,
.tl-btn--on-dark-outline:focus { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.75); color: var(--tl-on-dark); text-decoration: none !important; }
.tl-btn--sm { padding: 8px 13px; font-size: 12px; }
.tl-btn--lg { padding: 15px 24px; font-size: 16px; }
.tl-btn--block { display: flex; width: 100%; box-sizing: border-box; }
.tl-card { background: var(--tl-white); border: var(--tl-hairline); border-radius: var(--tl-radius-card); padding: 14px; }
.tl-card--dark { background: var(--tl-blue-900); border: none; color: var(--tl-on-dark); }
.tl-list { background: var(--tl-white); border: var(--tl-hairline); border-radius: var(--tl-radius-card); overflow: hidden; }
.tl-list__row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--tl-border-soft); }
.tl-list__row:last-child { border-bottom: none; }
.tl-score { font: 700 13px/1 var(--tl-font-sans); color: var(--tl-blue-700); font-variant-numeric: tabular-nums; }
.tl-badge { display: inline-flex; align-items: center; border-radius: var(--tl-radius-pill); font: 700 11px/1.2 var(--tl-font-sans); padding: 3px 9px; white-space: nowrap; }
.tl-badge--primary { background: var(--tl-blue-700); color: var(--tl-on-dark); }
.tl-badge--square { border-radius: 4px; letter-spacing: 1px; font-size: 10px; }
.tl-logo { width: 30px !important; height: 30px !important; max-width: 30px; max-height: 30px; object-fit: contain; mix-blend-mode: multiply; flex: 0 0 auto; }

.navbar { background: var(--tl-paper) !important; border-bottom: 1px solid var(--tl-border); }
.navbar-brand { font-weight: 800; font-style: italic; color: var(--tl-blue-700) !important; }
.tl-navbar { min-height: 64px; }
.tl-navbar a,
.tl-navbar a:hover,
.tl-navbar a:focus { text-decoration: none; }
.tl-navbar__brand-name { color: var(--tl-blue-700); font: 800 17px/1 var(--tl-font-sans); font-style: italic; letter-spacing: -.3px; transition: color .12s ease; }
.tl-navbar .navbar-brand:hover .tl-navbar__brand-name,
.tl-navbar .navbar-brand:focus .tl-navbar__brand-name { color: var(--tl-blue-900); }
.tl-navbar .navbar-nav { gap: .25rem; }
.tl-navbar .nav-link { align-items: center; border-radius: var(--tl-radius-pill); color: var(--tl-ink); display: inline-flex; font-weight: 700; line-height: 1.2; min-height: 40px; padding: .5rem .8rem; }
.tl-navbar .nav-link:hover,
.tl-navbar .nav-link:focus,
.tl-navbar .nav-link.show { background: var(--tl-blue-100); color: var(--tl-blue-700); text-decoration: none; }
.tl-navbar .btn-link.nav-link { border: 0; font: inherit; font-weight: 700; text-align: left; text-decoration: none; vertical-align: top; }
.tl-navbar .dropdown-menu {
  --bs-dropdown-bg: var(--tl-white);
  --bs-dropdown-border-color: var(--tl-border);
  --bs-dropdown-link-color: var(--tl-ink);
  --bs-dropdown-link-hover-color: var(--tl-blue-700);
  --bs-dropdown-link-hover-bg: var(--tl-blue-100);
  --bs-dropdown-link-active-color: var(--tl-blue-700);
  --bs-dropdown-link-active-bg: var(--tl-blue-100);
  --bs-dropdown-border-radius: 18px;
  --bs-dropdown-padding-x: .55rem;
  --bs-dropdown-padding-y: .55rem;
  --bs-dropdown-min-width: 17rem;
  border: 1px solid var(--tl-border);
  box-shadow: 0 18px 48px rgba(var(--tl-scrim-rgb), .14);
}
.tl-navbar .dropdown-header { color: var(--tl-text-subtle); font: var(--tl-text-overline); letter-spacing: .08em; padding: .45rem .65rem .35rem; text-transform: uppercase; }
.tl-navbar .dropdown-item { align-items: center; border-radius: 12px; display: flex; font-weight: 700; gap: .7rem; margin-block: .12rem; padding: .68rem .75rem; text-decoration: none; }
.tl-navbar .navbar-toggler { border-color: transparent; border-radius: var(--tl-radius-pill); flex: none; padding: .45rem .65rem; }
.tl-navbar .navbar-toggler:hover,
.tl-navbar .navbar-toggler:focus { background: var(--tl-blue-100); border-color: transparent; box-shadow: none; }
.tl-navbar__mobile-lobby { flex: none; font-size: 12px; font-weight: 700; margin-left: auto; margin-right: .25rem; padding: .45rem .55rem; position: relative; white-space: nowrap; }
.tl-navbar__mobile-lobby-badge { font-size: 9px; min-width: 17px; padding: .25em .4em; position: absolute; right: -.2rem; top: -.35rem; }
.tl-navbar__actions { padding-top: .75rem; }
.tl-lang-menu { display: flex; position: relative; }
.tl-lang-menu__toggle { align-items: center; background: transparent; border-color: transparent !important; border-radius: var(--tl-radius-pill); display: inline-flex; justify-content: center; min-height: 34px; min-width: 46px; padding: .25rem .55rem; }
.tl-lang-menu__toggle:hover,
.tl-lang-menu__toggle:focus,
.tl-lang-menu__toggle.show { background: var(--tl-blue-100); border-color: transparent !important; box-shadow: none; }
.tl-lang-menu__flag { border-radius: 3px; box-shadow: 0 0 0 1px var(--tl-border); display: block; height: 18px; object-fit: cover; width: 27px; }
.tl-navbar .tl-lang-menu__dropdown { --bs-dropdown-min-width: 10.5rem; border-radius: 14px; padding: .35rem; }
.tl-navbar .tl-lang-menu__dropdown form { display: grid; gap: .25rem; }
.tl-navbar .tl-lang-menu__item { border: 0; border-radius: 10px; gap: .55rem; width: 100%; }
.tl-navbar .tl-lang-menu__item.active { background: transparent; color: var(--tl-ink); font-weight: 800; }
.tl-navbar .tl-lang-menu__item:hover,
.tl-navbar .tl-lang-menu__item:focus,
.tl-navbar .tl-lang-menu__item:active { background: var(--tl-blue-100); color: var(--tl-blue-700); }
.tl-lang-menu__item-flag { border-radius: 3px; box-shadow: 0 0 0 1px var(--tl-border); flex: none; height: 16px; object-fit: cover; width: 24px; }
@media (max-width: 991.98px) {
  .tl-navbar .navbar-brand { margin-right: .25rem; }
  .tl-navbar .tl-lang-menu { align-self: flex-start; }
  .tl-navbar .tl-lang-menu__dropdown { left: 0; right: auto; margin-top: .35rem; transform: none !important; }
}
@media (min-width: 992px) {
  .tl-navbar .dropdown-menu { margin-top: .65rem; }
  .tl-navbar__actions { padding-top: 0; }
}

/* Static Django landing page. */
.tl-hero-media { position: absolute; inset: 0; overflow: hidden; }
.tl-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; }
.tl-hero-media--mobile img { object-position: center 22%; }
.tl-landing-hero-title { font-size: 52px; line-height: 1.05; font-weight: 800; font-style: italic; color: var(--tl-on-dark); letter-spacing: -.8px; text-shadow: 0 1px 8px rgba(0,0,0,.3); }
.tl-landing-price-sticker { position: absolute; border-radius: 50%; background: var(--tl-yellow-400); display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(8deg); box-shadow: var(--tl-shadow-sticker); line-height: 1; color: var(--tl-blue-900); }
.tl-stat-strip { display: grid; grid-template-columns: repeat(2, 1fr); border-bottom: var(--tl-hairline); text-align: center; }
.tl-stat-strip__item { padding: 26px 6px; }
.tl-stat-strip__item + .tl-stat-strip__item { border-left: var(--tl-hairline); }
.tl-stat-strip__value { font-size: 34px; font-weight: 800; color: var(--tl-ink); font-variant-numeric: tabular-nums; }
.tl-stat-strip__label { font-size: 12.5px; color: var(--tl-text-subtle); margin-top: 4px; text-transform: uppercase; letter-spacing: .8px; }
.tl-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.tl-feature-card { background: var(--tl-blue-100); border-radius: var(--tl-radius-card); padding: 16px; }
@media (min-width: 960px) { .tl-feature-card { background: var(--tl-white); border: var(--tl-hairline); } }
.tl-feature-card__title { font-weight: 700; font-size: 15.5px; color: var(--tl-blue-700); }
.tl-feature-card__text { font-size: 13px; color: var(--tl-text-muted); line-height: 1.45; margin-top: 4px; }
.tl-section-heading { font-size: 22px; font-weight: 800; letter-spacing: -.3px; }
.tl-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.tl-blog-card { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.tl-blog-card__image { width: 100%; height: 170px; object-fit: cover; background: var(--tl-blue-100); display: block; }
.tl-blog-card__body { padding: 16px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.tl-blog-card__date { font: var(--tl-text-meta); color: var(--tl-text-subtle); }
.tl-blog-card__title { font-size: 17px; line-height: 1.25; font-weight: 800; letter-spacing: -.2px; margin: 0; }
.tl-blog-card__intro { color: var(--tl-text-muted); font-size: 13px; line-height: 1.45; margin: 0; }
.tl-partner-grid { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin-top: 18px; }
.tl-partner-link { display: inline-flex; align-items: center; justify-content: center; background: var(--tl-white); border: var(--tl-hairline); border-radius: var(--tl-radius-card); min-height: 112px; min-width: 190px; padding: 18px; transition: border-color .12s ease, transform .12s ease; }
.tl-partner-link:hover { border-color: var(--tl-border-strong); transform: translateY(-1px); text-decoration: none; }
.tl-partner-link img { max-width: 170px; max-height: 86px; filter: grayscale(100%); opacity: .72; transition: filter .12s ease, opacity .12s ease; }
.tl-partner-link:hover img { filter: grayscale(0); opacity: 1; }
.tl-footer-band { background: var(--tl-blue-900); padding: 56px 0; }
.tl-footer-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.tl-footer-band__title { font-size: 28px; font-weight: 800; font-style: italic; color: var(--tl-on-dark); letter-spacing: -.5px; }
.tl-footer-band__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 18px; width: 100%; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.14); }
.tl-footer-band__links a { color: var(--tl-on-dark-muted); font-size: 13px; font-weight: 700; }
.tl-footer-band__links a:hover,
.tl-footer-band__links a:focus { color: var(--tl-on-dark); text-decoration: none; }
.tl-mobile-frame { max-width: 430px; margin: 0 auto; min-height: 100vh; background: var(--tl-paper); border-left: var(--tl-hairline); border-right: var(--tl-hairline); box-sizing: border-box; }
.tl-mobile-hero-title { font-size: 31px; line-height: 1.05; font-weight: 800; font-style: italic; color: var(--tl-on-dark); letter-spacing: -.5px; text-shadow: 0 1px 8px rgba(0,0,0,.3); }
.tl-mobile-stat-strip { display: grid; grid-template-columns: repeat(2, 1fr); margin: 2px 18px 0; border-top: var(--tl-hairline); border-bottom: var(--tl-hairline); text-align: center; }
.tl-mobile-stat-strip__item { padding: 14px 6px; }
.tl-mobile-stat-strip__item + .tl-mobile-stat-strip__item { border-left: var(--tl-hairline); }
.tl-mobile-stat-strip__value { font-size: 23px; font-weight: 800; color: var(--tl-ink); font-variant-numeric: tabular-nums; }
.tl-mobile-stat-strip__label { font-size: 11.5px; color: var(--tl-text-subtle); margin-top: 2px; text-transform: uppercase; letter-spacing: .6px; }
.tl-mobile-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.tl-mobile-section { padding: 22px 18px 6px; }
.tl-mobile-section--compact { padding-top: 20px; }
@media (max-width: 959.98px) {
  .tl-landing-hero-title { font-size: 38px; }
  .tl-blog-grid { grid-template-columns: 1fr; }
  .tl-footer-band__inner { justify-content: center; text-align: center; }
}
@media (max-width: 520px) {
  .tl-feature-grid { grid-template-columns: 1fr; }
  .tl-partner-link { width: 100%; box-sizing: border-box; }
}

/* Wagtail landing support without app-wide styles.css. */
.tl-site-footer { background: var(--tl-blue-900); color: var(--tl-on-dark); padding: 36px 0; margin-top: 56px; }
.tl-site-footer a { color: var(--tl-on-dark); }
.tl-site-footer__muted { color: var(--tl-on-dark-muted); }
.bg-size-cover { background-size: cover !important; }
.bg-repeat-0 { background-repeat: no-repeat !important; }
.bg-position-center { background-position: center !important; }
@media (min-width: 768px) { .w-md-50 { width: 50% !important; } }
@media (min-width: 992px) { .w-lg-50 { width: 50% !important; } }
.mt-10 { margin-top: 2.5rem !important; }
.mt-40 { margin-top: 4rem !important; }
@media (min-width: 992px) { .px-lg-10 { padding-left: 3rem !important; padding-right: 3rem !important; } }
.fs-lg { font-size: 1.125rem !important; }
.fs-sm { font-size: .875rem !important; }
.fs-xs { font-size: .75rem !important; }
.zindex-2 { z-index: 2 !important; }
.bg-faded-primary { background: var(--tl-blue-100) !important; }
.text-nav { color: var(--tl-ink) !important; }
.dark-mode { color: var(--tl-on-dark); }
.dark-mode .text-muted { color: var(--tl-on-dark-muted) !important; }
.min-vh-75 { min-height: 75vh; }
.modal-content { background: var(--tl-white); border: 1px solid var(--tl-border); border-radius: 16px; }
.modal-header,
.modal-footer { border-color: var(--tl-border); }
.sticky-cta-mobile { display: none; }
@media (max-width: 767.98px) {
  .sticky-cta-mobile {
    display: block; position: fixed; bottom: 0; left: 0; right: 0; width: 100vw; z-index: 10000;
    background: rgba(251, 251, 247, .96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    padding: 12px 16px 16px; box-shadow: 0 -4px 20px rgba(var(--tl-scrim-rgb), .12); border-top: 1px solid var(--tl-border);
  }
  body.has-sticky-cta { padding-bottom: 84px; }
}
